diff --git a/docs/Einstellungs-Seite erstellen.md b/docs/Einstellungs-Seite erstellen.md
new file mode 100644
index 0000000000..70cab3337b
--- /dev/null
+++ b/docs/Einstellungs-Seite erstellen.md	
@@ -0,0 +1,24 @@
+Dieser Beitrag erklärt, wie Einstellungen für ein Element aus einer Auswahlliste anhand einer Vorlage erstellt werden. Zu diesen Elementen zählen: Geräte, Komponenten, Fahrzeug(SoC)-Module und Backup-Clouds.
+
+Die Installation des GUI-Repositories ist in eben diesem beschrieben: [openwb-ui-settings](https://github.com/openWB/openwb-ui-settings)
+
+Die Auswahllisten werden dynamisch erzeugt. Damit euer Element darin enthalten ist, muss im entsprechenden Ordner im Core-Repo eine config.py-Datei wie in den Samples beschrieben enthalten sein. Wenn keine Einstellungsseiten in vue hinterlegt sind, sind die Einstellungen als json-Objekt editierbar. Dies ist für einen PR im Core-Repo ausreichend. Wie Ihr auch einen PR im GUI-Repo für die Einstellungen erstellen könnt, erklären wir Euch hier am Beispiel eines Fahrzeugs:
+
+### Einstellungen erzeugen
+Im Ordner src/components des GUI-Repos legt Ihr im Ordner `vehicles` einen neuen Ordner `sample` an. Dort hinein kopiert Ihr die Vorlage aus dem Ordner [samples_gui](https://github.com/openWB/core/tree/master/docs/samples/samples_gui) und ersetzt sample durch den Namen eures neuen Fahrzeugs. Bitte auf die Groß- und Kleinschreibung achten.
+
+Nun müssen noch Frames für einzelnen Einstellungen ergänzt werden. Dafür könnt Ihr euch entweder an den bereits existierenden Modulen orientieren oder die Beispiele nutzen, die Ihr euch im GUI unter Einstellungen -> Beispiele anschauen könnt. Die Frames findet Ihr [hier](https://github.com/openWB/openwb-ui-settings/blob/main/src/views/TestingStore.vue).
+
+`:model-value="$store.state.examples.text3"`  
+`@update:model-value="updateState('text3', $event)"`  
+Diese beiden Zeilen gibt es in jedem Frame. Die erste Zeile gibt den Wert an, der vom Broker gelesen werden soll. Die zweite den Wert, der aktualisiert werden soll. 
+Für die Einstellungen müssen die Zeilen immer so aussehen:  
+`:model-value="configuration.sample"`  
+`@update:model-value="updateConfiguration($event, 'configuration.sample')`
+
+Dann werden die Einstellungen automatisch dem richtigen Topic im Broker zugeordnet. Wichtig ist, dass sample immer genau so heißt, wie die Einstellung in der config.py. Nach dem Tag `<template #help>` könnt Ihr einen Hilfetext eingeben, der angezeigt wird, wenn man auf das Fragezeichen klickt.
+
+### Pull Request stellen
+Die kompilierten vue-Dateien im Core-Repo können nicht gemergt werden. Deshalb dürfen im PR des Core-Repos keine kompilierten vue-Dateien enthalten sein. Für die Einstellungs-Seiten bitte einen PR im openwb-ui-settings-Repo stellen. Nach dem Mergen kompilieren wir die vue-Dateien neu und aktualisieren diese im Core-Repo.
+
+_Bei Fragen programmiert Ihr die Einstellungs-Seite vorerst, wie Ihr es versteht, und erstellt einen (Draft-)PR. Wir unterstützen Euch gerne per Review._
\ No newline at end of file
diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md
index ce09bed48c..d86c115955 100644
--- a/docs/_Sidebar.md
+++ b/docs/_Sidebar.md
@@ -12,6 +12,7 @@
   * [Entwicklungsumgebung](https://github.com/openWB/core/wiki/Entwicklungsumgebung)
   * [Neues Gerät programmieren](https://github.com/openWB/core/wiki/Neues-Gerät-programmieren)
   * [Neues SoC-Modul programmieren](https://github.com/openWB/core/wiki/Neues-Soc-Modul-programmieren)
+  * [Einstellungs-Seite erstellen](https://github.com/openWB/core/wiki/Einstellungs-Seite-erstellen)
 * Konfiguration
   * [Cloud-Sicherung](https://github.com/openWB/core/wiki/Cloud-Sicherung)
     * [NextCloud](https://github.com/openWB/core/wiki/NextCloud-als-Sicherungs-Cloud-einrichten)
diff --git a/docs/samples/samples_gui/backup_cloud.vue b/docs/samples/samples_gui/backup_cloud.vue
new file mode 100644
index 0000000000..1084e6f743
--- /dev/null
+++ b/docs/samples/samples_gui/backup_cloud.vue
@@ -0,0 +1,26 @@
+<template>
+	<div class="backup-cloud-sample">
+		<openwb-base-heading>
+			Einstellungen für Sample-Backup Cloud
+			<span class="small">(Modul: {{ $options.name }})</span>
+		</openwb-base-heading>
+	</div>
+</template>
+
+<script>
+export default {
+	name: "BackupCloudSample",
+	emits: ["update:configuration"],
+	props: {
+		configuration: { type: Object, required: true },
+	},
+	data() {
+		return {};
+	},
+	methods: {
+		updateConfiguration(event, path = undefined) {
+			this.$emit("update:configuration", { value: event, object: path });
+		},
+	},
+};
+</script>
diff --git a/docs/samples/samples_gui/bat.vue b/docs/samples/samples_gui/bat.vue
new file mode 100644
index 0000000000..c0ca88fa56
--- /dev/null
+++ b/docs/samples/samples_gui/bat.vue
@@ -0,0 +1,25 @@
+<template>
+	<div class="device-sample-bat">
+		<openwb-base-heading>
+			Einstellungen für Sample Batteriespeicher
+			<span class="small">(Modul: {{ $options.name }})</span>
+		</openwb-base-heading>
+	</div>
+</template>
+
+<script>
+export default {
+	name: "DeviceSampleBat",
+	emits: ["update:configuration"],
+	props: {
+		configuration: { type: Object, required: true },
+		deviceId: { default: undefined },
+		componentId: { required: true },
+	},
+	methods: {
+		updateConfiguration(event, path = undefined) {
+			this.$emit("update:configuration", { value: event, object: path });
+		},
+	},
+};
+</script>
diff --git a/docs/samples/samples_gui/counter.vue b/docs/samples/samples_gui/counter.vue
new file mode 100644
index 0000000000..ec6790b9f1
--- /dev/null
+++ b/docs/samples/samples_gui/counter.vue
@@ -0,0 +1,25 @@
+<template>
+	<div class="device-sample-counter">
+		<openwb-base-heading>
+			Einstellungen für Sample Zähler
+			<span class="small">(Modul: {{ $options.name }})</span>
+		</openwb-base-heading>
+	</div>
+</template>
+
+<script>
+export default {
+	name: "DeviceSampleCounter",
+	emits: ["update:configuration"],
+	props: {
+		configuration: { type: Object, required: true },
+		deviceId: { default: undefined },
+		componentId: { required: true },
+	},
+	methods: {
+		updateConfiguration(event, path = undefined) {
+			this.$emit("update:configuration", { value: event, object: path });
+		},
+	},
+};
+</script>
diff --git a/docs/samples/samples_gui/device.vue b/docs/samples/samples_gui/device.vue
new file mode 100644
index 0000000000..f92cd25b26
--- /dev/null
+++ b/docs/samples/samples_gui/device.vue
@@ -0,0 +1,33 @@
+<template>
+	<div class="device-sample">
+		<openwb-base-heading>
+			Einstellungen für Sample
+			<span class="small">(Modul: {{ $options.name }})</span>
+		</openwb-base-heading>
+		<openwb-base-text-input
+			title="IP oder Hostname"
+			subtype="host"
+			required
+			:model-value="configuration.ip_address"
+			@update:model-value="
+				updateConfiguration($event, 'configuration.ip_address')
+			"
+		/>
+	</div>
+</template>
+
+<script>
+export default {
+	name: "DeviceSample",
+	emits: ["update:configuration"],
+	props: {
+		configuration: { type: Object, required: true },
+		deviceId: { default: undefined },
+	},
+	methods: {
+		updateConfiguration(event, path = undefined) {
+			this.$emit("update:configuration", { value: event, object: path });
+		},
+	},
+};
+</script>
diff --git a/docs/samples/samples_gui/inverter.vue b/docs/samples/samples_gui/inverter.vue
new file mode 100644
index 0000000000..004a3fc9e4
--- /dev/null
+++ b/docs/samples/samples_gui/inverter.vue
@@ -0,0 +1,25 @@
+<template>
+	<div class="device-sample-inverter">
+		<openwb-base-heading>
+			Einstellungen für Sample Wechselrichter
+			<span class="small">(Modul: {{ $options.name }})</span>
+		</openwb-base-heading>
+	</div>
+</template>
+
+<script>
+export default {
+	name: "DeviceSampleInverter",
+	emits: ["update:configuration"],
+	props: {
+		configuration: { type: Object, required: true },
+		deviceId: { default: undefined },
+		componentId: { required: true },
+	},
+	methods: {
+		updateConfiguration(event, path = undefined) {
+			this.$emit("update:configuration", { value: event, object: path });
+		},
+	},
+};
+</script>
diff --git a/docs/samples/samples_gui/vehicle.vue b/docs/samples/samples_gui/vehicle.vue
new file mode 100644
index 0000000000..6612896b95
--- /dev/null
+++ b/docs/samples/samples_gui/vehicle.vue
@@ -0,0 +1,27 @@
+<template>
+	<div class="vehicle-soc-sample">
+		<openwb-base-heading>
+			Einstellungen für Sample SoC
+			<span class="small">(Modul: {{ $options.name }})</span>
+		</openwb-base-heading>
+	</div>
+</template>
+
+<script>
+export default {
+	name: "VehicleSocSample",
+	emits: ["update:configuration"],
+	props: {
+		configuration: { type: Object, required: true },
+		vehicleId: { required: true },
+	},
+	data() {
+		return {};
+	},
+	methods: {
+		updateConfiguration(event, path = undefined) {
+			this.$emit("update:configuration", { value: event, object: path });
+		},
+	},
+};
+</script>
diff --git a/packages/control/data.py b/packages/control/data.py
index 3c6952c4fc..60228e0a36 100644
--- a/packages/control/data.py
+++ b/packages/control/data.py
@@ -5,6 +5,7 @@
 import copy
 import logging
 import threading
+from functools import wraps
 from typing import Dict
 from control.bat import Bat
 from control.bat_all import BatAll
@@ -25,13 +26,41 @@
 from modules.common.abstract_device import AbstractDevice
 
 log = logging.getLogger(__name__)
+bat_data_lock = threading.Lock()
+bat_all_data_lock = threading.Lock()
+graph_data_lock = threading.Lock()
+counter_data_lock = threading.Lock()
+counter_all_data_lock = threading.Lock()
+cp_data_lock = threading.Lock()
+cp_all_data_lock = threading.Lock()
+cp_template_data_lock = threading.Lock()
+ev_charge_template_data_lock = threading.Lock()
+ev_data_lock = threading.Lock()
+ev_template_data_lock = threading.Lock()
+general_data_lock = threading.Lock()
+optional_data_lock = threading.Lock()
+pv_data_lock = threading.Lock()
+pv_all_data_lock = threading.Lock()
+system_data_lock = threading.Lock()
+
+
+def locked(lock: threading.Lock):
+    def decorate(method):
+        @wraps(method)
+        def inner(*args, **kwargs):
+            # context handler may be used if no logging of lock duration required: "with lock:..."
+            try:
+                lock.acquire()
+                return method(*args, **kwargs)
+            finally:
+                lock.release()
+        return inner
+    return decorate
 
 
 class Data:
     def __init__(self, event_module_update_completed: threading.Event):
         self.event_module_update_completed = event_module_update_completed
-        self.event = threading.Event()
-        self.event.set()
         self._bat_data: Dict[str, Bat] = {}
         self._bat_all_data = BatAll()
         self._counter_data: Dict[str, Counter] = {}
@@ -52,255 +81,155 @@ def __init__(self, event_module_update_completed: threading.Event):
     # getter-Funktion, der Zugriff erfolgt wie bei einem Zugriff auf eine öffentliche Variable.
     @property
     def bat_data(self) -> Dict[str, Bat]:
-        """ gibt die Variable zurück. Durch das Event wird verhindert, das gleichzeitig geschrieben und gelesen wird.
-
-        Return
-        ------
-        temp: Variable
-        """
-        self.event.wait()
-        self.event.clear()
-        temp = self._bat_data
-        self.event.set()
-        return temp
+        """ gibt die Variable zurück. """
+        return self._bat_data
 
     @bat_data.setter
+    @locked(bat_data_lock)
     def bat_data(self, value):
-        """ setzt die Variable. Durch das Event wird verhindert, das gleichzeitig geschrieben und gelesen wird.
+        """ setzt die Variable. Durch das Lock wird verhindert, dass gleichzeitig geschrieben wird.
 
         Parameter
         ---------
         value: Wert, der gesetzt werden soll.
         """
-        self.event.wait()
-        self.event.clear()
         self._bat_data = value
-        self.event.set()
 
     @property
     def bat_all_data(self) -> BatAll:
-        self.event.wait()
-        self.event.clear()
-        temp = self._bat_all_data
-        self.event.set()
-        return temp
+        return self._bat_all_data
 
     @bat_all_data.setter
+    @locked(bat_all_data_lock)
     def bat_all_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._bat_all_data = value
-        self.event.set()
 
     @property
     def graph_data(self) -> Graph:
-        self.event.wait()
-        self.event.clear()
-        temp = self._graph_data
-        self.event.set()
-        return temp
+        return self._graph_data
 
     @graph_data.setter
+    @locked(graph_data_lock)
     def graph_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._graph_data = value
-        self.event.set()
 
     @property
     def counter_data(self) -> Dict[str, Counter]:
-        self.event.wait()
-        self.event.clear()
-        temp = self._counter_data
-        self.event.set()
-        return temp
+        return self._counter_data
 
     @counter_data.setter
+    @locked(counter_data_lock)
     def counter_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._counter_data = value
-        self.event.set()
 
     @property
     def counter_all_data(self) -> CounterAll:
-        self.event.wait()
-        self.event.clear()
-        temp = self._counter_all_data
-        self.event.set()
-        return temp
+        return self._counter_all_data
 
     @counter_all_data.setter
+    @locked(counter_all_data_lock)
     def counter_all_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._counter_all_data = value
-        self.event.set()
 
     @property
     def cp_data(self) -> Dict[str, Chargepoint]:
-        self.event.wait()
-        self.event.clear()
-        temp = self._cp_data
-        self.event.set()
-        return temp
+        return self._cp_data
 
     @cp_data.setter
+    @locked(cp_data_lock)
     def cp_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._cp_data = value
-        self.event.set()
 
     @property
     def cp_all_data(self) -> AllChargepoints:
-        self.event.wait()
-        self.event.clear()
-        temp = self._cp_all_data
-        self.event.set()
-        return temp
+        return self._cp_all_data
 
     @cp_all_data.setter
+    @locked(cp_all_data_lock)
     def cp_all_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._cp_all_data = value
-        self.event.set()
 
     @property
     def cp_template_data(self):
-        self.event.wait()
-        self.event.clear()
-        temp = self._cp_template_data
-        self.event.set()
-        return temp
+        return self._cp_template_data
 
     @cp_template_data.setter
+    @locked(cp_template_data_lock)
     def cp_template_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._cp_template_data = value
-        self.event.set()
 
     @property
     def ev_charge_template_data(self) -> Dict[str, ChargeTemplate]:
-        self.event.wait()
-        self.event.clear()
-        temp = self._ev_charge_template_data
-        self.event.set()
-        return temp
+        return self._ev_charge_template_data
 
     @ev_charge_template_data.setter
+    @locked(ev_charge_template_data_lock)
     def ev_charge_template_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._ev_charge_template_data = value
-        self.event.set()
 
     @property
+    @locked(ev_data_lock)
     def ev_data(self) -> Dict[str, Ev]:
-        self.event.wait()
-        self.event.clear()
-        temp = self._ev_data
-        self.event.set()
-        return temp
+        return self._ev_data
 
     @ev_data.setter
+    @locked(ev_data_lock)
     def ev_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._ev_data = value
-        self.event.set()
 
     @property
     def ev_template_data(self) -> Dict[str, EvTemplate]:
-        self.event.wait()
-        self.event.clear()
-        temp = self._ev_template_data
-        self.event.set()
-        return temp
+        return self._ev_template_data
 
     @ev_template_data .setter
+    @locked(ev_template_data_lock)
     def ev_template_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._ev_template_data = value
-        self.event.set()
 
     @property
     def general_data(self) -> General:
-        self.event.wait()
-        self.event.clear()
-        temp = self._general_data
-        self.event.set()
-        return temp
+        return self._general_data
 
     @general_data.setter
+    @locked(general_data_lock)
     def general_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._general_data = value
-        self.event.set()
 
     @property
     def optional_data(self) -> Optional:
-        self.event.wait()
-        self.event.clear()
-        temp = self._optional_data
-        self.event.set()
-        return temp
+        return self._optional_data
 
     @optional_data.setter
+    @locked(optional_data_lock)
     def optional_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._optional_data = value
-        self.event.set()
 
     @property
     def pv_data(self) -> Dict[str, Pv]:
-        self.event.wait()
-        self.event.clear()
-        temp = self._pv_data
-        self.event.set()
-        return temp
+        return self._pv_data
 
     @pv_data.setter
+    @locked(pv_data_lock)
     def pv_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._pv_data = value
-        self.event.set()
 
     @property
     def pv_all_data(self) -> PvAll:
-        self.event.wait()
-        self.event.clear()
-        temp = self._pv_all_data
-        self.event.set()
-        return temp
+        return self._pv_all_data
 
     @pv_all_data.setter
+    @locked(pv_all_data_lock)
     def pv_all_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._pv_all_data = value
-        self.event.set()
 
     @property
     def system_data(self):
-        self.event.wait()
-        self.event.clear()
-        temp = self._system_data
-        self.event.set()
-        return temp
+        return self._system_data
 
     @system_data.setter
+    @locked(system_data_lock)
     def system_data(self, value):
-        self.event.wait()
-        self.event.clear()
         self._system_data = value
-        self.event.set()
 
     def print_all(self):
         self._print_dictionaries(self._bat_data)
diff --git a/packages/helpermodules/data_migration/data_migration.py b/packages/helpermodules/data_migration/data_migration.py
index 8a2c6370f0..094cfd1af1 100644
--- a/packages/helpermodules/data_migration/data_migration.py
+++ b/packages/helpermodules/data_migration/data_migration.py
@@ -522,13 +522,17 @@ def _monthly_log_entry(self, file: str):
                     log.exception(f"Fehler beim Konvertieren des Monats-Logs vom {file}, Reihe {row}")
         return entries
 
-    def _get_openwb_conf_value(self, key: str) -> Optional[str]:
-        value = None
+    def _get_openwb_conf_value(self, key: str, default: Optional[str] = None) -> Optional[str]:
+        value = default
+        found = False
         for line in self.openwb_conf:
             if key in line:
                 raw_value = line.replace(f"{key}=", "")
                 value = raw_value.rstrip("\n")
+                found = True
                 break
+        if not found:
+            log.debug(f"Keine Konfiguration für '{key}' gefunden. Verwende Standardwert '{default}'.")
         return value
 
     def _migrate_settings_from_openwb_conf(self):
@@ -542,11 +546,9 @@ def _migrate_settings_from_openwb_conf(self):
 
     def _move_serial_number(self) -> None:
         serial_number = self._get_openwb_conf_value("snnumber")
-        if serial_number:
+        if serial_number is not None:
             with open("/home/openwb/snnumber", "w") as file:
                 file.write(f"snnumber={serial_number}")
-        else:
-            log.debug("Keine Seriennummer gefunden.")
 
     def _move_cloud_data(self) -> None:
         cloud_user = self._get_openwb_conf_value("clouduser")
@@ -554,21 +556,13 @@ def _move_cloud_data(self) -> None:
         if cloud_user is not None and cloud_pw is not None:
             Pub().pub("openWB/set/command/data_migration/todo",
                       {"command": "connectCloud", "data": {"username": cloud_user, "password": cloud_pw, "partner": 0}})
-        else:
-            log.debug("Keine Cloud-Zugangsdaten gefunden.")
 
     def _move_rse(self) -> None:
-        rse = bool(self._get_openwb_conf_value("rseenabled"))
-        if rse is None:
-            log.debug("Keine Rundsteuerempfänger-Konfiguration gefunden. Setze auf False.")
-            rse = False
+        rse = bool(self._get_openwb_conf_value("rseenabled", "0"))
         update_hardware_configuration({"ripple_control_receiver_configured": rse})
 
     def _move_max_c_socket(self):
-        max_c_socket = int(self._get_openwb_conf_value("ppbuchse"))
-        if max_c_socket is None:
-            log.debug("Keine max_c_socket-Konfiguration gefunden. Setze auf False.")
-            max_c_socket = 32
+        max_c_socket = int(self._get_openwb_conf_value("ppbuchse", "32"))
         update_hardware_configuration({"max_c_socket": max_c_socket})
 
     def _move_pddate(self) -> None:
@@ -576,8 +570,6 @@ def _move_pddate(self) -> None:
         if pddate is not None:
             with open("/home/openwb/pddate", "w") as file:
                 file.write(f"pddate={pddate}")
-        else:
-            log.debug("Kein Produktionsdatum gefunden.")
 
     NOT_CONFIGURED = " wurde in openWB software2 nicht konfiguriert."
 
diff --git a/packages/helpermodules/setdata.py b/packages/helpermodules/setdata.py
index d24c97e63b..1787be20b8 100644
--- a/packages/helpermodules/setdata.py
+++ b/packages/helpermodules/setdata.py
@@ -753,6 +753,8 @@ def process_general_topic(self, msg: mqtt.MQTTMessage):
                     "openWB/set/general/ripple_control_receiver/r1_active" in msg.topic or
                     "openWB/set/general/ripple_control_receiver/r2_active" in msg.topic):
                 self._validate_value(msg, bool)
+            elif "openWB/set/general/web_theme" in msg.topic:
+                self._validate_value(msg, "json")
             else:
                 self.__unknown_topic(msg)
         except Exception:
diff --git a/packages/helpermodules/subdata.py b/packages/helpermodules/subdata.py
index f6275f7f99..c4bec54467 100644
--- a/packages/helpermodules/subdata.py
+++ b/packages/helpermodules/subdata.py
@@ -4,7 +4,7 @@
 import logging
 from pathlib import Path
 import threading
-from typing import Dict
+from typing import Dict, Union
 import re
 import subprocess
 import paho.mqtt.client as mqtt
@@ -56,7 +56,7 @@ class SubData:
     bat_all_data = bat_all.BatAll()
     bat_data: Dict[str, bat.Bat] = {}
     general_data = general.General()
-    internal_chargepoint_data: Dict[str, InternalChargepointHandlerData] = {
+    internal_chargepoint_data: Dict[str, Union[InternalChargepointHandlerData, GlobalHandlerData, RfidData]] = {
         "cp0": InternalChargepointHandlerData(),
         "cp1": InternalChargepointHandlerData(),
         "global_data": GlobalHandlerData(),
@@ -719,6 +719,7 @@ def process_system_topic(self, client: mqtt.Client, var: dict, msg: mqtt.MQTTMes
                     log.debug("skipping mqtt bridge message on startup")
             # will be moved to separate handler!
             elif "GetRemoteSupport" in msg.topic:
+                log.warning("deprecated topic for remote support received!")
                 payload = decode_payload(msg.payload)
                 splitted = payload.split(";")
                 token = splitted[0]
diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py
index ff2b8b7247..d220e21f03 100644
--- a/packages/helpermodules/update_config.py
+++ b/packages/helpermodules/update_config.py
@@ -22,6 +22,7 @@
 from control import ev
 from modules.common.configurable_vehicle import IntervalConfig
 from modules.display_themes.cards.config import CardsDisplayTheme
+from modules.web_themes.standard_legacy.config import StandardLegacyWebTheme
 
 log = logging.getLogger(__name__)
 
@@ -59,6 +60,7 @@ class UpdateConfig:
         "^openWB/chargepoint/[0-9]+/get/currents$",
         "^openWB/chargepoint/[0-9]+/get/fault_state$",
         "^openWB/chargepoint/[0-9]+/get/fault_str$",
+        "^openWB/chargepoint/[0-9]+/get/frequency$",
         "^openWB/chargepoint/[0-9]+/get/plug_state$",
         "^openWB/chargepoint/[0-9]+/get/phases_in_use$",
         "^openWB/chargepoint/[0-9]+/get/exported$",
@@ -66,6 +68,8 @@ class UpdateConfig:
         "^openWB/chargepoint/[0-9]+/get/daily_exported$",
         "^openWB/chargepoint/[0-9]+/get/daily_imported$",
         "^openWB/chargepoint/[0-9]+/get/power$",
+        "^openWB/chargepoint/[0-9]+/get/powers$",
+        "^openWB/chargepoint/[0-9]+/get/power_factors$",
         "^openWB/chargepoint/[0-9]+/get/voltages$",
         "^openWB/chargepoint/[0-9]+/get/state_str$",
         "^openWB/chargepoint/[0-9]+/get/connected_vehicle/soc$",
@@ -161,6 +165,7 @@ class UpdateConfig:
         "^openWB/general/chargemode_config/scheduled_charging/phases_to_use$",
         "^openWB/general/chargemode_config/instant_charging/phases_to_use$",
         "^openWB/general/chargemode_config/time_charging/phases_to_use$",
+        "^openWB/general/web_theme$",
 
         "^openWB/graph/config/duration$",
         "^openWB/graph/alllivevaluesJson",
@@ -404,6 +409,7 @@ class UpdateConfig:
         ("openWB/general/price_kwh", 0.3),
         ("openWB/general/range_unit", "km"),
         ("openWB/general/ripple_control_receiver/configured", False),
+        ("openWB/general/web_theme", dataclass_utils.asdict(StandardLegacyWebTheme())),
         ("openWB/graph/config/duration", 120),
         ("openWB/internal_chargepoint/0/data/parent_cp", None),
         ("openWB/internal_chargepoint/1/data/parent_cp", None),
diff --git a/packages/modules/chargepoints/external_openwb/chargepoint_module.py b/packages/modules/chargepoints/external_openwb/chargepoint_module.py
index 03407bd70e..34a0f2cdc9 100644
--- a/packages/modules/chargepoints/external_openwb/chargepoint_module.py
+++ b/packages/modules/chargepoints/external_openwb/chargepoint_module.py
@@ -36,7 +36,7 @@ def set_current(self, current: float) -> None:
                                    hostname=self.config.configuration.ip_address)
 
     def get_values(self) -> None:
-        with SingleComponentUpdateContext(self.component_info):
+        with SingleComponentUpdateContext(self.component_info, update_always=False):
             with self.__client_error_context:
                 ip_address = self.config.configuration.ip_address
                 num = self.config.id
diff --git a/packages/modules/common/fault_state.py b/packages/modules/common/fault_state.py
index c74a4a036a..48f1076b96 100644
--- a/packages/modules/common/fault_state.py
+++ b/packages/modules/common/fault_state.py
@@ -23,11 +23,13 @@ def __init__(self,
                  name: str,
                  type: str,
                  hostname: str = "localhost",
+                 parent_id: Optional[int] = None,
                  parent_hostname: Optional[str] = None) -> None:
         self.id = id
         self.name = name
         self.type = type
         self.hostname = hostname
+        self.parent_id = parent_id
         self.parent_hostname = parent_hostname
 
     @staticmethod
@@ -76,11 +78,11 @@ def store_error(self, component_info: ComponentInfo) -> None:
                 pub.Pub().pub("openWB/set/" + topic + "/" + str(component_info.id) + "/get/fault_str", self.fault_str)
                 pub.Pub().pub(
                     "openWB/set/" + topic + "/" + str(component_info.id) + "/get/fault_state", self.fault_state.value)
-                if component_info.parent_hostname:
-                    pub.pub_single("openWB/set/" + topic + "/" + str(component_info.id) +
+                if component_info.parent_hostname and component_info.parent_hostname != component_info.hostname:
+                    pub.pub_single("openWB/set/" + topic + "/" + str(component_info.parent_id) +
                                    "/get/fault_str", self.fault_str, hostname=component_info.parent_hostname)
                     pub.pub_single(
-                        "openWB/set/" + topic + "/" + str(component_info.id) + "/get/fault_state",
+                        "openWB/set/" + topic + "/" + str(component_info.parent_id) + "/get/fault_state",
                         self.fault_state.value, hostname=component_info.parent_hostname)
         except Exception:
             log.exception("Fehler im Modul fault_state")
diff --git a/packages/modules/common/modbus.py b/packages/modules/common/modbus.py
index df135d309e..0d020e6009 100644
--- a/packages/modules/common/modbus.py
+++ b/packages/modules/common/modbus.py
@@ -49,7 +49,12 @@ def __init__(self, delegate: Union[ModbusSerialClient, ModbusTcpClient], address
         self.port = port
 
     def __enter__(self):
-        self.delegate.__enter__()
+        try:
+            self.delegate.__enter__()
+        except pymodbus.exceptions.ConnectionException as e:
+            raise FaultState.error(
+                "Modbus-Client konnte keine Verbindung zu " + str(self.address) + ":" + str(self.port) +
+                " aufbauen. Bitte Einstellungen (IP-Adresse, Ladepunkt-Typ, ..) und Hardware-Anschluss prüfen.") from e
         return self
 
     def __exit__(self, exc_type, exc_value, exc_traceback):
diff --git a/packages/modules/configuration.py b/packages/modules/configuration.py
index 3a4373a126..d16d42d01b 100644
--- a/packages/modules/configuration.py
+++ b/packages/modules/configuration.py
@@ -12,6 +12,7 @@ def pub_configurable():
     """ published eine Liste mit allen konfigurierbaren SoC-Modulen sowie allen Devices mit den möglichen Komponenten.
     """
     _pub_configurable_backup_clouds()
+    _pub_configurable_web_themes()
     _pub_configurable_display_themes()
     _pub_configurable_soc_modules()
     _pub_configurable_devices_components()
@@ -51,6 +52,30 @@ def _pub_configurable_backup_clouds() -> None:
         log.exception("Fehler im configuration-Modul")
 
 
+def _pub_configurable_web_themes() -> None:
+    try:
+        themes_modules = []
+        path_list = Path(_get_packages_path()/"modules"/"web_themes").glob('**/config.py')
+        for path in path_list:
+            try:
+                if path.name.endswith("_test.py"):
+                    # Tests überspringen
+                    continue
+                dev_defaults = importlib.import_module(
+                    f".web_themes.{path.parts[-2]}.config", "modules").theme_descriptor.configuration_factory()
+                themes_modules.append({
+                    "value": dev_defaults.type,
+                    "text": dev_defaults.name,
+                    "defaults": dataclass_utils.asdict(dev_defaults)
+                })
+            except Exception:
+                log.exception("Fehler im configuration-Modul")
+        themes_modules = sorted(themes_modules, key=lambda d: d['text'].upper())
+        Pub().pub("openWB/set/system/configurable/web_themes", themes_modules)
+    except Exception:
+        log.exception("Fehler im configuration-Modul")
+
+
 def _pub_configurable_display_themes() -> None:
     try:
         themes_modules = []
diff --git a/packages/modules/devices/kostal_steca/inverter.py b/packages/modules/devices/kostal_steca/inverter.py
index 4c23790eea..609d7d0f56 100644
--- a/packages/modules/devices/kostal_steca/inverter.py
+++ b/packages/modules/devices/kostal_steca/inverter.py
@@ -3,6 +3,7 @@
 from typing import Optional, Tuple
 import xml.etree.ElementTree as ET
 import re
+from math import isnan
 
 from modules.common import req
 from modules.common.component_state import InverterState
@@ -39,6 +40,7 @@ def get_values(self) -> Tuple[float, Optional[float]]:
         measurements = req.get_http_session().get("http://" + self.ip_address + "/measurements.xml", timeout=2).text
         power_raw = ET.fromstring(measurements).find(".//Measurement[@Type='AC_Power']").get("Value")
         power = 0 if power_raw is None else float(power_raw) * -1
+        power = 0 if isnan(power) else power
 
         if self.component_config.configuration.variant_steca:
             # call for XML file and parse it for total produced kwh
diff --git a/packages/modules/devices/kostal_steca/inverter_test.py b/packages/modules/devices/kostal_steca/inverter_test.py
index 1f2c5c35a1..334b4032b1 100644
--- a/packages/modules/devices/kostal_steca/inverter_test.py
+++ b/packages/modules/devices/kostal_steca/inverter_test.py
@@ -10,6 +10,8 @@
                          [
                              pytest.param("measurements_production.xml", -132.8, id="WR produziert"),
                              pytest.param("measurements_no_production.xml", 0, id="WR produziert nicht"),
+                             pytest.param("measurements_no_production_piko3p6mp.xml", 0,
+                                          id="WR produziert nicht, Piko 3.6 MP"),
                          ])
 def test_get_values(measurements_file, expected_power, requests_mock):
     # setup
diff --git a/packages/modules/devices/kostal_steca/measurements_no_production_piko3p6mp.xml b/packages/modules/devices/kostal_steca/measurements_no_production_piko3p6mp.xml
new file mode 100644
index 0000000000..3f873cf34e
--- /dev/null
+++ b/packages/modules/devices/kostal_steca/measurements_no_production_piko3p6mp.xml
@@ -0,0 +1 @@
+<?xml version='1.0' encoding='UTF-8'?><root><Device Name='PIKO 3.6 MP' Type='Inverter' Serial='755810BL006202240015' BusAddress='1' NetBiosName='INV006202240015' IpAddress='192.168.188.27' DateTime='2023-09-29T19:12:32'><Measurements><Measurement Value='231.298' Unit='V' Type='AC_Voltage'/><Measurement Value='-nan' Unit='A' Type='AC_Current'/><Measurement Value='-nan' Unit='W' Type='AC_Power'/><Measurement Value='50.014' Unit='Hz' Type='AC_Frequency'/><Measurement Value='258.676' Unit='V' Type='DC_Voltage'/><Measurement Value='-nan' Unit='A' Type='DC_Current'/><Measurement Value='-nan' Unit='W' Type='DC_Power'/><Measurement Value='-nan' Unit='&#176;C' Type='Temp'/><Measurement Value='nan' Unit='W' Type='Consumption PV'/><Measurement Value='nan' Unit='W' Type='Consumption Grid'/><Measurement Value='nan' Unit='W' Type='GridPower'/><Measurement Value='100.0' Unit='%' Type='Dearting'/></Measurements></Device></root>
\ No newline at end of file
diff --git a/packages/modules/display_themes/cards/source/package-lock.json b/packages/modules/display_themes/cards/source/package-lock.json
index 738056ba92..dfcec7e7b0 100644
--- a/packages/modules/display_themes/cards/source/package-lock.json
+++ b/packages/modules/display_themes/cards/source/package-lock.json
@@ -29,7 +29,7 @@
         "eslint": "^8.30.0",
         "eslint-plugin-vue": "^9.3.0",
         "jsdom": "^22.1.0",
-        "postcss": "^8.4.21",
+        "postcss": "^8.4.31",
         "postcss-preset-env": "^9.0.0",
         "prettier": "^2.8.1",
         "rollup-plugin-node-polyfills": "^0.2.1",
@@ -4715,9 +4715,9 @@
       }
     },
     "node_modules/postcss": {
-      "version": "8.4.24",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
-      "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==",
+      "version": "8.4.31",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+      "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
       "funding": [
         {
           "type": "opencollective",
diff --git a/packages/modules/display_themes/cards/source/package.json b/packages/modules/display_themes/cards/source/package.json
index ad076b6ffd..6527efec61 100644
--- a/packages/modules/display_themes/cards/source/package.json
+++ b/packages/modules/display_themes/cards/source/package.json
@@ -32,7 +32,7 @@
     "eslint": "^8.30.0",
     "eslint-plugin-vue": "^9.3.0",
     "jsdom": "^22.1.0",
-    "postcss": "^8.4.21",
+    "postcss": "^8.4.31",
     "postcss-preset-env": "^9.0.0",
     "prettier": "^2.8.1",
     "rollup-plugin-node-polyfills": "^0.2.1",
diff --git a/packages/modules/internal_chargepoint_handler/chargepoint_module.py b/packages/modules/internal_chargepoint_handler/chargepoint_module.py
index bed8c97df2..3d7a1b5ad9 100644
--- a/packages/modules/internal_chargepoint_handler/chargepoint_module.py
+++ b/packages/modules/internal_chargepoint_handler/chargepoint_module.py
@@ -7,7 +7,7 @@
 from modules.common.component_context import SingleComponentUpdateContext
 from modules.common.component_state import ChargepointState
 from modules.common.fault_state import ComponentInfo, FaultState
-from modules.common.store import get_internal_chargepoint_value_store
+from modules.common.store import get_internal_chargepoint_value_store, get_chargepoint_value_store
 from modules.internal_chargepoint_handler.clients import ClientHandler
 
 log = logging.getLogger(__name__)
@@ -21,12 +21,20 @@
 class ChargepointModule(AbstractChargepoint):
     PLUG_STANDBY_POWER_THRESHOLD = 10
 
-    def __init__(self, local_charge_point_num: int, client_handler: ClientHandler, parent_hostname: str) -> None:
+    def __init__(self, local_charge_point_num: int,
+                 client_handler: ClientHandler,
+                 parent_hostname: str,
+                 parent_cp: int,
+                 hierarchy_id: int) -> None:
         self.local_charge_point_num = local_charge_point_num
         self.component_info = ComponentInfo(
-            local_charge_point_num,
-            "Ladepunkt "+str(local_charge_point_num), "internal_chargepoint", parent_hostname)
-        self.store = get_internal_chargepoint_value_store(local_charge_point_num)
+            hierarchy_id,
+            "Ladepunkt "+str(local_charge_point_num),
+            "chargepoint",
+            parent_id=parent_cp,
+            parent_hostname=parent_hostname)
+        self.store_internal = get_internal_chargepoint_value_store(local_charge_point_num)
+        self.store = get_chargepoint_value_store(hierarchy_id)
         self.old_plug_state = False
         self.old_phases_in_use = 0
         self.__client = client_handler
@@ -45,6 +53,11 @@ def set_current(self, current: float) -> None:
                 self.__client.evse_client.set_current(formatted_current)
 
     def get_values(self, phase_switch_cp_active: bool, last_tag: str) -> Tuple[ChargepointState, float]:
+        def store_state(chargepoint_state: ChargepointState) -> None:
+            self.store.set(chargepoint_state)
+            self.store.update()
+            self.store_internal.set(chargepoint_state)
+            self.store_internal.update()
         try:
             powers, power = self.__client.meter_client.get_power()
             if power < self.PLUG_STANDBY_POWER_THRESHOLD:
@@ -91,8 +104,9 @@ def get_values(self, phase_switch_cp_active: bool, last_tag: str) -> Tuple[Charg
         except Exception as e:
             self.__client.read_error += 1
             if self.__client.read_error > 5:
-                log.exception(
-                    "Anhaltender Fehler beim Auslesen der EVSE. Lade- und Stecker-Status werden zurückgesetzt.")
+                msg = ("Anhaltender Fehler beim Auslesen von EVSE und/oder Zähler. " +
+                       "Lade- und Stecker-Status werden zurückgesetzt.")
+                log.exception(msg)
                 plug_state = False
                 charge_state = False
                 chargepoint_state = ChargepointState(
@@ -100,13 +114,13 @@ def get_values(self, phase_switch_cp_active: bool, last_tag: str) -> Tuple[Charg
                     charge_state=charge_state,
                     phases_in_use=0
                 )
-                FaultState.error(__name__ + " " + str(type(e)) + " " + str(e)).store_error(self.component_info)
+                store_state(chargepoint_state)
+                raise FaultState.error(msg)
             else:
                 self.__client.check_hardware()
                 raise FaultState.error(__name__ + " " + str(type(e)) + " " + str(e)) from e
 
-        self.store.set(chargepoint_state)
-        self.store.update()
+        store_state(chargepoint_state)
         return chargepoint_state, self.set_current_evse
 
     def perform_phase_switch(self, phases_to_use: int, duration: int) -> None:
diff --git a/packages/modules/internal_chargepoint_handler/internal_chargepoint_handler.py b/packages/modules/internal_chargepoint_handler/internal_chargepoint_handler.py
index afbe95ba58..311bbfa19e 100644
--- a/packages/modules/internal_chargepoint_handler/internal_chargepoint_handler.py
+++ b/packages/modules/internal_chargepoint_handler/internal_chargepoint_handler.py
@@ -28,11 +28,12 @@
 
 
 class UpdateValues:
-    def __init__(self, local_charge_point_num: int, parent_ip: str, parent_cp: str) -> None:
+    def __init__(self, local_charge_point_num: int, parent_ip: str, parent_cp: str, hierarchy_id: int) -> None:
         self.local_charge_point_num_str = str(local_charge_point_num)
         self.old_chargepoint_state = None
         self.parent_ip = parent_ip
         self.parent_cp = parent_cp
+        self.hierarchy_id = hierarchy_id
 
     def update_values(self, chargepoint_state: ChargepointState, heartbeat_expired: bool) -> None:
         if self.old_chargepoint_state:
@@ -56,26 +57,28 @@ def _pub_values_to_2(self, topic: str, value) -> None:
         if topic == "rfid" and value == "0":
             value = None
         if isinstance(value, (str, bool, type(None))):
-            pub_single("openWB/set/chargepoint/" + self.parent_cp +
-                       "/get/"+topic, payload=value, hostname=self.parent_ip)
+            payload = value
         else:
             # qos 2 reicht nicht, da die Daten zwar auf dem Broker ankommen, aber nicht verarbeitet werden.
             if isinstance(value, list):
-                pub_single("openWB/set/chargepoint/" + self.parent_cp+"/get/"+topic,
-                           payload=[rounding(v) for v in value], hostname=self.parent_ip)
+                payload = [rounding(v) for v in value]
             else:
-                pub_single("openWB/set/chargepoint/" + self.parent_cp+"/get/"+topic,
-                           payload=rounding(value), hostname=self.parent_ip)
+                payload = rounding(value)
+            pub_single(f"openWB/set/chargepoint/{self.parent_cp}/get/{topic}", payload=payload, hostname=self.parent_ip)
+            if self.parent_ip != "localhost":
+                pub_single(f"openWB/set/chargepoint/{self.hierarchy_id}/get/state_str",
+                           payload="Statusmeldungen bitte auf der Primary-openWB einsehen.")
 
 
 class UpdateState:
-    def __init__(self, cp_module: chargepoint_module.ChargepointModule) -> None:
+    def __init__(self, cp_module: chargepoint_module.ChargepointModule, hierarchy_id: int) -> None:
         self.old_phases_to_use = 0
         self.old_set_current = 0
         self.phase_switch_thread = None  # type: Optional[threading.Thread]
         self.cp_interruption_thread = None  # type: Optional[threading.Thread]
         self.actor_cooldown_thread = None  # type: Optional[threading.Thread]
         self.cp_module = cp_module
+        self.hierarchy_id = hierarchy_id
 
     def update_state(self, data: InternalChargepointHandlerData, heartbeat_expired: bool) -> None:
         if heartbeat_expired:
@@ -95,10 +98,12 @@ def update_state(self, data: InternalChargepointHandlerData, heartbeat_expired:
                           " noch aktiv. Es muss erst gewartet werden, bis die CP-Unterbrechung abgeschlossen ist.")
                 return
         self.cp_module.set_current(set_current)
+        pub_single(f"openWB/set/chargepoint/{self.hierarchy_id}/set/current", payload=set_current)
         if data.trigger_phase_switch:
             log.debug("Switch Phases from "+str(self.old_phases_to_use) + " to " + str(data.phases_to_use))
             self.__thread_phase_switch(data.phases_to_use)
             pub.pub_single("openWB/set/internal_chargepoint/0/data/trigger_phase_switch", False)
+            pub_single(f"openWB/set/chargepoint/{self.hierarchy_id}/set/current", payload=data.phases_to_use)
 
         if data.cp_interruption_duration > 0:
             self.__thread_cp_interruption(data.cp_interruption_duration)
@@ -124,23 +129,27 @@ class InternalChargepointHandler:
     def __init__(self,
                  mode: InternalChargepointMode,
                  global_data: GlobalHandlerData,
-                 parent_cp0: int,
-                 parent_cp1: Optional[int],
+                 parent_cp0: str,
+                 hierarchy_id_cp0: int,
+                 parent_cp1: Optional[str],
+                 hierarchy_id_cp1: Optional[int],
                  event_start: threading.Event,
                  event_stop: threading.Event) -> None:
         log.debug(f"Init internal chargepoint as {mode}")
         self.event_start = event_start
         self.event_stop = event_stop
         self.heartbeat = False
-        with SingleComponentUpdateContext(ComponentInfo(parent_cp0, "Interner Ladepunkt 0", "vehicle",
-                                                        parent_hostname=global_data.parent_ip)):
+        with SingleComponentUpdateContext(
+            ComponentInfo(hierarchy_id_cp0, "Interner Ladepunkt 0", "chargepoint", parent_id=parent_cp0,
+                          parent_hostname=global_data.parent_ip)):
             # Allgemeine Fehlermeldungen an LP 1:
             self.cp0_client_handler = client_factory(0)
-            self.cp0 = HandlerChargepoint(self.cp0_client_handler, 0, mode, global_data, parent_cp0)
+            self.cp0 = HandlerChargepoint(self.cp0_client_handler, 0, mode, global_data, parent_cp0, hierarchy_id_cp0)
             if mode == InternalChargepointMode.DUO.value:
                 log.debug("Zweiter Ladepunkt für Duo konfiguriert.")
                 self.cp1_client_handler = client_factory(1, self.cp0_client_handler)
-                self.cp1 = HandlerChargepoint(self.cp1_client_handler, 1, mode, global_data, parent_cp1)
+                self.cp1 = HandlerChargepoint(self.cp1_client_handler, 1, mode,
+                                              global_data, parent_cp1, hierarchy_id_cp1)
             else:
                 self.cp1 = None
                 self.cp1_client_handler = None
@@ -194,20 +203,22 @@ def __init__(self,
                  local_charge_point_num: int,
                  mode: InternalChargepointMode,
                  global_data: GlobalHandlerData,
-                 parent_cp: int) -> None:
+                 parent_cp: str,
+                 hierarchy_id: int) -> None:
         self.local_charge_point_num = local_charge_point_num
         if local_charge_point_num == 0:
             if mode == InternalChargepointMode.SOCKET.value:
-                self.module = Socket(local_charge_point_num, client_handler, global_data.parent_ip)
+                self.module = Socket(local_charge_point_num, client_handler,
+                                     global_data.parent_ip, parent_cp, hierarchy_id)
             else:
                 self.module = chargepoint_module.ChargepointModule(
-                    local_charge_point_num, client_handler, global_data.parent_ip)
+                    local_charge_point_num, client_handler, global_data.parent_ip, parent_cp, hierarchy_id)
         else:
             self.module = chargepoint_module.ChargepointModule(
-                local_charge_point_num, client_handler, global_data.parent_ip)
+                local_charge_point_num, client_handler, global_data.parent_ip, parent_cp, hierarchy_id)
         with SingleComponentUpdateContext(self.module.component_info):
-            self.update_values = UpdateValues(local_charge_point_num, global_data.parent_ip, parent_cp)
-            self.update_state = UpdateState(self.module)
+            self.update_values = UpdateValues(local_charge_point_num, global_data.parent_ip, parent_cp, hierarchy_id)
+            self.update_state = UpdateState(self.module, hierarchy_id)
             self.old_plug_state = False
 
     def update(self, global_data: GlobalHandlerData, data: InternalChargepointHandlerData, rfid_data: RfidData) -> None:
@@ -224,7 +235,7 @@ def __thread_active(thread: Optional[threading.Thread]) -> bool:
             state = self.module.get_values(phase_switch_cp_active, rfid_data.last_tag)[0]
             log.debug("Published plug state "+str(state.plug_state))
             heartbeat_expired = self._check_heartbeat_expired(global_data.heartbeat)
-            if self.update_values is not None:
+            if global_data.parent_ip is not None:
                 self.update_values.update_values(state, heartbeat_expired)
             self.update_state.update_state(data, heartbeat_expired)
 
@@ -251,16 +262,24 @@ def handler(self):
                 # wait a moment to subscribe all data
                 time.sleep(2)
                 data = copy.deepcopy(SubData.internal_chargepoint_data)
+                hierarchy_id_cp0 = None
+                hierarchy_id_cp1 = None
                 for cp in SubData.cp_data.values():
                     if cp.chargepoint.chargepoint_module.config.type == "internal_openwb":
                         mode = cp.chargepoint.chargepoint_module.config.configuration.mode
+                        if cp.chargepoint.chargepoint_module.config.configuration.duo_num == 0:
+                            hierarchy_id_cp0 = cp.chargepoint.num
+                        else:
+                            hierarchy_id_cp1 = cp.chargepoint.num
 
                 try:
                     self.internal_chargepoint_handler = InternalChargepointHandler(
                         mode,
                         data["global_data"],
                         data["cp0"].parent_cp,
+                        hierarchy_id_cp0,
                         data["cp1"].parent_cp,
+                        hierarchy_id_cp1,
                         self.event_start,
                         self.event_stop)
                     self.internal_chargepoint_handler.loop()
diff --git a/packages/modules/internal_chargepoint_handler/socket.py b/packages/modules/internal_chargepoint_handler/socket.py
index 3ad8df0b3c..be9b0db095 100644
--- a/packages/modules/internal_chargepoint_handler/socket.py
+++ b/packages/modules/internal_chargepoint_handler/socket.py
@@ -48,10 +48,12 @@ class Socket(ChargepointModule):
     def __init__(self,
                  local_charge_point_num: int,
                  client_handler: ClientHandler,
-                 parent_hostname: str) -> None:
+                 parent_hostname: str,
+                 parent_cp: int,
+                 hierarchy_id: int) -> None:
         self.socket_max_current = get_hardware_configuration_setting("max_c_socket")
         log.debug(f"Konfiguration als Buchse mit maximal {self.socket_max_current}A Ladestrom je Phase.")
-        super().__init__(local_charge_point_num, client_handler, parent_hostname)
+        super().__init__(local_charge_point_num, client_handler, parent_hostname, parent_cp, hierarchy_id)
 
     def set_current(self, current: float) -> None:
         with SingleComponentUpdateContext(self.component_info):
diff --git a/packages/modules/internal_chargepoint_handler/update_values_test.py b/packages/modules/internal_chargepoint_handler/update_values_test.py
index 52380f1e3d..1f117a8f8a 100644
--- a/packages/modules/internal_chargepoint_handler/update_values_test.py
+++ b/packages/modules/internal_chargepoint_handler/update_values_test.py
@@ -25,15 +25,15 @@
 
 @pytest.mark.parametrize(
     "old_chargepoint_state, published_topics",
-    [(None, 12),
-     (OLD_CHARGEPOINT_STATE, 1)]
+    [(None, 18),
+     (OLD_CHARGEPOINT_STATE, 2)]
 
 )
 def test_update_values(old_chargepoint_state, published_topics, monkeypatch):
     # setup
     mock_pub_single = Mock()
     monkeypatch.setattr(internal_chargepoint_handler, "pub_single", mock_pub_single)
-    u = UpdateValues(0, SAMPLE_IP, "1")
+    u = UpdateValues(0, SAMPLE_IP, "1", 1)
     u.old_chargepoint_state = old_chargepoint_state
 
     # execution
diff --git a/packages/modules/vehicles/bmw/api.py b/packages/modules/vehicles/bmw/api.py
index 0f500cd8a3..b43b336661 100755
--- a/packages/modules/vehicles/bmw/api.py
+++ b/packages/modules/vehicles/bmw/api.py
@@ -34,11 +34,11 @@ def dump_json(data: dict, fout: str):
     json.dump(data, f, ensure_ascii=False, indent=4)
     f.close()
     try:
-        os.chmod(replyFile, 0o777)
+        os.chmod(replyFile, 0o666)
     except Exception as e:
         log.debug("bmw.dump_json: chmod replyFile " + replyFile + ", exception, e=" + str(e))
         log.debug("bmw.dump_json: use sudo, user: " + getpass.getuser())
-        os.system("sudo chmod 0777 " + replyFile)
+        os.system("sudo chmod 0666 " + replyFile)
 
 
 # ---------------Helper Function-------------------------------------------
diff --git a/packages/modules/vehicles/mqtt/config.py b/packages/modules/vehicles/mqtt/config.py
index da981917a3..57468121a9 100644
--- a/packages/modules/vehicles/mqtt/config.py
+++ b/packages/modules/vehicles/mqtt/config.py
@@ -5,11 +5,9 @@ def __init__(self):
 
 class MqttSocSetup:
     def __init__(self,
-                 name: str = "mqtt",
+                 name: str = "MQTT",
                  type: str = "mqtt",
-                 id: int = 0,
                  configuration: MqttSocConfiguration = None) -> None:
         self.name = name
         self.type = type
-        self.id = id
         self.configuration = configuration or MqttSocConfiguration()
diff --git a/packages/modules/vehicles/smarteq/api.py b/packages/modules/vehicles/smarteq/api.py
index b3129722e0..6afe4c0f40 100755
--- a/packages/modules/vehicles/smarteq/api.py
+++ b/packages/modules/vehicles/smarteq/api.py
@@ -109,10 +109,10 @@ def write_store(self):
         pickle.dump(self.store, tf)
         tf.close()
         try:
-            os.chmod(self.storeFile, 0o777)
+            os.chmod(self.storeFile, 0o666)
         except Exception:
             log.exception("chmod_store")
-            os.system("sudo chmod 0777 " + self.storeFile)
+            os.system("sudo chmod 0666 " + self.storeFile)
 
     # ===== get resume string ======
     def get_resume(self) -> str:
diff --git a/packages/modules/vehicles/tronity/__init__.py b/packages/modules/vehicles/tronity/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/modules/vehicles/tronity/api.py b/packages/modules/vehicles/tronity/api.py
new file mode 100644
index 0000000000..4b1ed4f19d
--- /dev/null
+++ b/packages/modules/vehicles/tronity/api.py
@@ -0,0 +1,100 @@
+#!/usr/bin/env python3
+import logging
+import jwt
+
+from dataclass_utils import asdict
+from helpermodules.pub import Pub
+from modules.common import req
+from modules.vehicles.tronity.config import TronityVehicleSocConfiguration, TronityVehicleSoc
+from modules.common.abstract_soc import SocUpdateData
+from modules.common.component_state import CarState
+from datetime import datetime
+
+log = logging.getLogger(__name__)
+
+
+def fetch_soc(config: TronityVehicleSocConfiguration, soc_update_data: SocUpdateData, vehicle: int) -> CarState:
+    log.debug("Fetching Tronity SOC")
+    session = create_session(config, vehicle)
+    tronity_vehicle_id = str(config.vehicle_id)
+    tronity_data = fetch_soc_for_vehicle(tronity_vehicle_id, session)
+    return CarState(soc=tronity_data['level'], range=tronity_data['range'], soc_timestamp=tronity_data['lastUpdate'])
+
+
+def is_token_valid(access_token: str) -> bool:
+    if not access_token or access_token == 'None':
+        log.debug("No token found")
+        return False
+    else:
+        log.debug("Found Token: %s", access_token)
+
+    decoded_data = jwt.decode(jwt=access_token, verify=False, algorithms=['HS256'], options={"verify_signature": False})
+    if datetime.utcfromtimestamp(decoded_data['exp']) < datetime.utcnow():
+        log.debug("Token expired: %s", decoded_data)
+        return False
+    else:
+        log.debug("Token still valid: %s", decoded_data)
+        return True
+
+
+def write_token_mqtt(topic: str, token: str, config: TronityVehicleSocConfiguration):
+    try:
+        config.access_token = token
+        value: TronityVehicleSoc = TronityVehicleSoc(configuration=config)
+        log.debug("saving new access token")
+        Pub().pub(topic, asdict(value))
+    except Exception as e:
+        log.exception('Token mqtt write exception ' + str(e))
+
+
+def create_session(config: TronityVehicleSocConfiguration, vehicle: int) -> req.Session:
+    session = req.Session()
+    data = {'grant_type': 'app',
+            'client_id': str(config.client_id),
+            'client_secret': str(config.client_secret)}
+
+    if not is_token_valid(str(config.access_token)):
+        log.debug("Requesting new Tronity Access Token")
+        response = session.post(
+            "https://api.tronity.tech/authentication",
+            data=data,
+        )
+
+        if response.status_code != 201:
+            raise Exception("Error requesting Tronity access token, please check client_id and client_secret: %s"
+                            % response.status_code)
+
+        access_token = response.json()['access_token']
+        log.debug("Retrieved new Tronity Access Token: %s", access_token)
+        write_token_mqtt(
+                        "openWB/set/vehicle/" + str(vehicle) + "/soc_module/config",
+                        access_token,
+                        config)
+    else:
+        log.debug("Using existing Tronity Access Token")
+        access_token = config.access_token
+
+    session.headers = {
+        'Accept': 'application/hal+json', 'Authorization': 'Bearer %s' % access_token
+    }
+    return session
+
+
+def fetch_vehicles(session: req.Session) -> dict:
+    url = 'https://api.tronity.tech/tronity/vehicles'
+    response = session.get(url)
+    if response.status_code != 200:
+        raise Exception("Error requesting vehicles from Tronity: %s" % response.status_code)
+    vehicles = response.json()
+    log.debug("Retrieved Tronity vehicles: %s", vehicles["data"])
+    return vehicles["data"]
+
+
+def fetch_soc_for_vehicle(vehicle_id: str, session: req.Session) -> dict:
+    url = 'https://api.tronity.tech/tronity/vehicles/' + str(vehicle_id) + '/last_record'
+    response = session.get(url)
+    if response.status_code != 200:
+        raise Exception("Error requesting vehicle from Tronity: %s" % response.status_code)
+    data = response.json()
+    log.debug("Retrieved Tronity data: %s", data)
+    return data
diff --git a/packages/modules/vehicles/tronity/config.py b/packages/modules/vehicles/tronity/config.py
new file mode 100644
index 0000000000..9106a960c2
--- /dev/null
+++ b/packages/modules/vehicles/tronity/config.py
@@ -0,0 +1,23 @@
+from typing import Optional
+
+
+class TronityVehicleSocConfiguration:
+    def __init__(self,
+                 vehicle_id: Optional[str] = None,
+                 client_id: Optional[str] = None,
+                 client_secret: Optional[str] = None,
+                 access_token: Optional[str] = None) -> None:
+        self.vehicle_id = vehicle_id
+        self.client_id = client_id
+        self.client_secret = client_secret
+        self.access_token = access_token
+
+
+class TronityVehicleSoc:
+    def __init__(self,
+                 name: str = "Tronity",
+                 type: str = "tronity",
+                 configuration: TronityVehicleSocConfiguration = None) -> None:
+        self.name = name
+        self.type = type
+        self.configuration = configuration or TronityVehicleSocConfiguration()
diff --git a/packages/modules/vehicles/tronity/soc.py b/packages/modules/vehicles/tronity/soc.py
new file mode 100644
index 0000000000..280d5c50b7
--- /dev/null
+++ b/packages/modules/vehicles/tronity/soc.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python3
+import logging
+
+from modules.common.abstract_device import DeviceDescriptor
+from modules.common.abstract_soc import SocUpdateData
+from modules.common.component_state import CarState
+from modules.common.configurable_vehicle import ConfigurableVehicle
+from modules.vehicles.tronity.config import TronityVehicleSoc
+from modules.vehicles.tronity.api import fetch_soc
+
+log = logging.getLogger(__name__)
+
+
+def create_vehicle(vehicle_config: TronityVehicleSoc, vehicle: int):
+    def updater(soc_update_data: SocUpdateData) -> CarState:
+        return fetch_soc(vehicle_config.configuration, soc_update_data, vehicle)
+    return ConfigurableVehicle(vehicle_config=vehicle_config, component_updater=updater, vehicle=vehicle)
+
+
+device_descriptor = DeviceDescriptor(configuration_factory=TronityVehicleSoc)
diff --git a/packages/modules/web_themes/__init__.py b/packages/modules/web_themes/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/modules/web_themes/colors/__init__.py b/packages/modules/web_themes/colors/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/modules/web_themes/colors/config.py b/packages/modules/web_themes/colors/config.py
new file mode 100644
index 0000000000..a2240b2909
--- /dev/null
+++ b/packages/modules/web_themes/colors/config.py
@@ -0,0 +1,23 @@
+from helpermodules.auto_str import auto_str
+
+from modules.common.abstract_device import DeviceDescriptor
+
+
+@auto_str
+class ColorsWebThemeConfiguration:
+    def __init__(self) -> None:
+        pass
+
+
+@auto_str
+class ColorsWebTheme:
+    def __init__(self,
+                 name: str = "Colors",
+                 type: str = "colors",
+                 configuration: ColorsWebThemeConfiguration = None) -> None:
+        self.name = name
+        self.type = type
+        self.configuration = configuration or ColorsWebThemeConfiguration()
+
+
+theme_descriptor = DeviceDescriptor(configuration_factory=ColorsWebTheme)
diff --git a/packages/modules/web_themes/colors/source/.eslintrc b/packages/modules/web_themes/colors/source/.eslintrc
new file mode 100755
index 0000000000..6c4baf91b8
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/.eslintrc
@@ -0,0 +1,24 @@
+{
+  "root": true,
+	"parser": "vue-eslint-parser",
+  "parserOptions": {
+    "parser": "@typescript-eslint/parser",
+    "sourceType": "module"
+  },
+  "plugins": [
+    "@typescript-eslint"
+  ],
+	"extends": [
+		"eslint:recommended",
+    "plugin:@typescript-eslint/eslint-recommended",
+    "plugin:@typescript-eslint/recommended",
+    "plugin:vue/vue3-recommended",
+		"prettier"
+  ],
+  "rules": {
+    // override/add rules settings here, such as:
+    // 'vue/no-unused-vars': 'error'
+		"no-unused-vars": "off",
+    "@typescript-eslint/no-unused-vars": "error"
+  }
+}
\ No newline at end of file
diff --git a/packages/modules/web_themes/colors/source/.gitignore b/packages/modules/web_themes/colors/source/.gitignore
new file mode 100644
index 0000000000..b512c09d47
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/.gitignore
@@ -0,0 +1 @@
+node_modules
\ No newline at end of file
diff --git a/packages/modules/web_themes/colors/source/.prettierignore b/packages/modules/web_themes/colors/source/.prettierignore
new file mode 100755
index 0000000000..6969560901
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/.prettierignore
@@ -0,0 +1,2 @@
+**/*.css
+src/assets/fonts
\ No newline at end of file
diff --git a/packages/modules/web_themes/colors/source/.prettierrc.json b/packages/modules/web_themes/colors/source/.prettierrc.json
new file mode 100755
index 0000000000..a627a0f2b3
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/.prettierrc.json
@@ -0,0 +1,10 @@
+{
+  "trailingComma": "all",
+  "tabWidth": 2,
+	"useTabs": true, 
+  "semi": false,
+  "singleQuote": true,
+	"quoteProps":"as-needed",
+	"bracketSpacing": true,
+  "printWidth" : 80
+}
\ No newline at end of file
diff --git a/packages/modules/web_themes/colors/source/README.md b/packages/modules/web_themes/colors/source/README.md
new file mode 100644
index 0000000000..ce4076f58a
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/README.md
@@ -0,0 +1,61 @@
+# wbcolortheme2
+Ein Theme für die openWB2 (http://openwb.de)
+
+Alpha version, basierend auf der Alpha der openwb2.
+
+![dark background](colors1.png)
+![white background](colors2.png)
+![responsive view](colors3.png)
+
+Das theme ist noch nicht in die openwb2 integriert. (Die openWB-Konfiguration ist aber integriert.) Es läuft standalone auf dem gleichen Rechner wie die openwb2 selbst. Entweder direkt auf dem Raspberry Pi oder in einem Docker Container:
+
+## Installation auf Raspi mit openwb2 (node.js notwendig):
+
+Code auschecken, dann ```cd wbcolortheme2```
+
+Installieren:
+```
+npm install
+```
+
+Webserver mit theme starten:
+```
+npm run dev
+```
+
+Zugriff im Browser:
+```
+http://<address of openWB>:3000
+``` 
+
+## Docker-Installation (zusammen mit openwb2)
+
+Die Dateien aus dem "docker-scripts"-Verzeichnis in einen Ordner kopieren.
+
+In diesem Ordner den Container bauen:
+``` 
+docker build -t openwb2 . 
+```
+
+In einer shell den Container starten:
+``` 
+docker run --name openwb2 -p 7080:80 -p 1883:1883 -p 9001:9001 -p 3000:3000 -p 1886:1886 -it openwb2 
+```
+
+In einer zweiten shell das colors-theme starten:
+``` 
+docker exec -ti openwb2 sh -c "cd /home/openwb/wbcolortheme2;npm run serve" 
+```
+
+Im Browser kann nun das Standard-Theme und das colors-theme zugegriffen werden:
+
+openwb2 frontend (mit standard-theme und Konfiguration):
+``` 
+http://localhost:7080 
+```
+
+colors-Theme:
+``` 
+http://localhost:3000 
+```
+
diff --git a/packages/modules/web_themes/colors/source/env.d.ts b/packages/modules/web_themes/colors/source/env.d.ts
new file mode 100755
index 0000000000..11f02fe2a0
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/env.d.ts
@@ -0,0 +1 @@
+/// <reference types="vite/client" />
diff --git a/packages/modules/web_themes/colors/source/index.html b/packages/modules/web_themes/colors/source/index.html
new file mode 100755
index 0000000000..d0d1cfa4cb
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/index.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<html lang="en" class="theme-gray shcolors-normal">
+	<head>
+		<meta charset="UTF-8" />
+		<link rel="icon" href="/favicon.ico" />
+		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+		<title>WBColortheme 2</title>
+	</head>
+	<body>
+		<div id="app"></div>
+		<script type="module" src="/src/main.ts"></script>
+	</body>
+</html>
diff --git a/packages/modules/web_themes/colors/source/package.json b/packages/modules/web_themes/colors/source/package.json
new file mode 100755
index 0000000000..db98b8f675
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/package.json
@@ -0,0 +1,46 @@
+{
+  "name": "wbcolortheme21",
+  "version": "0.0.0",
+  "license": "MIT",
+  "scripts": {
+    "dev": "vite --host",
+    "build": "vue-tsc --noEmit && vite build --base=/openWB/web/themes/colors --outDir=../web --emptyOutDir",
+    "preview": "vite preview --port 5050 --host",
+    "typecheck": "vue-tsc --noEmit",
+    "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
+    "prettier-format": "prettier 'src/' --write"
+  },
+  "dependencies": {
+    "@popperjs/core": "^2.11.8",
+    "bootstrap": "^5.3.0",
+    "d3": "^7.8.5",
+    "mqtt": "^5.1.0",
+    "process": "^0.11.10",
+    "swiper": "^10.1.0",
+    "vue": "^3.3.4"
+  },
+  "devDependencies": {
+    "@babel/types": "^7.22.5",
+    "@esbuild-plugins/node-globals-polyfill": "^0.2.3",
+    "@esbuild-plugins/node-modules-polyfill": "^0.2.2",
+    "@rushstack/eslint-patch": "^1.3.2",
+    "@types/bootstrap": "^5.2.6",
+    "@types/d3": "^7.1.0",
+    "@types/node": "^20.3.1",
+    "@typescript-eslint/eslint-plugin": "^6.7.4",
+    "@typescript-eslint/parser": "^6.7.4",
+    "@vitejs/plugin-vue": "^4.4.0",
+    "@vue/eslint-config-prettier": "^8.0.0",
+    "@vue/eslint-config-typescript": "^12.0.0",
+    "@vue/tsconfig": "^0.4.0",
+    "esbuild": "^0.19.4",
+    "eslint": "^8.43.0",
+    "eslint-plugin-vue": "^9.14.1",
+    "prettier": "^3.0.1",
+    "rollup": "3.x",
+    "rollup-plugin-polyfill-node": "^0.12.0",
+    "typescript": "^5.1.3",
+    "vite": "^4.4.11",
+    "vue-tsc": "^1.8.0"
+  }
+}
diff --git a/packages/modules/web_themes/colors/source/prettierrc.json b/packages/modules/web_themes/colors/source/prettierrc.json
new file mode 100755
index 0000000000..0207fbec52
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/prettierrc.json
@@ -0,0 +1,7 @@
+{
+  "trailingComma": "all",
+  "tabWidth": 2,
+  "semi": false,
+  "singleQuote": true,
+  "printWidth" : 80
+}
\ No newline at end of file
diff --git a/packages/modules/web_themes/colors/source/public/favicon.ico b/packages/modules/web_themes/colors/source/public/favicon.ico
new file mode 100644
index 0000000000..df36fcfb72
Binary files /dev/null and b/packages/modules/web_themes/colors/source/public/favicon.ico differ
diff --git a/packages/modules/web_themes/colors/source/src/App.vue b/packages/modules/web_themes/colors/source/src/App.vue
new file mode 100644
index 0000000000..e4e7bb0dc0
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/App.vue
@@ -0,0 +1,25 @@
+/* * App.vue * colors theme for openwb 2.0 * Copyright (c) 2022 Claus Hagen */
+
+<template>
+	<div id="app" class="m-0 p-0">
+		<NavigationBar />
+		<div class="container-lg p-0">
+			<div class="row p-0 m-0">
+				<div class="col-12 p-0 m-0">
+					<ColorsTheme />
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import ColorsTheme from './views/ColorsTheme.vue'
+import NavigationBar from './components/NavigationBar.vue'
+</script>
+
+<style>
+@import './assets/css/style.css';
+@import './assets/fonts/fontawesome-free-6.0.0-web/css/fontawesome.min.css';
+@import './assets/fonts/fontawesome-free-6.0.0-web/css/solid.min.css';
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/assets/css/style.css b/packages/modules/web_themes/colors/source/src/assets/css/style.css
new file mode 100644
index 0000000000..ed059d15e7
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/css/style.css
@@ -0,0 +1,286 @@
+/*
+ * style.css
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+html {
+	min-height: 100%;
+	min-width: 100%;
+}
+
+body {
+	color: var(--color-fg);
+	background: var(--color-bg);
+}
+body > .container {
+	padding: 55px 15px 0 15px;
+}
+
+/* Extra small devices (portrait phones, less than 576px) */
+/* No media query since this is the default in Bootstrap */
+html {
+	font-size: 12px;
+}
+@media screen and (min-width: 400px) {
+	html {
+		font-size: 15px;
+	}
+}
+/* Small devices (landscape phones, 576px and up) */
+@media screen and (min-width: 576px) {
+	html {
+		font-size: 20px;
+	}
+}
+/* Medium devices (tablets, 768px and up) */
+@media screen and (min-width: 768px) {
+	html {
+		font-size: 22px;
+	}
+}
+/* Large devices (desktops, 992px and up) */
+@media screen and (min-width: 992px) {
+	html {
+		font-size: 11px;
+	}
+}
+/* Extra large devices (very large desktops, 1200px and up) */
+@media screen and (min-width: 1200px) {
+	html {
+		font-size: 14px;
+	}
+}
+
+/* Extra extra large devices (very large desktops, 1400px and up) */
+@media screen and (min-width: 1400px) {
+	html {
+		font-size: 16px;
+	}
+}
+/* Extra extra extra large devices (very large desktops, 2000px and up) */
+@media screen and (min-width: 2000px) {
+	html {
+		font-size: 16px;
+	}
+}
+.verySmallTextSize {
+	font-size: var(--font-verysmall);
+}
+.smallTextSize {
+	font-size: var(--font-medium);
+}
+.regularTextSize {
+	font-size: var(--font-normal);
+}
+.largeTextSize {
+	font-size: var(--font-large);
+}
+.buttonTextSize {
+	font-size: var(--font-large);
+}
+
+h3 {
+	font-size: var(--font-extralarge);
+	color: var(--color-title);
+	font-weight: bold;
+}
+h4 {
+	color: var(--color-axis);
+}
+
+body > .container-fluid {
+	padding: 55px 15px 0 15px;
+}
+
+.tablecell {
+	font-size: var(--font-normal);
+	line-height: 1rem;
+	vertical-align: middle;
+	padding: 0;
+	background-color: var(--color-bg);
+}
+
+.maxPrice {
+	text-align: center;
+}
+/* Overarching colors and fonts*/
+:root {
+	--fontCol: rgba(160, 160, 160, 0.82);
+	--gridCol: rgba(160, 160, 160, 0.82);
+	--xgridCol: rgba(160, 160, 160, 0.82);
+	--tickCol: rgba(160, 160, 160, 0.82);
+	--evuCol: rgba(178, 34, 34, 1);
+	--color-switchRed: #d12020;
+	--color-switchGreen: #4db662;
+	--color-switchBlue: steelblue;
+	--color-cp1: #6baed6;
+	--color-cp2: #4292c6;
+	--color-cp3: #2171b5;
+	--color-cp4: #9ecae1;
+	--color-cp5: #c6dbef;
+	--color-cp6: #deebf7;
+	--color-cp7: #08519c;
+	--color-cp8: #6baed6;
+	--color-evu: firebrick;
+	--color-pv: #33a02c;
+	--color-house: #7f7f7f;
+	--color-charging: #1f78b4;
+	--color-export: #b2df8a;
+	--color-battery: goldenrod;
+	--color-input: lightgrey;
+	--font-normal: 1.4rem;
+	--font-large: 1.6rem;
+	--font-medium: 1.2rem;
+	--font-small: 1rem;
+	--font-verysmall: 0.7rem;
+	--font-extralarge: 1.6rem;
+	--font-settings: 16px;
+}
+
+/* Theme color sets */
+
+.theme-light {
+	--color-bg: white;
+	--color-axis: gray;
+	--color-grid: #bbbbbb;
+	--color-menu: gray;
+	--color-frame: white;
+	--color-subframe: lightgrey;
+	--color-fg: black;
+	--color-scale: lightgrey;
+	--color-title: black;
+	--padding-widget: 5px;
+	--fontCol: rgba(255, 255, 255, 0.82);
+	--gridCol: rgba(255, 255, 255, 0.82);
+	--xgridCol: rgba(255, 255, 255, 0.1);
+	--tickCol: rgba(255, 255, 255, 0.82);
+	--evuCol: rgba(255, 0, 0, 0.7);
+}
+
+.theme-blue {
+	--color-bg: midnightblue;
+	--color-axis: steelblue;
+	--color-grid: steelblue;
+	--color-menu: lightskyblue;
+	--color-frame: lightskyblue;
+	--color-subframe: midnightblue;
+	--color-fg: white;
+	--color-scale: steelblue;
+	--color-title: lightgrey;
+	--padding-widget: 0px;
+}
+
+.theme-dark {
+	--color-bg: #333333;
+	--color-export: #b2df8a;
+	--color-axis: #666666;
+	--color-grid: black;
+	--color-menu: #999999;
+	--color-frame: #666666;
+	--color-subframe: #333333;
+	--color-fg: white;
+	--color-scale: #999999;
+	--color-title: lightgrey;
+	--padding-widget: 0px;
+}
+
+.shcolors-normal {
+	--color-devices: #f16913;
+	--color-sh1: #fd8d3c;
+	--color-sh2: #f16913;
+	--color-sh3: #d94801;
+	--color-sh4: #fdae6b;
+	--color-sh5: #fdd0a2;
+	--color-sh6: #fee6ce;
+	--color-sh7: #a63603;
+	--color-sh8: #fe4b83;
+	--color-sh9: #e4419d;
+}
+
+.shcolors-advanced {
+	--color-devices: #ff4d4d;
+	--color-sh1: #ffffff;
+	--color-sh2: #ff4d4d;
+	--color-sh3: #668cff;
+	--color-sh4: #ff6600;
+	--color-sh5: #00ff00;
+	--color-sh6: #ffff00;
+	--color-sh7: #ff00ff;
+	--color-sh8: #993300;
+	--color-sh9: #a366ff;
+}
+
+.shcolors-standard {
+	--color-devices: rgba(200, 50, 200, 0.7);
+	--color-sh1: rgba(200, 150, 200, 0.7);
+	--color-sh2: rgba(200, 100, 200, 0.7);
+	--color-sh3: rgba(200, 50, 200, 0.7);
+	--color-sh4: rgba(200, 0, 200, 0.7);
+	--color-sh5: rgba(150, 200, 200, 0.7);
+	--color-sh6: rgba(100, 200, 200, 0.7);
+	--color-sh7: rgba(50, 200, 200, 0.7);
+	--color-sh8: rgba(0, 200, 200, 0.7);
+	--color-sh9: rgba(200, 200, 200, 0.7);
+}
+
+.openwb-devices {
+	color: #ccffff;
+	background-color: #009696;
+}
+
+.colormenu {
+	background-color: var(--color-frame);
+}
+.wb-widget {
+	background-color: var(--color-bg);
+	border: 0.1px dotted var(--color-frame);
+	align-self: stretch;
+	width: 100%;
+	border-radius: 30px;
+}
+
+.wb-subwidget {
+	border: 0px solid var(--color-subframe);
+	padding: var(--padding-widget);
+}
+th {
+	color: var(--color-axis);
+}
+.table-borderless td {
+	border: 0;
+}
+.popup-header {
+	color: midnightblue;
+}
+.axis text {
+	color: var(--color-axis);
+	stroke-width: 0;
+}
+.phasesInUse {
+	font-family: monospace;
+	color: white;
+	background: var(--color-menu);
+	font-size: var(--font-verysmall);
+	padding: 0.4rem;
+	padding-bottom: 0.1rem;
+	padding-top: 0.2rem;
+	margin: 0.2rem;
+	margin-top: 0rem;
+	margin-bottom: 0rem;
+}
+
+.swiper-slide-active {
+	display: flex;
+}
+.swiper-slide {
+	display: flex;
+}
+
+swiper-slide {
+	display: flex;
+}
+
+option {
+	color: blue;
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/LICENSE.txt b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/LICENSE.txt
new file mode 100755
index 0000000000..cc557ece45
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/LICENSE.txt
@@ -0,0 +1,165 @@
+Fonticons, Inc. (https://fontawesome.com)
+
+--------------------------------------------------------------------------------
+
+Font Awesome Free License
+
+Font Awesome Free is free, open source, and GPL friendly. You can use it for
+commercial projects, open source projects, or really almost whatever you want.
+Full Font Awesome Free license: https://fontawesome.com/license/free.
+
+--------------------------------------------------------------------------------
+
+# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
+
+The Font Awesome Free download is licensed under a Creative Commons
+Attribution 4.0 International License and applies to all icons packaged
+as SVG and JS file types.
+
+--------------------------------------------------------------------------------
+
+# Fonts: SIL OFL 1.1 License
+
+In the Font Awesome Free download, the SIL OFL license applies to all icons
+packaged as web and desktop font files.
+
+Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com)
+with Reserved Font Name: "Font Awesome".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+SIL OPEN FONT LICENSE
+Version 1.1 - 26 February 2007
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting — in part or in whole — any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+--------------------------------------------------------------------------------
+
+# Code: MIT License (https://opensource.org/licenses/MIT)
+
+In the Font Awesome Free download, the MIT license applies to all non-font and
+non-icon files.
+
+Copyright 2022 Fonticons, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in the
+Software without restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--------------------------------------------------------------------------------
+
+# Attribution
+
+Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
+Awesome Free files already contain embedded comments with sufficient
+attribution, so you shouldn't need to do anything additional when using these
+files normally.
+
+We've kept attribution comments terse, so we ask that you do not actively work
+to remove them from files, especially code. They're a great way for folks to
+learn about Font Awesome.
+
+--------------------------------------------------------------------------------
+
+# Brand Icons
+
+All brand icons are trademarks of their respective owners. The use of these
+trademarks does not indicate endorsement of the trademark holder by Font
+Awesome, nor vice versa. **Please do not use brand logos for any purpose except
+to represent the company, product, or service to which they refer.**
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._all.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._all.css
new file mode 100755
index 0000000000..447a04d5f1
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._all.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._all.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._all.min.css
new file mode 100755
index 0000000000..9c8f962d9e
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._all.min.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._fontawesome.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._fontawesome.css
new file mode 100755
index 0000000000..6a5b89ea11
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._fontawesome.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._fontawesome.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._fontawesome.min.css
new file mode 100755
index 0000000000..925e4a1996
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._fontawesome.min.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._regular.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._regular.css
new file mode 100755
index 0000000000..b810469183
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._regular.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._regular.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._regular.min.css
new file mode 100755
index 0000000000..35578f7fc2
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._regular.min.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._solid.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._solid.css
new file mode 100755
index 0000000000..2fa321599d
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._solid.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._solid.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._solid.min.css
new file mode 100755
index 0000000000..ec4807886b
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._solid.min.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._svg-with-js.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._svg-with-js.css
new file mode 100755
index 0000000000..b7aa0e4381
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._svg-with-js.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._svg-with-js.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._svg-with-js.min.css
new file mode 100755
index 0000000000..92fab423e8
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._svg-with-js.min.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-font-face.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-font-face.css
new file mode 100755
index 0000000000..059b5fedee
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-font-face.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-font-face.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-font-face.min.css
new file mode 100755
index 0000000000..1a81500b6f
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-font-face.min.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-shims.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-shims.css
new file mode 100755
index 0000000000..e9e5377d94
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-shims.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-shims.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-shims.min.css
new file mode 100755
index 0000000000..d405e0da63
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v4-shims.min.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v5-font-face.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v5-font-face.css
new file mode 100755
index 0000000000..fc93c14846
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v5-font-face.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v5-font-face.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v5-font-face.min.css
new file mode 100755
index 0000000000..264ddf7367
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/._v5-font-face.min.css differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/fontawesome.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/fontawesome.min.css
new file mode 100755
index 0000000000..4d8a583846
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/fontawesome.min.css
@@ -0,0 +1,4587 @@
+/*!
+ * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
+ */
+.fa {
+	font-family: var(--fa-style-family, 'Font Awesome 6 Free');
+	font-weight: var(--fa-style, 900);
+}
+.fa,
+.fa-brands,
+.fa-duotone,
+.fa-light,
+.fa-regular,
+.fa-solid,
+.fa-thin,
+.fab,
+.fad,
+.fal,
+.far,
+.fas,
+.fat {
+	-moz-osx-font-smoothing: grayscale;
+	-webkit-font-smoothing: antialiased;
+	display: var(--fa-display, inline-block);
+	font-style: normal;
+	font-variant: normal;
+	line-height: 1;
+	text-rendering: auto;
+}
+.fa-1x {
+	font-size: 1em;
+}
+.fa-2x {
+	font-size: 2em;
+}
+.fa-3x {
+	font-size: 3em;
+}
+.fa-4x {
+	font-size: 4em;
+}
+.fa-5x {
+	font-size: 5em;
+}
+.fa-6x {
+	font-size: 6em;
+}
+.fa-7x {
+	font-size: 7em;
+}
+.fa-8x {
+	font-size: 8em;
+}
+.fa-9x {
+	font-size: 9em;
+}
+.fa-10x {
+	font-size: 10em;
+}
+.fa-2xs {
+	font-size: 0.625em;
+	line-height: 0.1em;
+	vertical-align: 0.225em;
+}
+.fa-xs {
+	font-size: 0.75em;
+	line-height: 0.08333em;
+	vertical-align: 0.125em;
+}
+.fa-sm {
+	font-size: 0.875em;
+	line-height: 0.07143em;
+	vertical-align: 0.05357em;
+}
+.fa-lg {
+	font-size: 1.25em;
+	line-height: 0.05em;
+	vertical-align: -0.075em;
+}
+.fa-xl {
+	font-size: 1.5em;
+	line-height: 0.04167em;
+	vertical-align: -0.125em;
+}
+.fa-2xl {
+	font-size: 2em;
+	line-height: 0.03125em;
+	vertical-align: -0.1875em;
+}
+.fa-fw {
+	text-align: center;
+	width: 1.25em;
+}
+.fa-ul {
+	list-style-type: none;
+	margin-left: var(--fa-li-margin, 2.5em);
+	padding-left: 0;
+}
+.fa-ul > li {
+	position: relative;
+}
+.fa-li {
+	left: calc(var(--fa-li-width, 2em) * -1);
+	position: absolute;
+	text-align: center;
+	width: var(--fa-li-width, 2em);
+	line-height: inherit;
+}
+.fa-border {
+	border-radius: var(--fa-border-radius, 0.1em);
+	border: var(--fa-border-width, 0.08em) var(--fa-border-style, solid)
+		var(--fa-border-color, #eee);
+	padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);
+}
+.fa-pull-left {
+	float: left;
+	margin-right: var(--fa-pull-margin, 0.3em);
+}
+.fa-pull-right {
+	float: right;
+	margin-left: var(--fa-pull-margin, 0.3em);
+}
+.fa-beat {
+	-webkit-animation-name: fa-beat;
+	animation-name: fa-beat;
+	-webkit-animation-delay: var(--fa-animation-delay, 0);
+	animation-delay: var(--fa-animation-delay, 0);
+	-webkit-animation-direction: var(--fa-animation-direction, normal);
+	animation-direction: var(--fa-animation-direction, normal);
+	-webkit-animation-duration: var(--fa-animation-duration, 1s);
+	animation-duration: var(--fa-animation-duration, 1s);
+	-webkit-animation-iteration-count: var(
+		--fa-animation-iteration-count,
+		infinite
+	);
+	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+	-webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
+	animation-timing-function: var(--fa-animation-timing, ease-in-out);
+}
+.fa-bounce {
+	-webkit-animation-name: fa-bounce;
+	animation-name: fa-bounce;
+	-webkit-animation-delay: var(--fa-animation-delay, 0);
+	animation-delay: var(--fa-animation-delay, 0);
+	-webkit-animation-direction: var(--fa-animation-direction, normal);
+	animation-direction: var(--fa-animation-direction, normal);
+	-webkit-animation-duration: var(--fa-animation-duration, 1s);
+	animation-duration: var(--fa-animation-duration, 1s);
+	-webkit-animation-iteration-count: var(
+		--fa-animation-iteration-count,
+		infinite
+	);
+	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+	-webkit-animation-timing-function: var(
+		--fa-animation-timing,
+		cubic-bezier(0.28, 0.84, 0.42, 1)
+	);
+	animation-timing-function: var(
+		--fa-animation-timing,
+		cubic-bezier(0.28, 0.84, 0.42, 1)
+	);
+}
+.fa-fade {
+	-webkit-animation-name: fa-fade;
+	animation-name: fa-fade;
+	-webkit-animation-iteration-count: var(
+		--fa-animation-iteration-count,
+		infinite
+	);
+	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+	-webkit-animation-timing-function: var(
+		--fa-animation-timing,
+		cubic-bezier(0.4, 0, 0.6, 1)
+	);
+	animation-timing-function: var(
+		--fa-animation-timing,
+		cubic-bezier(0.4, 0, 0.6, 1)
+	);
+}
+.fa-beat-fade,
+.fa-fade {
+	-webkit-animation-delay: var(--fa-animation-delay, 0);
+	animation-delay: var(--fa-animation-delay, 0);
+	-webkit-animation-direction: var(--fa-animation-direction, normal);
+	animation-direction: var(--fa-animation-direction, normal);
+	-webkit-animation-duration: var(--fa-animation-duration, 1s);
+	animation-duration: var(--fa-animation-duration, 1s);
+}
+.fa-beat-fade {
+	-webkit-animation-name: fa-beat-fade;
+	animation-name: fa-beat-fade;
+	-webkit-animation-iteration-count: var(
+		--fa-animation-iteration-count,
+		infinite
+	);
+	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+	-webkit-animation-timing-function: var(
+		--fa-animation-timing,
+		cubic-bezier(0.4, 0, 0.6, 1)
+	);
+	animation-timing-function: var(
+		--fa-animation-timing,
+		cubic-bezier(0.4, 0, 0.6, 1)
+	);
+}
+.fa-flip {
+	-webkit-animation-name: fa-flip;
+	animation-name: fa-flip;
+	-webkit-animation-delay: var(--fa-animation-delay, 0);
+	animation-delay: var(--fa-animation-delay, 0);
+	-webkit-animation-direction: var(--fa-animation-direction, normal);
+	animation-direction: var(--fa-animation-direction, normal);
+	-webkit-animation-duration: var(--fa-animation-duration, 1s);
+	animation-duration: var(--fa-animation-duration, 1s);
+	-webkit-animation-iteration-count: var(
+		--fa-animation-iteration-count,
+		infinite
+	);
+	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+	-webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
+	animation-timing-function: var(--fa-animation-timing, ease-in-out);
+}
+.fa-shake {
+	-webkit-animation-name: fa-shake;
+	animation-name: fa-shake;
+	-webkit-animation-duration: var(--fa-animation-duration, 1s);
+	animation-duration: var(--fa-animation-duration, 1s);
+	-webkit-animation-iteration-count: var(
+		--fa-animation-iteration-count,
+		infinite
+	);
+	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+	-webkit-animation-timing-function: var(--fa-animation-timing, linear);
+	animation-timing-function: var(--fa-animation-timing, linear);
+}
+.fa-shake,
+.fa-spin {
+	-webkit-animation-delay: var(--fa-animation-delay, 0);
+	animation-delay: var(--fa-animation-delay, 0);
+	-webkit-animation-direction: var(--fa-animation-direction, normal);
+	animation-direction: var(--fa-animation-direction, normal);
+}
+.fa-spin {
+	-webkit-animation-name: fa-spin;
+	animation-name: fa-spin;
+	-webkit-animation-duration: var(--fa-animation-duration, 2s);
+	animation-duration: var(--fa-animation-duration, 2s);
+	-webkit-animation-iteration-count: var(
+		--fa-animation-iteration-count,
+		infinite
+	);
+	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+	-webkit-animation-timing-function: var(--fa-animation-timing, linear);
+	animation-timing-function: var(--fa-animation-timing, linear);
+}
+.fa-spin-reverse {
+	--fa-animation-direction: reverse;
+}
+.fa-pulse,
+.fa-spin-pulse {
+	-webkit-animation-name: fa-spin;
+	animation-name: fa-spin;
+	-webkit-animation-direction: var(--fa-animation-direction, normal);
+	animation-direction: var(--fa-animation-direction, normal);
+	-webkit-animation-duration: var(--fa-animation-duration, 1s);
+	animation-duration: var(--fa-animation-duration, 1s);
+	-webkit-animation-iteration-count: var(
+		--fa-animation-iteration-count,
+		infinite
+	);
+	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+	-webkit-animation-timing-function: var(--fa-animation-timing, steps(8));
+	animation-timing-function: var(--fa-animation-timing, steps(8));
+}
+@media (prefers-reduced-motion: reduce) {
+	.fa-beat,
+	.fa-beat-fade,
+	.fa-bounce,
+	.fa-fade,
+	.fa-flip,
+	.fa-pulse,
+	.fa-shake,
+	.fa-spin,
+	.fa-spin-pulse {
+		-webkit-animation-delay: -1ms;
+		animation-delay: -1ms;
+		-webkit-animation-duration: 1ms;
+		animation-duration: 1ms;
+		-webkit-animation-iteration-count: 1;
+		animation-iteration-count: 1;
+		transition-delay: 0s;
+		transition-duration: 0s;
+	}
+}
+@-webkit-keyframes fa-beat {
+	0%,
+	90% {
+		-webkit-transform: scale(1);
+		transform: scale(1);
+	}
+	45% {
+		-webkit-transform: scale(var(--fa-beat-scale, 1.25));
+		transform: scale(var(--fa-beat-scale, 1.25));
+	}
+}
+@keyframes fa-beat {
+	0%,
+	90% {
+		-webkit-transform: scale(1);
+		transform: scale(1);
+	}
+	45% {
+		-webkit-transform: scale(var(--fa-beat-scale, 1.25));
+		transform: scale(var(--fa-beat-scale, 1.25));
+	}
+}
+@-webkit-keyframes fa-bounce {
+	0% {
+		-webkit-transform: scale(1) translateY(0);
+		transform: scale(1) translateY(0);
+	}
+	10% {
+		-webkit-transform: scale(
+				var(--fa-bounce-start-scale-x, 1.1),
+				var(--fa-bounce-start-scale-y, 0.9)
+			)
+			translateY(0);
+		transform: scale(
+				var(--fa-bounce-start-scale-x, 1.1),
+				var(--fa-bounce-start-scale-y, 0.9)
+			)
+			translateY(0);
+	}
+	30% {
+		-webkit-transform: scale(
+				var(--fa-bounce-jump-scale-x, 0.9),
+				var(--fa-bounce-jump-scale-y, 1.1)
+			)
+			translateY(var(--fa-bounce-height, -0.5em));
+		transform: scale(
+				var(--fa-bounce-jump-scale-x, 0.9),
+				var(--fa-bounce-jump-scale-y, 1.1)
+			)
+			translateY(var(--fa-bounce-height, -0.5em));
+	}
+	50% {
+		-webkit-transform: scale(
+				var(--fa-bounce-land-scale-x, 1.05),
+				var(--fa-bounce-land-scale-y, 0.95)
+			)
+			translateY(0);
+		transform: scale(
+				var(--fa-bounce-land-scale-x, 1.05),
+				var(--fa-bounce-land-scale-y, 0.95)
+			)
+			translateY(0);
+	}
+	57% {
+		-webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -0.125em));
+		transform: scale(1) translateY(var(--fa-bounce-rebound, -0.125em));
+	}
+	64% {
+		-webkit-transform: scale(1) translateY(0);
+		transform: scale(1) translateY(0);
+	}
+	to {
+		-webkit-transform: scale(1) translateY(0);
+		transform: scale(1) translateY(0);
+	}
+}
+@keyframes fa-bounce {
+	0% {
+		-webkit-transform: scale(1) translateY(0);
+		transform: scale(1) translateY(0);
+	}
+	10% {
+		-webkit-transform: scale(
+				var(--fa-bounce-start-scale-x, 1.1),
+				var(--fa-bounce-start-scale-y, 0.9)
+			)
+			translateY(0);
+		transform: scale(
+				var(--fa-bounce-start-scale-x, 1.1),
+				var(--fa-bounce-start-scale-y, 0.9)
+			)
+			translateY(0);
+	}
+	30% {
+		-webkit-transform: scale(
+				var(--fa-bounce-jump-scale-x, 0.9),
+				var(--fa-bounce-jump-scale-y, 1.1)
+			)
+			translateY(var(--fa-bounce-height, -0.5em));
+		transform: scale(
+				var(--fa-bounce-jump-scale-x, 0.9),
+				var(--fa-bounce-jump-scale-y, 1.1)
+			)
+			translateY(var(--fa-bounce-height, -0.5em));
+	}
+	50% {
+		-webkit-transform: scale(
+				var(--fa-bounce-land-scale-x, 1.05),
+				var(--fa-bounce-land-scale-y, 0.95)
+			)
+			translateY(0);
+		transform: scale(
+				var(--fa-bounce-land-scale-x, 1.05),
+				var(--fa-bounce-land-scale-y, 0.95)
+			)
+			translateY(0);
+	}
+	57% {
+		-webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -0.125em));
+		transform: scale(1) translateY(var(--fa-bounce-rebound, -0.125em));
+	}
+	64% {
+		-webkit-transform: scale(1) translateY(0);
+		transform: scale(1) translateY(0);
+	}
+	to {
+		-webkit-transform: scale(1) translateY(0);
+		transform: scale(1) translateY(0);
+	}
+}
+@-webkit-keyframes fa-fade {
+	50% {
+		opacity: var(--fa-fade-opacity, 0.4);
+	}
+}
+@keyframes fa-fade {
+	50% {
+		opacity: var(--fa-fade-opacity, 0.4);
+	}
+}
+@-webkit-keyframes fa-beat-fade {
+	0%,
+	to {
+		opacity: var(--fa-beat-fade-opacity, 0.4);
+		-webkit-transform: scale(1);
+		transform: scale(1);
+	}
+	50% {
+		opacity: 1;
+		-webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
+		transform: scale(var(--fa-beat-fade-scale, 1.125));
+	}
+}
+@keyframes fa-beat-fade {
+	0%,
+	to {
+		opacity: var(--fa-beat-fade-opacity, 0.4);
+		-webkit-transform: scale(1);
+		transform: scale(1);
+	}
+	50% {
+		opacity: 1;
+		-webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
+		transform: scale(var(--fa-beat-fade-scale, 1.125));
+	}
+}
+@-webkit-keyframes fa-flip {
+	50% {
+		-webkit-transform: rotate3d(
+			var(--fa-flip-x, 0),
+			var(--fa-flip-y, 1),
+			var(--fa-flip-z, 0),
+			var(--fa-flip-angle, -180deg)
+		);
+		transform: rotate3d(
+			var(--fa-flip-x, 0),
+			var(--fa-flip-y, 1),
+			var(--fa-flip-z, 0),
+			var(--fa-flip-angle, -180deg)
+		);
+	}
+}
+@keyframes fa-flip {
+	50% {
+		-webkit-transform: rotate3d(
+			var(--fa-flip-x, 0),
+			var(--fa-flip-y, 1),
+			var(--fa-flip-z, 0),
+			var(--fa-flip-angle, -180deg)
+		);
+		transform: rotate3d(
+			var(--fa-flip-x, 0),
+			var(--fa-flip-y, 1),
+			var(--fa-flip-z, 0),
+			var(--fa-flip-angle, -180deg)
+		);
+	}
+}
+@-webkit-keyframes fa-shake {
+	0% {
+		-webkit-transform: rotate(-15deg);
+		transform: rotate(-15deg);
+	}
+	4% {
+		-webkit-transform: rotate(15deg);
+		transform: rotate(15deg);
+	}
+	8%,
+	24% {
+		-webkit-transform: rotate(-18deg);
+		transform: rotate(-18deg);
+	}
+	12%,
+	28% {
+		-webkit-transform: rotate(18deg);
+		transform: rotate(18deg);
+	}
+	16% {
+		-webkit-transform: rotate(-22deg);
+		transform: rotate(-22deg);
+	}
+	20% {
+		-webkit-transform: rotate(22deg);
+		transform: rotate(22deg);
+	}
+	32% {
+		-webkit-transform: rotate(-12deg);
+		transform: rotate(-12deg);
+	}
+	36% {
+		-webkit-transform: rotate(12deg);
+		transform: rotate(12deg);
+	}
+	40%,
+	to {
+		-webkit-transform: rotate(0deg);
+		transform: rotate(0deg);
+	}
+}
+@keyframes fa-shake {
+	0% {
+		-webkit-transform: rotate(-15deg);
+		transform: rotate(-15deg);
+	}
+	4% {
+		-webkit-transform: rotate(15deg);
+		transform: rotate(15deg);
+	}
+	8%,
+	24% {
+		-webkit-transform: rotate(-18deg);
+		transform: rotate(-18deg);
+	}
+	12%,
+	28% {
+		-webkit-transform: rotate(18deg);
+		transform: rotate(18deg);
+	}
+	16% {
+		-webkit-transform: rotate(-22deg);
+		transform: rotate(-22deg);
+	}
+	20% {
+		-webkit-transform: rotate(22deg);
+		transform: rotate(22deg);
+	}
+	32% {
+		-webkit-transform: rotate(-12deg);
+		transform: rotate(-12deg);
+	}
+	36% {
+		-webkit-transform: rotate(12deg);
+		transform: rotate(12deg);
+	}
+	40%,
+	to {
+		-webkit-transform: rotate(0deg);
+		transform: rotate(0deg);
+	}
+}
+@-webkit-keyframes fa-spin {
+	0% {
+		-webkit-transform: rotate(0deg);
+		transform: rotate(0deg);
+	}
+	to {
+		-webkit-transform: rotate(1turn);
+		transform: rotate(1turn);
+	}
+}
+@keyframes fa-spin {
+	0% {
+		-webkit-transform: rotate(0deg);
+		transform: rotate(0deg);
+	}
+	to {
+		-webkit-transform: rotate(1turn);
+		transform: rotate(1turn);
+	}
+}
+.fa-rotate-90 {
+	-webkit-transform: rotate(90deg);
+	transform: rotate(90deg);
+}
+.fa-rotate-180 {
+	-webkit-transform: rotate(180deg);
+	transform: rotate(180deg);
+}
+.fa-rotate-270 {
+	-webkit-transform: rotate(270deg);
+	transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+	-webkit-transform: scaleX(-1);
+	transform: scaleX(-1);
+}
+.fa-flip-vertical {
+	-webkit-transform: scaleY(-1);
+	transform: scaleY(-1);
+}
+.fa-flip-both,
+.fa-flip-horizontal.fa-flip-vertical {
+	-webkit-transform: scale(-1);
+	transform: scale(-1);
+}
+.fa-rotate-by {
+	-webkit-transform: rotate(var(--fa-rotate-angle, none));
+	transform: rotate(var(--fa-rotate-angle, none));
+}
+.fa-stack {
+	display: inline-block;
+	height: 2em;
+	line-height: 2em;
+	position: relative;
+	vertical-align: middle;
+	width: 2.5em;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+	left: 0;
+	position: absolute;
+	text-align: center;
+	width: 100%;
+	z-index: var(--fa-stack-z-index, auto);
+}
+.fa-stack-1x {
+	line-height: inherit;
+}
+.fa-stack-2x {
+	font-size: 2em;
+}
+.fa-inverse {
+	color: var(--fa-inverse, #fff);
+}
+.fa-0:before {
+	content: '\30';
+}
+.fa-1:before {
+	content: '\31';
+}
+.fa-2:before {
+	content: '\32';
+}
+.fa-3:before {
+	content: '\33';
+}
+.fa-4:before {
+	content: '\34';
+}
+.fa-5:before {
+	content: '\35';
+}
+.fa-6:before {
+	content: '\36';
+}
+.fa-7:before {
+	content: '\37';
+}
+.fa-8:before {
+	content: '\38';
+}
+.fa-9:before {
+	content: '\39';
+}
+.fa-a:before {
+	content: '\41';
+}
+.fa-address-book:before,
+.fa-contact-book:before {
+	content: '\f2b9';
+}
+.fa-address-card:before,
+.fa-contact-card:before,
+.fa-vcard:before {
+	content: '\f2bb';
+}
+.fa-align-center:before {
+	content: '\f037';
+}
+.fa-align-justify:before {
+	content: '\f039';
+}
+.fa-align-left:before {
+	content: '\f036';
+}
+.fa-align-right:before {
+	content: '\f038';
+}
+.fa-anchor:before {
+	content: '\f13d';
+}
+.fa-angle-down:before {
+	content: '\f107';
+}
+.fa-angle-left:before {
+	content: '\f104';
+}
+.fa-angle-right:before {
+	content: '\f105';
+}
+.fa-angle-up:before {
+	content: '\f106';
+}
+.fa-angle-double-down:before,
+.fa-angles-down:before {
+	content: '\f103';
+}
+.fa-angle-double-left:before,
+.fa-angles-left:before {
+	content: '\f100';
+}
+.fa-angle-double-right:before,
+.fa-angles-right:before {
+	content: '\f101';
+}
+.fa-angle-double-up:before,
+.fa-angles-up:before {
+	content: '\f102';
+}
+.fa-ankh:before {
+	content: '\f644';
+}
+.fa-apple-alt:before,
+.fa-apple-whole:before {
+	content: '\f5d1';
+}
+.fa-archway:before {
+	content: '\f557';
+}
+.fa-arrow-down:before {
+	content: '\f063';
+}
+.fa-arrow-down-1-9:before,
+.fa-sort-numeric-asc:before,
+.fa-sort-numeric-down:before {
+	content: '\f162';
+}
+.fa-arrow-down-9-1:before,
+.fa-sort-numeric-desc:before,
+.fa-sort-numeric-down-alt:before {
+	content: '\f886';
+}
+.fa-arrow-down-a-z:before,
+.fa-sort-alpha-asc:before,
+.fa-sort-alpha-down:before {
+	content: '\f15d';
+}
+.fa-arrow-down-long:before,
+.fa-long-arrow-down:before {
+	content: '\f175';
+}
+.fa-arrow-down-short-wide:before,
+.fa-sort-amount-desc:before,
+.fa-sort-amount-down-alt:before {
+	content: '\f884';
+}
+.fa-arrow-down-wide-short:before,
+.fa-sort-amount-asc:before,
+.fa-sort-amount-down:before {
+	content: '\f160';
+}
+.fa-arrow-down-z-a:before,
+.fa-sort-alpha-desc:before,
+.fa-sort-alpha-down-alt:before {
+	content: '\f881';
+}
+.fa-arrow-left:before {
+	content: '\f060';
+}
+.fa-arrow-left-long:before,
+.fa-long-arrow-left:before {
+	content: '\f177';
+}
+.fa-arrow-pointer:before,
+.fa-mouse-pointer:before {
+	content: '\f245';
+}
+.fa-arrow-right:before {
+	content: '\f061';
+}
+.fa-arrow-right-arrow-left:before,
+.fa-exchange:before {
+	content: '\f0ec';
+}
+.fa-arrow-right-from-bracket:before,
+.fa-sign-out:before {
+	content: '\f08b';
+}
+.fa-arrow-right-long:before,
+.fa-long-arrow-right:before {
+	content: '\f178';
+}
+.fa-arrow-right-to-bracket:before,
+.fa-sign-in:before {
+	content: '\f090';
+}
+.fa-arrow-left-rotate:before,
+.fa-arrow-rotate-back:before,
+.fa-arrow-rotate-backward:before,
+.fa-arrow-rotate-left:before,
+.fa-undo:before {
+	content: '\f0e2';
+}
+.fa-arrow-right-rotate:before,
+.fa-arrow-rotate-forward:before,
+.fa-arrow-rotate-right:before,
+.fa-redo:before {
+	content: '\f01e';
+}
+.fa-arrow-trend-down:before {
+	content: '\e097';
+}
+.fa-arrow-trend-up:before {
+	content: '\e098';
+}
+.fa-arrow-turn-down:before,
+.fa-level-down:before {
+	content: '\f149';
+}
+.fa-arrow-turn-up:before,
+.fa-level-up:before {
+	content: '\f148';
+}
+.fa-arrow-up:before {
+	content: '\f062';
+}
+.fa-arrow-up-1-9:before,
+.fa-sort-numeric-up:before {
+	content: '\f163';
+}
+.fa-arrow-up-9-1:before,
+.fa-sort-numeric-up-alt:before {
+	content: '\f887';
+}
+.fa-arrow-up-a-z:before,
+.fa-sort-alpha-up:before {
+	content: '\f15e';
+}
+.fa-arrow-up-from-bracket:before {
+	content: '\e09a';
+}
+.fa-arrow-up-long:before,
+.fa-long-arrow-up:before {
+	content: '\f176';
+}
+.fa-arrow-up-right-from-square:before,
+.fa-external-link:before {
+	content: '\f08e';
+}
+.fa-arrow-up-short-wide:before,
+.fa-sort-amount-up-alt:before {
+	content: '\f885';
+}
+.fa-arrow-up-wide-short:before,
+.fa-sort-amount-up:before {
+	content: '\f161';
+}
+.fa-arrow-up-z-a:before,
+.fa-sort-alpha-up-alt:before {
+	content: '\f882';
+}
+.fa-arrows-h:before,
+.fa-arrows-left-right:before {
+	content: '\f07e';
+}
+.fa-arrows-rotate:before,
+.fa-refresh:before,
+.fa-sync:before {
+	content: '\f021';
+}
+.fa-arrows-up-down:before,
+.fa-arrows-v:before {
+	content: '\f07d';
+}
+.fa-arrows-up-down-left-right:before,
+.fa-arrows:before {
+	content: '\f047';
+}
+.fa-asterisk:before {
+	content: '\2a';
+}
+.fa-at:before {
+	content: '\40';
+}
+.fa-atom:before {
+	content: '\f5d2';
+}
+.fa-audio-description:before {
+	content: '\f29e';
+}
+.fa-austral-sign:before {
+	content: '\e0a9';
+}
+.fa-award:before {
+	content: '\f559';
+}
+.fa-b:before {
+	content: '\42';
+}
+.fa-baby:before {
+	content: '\f77c';
+}
+.fa-baby-carriage:before,
+.fa-carriage-baby:before {
+	content: '\f77d';
+}
+.fa-backward:before {
+	content: '\f04a';
+}
+.fa-backward-fast:before,
+.fa-fast-backward:before {
+	content: '\f049';
+}
+.fa-backward-step:before,
+.fa-step-backward:before {
+	content: '\f048';
+}
+.fa-bacon:before {
+	content: '\f7e5';
+}
+.fa-bacteria:before {
+	content: '\e059';
+}
+.fa-bacterium:before {
+	content: '\e05a';
+}
+.fa-bag-shopping:before,
+.fa-shopping-bag:before {
+	content: '\f290';
+}
+.fa-bahai:before {
+	content: '\f666';
+}
+.fa-baht-sign:before {
+	content: '\e0ac';
+}
+.fa-ban:before,
+.fa-cancel:before {
+	content: '\f05e';
+}
+.fa-ban-smoking:before,
+.fa-smoking-ban:before {
+	content: '\f54d';
+}
+.fa-band-aid:before,
+.fa-bandage:before {
+	content: '\f462';
+}
+.fa-barcode:before {
+	content: '\f02a';
+}
+.fa-bars:before,
+.fa-navicon:before {
+	content: '\f0c9';
+}
+.fa-bars-progress:before,
+.fa-tasks-alt:before {
+	content: '\f828';
+}
+.fa-bars-staggered:before,
+.fa-reorder:before,
+.fa-stream:before {
+	content: '\f550';
+}
+.fa-baseball-ball:before,
+.fa-baseball:before {
+	content: '\f433';
+}
+.fa-baseball-bat-ball:before {
+	content: '\f432';
+}
+.fa-basket-shopping:before,
+.fa-shopping-basket:before {
+	content: '\f291';
+}
+.fa-basketball-ball:before,
+.fa-basketball:before {
+	content: '\f434';
+}
+.fa-bath:before,
+.fa-bathtub:before {
+	content: '\f2cd';
+}
+.fa-battery-0:before,
+.fa-battery-empty:before {
+	content: '\f244';
+}
+.fa-battery-5:before,
+.fa-battery-full:before,
+.fa-battery:before {
+	content: '\f240';
+}
+.fa-battery-3:before,
+.fa-battery-half:before {
+	content: '\f242';
+}
+.fa-battery-2:before,
+.fa-battery-quarter:before {
+	content: '\f243';
+}
+.fa-battery-4:before,
+.fa-battery-three-quarters:before {
+	content: '\f241';
+}
+.fa-bed:before {
+	content: '\f236';
+}
+.fa-bed-pulse:before,
+.fa-procedures:before {
+	content: '\f487';
+}
+.fa-beer-mug-empty:before,
+.fa-beer:before {
+	content: '\f0fc';
+}
+.fa-bell:before {
+	content: '\f0f3';
+}
+.fa-bell-concierge:before,
+.fa-concierge-bell:before {
+	content: '\f562';
+}
+.fa-bell-slash:before {
+	content: '\f1f6';
+}
+.fa-bezier-curve:before {
+	content: '\f55b';
+}
+.fa-bicycle:before {
+	content: '\f206';
+}
+.fa-binoculars:before {
+	content: '\f1e5';
+}
+.fa-biohazard:before {
+	content: '\f780';
+}
+.fa-bitcoin-sign:before {
+	content: '\e0b4';
+}
+.fa-blender:before {
+	content: '\f517';
+}
+.fa-blender-phone:before {
+	content: '\f6b6';
+}
+.fa-blog:before {
+	content: '\f781';
+}
+.fa-bold:before {
+	content: '\f032';
+}
+.fa-bolt:before,
+.fa-zap:before {
+	content: '\f0e7';
+}
+.fa-bolt-lightning:before {
+	content: '\e0b7';
+}
+.fa-bomb:before {
+	content: '\f1e2';
+}
+.fa-bone:before {
+	content: '\f5d7';
+}
+.fa-bong:before {
+	content: '\f55c';
+}
+.fa-book:before {
+	content: '\f02d';
+}
+.fa-atlas:before,
+.fa-book-atlas:before {
+	content: '\f558';
+}
+.fa-bible:before,
+.fa-book-bible:before {
+	content: '\f647';
+}
+.fa-book-journal-whills:before,
+.fa-journal-whills:before {
+	content: '\f66a';
+}
+.fa-book-medical:before {
+	content: '\f7e6';
+}
+.fa-book-open:before {
+	content: '\f518';
+}
+.fa-book-open-reader:before,
+.fa-book-reader:before {
+	content: '\f5da';
+}
+.fa-book-quran:before,
+.fa-quran:before {
+	content: '\f687';
+}
+.fa-book-dead:before,
+.fa-book-skull:before {
+	content: '\f6b7';
+}
+.fa-bookmark:before {
+	content: '\f02e';
+}
+.fa-border-all:before {
+	content: '\f84c';
+}
+.fa-border-none:before {
+	content: '\f850';
+}
+.fa-border-style:before,
+.fa-border-top-left:before {
+	content: '\f853';
+}
+.fa-bowling-ball:before {
+	content: '\f436';
+}
+.fa-box:before {
+	content: '\f466';
+}
+.fa-archive:before,
+.fa-box-archive:before {
+	content: '\f187';
+}
+.fa-box-open:before {
+	content: '\f49e';
+}
+.fa-box-tissue:before {
+	content: '\e05b';
+}
+.fa-boxes-alt:before,
+.fa-boxes-stacked:before,
+.fa-boxes:before {
+	content: '\f468';
+}
+.fa-braille:before {
+	content: '\f2a1';
+}
+.fa-brain:before {
+	content: '\f5dc';
+}
+.fa-brazilian-real-sign:before {
+	content: '\e46c';
+}
+.fa-bread-slice:before {
+	content: '\f7ec';
+}
+.fa-briefcase:before {
+	content: '\f0b1';
+}
+.fa-briefcase-medical:before {
+	content: '\f469';
+}
+.fa-broom:before {
+	content: '\f51a';
+}
+.fa-broom-ball:before,
+.fa-quidditch-broom-ball:before,
+.fa-quidditch:before {
+	content: '\f458';
+}
+.fa-brush:before {
+	content: '\f55d';
+}
+.fa-bug:before {
+	content: '\f188';
+}
+.fa-bug-slash:before {
+	content: '\e490';
+}
+.fa-building:before {
+	content: '\f1ad';
+}
+.fa-bank:before,
+.fa-building-columns:before,
+.fa-institution:before,
+.fa-museum:before,
+.fa-university:before {
+	content: '\f19c';
+}
+.fa-bullhorn:before {
+	content: '\f0a1';
+}
+.fa-bullseye:before {
+	content: '\f140';
+}
+.fa-burger:before,
+.fa-hamburger:before {
+	content: '\f805';
+}
+.fa-bus:before {
+	content: '\f207';
+}
+.fa-bus-alt:before,
+.fa-bus-simple:before {
+	content: '\f55e';
+}
+.fa-briefcase-clock:before,
+.fa-business-time:before {
+	content: '\f64a';
+}
+.fa-c:before {
+	content: '\43';
+}
+.fa-birthday-cake:before,
+.fa-cake-candles:before,
+.fa-cake:before {
+	content: '\f1fd';
+}
+.fa-calculator:before {
+	content: '\f1ec';
+}
+.fa-calendar:before {
+	content: '\f133';
+}
+.fa-calendar-check:before {
+	content: '\f274';
+}
+.fa-calendar-day:before {
+	content: '\f783';
+}
+.fa-calendar-alt:before,
+.fa-calendar-days:before {
+	content: '\f073';
+}
+.fa-calendar-minus:before {
+	content: '\f272';
+}
+.fa-calendar-plus:before {
+	content: '\f271';
+}
+.fa-calendar-week:before {
+	content: '\f784';
+}
+.fa-calendar-times:before,
+.fa-calendar-xmark:before {
+	content: '\f273';
+}
+.fa-camera-alt:before,
+.fa-camera:before {
+	content: '\f030';
+}
+.fa-camera-retro:before {
+	content: '\f083';
+}
+.fa-camera-rotate:before {
+	content: '\e0d8';
+}
+.fa-campground:before {
+	content: '\f6bb';
+}
+.fa-candy-cane:before {
+	content: '\f786';
+}
+.fa-cannabis:before {
+	content: '\f55f';
+}
+.fa-capsules:before {
+	content: '\f46b';
+}
+.fa-automobile:before,
+.fa-car:before {
+	content: '\f1b9';
+}
+.fa-battery-car:before,
+.fa-car-battery:before {
+	content: '\f5df';
+}
+.fa-car-crash:before {
+	content: '\f5e1';
+}
+.fa-car-alt:before,
+.fa-car-rear:before {
+	content: '\f5de';
+}
+.fa-car-side:before {
+	content: '\f5e4';
+}
+.fa-caravan:before {
+	content: '\f8ff';
+}
+.fa-caret-down:before {
+	content: '\f0d7';
+}
+.fa-caret-left:before {
+	content: '\f0d9';
+}
+.fa-caret-right:before {
+	content: '\f0da';
+}
+.fa-caret-up:before {
+	content: '\f0d8';
+}
+.fa-carrot:before {
+	content: '\f787';
+}
+.fa-cart-arrow-down:before {
+	content: '\f218';
+}
+.fa-cart-flatbed:before,
+.fa-dolly-flatbed:before {
+	content: '\f474';
+}
+.fa-cart-flatbed-suitcase:before,
+.fa-luggage-cart:before {
+	content: '\f59d';
+}
+.fa-cart-plus:before {
+	content: '\f217';
+}
+.fa-cart-shopping:before,
+.fa-shopping-cart:before {
+	content: '\f07a';
+}
+.fa-cash-register:before {
+	content: '\f788';
+}
+.fa-cat:before {
+	content: '\f6be';
+}
+.fa-cedi-sign:before {
+	content: '\e0df';
+}
+.fa-cent-sign:before {
+	content: '\e3f5';
+}
+.fa-certificate:before {
+	content: '\f0a3';
+}
+.fa-chair:before {
+	content: '\f6c0';
+}
+.fa-blackboard:before,
+.fa-chalkboard:before {
+	content: '\f51b';
+}
+.fa-chalkboard-teacher:before,
+.fa-chalkboard-user:before {
+	content: '\f51c';
+}
+.fa-champagne-glasses:before,
+.fa-glass-cheers:before {
+	content: '\f79f';
+}
+.fa-charging-station:before {
+	content: '\f5e7';
+}
+.fa-area-chart:before,
+.fa-chart-area:before {
+	content: '\f1fe';
+}
+.fa-bar-chart:before,
+.fa-chart-bar:before {
+	content: '\f080';
+}
+.fa-chart-column:before {
+	content: '\e0e3';
+}
+.fa-chart-gantt:before {
+	content: '\e0e4';
+}
+.fa-chart-line:before,
+.fa-line-chart:before {
+	content: '\f201';
+}
+.fa-chart-pie:before,
+.fa-pie-chart:before {
+	content: '\f200';
+}
+.fa-check:before {
+	content: '\f00c';
+}
+.fa-check-double:before {
+	content: '\f560';
+}
+.fa-check-to-slot:before,
+.fa-vote-yea:before {
+	content: '\f772';
+}
+.fa-cheese:before {
+	content: '\f7ef';
+}
+.fa-chess:before {
+	content: '\f439';
+}
+.fa-chess-bishop:before {
+	content: '\f43a';
+}
+.fa-chess-board:before {
+	content: '\f43c';
+}
+.fa-chess-king:before {
+	content: '\f43f';
+}
+.fa-chess-knight:before {
+	content: '\f441';
+}
+.fa-chess-pawn:before {
+	content: '\f443';
+}
+.fa-chess-queen:before {
+	content: '\f445';
+}
+.fa-chess-rook:before {
+	content: '\f447';
+}
+.fa-chevron-down:before {
+	content: '\f078';
+}
+.fa-chevron-left:before {
+	content: '\f053';
+}
+.fa-chevron-right:before {
+	content: '\f054';
+}
+.fa-chevron-up:before {
+	content: '\f077';
+}
+.fa-child:before {
+	content: '\f1ae';
+}
+.fa-church:before {
+	content: '\f51d';
+}
+.fa-circle:before {
+	content: '\f111';
+}
+.fa-arrow-circle-down:before,
+.fa-circle-arrow-down:before {
+	content: '\f0ab';
+}
+.fa-arrow-circle-left:before,
+.fa-circle-arrow-left:before {
+	content: '\f0a8';
+}
+.fa-arrow-circle-right:before,
+.fa-circle-arrow-right:before {
+	content: '\f0a9';
+}
+.fa-arrow-circle-up:before,
+.fa-circle-arrow-up:before {
+	content: '\f0aa';
+}
+.fa-check-circle:before,
+.fa-circle-check:before {
+	content: '\f058';
+}
+.fa-chevron-circle-down:before,
+.fa-circle-chevron-down:before {
+	content: '\f13a';
+}
+.fa-chevron-circle-left:before,
+.fa-circle-chevron-left:before {
+	content: '\f137';
+}
+.fa-chevron-circle-right:before,
+.fa-circle-chevron-right:before {
+	content: '\f138';
+}
+.fa-chevron-circle-up:before,
+.fa-circle-chevron-up:before {
+	content: '\f139';
+}
+.fa-circle-dollar-to-slot:before,
+.fa-donate:before {
+	content: '\f4b9';
+}
+.fa-circle-dot:before,
+.fa-dot-circle:before {
+	content: '\f192';
+}
+.fa-arrow-alt-circle-down:before,
+.fa-circle-down:before {
+	content: '\f358';
+}
+.fa-circle-exclamation:before,
+.fa-exclamation-circle:before {
+	content: '\f06a';
+}
+.fa-circle-h:before,
+.fa-hospital-symbol:before {
+	content: '\f47e';
+}
+.fa-adjust:before,
+.fa-circle-half-stroke:before {
+	content: '\f042';
+}
+.fa-circle-info:before,
+.fa-info-circle:before {
+	content: '\f05a';
+}
+.fa-arrow-alt-circle-left:before,
+.fa-circle-left:before {
+	content: '\f359';
+}
+.fa-circle-minus:before,
+.fa-minus-circle:before {
+	content: '\f056';
+}
+.fa-circle-notch:before {
+	content: '\f1ce';
+}
+.fa-circle-pause:before,
+.fa-pause-circle:before {
+	content: '\f28b';
+}
+.fa-circle-play:before,
+.fa-play-circle:before {
+	content: '\f144';
+}
+.fa-circle-plus:before,
+.fa-plus-circle:before {
+	content: '\f055';
+}
+.fa-circle-question:before,
+.fa-question-circle:before {
+	content: '\f059';
+}
+.fa-circle-radiation:before,
+.fa-radiation-alt:before {
+	content: '\f7ba';
+}
+.fa-arrow-alt-circle-right:before,
+.fa-circle-right:before {
+	content: '\f35a';
+}
+.fa-circle-stop:before,
+.fa-stop-circle:before {
+	content: '\f28d';
+}
+.fa-arrow-alt-circle-up:before,
+.fa-circle-up:before {
+	content: '\f35b';
+}
+.fa-circle-user:before,
+.fa-user-circle:before {
+	content: '\f2bd';
+}
+.fa-circle-xmark:before,
+.fa-times-circle:before,
+.fa-xmark-circle:before {
+	content: '\f057';
+}
+.fa-city:before {
+	content: '\f64f';
+}
+.fa-clapperboard:before {
+	content: '\e131';
+}
+.fa-clipboard:before {
+	content: '\f328';
+}
+.fa-clipboard-check:before {
+	content: '\f46c';
+}
+.fa-clipboard-list:before {
+	content: '\f46d';
+}
+.fa-clock-four:before,
+.fa-clock:before {
+	content: '\f017';
+}
+.fa-clock-rotate-left:before,
+.fa-history:before {
+	content: '\f1da';
+}
+.fa-clone:before {
+	content: '\f24d';
+}
+.fa-closed-captioning:before {
+	content: '\f20a';
+}
+.fa-cloud:before {
+	content: '\f0c2';
+}
+.fa-cloud-arrow-down:before,
+.fa-cloud-download-alt:before,
+.fa-cloud-download:before {
+	content: '\f0ed';
+}
+.fa-cloud-arrow-up:before,
+.fa-cloud-upload-alt:before,
+.fa-cloud-upload:before {
+	content: '\f0ee';
+}
+.fa-cloud-meatball:before {
+	content: '\f73b';
+}
+.fa-cloud-moon:before {
+	content: '\f6c3';
+}
+.fa-cloud-moon-rain:before {
+	content: '\f73c';
+}
+.fa-cloud-rain:before {
+	content: '\f73d';
+}
+.fa-cloud-showers-heavy:before {
+	content: '\f740';
+}
+.fa-cloud-sun:before {
+	content: '\f6c4';
+}
+.fa-cloud-sun-rain:before {
+	content: '\f743';
+}
+.fa-clover:before {
+	content: '\e139';
+}
+.fa-code:before {
+	content: '\f121';
+}
+.fa-code-branch:before {
+	content: '\f126';
+}
+.fa-code-commit:before {
+	content: '\f386';
+}
+.fa-code-compare:before {
+	content: '\e13a';
+}
+.fa-code-fork:before {
+	content: '\e13b';
+}
+.fa-code-merge:before {
+	content: '\f387';
+}
+.fa-code-pull-request:before {
+	content: '\e13c';
+}
+.fa-coins:before {
+	content: '\f51e';
+}
+.fa-colon-sign:before {
+	content: '\e140';
+}
+.fa-comment:before {
+	content: '\f075';
+}
+.fa-comment-dollar:before {
+	content: '\f651';
+}
+.fa-comment-dots:before,
+.fa-commenting:before {
+	content: '\f4ad';
+}
+.fa-comment-medical:before {
+	content: '\f7f5';
+}
+.fa-comment-slash:before {
+	content: '\f4b3';
+}
+.fa-comment-sms:before,
+.fa-sms:before {
+	content: '\f7cd';
+}
+.fa-comments:before {
+	content: '\f086';
+}
+.fa-comments-dollar:before {
+	content: '\f653';
+}
+.fa-compact-disc:before {
+	content: '\f51f';
+}
+.fa-compass:before {
+	content: '\f14e';
+}
+.fa-compass-drafting:before,
+.fa-drafting-compass:before {
+	content: '\f568';
+}
+.fa-compress:before {
+	content: '\f066';
+}
+.fa-computer-mouse:before,
+.fa-mouse:before {
+	content: '\f8cc';
+}
+.fa-cookie:before {
+	content: '\f563';
+}
+.fa-cookie-bite:before {
+	content: '\f564';
+}
+.fa-copy:before {
+	content: '\f0c5';
+}
+.fa-copyright:before {
+	content: '\f1f9';
+}
+.fa-couch:before {
+	content: '\f4b8';
+}
+.fa-credit-card-alt:before,
+.fa-credit-card:before {
+	content: '\f09d';
+}
+.fa-crop:before {
+	content: '\f125';
+}
+.fa-crop-alt:before,
+.fa-crop-simple:before {
+	content: '\f565';
+}
+.fa-cross:before {
+	content: '\f654';
+}
+.fa-crosshairs:before {
+	content: '\f05b';
+}
+.fa-crow:before {
+	content: '\f520';
+}
+.fa-crown:before {
+	content: '\f521';
+}
+.fa-crutch:before {
+	content: '\f7f7';
+}
+.fa-cruzeiro-sign:before {
+	content: '\e152';
+}
+.fa-cube:before {
+	content: '\f1b2';
+}
+.fa-cubes:before {
+	content: '\f1b3';
+}
+.fa-d:before {
+	content: '\44';
+}
+.fa-database:before {
+	content: '\f1c0';
+}
+.fa-backspace:before,
+.fa-delete-left:before {
+	content: '\f55a';
+}
+.fa-democrat:before {
+	content: '\f747';
+}
+.fa-desktop-alt:before,
+.fa-desktop:before {
+	content: '\f390';
+}
+.fa-dharmachakra:before {
+	content: '\f655';
+}
+.fa-diagram-next:before {
+	content: '\e476';
+}
+.fa-diagram-predecessor:before {
+	content: '\e477';
+}
+.fa-diagram-project:before,
+.fa-project-diagram:before {
+	content: '\f542';
+}
+.fa-diagram-successor:before {
+	content: '\e47a';
+}
+.fa-diamond:before {
+	content: '\f219';
+}
+.fa-diamond-turn-right:before,
+.fa-directions:before {
+	content: '\f5eb';
+}
+.fa-dice:before {
+	content: '\f522';
+}
+.fa-dice-d20:before {
+	content: '\f6cf';
+}
+.fa-dice-d6:before {
+	content: '\f6d1';
+}
+.fa-dice-five:before {
+	content: '\f523';
+}
+.fa-dice-four:before {
+	content: '\f524';
+}
+.fa-dice-one:before {
+	content: '\f525';
+}
+.fa-dice-six:before {
+	content: '\f526';
+}
+.fa-dice-three:before {
+	content: '\f527';
+}
+.fa-dice-two:before {
+	content: '\f528';
+}
+.fa-disease:before {
+	content: '\f7fa';
+}
+.fa-divide:before {
+	content: '\f529';
+}
+.fa-dna:before {
+	content: '\f471';
+}
+.fa-dog:before {
+	content: '\f6d3';
+}
+.fa-dollar-sign:before,
+.fa-dollar:before,
+.fa-usd:before {
+	content: '\24';
+}
+.fa-dolly-box:before,
+.fa-dolly:before {
+	content: '\f472';
+}
+.fa-dong-sign:before {
+	content: '\e169';
+}
+.fa-door-closed:before {
+	content: '\f52a';
+}
+.fa-door-open:before {
+	content: '\f52b';
+}
+.fa-dove:before {
+	content: '\f4ba';
+}
+.fa-compress-alt:before,
+.fa-down-left-and-up-right-to-center:before {
+	content: '\f422';
+}
+.fa-down-long:before,
+.fa-long-arrow-alt-down:before {
+	content: '\f309';
+}
+.fa-download:before {
+	content: '\f019';
+}
+.fa-dragon:before {
+	content: '\f6d5';
+}
+.fa-draw-polygon:before {
+	content: '\f5ee';
+}
+.fa-droplet:before,
+.fa-tint:before {
+	content: '\f043';
+}
+.fa-droplet-slash:before,
+.fa-tint-slash:before {
+	content: '\f5c7';
+}
+.fa-drum:before {
+	content: '\f569';
+}
+.fa-drum-steelpan:before {
+	content: '\f56a';
+}
+.fa-drumstick-bite:before {
+	content: '\f6d7';
+}
+.fa-dumbbell:before {
+	content: '\f44b';
+}
+.fa-dumpster:before {
+	content: '\f793';
+}
+.fa-dumpster-fire:before {
+	content: '\f794';
+}
+.fa-dungeon:before {
+	content: '\f6d9';
+}
+.fa-e:before {
+	content: '\45';
+}
+.fa-deaf:before,
+.fa-deafness:before,
+.fa-ear-deaf:before,
+.fa-hard-of-hearing:before {
+	content: '\f2a4';
+}
+.fa-assistive-listening-systems:before,
+.fa-ear-listen:before {
+	content: '\f2a2';
+}
+.fa-earth-africa:before,
+.fa-globe-africa:before {
+	content: '\f57c';
+}
+.fa-earth-america:before,
+.fa-earth-americas:before,
+.fa-earth:before,
+.fa-globe-americas:before {
+	content: '\f57d';
+}
+.fa-earth-asia:before,
+.fa-globe-asia:before {
+	content: '\f57e';
+}
+.fa-earth-europe:before,
+.fa-globe-europe:before {
+	content: '\f7a2';
+}
+.fa-earth-oceania:before,
+.fa-globe-oceania:before {
+	content: '\e47b';
+}
+.fa-egg:before {
+	content: '\f7fb';
+}
+.fa-eject:before {
+	content: '\f052';
+}
+.fa-elevator:before {
+	content: '\e16d';
+}
+.fa-ellipsis-h:before,
+.fa-ellipsis:before {
+	content: '\f141';
+}
+.fa-ellipsis-v:before,
+.fa-ellipsis-vertical:before {
+	content: '\f142';
+}
+.fa-envelope:before {
+	content: '\f0e0';
+}
+.fa-envelope-open:before {
+	content: '\f2b6';
+}
+.fa-envelope-open-text:before {
+	content: '\f658';
+}
+.fa-envelopes-bulk:before,
+.fa-mail-bulk:before {
+	content: '\f674';
+}
+.fa-equals:before {
+	content: '\3d';
+}
+.fa-eraser:before {
+	content: '\f12d';
+}
+.fa-ethernet:before {
+	content: '\f796';
+}
+.fa-eur:before,
+.fa-euro-sign:before,
+.fa-euro:before {
+	content: '\f153';
+}
+.fa-exclamation:before {
+	content: '\21';
+}
+.fa-expand:before {
+	content: '\f065';
+}
+.fa-eye:before {
+	content: '\f06e';
+}
+.fa-eye-dropper-empty:before,
+.fa-eye-dropper:before,
+.fa-eyedropper:before {
+	content: '\f1fb';
+}
+.fa-eye-low-vision:before,
+.fa-low-vision:before {
+	content: '\f2a8';
+}
+.fa-eye-slash:before {
+	content: '\f070';
+}
+.fa-f:before {
+	content: '\46';
+}
+.fa-angry:before,
+.fa-face-angry:before {
+	content: '\f556';
+}
+.fa-dizzy:before,
+.fa-face-dizzy:before {
+	content: '\f567';
+}
+.fa-face-flushed:before,
+.fa-flushed:before {
+	content: '\f579';
+}
+.fa-face-frown:before,
+.fa-frown:before {
+	content: '\f119';
+}
+.fa-face-frown-open:before,
+.fa-frown-open:before {
+	content: '\f57a';
+}
+.fa-face-grimace:before,
+.fa-grimace:before {
+	content: '\f57f';
+}
+.fa-face-grin:before,
+.fa-grin:before {
+	content: '\f580';
+}
+.fa-face-grin-beam:before,
+.fa-grin-beam:before {
+	content: '\f582';
+}
+.fa-face-grin-beam-sweat:before,
+.fa-grin-beam-sweat:before {
+	content: '\f583';
+}
+.fa-face-grin-hearts:before,
+.fa-grin-hearts:before {
+	content: '\f584';
+}
+.fa-face-grin-squint:before,
+.fa-grin-squint:before {
+	content: '\f585';
+}
+.fa-face-grin-squint-tears:before,
+.fa-grin-squint-tears:before {
+	content: '\f586';
+}
+.fa-face-grin-stars:before,
+.fa-grin-stars:before {
+	content: '\f587';
+}
+.fa-face-grin-tears:before,
+.fa-grin-tears:before {
+	content: '\f588';
+}
+.fa-face-grin-tongue:before,
+.fa-grin-tongue:before {
+	content: '\f589';
+}
+.fa-face-grin-tongue-squint:before,
+.fa-grin-tongue-squint:before {
+	content: '\f58a';
+}
+.fa-face-grin-tongue-wink:before,
+.fa-grin-tongue-wink:before {
+	content: '\f58b';
+}
+.fa-face-grin-wide:before,
+.fa-grin-alt:before {
+	content: '\f581';
+}
+.fa-face-grin-wink:before,
+.fa-grin-wink:before {
+	content: '\f58c';
+}
+.fa-face-kiss:before,
+.fa-kiss:before {
+	content: '\f596';
+}
+.fa-face-kiss-beam:before,
+.fa-kiss-beam:before {
+	content: '\f597';
+}
+.fa-face-kiss-wink-heart:before,
+.fa-kiss-wink-heart:before {
+	content: '\f598';
+}
+.fa-face-laugh:before,
+.fa-laugh:before {
+	content: '\f599';
+}
+.fa-face-laugh-beam:before,
+.fa-laugh-beam:before {
+	content: '\f59a';
+}
+.fa-face-laugh-squint:before,
+.fa-laugh-squint:before {
+	content: '\f59b';
+}
+.fa-face-laugh-wink:before,
+.fa-laugh-wink:before {
+	content: '\f59c';
+}
+.fa-face-meh:before,
+.fa-meh:before {
+	content: '\f11a';
+}
+.fa-face-meh-blank:before,
+.fa-meh-blank:before {
+	content: '\f5a4';
+}
+.fa-face-rolling-eyes:before,
+.fa-meh-rolling-eyes:before {
+	content: '\f5a5';
+}
+.fa-face-sad-cry:before,
+.fa-sad-cry:before {
+	content: '\f5b3';
+}
+.fa-face-sad-tear:before,
+.fa-sad-tear:before {
+	content: '\f5b4';
+}
+.fa-face-smile:before,
+.fa-smile:before {
+	content: '\f118';
+}
+.fa-face-smile-beam:before,
+.fa-smile-beam:before {
+	content: '\f5b8';
+}
+.fa-face-smile-wink:before,
+.fa-smile-wink:before {
+	content: '\f4da';
+}
+.fa-face-surprise:before,
+.fa-surprise:before {
+	content: '\f5c2';
+}
+.fa-face-tired:before,
+.fa-tired:before {
+	content: '\f5c8';
+}
+.fa-fan:before {
+	content: '\f863';
+}
+.fa-faucet:before {
+	content: '\e005';
+}
+.fa-fax:before {
+	content: '\f1ac';
+}
+.fa-feather:before {
+	content: '\f52d';
+}
+.fa-feather-alt:before,
+.fa-feather-pointed:before {
+	content: '\f56b';
+}
+.fa-file:before {
+	content: '\f15b';
+}
+.fa-file-arrow-down:before,
+.fa-file-download:before {
+	content: '\f56d';
+}
+.fa-file-arrow-up:before,
+.fa-file-upload:before {
+	content: '\f574';
+}
+.fa-file-audio:before {
+	content: '\f1c7';
+}
+.fa-file-code:before {
+	content: '\f1c9';
+}
+.fa-file-contract:before {
+	content: '\f56c';
+}
+.fa-file-csv:before {
+	content: '\f6dd';
+}
+.fa-file-excel:before {
+	content: '\f1c3';
+}
+.fa-arrow-right-from-file:before,
+.fa-file-export:before {
+	content: '\f56e';
+}
+.fa-file-image:before {
+	content: '\f1c5';
+}
+.fa-arrow-right-to-file:before,
+.fa-file-import:before {
+	content: '\f56f';
+}
+.fa-file-invoice:before {
+	content: '\f570';
+}
+.fa-file-invoice-dollar:before {
+	content: '\f571';
+}
+.fa-file-alt:before,
+.fa-file-lines:before,
+.fa-file-text:before {
+	content: '\f15c';
+}
+.fa-file-medical:before {
+	content: '\f477';
+}
+.fa-file-pdf:before {
+	content: '\f1c1';
+}
+.fa-file-powerpoint:before {
+	content: '\f1c4';
+}
+.fa-file-prescription:before {
+	content: '\f572';
+}
+.fa-file-signature:before {
+	content: '\f573';
+}
+.fa-file-video:before {
+	content: '\f1c8';
+}
+.fa-file-medical-alt:before,
+.fa-file-waveform:before {
+	content: '\f478';
+}
+.fa-file-word:before {
+	content: '\f1c2';
+}
+.fa-file-archive:before,
+.fa-file-zipper:before {
+	content: '\f1c6';
+}
+.fa-fill:before {
+	content: '\f575';
+}
+.fa-fill-drip:before {
+	content: '\f576';
+}
+.fa-film:before {
+	content: '\f008';
+}
+.fa-filter:before {
+	content: '\f0b0';
+}
+.fa-filter-circle-dollar:before,
+.fa-funnel-dollar:before {
+	content: '\f662';
+}
+.fa-filter-circle-xmark:before {
+	content: '\e17b';
+}
+.fa-fingerprint:before {
+	content: '\f577';
+}
+.fa-fire:before {
+	content: '\f06d';
+}
+.fa-fire-extinguisher:before {
+	content: '\f134';
+}
+.fa-fire-alt:before,
+.fa-fire-flame-curved:before {
+	content: '\f7e4';
+}
+.fa-burn:before,
+.fa-fire-flame-simple:before {
+	content: '\f46a';
+}
+.fa-fish:before {
+	content: '\f578';
+}
+.fa-flag:before {
+	content: '\f024';
+}
+.fa-flag-checkered:before {
+	content: '\f11e';
+}
+.fa-flag-usa:before {
+	content: '\f74d';
+}
+.fa-flask:before {
+	content: '\f0c3';
+}
+.fa-floppy-disk:before,
+.fa-save:before {
+	content: '\f0c7';
+}
+.fa-florin-sign:before {
+	content: '\e184';
+}
+.fa-folder:before {
+	content: '\f07b';
+}
+.fa-folder-minus:before {
+	content: '\f65d';
+}
+.fa-folder-open:before {
+	content: '\f07c';
+}
+.fa-folder-plus:before {
+	content: '\f65e';
+}
+.fa-folder-tree:before {
+	content: '\f802';
+}
+.fa-font:before {
+	content: '\f031';
+}
+.fa-football-ball:before,
+.fa-football:before {
+	content: '\f44e';
+}
+.fa-forward:before {
+	content: '\f04e';
+}
+.fa-fast-forward:before,
+.fa-forward-fast:before {
+	content: '\f050';
+}
+.fa-forward-step:before,
+.fa-step-forward:before {
+	content: '\f051';
+}
+.fa-franc-sign:before {
+	content: '\e18f';
+}
+.fa-frog:before {
+	content: '\f52e';
+}
+.fa-futbol-ball:before,
+.fa-futbol:before,
+.fa-soccer-ball:before {
+	content: '\f1e3';
+}
+.fa-g:before {
+	content: '\47';
+}
+.fa-gamepad:before {
+	content: '\f11b';
+}
+.fa-gas-pump:before {
+	content: '\f52f';
+}
+.fa-dashboard:before,
+.fa-gauge-med:before,
+.fa-gauge:before,
+.fa-tachometer-alt-average:before {
+	content: '\f624';
+}
+.fa-gauge-high:before,
+.fa-tachometer-alt-fast:before,
+.fa-tachometer-alt:before {
+	content: '\f625';
+}
+.fa-gauge-simple-med:before,
+.fa-gauge-simple:before,
+.fa-tachometer-average:before {
+	content: '\f629';
+}
+.fa-gauge-simple-high:before,
+.fa-tachometer-fast:before,
+.fa-tachometer:before {
+	content: '\f62a';
+}
+.fa-gavel:before,
+.fa-legal:before {
+	content: '\f0e3';
+}
+.fa-cog:before,
+.fa-gear:before {
+	content: '\f013';
+}
+.fa-cogs:before,
+.fa-gears:before {
+	content: '\f085';
+}
+.fa-gem:before {
+	content: '\f3a5';
+}
+.fa-genderless:before {
+	content: '\f22d';
+}
+.fa-ghost:before {
+	content: '\f6e2';
+}
+.fa-gift:before {
+	content: '\f06b';
+}
+.fa-gifts:before {
+	content: '\f79c';
+}
+.fa-glasses:before {
+	content: '\f530';
+}
+.fa-globe:before {
+	content: '\f0ac';
+}
+.fa-golf-ball-tee:before,
+.fa-golf-ball:before {
+	content: '\f450';
+}
+.fa-gopuram:before {
+	content: '\f664';
+}
+.fa-graduation-cap:before,
+.fa-mortar-board:before {
+	content: '\f19d';
+}
+.fa-greater-than:before {
+	content: '\3e';
+}
+.fa-greater-than-equal:before {
+	content: '\f532';
+}
+.fa-grip-horizontal:before,
+.fa-grip:before {
+	content: '\f58d';
+}
+.fa-grip-lines:before {
+	content: '\f7a4';
+}
+.fa-grip-lines-vertical:before {
+	content: '\f7a5';
+}
+.fa-grip-vertical:before {
+	content: '\f58e';
+}
+.fa-guarani-sign:before {
+	content: '\e19a';
+}
+.fa-guitar:before {
+	content: '\f7a6';
+}
+.fa-gun:before {
+	content: '\e19b';
+}
+.fa-h:before {
+	content: '\48';
+}
+.fa-hammer:before {
+	content: '\f6e3';
+}
+.fa-hamsa:before {
+	content: '\f665';
+}
+.fa-hand-paper:before,
+.fa-hand:before {
+	content: '\f256';
+}
+.fa-hand-back-fist:before,
+.fa-hand-rock:before {
+	content: '\f255';
+}
+.fa-allergies:before,
+.fa-hand-dots:before {
+	content: '\f461';
+}
+.fa-fist-raised:before,
+.fa-hand-fist:before {
+	content: '\f6de';
+}
+.fa-hand-holding:before {
+	content: '\f4bd';
+}
+.fa-hand-holding-dollar:before,
+.fa-hand-holding-usd:before {
+	content: '\f4c0';
+}
+.fa-hand-holding-droplet:before,
+.fa-hand-holding-water:before {
+	content: '\f4c1';
+}
+.fa-hand-holding-heart:before {
+	content: '\f4be';
+}
+.fa-hand-holding-medical:before {
+	content: '\e05c';
+}
+.fa-hand-lizard:before {
+	content: '\f258';
+}
+.fa-hand-middle-finger:before {
+	content: '\f806';
+}
+.fa-hand-peace:before {
+	content: '\f25b';
+}
+.fa-hand-point-down:before {
+	content: '\f0a7';
+}
+.fa-hand-point-left:before {
+	content: '\f0a5';
+}
+.fa-hand-point-right:before {
+	content: '\f0a4';
+}
+.fa-hand-point-up:before {
+	content: '\f0a6';
+}
+.fa-hand-pointer:before {
+	content: '\f25a';
+}
+.fa-hand-scissors:before {
+	content: '\f257';
+}
+.fa-hand-sparkles:before {
+	content: '\e05d';
+}
+.fa-hand-spock:before {
+	content: '\f259';
+}
+.fa-hands:before,
+.fa-sign-language:before,
+.fa-signing:before {
+	content: '\f2a7';
+}
+.fa-american-sign-language-interpreting:before,
+.fa-asl-interpreting:before,
+.fa-hands-american-sign-language-interpreting:before,
+.fa-hands-asl-interpreting:before {
+	content: '\f2a3';
+}
+.fa-hands-bubbles:before,
+.fa-hands-wash:before {
+	content: '\e05e';
+}
+.fa-hands-clapping:before {
+	content: '\e1a8';
+}
+.fa-hands-holding:before {
+	content: '\f4c2';
+}
+.fa-hands-praying:before,
+.fa-praying-hands:before {
+	content: '\f684';
+}
+.fa-handshake:before {
+	content: '\f2b5';
+}
+.fa-hands-helping:before,
+.fa-handshake-angle:before {
+	content: '\f4c4';
+}
+.fa-handshake-alt-slash:before,
+.fa-handshake-simple-slash:before {
+	content: '\e05f';
+}
+.fa-handshake-slash:before {
+	content: '\e060';
+}
+.fa-hanukiah:before {
+	content: '\f6e6';
+}
+.fa-hard-drive:before,
+.fa-hdd:before {
+	content: '\f0a0';
+}
+.fa-hashtag:before {
+	content: '\23';
+}
+.fa-hat-cowboy:before {
+	content: '\f8c0';
+}
+.fa-hat-cowboy-side:before {
+	content: '\f8c1';
+}
+.fa-hat-wizard:before {
+	content: '\f6e8';
+}
+.fa-head-side-cough:before {
+	content: '\e061';
+}
+.fa-head-side-cough-slash:before {
+	content: '\e062';
+}
+.fa-head-side-mask:before {
+	content: '\e063';
+}
+.fa-head-side-virus:before {
+	content: '\e064';
+}
+.fa-header:before,
+.fa-heading:before {
+	content: '\f1dc';
+}
+.fa-headphones:before {
+	content: '\f025';
+}
+.fa-headphones-alt:before,
+.fa-headphones-simple:before {
+	content: '\f58f';
+}
+.fa-headset:before {
+	content: '\f590';
+}
+.fa-heart:before {
+	content: '\f004';
+}
+.fa-heart-broken:before,
+.fa-heart-crack:before {
+	content: '\f7a9';
+}
+.fa-heart-pulse:before,
+.fa-heartbeat:before {
+	content: '\f21e';
+}
+.fa-helicopter:before {
+	content: '\f533';
+}
+.fa-hard-hat:before,
+.fa-hat-hard:before,
+.fa-helmet-safety:before {
+	content: '\f807';
+}
+.fa-highlighter:before {
+	content: '\f591';
+}
+.fa-hippo:before {
+	content: '\f6ed';
+}
+.fa-hockey-puck:before {
+	content: '\f453';
+}
+.fa-holly-berry:before {
+	content: '\f7aa';
+}
+.fa-horse:before {
+	content: '\f6f0';
+}
+.fa-horse-head:before {
+	content: '\f7ab';
+}
+.fa-hospital-alt:before,
+.fa-hospital-wide:before,
+.fa-hospital:before {
+	content: '\f0f8';
+}
+.fa-hospital-user:before {
+	content: '\f80d';
+}
+.fa-hot-tub-person:before,
+.fa-hot-tub:before {
+	content: '\f593';
+}
+.fa-hotdog:before {
+	content: '\f80f';
+}
+.fa-hotel:before {
+	content: '\f594';
+}
+.fa-hourglass-2:before,
+.fa-hourglass-half:before,
+.fa-hourglass:before {
+	content: '\f254';
+}
+.fa-hourglass-empty:before {
+	content: '\f252';
+}
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+	content: '\f253';
+}
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+	content: '\f251';
+}
+.fa-home-alt:before,
+.fa-home-lg-alt:before,
+.fa-home:before,
+.fa-house:before {
+	content: '\f015';
+}
+.fa-home-lg:before,
+.fa-house-chimney:before {
+	content: '\e3af';
+}
+.fa-house-chimney-crack:before,
+.fa-house-damage:before {
+	content: '\f6f1';
+}
+.fa-clinic-medical:before,
+.fa-house-chimney-medical:before {
+	content: '\f7f2';
+}
+.fa-house-chimney-user:before {
+	content: '\e065';
+}
+.fa-house-chimney-window:before {
+	content: '\e00d';
+}
+.fa-house-crack:before {
+	content: '\e3b1';
+}
+.fa-house-laptop:before,
+.fa-laptop-house:before {
+	content: '\e066';
+}
+.fa-house-medical:before {
+	content: '\e3b2';
+}
+.fa-home-user:before,
+.fa-house-user:before {
+	content: '\e1b0';
+}
+.fa-hryvnia-sign:before,
+.fa-hryvnia:before {
+	content: '\f6f2';
+}
+.fa-i:before {
+	content: '\49';
+}
+.fa-i-cursor:before {
+	content: '\f246';
+}
+.fa-ice-cream:before {
+	content: '\f810';
+}
+.fa-icicles:before {
+	content: '\f7ad';
+}
+.fa-heart-music-camera-bolt:before,
+.fa-icons:before {
+	content: '\f86d';
+}
+.fa-id-badge:before {
+	content: '\f2c1';
+}
+.fa-drivers-license:before,
+.fa-id-card:before {
+	content: '\f2c2';
+}
+.fa-id-card-alt:before,
+.fa-id-card-clip:before {
+	content: '\f47f';
+}
+.fa-igloo:before {
+	content: '\f7ae';
+}
+.fa-image:before {
+	content: '\f03e';
+}
+.fa-image-portrait:before,
+.fa-portrait:before {
+	content: '\f3e0';
+}
+.fa-images:before {
+	content: '\f302';
+}
+.fa-inbox:before {
+	content: '\f01c';
+}
+.fa-indent:before {
+	content: '\f03c';
+}
+.fa-indian-rupee-sign:before,
+.fa-indian-rupee:before,
+.fa-inr:before {
+	content: '\e1bc';
+}
+.fa-industry:before {
+	content: '\f275';
+}
+.fa-infinity:before {
+	content: '\f534';
+}
+.fa-info:before {
+	content: '\f129';
+}
+.fa-italic:before {
+	content: '\f033';
+}
+.fa-j:before {
+	content: '\4a';
+}
+.fa-jedi:before {
+	content: '\f669';
+}
+.fa-fighter-jet:before,
+.fa-jet-fighter:before {
+	content: '\f0fb';
+}
+.fa-joint:before {
+	content: '\f595';
+}
+.fa-k:before {
+	content: '\4b';
+}
+.fa-kaaba:before {
+	content: '\f66b';
+}
+.fa-key:before {
+	content: '\f084';
+}
+.fa-keyboard:before {
+	content: '\f11c';
+}
+.fa-khanda:before {
+	content: '\f66d';
+}
+.fa-kip-sign:before {
+	content: '\e1c4';
+}
+.fa-first-aid:before,
+.fa-kit-medical:before {
+	content: '\f479';
+}
+.fa-kiwi-bird:before {
+	content: '\f535';
+}
+.fa-l:before {
+	content: '\4c';
+}
+.fa-landmark:before {
+	content: '\f66f';
+}
+.fa-language:before {
+	content: '\f1ab';
+}
+.fa-laptop:before {
+	content: '\f109';
+}
+.fa-laptop-code:before {
+	content: '\f5fc';
+}
+.fa-laptop-medical:before {
+	content: '\f812';
+}
+.fa-lari-sign:before {
+	content: '\e1c8';
+}
+.fa-layer-group:before {
+	content: '\f5fd';
+}
+.fa-leaf:before {
+	content: '\f06c';
+}
+.fa-left-long:before,
+.fa-long-arrow-alt-left:before {
+	content: '\f30a';
+}
+.fa-arrows-alt-h:before,
+.fa-left-right:before {
+	content: '\f337';
+}
+.fa-lemon:before {
+	content: '\f094';
+}
+.fa-less-than:before {
+	content: '\3c';
+}
+.fa-less-than-equal:before {
+	content: '\f537';
+}
+.fa-life-ring:before {
+	content: '\f1cd';
+}
+.fa-lightbulb:before {
+	content: '\f0eb';
+}
+.fa-chain:before,
+.fa-link:before {
+	content: '\f0c1';
+}
+.fa-chain-broken:before,
+.fa-chain-slash:before,
+.fa-link-slash:before,
+.fa-unlink:before {
+	content: '\f127';
+}
+.fa-lira-sign:before {
+	content: '\f195';
+}
+.fa-list-squares:before,
+.fa-list:before {
+	content: '\f03a';
+}
+.fa-list-check:before,
+.fa-tasks:before {
+	content: '\f0ae';
+}
+.fa-list-1-2:before,
+.fa-list-numeric:before,
+.fa-list-ol:before {
+	content: '\f0cb';
+}
+.fa-list-dots:before,
+.fa-list-ul:before {
+	content: '\f0ca';
+}
+.fa-litecoin-sign:before {
+	content: '\e1d3';
+}
+.fa-location-arrow:before {
+	content: '\f124';
+}
+.fa-location-crosshairs:before,
+.fa-location:before {
+	content: '\f601';
+}
+.fa-location-dot:before,
+.fa-map-marker-alt:before {
+	content: '\f3c5';
+}
+.fa-location-pin:before,
+.fa-map-marker:before {
+	content: '\f041';
+}
+.fa-lock:before {
+	content: '\f023';
+}
+.fa-lock-open:before {
+	content: '\f3c1';
+}
+.fa-lungs:before {
+	content: '\f604';
+}
+.fa-lungs-virus:before {
+	content: '\e067';
+}
+.fa-m:before {
+	content: '\4d';
+}
+.fa-magnet:before {
+	content: '\f076';
+}
+.fa-magnifying-glass:before,
+.fa-search:before {
+	content: '\f002';
+}
+.fa-magnifying-glass-dollar:before,
+.fa-search-dollar:before {
+	content: '\f688';
+}
+.fa-magnifying-glass-location:before,
+.fa-search-location:before {
+	content: '\f689';
+}
+.fa-magnifying-glass-minus:before,
+.fa-search-minus:before {
+	content: '\f010';
+}
+.fa-magnifying-glass-plus:before,
+.fa-search-plus:before {
+	content: '\f00e';
+}
+.fa-manat-sign:before {
+	content: '\e1d5';
+}
+.fa-map:before {
+	content: '\f279';
+}
+.fa-map-location:before,
+.fa-map-marked:before {
+	content: '\f59f';
+}
+.fa-map-location-dot:before,
+.fa-map-marked-alt:before {
+	content: '\f5a0';
+}
+.fa-map-pin:before {
+	content: '\f276';
+}
+.fa-marker:before {
+	content: '\f5a1';
+}
+.fa-mars:before {
+	content: '\f222';
+}
+.fa-mars-and-venus:before {
+	content: '\f224';
+}
+.fa-mars-double:before {
+	content: '\f227';
+}
+.fa-mars-stroke:before {
+	content: '\f229';
+}
+.fa-mars-stroke-h:before,
+.fa-mars-stroke-right:before {
+	content: '\f22b';
+}
+.fa-mars-stroke-up:before,
+.fa-mars-stroke-v:before {
+	content: '\f22a';
+}
+.fa-glass-martini-alt:before,
+.fa-martini-glass:before {
+	content: '\f57b';
+}
+.fa-cocktail:before,
+.fa-martini-glass-citrus:before {
+	content: '\f561';
+}
+.fa-glass-martini:before,
+.fa-martini-glass-empty:before {
+	content: '\f000';
+}
+.fa-mask:before {
+	content: '\f6fa';
+}
+.fa-mask-face:before {
+	content: '\e1d7';
+}
+.fa-masks-theater:before,
+.fa-theater-masks:before {
+	content: '\f630';
+}
+.fa-expand-arrows-alt:before,
+.fa-maximize:before {
+	content: '\f31e';
+}
+.fa-medal:before {
+	content: '\f5a2';
+}
+.fa-memory:before {
+	content: '\f538';
+}
+.fa-menorah:before {
+	content: '\f676';
+}
+.fa-mercury:before {
+	content: '\f223';
+}
+.fa-comment-alt:before,
+.fa-message:before {
+	content: '\f27a';
+}
+.fa-meteor:before {
+	content: '\f753';
+}
+.fa-microchip:before {
+	content: '\f2db';
+}
+.fa-microphone:before {
+	content: '\f130';
+}
+.fa-microphone-alt:before,
+.fa-microphone-lines:before {
+	content: '\f3c9';
+}
+.fa-microphone-alt-slash:before,
+.fa-microphone-lines-slash:before {
+	content: '\f539';
+}
+.fa-microphone-slash:before {
+	content: '\f131';
+}
+.fa-microscope:before {
+	content: '\f610';
+}
+.fa-mill-sign:before {
+	content: '\e1ed';
+}
+.fa-compress-arrows-alt:before,
+.fa-minimize:before {
+	content: '\f78c';
+}
+.fa-minus:before,
+.fa-subtract:before {
+	content: '\f068';
+}
+.fa-mitten:before {
+	content: '\f7b5';
+}
+.fa-mobile-android:before,
+.fa-mobile-phone:before,
+.fa-mobile:before {
+	content: '\f3ce';
+}
+.fa-mobile-button:before {
+	content: '\f10b';
+}
+.fa-mobile-alt:before,
+.fa-mobile-screen-button:before {
+	content: '\f3cd';
+}
+.fa-money-bill:before {
+	content: '\f0d6';
+}
+.fa-money-bill-1:before,
+.fa-money-bill-alt:before {
+	content: '\f3d1';
+}
+.fa-money-bill-1-wave:before,
+.fa-money-bill-wave-alt:before {
+	content: '\f53b';
+}
+.fa-money-bill-wave:before {
+	content: '\f53a';
+}
+.fa-money-check:before {
+	content: '\f53c';
+}
+.fa-money-check-alt:before,
+.fa-money-check-dollar:before {
+	content: '\f53d';
+}
+.fa-monument:before {
+	content: '\f5a6';
+}
+.fa-moon:before {
+	content: '\f186';
+}
+.fa-mortar-pestle:before {
+	content: '\f5a7';
+}
+.fa-mosque:before {
+	content: '\f678';
+}
+.fa-motorcycle:before {
+	content: '\f21c';
+}
+.fa-mountain:before {
+	content: '\f6fc';
+}
+.fa-mug-hot:before {
+	content: '\f7b6';
+}
+.fa-coffee:before,
+.fa-mug-saucer:before {
+	content: '\f0f4';
+}
+.fa-music:before {
+	content: '\f001';
+}
+.fa-n:before {
+	content: '\4e';
+}
+.fa-naira-sign:before {
+	content: '\e1f6';
+}
+.fa-network-wired:before {
+	content: '\f6ff';
+}
+.fa-neuter:before {
+	content: '\f22c';
+}
+.fa-newspaper:before {
+	content: '\f1ea';
+}
+.fa-not-equal:before {
+	content: '\f53e';
+}
+.fa-note-sticky:before,
+.fa-sticky-note:before {
+	content: '\f249';
+}
+.fa-notes-medical:before {
+	content: '\f481';
+}
+.fa-o:before {
+	content: '\4f';
+}
+.fa-object-group:before {
+	content: '\f247';
+}
+.fa-object-ungroup:before {
+	content: '\f248';
+}
+.fa-oil-can:before {
+	content: '\f613';
+}
+.fa-om:before {
+	content: '\f679';
+}
+.fa-otter:before {
+	content: '\f700';
+}
+.fa-dedent:before,
+.fa-outdent:before {
+	content: '\f03b';
+}
+.fa-p:before {
+	content: '\50';
+}
+.fa-pager:before {
+	content: '\f815';
+}
+.fa-paint-roller:before {
+	content: '\f5aa';
+}
+.fa-paint-brush:before,
+.fa-paintbrush:before {
+	content: '\f1fc';
+}
+.fa-palette:before {
+	content: '\f53f';
+}
+.fa-pallet:before {
+	content: '\f482';
+}
+.fa-panorama:before {
+	content: '\e209';
+}
+.fa-paper-plane:before {
+	content: '\f1d8';
+}
+.fa-paperclip:before {
+	content: '\f0c6';
+}
+.fa-parachute-box:before {
+	content: '\f4cd';
+}
+.fa-paragraph:before {
+	content: '\f1dd';
+}
+.fa-passport:before {
+	content: '\f5ab';
+}
+.fa-file-clipboard:before,
+.fa-paste:before {
+	content: '\f0ea';
+}
+.fa-pause:before {
+	content: '\f04c';
+}
+.fa-paw:before {
+	content: '\f1b0';
+}
+.fa-peace:before {
+	content: '\f67c';
+}
+.fa-pen:before {
+	content: '\f304';
+}
+.fa-pen-alt:before,
+.fa-pen-clip:before {
+	content: '\f305';
+}
+.fa-pen-fancy:before {
+	content: '\f5ac';
+}
+.fa-pen-nib:before {
+	content: '\f5ad';
+}
+.fa-pen-ruler:before,
+.fa-pencil-ruler:before {
+	content: '\f5ae';
+}
+.fa-edit:before,
+.fa-pen-to-square:before {
+	content: '\f044';
+}
+.fa-pencil-alt:before,
+.fa-pencil:before {
+	content: '\f303';
+}
+.fa-people-arrows-left-right:before,
+.fa-people-arrows:before {
+	content: '\e068';
+}
+.fa-people-carry-box:before,
+.fa-people-carry:before {
+	content: '\f4ce';
+}
+.fa-pepper-hot:before {
+	content: '\f816';
+}
+.fa-percent:before,
+.fa-percentage:before {
+	content: '\25';
+}
+.fa-male:before,
+.fa-person:before {
+	content: '\f183';
+}
+.fa-biking:before,
+.fa-person-biking:before {
+	content: '\f84a';
+}
+.fa-person-booth:before {
+	content: '\f756';
+}
+.fa-diagnoses:before,
+.fa-person-dots-from-line:before {
+	content: '\f470';
+}
+.fa-female:before,
+.fa-person-dress:before {
+	content: '\f182';
+}
+.fa-hiking:before,
+.fa-person-hiking:before {
+	content: '\f6ec';
+}
+.fa-person-praying:before,
+.fa-pray:before {
+	content: '\f683';
+}
+.fa-person-running:before,
+.fa-running:before {
+	content: '\f70c';
+}
+.fa-person-skating:before,
+.fa-skating:before {
+	content: '\f7c5';
+}
+.fa-person-skiing:before,
+.fa-skiing:before {
+	content: '\f7c9';
+}
+.fa-person-skiing-nordic:before,
+.fa-skiing-nordic:before {
+	content: '\f7ca';
+}
+.fa-person-snowboarding:before,
+.fa-snowboarding:before {
+	content: '\f7ce';
+}
+.fa-person-swimming:before,
+.fa-swimmer:before {
+	content: '\f5c4';
+}
+.fa-person-walking:before,
+.fa-walking:before {
+	content: '\f554';
+}
+.fa-blind:before,
+.fa-person-walking-with-cane:before {
+	content: '\f29d';
+}
+.fa-peseta-sign:before {
+	content: '\e221';
+}
+.fa-peso-sign:before {
+	content: '\e222';
+}
+.fa-phone:before {
+	content: '\f095';
+}
+.fa-phone-alt:before,
+.fa-phone-flip:before {
+	content: '\f879';
+}
+.fa-phone-slash:before {
+	content: '\f3dd';
+}
+.fa-phone-volume:before,
+.fa-volume-control-phone:before {
+	content: '\f2a0';
+}
+.fa-photo-film:before,
+.fa-photo-video:before {
+	content: '\f87c';
+}
+.fa-piggy-bank:before {
+	content: '\f4d3';
+}
+.fa-pills:before {
+	content: '\f484';
+}
+.fa-pizza-slice:before {
+	content: '\f818';
+}
+.fa-place-of-worship:before {
+	content: '\f67f';
+}
+.fa-plane:before {
+	content: '\f072';
+}
+.fa-plane-arrival:before {
+	content: '\f5af';
+}
+.fa-plane-departure:before {
+	content: '\f5b0';
+}
+.fa-plane-slash:before {
+	content: '\e069';
+}
+.fa-play:before {
+	content: '\f04b';
+}
+.fa-plug:before {
+	content: '\f1e6';
+}
+.fa-add:before,
+.fa-plus:before {
+	content: '\2b';
+}
+.fa-plus-minus:before {
+	content: '\e43c';
+}
+.fa-podcast:before {
+	content: '\f2ce';
+}
+.fa-poo:before {
+	content: '\f2fe';
+}
+.fa-poo-bolt:before,
+.fa-poo-storm:before {
+	content: '\f75a';
+}
+.fa-poop:before {
+	content: '\f619';
+}
+.fa-power-off:before {
+	content: '\f011';
+}
+.fa-prescription:before {
+	content: '\f5b1';
+}
+.fa-prescription-bottle:before {
+	content: '\f485';
+}
+.fa-prescription-bottle-alt:before,
+.fa-prescription-bottle-medical:before {
+	content: '\f486';
+}
+.fa-print:before {
+	content: '\f02f';
+}
+.fa-pump-medical:before {
+	content: '\e06a';
+}
+.fa-pump-soap:before {
+	content: '\e06b';
+}
+.fa-puzzle-piece:before {
+	content: '\f12e';
+}
+.fa-q:before {
+	content: '\51';
+}
+.fa-qrcode:before {
+	content: '\f029';
+}
+.fa-question:before {
+	content: '\3f';
+}
+.fa-quote-left-alt:before,
+.fa-quote-left:before {
+	content: '\f10d';
+}
+.fa-quote-right-alt:before,
+.fa-quote-right:before {
+	content: '\f10e';
+}
+.fa-r:before {
+	content: '\52';
+}
+.fa-radiation:before {
+	content: '\f7b9';
+}
+.fa-rainbow:before {
+	content: '\f75b';
+}
+.fa-receipt:before {
+	content: '\f543';
+}
+.fa-record-vinyl:before {
+	content: '\f8d9';
+}
+.fa-ad:before,
+.fa-rectangle-ad:before {
+	content: '\f641';
+}
+.fa-list-alt:before,
+.fa-rectangle-list:before {
+	content: '\f022';
+}
+.fa-rectangle-times:before,
+.fa-rectangle-xmark:before,
+.fa-times-rectangle:before,
+.fa-window-close:before {
+	content: '\f410';
+}
+.fa-recycle:before {
+	content: '\f1b8';
+}
+.fa-registered:before {
+	content: '\f25d';
+}
+.fa-repeat:before {
+	content: '\f363';
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+	content: '\f3e5';
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+	content: '\f122';
+}
+.fa-republican:before {
+	content: '\f75e';
+}
+.fa-restroom:before {
+	content: '\f7bd';
+}
+.fa-retweet:before {
+	content: '\f079';
+}
+.fa-ribbon:before {
+	content: '\f4d6';
+}
+.fa-right-from-bracket:before,
+.fa-sign-out-alt:before {
+	content: '\f2f5';
+}
+.fa-exchange-alt:before,
+.fa-right-left:before {
+	content: '\f362';
+}
+.fa-long-arrow-alt-right:before,
+.fa-right-long:before {
+	content: '\f30b';
+}
+.fa-right-to-bracket:before,
+.fa-sign-in-alt:before {
+	content: '\f2f6';
+}
+.fa-ring:before {
+	content: '\f70b';
+}
+.fa-road:before {
+	content: '\f018';
+}
+.fa-robot:before {
+	content: '\f544';
+}
+.fa-rocket:before {
+	content: '\f135';
+}
+.fa-rotate:before,
+.fa-sync-alt:before {
+	content: '\f2f1';
+}
+.fa-rotate-back:before,
+.fa-rotate-backward:before,
+.fa-rotate-left:before,
+.fa-undo-alt:before {
+	content: '\f2ea';
+}
+.fa-redo-alt:before,
+.fa-rotate-forward:before,
+.fa-rotate-right:before {
+	content: '\f2f9';
+}
+.fa-route:before {
+	content: '\f4d7';
+}
+.fa-feed:before,
+.fa-rss:before {
+	content: '\f09e';
+}
+.fa-rouble:before,
+.fa-rub:before,
+.fa-ruble-sign:before,
+.fa-ruble:before {
+	content: '\f158';
+}
+.fa-ruler:before {
+	content: '\f545';
+}
+.fa-ruler-combined:before {
+	content: '\f546';
+}
+.fa-ruler-horizontal:before {
+	content: '\f547';
+}
+.fa-ruler-vertical:before {
+	content: '\f548';
+}
+.fa-rupee-sign:before,
+.fa-rupee:before {
+	content: '\f156';
+}
+.fa-rupiah-sign:before {
+	content: '\e23d';
+}
+.fa-s:before {
+	content: '\53';
+}
+.fa-sailboat:before {
+	content: '\e445';
+}
+.fa-satellite:before {
+	content: '\f7bf';
+}
+.fa-satellite-dish:before {
+	content: '\f7c0';
+}
+.fa-balance-scale:before,
+.fa-scale-balanced:before {
+	content: '\f24e';
+}
+.fa-balance-scale-left:before,
+.fa-scale-unbalanced:before {
+	content: '\f515';
+}
+.fa-balance-scale-right:before,
+.fa-scale-unbalanced-flip:before {
+	content: '\f516';
+}
+.fa-school:before {
+	content: '\f549';
+}
+.fa-cut:before,
+.fa-scissors:before {
+	content: '\f0c4';
+}
+.fa-screwdriver:before {
+	content: '\f54a';
+}
+.fa-screwdriver-wrench:before,
+.fa-tools:before {
+	content: '\f7d9';
+}
+.fa-scroll:before {
+	content: '\f70e';
+}
+.fa-scroll-torah:before,
+.fa-torah:before {
+	content: '\f6a0';
+}
+.fa-sd-card:before {
+	content: '\f7c2';
+}
+.fa-section:before {
+	content: '\e447';
+}
+.fa-seedling:before,
+.fa-sprout:before {
+	content: '\f4d8';
+}
+.fa-server:before {
+	content: '\f233';
+}
+.fa-shapes:before,
+.fa-triangle-circle-square:before {
+	content: '\f61f';
+}
+.fa-arrow-turn-right:before,
+.fa-mail-forward:before,
+.fa-share:before {
+	content: '\f064';
+}
+.fa-share-from-square:before,
+.fa-share-square:before {
+	content: '\f14d';
+}
+.fa-share-alt:before,
+.fa-share-nodes:before {
+	content: '\f1e0';
+}
+.fa-ils:before,
+.fa-shekel-sign:before,
+.fa-shekel:before,
+.fa-sheqel-sign:before,
+.fa-sheqel:before {
+	content: '\f20b';
+}
+.fa-shield:before {
+	content: '\f132';
+}
+.fa-shield-alt:before,
+.fa-shield-blank:before {
+	content: '\f3ed';
+}
+.fa-shield-virus:before {
+	content: '\e06c';
+}
+.fa-ship:before {
+	content: '\f21a';
+}
+.fa-shirt:before,
+.fa-t-shirt:before,
+.fa-tshirt:before {
+	content: '\f553';
+}
+.fa-shoe-prints:before {
+	content: '\f54b';
+}
+.fa-shop:before,
+.fa-store-alt:before {
+	content: '\f54f';
+}
+.fa-shop-slash:before,
+.fa-store-alt-slash:before {
+	content: '\e070';
+}
+.fa-shower:before {
+	content: '\f2cc';
+}
+.fa-shrimp:before {
+	content: '\e448';
+}
+.fa-random:before,
+.fa-shuffle:before {
+	content: '\f074';
+}
+.fa-shuttle-space:before,
+.fa-space-shuttle:before {
+	content: '\f197';
+}
+.fa-sign-hanging:before,
+.fa-sign:before {
+	content: '\f4d9';
+}
+.fa-signal-5:before,
+.fa-signal-perfect:before,
+.fa-signal:before {
+	content: '\f012';
+}
+.fa-signature:before {
+	content: '\f5b7';
+}
+.fa-map-signs:before,
+.fa-signs-post:before {
+	content: '\f277';
+}
+.fa-sim-card:before {
+	content: '\f7c4';
+}
+.fa-sink:before {
+	content: '\e06d';
+}
+.fa-sitemap:before {
+	content: '\f0e8';
+}
+.fa-skull:before {
+	content: '\f54c';
+}
+.fa-skull-crossbones:before {
+	content: '\f714';
+}
+.fa-slash:before {
+	content: '\f715';
+}
+.fa-sleigh:before {
+	content: '\f7cc';
+}
+.fa-sliders-h:before,
+.fa-sliders:before {
+	content: '\f1de';
+}
+.fa-smog:before {
+	content: '\f75f';
+}
+.fa-smoking:before {
+	content: '\f48d';
+}
+.fa-snowflake:before {
+	content: '\f2dc';
+}
+.fa-snowman:before {
+	content: '\f7d0';
+}
+.fa-snowplow:before {
+	content: '\f7d2';
+}
+.fa-soap:before {
+	content: '\e06e';
+}
+.fa-socks:before {
+	content: '\f696';
+}
+.fa-solar-panel:before {
+	content: '\f5ba';
+}
+.fa-sort:before,
+.fa-unsorted:before {
+	content: '\f0dc';
+}
+.fa-sort-desc:before,
+.fa-sort-down:before {
+	content: '\f0dd';
+}
+.fa-sort-asc:before,
+.fa-sort-up:before {
+	content: '\f0de';
+}
+.fa-spa:before {
+	content: '\f5bb';
+}
+.fa-pastafarianism:before,
+.fa-spaghetti-monster-flying:before {
+	content: '\f67b';
+}
+.fa-spell-check:before {
+	content: '\f891';
+}
+.fa-spider:before {
+	content: '\f717';
+}
+.fa-spinner:before {
+	content: '\f110';
+}
+.fa-splotch:before {
+	content: '\f5bc';
+}
+.fa-spoon:before,
+.fa-utensil-spoon:before {
+	content: '\f2e5';
+}
+.fa-spray-can:before {
+	content: '\f5bd';
+}
+.fa-air-freshener:before,
+.fa-spray-can-sparkles:before {
+	content: '\f5d0';
+}
+.fa-square:before {
+	content: '\f0c8';
+}
+.fa-external-link-square:before,
+.fa-square-arrow-up-right:before {
+	content: '\f14c';
+}
+.fa-caret-square-down:before,
+.fa-square-caret-down:before {
+	content: '\f150';
+}
+.fa-caret-square-left:before,
+.fa-square-caret-left:before {
+	content: '\f191';
+}
+.fa-caret-square-right:before,
+.fa-square-caret-right:before {
+	content: '\f152';
+}
+.fa-caret-square-up:before,
+.fa-square-caret-up:before {
+	content: '\f151';
+}
+.fa-check-square:before,
+.fa-square-check:before {
+	content: '\f14a';
+}
+.fa-envelope-square:before,
+.fa-square-envelope:before {
+	content: '\f199';
+}
+.fa-square-full:before {
+	content: '\f45c';
+}
+.fa-h-square:before,
+.fa-square-h:before {
+	content: '\f0fd';
+}
+.fa-minus-square:before,
+.fa-square-minus:before {
+	content: '\f146';
+}
+.fa-parking:before,
+.fa-square-parking:before {
+	content: '\f540';
+}
+.fa-pen-square:before,
+.fa-pencil-square:before,
+.fa-square-pen:before {
+	content: '\f14b';
+}
+.fa-phone-square:before,
+.fa-square-phone:before {
+	content: '\f098';
+}
+.fa-phone-square-alt:before,
+.fa-square-phone-flip:before {
+	content: '\f87b';
+}
+.fa-plus-square:before,
+.fa-square-plus:before {
+	content: '\f0fe';
+}
+.fa-poll-h:before,
+.fa-square-poll-horizontal:before {
+	content: '\f682';
+}
+.fa-poll:before,
+.fa-square-poll-vertical:before {
+	content: '\f681';
+}
+.fa-square-root-alt:before,
+.fa-square-root-variable:before {
+	content: '\f698';
+}
+.fa-rss-square:before,
+.fa-square-rss:before {
+	content: '\f143';
+}
+.fa-share-alt-square:before,
+.fa-square-share-nodes:before {
+	content: '\f1e1';
+}
+.fa-external-link-square-alt:before,
+.fa-square-up-right:before {
+	content: '\f360';
+}
+.fa-square-xmark:before,
+.fa-times-square:before,
+.fa-xmark-square:before {
+	content: '\f2d3';
+}
+.fa-stairs:before {
+	content: '\e289';
+}
+.fa-stamp:before {
+	content: '\f5bf';
+}
+.fa-star:before {
+	content: '\f005';
+}
+.fa-star-and-crescent:before {
+	content: '\f699';
+}
+.fa-star-half:before {
+	content: '\f089';
+}
+.fa-star-half-alt:before,
+.fa-star-half-stroke:before {
+	content: '\f5c0';
+}
+.fa-star-of-david:before {
+	content: '\f69a';
+}
+.fa-star-of-life:before {
+	content: '\f621';
+}
+.fa-gbp:before,
+.fa-pound-sign:before,
+.fa-sterling-sign:before {
+	content: '\f154';
+}
+.fa-stethoscope:before {
+	content: '\f0f1';
+}
+.fa-stop:before {
+	content: '\f04d';
+}
+.fa-stopwatch:before {
+	content: '\f2f2';
+}
+.fa-stopwatch-20:before {
+	content: '\e06f';
+}
+.fa-store:before {
+	content: '\f54e';
+}
+.fa-store-slash:before {
+	content: '\e071';
+}
+.fa-street-view:before {
+	content: '\f21d';
+}
+.fa-strikethrough:before {
+	content: '\f0cc';
+}
+.fa-stroopwafel:before {
+	content: '\f551';
+}
+.fa-subscript:before {
+	content: '\f12c';
+}
+.fa-suitcase:before {
+	content: '\f0f2';
+}
+.fa-medkit:before,
+.fa-suitcase-medical:before {
+	content: '\f0fa';
+}
+.fa-suitcase-rolling:before {
+	content: '\f5c1';
+}
+.fa-sun:before {
+	content: '\f185';
+}
+.fa-superscript:before {
+	content: '\f12b';
+}
+.fa-swatchbook:before {
+	content: '\f5c3';
+}
+.fa-synagogue:before {
+	content: '\f69b';
+}
+.fa-syringe:before {
+	content: '\f48e';
+}
+.fa-t:before {
+	content: '\54';
+}
+.fa-table:before {
+	content: '\f0ce';
+}
+.fa-table-cells:before,
+.fa-th:before {
+	content: '\f00a';
+}
+.fa-table-cells-large:before,
+.fa-th-large:before {
+	content: '\f009';
+}
+.fa-columns:before,
+.fa-table-columns:before {
+	content: '\f0db';
+}
+.fa-table-list:before,
+.fa-th-list:before {
+	content: '\f00b';
+}
+.fa-ping-pong-paddle-ball:before,
+.fa-table-tennis-paddle-ball:before,
+.fa-table-tennis:before {
+	content: '\f45d';
+}
+.fa-tablet-android:before,
+.fa-tablet:before {
+	content: '\f3fb';
+}
+.fa-tablet-button:before {
+	content: '\f10a';
+}
+.fa-tablet-alt:before,
+.fa-tablet-screen-button:before {
+	content: '\f3fa';
+}
+.fa-tablets:before {
+	content: '\f490';
+}
+.fa-digital-tachograph:before,
+.fa-tachograph-digital:before {
+	content: '\f566';
+}
+.fa-tag:before {
+	content: '\f02b';
+}
+.fa-tags:before {
+	content: '\f02c';
+}
+.fa-tape:before {
+	content: '\f4db';
+}
+.fa-cab:before,
+.fa-taxi:before {
+	content: '\f1ba';
+}
+.fa-teeth:before {
+	content: '\f62e';
+}
+.fa-teeth-open:before {
+	content: '\f62f';
+}
+.fa-temperature-0:before,
+.fa-temperature-empty:before,
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+	content: '\f2cb';
+}
+.fa-temperature-4:before,
+.fa-temperature-full:before,
+.fa-thermometer-4:before,
+.fa-thermometer-full:before {
+	content: '\f2c7';
+}
+.fa-temperature-2:before,
+.fa-temperature-half:before,
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+	content: '\f2c9';
+}
+.fa-temperature-high:before {
+	content: '\f769';
+}
+.fa-temperature-low:before {
+	content: '\f76b';
+}
+.fa-temperature-1:before,
+.fa-temperature-quarter:before,
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+	content: '\f2ca';
+}
+.fa-temperature-3:before,
+.fa-temperature-three-quarters:before,
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+	content: '\f2c8';
+}
+.fa-tenge-sign:before,
+.fa-tenge:before {
+	content: '\f7d7';
+}
+.fa-terminal:before {
+	content: '\f120';
+}
+.fa-text-height:before {
+	content: '\f034';
+}
+.fa-remove-format:before,
+.fa-text-slash:before {
+	content: '\f87d';
+}
+.fa-text-width:before {
+	content: '\f035';
+}
+.fa-thermometer:before {
+	content: '\f491';
+}
+.fa-thumbs-down:before {
+	content: '\f165';
+}
+.fa-thumbs-up:before {
+	content: '\f164';
+}
+.fa-thumb-tack:before,
+.fa-thumbtack:before {
+	content: '\f08d';
+}
+.fa-ticket:before {
+	content: '\f145';
+}
+.fa-ticket-alt:before,
+.fa-ticket-simple:before {
+	content: '\f3ff';
+}
+.fa-timeline:before {
+	content: '\e29c';
+}
+.fa-toggle-off:before {
+	content: '\f204';
+}
+.fa-toggle-on:before {
+	content: '\f205';
+}
+.fa-toilet:before {
+	content: '\f7d8';
+}
+.fa-toilet-paper:before {
+	content: '\f71e';
+}
+.fa-toilet-paper-slash:before {
+	content: '\e072';
+}
+.fa-toolbox:before {
+	content: '\f552';
+}
+.fa-tooth:before {
+	content: '\f5c9';
+}
+.fa-torii-gate:before {
+	content: '\f6a1';
+}
+.fa-broadcast-tower:before,
+.fa-tower-broadcast:before {
+	content: '\f519';
+}
+.fa-tractor:before {
+	content: '\f722';
+}
+.fa-trademark:before {
+	content: '\f25c';
+}
+.fa-traffic-light:before {
+	content: '\f637';
+}
+.fa-trailer:before {
+	content: '\e041';
+}
+.fa-train:before {
+	content: '\f238';
+}
+.fa-subway:before,
+.fa-train-subway:before {
+	content: '\f239';
+}
+.fa-train-tram:before,
+.fa-tram:before {
+	content: '\f7da';
+}
+.fa-transgender-alt:before,
+.fa-transgender:before {
+	content: '\f225';
+}
+.fa-trash:before {
+	content: '\f1f8';
+}
+.fa-trash-arrow-up:before,
+.fa-trash-restore:before {
+	content: '\f829';
+}
+.fa-trash-alt:before,
+.fa-trash-can:before {
+	content: '\f2ed';
+}
+.fa-trash-can-arrow-up:before,
+.fa-trash-restore-alt:before {
+	content: '\f82a';
+}
+.fa-tree:before {
+	content: '\f1bb';
+}
+.fa-exclamation-triangle:before,
+.fa-triangle-exclamation:before,
+.fa-warning:before {
+	content: '\f071';
+}
+.fa-trophy:before {
+	content: '\f091';
+}
+.fa-truck:before {
+	content: '\f0d1';
+}
+.fa-shipping-fast:before,
+.fa-truck-fast:before {
+	content: '\f48b';
+}
+.fa-ambulance:before,
+.fa-truck-medical:before {
+	content: '\f0f9';
+}
+.fa-truck-monster:before {
+	content: '\f63b';
+}
+.fa-truck-moving:before {
+	content: '\f4df';
+}
+.fa-truck-pickup:before {
+	content: '\f63c';
+}
+.fa-truck-loading:before,
+.fa-truck-ramp-box:before {
+	content: '\f4de';
+}
+.fa-teletype:before,
+.fa-tty:before {
+	content: '\f1e4';
+}
+.fa-try:before,
+.fa-turkish-lira-sign:before,
+.fa-turkish-lira:before {
+	content: '\e2bb';
+}
+.fa-level-down-alt:before,
+.fa-turn-down:before {
+	content: '\f3be';
+}
+.fa-level-up-alt:before,
+.fa-turn-up:before {
+	content: '\f3bf';
+}
+.fa-television:before,
+.fa-tv-alt:before,
+.fa-tv:before {
+	content: '\f26c';
+}
+.fa-u:before {
+	content: '\55';
+}
+.fa-umbrella:before {
+	content: '\f0e9';
+}
+.fa-umbrella-beach:before {
+	content: '\f5ca';
+}
+.fa-underline:before {
+	content: '\f0cd';
+}
+.fa-universal-access:before {
+	content: '\f29a';
+}
+.fa-unlock:before {
+	content: '\f09c';
+}
+.fa-unlock-alt:before,
+.fa-unlock-keyhole:before {
+	content: '\f13e';
+}
+.fa-arrows-alt-v:before,
+.fa-up-down:before {
+	content: '\f338';
+}
+.fa-arrows-alt:before,
+.fa-up-down-left-right:before {
+	content: '\f0b2';
+}
+.fa-long-arrow-alt-up:before,
+.fa-up-long:before {
+	content: '\f30c';
+}
+.fa-expand-alt:before,
+.fa-up-right-and-down-left-from-center:before {
+	content: '\f424';
+}
+.fa-external-link-alt:before,
+.fa-up-right-from-square:before {
+	content: '\f35d';
+}
+.fa-upload:before {
+	content: '\f093';
+}
+.fa-user:before {
+	content: '\f007';
+}
+.fa-user-astronaut:before {
+	content: '\f4fb';
+}
+.fa-user-check:before {
+	content: '\f4fc';
+}
+.fa-user-clock:before {
+	content: '\f4fd';
+}
+.fa-user-doctor:before,
+.fa-user-md:before {
+	content: '\f0f0';
+}
+.fa-user-cog:before,
+.fa-user-gear:before {
+	content: '\f4fe';
+}
+.fa-user-graduate:before {
+	content: '\f501';
+}
+.fa-user-friends:before,
+.fa-user-group:before {
+	content: '\f500';
+}
+.fa-user-injured:before {
+	content: '\f728';
+}
+.fa-user-alt:before,
+.fa-user-large:before {
+	content: '\f406';
+}
+.fa-user-alt-slash:before,
+.fa-user-large-slash:before {
+	content: '\f4fa';
+}
+.fa-user-lock:before {
+	content: '\f502';
+}
+.fa-user-minus:before {
+	content: '\f503';
+}
+.fa-user-ninja:before {
+	content: '\f504';
+}
+.fa-user-nurse:before {
+	content: '\f82f';
+}
+.fa-user-edit:before,
+.fa-user-pen:before {
+	content: '\f4ff';
+}
+.fa-user-plus:before {
+	content: '\f234';
+}
+.fa-user-secret:before {
+	content: '\f21b';
+}
+.fa-user-shield:before {
+	content: '\f505';
+}
+.fa-user-slash:before {
+	content: '\f506';
+}
+.fa-user-tag:before {
+	content: '\f507';
+}
+.fa-user-tie:before {
+	content: '\f508';
+}
+.fa-user-times:before,
+.fa-user-xmark:before {
+	content: '\f235';
+}
+.fa-users:before {
+	content: '\f0c0';
+}
+.fa-users-cog:before,
+.fa-users-gear:before {
+	content: '\f509';
+}
+.fa-users-slash:before {
+	content: '\e073';
+}
+.fa-cutlery:before,
+.fa-utensils:before {
+	content: '\f2e7';
+}
+.fa-v:before {
+	content: '\56';
+}
+.fa-shuttle-van:before,
+.fa-van-shuttle:before {
+	content: '\f5b6';
+}
+.fa-vault:before {
+	content: '\e2c5';
+}
+.fa-vector-square:before {
+	content: '\f5cb';
+}
+.fa-venus:before {
+	content: '\f221';
+}
+.fa-venus-double:before {
+	content: '\f226';
+}
+.fa-venus-mars:before {
+	content: '\f228';
+}
+.fa-vest:before {
+	content: '\e085';
+}
+.fa-vest-patches:before {
+	content: '\e086';
+}
+.fa-vial:before {
+	content: '\f492';
+}
+.fa-vials:before {
+	content: '\f493';
+}
+.fa-video-camera:before,
+.fa-video:before {
+	content: '\f03d';
+}
+.fa-video-slash:before {
+	content: '\f4e2';
+}
+.fa-vihara:before {
+	content: '\f6a7';
+}
+.fa-virus:before {
+	content: '\e074';
+}
+.fa-virus-covid:before {
+	content: '\e4a8';
+}
+.fa-virus-covid-slash:before {
+	content: '\e4a9';
+}
+.fa-virus-slash:before {
+	content: '\e075';
+}
+.fa-viruses:before {
+	content: '\e076';
+}
+.fa-voicemail:before {
+	content: '\f897';
+}
+.fa-volleyball-ball:before,
+.fa-volleyball:before {
+	content: '\f45f';
+}
+.fa-volume-high:before,
+.fa-volume-up:before {
+	content: '\f028';
+}
+.fa-volume-down:before,
+.fa-volume-low:before {
+	content: '\f027';
+}
+.fa-volume-off:before {
+	content: '\f026';
+}
+.fa-volume-mute:before,
+.fa-volume-times:before,
+.fa-volume-xmark:before {
+	content: '\f6a9';
+}
+.fa-vr-cardboard:before {
+	content: '\f729';
+}
+.fa-w:before {
+	content: '\57';
+}
+.fa-wallet:before {
+	content: '\f555';
+}
+.fa-magic:before,
+.fa-wand-magic:before {
+	content: '\f0d0';
+}
+.fa-magic-wand-sparkles:before,
+.fa-wand-magic-sparkles:before {
+	content: '\e2ca';
+}
+.fa-wand-sparkles:before {
+	content: '\f72b';
+}
+.fa-warehouse:before {
+	content: '\f494';
+}
+.fa-water:before {
+	content: '\f773';
+}
+.fa-ladder-water:before,
+.fa-swimming-pool:before,
+.fa-water-ladder:before {
+	content: '\f5c5';
+}
+.fa-wave-square:before {
+	content: '\f83e';
+}
+.fa-weight-hanging:before {
+	content: '\f5cd';
+}
+.fa-weight-scale:before,
+.fa-weight:before {
+	content: '\f496';
+}
+.fa-wheelchair:before {
+	content: '\f193';
+}
+.fa-glass-whiskey:before,
+.fa-whiskey-glass:before {
+	content: '\f7a0';
+}
+.fa-wifi-3:before,
+.fa-wifi-strong:before,
+.fa-wifi:before {
+	content: '\f1eb';
+}
+.fa-wind:before {
+	content: '\f72e';
+}
+.fa-window-maximize:before {
+	content: '\f2d0';
+}
+.fa-window-minimize:before {
+	content: '\f2d1';
+}
+.fa-window-restore:before {
+	content: '\f2d2';
+}
+.fa-wine-bottle:before {
+	content: '\f72f';
+}
+.fa-wine-glass:before {
+	content: '\f4e3';
+}
+.fa-wine-glass-alt:before,
+.fa-wine-glass-empty:before {
+	content: '\f5ce';
+}
+.fa-krw:before,
+.fa-won-sign:before,
+.fa-won:before {
+	content: '\f159';
+}
+.fa-wrench:before {
+	content: '\f0ad';
+}
+.fa-x:before {
+	content: '\58';
+}
+.fa-x-ray:before {
+	content: '\f497';
+}
+.fa-close:before,
+.fa-multiply:before,
+.fa-remove:before,
+.fa-times:before,
+.fa-xmark:before {
+	content: '\f00d';
+}
+.fa-y:before {
+	content: '\59';
+}
+.fa-cny:before,
+.fa-jpy:before,
+.fa-rmb:before,
+.fa-yen-sign:before,
+.fa-yen:before {
+	content: '\f157';
+}
+.fa-yin-yang:before {
+	content: '\f6ad';
+}
+.fa-z:before {
+	content: '\5a';
+}
+.fa-sr-only,
+.fa-sr-only-focusable:not(:focus),
+.sr-only,
+.sr-only-focusable:not(:focus) {
+	position: absolute;
+	width: 1px;
+	height: 1px;
+	padding: 0;
+	margin: -1px;
+	overflow: hidden;
+	clip: rect(0, 0, 0, 0);
+	white-space: nowrap;
+	border-width: 0;
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/solid.min.css b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/solid.min.css
new file mode 100755
index 0000000000..64485902c0
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/css/solid.min.css
@@ -0,0 +1,23 @@
+/*!
+ * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
+ */
+:host,
+:root {
+	--fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free';
+}
+@font-face {
+	font-family: 'Font Awesome 6 Free';
+	font-style: normal;
+	font-weight: 900;
+	font-display: block;
+	src:
+		url(../webfonts/fa-solid-900.woff2) format('woff2'),
+		url(../webfonts/fa-solid-900.ttf) format('truetype');
+}
+.fa-solid,
+.fas {
+	font-family: 'Font Awesome 6 Free';
+	font-weight: 900;
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/webfonts/fa-solid-900.ttf b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/webfonts/fa-solid-900.ttf
new file mode 100755
index 0000000000..99b35ad505
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/webfonts/fa-solid-900.ttf differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/webfonts/fa-solid-900.woff2 b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/webfonts/fa-solid-900.woff2
new file mode 100755
index 0000000000..c7bd59c241
Binary files /dev/null and b/packages/modules/web_themes/colors/source/src/assets/fonts/fontawesome-free-6.0.0-web/webfonts/fa-solid-900.woff2 differ
diff --git a/packages/modules/web_themes/colors/source/src/assets/js/helpers.ts b/packages/modules/web_themes/colors/source/src/assets/js/helpers.ts
new file mode 100755
index 0000000000..1c94d2fb39
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/js/helpers.ts
@@ -0,0 +1,262 @@
+/*
+ * helpers.ts
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+export function formatWatt(watt: number, decimalPlaces = 1) {
+	let wattResult
+	if (watt >= 1000 && decimalPlaces < 4) {
+		switch (decimalPlaces) {
+			case 0:
+				wattResult = Math.round(watt / 1000)
+				break
+			case 1:
+				wattResult = Math.round(watt / 100) / 10
+				break
+			case 2:
+				wattResult = Math.round(watt / 10) / 100
+				break
+			case 3:
+				wattResult = Math.round(watt) / 1000
+				break
+			default:
+				wattResult = Math.round(watt / 100) / 10
+				break
+		}
+		return (
+			wattResult?.toLocaleString(undefined, {
+				minimumFractionDigits: decimalPlaces,
+			}) + ' kW'
+		)
+	} else {
+		return Math.round(watt).toLocaleString(undefined) + ' W'
+	}
+}
+
+export function formatWattH(wattH: number, decimalPlaces = 1, useMWh = false) {
+	let wattResult
+	if (wattH >= 1000 && decimalPlaces < 4) {
+		switch (decimalPlaces) {
+			case 0:
+				wattResult = Math.round(wattH / 1000)
+				break
+			case 1:
+				wattResult = (Math.round(wattH / 100) / 10).toFixed(1)
+				break
+			case 2:
+				wattResult = (Math.round(wattH / 10) / 100).toFixed(2)
+				break
+			case 3:
+				wattResult = (Math.round(wattH) / 1000).toFixed(3)
+				break
+			default:
+				wattResult = Math.round(wattH / 100) / 10
+				break
+		}
+		return (
+			wattResult.toLocaleString(undefined, {
+				minimumFractionDigits: decimalPlaces,
+			}) + (useMWh ? ' MWh' : ' kWh')
+		)
+	} else {
+		return (
+			Math.round(wattH).toLocaleString(undefined) + (useMWh ? ' kWh' : ' Wh')
+		)
+	}
+}
+export function formatTime(seconds: number) {
+	const hours = Math.floor(seconds / 3600)
+	const minutes = ((seconds % 3600) / 60).toFixed(0)
+	if (hours > 0) {
+		return hours + 'h ' + minutes + ' min'
+	} else {
+		return minutes + ' min'
+	}
+}
+export function formatDate(d: Date, mode: string = 'day') {
+	switch (mode) {
+		case 'day':
+		case 'today':
+			return `${d.getDate()}.${d.getMonth() + 1}.${d.getFullYear()}`
+		case 'month':
+			return `${d.getMonth()}-${d.getFullYear()}`
+		case 'year':
+			return `${d.getFullYear()}`
+	}
+}
+
+export function formatMonth(month: number, year: number) {
+	const months = [
+		'Jan',
+		'Feb',
+		'März',
+		'April',
+		'Mai',
+		'Juni',
+		'Juli',
+		'Aug',
+		'Sep',
+		'Okt',
+		'Nov',
+		'Dez',
+	]
+	return months[month] + ' ' + year
+}
+
+export function formatTemp(t: number) {
+	return (
+		(Math.round(t * 10) / 10).toLocaleString(undefined, {
+			minimumFractionDigits: 1,
+		}) + '°'
+	)
+}
+
+/* function shiftLeft() {
+	switch (wbdata.graphMode) {
+		case 'live':
+			wbdata.graphMode = 'day';
+			wbdata.graphPreference = 'day';
+			wbdata.showTodayGraph = true;
+			powerGraph.deactivateLive();
+			powerGraph.activateDay();
+			wbdata.prefs.showLG = false;
+			wbdata.persistGraphPreferences();
+			d3.select("button#graphRightButton").classed("disabled", false)
+			break;
+		case 'day':
+			wbdata.showTodayGraph = false;
+			wbdata.graphDate.setTime(wbdata.graphDate.getTime() - 86400000);
+			powerGraph.activateDay();
+			break;
+		case 'month':
+			wbdata.graphMonth.month = wbdata.graphMonth.month - 1;
+			if (wbdata.graphMonth.month < 0) {
+				wbdata.graphMonth.month = 11;
+				wbdata.graphMonth.year = wbdata.graphMonth.year - 1;
+			}
+			powerGraph.activateMonth();
+			break;
+		default: break;		
+	}
+}
+ */
+/* function shiftRight() {
+	today = new Date();
+	const d = wbdata.graphDate;
+	switch (wbdata.graphMode) {
+		case 'live':
+			break;
+		case 'day':
+			if (d.getDate() == today.getDate() && d.getMonth() == today.getMonth() && d.getFullYear() == today.getFullYear()) { // date is today, switch to live graph
+				wbdata.graphMode = 'live';
+				powerGraph.deactivateDay();
+				powerGraph.activateLive();
+				wbdata.graphPreference = 'live';
+				wbdata.prefs.showLG = true;
+				wbdata.persistGraphPreferences();
+				d3.select("button#graphLeftButton").classed("disabled", false)
+				d3.select("button#graphRightButton").classed("disabled", true)
+			} else { // currently looking at a previous day
+				wbdata.graphDate.setTime(wbdata.graphDate.getTime() + 86400000);
+				const nd = wbdata.graphDate;
+				if (nd.getDate() == today.getDate() && nd.getMonth() == today.getMonth() && nd.getFullYear() == today.getFullYear()) {
+					wbdata.showTodayGraph = true;
+				}
+				powerGraph.activateDay();
+			}
+			break;
+		case 'month':
+			if ((today.getMonth() != wbdata.graphMonth.month) || (today.getFullYear() != wbdata.graphMonth.year)) { // we are looking at a previous month
+				wbdata.graphMonth.month = wbdata.graphMonth.month + 1;
+				if (wbdata.graphMonth.month == 12) {
+					wbdata.graphMonth.month = 0;
+					wbdata.graphMonth.year = wbdata.graphMonth.year + 1;
+				}
+				powerGraph.activateMonth();
+			} 
+		}
+	
+} */
+
+/* function toggleGrid() {
+	wbdata.showGrid = !wbdata.showGrid;
+	powerGraph.updateGraph();
+	yieldMeter.update();
+	wbdata.persistGraphPreferences();
+} */
+
+/* function switchDecimalPlaces() {
+	if (wbdata.decimalPlaces  < 3) {
+		wbdata.decimalPlaces = wbdata.decimalPlaces+1;
+	} else {
+		wbdata.decimalPlaces = 0;
+	}
+	wbdata.persistGraphPreferences();
+	powerMeter.update();
+	yieldMeter.update();
+	smartHomeList.update();
+} */
+
+/* function switchSmartHomeColors() {
+	const doc = d3.select("html");
+	switch (wbdata.smartHomeColors) {
+		case 'normal':
+			wbdata.smartHomeColors = 'standard';
+			doc.classed("shcolors-normal", false);
+			doc.classed("shcolors-standard", true);
+			doc.classed("shcolors-advanced", false);
+			break;
+		case 'standard':
+			wbdata.smartHomeColors = 'advanced';
+			doc.classed("shcolors-normal", false);
+			doc.classed("shcolors-standard", false);
+			doc.classed("shcolors-advanced", true);
+			break;
+		case 'advanced':
+			wbdata.smartHomeColors = 'normal';
+			doc.classed("shcolors-normal", true);
+			doc.classed("shcolors-standard", false);
+			doc.classed("shcolors-advanced", false);
+			break;
+		default:
+			wbdata.smartHomeColors = 'normal';
+			doc.classed("shcolors-normal", true);
+			doc.classed("shcolors-standard", false);
+			doc.classed("shcolors-advanced", false);
+			break;
+	}
+	wbdata.persistGraphPreferences();
+} */
+
+/* function toggleMonthView() {
+	if (wbdata.graphMode == 'month') {
+		wbdata.graphMode = wbdata.graphPreference;
+		if (wbdata.graphPreference == 'live') {
+			powerGraph.activateLive();
+			powerGraph.deactivateMonth();
+		} else {
+			powerGraph.activateDay();
+			powerGraph.deactivateMonth();
+		}
+	} else {
+		wbdata.graphMode = 'month';
+		powerGraph.activateMonth();
+		powerGraph.deactivateDay();
+		powerGraph.deactivateLive();	
+	}
+	yieldMeter.update();
+}
+ */
+/*export default {
+	formatWatt,
+	formatWattH,
+	formatTime,
+	formatMonth,
+	 shiftLeft,
+	shiftRight,
+	toggleGrid,
+	switcDecimalPlaces,
+	switchSmartHomeColors,
+	toggleMonthView 
+}*/
diff --git a/packages/modules/web_themes/colors/source/src/assets/js/model.ts b/packages/modules/web_themes/colors/source/src/assets/js/model.ts
new file mode 100644
index 0000000000..80767be0b2
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/js/model.ts
@@ -0,0 +1,79 @@
+/*
+ * model.ts
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+// this is the model for global data. It contains all values required by the different parts of the front end
+// Components have their local model
+
+import { reactive, ref } from 'vue'
+import { ShDevice, GlobalData } from './types'
+import type { PowerItem, ItemProps } from './types'
+
+export const masterData: { [key: string]: ItemProps } = reactive({
+	evuIn: { name: 'Netz', color: 'var(--color-evu)', icon: '\uf275' },
+	pv: { name: 'PV', color: 'var(--color-pv', icon: '\uf5ba' },
+	batOut: {
+		name: 'Bat >',
+		color: 'var(--color-battery)',
+		icon: '\uf5df\uf061',
+	},
+	evuOut: {
+		name: 'Export',
+		color: 'var(--color-export)',
+		icon: '\uf061\uf57d',
+	},
+	charging: { name: 'Laden', color: 'var(--color-charging)', icon: '\uf5e7' },
+	devices: { name: 'Geräte', color: 'var(--color-devices)', icon: '\uf1e6' },
+	batIn: { name: '> Bat', color: 'var(--color-battery)', icon: '\uf061\uf5df' },
+	house: { name: 'Haus', color: 'var(--color-house)', icon: '\uf015' },
+})
+export const historicSummary: { [key: string]: PowerItem } = reactive({
+	//evuIn: { name: 'Netz', power: 0, energy: 0, energyPv: 0, energyBat: 0, pvPercentage: 0, color: 'var(--color-evu)', icon: masterData.evuIn.icon },
+	evuIn: createPowerItem('evuIn'),
+	pv: createPowerItem('pv'),
+	batOut: createPowerItem('batOut'),
+	evuOut: createPowerItem('evuOut'),
+	charging: createPowerItem('charging'),
+	devices: createPowerItem('devices'),
+	batIn: createPowerItem('batIn'),
+	house: createPowerItem('house'),
+})
+export const sourceSummary: { [key: string]: PowerItem } = reactive({
+	// evuIn: { name: 'Netz', power: 0, energy: 0, energyPv: 0, energyBat: 0, pvPercentage: 0, color: 'var(--color-evu)', icon: masterData.evuIn.icon },
+	evuIn: createPowerItem('evuIn'),
+	pv: createPowerItem('pv'),
+	batOut: createPowerItem('batOut'),
+})
+export const usageSummary: { [key: string]: PowerItem } = reactive({
+	evuOut: createPowerItem('evuOut'),
+	charging: createPowerItem('charging'),
+	devices: createPowerItem('devices'),
+	batIn: createPowerItem('batIn'),
+	house: createPowerItem('house'),
+})
+export const shDevices: { [key: number]: ShDevice } = reactive([])
+export const globalData = reactive(new GlobalData())
+export const etPriceList = ref('')
+// Initiate the model
+Array.from({ length: 9 }, (v, i) => (shDevices[i] = new ShDevice(i)))
+// init colors
+
+Object.values(shDevices).forEach((device) => {
+	device.color = 'var(--color-sh' + (device.id + 1) + ')'
+})
+
+function createPowerItem(key: string): PowerItem {
+	const p: PowerItem = {
+		name: masterData[key].name,
+		power: 0,
+		energy: 0,
+		energyPv: 0,
+		energyBat: 0,
+		pvPercentage: 0,
+		color: masterData[key].color,
+		icon: masterData[key].icon,
+	}
+	return p
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/js/mqttClient.ts b/packages/modules/web_themes/colors/source/src/assets/js/mqttClient.ts
new file mode 100644
index 0000000000..7e0f4fbd56
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/js/mqttClient.ts
@@ -0,0 +1,96 @@
+/*
+ * mqttClient.ts
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+// functions to interact with MQTT
+import {
+	MqttClient,
+	connect,
+	type OnMessageCallback,
+	type MqttProtocol,
+} from 'mqtt'
+import { type QoS } from 'mqtt-packet'
+
+const defaultQoS: QoS = 0
+const mqttConnection = {
+	host: location.hostname,
+	port: location.protocol == 'https:' ? 443 : 80,
+	endpoint: '/ws',
+	protocol: (location.protocol == 'https:' ? 'wss' : 'ws') as MqttProtocol,
+	connectTimeout: 4000,
+	reconnectPeriod: 4000,
+	clientId: Math.random()
+		.toString(36)
+		.replace(/[^a-z]+/g, '')
+		.substring(0, 6),
+}
+const subscription = {
+	topic: '',
+	qos: defaultQoS,
+}
+let client: MqttClient
+
+// export function MqttConnect(callback: (t: string, m: string) => void, topiclist: string[]) {
+const { host, port, endpoint, ...options } = mqttConnection
+const connectUrl = `${options.protocol}://${host}:${port}${endpoint}`
+console.log(connectUrl)
+console.log(options)
+try {
+	client = connect(connectUrl, options)
+	client.on('connect', () => {
+		console.info('MQTT connection successful')
+		// topiclist.forEach((topic) => {
+		//  subscribe(topic);
+		// });
+	})
+	client.on('error', (error) => {
+		console.error('MQTT connection failed: ', error)
+	})
+} catch (error) {
+	console.error('MQTT connect error: ', error)
+}
+
+//}
+export function mqttRegister(callback: OnMessageCallback) {
+	if (client) {
+		client.on('message', callback)
+	} else {
+		console.error('MqttRegister: MQTT client not available')
+	}
+}
+export function mqttSubscribe(toTopic: string) {
+	subscription.topic = toTopic
+	const { topic, qos } = subscription
+	client.subscribe(topic, { qos }, (error) => {
+		if (error) {
+			console.error('MQTT Subscription error: ' + error)
+			return
+		}
+		//console.info("MQTT Subscription successful: " + toTopic);
+	})
+}
+export function mqttUnsubscribe(fromTopic: string) {
+	subscription.topic = fromTopic
+	const { topic } = subscription
+	client.unsubscribe(topic, (error: Error | undefined) => {
+		if (error) {
+			console.error('MQTT Unsubscribe from ' + fromTopic + ' failed: ' + error)
+			return
+		}
+		//console.info ('MQTT unsubscribe successful: ' + topic)
+	})
+}
+export function mqttPublish(topic: string, message: string) {
+	const qos: QoS = 0
+	client.publish(topic, message, { qos }, (error) => {
+		if (error) {
+			console.warn('MQTT publish error: ', error)
+		}
+		console.info('Message sent: [' + topic + '](' + message + ')')
+	})
+}
+export function mqttClientId() {
+	return mqttConnection.clientId
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/js/processMessages.ts b/packages/modules/web_themes/colors/source/src/assets/js/processMessages.ts
new file mode 100755
index 0000000000..b056d9eba6
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/js/processMessages.ts
@@ -0,0 +1,199 @@
+import { mqttRegister, mqttSubscribe } from './mqttClient'
+import type { Hierarchy } from './types'
+import { globalData, sourceSummary, usageSummary } from './model'
+import { processLiveGraphMessages } from '../../components/powerGraph/processLiveGraphData'
+import { processDayGraphMessages } from '../../components/powerGraph/processDayGraphData'
+import { processMonthGraphMessages } from '../../components/powerGraph/processMonthGraphData'
+import { processYearGraphMessages } from '../../components/powerGraph/processYearGraphData'
+import { initGraph } from '@/components/powerGraph/model'
+import { processBatteryMessages } from '@/components/batteryList/processMessages'
+import { processEtProviderMessages } from '@/components/priceChart/processMessages'
+import {
+	addChargePoint,
+	resetChargePoints,
+} from '@/components/chargePointList/model'
+import { addBattery, resetBatteries } from '@/components/batteryList/model'
+import {
+	processChargepointMessages,
+	processVehicleMessages,
+	processVehicleTemplateMessages,
+} from '@/components/chargePointList/processMessages'
+import { processSmarthomeMessages } from '@/components/smartHome/processMessages'
+
+const topicsToSubscribe = [
+	'openWB/counter/#',
+	'openWB/bat/#',
+	'openWB/pv/get/#',
+	'openWB/chargepoint/#',
+	'openWB/vehicle/#',
+	'openWB/general/chargemode_config/pv_charging/#',
+	'openWB/optional/et/#',
+	'openWB/system/#',
+	'openWB/LegacySmartHome/#',
+]
+export function msgInit() {
+	mqttRegister(processMqttMessage)
+	topicsToSubscribe.forEach((topic) => {
+		mqttSubscribe(topic)
+	})
+	initGraph()
+}
+function processMqttMessage(topic: string, payload: Buffer) {
+	const message = payload.toString()
+	if (topic.match(/^openwb\/counter\/[0-9]+\//i)) {
+		processCounterMessages(topic, message)
+	} else if (topic.match(/^openwb\/counter\//i)) {
+		processGlobalCounterMessages(topic, message)
+	} else if (topic.match(/^openwb\/bat\//i)) {
+		processBatteryMessages(topic, message)
+	} else if (topic.match(/^openwb\/pv\//i)) {
+		processPvMessages(topic, message)
+	} else if (topic.match(/^openwb\/chargepoint\//i)) {
+		processChargepointMessages(topic, message)
+	} else if (topic.match(/^openwb\/vehicle\/template\//i)) {
+		processVehicleTemplateMessages(topic, message)
+	} else if (topic.match(/^openwb\/vehicle\//i)) {
+		processVehicleMessages(topic, message)
+	} else if (
+		topic.match(/^openwb\/general\/chargemode_config\/pv_charging\//i)
+	) {
+		processPvConfigMessages(topic, message)
+	} else if (topic.match(/^openwb\/graph\//i)) {
+		processLiveGraphMessages(topic, message)
+	} else if (topic.match(/^openwb\/log\/daily\//i)) {
+		processDayGraphMessages(topic, message)
+	} else if (topic.match(/^openwb\/log\/monthly\//i)) {
+		processMonthGraphMessages(topic, message)
+	} else if (topic.match(/^openwb\/log\/yearly\//i)) {
+		processYearGraphMessages(topic, message)
+	} else if (topic.match(/^openwb\/optional\/et\//i)) {
+		processEtProviderMessages(topic, message)
+	} // else if ( mqttTopic.match( /^openwb\/global\//i) ) { processGlobalMessages(mqttTopic, message); }
+	//else if (topic.match(/^openwb\/system\//i)) {
+	//	processSystemMessages(topic, message)
+	//}  else if ( mqttTopic.match( /^openwb\/verbraucher\//i) ) { processVerbraucherMessages(mqttTopic, message); }
+	// else if ( mqttTopic.match( /^openwb\/hook\//i) ) { processHookMessages(mqttTopic, message); }
+	// else if ( mqttTopic.match( /^openwb\/SmartHome\/Devices\//i) ) { processSmartHomeDevicesMessages(mqttTopic, message); }
+	else if (topic.match(/^openwb\/LegacySmartHome\//i)) {
+		processSmarthomeMessages(topic, message)
+	}
+	// else if ( mqttTopic.match( /^openwb\/config\/get\/sofort\/lp\//i) ) { processSofortConfigMessages(mqttTopic, message); }
+}
+function processCounterMessages(topic: string, message: string) {
+	const elements = topic.split('/')
+	if (+elements[2] == globalData.evuId) {
+		processEvuMessages(topic, message)
+	} else if (elements[3] == 'config') {
+		console.warn('Ignored counter config message')
+	} else {
+		switch (elements[4]) {
+			case 'power':
+			case 'config':
+			case 'fault_str':
+			case 'fault_state':
+			case 'power_factors':
+			case 'imported':
+			case 'exported':
+			case 'frequency':
+			case 'daily_yield_import':
+			case 'daily_yield_export':
+				break
+			default:
+			// console.warn('Ignored COUNTER message: ' + topic)
+		}
+	}
+}
+function processGlobalCounterMessages(topic: string, message: string) {
+	if (topic.match(/^openwb\/counter\/get\/hierarchy$/i)) {
+		const hierarchy = JSON.parse(message)
+		if (hierarchy.length) {
+			resetChargePoints()
+			resetBatteries()
+
+			for (const element of hierarchy) {
+				if (element.type == 'counter') {
+					globalData.evuId = element.id
+					console.info('EVU counter is ' + globalData.evuId)
+				}
+			}
+			processHierarchy(hierarchy[0])
+		}
+	} else if (topic.match(/^openwb\/counter\/set\/home_consumption$/i)) {
+		usageSummary.house.power = +message
+	} else if (
+		topic.match(/^openwb\/counter\/set\/daily_yield_home_consumption$/i)
+	) {
+		usageSummary.house.energy = +message / 1000
+	} else {
+		// console.warn('Ignored GLOBAL COUNTER message: ' + topic)
+	}
+}
+function processHierarchy(hierarchy: Hierarchy) {
+	switch (hierarchy.type) {
+		case 'counter':
+			console.info('counter in hierachy: ' + hierarchy.id)
+			break
+		case 'cp':
+			addChargePoint(hierarchy.id)
+			break
+		case 'bat':
+			addBattery(hierarchy.id)
+			break
+		case 'inverter':
+			// addInverter (todo)
+			console.info('inverter id ' + hierarchy.id)
+			break
+		default:
+			console.warn('Ignored Hierarchy type: ' + hierarchy.type)
+	}
+	// recursively process the hierarchy
+	hierarchy.children.forEach((element) => processHierarchy(element))
+}
+
+function processPvMessages(topic: string, message: string) {
+	switch (topic) {
+		case 'openWB/pv/get/power':
+			sourceSummary.pv.power = -message
+			break
+		case 'openWB/pv/get/daily_exported':
+			sourceSummary.pv.energy = +message / 1000
+			break
+		default:
+		// console.warn('Ignored PV msg: [' + topic + '] ' + message)
+	}
+}
+
+function processPvConfigMessages(topic: string, message: string) {
+	const elements = topic.split('/')
+	if (elements.length > 0) {
+		switch (elements[4]) {
+			case 'bat_prio':
+				globalData.updatePvBatteryPriority(message == 'true')
+				break
+			default:
+			// console.warn('Ignored PV CONFIG msg: [' + topic + '] ' + message)
+		}
+	}
+}
+
+function processEvuMessages(topic: string, message: string) {
+	const elements = topic.split('/')
+	switch (elements[4]) {
+		case 'power':
+			if (+message > 0) {
+				sourceSummary.evuIn.power = +message
+				usageSummary.evuOut.power = 0
+			} else {
+				sourceSummary.evuIn.power = 0
+				usageSummary.evuOut.power = -message
+			}
+			break
+		case 'daily_imported':
+			sourceSummary.evuIn.energy = +message / 1000
+			break
+		case 'daily_exported':
+			usageSummary.evuOut.energy = +message / 1000
+			break
+		default:
+	}
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/js/sendMessages.ts b/packages/modules/web_themes/colors/source/src/assets/js/sendMessages.ts
new file mode 100644
index 0000000000..49b04ffdca
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/js/sendMessages.ts
@@ -0,0 +1,105 @@
+/*
+ * sendMessages.ts
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+import { mqttPublish, mqttClientId } from './mqttClient'
+import {
+	chargePoints,
+	chargeTemplates,
+} from '@/components/chargePointList/model'
+
+const topics: { [topic: string]: string } = {
+	cpLock: 'openWB/set/chargepoint/%/set/manual_lock',
+	chargeMode:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/selected',
+	cpPriority: 'openWB/set/vehicle/template/charge_template/%/prio',
+	cpScheduledCharging:
+		'openWB/set/vehicle/template/charge_template/%/time_charging/active',
+	pvBatteryPriority:
+		'openWB/set/general/chargemode_config/pv_charging/bat_prio',
+	chargeTemplate: 'openWB/set/vehicle/template/charge_template/%',
+	cpVehicle: 'openWB/set/chargepoint/%/config/ev',
+	cpInstantChargeLimitMode:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/selected',
+	cpInstantTargetCurrent:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/current',
+	cpInstantTargetSoc:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/soc',
+	cpInstantMaxEnergy:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/amount',
+	cpPvFeedInLimit:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/feed_in_limit',
+	cpPvMinCurrent:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_current',
+	cpPvMaxSoc:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/max_soc',
+	cpPvMinSoc:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_soc',
+	cpPvMinSocCurrent:
+		'openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_soc_current',
+	etMaxPrice: 'openWB/set/optional/et/max_price',
+	vhChargeTemplateId: 'openWB/set/vehicle/%/charge_template',
+	vhEvTemplateId: 'openWB/set/vehicle/%/ev_template',
+	// SmartHome
+	// shSetManual: 'openWB/config/set/SmartHome/Devices/%/mode',
+	shSetManual: 'openWB/set/LegacySmartHome/config/set/Devices/%/mode',
+	shSwitchOn:
+		'openWB/set/LegacySmartHome/config/set/Devices/%/device_manual_control',
+}
+export function updateServer(
+	item: string,
+	value: string | number | boolean,
+	index: number = 0,
+) {
+	if (isNaN(index)) {
+		console.warn('Invalid index')
+		return
+	}
+	let topic = topics[item]
+	if (!topic) {
+		console.warn('No topic for update type ' + item)
+		return
+	}
+	switch (item) {
+		case 'chargeMode':
+		case 'cpPriority':
+		case 'cpScheduledCharging':
+		case 'cpInstantTargetCurrent':
+		case 'cpInstantChargeLimitMode':
+		case 'cpInstantTargetSoc':
+		case 'cpInstantMaxEnergy':
+		case 'cpPvFeedInLimit':
+		case 'cpPvMinCurrent':
+		case 'cpPvMaxSoc':
+		case 'cpPvMinSoc':
+		case 'cpPvMinSocCurrent': // these values are set in the charge template
+			topic = topic.replace('%', chargePoints[index].chargeTemplate.toString())
+			break
+		default:
+			topic = topic.replace('%', String(index))
+	}
+	switch (typeof value) {
+		case 'number':
+			mqttPublish(topic, JSON.stringify(+value))
+			break
+		default:
+			mqttPublish(topic, JSON.stringify(value))
+	}
+}
+
+export function updateChargeTemplate(templateId: number) {
+	const template = chargeTemplates[templateId]
+	if (template) {
+		const topic = 'openWB/set/vehicle/template/charge_template/' + templateId
+		mqttPublish(topic, JSON.stringify(template))
+	}
+}
+export function sendCommand(event: object) {
+	// console.log ("SENDCOMMAND " + JSON.stringify(event))
+	mqttPublish(
+		'openWB/set/command/' + mqttClientId() + '/todo',
+		JSON.stringify(event),
+	)
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/js/themeConfig.ts b/packages/modules/web_themes/colors/source/src/assets/js/themeConfig.ts
new file mode 100644
index 0000000000..b814a9e7cb
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/js/themeConfig.ts
@@ -0,0 +1,334 @@
+/*
+ * themeConfig.ts
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+import { computed, reactive } from 'vue'
+import * as d3 from 'd3'
+import type { ChargeModeInfo } from './types'
+import { addShDevice, shDevices } from '@/components/smartHome/model'
+import { setInitializeSourceGraph } from '@/components/powerGraph/model'
+import { ChargeMode } from '@/components/chargePointList/model'
+export class Config {
+	private _showRelativeArcs: boolean = false
+	showTodayGraph: boolean = true
+	private _graphPreference: string = 'today'
+	private _usageStackOrder: number = 0
+	private _displayMode: string = 'dark'
+	private _showGrid: boolean = false
+	private _smartHomeColors: string = 'normal'
+	private _decimalPlaces: number = 1
+	private _showQuickAccess = true
+	private _simpleCpList = false
+	private _showAnimations = true
+	private _preferWideBoxes = false
+	maxPower: number = 4000
+	isEtEnabled: boolean = false
+	etPrice: number = 20.5
+	showRightButton = true
+	showLeftButton = true
+	// graphMode = ''
+	animationDuration = 300
+	animationDelay = 100
+	constructor() {}
+	get showRelativeArcs() {
+		return this._showRelativeArcs
+	}
+	set showRelativeArcs(setting: boolean) {
+		this._showRelativeArcs = setting
+		savePrefs()
+	}
+	get graphPreference() {
+		return this._graphPreference
+	}
+	set graphPreference(mode: string) {
+		this._graphPreference = mode
+		savePrefs()
+	}
+	setGraphPreference(mode: string) {
+		this._graphPreference = mode
+	}
+	setUsageStackOrder(mode: number) {
+		this._usageStackOrder = mode
+	}
+	get usageStackOrder() {
+		return this._usageStackOrder
+	}
+	set usageStackOrder(mode: number) {
+		this._usageStackOrder = mode
+		savePrefs()
+	}
+	get displayMode() {
+		return this._displayMode
+	}
+	set displayMode(mode: string) {
+		this._displayMode = mode
+		switchTheme(mode)
+	}
+	get showGrid() {
+		return this._showGrid
+	}
+	set showGrid(setting: boolean) {
+		this._showGrid = setting
+		savePrefs()
+	}
+
+	get decimalPlaces() {
+		return this._decimalPlaces
+	}
+	set decimalPlaces(setting: number) {
+		this._decimalPlaces = setting
+		savePrefs()
+	}
+	get smartHomeColors() {
+		return this._smartHomeColors
+	}
+	set smartHomeColors(setting: string) {
+		this._smartHomeColors = setting
+		switchSmarthomeColors(setting)
+		savePrefs()
+	}
+	get showQuickAccess() {
+		return this._showQuickAccess
+	}
+	set showQuickAccess(show: boolean) {
+		this._showQuickAccess = show
+		savePrefs()
+	}
+	get simpleCpList() {
+		return this._simpleCpList
+	}
+	set simpleCpList(show: boolean) {
+		this._simpleCpList = show
+		savePrefs()
+	}
+	get showAnimations() {
+		return this._showAnimations
+	}
+	set showAnimations(show: boolean) {
+		this._showAnimations = show
+		savePrefs()
+	}
+	get preferWideBoxes() {
+		return this._preferWideBoxes
+	}
+	set preferWideBoxes(yes: boolean) {
+		this._preferWideBoxes = yes
+		savePrefs()
+	}
+}
+export const globalConfig = reactive(new Config())
+export function initConfig() {
+	readCookie()
+	// set the background
+	const doc = d3.select('html')
+	doc.classed('theme-dark', globalConfig.displayMode == 'dark')
+	doc.classed('theme-light', globalConfig.displayMode == 'light')
+	doc.classed('theme-blue', globalConfig.displayMode == 'blue')
+	// set the color scheme for devices
+	doc.classed('shcolors-standard', globalConfig.smartHomeColors == 'standard')
+	doc.classed('shcolors-advanced', globalConfig.smartHomeColors == 'advanced')
+	doc.classed('shcolors-normal', globalConfig.smartHomeColors == 'normal')
+	setInitializeSourceGraph
+}
+export let initializeEnergyGraph = true
+export function energyGraphInitialized() {
+	initializeEnergyGraph = false
+}
+export function setInitializeEnergyGraph(val: boolean) {
+	initializeEnergyGraph = val
+}
+export let animateEnergyGraph = true
+export function setAnimateEnergyGraph(val: boolean) {
+	animateEnergyGraph = val
+}
+
+// Handle wide vs narrow screen layouts
+const breakpoint = 992
+export const screensize = reactive({
+	x: document.documentElement.clientWidth,
+	y: document.documentElement.clientHeight,
+})
+export function updateDimensions() {
+	screensize.x = document.documentElement.clientWidth
+	screensize.y = document.documentElement.clientHeight
+	initConfig()
+}
+export const widescreen = computed(() => {
+	return screensize.x >= breakpoint
+})
+export const chargemodes: { [key: string]: ChargeModeInfo } = {
+	stop: {
+		mode: ChargeMode.stop,
+		name: 'Stop',
+		color: 'var(--color-fg)',
+		icon: 'fa-power-off',
+	},
+	standby: {
+		mode: ChargeMode.standby,
+		name: 'Standby',
+		color: 'var(--color-axis',
+		icon: 'fa-pause',
+	},
+	pv_charging: {
+		mode: ChargeMode.pv_charging,
+		name: 'PV',
+		color: 'var(--color-pv',
+		icon: 'fa-solar-panel',
+	},
+	scheduled_charging: {
+		mode: ChargeMode.scheduled_charging,
+		name: 'Zielladen',
+		color: 'var(--color-battery)',
+		icon: 'fa-bullseye',
+	},
+	instant_charging: {
+		mode: ChargeMode.instant_charging,
+		name: 'Sofort',
+		color: 'var(--color-charging)',
+		icon: 'fa-bolt',
+	},
+}
+// methods
+export function savePrefs() {
+	writeCookie()
+}
+export function switchTheme(mode: string) {
+	const doc = d3.select('html')
+
+	doc.classed('theme-dark', mode == 'dark')
+	doc.classed('theme-light', mode == 'light')
+	doc.classed('theme-blue', mode == 'blue')
+	savePrefs()
+}
+export function toggleGrid() {
+	globalConfig.showGrid = !globalConfig.showGrid
+	savePrefs()
+}
+export function toggleFixArcs() {
+	// globalConfig.etPrice = globalConfig.etPrice + 10
+	globalConfig.showRelativeArcs = !globalConfig.showRelativeArcs
+	savePrefs()
+}
+export function resetArcs(maxp: number = 4000) {
+	globalConfig.maxPower = maxp
+	savePrefs()
+}
+export function switchDecimalPlaces() {
+	if (globalConfig.decimalPlaces < 4) {
+		globalConfig.decimalPlaces = globalConfig.decimalPlaces + 1
+	} else {
+		globalConfig.decimalPlaces = 0
+	}
+	savePrefs()
+}
+export function switchSmarthomeColors(setting: string) {
+	const doc = d3.select('html')
+	doc.classed('shcolors-normal', setting == 'normal')
+	doc.classed('shcolors-standard', setting == 'standard')
+	doc.classed('shcolors-advanced', setting == 'advanced')
+	savePrefs()
+}
+
+export const infotext: { [key: string]: string } = {
+	chargemode: 'Der Lademodus für diesen Ladepunkt',
+	vehicle: 'Das Fahrzeug, das an diesem Ladepounkt geladen wird',
+	locked: 'Diesen Ladepunkt sperren',
+	priority: 'Diesen Ladepunkt auf hohe Priorität setzen',
+	timeplan: 'An diesem Ladepunkt nach dem konfigurierten Zeitplan laden',
+	minsoc:
+		'Immer mindestens bis zum eingestellten Ladestand laden. Wenn notwendig mit Netzstrom.',
+	minpv:
+		'Durchgehend mit mindestens dem eingestellten Strom laden. Wenn notwendig mit Netzstrom.',
+}
+interface Preferences {
+	hideSH?: number[]
+	showLG?: boolean
+	displayM?: string
+	stackO?: number
+	showGr?: boolean
+	decimalP?: number
+	smartHomeC?: string
+	relPM?: boolean
+	maxPow?: number
+	showQA?: boolean
+	simpleCP?: boolean
+	animation?: boolean
+	wideB?: boolean
+}
+
+function writeCookie() {
+	const prefs: Preferences = {}
+	prefs.hideSH = Object.values(shDevices)
+		.filter((device) => !device.showInGraph)
+		.map((device) => device.id)
+	prefs.showLG = globalConfig.graphPreference == 'live'
+	prefs.displayM = globalConfig.displayMode
+	prefs.stackO = globalConfig.usageStackOrder
+	prefs.showGr = globalConfig.showGrid
+	prefs.decimalP = globalConfig.decimalPlaces
+	prefs.smartHomeC = globalConfig.smartHomeColors
+	prefs.relPM = globalConfig.showRelativeArcs
+	prefs.maxPow = globalConfig.maxPower
+	prefs.showQA = globalConfig.showQuickAccess
+	prefs.simpleCP = globalConfig.simpleCpList
+	prefs.animation = globalConfig.showAnimations
+	prefs.wideB = globalConfig.preferWideBoxes
+	document.cookie =
+		'openWBColorTheme=' + JSON.stringify(prefs) + '; max-age=16000000'
+}
+
+function readCookie() {
+	const wbCookies = document.cookie.split(';')
+	const myCookie = wbCookies.filter(
+		(entry) => entry.split('=')[0] === 'openWBColorTheme',
+	)
+	if (myCookie.length > 0) {
+		const prefs = JSON.parse(myCookie[0].split('=')[1]) as Preferences
+		if (prefs.decimalP !== undefined) {
+			globalConfig.decimalPlaces = prefs.decimalP
+		}
+		if (prefs.smartHomeC !== undefined) {
+			globalConfig.smartHomeColors = prefs.smartHomeC
+		}
+		if (prefs.hideSH !== undefined) {
+			prefs.hideSH.map((i) => {
+				if (shDevices[i] == undefined) {
+					addShDevice(i)
+				}
+				shDevices[i].showInGraph = false
+			})
+		}
+		if (prefs.showLG !== undefined) {
+			globalConfig.setGraphPreference(prefs.showLG ? 'live' : 'today')
+		}
+		if (prefs.maxPow !== undefined) {
+			globalConfig.maxPower = +prefs.maxPow
+		}
+		if (prefs.relPM !== undefined) {
+			globalConfig.showRelativeArcs = prefs.relPM
+		}
+		if (prefs.displayM !== undefined) {
+			globalConfig.displayMode = prefs.displayM
+		}
+		if (prefs.stackO !== undefined) {
+			globalConfig.setUsageStackOrder(prefs.stackO)
+		}
+		if (prefs.showGr !== undefined) {
+			globalConfig.showGrid = prefs.showGr
+		}
+		if (prefs.showQA !== undefined) {
+			globalConfig.showQuickAccess = prefs.showQA
+		}
+		if (prefs.simpleCP !== undefined) {
+			globalConfig.simpleCpList = prefs.simpleCP
+		}
+		if (prefs.animation != undefined) {
+			globalConfig.showAnimations = prefs.animation
+		}
+		if (prefs.wideB != undefined) {
+			globalConfig.preferWideBoxes = prefs.wideB
+		}
+	}
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/js/types.ts b/packages/modules/web_themes/colors/source/src/assets/js/types.ts
new file mode 100644
index 0000000000..0af2c0b74d
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/js/types.ts
@@ -0,0 +1,92 @@
+/*
+ * types.ts
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+// Type definitions for all components
+import { updateServer } from '@/assets/js/sendMessages'
+import { ChargeMode } from '@/components/chargePointList/model'
+
+export class ShDevice implements PowerItem {
+	id: number
+	name = ''
+	power = 0
+	energy = 0
+	energyPv = 0
+	energyBat = 0
+	pvPercentage = 0
+	configured = true
+	showInGraph = true
+	color = 'white'
+	icon = ''
+	countAsHouse = false
+	constructor(index: number) {
+		this.id = index
+	}
+}
+
+export class GlobalData {
+	batterySoc = 0
+	isBatteryConfigured = true
+	chargeMode = '0'
+	private _pvBatteryPriority = false
+	displayLiveGraph = true
+	isEtEnabled = true
+	etMaxPrice = 0
+	etCurrentPrice = 0
+	cpDailyExported = 0
+	evuId = 0
+	etProvider = ''
+	get pvBatteryPriority() {
+		return this._pvBatteryPriority
+	}
+	set pvBatteryPriority(prio: boolean) {
+		this._pvBatteryPriority = prio
+		updateServer('pvBatteryPriority', prio)
+	}
+	updatePvBatteryPriority(prio: boolean) {
+		this._pvBatteryPriority = prio
+	}
+}
+
+export interface Hierarchy {
+	id: number
+	type: string
+	children: [Hierarchy]
+}
+
+export interface ChargeModeInfo {
+	mode: ChargeMode
+	name: string
+	color: string
+	icon: string
+}
+
+export interface ItemProps {
+	name: string
+	color: string
+	icon: string
+}
+
+export interface PowerItem {
+	name: string
+	power: number
+	energy: number
+	energyPv: number
+	energyBat: number
+	pvPercentage: number
+	color: string
+	icon: string
+}
+
+export interface ItemList {
+	[key: string]: PowerItem
+}
+
+export interface MarginType {
+	left: number
+	top: number
+	right: number
+	bottom: number
+}
diff --git a/packages/modules/web_themes/colors/source/src/assets/logo.svg b/packages/modules/web_themes/colors/source/src/assets/logo.svg
new file mode 100644
index 0000000000..bc826fed80
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/assets/logo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"  xmlns:v="https://vecta.io/nano"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>
\ No newline at end of file
diff --git a/packages/modules/web_themes/colors/source/src/components/Navbar.vue b/packages/modules/web_themes/colors/source/src/components/Navbar.vue
new file mode 100755
index 0000000000..68b6e29f40
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/Navbar.vue
@@ -0,0 +1,82 @@
+<template>
+	<!-- Fixed navbar -->
+	<nav class="navbar navbar-expand-lg  px-3 mb-0">
+		<a href="/" class="navbar-brand"><span>openWB</span></a>
+		<button class="navbar-toggler togglebutton ps-5" type="button" data-bs-toggle="collapse" data-bs-target="#mainNavbar"
+			aria-controls="mainNavbar" aria-expanded="false" aria-label="Toggle navigation">
+			<span class="fa fa-ellipsis-vertical"></span>
+		</button>
+		<div class="collapse navbar-collapse justify-content-end" id="mainNavbar">
+			<div class="nav navbar-nav">
+				<a class="nav-link  " id="navStatus" href="../../settings/#/Status" target="_parent">Status</a>
+				<div class="nav-item dropdown">
+
+					<a class="nav-link" href="#" id="loggingDropdown" role="button" data-bs-toggle="dropdown"
+						aria-expanded="false">Auswertungen <i class="fa-solid fa-caret-down"></i></a>
+					<div class="dropdown-menu" aria-labelledby="loggingDropdown">
+						<a href="../../settings/#/Logging/ChargeLog" class="dropdown-item" target="_parent">Ladeprotokoll</a>
+						<a href="../../settings/#/Logging/Chart" class="dropdown-item" target="_parent">Diagramme</a>
+					</div>
+				</div>
+				<div class="nav-item dropdown">
+					<a class="nav-link" href="#" id="settingsDropdown" role="button" data-bs-toggle="dropdown"
+						aria-expanded="false">Einstellungen <i class="fa-solid fa-caret-down"></i></a>
+					<div class="dropdown-menu" aria-labelledby="settingsDropdown">
+						<a class="nav-link" id="navSettings" href="../../settings/index.html" target="_parent">openWB</a>
+						<a class="nav-link" data-bs-toggle="collapse" data-bs-target="#themesettings" aria-expanded="false"
+							aria-controls="themeSettings">
+							<span>Look&ampFeel<span class="fa-solid fa-caret-down"></span></span>
+						</a>
+					</div>
+				</div>
+			</div>
+		</div>
+	</nav>
+	<hr class="m-0 p-0 mb-2">
+</template>
+
+<script setup lang="ts">
+
+</script>
+
+<style scoped>
+.navbar {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+	font-size: var(--font-normal);
+}
+
+.dropdown-menu {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+}
+
+.dropdown-item {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+	font-size: var(--font-normal);
+}
+
+.btn {
+	font-size: var(--font-medium);
+	background-color: var(--color-bg);
+	color: var(--color-fg)
+}
+
+.navbar-brand {
+	font-weight: bold;
+	color: var(--color-fg);
+}
+
+.nav-link {
+	color: var(--color-fg);
+	border-color: red;
+	font-size: var(--font-normal);
+}
+
+
+.navbar-toggler {
+	color: var(--color-fg);
+	border-color: var(--color-bg)
+}
+</style>
\ No newline at end of file
diff --git a/packages/modules/web_themes/colors/source/src/components/NavigationBar.vue b/packages/modules/web_themes/colors/source/src/components/NavigationBar.vue
new file mode 100755
index 0000000000..e376abb63d
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/NavigationBar.vue
@@ -0,0 +1,130 @@
+<template>
+	<!-- Fixed navbar -->
+	<nav class="navbar navbar-expand-lg px-3 mb-0">
+		<div class="container-lg">
+			<a href="/" class="navbar-brand"><span>openWB</span></a>
+			<button
+				class="navbar-toggler togglebutton ps-5"
+				type="button"
+				data-bs-toggle="collapse"
+				data-bs-target="#mainNavbar"
+				aria-controls="mainNavbar"
+				aria-expanded="false"
+				aria-label="Toggle navigation"
+			>
+				<span class="fa fa-ellipsis-vertical" />
+			</button>
+			<div id="mainNavbar" class="collapse navbar-collapse justify-content-end">
+				<div class="nav navbar-nav">
+					<a
+						id="navStatus"
+						class="nav-link"
+						href="../../settings/#/Status"
+						target="_parent"
+						>Status</a
+					>
+					<div class="nav-item dropdown">
+						<a
+							id="loggingDropdown"
+							class="nav-link"
+							href="#"
+							role="button"
+							data-bs-toggle="dropdown"
+							aria-expanded="false"
+							>Auswertungen <i class="fa-solid fa-caret-down"
+						/></a>
+						<div class="dropdown-menu" aria-labelledby="loggingDropdown">
+							<a
+								href="../../settings/#/Logging/ChargeLog"
+								class="dropdown-item"
+								target="_parent"
+								>Ladeprotokoll</a
+							>
+							<a
+								href="../../settings/#/Logging/Chart"
+								class="dropdown-item"
+								target="_parent"
+								>Diagramme</a
+							>
+						</div>
+					</div>
+					<div class="nav-item dropdown">
+						<a
+							id="settingsDropdown"
+							class="nav-link"
+							href="#"
+							role="button"
+							data-bs-toggle="dropdown"
+							aria-expanded="false"
+							>Einstellungen <i class="fa-solid fa-caret-down"
+						/></a>
+						<div class="dropdown-menu" aria-labelledby="settingsDropdown">
+							<a
+								id="navSettings"
+								class="nav-link"
+								href="../../settings/index.html"
+								target="_parent"
+								>openWB</a
+							>
+							<a
+								class="nav-link"
+								data-bs-toggle="collapse"
+								data-bs-target="#themesettings"
+								aria-expanded="false"
+								aria-controls="themeSettings"
+							>
+								<span
+									>Look&amp;Feel<span class="fa-solid fa-caret-down"
+								/></span>
+							</a>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</nav>
+	<hr class="m-0 p-0 mb-2" />
+</template>
+
+<script setup lang="ts"></script>
+
+<style scoped>
+.navbar {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+	font-size: var(--font-normal);
+}
+
+.dropdown-menu {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+}
+
+.dropdown-item {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+	font-size: var(--font-normal);
+}
+
+.btn {
+	font-size: var(--font-medium);
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+}
+
+.navbar-brand {
+	font-weight: bold;
+	color: var(--color-fg);
+}
+
+.nav-link {
+	color: var(--color-fg);
+	border-color: red;
+	font-size: var(--font-normal);
+}
+
+.navbar-toggler {
+	color: var(--color-fg);
+	border-color: var(--color-bg);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/batteryList/BLBattery.vue b/packages/modules/web_themes/colors/source/src/components/batteryList/BLBattery.vue
new file mode 100755
index 0000000000..6dae5b34e3
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/batteryList/BLBattery.vue
@@ -0,0 +1,97 @@
+/* * BLBattery.vue * colors theme for openwb 2.0 * Copyright (c) 2022 Claus
+Hagen */
+
+<template>
+	<WBWidget>
+		<template #title>
+			<span class="battery-title">Speicher</span>
+		</template>
+		<template #buttons>
+			<BatterySymbol :soc="bat.soc" />
+		</template>
+		<div class="container-fluid p-0 m-0">
+			<div class="row ps-1 pt-1 m-0">
+				<div class="col p-0 m-0">
+					<i class="fa battery-color" :class="powerSymbol" />
+					<span class="battery-color ms-1 me-3"> {{ powerTag }} </span>
+					<span class="fg-color"> {{ powerValue }} </span>
+				</div>
+			</div>
+			<hr />
+			<div class="row pb-2 ps-1 mt-2">
+				<div class="col-2 m-0 menu-color">Heute:</div>
+				<div class="col d-flex justify-content-center">
+					<span class="menu-color me-2">Geladen </span>
+					<span> {{ importString }} </span>
+				</div>
+				<div class="col d-flex justify-content-end">
+					<span class="menu-color me-2">Geliefert </span>
+					<span class="me-1"> {{ exportString }} </span>
+				</div>
+			</div>
+		</div>
+	</WBWidget>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import WBWidget from '../shared/WBWidget.vue'
+import { formatWatt, formatWattH } from '@/assets/js/helpers'
+import type { Battery } from './model'
+import BatterySymbol from '../shared/BatterySymbol.vue'
+// props
+const props = defineProps<{
+	bat: Battery
+}>()
+// computed
+const powerTag = computed(() => {
+	let result = ''
+	if (props.bat.power > 0) {
+		result = 'Lädt '
+	} else if (props.bat.power < 0) {
+		result = 'Liefert '
+	} else {
+		result = 'Inaktiv '
+	}
+	return result
+})
+const powerValue = computed(() => {
+	if (props.bat.power > 0) {
+		return formatWatt(props.bat.power)
+	} else if (props.bat.power < 0) {
+		return formatWatt(-props.bat.power)
+	} else {
+		return '0 W'
+	}
+})
+const importString = computed(() => {
+	return formatWattH(props.bat.dailyYieldImport)
+})
+const exportString = computed(() => {
+	return formatWattH(props.bat.dailyYieldExport)
+})
+const powerSymbol = computed(() => {
+	if (props.bat.power > 0) {
+		return 'fa-car-battery'
+	} else if (props.bat.power < 0) {
+		return 'fa-bolt'
+	} else {
+		return ''
+	}
+})
+</script>
+
+<style scoped>
+.battery-title {
+	color: var(--color-battery);
+}
+.battery-color {
+	color: var(--color-battery);
+}
+.fg-color {
+	color: var(--color-fg);
+}
+.menu-color {
+	color: var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/batteryList/BatteryList.vue b/packages/modules/web_themes/colors/source/src/components/batteryList/BatteryList.vue
new file mode 100755
index 0000000000..992963a070
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/batteryList/BatteryList.vue
@@ -0,0 +1,83 @@
+/* * BatteryList.vue * colors theme for openwb 2.0 * Copyright (c) 2022 Claus
+Hagen */
+
+<template>
+	<WbWidget v-if="globalData.isBatteryConfigured" :variable-width="true">
+		<template #title>
+			<span class="fas fa-car-battery me-2" style="color: var(--color-battery)"
+				>&nbsp;</span
+			>
+			<span class="sh-title py-4">Speicher</span>
+		</template>
+		<div class="col m-0 mb-1 p-0 d-flex justify-content-between">
+			<!-- Soc information -->
+			<InfoItem heading="Ladestand:">
+				<BatterySymbol :soc="globalData.batterySoc" class="me-2" />
+			</InfoItem>
+			<!-- Status information -->
+			<InfoItem heading="Status:">
+				<span>
+					{{ batteryState }}
+				</span>
+			</InfoItem>
+
+			<!-- Status information -->
+			<InfoItem heading="Leistung:">
+				<span>
+					{{ powerstring }}
+				</span>
+			</InfoItem>
+		</div>
+		<div class="col m-0 mt-3 mb-1 p-0 d-flex justify-content-between">
+			<InfoItem heading="">
+				<span class="todaystring mt-4 float-right"> Heute:</span>
+			</InfoItem>
+			<InfoItem heading="Geladen:">
+				<span>
+					{{ formatWattH(usageSummary.batIn.energy) }}
+				</span>
+			</InfoItem>
+			<InfoItem heading="Geliefert">
+				<span>
+					{{ formatWattH(sourceSummary.batOut.energy) }}
+				</span>
+			</InfoItem>
+		</div>
+	</WbWidget>
+</template>
+
+<script setup lang="ts">
+import WbWidget from '../shared/WBWidget.vue'
+import InfoItem from '../shared/InfoItem.vue'
+import BatterySymbol from '../shared/BatterySymbol.vue'
+import { globalData, sourceSummary, usageSummary } from '@/assets/js/model'
+import { computed } from 'vue'
+import { formatWatt, formatWattH } from '@/assets/js/helpers'
+const batteryState = computed(() => {
+	if (sourceSummary.batOut.power > 0) {
+		return 'Liefert'
+	} else if (usageSummary.batIn.power > 0) {
+		return 'Lädt'
+	} else {
+		return 'Bereit'
+	}
+})
+const powerstring = computed(() => {
+	return formatWatt(sourceSummary.batOut.power + usageSummary.batIn.power)
+})
+</script>
+
+<style scoped>
+.battery-color {
+	color: var(--color-battery);
+}
+.fg-color {
+	color: var(--color-fg);
+}
+.menu-color {
+	color: var(--color-menu);
+}
+.todaystring {
+	color: var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/batteryList/model.ts b/packages/modules/web_themes/colors/source/src/components/batteryList/model.ts
new file mode 100755
index 0000000000..e2c78c193a
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/batteryList/model.ts
@@ -0,0 +1,46 @@
+/*
+ * model.ts
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+import { reactive } from 'vue'
+export class Battery {
+	id: number
+	dailyYieldExport = 0
+	dailyYieldImport = 0
+	exported = 0
+	faultState = 0
+	faultStr = ''
+	imported = 0
+	power = 0
+	soc = 0
+	constructor(index: number) {
+		this.id = index
+	}
+}
+export class BatterySummary {
+	dailyExport = 0
+	dailyImport = 0
+	exported = 0
+	imported = 0
+	power = 0
+	soc = 0
+}
+export const batteries: { [key: number]: Battery } = reactive({})
+export const batterySummary = reactive(new BatterySummary())
+
+export function addBattery(index: number) {
+	if (!(index in batteries)) {
+		batteries[index] = new Battery(index)
+		console.info('Added battery ' + index)
+	} else {
+		console.info('Duplicate battery message: ' + index)
+	}
+}
+
+export function resetBatteries() {
+	Object.keys(batteries).forEach((key) => {
+		delete batteries[parseInt(key)]
+	})
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/batteryList/processMessages.ts b/packages/modules/web_themes/colors/source/src/components/batteryList/processMessages.ts
new file mode 100755
index 0000000000..c9005c5c87
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/batteryList/processMessages.ts
@@ -0,0 +1,69 @@
+/*
+ * processMessages.ts
+ * colors theme for openwb 2.0
+ * Copyright (c) 2022 Claus Hagen
+ */
+
+import { usageSummary, sourceSummary, globalData } from '@/assets/js/model'
+import { batteries } from './model'
+export function processBatteryMessages(topic: string, message: string) {
+	const index = getIndex(topic)
+	if (index && !(index in batteries)) {
+		console.warn('Invalid battery index received: ' + index)
+		return
+	}
+	if (topic == 'openWB/bat/config/configured') {
+		globalData.isBatteryConfigured = message == 'true'
+	} else if (topic == 'openWB/bat/get/power') {
+		if (+message > 0) {
+			usageSummary.batIn.power = +message
+			sourceSummary.batOut.power = 0
+		} else {
+			usageSummary.batIn.power = 0
+			sourceSummary.batOut.power = -message
+		}
+	} else if (topic == 'openWB/bat/get/soc') {
+		globalData.batterySoc = +message
+	} else if (topic == 'openWB/bat/get/daily_exported') {
+		sourceSummary.batOut.energy = +message / 1000
+	} else if (topic == 'openWB/bat/get/daily_imported') {
+		usageSummary.batIn.energy = +message / 1000
+	} else if (index) {
+		if (topic.match(/^openwb\/bat\/[0-9]+\/get\/daily_yield_export$/i)) {
+			batteries[index].dailyYieldExport = +message
+		} else if (topic.match(/^openwb\/bat\/[0-9]+\/get\/daily_yield_import$/i)) {
+			batteries[index].dailyYieldImport = +message
+		} else if (topic.match(/^openwb\/bat\/[0-9]+\/get\/exported$/i)) {
+			batteries[index].exported = +message
+		} else if (topic.match(/^openwb\/bat\/[0-9]+\/get\/fault_state$/i)) {
+			batteries[index].faultState = +message
+		} else if (topic.match(/^openwb\/bat\/[0-9]+\/get\/fault_str$/i)) {
+			batteries[index].faultStr = message
+		} else if (topic.match(/^openwb\/bat\/[0-9]+\/get\/imported$/i)) {
+			batteries[index].imported = +message
+		} else if (topic.match(/^openwb\/bat\/[0-9]+\/get\/power$/i)) {
+			batteries[index].power = +message
+		} else if (topic.match(/^openwb\/bat\/[0-9]+\/get\/soc$/i)) {
+			batteries[index].soc = +message
+		} else {
+			// console.warn('Ignored battery message: ' + topic)
+		}
+	} else {
+		// console.warn('Ignored battery message: ' + topic)
+	}
+}
+
+function getIndex(topic: string): number | undefined {
+	let index = 0
+	try {
+		const matches = topic.match(/(?:\/)([0-9]+)(?=\/)/g)
+		if (matches) {
+			index = +matches[0].replace(/[^0-9]+/g, '')
+			return index
+		} else {
+			return undefined
+		}
+	} catch (e) {
+		console.warn('Parser error in getIndex for topic ' + topic)
+	}
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/buttonBar/BBSelect.vue b/packages/modules/web_themes/colors/source/src/components/buttonBar/BBSelect.vue
new file mode 100755
index 0000000000..fbc919e0a2
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/buttonBar/BBSelect.vue
@@ -0,0 +1,146 @@
+/* * BBSelect.vue * colors theme for openwb 2.0 * Copyright (c) 2022 Claus Hagen
+*/
+
+<template>
+	<div class="container-fluid p-0 m-0">
+		<div class="row p-0 m-0">
+			<div v-for="(bt, id) in buttons" :key="id" class="col-md-4 p-1">
+				<div class="d-grid gap-2">
+					<button
+						type="button"
+						:class="buttonClass(bt.mode as ChargeMode)"
+						:style="{}"
+						@click="selectChargeMode(bt.mode as ChargeMode)"
+					>
+						{{ bt.name }}
+					</button>
+				</div>
+			</div>
+			<!-- Lock buttons -->
+			<div class="col-md-4 p-1">
+				<div class="d-grid gap-2">
+					<button
+						v-if="cp.isLocked"
+						type="button"
+						class="btn btn-outline-success buttonTextSize"
+						data-bs-dismiss="modal"
+						@click="lockCP(false)"
+					>
+						Entsperren
+					</button>
+					<button
+						v-if="!cp.isLocked"
+						type="button"
+						class="btn btn-outline-danger buttonTextSize"
+						data-bs-dismiss="modal"
+						@click="lockCP(true)"
+					>
+						Sperren
+					</button>
+				</div>
+			</div>
+		</div>
+		<!-- Battery priority settings -->
+		<div
+			v-if="globalData.isBatteryConfigured && cp.chargeMode == 'pv_charging'"
+		>
+			<hr />
+			<div class="row">
+				<div class="col text-center">Vorrang im Lademodus PV-Laden:</div>
+			</div>
+			<div class="row justify-content-center m-1 p-0">
+				<div class="col-6 p-1 m-0">
+					<div class="d-grid gap-2">
+						<button
+							id="evPriorityBtn"
+							type="button"
+							class="priorityModeBtn btn btn-secondary buttonTextSize"
+							:class="priorityButtonClass('ev')"
+							data-dismiss="modal"
+							priority="1"
+							@click="setBatteryPriority(false)"
+						>
+							EV
+							<span class="fas fa-car">&nbsp;</span>
+						</button>
+					</div>
+				</div>
+				<div class="col-6 p-1 m-0">
+					<div class="d-grid gap-2">
+						<button
+							id="batteryPriorityBtn"
+							type="button"
+							class="priorityModeBtn btn btn-secondary buttonTextSize"
+							:class="priorityButtonClass('bat')"
+							data-dismiss="modal"
+							priority="0"
+							@click="setBatteryPriority(true)"
+						>
+							Speicher
+							<span class="fas fa-car-battery">&nbsp;</span>
+						</button>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import { globalData } from '@/assets/js/model'
+import type { ChargeMode } from '../chargePointList/model'
+import { chargePoints } from '@/components/chargePointList/model'
+
+const props = defineProps<{
+	cpId: number
+}>()
+// state
+const buttons = [
+	{
+		mode: 'instant_charging',
+		name: 'Sofort',
+		color: 'var(--color-charging)',
+	},
+	{ mode: 'pv_charging', name: 'PV', color: 'var(--color-pv)' },
+	{
+		mode: 'scheduled_charging',
+		name: 'Zielladen',
+		color: 'var(--color-battery)',
+	},
+	{ mode: 'standby', name: 'Standby', color: 'var(--color-axis)' },
+	{ mode: 'stop', name: 'Stop', color: 'var(--color-axis)' },
+]
+const cp = computed(() => {
+	return chargePoints[props.cpId]
+})
+// methods
+function buttonClass(chargemode: ChargeMode) {
+	if (chargemode == cp.value.chargeMode) {
+		return 'btn btn-success buttonTextSize'
+	} else {
+		return 'btn btn-secondary buttonTextSize'
+	}
+}
+function priorityButtonClass(m: string) {
+	switch (m) {
+		case 'ev':
+			return globalData.pvBatteryPriority ? 'btn-secondary' : 'btn-success'
+		case 'bat':
+			return globalData.pvBatteryPriority ? 'btn-success' : 'btn-secondary'
+		default:
+			return ''
+	}
+}
+function selectChargeMode(mode: ChargeMode) {
+	cp.value.chargeMode = mode
+}
+function lockCP(flag: boolean) {
+	cp.value.isLocked = flag
+}
+function setBatteryPriority(flag: boolean) {
+	globalData.pvBatteryPriority = flag
+}
+</script>
+
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/buttonBar/BbChargeButton.vue b/packages/modules/web_themes/colors/source/src/components/buttonBar/BbChargeButton.vue
new file mode 100644
index 0000000000..f51ff96a2d
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/buttonBar/BbChargeButton.vue
@@ -0,0 +1,197 @@
+/* * BbChargeButton.vue * colors theme for openwb 2.0 * Copyright (c) 2022 Claus
+Hagen */
+
+<template>
+	<div class="col-lg-4 p-0 m-0 mt-1">
+		<div class="d-grid gap-2">
+			<button
+				type="button"
+				class="btn mx-1 mb-0 p-1 regularTextSize chargeButton shadow"
+				:style="buttonStyle"
+				data-bs-toggle="modal"
+				:data-bs-target="'#' + modalId"
+			>
+				<div class="m-0 p-0">
+					<div class="m-0 p-0 d-flex justify-content-between">
+						<!-- Status indicator -->
+						<div class="m-0 p-0 d-flex flex-column left">
+							<span
+								v-if="chargepoint.isPluggedIn"
+								class="mx-1 badge rounded-pill smallTextSize plugIndicator"
+							>
+								<i :class="plugPillClass" />
+								<span v-if="chargepoint.isCharging" class="ms-2">
+									{{ formatWatt(chargepoint.power) }}
+								</span>
+							</span>
+							<span
+								v-if="!chargepoint.isPluggedIn"
+								class="mx-1 badge rounded-pill smallTextSize plugIndicator"
+							>
+								<i :class="plugPillClass" />
+								<span v-if="chargepoint.isCharging" class="ms-2">
+									{{ formatWatt(chargepoint.power) }}
+								</span>
+							</span>
+						</div>
+						<!-- Chargepoint name -->
+						<div class="m-0 p-0 d-flex flex-column center">
+							{{ chargepoint.name }}
+						</div>
+						<!-- Mode indicator -->
+						<div class="m-0 p-0 d-flex flex-column right">
+							<span
+								class="mx-2 badge rounded-pill smallTextSize modeIndicator"
+								:style="modePillStyle"
+							>
+								<i class="fa me-1" :class="modeIcon" />
+								{{ modeString }}
+								<!-- PV priority -->
+								<span
+									v-if="
+										chargepoint.chargeMode == ChargeMode.pv_charging &&
+										globalData.isBatteryConfigured
+									"
+									class="ps-1"
+								>
+									(
+									<i class="fa m-0" :class="priorityIcon" />)
+								</span>
+							</span>
+						</div>
+					</div>
+				</div>
+			</button>
+		</div>
+		<ModalComponent :modal-id="modalId">
+			<template #title> Lademodus für {{ chargepoint.name }} </template>
+			<BBSelect :cp-id="chargepoint.id" />
+		</ModalComponent>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { globalData } from '@/assets/js/model'
+import { ChargePoint, ChargeMode } from '@/components/chargePointList/model'
+import { chargemodes } from '@/assets/js/themeConfig'
+import { computed } from 'vue'
+import { formatWatt } from '@/assets/js/helpers'
+import BBSelect from './BBSelect.vue'
+import ModalComponent from '@/components/shared/ModalComponent.vue'
+
+//props
+const props = defineProps<{
+	chargepoint: ChargePoint
+}>()
+const modalId = 'chargeSelectModal' + props.chargepoint.id
+const modeString = computed(() => {
+	return chargemodes[props.chargepoint.chargeMode].name
+})
+const buttonStyle = computed(() => {
+	let style = {
+		background: 'var(--color-menu)',
+	}
+	if (props.chargepoint.isLocked) {
+		style.background = 'var(--color-evu)'
+	} else if (props.chargepoint.isCharging) {
+		style.background = 'var(--color-charging)'
+	} else if (props.chargepoint.isPluggedIn) {
+		style.background = 'var(--color-battery)'
+	}
+	return style
+})
+interface ButtonStyle {
+	background: string
+	color: string
+}
+const modePillStyle = computed(() => {
+	if (chargemodes) {
+		let style = {
+			background: chargemodes[props.chargepoint.chargeMode].color,
+			color: 'white',
+		}
+
+		switch (props.chargepoint.chargeMode) {
+			case ChargeMode.instant_charging:
+				if (props.chargepoint.isCharging && !props.chargepoint.isLocked) {
+					style = swapcolors(style)
+				}
+				break
+			case ChargeMode.standby:
+			case ChargeMode.stop:
+				if (!props.chargepoint.isPluggedIn) {
+					style = swapcolors(style)
+				}
+				break
+			case ChargeMode.scheduled_charging:
+				if (
+					props.chargepoint.isPluggedIn &&
+					!props.chargepoint.isCharging &&
+					!props.chargepoint.isLocked
+				) {
+					style = swapcolors(style)
+				}
+				break
+			default:
+				break
+		}
+		return style
+	} else {
+		return { background: 'var(--color-bg)', color: 'var(--color-bg)' }
+	}
+})
+const modeIcon = computed(() => {
+	if (chargemodes) {
+		return chargemodes[props.chargepoint.chargeMode].icon
+	} else {
+		return ''
+	}
+})
+const priorityIcon = computed(() => {
+	if (globalData.pvBatteryPriority) {
+		return 'fa-car-battery'
+	} else {
+		return 'fa-car'
+	}
+})
+const plugPillClass = computed(() => {
+	let icon = 'fa-ellipsis'
+	if (props.chargepoint.isLocked) {
+		icon = 'fa-lock'
+	} else if (props.chargepoint.isCharging) {
+		icon = ' fa-bolt'
+	} else if (props.chargepoint.isPluggedIn) {
+		icon = 'fa-plug'
+	}
+
+	return 'fa ' + icon
+})
+
+// methods
+function swapcolors(style: ButtonStyle): ButtonStyle {
+	let c = style.color
+	style.color = style.background
+	style.background = c
+	return style
+}
+</script>
+
+<style scoped>
+.plugIndicator {
+	color: white;
+	border: 1px solid white;
+}
+
+.chargeButton {
+	color: white;
+}
+.left {
+	float: left;
+}
+.right {
+	float: right;
+}
+.center {
+	margin: auto;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/buttonBar/ButtonBar.vue b/packages/modules/web_themes/colors/source/src/components/buttonBar/ButtonBar.vue
new file mode 100644
index 0000000000..c8c776827d
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/buttonBar/ButtonBar.vue
@@ -0,0 +1,25 @@
+/* * ButtonBar.vue * colors theme for openwb 2.0 * Copyright (c) 2022 Claus
+Hagen */ // ButtonBar.vue // Display configuration buttons for all chargepoints
+<template>
+	<div class="row p-0 mt-0 mb-1 m-0">
+		<div class="col p-0 m-0">
+			<div class="container-fluid p-0 m-0">
+				<div class="row p-0 m-0 d-flex justify-content-center">
+					<BbChargeButton
+						v-for="(cp, index) in chargePoints"
+						:key="index"
+						:chargepoint="cp"
+						:charge-point-count="Object.values(chargePoints).length"
+					/>
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { chargePoints } from '../chargePointList/model'
+import BbChargeButton from './BbChargeButton.vue'
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/CPChargePoint.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/CPChargePoint.vue
new file mode 100755
index 0000000000..c5eb0c5efe
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/CPChargePoint.vue
@@ -0,0 +1,331 @@
+<template>
+	<WBWidget
+		v-if="!configmode"
+		:variable-width="true"
+		:full-width="props.fullWidth"
+	>
+		<template #title>
+			<span :style="cpNameStyle" @click="configmode = !configmode">
+				<span class="fas fa-charging-station">&nbsp;</span>
+				{{ props.chargepoint.name }}</span
+			>
+		</template>
+
+		<template #buttons>
+			<span
+				class="ms-2 pt-1"
+				:style="modePillStyle"
+				@click="configmode = !configmode"
+			>
+				<span class="fa-solid fa-lg ps-1 fa-ellipsis-vertical" />
+			</span>
+		</template>
+
+		<!-- Chargepoint info -->
+		<div v-if="!configmode">
+			<div class="row m-1 mt-0 p-0" @click="configmode = !configmode">
+				<div class="col m-0 mb-1 p-0 d-flex justify-content-between">
+					<!-- Status information -->
+					<InfoItem heading="Status:">
+						<span :style="{ color: statusColor }">
+							<i :class="statusIcon" />
+							{{ statusString }}
+						</span>
+					</InfoItem>
+
+					<!-- Ladung -->
+					<InfoItem heading="Geladen:">
+						<FormatWattH :watt-h="chargepoint.chargedSincePlugged" />
+					</InfoItem>
+					<InfoItem heading="gel. Reichw.:">
+						{{ chargedRangeString }}
+					</InfoItem>
+				</div>
+			</div>
+			<div
+				v-if="props.chargepoint.power > 0"
+				class="row m-1 p-0"
+				@click="configmode = !configmode"
+			>
+				<div class="col m-0 p-0 d-flex justify-content-between">
+					<InfoItem heading="Leistung:">
+						<FormatWatt :watt="props.chargepoint.power" />
+					</InfoItem>
+					<InfoItem heading="Stromstärke:">
+						{{ chargeAmpereString }}
+					</InfoItem>
+					<InfoItem heading="Phasen:">
+						{{ props.chargepoint.phasesInUse }}
+					</InfoItem>
+				</div>
+			</div>
+			<!-- Chargemode buttons -->
+			<div class="row m-0 p-1 mt-3 mb-0">
+				<div class="col d-flex justify-content-center">
+					<RadioBarInput
+						:id="'chargemode-' + chargepoint.name"
+						v-model="chargeMode"
+						:options="
+							Object.keys(chargemodes).map((v) => {
+								return {
+									text: chargemodes[v].name,
+									value: v,
+									color: chargemodes[v].color,
+									icon: chargemodes[v].icon,
+									active: chargemodes[v].mode == chargepoint.chargeMode,
+								}
+							})
+						"
+					/>
+				</div>
+			</div>
+		</div>
+		<div v-if="configmode" class="row m-0 mt-0 p-0">
+			<div class="col m-0 p-0">
+				<CPChargeConfigPanel
+					v-if="chargepoint != undefined"
+					:chargepoint="chargepoint"
+				/>
+			</div>
+		</div>
+		<!-- Car information-->
+		<template #footer>
+			<div v-if="!configmode">
+				<div class="row" @click="configmode = !configmode">
+					<div class="col">
+						<h3>
+							<i class="fa-solid fa-sm fa-car me-2" />
+							{{ chargepoint.vehicleName }}
+							<span
+								v-if="chargepoint.hasPriority"
+								class="me-1 fa-solid fa-xs fa-star ps-1"
+							/>
+						</h3>
+					</div>
+				</div>
+				<div class="row m-0 p-1 pt-2 mb-3">
+					<!-- Car info -->
+
+					<div class="m-0 p-0 d-flex justify-content-between">
+						<InfoItem heading="Ladestand:">
+							<BatterySymbol
+								v-if="chargepoint.isSocConfigured"
+								:soc="soc"
+								class="me-2"
+							/>
+							<i
+								v-if="chargepoint.isSocManual"
+								class="fa-solid fa-sm fas fa-edit"
+								:style="{ color: 'var(--color-menu)' }"
+							/>
+							<i
+								v-if="!chargepoint.isSocManual"
+								class="fa-solid fa-sm fa-sync"
+								:style="{ color: 'var(--color-menu)' }"
+							/>
+						</InfoItem>
+						<!--  <InfoItem heading="Priorität:">
+            <span
+              v-if="chargepoint.hasPriority"
+              class="me-1 fa-solid fa-xs fa-star ps-1"
+            ></span>
+            {{ props.chargepoint.hasPriority ? 'Ja' : 'Nein' }}
+          </InfoItem> -->
+						<InfoItem heading="Reichweite:">
+							{{
+								vehicles[props.chargepoint.connectedVehicle]
+									? Math.round(vehicles[1].range)
+									: 0
+							}}
+							km
+						</InfoItem>
+						<InfoItem heading="Zeitplan:">
+							<span
+								v-if="chargepoint.scheduledCharging"
+								class="me-1 fa-solid fa-xs fa-clock ps-1"
+							/>
+							{{ props.chargepoint.scheduledCharging ? 'Ja' : 'Nein' }}
+						</InfoItem>
+					</div>
+				</div>
+			</div>
+		</template>
+	</WBWidget>
+	<WbWidgetFlex v-if="configmode" :full-width="props.fullWidth">
+		<template #title>
+			<span :style="cpNameStyle" @click="configmode = !configmode">
+				<span class="fas fa-gear">&nbsp;</span>
+				Einstellungen {{ props.chargepoint.name }}</span
+			>
+		</template>
+
+		<template #buttons>
+			<span
+				class="ms-2 pt-1"
+				:style="modePillStyle"
+				@click="configmode = !configmode"
+			>
+				<span class="fa-solid fa-lg ps-1 fa-circle-check" />
+			</span>
+		</template>
+		<CPChargeConfigPanel
+			v-if="chargepoint != undefined"
+			:chargepoint="chargepoint"
+		/>
+	</WbWidgetFlex>
+</template>
+
+<script setup lang="ts">
+import { computed, ref } from 'vue'
+import { type ChargePoint, vehicles, chargePoints } from './model'
+import { chargemodes } from '@/assets/js/themeConfig'
+import WBWidget from '@/components/shared/WBWidget.vue'
+import InfoItem from '@/components/shared/InfoItem.vue'
+import CPChargeConfigPanel from './cpConfig/CPChargeConfigPanel.vue'
+import BatterySymbol from '@/components/shared/BatterySymbol.vue'
+import FormatWatt from '@/components/shared/FormatWatt.vue'
+import FormatWattH from '../shared/FormatWattH.vue'
+import RadioBarInput from '@/components/shared/RadioBarInput.vue'
+import WbWidgetFlex from '../shared/WbWidgetFlex.vue'
+
+const props = defineProps<{
+	chargepoint: ChargePoint
+	fullWidth?: boolean
+}>()
+// state
+
+// computed
+const chargeMode = computed({
+	get() {
+		return props.chargepoint.chargeMode
+	},
+	set(newMode) {
+		chargePoints[props.chargepoint.id].chargeMode = newMode
+	},
+})
+const chargeAmpereString = computed(() => {
+	return (
+		(Math.round(props.chargepoint.current * 10) / 10).toLocaleString(
+			undefined,
+		) + ' A'
+	)
+})
+const chargedRangeString = computed(() => {
+	return (
+		Math.round(props.chargepoint.rangeCharged).toString() +
+		' ' +
+		props.chargepoint.rangeUnit
+	)
+})
+const statusString = computed(() => {
+	if (props.chargepoint.isLocked) {
+		return 'Gesperrt'
+	} else if (props.chargepoint.isCharging) {
+		return 'Lädt'
+	} else if (props.chargepoint.isPluggedIn) {
+		return 'Bereit'
+	} else {
+		return 'Frei'
+	}
+})
+const statusColor = computed(() => {
+	if (props.chargepoint.isLocked) {
+		return 'var(--color-evu)'
+	} else if (props.chargepoint.isCharging) {
+		return 'var(--color-charging)'
+	} else if (props.chargepoint.isPluggedIn) {
+		return 'var(--color-battery)'
+	} else {
+		return 'var(--color-axis)'
+	}
+})
+const statusIcon = computed(() => {
+	let icon = ''
+	if (props.chargepoint.isLocked) {
+		icon = 'fa-lock'
+	} else if (props.chargepoint.isCharging) {
+		icon = ' fa-bolt'
+	} else if (props.chargepoint.isPluggedIn) {
+		icon = 'fa-plug'
+	}
+	return 'fa ' + icon
+})
+const modePillStyle = computed(() => {
+	switch (props.chargepoint.chargeMode) {
+		case 'stop':
+			return { color: 'var(--fg)' }
+		default:
+			return {
+				color: chargemodes[props.chargepoint.chargeMode].color,
+			}
+	}
+})
+const soc = computed(() => {
+	return props.chargepoint.soc
+})
+const cpNameStyle = computed(() => {
+	return { color: props.chargepoint.color }
+	// return { color: 'var(--color-fg)' }
+})
+const configmode = ref(false)
+
+// methods
+</script>
+
+<style scoped>
+.modeIndicator {
+	color: white;
+}
+.outlinePill {
+	border: 1px solid;
+	background: var(--color-bg);
+	vertical-align: bottom;
+	font-size: var(--font-verysmall);
+}
+.statusIndicator {
+	border: 1px solid;
+	background: 'var(--bg) ';
+}
+.buttonIcon {
+	color: var(--color-menu);
+}
+
+.fa-star {
+	color: var(--color-evu);
+}
+.fa-clock {
+	color: var(--color-battery);
+}
+.fa-sliders {
+	color: var(--color-menu);
+}
+
+.energylabel {
+	color: var(--color-menu);
+}
+.vehicleName {
+	color: var(--color-fg);
+}
+.longline {
+	color: var(--color-menu);
+	padding: 3;
+	margin-left: 5;
+}
+.fa-car {
+	color: var(--color-menu);
+}
+.fa-ellipsis-vertical {
+	color: var(--color-menu);
+}
+.fa-circle-check {
+	color: var(--color-menu);
+}
+.heading {
+	color: var(--color-menu);
+	font-size: var(--font-small);
+}
+.content {
+	font-size: var(--font-normal);
+	font-weight: bold;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/ChargePointList.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/ChargePointList.vue
new file mode 100755
index 0000000000..d2cfe2b5be
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/ChargePointList.vue
@@ -0,0 +1,90 @@
+<template>
+	<!-- <div v-if="true && !globalConfig.simpleCpList" class="p-0 m-0 d-flex align-items-stretch" :class="totalWidth"> -->
+	<swiper-container
+		v-if="!globalConfig.simpleCpList"
+		:space-between="0"
+		:slides-per-view="1"
+		:pagination="{ clickable: true }"
+		class="cplist m-0 p-0 swiper-chargepoints d-flex align-items-stretch"
+		:class="totalWidth"
+	>
+		<swiper-slide
+			v-for="chargepoint in chargepointsToDisplay"
+			:key="chargepoint.id"
+		>
+			<div
+				:class="widescreen ? 'mb-0' : 'mb-5'"
+				class="d-flex align-items-stretch flex-fill"
+			>
+				<CPChargePoint :chargepoint="chargepoint" :full-width="true" />
+			</div>
+		</swiper-slide>
+	</swiper-container>
+	<!-- </div> -->
+	<CPSimpleList v-if="globalConfig.simpleCpList" />
+</template>
+
+<script setup lang="ts">
+import { computed, onMounted } from 'vue'
+import { chargePoints } from './model'
+import { globalConfig, widescreen } from '@/assets/js/themeConfig'
+import CPChargePoint from './CPChargePoint.vue'
+import CPSimpleList from './cpSimpleList/CPSimpleList.vue'
+import type Swiper from 'swiper'
+import 'swiper/css'
+import 'swiper/css/pagination'
+import type { SwiperContainer } from 'swiper/element'
+
+let swiper: Swiper
+let swiperEl: SwiperContainer
+
+const chargepointsToDisplay = computed(() => {
+	let cpArray = Object.values(chargePoints)
+	updateLayout()
+	return cpArray
+})
+
+const totalWidth = computed(() => {
+	switch (Object.values(chargePoints).length) {
+		case 0:
+			return globalConfig.preferWideBoxes ? 'col-lg-6' : 'col-lg-4'
+		case 1:
+			return globalConfig.preferWideBoxes ? 'col-lg-6' : 'col-lg-4'
+		case 2:
+			return globalConfig.preferWideBoxes ? 'col-lg-12' : 'col-lg-8 '
+		default:
+			return 'col-lg-12'
+	}
+})
+function updateLayout() {
+	// update swiper layout
+	if (swiper) {
+		let slidesPerView = '1'
+		if (widescreen.value) {
+			switch (Object.values(chargePoints).length) {
+				case 0:
+				case 1:
+					slidesPerView = '1'
+					break
+				case 2:
+					slidesPerView = '2'
+					break
+				default:
+					slidesPerView = '3'
+			}
+		}
+		swiperEl.setAttribute('slides-per-view', slidesPerView)
+		swiper.update()
+	}
+}
+
+onMounted(() => {
+	let tmp = document.querySelector('.swiper-chargepoints')
+	if (tmp) {
+		swiperEl = tmp as SwiperContainer
+		swiper = swiperEl.swiper
+	}
+	window.addEventListener('resize', updateLayout)
+})
+</script>
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPChargeConfig.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPChargeConfig.vue
new file mode 100755
index 0000000000..adc398d701
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPChargeConfig.vue
@@ -0,0 +1,117 @@
+<template>
+	<p class="settingsheader mt-2 ms-1">Ladepunkt:</p>
+	<!-- Select the charge mode -->
+	<ConfigItem
+		title="Lademodus"
+		icon="fa-charging-station"
+		:infotext="infotext['chargemode']"
+		:fullwidth="true"
+	>
+		<RadioInput
+			v-model="cp.chargeMode"
+			:options="
+				Object.keys(chargemodes).map((v) => [
+					chargemodes[v].name,
+					v,
+					chargemodes[v].color,
+					chargemodes[v].icon,
+				])
+			"
+		/>
+	</ConfigItem>
+	<!-- Select the vehicle -->
+	<ConfigItem
+		title="Fahrzeug"
+		icon="fa-car"
+		:infotext="infotext['vehicle']"
+		:fullwidth="true"
+	>
+		<RadioInput
+			v-model.number="cp.connectedVehicle"
+			:options="Object.values(vehicles).map((v) => [v.name, v.id])"
+		/>
+	</ConfigItem>
+	<ConfigItem
+		title="Sperren"
+		icon="fa-lock"
+		:infotext="infotext['locked']"
+		:fullwidth="true"
+	>
+		<SwitchInput v-model="cp.isLocked" />
+	</ConfigItem>
+	<!-- Priority -->
+	<ConfigItem
+		title="Priorität"
+		icon="fa-star"
+		:infotext="infotext['priority']"
+		:fullwidth="true"
+	>
+		<SwitchInput v-model="cp.hasPriority" />
+	</ConfigItem>
+	<!-- Scheduled Charging -->
+	<ConfigItem
+		title="Zeitplan"
+		icon="fa-clock"
+		:infotext="infotext['timeplan']"
+		:fullwidth="true"
+	>
+		<SwitchInput v-model="cp.scheduledCharging" />
+	</ConfigItem>
+</template>
+
+<script setup lang="ts">
+import { chargemodes } from '@/assets/js/themeConfig'
+import { ChargePoint, vehicles } from '../model'
+import ConfigItem from '../../shared/ConfigItem.vue'
+import { infotext } from '@/assets/js/themeConfig'
+import SwitchInput from '../../shared/SwitchInput.vue'
+import RadioInput from '@/components/shared/RadioInput.vue'
+
+const props = defineProps<{
+	chargepoint: ChargePoint
+}>()
+defineEmits(['closeConfig'])
+//state
+const cp = props.chargepoint
+</script>
+
+<style scoped>
+.status-string {
+	font-size: var(--font-normal);
+	font-style: italic;
+	color: var(--color-battery);
+}
+.chargeConfigSelect {
+	background: var(--color-bg);
+	color: var(--color-fg);
+}
+.chargeModeOption {
+	background: green;
+	color: blue;
+}
+.nav-tabs .nav-link {
+	color: var(--color-menu);
+	opacity: 0.5;
+}
+.nav-tabs .nav-link.disabled {
+	color: var(--color-axis);
+	border: 0.5px solid var(--color-axis);
+}
+
+.nav-tabs .nav-link.active {
+	color: var(--color-fg);
+	background-color: var(--color-bg);
+	opacity: 1;
+	border: 1px solid var(--color-menu);
+	border-bottom: 1px solid var(--color-menu);
+}
+
+.settingsheader {
+	color: var(--color-charging);
+	font-size: 16px;
+	font-weight: bold;
+}
+hr {
+	color: var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPChargeConfigPanel.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPChargeConfigPanel.vue
new file mode 100755
index 0000000000..e4f53689b2
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPChargeConfigPanel.vue
@@ -0,0 +1,190 @@
+<template>
+	<ConfigItem title="Status" icon="fa-info-circle" :fullwidth="true">
+		<span class="status-string">{{ cp.stateStr }}</span>
+	</ConfigItem>
+
+	<ConfigItem v-if="cp.faultState != 0" title="Fehler">
+		<span style="color: red"> {{ cp.faultStr }} </span>
+	</ConfigItem>
+
+	<div class="m-0 mt-4 p-0">
+		<nav class="nav nav-tabs nav-justified mx-1 mt-1" role="tablist">
+			<a
+				class="nav-link active"
+				data-bs-toggle="tab"
+				:data-bs-target="'#chargeSettings' + cpid"
+			>
+				<i class="fa-solid fa-charging-station" />
+			</a>
+			<a
+				v-if="chargepoint.chargeMode == 'instant_charging'"
+				class="nav-link"
+				data-bs-toggle="tab"
+				:data-bs-target="'#instantSettings' + cpid"
+			>
+				<i class="fa-solid fa-lg fa-bolt" />
+			</a>
+			<a
+				v-if="chargepoint.chargeMode == 'pv_charging'"
+				class="nav-link"
+				data-bs-toggle="tab"
+				:data-bs-target="'#pvSettings' + cpid"
+			>
+				<i class="fa-solid fa-solar-panel me-1" />
+			</a>
+			<a
+				v-if="chargepoint.chargeMode == 'scheduled_charging'"
+				class="nav-link"
+				data-bs-toggle="tab"
+				:data-bs-target="'#scheduledSettings' + cpid"
+			>
+				<i class="fa-solid fa-bullseye me-1" />
+			</a>
+			<a
+				v-if="chargepoint.scheduledCharging"
+				class="nav-link"
+				data-bs-toggle="tab"
+				:data-bs-target="'#timeSettings' + cpid"
+			>
+				<i class="fa-solid fa-clock" />
+			</a>
+			<a
+				class="nav-link"
+				data-bs-toggle="tab"
+				:data-bs-target="'#carSettings' + cpid"
+			>
+				<i class="fa-solid fa-rectangle-list" />
+			</a>
+		</nav>
+
+		<!-- Tab panes -->
+		<div id="settingsPanes" class="tab-content mx-1 p-1 pb-3">
+			<div
+				:id="'chargeSettings' + cpid"
+				class="tab-pane active"
+				role="tabpanel"
+				aria-labelledby="instant-tab"
+			>
+				<CPChargeConfig :chargepoint="chargepoint" />
+			</div>
+			<div
+				:id="'instantSettings' + cpid"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="instant-tab"
+			>
+				<CPConfigInstant
+					:chargepoint="cp"
+					:vehicles="vehicles"
+					:charge-templates="chargeTemplates"
+				/>
+			</div>
+
+			<div
+				:id="'pvSettings' + cpid"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="pv-tab"
+			>
+				<CPConfigPv
+					:chargepoint="cp"
+					:vehicles="vehicles"
+					:charge-templates="chargeTemplates"
+				/>
+			</div>
+			<div
+				:id="'scheduledSettings' + cpid"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="scheduled-tab"
+			>
+				<CPConfigScheduled
+					v-if="chargeTemplate != undefined"
+					:charge-template="chargeTemplate"
+					:charge-template-id="cp.chargeTemplate"
+				/>
+			</div>
+			<div
+				:id="'timeSettings' + cpid"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="time-tab"
+			>
+				<CPConfigTimed
+					v-if="chargeTemplate != undefined"
+					:charge-template="chargeTemplate"
+					:charge-template-id="cp.chargeTemplate"
+				/>
+			</div>
+
+			<div
+				:id="'carSettings' + cpid"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="car-tab"
+			>
+				<CPConfigVehicle
+					v-if="vehicles[cp.connectedVehicle] != undefined"
+					:vehicle-id="cp.connectedVehicle"
+				/>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed, onMounted } from 'vue'
+import { ChargePoint, vehicles, chargeTemplates } from '../model'
+import ConfigItem from '../../shared/ConfigItem.vue'
+import CPConfigInstant from './CPConfigInstant.vue'
+import CPConfigPv from './CPConfigPv.vue'
+import CPConfigScheduled from './CPConfigScheduled.vue'
+import CPConfigTimed from './CPConfigTimed.vue'
+import CPConfigVehicle from './CPConfigVehicle.vue'
+import CPChargeConfig from './CPChargeConfig.vue'
+const props = defineProps<{
+	chargepoint: ChargePoint
+}>()
+defineEmits(['closeConfig'])
+//state
+const cp = props.chargepoint
+
+// computed
+const chargeTemplate = computed(() => {
+	return chargeTemplates[cp.chargeTemplate]
+})
+const cpid = computed(() => {
+	return cp.id
+})
+// methods
+// lifecycle
+onMounted(() => {})
+</script>
+
+<style scoped>
+.status-string {
+	font-size: var(--font-settings);
+	font-style: italic;
+	color: var(--color-battery);
+}
+
+.nav-tabs .nav-link {
+	color: var(--color-menu);
+	opacity: 0.5;
+}
+.nav-tabs .nav-link.disabled {
+	color: var(--color-axis);
+	border: 0.5px solid var(--color-axis);
+}
+
+.nav-tabs .nav-link.active {
+	color: var(--color-fg);
+	background-color: var(--color-bg);
+	opacity: 1;
+	border: 1px solid var(--color-menu);
+	border-bottom: 0px solid var(--color-menu);
+}
+.heading {
+	color: var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigInstant.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigInstant.vue
new file mode 100755
index 0000000000..0a4620bbe6
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigInstant.vue
@@ -0,0 +1,85 @@
+<template>
+	<div class="mt-2">
+		<p class="heading ms-1">Sofortladen:</p>
+
+		<!-- Ampere -->
+		<ConfigItem title="Stromstärke" icon="fa-bolt" :fullwidth="true">
+			<RangeInput
+				id="targetCurrent"
+				v-model="cp.instantTargetCurrent"
+				:min="6"
+				:max="32"
+				:step="1"
+				unit="A"
+			/>
+		</ConfigItem>
+		<hr v-if="cp.instantChargeLimitMode != 'none'" />
+		<!-- Limit Mode -->
+		<ConfigItem title="Begrenzung" icon="fa-hand">
+			<RadioInput
+				v-model="cp.instantChargeLimitMode"
+				:options="instantChargeLimitModes.map((e) => [e.name, e.id])"
+			/>
+		</ConfigItem>
+		<!-- Max SoC -->
+		<ConfigItem
+			v-if="cp.instantChargeLimitMode == 'soc'"
+			title="Maximaler SoC"
+			icon="fa-sliders"
+		>
+			<RangeInput
+				id="maxSoc"
+				v-model="cp.instantTargetSoc"
+				:min="0"
+				:max="100"
+				:step="1"
+				unit="%"
+			/>
+		</ConfigItem>
+
+		<!-- Max Energy -->
+		<ConfigItem
+			v-if="cp.instantChargeLimitMode == 'amount'"
+			title="Zu ladende Energie"
+			icon="fa-sliders"
+		>
+			<RangeInput
+				id="maxEnergy"
+				v-model="cp.instantMaxEnergy"
+				:min="0"
+				:max="100"
+				:step="1"
+				unit="kWh"
+			/>
+		</ConfigItem>
+	</div>
+</template>
+
+<script setup lang="ts">
+// import { eventBus } from '@/main.js'
+import { ref } from 'vue'
+import type { ChargePoint } from '../model'
+import ConfigItem from '../../shared/ConfigItem.vue'
+import RangeInput from '@/components/shared/RangeInput.vue'
+import RadioInput from '@/components/shared/RadioInput.vue'
+const props = defineProps<{
+	chargepoint: ChargePoint
+}>()
+const cp = ref(props.chargepoint)
+const instantChargeLimitModes = [
+	{ name: 'keine', id: 'none' },
+	{ name: 'EV-SoC', id: 'soc' },
+	{ name: 'Energiemenge', id: 'amount' },
+]
+// methods
+</script>
+
+<style scoped>
+.chargeConfigSelect {
+	background: var(--color-bg);
+	color: var(--color-fg);
+}
+.heading {
+	color: var(--color-charging);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigPv.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigPv.vue
new file mode 100755
index 0000000000..043bbf27ea
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigPv.vue
@@ -0,0 +1,149 @@
+<template>
+	<div class="pt-2">
+		<p class="heading ms-1">PV-Laden:</p>
+
+		<!-- Maximum SoC -->
+		<ConfigItem
+			title="Maximaler Ladestand"
+			icon="fa-battery-three-quarters"
+			:fullwidth="true"
+		>
+			<RangeInput
+				id="maxSoc"
+				v-model="cp.pvMaxSoc"
+				:min="0"
+				:max="100"
+				:step="1"
+				unit="%"
+			/>
+		</ConfigItem>
+		<ConfigItem
+			title="Einspeisegrenze beachten"
+			icon="fa-hand"
+			:fullwidth="true"
+		>
+			<div class="form-check form-switch">
+				<input
+					id="feedInLimitSwitch"
+					v-model="cp.pvFeedInLimit"
+					class="form-check-input"
+					type="checkbox"
+					role="switch"
+				/>
+			</div>
+		</ConfigItem>
+		<hr />
+		<!-- Min-PV-Laden -->
+		<ConfigItem
+			title="Min-SoC-Laden"
+			icon="fa-battery-half"
+			:infotext="infotext['minsoc']"
+			:fullwidth="true"
+		>
+			<SwitchInput v-model="useMinSoc" />
+		</ConfigItem>
+
+		<!-- Minimum SoC -->
+		<ConfigItem v-if="useMinSoc" title="...bis SoC" :fullwidth="true">
+			<template #info>
+				{{ infotext['minsoc'] }}
+			</template>
+			<RangeInput
+				id="minSoc"
+				v-model="cp.pvMinSoc"
+				:min="0"
+				:max="100"
+				:step="1"
+				unit="%"
+			/>
+		</ConfigItem>
+		<!-- Minimum Soc Current -->
+		<ConfigItem v-if="useMinSoc" title="...mit Ladestrom" :fullwidth="true">
+			<RangeInput
+				id="minSocCurrent"
+				v-model="cp.pvMinSocCurrent"
+				:min="6"
+				:max="32"
+				:step="1"
+				unit="A"
+			/>
+		</ConfigItem>
+		<hr v-if="useMinPv || useMinSoc" />
+
+		<!-- Min+PV-Laden -->
+		<ConfigItem
+			title="Min+PV-Laden"
+			icon="fa-bolt"
+			:infotext="infotext['minpv']"
+			:fullwidth="true"
+		>
+			<SwitchInput v-model="useMinPv" />
+		</ConfigItem>
+		<!-- Minimum Current -->
+		<ConfigItem
+			v-if="useMinPv"
+			title="...bei Ladestrom (minimal)"
+			:fullwidth="true"
+		>
+			<RangeInput
+				id="minCurrent"
+				v-model="cp.pvMinCurrent"
+				:min="6"
+				:max="32"
+				:step="1"
+				unit="A"
+			/>
+		</ConfigItem>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { ref, computed } from 'vue'
+import type { ChargePoint } from '../model'
+import ConfigItem from '../../shared/ConfigItem.vue'
+import RangeInput from '@/components/shared/RangeInput.vue'
+import SwitchInput from '@/components/shared/SwitchInput.vue'
+import { infotext } from '@/assets/js/themeConfig'
+const props = defineProps<{
+	chargepoint: ChargePoint
+}>()
+const cp = ref(props.chargepoint)
+
+// methods:
+
+// computed
+const useMinPv = computed({
+	get() {
+		return cp.value.pvMinCurrent > 5
+	},
+	set(v: boolean) {
+		if (!v) {
+			cp.value.pvMinCurrent = 0
+		} else {
+			cp.value.pvMinCurrent = 6
+		}
+	},
+})
+const useMinSoc = computed({
+	get() {
+		return cp.value.pvMinSoc > 0
+	},
+	set(v: boolean) {
+		if (v) {
+			cp.value.pvMinSoc = 50
+		} else {
+			cp.value.pvMinSoc = 0
+		}
+	},
+})
+</script>
+
+<style scoped>
+.chargeConfigSelect {
+	background: var(--color-bg);
+	color: var(--color-fg);
+}
+.heading {
+	color: var(--color-pv);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigScheduled.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigScheduled.vue
new file mode 100755
index 0000000000..efedb54333
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigScheduled.vue
@@ -0,0 +1,174 @@
+<template>
+	<p class="heading ms-1 pt-2">Zielladen:</p>
+	<table class="table table-borderless">
+		<thead>
+			<tr>
+				<th class="tableheader">Ziel-SoC</th>
+				<th class="tableheader">Zeit</th>
+				<th class="tableheader">Wiederholung</th>
+				<th class="tableheader" />
+			</tr>
+		</thead>
+		<tbody>
+			<tr v-for="key in Object.keys(plans)" :key="key">
+				<td class="tablecell">{{ plans[key].soc }} %</td>
+				<td class="tablecell">
+					{{ timeString(key) }}
+				</td>
+				<td class="tablecell">
+					{{ freqNames[plans[key].frequency.selected] }}
+				</td>
+				<td class="tablecell left">
+					<span
+						class="editButton"
+						data-bs-toggle="modal"
+						:data-bs-target="'#' + modalId"
+						@click="setPlanToEdit(key)"
+					>
+						<i class="fas fa-lg fa-pen ms-2" />
+					</span>
+				</td>
+			</tr>
+			<tr>
+				<td class="emptycell" />
+				<td class="emptycell" />
+				<td class="emptycell" />
+				<td class="right">
+					<span
+						class="addButton"
+						:data-bs-target="'#' + modalId"
+						@click="addPlan"
+					>
+						<i class="fa-solid fa-xl fa-square-plus ms-2" />
+					</span>
+				</td>
+			</tr>
+		</tbody>
+	</table>
+
+	<ModalComponent
+		v-for="planId in plansToEdit"
+		:key="planId"
+		:modal-id="modalId"
+	>
+		<template #title> Zielladen - Parameter </template>
+		<CPEditSchedule
+			:charge-template-id="chargeTemplateId"
+			:plan-id="planId"
+			@save-plan="savePlan"
+			@delete-plan="deletePlan"
+			@abort="abortEdit"
+		/>
+	</ModalComponent>
+</template>
+
+<script setup lang="ts">
+import { reactive, computed } from 'vue'
+import { Modal } from 'bootstrap'
+import type { ChargeTemplate, ChargeSchedule } from '../model'
+import { chargeTemplates, createChargeSchedule } from '../model'
+import ModalComponent from '@/components/shared/ModalComponent.vue'
+import CPEditSchedule from './CPEditSchedule.vue'
+import { updateChargeTemplate } from '@/assets/js/sendMessages'
+
+const freqNames: { [key: string]: string } = {
+	daily: 'Täglich',
+	once: 'Einmal',
+	weekly: 'Wöchentlich',
+}
+const props = defineProps<{
+	chargeTemplate: ChargeTemplate
+	chargeTemplateId: number
+}>()
+
+const modalId = 'schedulesettingmodal' + props.chargeTemplateId
+// const planIdToEdit = (Object.keys(props.chargeTemplate.time_charging.plans).length >0) ? ref(Object.keys(props.chargeTemplate.time_charging.plans)[0]) : ref('0')
+const plansToEdit: string[] = reactive(['0'])
+//computed
+const plans = computed(() => {
+	let result = props.chargeTemplate.chargemode.scheduled_charging.plans
+	return result ? result : {}
+})
+//methods
+function timeString(key: string) {
+	return plans.value[key].timed ? plans.value[key].time : '-'
+}
+function setPlanToEdit(key: string) {
+	plansToEdit[0] = key
+}
+function savePlansToServer() {
+	updateChargeTemplate(props.chargeTemplateId)
+}
+function savePlan() {
+	savePlansToServer()
+}
+function abortEdit() {
+	console.log('abort edit')
+}
+function deletePlan(id: string) {
+	delete chargeTemplates[props.chargeTemplateId].chargemode.scheduled_charging
+		.plans[id]
+	savePlansToServer()
+}
+function addPlan() {
+	let p: ChargeSchedule = createChargeSchedule()
+	if (!props.chargeTemplate.chargemode.scheduled_charging.plans) {
+		chargeTemplates[
+			props.chargeTemplateId
+		].chargemode.scheduled_charging.plans = {}
+	}
+	let max = 0
+	Object.keys(plans.value).forEach((k) => {
+		if (+k > max) {
+			max = +k
+		}
+	})
+	max = max + 1
+	chargeTemplates[props.chargeTemplateId].chargemode.scheduled_charging.plans[
+		max.toString()
+	] = p
+	setPlanToEdit(max.toString())
+	console.log(plans.value)
+	showModal()
+}
+function showModal() {
+	let element = document.getElementById(modalId)
+	if (element) {
+		let modal = new Modal(element)
+		modal.show()
+	} else {
+		console.log('NO MODAL ELEMENT')
+	}
+}
+</script>
+
+<style scoped>
+.tablecell {
+	color: var(--color-fg);
+	text-align: center;
+}
+.emptycell {
+	border-left: 0;
+	border-right: 0;
+	border-bottom: 0;
+}
+.tableheader {
+	color: var(--color-menu);
+	text-align: center;
+}
+.heading {
+	color: var(--color-battery);
+}
+.editButton {
+	color: var(--color-menu);
+}
+.addButton {
+	color: var(--color-menu);
+}
+.left {
+	text-align: left;
+}
+.right {
+	text-align: right;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigTimed.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigTimed.vue
new file mode 100755
index 0000000000..ae065f7e07
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigTimed.vue
@@ -0,0 +1,156 @@
+<template>
+	<p class="heading ms-1 pt-2">Zeitpläne:</p>
+	<table class="table table-borderless">
+		<thead>
+			<tr>
+				<th class="tableheader">Von</th>
+				<th class="tableheader">Bis</th>
+				<th class="tableheader">Ladestrom</th>
+				<th class="tableheader">Wiederholung</th>
+				<th class="tableheader right" />
+			</tr>
+		</thead>
+		<tbody>
+			<tr v-for="key in Object.keys(plans)" :key="key">
+				<td class="tablecell">
+					{{ plans[key].time[0] }}
+				</td>
+				<td class="tablecell">
+					{{ plans[key].time[1] }}
+				</td>
+				<td class="tablecell">{{ plans[key].current }} A</td>
+				<td class="tablecell">
+					{{ freqNames[plans[key].frequency.selected] }}
+				</td>
+				<td class="tablecell left">
+					<span class="editButton" editPlan="true" @click="setPlanToEdit(key)">
+						<i class="fas fa-lg fa-pen ms-2" />
+					</span>
+				</td>
+			</tr>
+			<tr>
+				<td class="emptycell" />
+				<td class="emptycell" />
+				<td class="emptycell" />
+				<td class="emptycell" />
+				<td class="tablecell right">
+					<span class="addButton" @click="addPlan">
+						<i class="fa-solid fa-xl fa-square-plus ms-2" />
+					</span>
+				</td>
+			</tr>
+		</tbody>
+	</table>
+
+	<WBWidget v-if="editPlan" :full-width="true">
+		<template #title> Zeitplan bearbeiten </template>
+		<CPEditTimeplan
+			:charge-template-id="chargeTemplateId"
+			:plan-id="plansToEdit[0]"
+			@save-plan="savePlan"
+			@delete-plan="deletePlan"
+			@abort="abortEdit"
+		/>
+	</WBWidget>
+</template>
+
+<script setup lang="ts">
+import { ref, reactive, computed } from 'vue'
+import type { ChargeTemplate, ChargeTimePlan } from '../model'
+import { chargeTemplates, createChargeTimePlan } from '../model'
+import CPEditTimeplan from './CPEditTimeplan.vue'
+import WBWidget from '@/components/shared/WBWidget.vue'
+import { updateChargeTemplate } from '@/assets/js/sendMessages'
+
+const freqNames: { [key: string]: string } = {
+	daily: 'Täglich',
+	once: 'Einmal',
+	weekly: 'Wöchentlich',
+}
+const props = defineProps<{
+	chargeTemplate: ChargeTemplate
+	chargeTemplateId: number
+}>()
+
+// const planIdToEdit = (Object.keys(props.chargeTemplate.time_charging.plans).length >0) ? ref(Object.keys(props.chargeTemplate.time_charging.plans)[0]) : ref('0')
+const plansToEdit: string[] = reactive(['0'])
+function setPlanToEdit(key: string) {
+	plansToEdit[0] = key
+}
+const editPlan = ref(false)
+function savePlansToServer() {
+	updateChargeTemplate(props.chargeTemplateId)
+}
+function savePlan() {
+	savePlansToServer()
+	editPlan.value = false
+}
+function abortEdit() {
+	console.log('abort edit')
+	editPlan.value = false
+}
+function deletePlan(id: string) {
+	delete chargeTemplates[props.chargeTemplateId].time_charging.plans[id]
+	savePlansToServer()
+	editPlan.value = false
+}
+function addPlan() {
+	let p: ChargeTimePlan = createChargeTimePlan()
+	if (!props.chargeTemplate.time_charging.plans) {
+		chargeTemplates[props.chargeTemplateId].time_charging.plans = {}
+	}
+	let max = 0
+	Object.keys(plans.value).forEach((k) => {
+		if (+k > max) {
+			max = +k
+		}
+	})
+	max = max + 1
+	chargeTemplates[props.chargeTemplateId].time_charging.plans[max.toString()] =
+		p
+	setPlanToEdit(max.toString())
+	// showModal()
+	editPlan.value = true
+}
+
+const plans = computed(() => {
+	let result = props.chargeTemplate.time_charging.plans
+	return result ? result : {}
+})
+</script>
+
+<style scoped>
+.tablecell {
+	color: var(--color-fg);
+	background-color: var(--color-bg);
+	text-align: center;
+}
+.tableheader {
+	color: var(--color-menu);
+	background-color: var(--color-bg);
+	text-align: center;
+}
+.emptycell {
+	border-left: 0;
+	border-right: 0;
+	border-bottom: 0;
+	border-top: 0;
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+}
+.heading {
+	color: var(--color-battery);
+}
+.editButton {
+	color: var(--color-menu);
+}
+.addButton {
+	color: var(--color-menu);
+}
+.left {
+	text-align: left;
+}
+.right {
+	text-align: right;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigVehicle.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigVehicle.vue
new file mode 100755
index 0000000000..29d65975a4
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPConfigVehicle.vue
@@ -0,0 +1,66 @@
+<template>
+	<p class="settingsheader mt-2 ms-1">
+		Profile für {{ vehicles[props.vehicleId].name }}:
+	</p>
+	<!-- Select the charge mode -->
+	<ConfigItem title="Ladeprofil" icon="fa-sliders" :fullwidth="true">
+		<RadioInput
+			v-model.number="vehicles[props.vehicleId].chargeTemplateId"
+			:options="
+				Object.keys(chargeTemplates).map((v) => [chargeTemplates[+v].name, v])
+			"
+		/>
+	</ConfigItem>
+	<!-- Select the Vehicle Template -->
+	<ConfigItem title="Fahrzeug-Vorlage" icon="fa-sliders" :fullwidth="true">
+		<RadioInput
+			v-model.number="vehicles[props.vehicleId].evTemplateId"
+			:options="Object.keys(evTemplates).map((v) => [evTemplates[+v].name, v])"
+		/>
+	</ConfigItem>
+</template>
+
+<script setup lang="ts">
+import { vehicles, chargeTemplates, evTemplates } from '../model'
+import ConfigItem from '../../shared/ConfigItem.vue'
+import RadioInput from '../../shared/RadioInput.vue'
+const props = defineProps<{
+	vehicleId: number
+}>()
+</script>
+
+<style scoped>
+.status-string {
+	font-size: var(--font-normal);
+	font-style: italic;
+	color: var(--color-battery);
+}
+.chargeConfigSelect {
+	background: var(--color-bg);
+	color: var(--color-fg);
+}
+.chargeModeOption {
+	background: green;
+	color: blue;
+}
+.nav-tabs .nav-link {
+	color: var(--color-menu);
+	opacity: 0.5;
+}
+.nav-tabs .nav-link.disabled {
+	color: var(--color-axis);
+	border: 0.5px solid var(--color-axis);
+}
+
+.nav-tabs .nav-link.active {
+	color: var(--color-fg);
+	background-color: var(--color-bg);
+	opacity: 1;
+	border: 1px solid var(--color-menu);
+	border-bottom: 1px solid var(--color-menu);
+}
+
+.settingsheader {
+	color: var(--color-charging);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPEditSchedule.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPEditSchedule.vue
new file mode 100755
index 0000000000..de358bb3c8
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPEditSchedule.vue
@@ -0,0 +1,120 @@
+<template>
+	<div class="container-fluid p-0 m-0">
+		<ConfigItem title="Ladestand" :fullwidth="true">
+			<RangeInput
+				id="soc"
+				v-model="plan.soc"
+				:min="0"
+				:max="100"
+				:step="1"
+				unit="%"
+			/>
+		</ConfigItem>
+		<ConfigItem title="Zielzeit beachten" :fullwidth="true">
+			<SwitchInput v-model="plan.timed" />
+		</ConfigItem>
+		<ConfigItem title="Uhrzeit" :fullwidth="true">
+			<TimeInput v-model="plan.time" />
+		</ConfigItem>
+		<ConfigItem title="Wiederholungen" :fullwidth="true">
+			<SelectInput v-model="plan.frequency.selected" :options="frequencies" />
+		</ConfigItem>
+		<ConfigItem
+			v-if="plan.frequency.selected == 'once'"
+			title="Gültig ab"
+			:fullwidth="true"
+		>
+			<DateInput v-model="plan.frequency.once[0]" />
+		</ConfigItem>
+		<ConfigItem
+			v-if="plan.frequency.selected == 'once'"
+			title="Gültig bis"
+			:fullwidth="true"
+		>
+			<DateInput v-model="plan.frequency.once[1]" />
+		</ConfigItem>
+		<ConfigItem
+			v-if="plan.frequency.selected == 'weekly'"
+			title="Wochentage"
+			:fullwidth="true"
+		>
+			<CheckBoxInput v-model="plan.frequency.weekly" :options="days" />
+		</ConfigItem>
+		<div class="row mt-2">
+			<div class="col d-flex justify-content-end">
+				<button
+					class="btn btn-danger"
+					data-bs-dismiss="modal"
+					@click="$emit('deletePlan', planId)"
+				>
+					Löschen
+				</button>
+				<button
+					class="btn btn-warning ms-1"
+					data-bs-dismiss="modal"
+					@click="$emit('abort')"
+				>
+					Abbrechen
+				</button>
+				<button
+					class="btn btn-success float-end ms-1"
+					data-bs-dismiss="modal"
+					@click="$emit('savePlan', planId)"
+				>
+					Speichern
+				</button>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import { chargeTemplates, createChargeSchedule } from '../model'
+import ConfigItem from '../../shared/ConfigItem.vue'
+import RangeInput from '@/components/shared/RangeInput.vue'
+import SelectInput from '@/components/shared/SelectInput.vue'
+import CheckBoxInput from '@/components/shared/CheckBoxInput.vue'
+import TimeInput from '@/components/shared/TimeInput.vue'
+import DateInput from '@/components/shared/DateInput.vue'
+import SwitchInput from '../../shared/SwitchInput.vue'
+const props = defineProps<{
+	chargeTemplateId: number
+	planId: string
+}>()
+defineEmits(['deletePlan', 'abort', 'savePlan'])
+
+const frequencies: [string | number, string | number][] = [
+	['Einmalig', 'once'],
+	['Täglich', 'daily'],
+	['Wöchentlich', 'weekly'],
+]
+const days = [
+	'Montag',
+	'Dienstag',
+	'Mittwoch',
+	'Donnerstag',
+	'Freitag',
+	'Samstag',
+	'Sonntag',
+]
+const template = computed(() => {
+	return chargeTemplates[props.chargeTemplateId]
+})
+const plan = computed(() => {
+	let p = template.value.chargemode.scheduled_charging.plans[props.planId]
+	if (p) {
+		return p
+	} else {
+		return createChargeSchedule() // create a dummy time plan in case the list of plans in the template is empty
+	}
+})
+</script>
+
+<style scoped>
+.time-input {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+	border: 1px solid var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPEditTimeplan.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPEditTimeplan.vue
new file mode 100755
index 0000000000..81ae4a3ff2
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/CPEditTimeplan.vue
@@ -0,0 +1,111 @@
+<template>
+	<div class="container-fluid p-0 m-0">
+		<ConfigItem title="Beginn" :fullwidth="true">
+			<TimeInput v-model="plan.time[0]" />
+		</ConfigItem>
+
+		<ConfigItem title="Ende" :fullwidth="true">
+			<TimeInput v-model="plan.time[1]" />
+		</ConfigItem>
+		<ConfigItem title="Ladestrom" :fullwidth="true">
+			<RangeInput
+				id="current"
+				v-model="plan.current"
+				:min="6"
+				:max="32"
+				:step="1"
+				unit="A"
+			/>
+		</ConfigItem>
+		<ConfigItem title="Wiederholungen" :fullwidth="true">
+			<SelectInput v-model="plan.frequency.selected" :options="frequencies" />
+		</ConfigItem>
+		<ConfigItem
+			v-if="plan.frequency.selected == 'once'"
+			title="Gültig ab"
+			:fullwidth="true"
+		>
+			<DateInput v-model="plan.frequency.once[0]" />
+		</ConfigItem>
+		<ConfigItem
+			v-if="plan.frequency.selected == 'once'"
+			title="Gültig bis"
+			:fullwidth="true"
+		>
+			<DateInput v-model="plan.frequency.once[1]" />
+		</ConfigItem>
+		<ConfigItem
+			v-if="plan.frequency.selected == 'weekly'"
+			title="Wochentage"
+			:fullwidth="true"
+		>
+			<CheckBoxInput v-model="plan.frequency.weekly" :options="days" />
+		</ConfigItem>
+		<div class="row">
+			<div class="col d-flex justify-content-end">
+				<button class="btn btn-danger" @click="$emit('deletePlan', planId)">
+					Löschen
+				</button>
+				<button class="btn btn-warning ms-1" @click="$emit('abort')">
+					Abbrechen
+				</button>
+				<button
+					class="btn btn-success float-end ms-1"
+					@click="$emit('savePlan', planId)"
+				>
+					Speichern
+				</button>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import { chargeTemplates, createChargeTimePlan } from '../model'
+import ConfigItem from '../../shared/ConfigItem.vue'
+import RangeInput from '@/components/shared/RangeInput.vue'
+import SelectInput from '@/components/shared/SelectInput.vue'
+import CheckBoxInput from '@/components/shared/CheckBoxInput.vue'
+import TimeInput from '@/components/shared/TimeInput.vue'
+import DateInput from '@/components/shared/DateInput.vue'
+const props = defineProps<{
+	chargeTemplateId: number
+	planId: string
+}>()
+defineEmits(['deletePlan', 'abort', 'savePlan'])
+
+const frequencies: [string | number, string | number][] = [
+	['Einmalig', 'once'],
+	['Täglich', 'daily'],
+	['Wöchentlich', 'weekly'],
+]
+const days = [
+	'Montag',
+	'Dienstag',
+	'Mittwoch',
+	'Donnerstag',
+	'Freitag',
+	'Samstag',
+	'Sonntag',
+]
+const template = computed(() => {
+	return chargeTemplates[props.chargeTemplateId]
+})
+const plan = computed(() => {
+	let p = template.value.time_charging.plans[props.planId]
+	if (p) {
+		return p
+	} else {
+		return createChargeTimePlan() // create a dummy time plan in case the list of plans in the template is empty
+	}
+})
+</script>
+
+<style scoped>
+.time-input {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+	border: 1px solid var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpSimpleList/CPSListItem.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpSimpleList/CPSListItem.vue
new file mode 100755
index 0000000000..df2b079ed5
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpSimpleList/CPSListItem.vue
@@ -0,0 +1,227 @@
+<template>
+	<tr class="tablerow">
+		<!-- Column 1: CP Name and flags-->
+		<td class="tablecell left" @click="toggleConfig">
+			<div class="d-flex flex-wrap">
+				<span>
+					<i :class="statusIcon" class="me-1" :style="statusColor" />
+					<span class="me-1" :style="nameCellStyle()">
+						{{ chargepoint.name }}</span
+					>
+				</span>
+				<span
+					><i v-if="chargepoint.hasPriority" class="fa-solid fa-xs fa-star" />
+					<i
+						v-if="chargepoint.scheduledCharging"
+						class="fa-solid fa-xs fa-clock"
+					/>
+				</span>
+			</div>
+		</td>
+		<!-- Column 2: Vehicle, SoC-->
+		<td class="tablecell left">
+			<div class="d-flex flex-column">
+				<span>{{ chargepoint.vehicleName }}</span>
+				<span v-if="chargepoint.isSocConfigured" class="flex-wrap">
+					<BatterySymbol class="me-1" :soc="chargepoint.soc" />
+					<i
+						v-if="chargepoint.isSocManual"
+						class="fa-solid fa-sm fas fa-edit me-2"
+						:style="{ color: 'var(--color-menu)' }"
+					/>
+					<i
+						v-if="!chargepoint.isSocManual"
+						class="fa-solid fa-sm fa-sync me-2"
+						:style="{ color: 'var(--color-menu)' }"
+					/>
+				</span>
+			</div>
+		</td>
+		<!-- Column 3: Mode, Power -->
+		<td
+			class="tablecell left"
+			data-bs-toggle="modal"
+			:data-bs-target="'#cpsconfig-' + chargepoint.id"
+		>
+			<div class="d-flex flex-column">
+				<span class="d-flex align-items-center flex-wrap">
+					<span>{{ chargePowerString }}</span>
+
+					<span class="d-flex align-items-center me-1">
+						<span class="badge phasesInUse rounded-pill">
+							{{ chargePhasesString }}</span
+						>
+						<span>
+							{{ chargeAmpereString }}
+						</span>
+					</span>
+				</span>
+				<span :style="modeStyle">
+					<i class="fa me-1" :class="modeIcon" /> {{ modeString }}
+				</span>
+			</div>
+		</td>
+		<!-- Column 4: Energy, Range -->
+		<td
+			class="tablecell left"
+			data-bs-toggle="modal"
+			:data-bs-target="'#cpsconfig-' + chargepoint.id"
+		>
+			<div class="d-flex flex-column">
+				<span class="me-2">{{ chargeEnergyString }}</span>
+				<span>{{ chargedRangeString }}</span>
+			</div>
+		</td>
+
+		<td class="buttoncell right">
+			<span
+				class="fa-solid fa-lg fa-edit ps-1 tableicon"
+				data-bs-toggle="modal"
+				:data-bs-target="'#cpsconfig-' + chargepoint.id"
+			/>
+		</td>
+	</tr>
+	<tr v-if="showConfig">
+		<td colspan="5" class="px-0">
+			<CPChargeConfigPanel
+				v-if="showConfig"
+				:chargepoint="chargepoint"
+				@close-config="toggleConfig"
+			/>
+		</td>
+	</tr>
+</template>
+
+<script setup lang="ts">
+import { ref, computed } from 'vue'
+import type { ChargePoint } from '../model'
+import { chargemodes, globalConfig } from '@/assets/js/themeConfig'
+import { formatWatt, formatWattH } from '@/assets/js/helpers'
+import CPChargeConfigPanel from '../cpConfig/CPChargeConfigPanel.vue'
+import BatterySymbol from '../../shared/BatterySymbol.vue'
+const props = defineProps<{
+	chargepoint: ChargePoint
+}>()
+const showConfig = ref(false)
+const modeIcon = computed(() => {
+	return chargemodes[props.chargepoint.chargeMode].icon
+})
+const statusIcon = computed(() => {
+	let icon = ''
+	if (props.chargepoint.isLocked) {
+		icon = 'fa-lock'
+	} else if (props.chargepoint.isCharging) {
+		icon = ' fa-bolt'
+	} else if (props.chargepoint.isPluggedIn) {
+		icon = 'fa-plug'
+	}
+	return 'fa ' + icon
+})
+const statusColor = computed(() => {
+	let result = { color: 'var(--color-axis)' }
+	if (props.chargepoint.isLocked) {
+		result.color = 'var(--color-evu)'
+	} else if (props.chargepoint.isCharging) {
+		result.color = 'var(--color-charging)'
+	} else if (props.chargepoint.isPluggedIn) {
+		result.color = 'var(--color-battery)'
+	}
+	return result
+})
+const modeStyle = computed(() => {
+	switch (props.chargepoint.chargeMode) {
+		case 'stop':
+			return { color: 'var(--fg)' }
+		default:
+			return {
+				color: chargemodes[props.chargepoint.chargeMode].color,
+			}
+	}
+})
+const chargePowerString = computed(() => {
+	return formatWatt(props.chargepoint.power, globalConfig.decimalPlaces)
+})
+const chargeAmpereString = computed(() => {
+	return props.chargepoint.current + ' A'
+})
+const chargePhasesString = computed(() => {
+	return props.chargepoint.phasesInUse
+})
+const chargeEnergyString = computed(() => {
+	if (props.chargepoint.dailyYield > 0) {
+		return formatWattH(props.chargepoint.dailyYield, globalConfig.decimalPlaces)
+	} else {
+		return '0 Wh'
+	}
+})
+const chargedRangeString = computed(() => {
+	if (
+		props.chargepoint.averageConsumption > 0 &&
+		props.chargepoint.dailyYield > 0
+	) {
+		return (
+			'(' +
+			Math.round(
+				props.chargepoint.dailyYield /
+					props.chargepoint.averageConsumption /
+					10,
+			).toString() +
+			' km)'
+		)
+	} else {
+		return ''
+	}
+})
+const modeString = computed(() => {
+	return chargemodes[props.chargepoint.chargeMode].name
+})
+function nameCellStyle() {
+	return { color: props.chargepoint.color }
+}
+function toggleConfig() {
+	showConfig.value = !showConfig.value
+}
+</script>
+
+<style scoped>
+.tablerow {
+	margin: 14px;
+}
+.tablecell {
+	color: var(--color-fg);
+	background-color: var(--color-bg);
+	text-align: center;
+	padding-top: 2px;
+	padding-left: 2px;
+	padding-right: 2px;
+	vertical-align: baseline;
+	line-height: 1.4rem;
+	font-size: var(--font-small);
+}
+.buttoncell {
+	background-color: var(--color-bg);
+	padding: 0;
+	margin: 0;
+}
+.left {
+	text-align: left;
+}
+.tablecell.right {
+	text-align: right;
+}
+.tablecolum1 {
+	color: var(--color-fg);
+	text-align: left;
+	margin: 0;
+	padding: 0;
+}
+.tableicon {
+	color: var(--color-menu);
+}
+.fa-star {
+	color: var(--color-evu);
+}
+.fa-clock {
+	color: var(--color-battery);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpSimpleList/CPSimpleList.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpSimpleList/CPSimpleList.vue
new file mode 100755
index 0000000000..742ec7b7bc
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpSimpleList/CPSimpleList.vue
@@ -0,0 +1,76 @@
+<template>
+	<WBWidget>
+		<template #title> Ladepunkte </template>
+		<table class="table table-borderless px-0">
+			<thead>
+				<tr>
+					<th class="tableheader alignleft">
+						<i class="fa-solid fa-lg fa-charging-station ps-2" />
+					</th>
+					<th class="tableheader alignleft">
+						<i class="fa-solid fa-lg fa-car ps-2" />
+					</th>
+					<th class="tableheader alignleft">
+						<i class="fa-solid fa-lg fa-bolt ps-2" />
+					</th>
+					<th class="tableheader alignleft">
+						<i class="fa-solid fa-lg fa-car-battery ps-2" />
+					</th>
+					<th class="tableheader alignright" />
+				</tr>
+			</thead>
+			<tbody>
+				<CPSListItem
+					v-for="chargepoint in chargepointsToDisplay"
+					:key="chargepoint.id"
+					:chargepoint="chargepoint"
+				/>
+			</tbody>
+		</table>
+		<ModalComponent
+			v-for="chargepoint in chargepointsToDisplay"
+			:key="chargepoint.id"
+			:modal-id="'cpsconfig-' + chargepoint.id"
+		>
+			<template #title> Konfiguration: {{ chargepoint.name }} </template>
+			<CPChargeConfigPanel
+				v-if="chargepoint != undefined"
+				:chargepoint="chargepoint"
+			/>
+		</ModalComponent>
+	</WBWidget>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import { chargePoints } from '../model'
+import WBWidget from '@/components/shared/WBWidget.vue'
+import CPSListItem from './CPSListItem.vue'
+import ModalComponent from '@/components/shared/ModalComponent.vue'
+import CPChargeConfigPanel from '../cpConfig/CPChargeConfigPanel.vue'
+const chargepointsToDisplay = computed(() => {
+	return Object.values(chargePoints)
+})
+</script>
+
+<style scoped>
+.tableheader {
+	margin: 0;
+	padding-left: 0;
+	background-color: var(--color-bg);
+	color: var(--color-menu);
+}
+.alignleft {
+	text-align: left;
+}
+.aligncenter {
+	text-align: center;
+}
+.alignright {
+	text-align: right;
+}
+.table {
+	border-spacing: 1rem;
+	background-color: var(--color-bg);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/model.ts b/packages/modules/web_themes/colors/source/src/components/chargePointList/model.ts
new file mode 100755
index 0000000000..00a5e3f469
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/model.ts
@@ -0,0 +1,372 @@
+import { reactive } from 'vue'
+import { updateServer } from '@/assets/js/sendMessages'
+import type { PowerItem } from '@/assets/js/types'
+export class ChargePoint {
+	id: number
+	name = 'Ladepunkt'
+	icon = 'Ladepunkt'
+	type = ''
+	ev = 0
+	template = 0
+	connectedPhases = 0
+	phase_1 = 0
+	autoPhaseSwitchHw = false
+	controlPilotInterruptionHw = false
+	isEnabled = true
+	isPluggedIn = false
+	isCharging = false
+	private _isLocked = false
+	private _connectedVehicle = 0
+	chargeTemplate = 0
+	evTemplate = 0
+	private _chargeMode = ChargeMode.pv_charging
+	private _hasPriority = false
+	currentPlan = ''
+	averageConsumption = 0
+	vehicleName = ''
+	rangeCharged = 0
+	rangeUnit = ''
+	counter = 0
+	dailyYield = 0
+	energyPv = 0
+	energyBat = 0
+	pvPercentage = 0
+	faultState = 0
+	faultStr = ''
+	phasesInUse = 0
+	power = 0
+	chargedSincePlugged = 0
+	stateStr = ''
+	current = 0
+	phasesToUse = 0
+	soc = 0
+	isSocConfigured = true
+	isSocManual = false
+	color = 'white'
+	private _scheduledCharging = false
+	private _instantChargeLimitMode = ''
+	private _instantTargetCurrent = 0
+	private _instantTargetSoc = 0
+	private _instantMaxEnergy = 0
+	private _pvFeedInLimit = false
+	private _pvMinCurrent = 0
+	private _pvMaxSoc = 0
+	private _pvMinSoc = 0
+	private _pvMinSocCurrent = 0
+	constructor(index: number) {
+		this.id = index
+	}
+	get isLocked() {
+		return this._isLocked
+	}
+	set isLocked(locked: boolean) {
+		this._isLocked = locked
+		updateServer('cpLock', locked, this.id)
+	}
+	updateIsLocked(locked: boolean) {
+		this._isLocked = locked
+	}
+	get connectedVehicle() {
+		return this._connectedVehicle
+	}
+	set connectedVehicle(vId: number) {
+		this._connectedVehicle = vId
+		updateServer('cpVehicle', vId, this.id)
+	}
+	updateConnectedVehicle(id: number) {
+		this._connectedVehicle = id
+	}
+	get chargeMode() {
+		return this._chargeMode
+	}
+	set chargeMode(cm: ChargeMode) {
+		this._chargeMode = cm
+		updateServer('chargeMode', cm, this.id)
+	}
+	updateChargeMode(cm: ChargeMode) {
+		this._chargeMode = cm
+	}
+	get hasPriority() {
+		return this._hasPriority
+	}
+	set hasPriority(prio: boolean) {
+		this._hasPriority = prio
+		updateServer('cpPriority', prio, this.id)
+	}
+	updateCpPriority(prio: boolean) {
+		this._hasPriority = prio
+	}
+	get scheduledCharging() {
+		return this._scheduledCharging
+	}
+	set scheduledCharging(setting: boolean) {
+		this._scheduledCharging = setting
+		updateServer('cpScheduledCharging', setting, this.id)
+	}
+	updateScheduledCharging(setting: boolean) {
+		this._scheduledCharging = setting
+	}
+	get instantTargetCurrent() {
+		return this._instantTargetCurrent
+	}
+	set instantTargetCurrent(current: number) {
+		this._instantTargetCurrent = current
+		updateServer('cpInstantTargetCurrent', current, this.id)
+	}
+	updateInstantTargetCurrent(current: number) {
+		this._instantTargetCurrent = current
+	}
+	get instantChargeLimitMode() {
+		return this._instantChargeLimitMode
+	}
+	set instantChargeLimitMode(mode: string) {
+		this._instantChargeLimitMode = mode
+		updateServer('cpInstantChargeLimitMode', mode, this.id)
+	}
+	updateInstantChargeLimitMode(mode: string) {
+		this._instantChargeLimitMode = mode
+	}
+	get instantTargetSoc() {
+		return this._instantTargetSoc
+	}
+	set instantTargetSoc(soc: number) {
+		this._instantTargetSoc = soc
+		updateServer('cpInstantTargetSoc', soc, this.id)
+	}
+	updateInstantTargetSoc(soc: number) {
+		this._instantTargetSoc = soc
+	}
+	get instantMaxEnergy() {
+		return this._instantMaxEnergy
+	}
+	set instantMaxEnergy(max: number) {
+		this._instantMaxEnergy = max
+		updateServer('cpInstantMaxEnergy', max, this.id)
+	}
+	updateInstantMaxEnergy(max: number) {
+		this._instantMaxEnergy = max
+	}
+	get pvFeedInLimit() {
+		return this._pvFeedInLimit
+	}
+	set pvFeedInLimit(setting: boolean) {
+		this._pvFeedInLimit = setting
+		updateServer('cpPvFeedInLimit', setting, this.id)
+	}
+	updatePvFeedInLimit(setting: boolean) {
+		this._pvFeedInLimit = setting
+	}
+	get pvMinCurrent() {
+		return this._pvMinCurrent
+	}
+	set pvMinCurrent(min: number) {
+		this._pvMinCurrent = min
+		updateServer('cpPvMinCurrent', min, this.id)
+	}
+	updatePvMinCurrent(min: number) {
+		this._pvMinCurrent = min
+	}
+	get pvMaxSoc() {
+		return this._pvMaxSoc
+	}
+	set pvMaxSoc(max: number) {
+		this._pvMaxSoc = max
+		updateServer('cpPvMaxSoc', max, this.id)
+	}
+	updatePvMaxSoc(max: number) {
+		this._pvMaxSoc = max
+	}
+	get pvMinSoc() {
+		return this._pvMinSoc
+	}
+	set pvMinSoc(min: number) {
+		this._pvMinSoc = min
+		updateServer('cpPvMinSoc', min, this.id)
+	}
+	updatePvMinSoc(min: number) {
+		this._pvMinSoc = min
+	}
+	get pvMinSocCurrent() {
+		return this._pvMinSocCurrent
+	}
+	set pvMinSocCurrent(a: number) {
+		this._pvMinSocCurrent = a
+		updateServer('cpPvMinSocCurrent', a, this.id)
+	}
+	updatePvMinSocCurrent(a: number) {
+		this._pvMinSocCurrent = a
+	}
+	toPowerItem(): PowerItem {
+		return {
+			name: this.name,
+			power: this.power,
+			energy: this.dailyYield,
+			energyPv: this.energyPv,
+			energyBat: this.energyBat,
+			pvPercentage: this.pvPercentage,
+			color: this.color,
+			icon: this.icon,
+		}
+	}
+}
+export class Vehicle {
+	id: number
+	name = ''
+	private _chargeTemplateId = 0
+	private _evTemplateId = 0
+	tags: Array<string> = []
+	soc = 0
+	range = 0
+	constructor(index: number) {
+		this.id = index
+	}
+	get chargeTemplateId() {
+		return this._chargeTemplateId
+	}
+	set chargeTemplateId(id: number) {
+		this._chargeTemplateId = id
+		updateServer('vhChargeTemplateId', id, this.id)
+	}
+	updateChargeTemplateId(id: number) {
+		this._chargeTemplateId = id
+	}
+	get evTemplateId() {
+		return this._evTemplateId
+	}
+	set evTemplateId(id: number) {
+		this._evTemplateId = id
+		updateServer('vhEvTemplateId', id, this.id)
+	}
+	updateEvTemplateId(id: number) {
+		this._evTemplateId = id
+	}
+}
+export interface ConnectedVehicleConfig {
+	average_consumption: number
+	charge_template: number
+	chargemode: string
+	current_plan: string
+	ev_template: number
+	priority: boolean
+}
+export enum ChargeMode {
+	instant_charging = 'instant_charging',
+	pv_charging = 'pv_charging',
+	scheduled_charging = 'scheduled_charging',
+	standby = 'standby',
+	stop = 'stop',
+}
+export interface ChargeTimePlan {
+	frequency: {
+		once: Array<Date>
+		selected: string
+		weekly: boolean[]
+	}
+	name: string
+	time: Array<string>
+	current: number
+}
+export function createChargeTimePlan(): ChargeTimePlan {
+	return {
+		frequency: {
+			once: [new Date('2022-02-02'), new Date('2022-02-22')],
+			selected: 'daily',
+			weekly: [false, false, false, false, false, false, false],
+		},
+		name: 'Neuer Plan',
+		time: ['10:00', '16:00'],
+		current: 16,
+	}
+}
+export interface ChargeSchedule {
+	name: string
+	timed: boolean
+	time: string
+	soc: number
+	frequency: {
+		once: Array<Date>
+		selected: string
+		weekly: boolean[]
+	}
+}
+export function createChargeSchedule(): ChargeSchedule {
+	return {
+		name: 'Neuer Plan',
+		timed: false,
+		time: '12:00',
+		soc: 80,
+		frequency: {
+			once: [new Date('2022-02-02'), new Date('2022-02-22')],
+			selected: 'daily',
+			weekly: [false, false, false, false, false, false, false],
+		},
+	}
+}
+export interface ChargeTemplate {
+	name: string
+	prio: boolean
+	time_charging: {
+		active: boolean
+		plans: { [key: string]: ChargeTimePlan }
+	}
+	chargemode: {
+		selected: ChargeMode
+		instant_charging: {
+			current: number
+			limit: {
+				selected: string
+				soc: number
+				amount: number
+			}
+		}
+		pv_charging: {
+			feed_in_limit: boolean
+			min_current: number
+			max_soc: number
+			min_soc: number
+			min_soc_current: number
+		}
+		scheduled_charging: {
+			plans: { [key: string]: ChargeSchedule }
+		}
+	}
+	disable_after_unplug: boolean
+	load_default: boolean
+}
+export interface EvTemplate {
+	name: string
+	max_current_multi_phases: number
+	max_phases: number
+	phase_switch_pause: number
+	prevent_switch_stop: boolean
+	control_pilot_interruption: boolean
+	control_pilot_interruption_duration: number
+	average_consump: number
+	min_current: number
+	max_current_one_phase: number
+	battery_capacity: number
+	nominal_difference: number
+	request_interval_charging: number
+	request_interval_not_charging: number
+	request_only_plugged: boolean
+}
+export const chargePoints: { [key: number]: ChargePoint } = reactive({})
+export const vehicles: { [key: number]: Vehicle } = reactive({}) // the list of vehicles, key is the vehicle ID
+export const chargeTemplates: { [key: number]: ChargeTemplate } = reactive({})
+export const evTemplates: { [key: number]: EvTemplate } = reactive({})
+
+export function addChargePoint(chargePointIndex: number) {
+	if (!(chargePointIndex in chargePoints)) {
+		chargePoints[chargePointIndex] = new ChargePoint(chargePointIndex)
+		chargePoints[chargePointIndex].color =
+			'var(--color-cp' + Object.values(chargePoints).length + ')'
+		console.info('Added chargepoint ' + chargePointIndex)
+	} else {
+		console.info('Duplicate chargepoint message: ' + chargePointIndex)
+	}
+}
+export function resetChargePoints() {
+	Object.keys(chargePoints).forEach((key) => {
+		delete chargePoints[parseInt(key)]
+	})
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/processMessages.ts b/packages/modules/web_themes/colors/source/src/components/chargePointList/processMessages.ts
new file mode 100755
index 0000000000..06079377a3
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/processMessages.ts
@@ -0,0 +1,240 @@
+import { usageSummary, globalData } from '@/assets/js/model'
+import {
+	chargePoints,
+	vehicles,
+	chargeTemplates,
+	evTemplates,
+	Vehicle,
+	ChargeMode,
+	type ChargeTimePlan,
+} from './model'
+import type {
+	ConnectedVehicleConfig,
+	ChargeTemplate,
+	EvTemplate,
+} from './model'
+
+export function processChargepointMessages(topic: string, message: string) {
+	const index = getIndex(topic)
+	if (index && !(index in chargePoints)) {
+		console.warn('Invalid chargepoint id received: ' + index)
+		return
+	}
+	// General Chargepoint messages
+	if (topic == 'openWB/chargepoint/get/power') {
+		usageSummary.charging.power = +message
+	} else if (topic == 'openWB/chargepoint/get/daily_imported') {
+		usageSummary.charging.energy = +message / 1000
+	}
+	if (topic == 'openWB/chargepoint/get/daily_exported') {
+		globalData.cpDailyExported = +message
+	} else if (index) {
+		if (topic.match(/^openwb\/chargepoint\/[0-9]+\/config$/i)) {
+			if (chargePoints[index]) {
+				const configMessage = JSON.parse(message)
+				chargePoints[index].name = configMessage.name
+				chargePoints[index].icon = configMessage.name
+			} else {
+				console.warn('invalid chargepoint index: ' + index)
+			}
+		} else if (topic.match(/^openwb\/chargepoint\/[0-9]+\/get\/state_str$/i)) {
+			chargePoints[index].stateStr = JSON.parse(message)
+		} else if (topic.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_str$/i)) {
+			chargePoints[index].faultStr = JSON.parse(message)
+		} else if (
+			topic.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_state$/i)
+		) {
+			chargePoints[index].faultState = +message
+		} else if (topic.match(/^openWB\/chargepoint\/[0-9]+\/get\/power$/i)) {
+			chargePoints[index].power = +message
+		} else if (
+			topic.match(/^openWB\/chargepoint\/[0-9]+\/get\/daily_imported$/i)
+		) {
+			chargePoints[index].dailyYield = +message / 1000
+		} else if (topic.match(/^openwb\/chargepoint\/[0-9]+\/get\/plug_state$/i)) {
+			chargePoints[index].isPluggedIn = message == 'true'
+		} else if (
+			topic.match(/^openwb\/chargepoint\/[0-9]+\/get\/charge_state$/i)
+		) {
+			chargePoints[index].isCharging = message == 'true'
+		} else if (
+			topic.match(/^openwb\/chargepoint\/[0-9]+\/set\/manual_lock$/i)
+		) {
+			chargePoints[index].updateIsLocked(message == 'true')
+		} else if (topic.match(/^openwb\/chargepoint\/[0-9]+\/get\/enabled$/i)) {
+			chargePoints[index].isEnabled = message == '1'
+		} else if (
+			topic.match(/^openwb\/chargepoint\/[0-9]+\/get\/phases_in_use/i)
+		) {
+			chargePoints[index].phasesInUse = +message
+		} else if (topic.match(/^openwb\/chargepoint\/[0-9]+\/set\/current/i)) {
+			chargePoints[index].current = +message
+		} else if (topic.match(/^openwb\/chargepoint\/[0-9]+\/set\/log/i)) {
+			const obj = JSON.parse(message)
+			chargePoints[index].chargedSincePlugged = obj.imported_since_plugged
+		} else if (
+			topic.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/soc$/i)
+		) {
+			// console.warn('Ignored Connected Vehicle SOC ' + topic + ' : ' + message)
+			const obj = JSON.parse(message)
+			chargePoints[index].rangeCharged = obj.range_charged
+			chargePoints[index].rangeUnit = obj.range_unit
+		} else if (
+			topic.match(
+				/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/soc_config$/i,
+			)
+		) {
+			chargePoints[index].isSocManual = message == 'manual'
+		} else if (
+			topic.match(
+				/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/info$/i,
+			)
+		) {
+			const info = JSON.parse(message)
+			chargePoints[index].vehicleName = String(info.name)
+			chargePoints[index].updateConnectedVehicle(+info.id)
+		} else if (
+			topic.match(
+				/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/config$/i,
+			)
+		) {
+			const config: ConnectedVehicleConfig = JSON.parse(message)
+			switch (config.chargemode) {
+				case 'instant_charging':
+					chargePoints[index].updateChargeMode(ChargeMode.instant_charging)
+					break
+				case 'pv_charging':
+					chargePoints[index].updateChargeMode(ChargeMode.pv_charging)
+					break
+				case 'scheduled_charging':
+					chargePoints[index].updateChargeMode(ChargeMode.scheduled_charging)
+					break
+				case 'standby':
+					chargePoints[index].updateChargeMode(ChargeMode.standby)
+					break
+				case 'stop':
+					chargePoints[index].updateChargeMode(ChargeMode.stop)
+					break
+			}
+			chargePoints[index].chargeTemplate = config.charge_template
+			chargePoints[index].averageConsumption = config.average_consumption
+		} else {
+			// console.warn('Ignored chargepoint message: ' + topic)
+		}
+	} else {
+		// console.warn('Ignored chargepoint message: ' + topic)
+	}
+}
+export function processVehicleMessages(topic: string, message: string) {
+	const index = getIndex(topic)
+	if (index != undefined) {
+		if (!(index in vehicles)) {
+			const v = new Vehicle(index)
+			vehicles[index] = v
+			console.info('New vehicle created: ' + index)
+		}
+		if (topic.match(/^openwb\/vehicle\/[0-9]+\/name$/i)) {
+			// set car Name for charge point
+			Object.values(chargePoints).forEach((cp) => {
+				if (cp.connectedVehicle == index) {
+					cp.vehicleName = JSON.parse(message)
+				}
+			})
+			vehicles[index].name = JSON.parse(message)
+		} else if (topic.match(/^openwb\/vehicle\/[0-9]+\/get\/soc$/i)) {
+			// set soc for cp
+			Object.values(chargePoints).forEach((cp) => {
+				if (cp.connectedVehicle == index) {
+					cp.soc = JSON.parse(message)
+				}
+			})
+		} else if (topic.match(/^openwb\/vehicle\/[0-9]+\/get\/range$/i)) {
+			vehicles[index].range = +message
+		} else if (topic.match(/^openwb\/vehicle\/[0-9]+\/charge_template$/i)) {
+			vehicles[index].updateChargeTemplateId(+message)
+		} else if (topic.match(/^openwb\/vehicle\/[0-9]+\/ev_template$/i)) {
+			vehicles[index].updateEvTemplateId(+message)
+		} else {
+			// console.warn('Ignored vehicle message [' + topic + ']=' + message)
+		}
+	}
+}
+export function processVehicleTemplateMessages(topic: string, message: string) {
+	if (topic.match(/^openwb\/vehicle\/template\/charge_template\/[0-9]+$/i)) {
+		const match = topic.match(/[0-9]+$/i)
+		if (match) {
+			const index = +match[0]
+			const template: ChargeTemplate = JSON.parse(message) as ChargeTemplate
+			if (!template.chargemode.scheduled_charging.plans) {
+				template.chargemode.scheduled_charging.plans = {}
+			}
+			if (!template.time_charging.plans) {
+				template.time_charging.plans = {}
+			}
+			chargeTemplates[index] = template
+			updateCpFromChargeTemplate(index, template)
+		}
+	} else if (
+		topic.match(
+			/^openwb\/vehicle\/template\/charge_template\/[0-9]+\/time_charging\/plans\/[0-9]+$/i,
+		)
+	) {
+		const tidMatch = topic.match(/(?:\/)([0-9]+)(?:\/)/g)
+		const pidMatch = topic.match(/[0-9]+$/i)
+		if (tidMatch && pidMatch) {
+			const tId = +tidMatch[0].replace(/[^0-9]+/g, '')
+			const pId = +pidMatch[0]
+			const plan: ChargeTimePlan = JSON.parse(message)
+			chargeTemplates[tId].time_charging.plans[pId] = plan
+		}
+	} else if (topic.match(/^openwb\/vehicle\/template\/ev_template\/[0-9]+$/i)) {
+		const match = topic.match(/[0-9]+$/i)
+		if (match) {
+			const index = +match[0]
+			const template: EvTemplate = JSON.parse(message) as EvTemplate
+			evTemplates[index] = template
+			// updateCpFromChargeTemplate(index, template)
+		}
+	} else {
+		// console.warn('Ignored VEHICLE TEMPLATE message [' + topic + ']=' + message)
+	}
+}
+function updateCpFromChargeTemplate(index: number, template: ChargeTemplate) {
+	Object.values(chargePoints).forEach((cp) => {
+		if (cp.chargeTemplate == index) {
+			cp.updateCpPriority(template.prio)
+			// cp.updateChargeMode(template.chargemode.selected)
+			cp.updateInstantChargeLimitMode(
+				template.chargemode.instant_charging.limit.selected,
+			)
+			cp.updateInstantTargetCurrent(
+				template.chargemode.instant_charging.current,
+			)
+			cp.updateInstantTargetSoc(template.chargemode.instant_charging.limit.soc)
+			cp.updateInstantMaxEnergy(
+				template.chargemode.instant_charging.limit.amount,
+			)
+			cp.updateScheduledCharging(template.time_charging.active)
+			cp.updatePvFeedInLimit(template.chargemode.pv_charging.feed_in_limit)
+			cp.updatePvMinCurrent(template.chargemode.pv_charging.min_current)
+			cp.updatePvMaxSoc(template.chargemode.pv_charging.max_soc)
+			cp.updatePvMinSoc(template.chargemode.pv_charging.min_soc)
+			cp.updatePvMinSocCurrent(template.chargemode.pv_charging.min_soc_current)
+		}
+	})
+}
+
+function getIndex(topic: string): number | undefined {
+	let index = 0
+	try {
+		const matches = topic.match(/(?:\/)([0-9]+)(?=\/)/g)
+		if (matches) {
+			index = +matches[0].replace(/[^0-9]+/g, '')
+			return index
+		} else {
+			return undefined
+		}
+	} catch (e) {
+		console.warn('Parser error in getIndex for topic ' + topic)
+	}
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/energyMeter/EMBarGraph.vue b/packages/modules/web_themes/colors/source/src/components/energyMeter/EMBarGraph.vue
new file mode 100755
index 0000000000..43e6854ca6
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/energyMeter/EMBarGraph.vue
@@ -0,0 +1,95 @@
+<template>
+	<g id="emBargraph">
+		<!-- Bars -->
+		<g v-for="(item, i) in props.plotdata" :key="i">
+			<EmBar
+				:item="item"
+				:x-scale="props.xScale"
+				:y-scale="props.yScale"
+				:margin="props.margin"
+				:height="props.height"
+				:barcount="props.plotdata.length"
+				:aut-text="autTxt(item)"
+				:autarchy="autPct(item)"
+			/>
+		</g>
+		<animateTransform
+			attribute-name="transform"
+			type="scale"
+			from="1 0"
+			to="1 1"
+			begin="0s"
+			dur="2s"
+		/>
+	</g>
+</template>
+
+<script setup lang="ts">
+import * as d3 from 'd3'
+import type { MarginType, PowerItem } from '@/assets/js/types'
+import EmBar from './EmBar.vue'
+import { sourceSummary, historicSummary, usageSummary } from '@/assets/js/model'
+import { graphData } from '../powerGraph/model'
+
+const props = defineProps<{
+	plotdata: PowerItem[]
+	xScale: d3.ScaleBand<string>
+	yScale: d3.ScaleLinear<number, number, never>
+	margin: MarginType
+	height: number
+}>()
+
+// computed: {
+function autPct(item: PowerItem) {
+	if (item.name == 'PV') {
+		const src =
+			graphData.graphMode == 'live' || graphData.graphMode == 'day'
+				? sourceSummary
+				: historicSummary
+		const usg =
+			graphData.graphMode == 'live' || graphData.graphMode == 'day'
+				? usageSummary
+				: historicSummary
+		const exportedEnergy = usg.evuOut.energy
+		const generatedEnergy = src.pv.energy
+		return Math.round(
+			((generatedEnergy - exportedEnergy) / generatedEnergy) * 100,
+		)
+	} else if (item.name == 'Netz') {
+		const src =
+			graphData.graphMode == 'live' || graphData.graphMode == 'day'
+				? sourceSummary
+				: historicSummary
+		const usg =
+			graphData.graphMode == 'live' || graphData.graphMode == 'day'
+				? usageSummary
+				: historicSummary
+		const exportedEnergy = usg.evuOut.energy
+		const importedEnergy = src.evuIn.energy
+		const generatedEnergy = src.pv.energy
+		const batEnergy = src.batOut.energy
+		const storedEnergy = usg.batIn.energy
+		return Math.round(
+			((generatedEnergy + batEnergy - exportedEnergy - storedEnergy) /
+				(generatedEnergy +
+					batEnergy +
+					importedEnergy -
+					exportedEnergy -
+					storedEnergy)) *
+				100,
+		)
+	} else {
+		return item.pvPercentage
+	}
+}
+
+function autTxt(item: PowerItem) {
+	if (item.name == 'PV') {
+		return 'Eigen'
+	} else {
+		return 'Aut'
+	}
+}
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/energyMeter/EMLabels.vue b/packages/modules/web_themes/colors/source/src/components/energyMeter/EMLabels.vue
new file mode 100755
index 0000000000..bdb143bf9a
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/energyMeter/EMLabels.vue
@@ -0,0 +1,86 @@
+<template>
+	<g id="emBarLabels">
+		<!-- Bars -->
+		<g v-for="(item, i) in props.plotdata" :key="i">
+			<EmLabel
+				:item="item"
+				:x-scale="props.xScale"
+				:y-scale="props.yScale"
+				:margin="props.margin"
+				:height="props.height"
+				:barcount="props.plotdata.length"
+				:aut-text="autTxt(item)"
+				:autarchy="autPct(item)"
+			/>
+		</g>
+	</g>
+</template>
+
+<script setup lang="ts">
+import * as d3 from 'd3'
+import type { PowerItem, MarginType } from '@/assets/js/types'
+import { graphData } from '../powerGraph/model'
+import { historicSummary, sourceSummary, usageSummary } from '@/assets/js/model'
+import EmLabel from './EmLabel.vue'
+const props = defineProps<{
+	plotdata: PowerItem[]
+	xScale: d3.ScaleBand<string>
+	yScale: d3.ScaleLinear<number, number>
+	height: number
+	margin: MarginType
+}>()
+// computed
+// methods
+function autPct(item: PowerItem) {
+	if (item.name == 'PV') {
+		const src =
+			graphData.graphMode == 'live' || graphData.graphMode == 'day'
+				? sourceSummary
+				: historicSummary
+		const usg =
+			graphData.graphMode == 'live' || graphData.graphMode == 'day'
+				? usageSummary
+				: historicSummary
+		const exportedEnergy = usg.evuOut.energy
+		const generatedEnergy = src.pv.energy
+		return Math.round(
+			((generatedEnergy - exportedEnergy) / generatedEnergy) * 100,
+		)
+	} else if (item.name == 'Netz') {
+		const src =
+			graphData.graphMode == 'live' || graphData.graphMode == 'day'
+				? sourceSummary
+				: historicSummary
+		const usg =
+			graphData.graphMode == 'live' || graphData.graphMode == 'day'
+				? usageSummary
+				: historicSummary
+		const exportedEnergy = usg.evuOut.energy
+		const importedEnergy = src.evuIn.energy
+		const generatedEnergy = src.pv.energy
+		const batEnergy = src.batOut.energy
+		const storedEnergy = usg.batIn.energy
+		return Math.round(
+			((generatedEnergy + batEnergy - exportedEnergy - storedEnergy) /
+				(generatedEnergy +
+					batEnergy +
+					importedEnergy -
+					exportedEnergy -
+					storedEnergy)) *
+				100,
+		)
+	} else {
+		return item.pvPercentage
+	}
+}
+
+function autTxt(item: PowerItem) {
+	if (item.name == 'PV') {
+		return 'Eigen'
+	} else {
+		return 'Aut'
+	}
+}
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/energyMeter/EMMenu.vue b/packages/modules/web_themes/colors/source/src/components/energyMeter/EMMenu.vue
new file mode 100755
index 0000000000..816a524c36
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/energyMeter/EMMenu.vue
@@ -0,0 +1,32 @@
+<template>
+  <div>
+    <button class="btn btn-outline-secondary btn-sm" id="calendarButton" @click="$emit('toggleMonthlyView')">
+      <span class="fa fa-calendar-alt px-0"></span>
+    </button>
+    <button
+      class="btn btn-outline-secondary btn-sm"
+      id="energyLeftButton"
+      :class="{ disabled: !showLeftButton }"
+      @click="$emit('shiftLeft')"
+    >
+      <span class="fa fa-chevron-circle-left px-0"></span>
+    </button>
+    <button
+      class="btn btn-outline-secondary btn-sm"
+      id="energyRightButton"
+      :class="{ disabled: !showRightButton }"
+      @click="$emit('shiftRight')"
+    >
+      <span class="fa fa-chevron-circle-right px-0"></span>
+    </button>
+  </div>
+</template>
+
+<script setup lang="ts">
+const props = defineProps<{
+  showLeftButton: boolean
+  showRightButton: boolean
+}>()
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/energyMeter/EMYAxis.vue b/packages/modules/web_themes/colors/source/src/components/energyMeter/EMYAxis.vue
new file mode 100755
index 0000000000..78b409a93d
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/energyMeter/EMYAxis.vue
@@ -0,0 +1,48 @@
+<template>
+	<g id="emYAxis" class="axis" :origin="drawYAxis" />
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import * as d3 from 'd3'
+import { globalConfig } from '@/assets/js/themeConfig'
+const props = defineProps<{
+	yScale: d3.AxisScale<number>
+	width: number
+	fontsize: number
+}>()
+
+// computed
+const yAxisGenerator = computed(() => {
+	return d3
+		.axisLeft<number>(props.yScale)
+		.tickFormat((d) => (d > 0 ? d.toString() : ''))
+		.ticks(6)
+		.tickSizeInner(-props.width)
+})
+const drawYAxis = computed(() => {
+	const yAxis = d3.select<d3.AxisContainerElement, number>('g#emYAxis')
+	yAxis.attr('class', 'axis').call(yAxisGenerator.value)
+
+	yAxis
+		.append('text')
+		.attr('y', 6)
+		.attr('dy', '0.71em')
+		.attr('text-anchor', 'end')
+		.text('energy')
+
+	yAxis.selectAll('.tick').attr('font-size', props.fontsize)
+	if (globalConfig.showGrid) {
+		yAxis
+			.selectAll('.tick line')
+			.attr('stroke', 'var(--color-grid)')
+			.attr('stroke-width', '0.5')
+	} else {
+		yAxis.selectAll('.tick line').attr('stroke', 'var(--color-bg)')
+	}
+	yAxis.select('.domain').attr('stroke', 'var(--color-bg)')
+	return 'emYAxis.vue'
+})
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/energyMeter/EmBar.vue b/packages/modules/web_themes/colors/source/src/components/energyMeter/EmBar.vue
new file mode 100755
index 0000000000..47b8145a3e
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/energyMeter/EmBar.vue
@@ -0,0 +1,76 @@
+<template>
+	<g :id="'bar-' + props.item.name" transform="scale(1,-1) translate (0,-445)">
+		<!-- Main bar -->
+		<rect
+			class="bar"
+			:x="props.xScale(item.name)"
+			y="0"
+			:width="props.xScale.bandwidth()"
+			:height="barheight"
+			:fill="item.color"
+		/>
+		<!-- Pv fraction inner bar -->
+		<rect
+			class="bar"
+			:x="(props.xScale(item.name) as number) + props.xScale.bandwidth() / 6"
+			y="0"
+			:width="(props.xScale.bandwidth() * 2) / 3"
+			:height="pvBarheight"
+			fill="var(--color-pv)"
+			fill-opacity="66%"
+		/>
+		<!-- Battery fraction inner bar  -->
+		<rect
+			class="bar"
+			:x="(props.xScale(item.name) as number) + props.xScale.bandwidth() / 6"
+			y="0"
+			:width="(props.xScale.bandwidth() * 2) / 3"
+			:height="batBarheight"
+			fill="var(--color-pv)"
+			fill-opacity="66%"
+		/>
+	</g>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import * as d3 from 'd3'
+import type { MarginType, PowerItem } from '@/assets/js/types'
+
+const props = defineProps<{
+	item: PowerItem
+	xScale: d3.ScaleBand<string>
+	yScale: d3.ScaleLinear<number, number, never>
+	margin: MarginType
+	height: number
+	barcount: number
+	autarchy?: number
+	autText?: string
+}>()
+const barheight = computed(
+	() =>
+		props.height -
+		props.yScale(props.item.energy) -
+		props.margin.top -
+		props.margin.bottom,
+)
+
+const pvBarheight = computed(() => {
+	return props.item.energyPv > 0
+		? props.height -
+				props.yScale(props.item.energyPv) -
+				props.margin.top -
+				props.margin.bottom
+		: 0
+})
+const batBarheight = computed(() => {
+	return props.item.energyPv > 0
+		? props.height -
+				props.yScale(props.item.energyBat) -
+				props.margin.top -
+				props.margin.bottom
+		: 0
+})
+</script>
+
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/energyMeter/EmLabel.vue b/packages/modules/web_themes/colors/source/src/components/energyMeter/EmLabel.vue
new file mode 100755
index 0000000000..411df40b4c
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/energyMeter/EmLabel.vue
@@ -0,0 +1,124 @@
+<template>
+	<g :id="'barlabel-' + props.item.name">
+		<!-- Energy -->
+		<text
+			:x="(props.xScale(item.name) as number) + props.xScale.bandwidth() / 2"
+			:y="labelY"
+			:font-size="labelfontsize"
+			text-anchor="middle"
+			fill="var(--color-menu)"
+		>
+			{{
+				formatWattH(
+					item.energy * 1000,
+					globalConfig.decimalPlaces,
+					graphData.graphMode == 'year',
+				)
+			}}
+		</text>
+		<!-- Autarchy / Self consumption -->
+		<text
+			:x="(props.xScale(item.name) as number) + props.xScale.bandwidth() / 2"
+			:y="props.yScale(item.energy) - 10"
+			:font-size="labelfontsize - 2"
+			text-anchor="middle"
+			:fill="subColor()"
+		>
+			{{ subString() }}
+		</text>
+		<!-- Name-Icon -->
+		<text
+			:x="(props.xScale(item.name) as number) + props.xScale.bandwidth() / 2"
+			:y="props.height - props.margin.bottom - 5"
+			:font-size="labelfontsize"
+			text-anchor="middle"
+			:fill="item.color"
+			:class="item.icon.length <= 2 ? 'fas' : ''"
+		>
+			{{ truncateCategory(item.name, item.icon) }}
+		</text>
+	</g>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import * as d3 from 'd3'
+import type { MarginType, PowerItem } from '@/assets/js/types'
+import { globalConfig } from '@/assets/js/themeConfig'
+import { formatWattH } from '@/assets/js/helpers'
+import { graphData } from '../powerGraph/model'
+
+const props = defineProps<{
+	item: PowerItem
+	xScale: d3.ScaleBand<string>
+	yScale: d3.ScaleLinear<number, number, never>
+	margin: MarginType
+	height: number
+	barcount: number
+	autarchy?: number
+	autText?: string
+}>()
+const labelY = computed(() =>
+	props.autarchy
+		? props.yScale(props.item.energy) - 25
+		: props.yScale(props.item.energy) - 10,
+)
+
+const labelfontsize = computed(() => {
+	let fontsize = 16
+	let xCount = props.barcount
+	if (xCount <= 5) {
+		fontsize = 16
+	} else if (xCount == 6) {
+		fontsize = 14
+	} else if (xCount > 6 && xCount <= 8) {
+		fontsize = 13
+	} else if (xCount == 9) {
+		fontsize = 11
+	} else if (xCount == 10) {
+		fontsize = 10
+	} else {
+		fontsize = 9
+	}
+	return fontsize
+})
+const maxTextLength = computed(() => {
+	let textLength = 12
+	let xCount = props.barcount
+	if (xCount <= 5) {
+		textLength = 12
+	} else if (xCount == 6) {
+		textLength = 11
+	} else if (xCount > 6 && xCount <= 8) {
+		textLength = 8
+	} else if (xCount == 9) {
+		textLength = 8
+	} else if (xCount == 10) {
+		textLength = 7
+	} else {
+		textLength = 6
+	}
+	return textLength
+})
+function truncateCategory(id: string, name: string) {
+	if (name.length > maxTextLength.value) {
+		return name.substring(0, maxTextLength.value) + '.'
+	} else {
+		return name
+	}
+}
+function subString(): string {
+	if (props.autarchy) {
+		return (
+			props.autText + ': ' + props.autarchy.toLocaleString(undefined) + ' %'
+		)
+	} else {
+		return ''
+	}
+}
+function subColor(): string {
+	return 'var(--color-pv)'
+}
+</script>
+
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/energyMeter/EnergyMeter.vue b/packages/modules/web_themes/colors/source/src/components/energyMeter/EnergyMeter.vue
new file mode 100755
index 0000000000..89ef4289bd
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/energyMeter/EnergyMeter.vue
@@ -0,0 +1,124 @@
+<template>
+	<WBWidget :full-width="true">
+		<template #title>
+			{{ heading }}
+		</template>
+		<template #buttons>
+			<PgSelector
+				widgetid="graphsettings"
+				:show-left-button="true"
+				:show-right-button="true"
+				@shift-left="shiftLeft"
+				@shift-right="shiftRight"
+				@shift-up="shiftUp"
+				@shift-down="shiftDown"
+			/>
+		</template>
+		<figure id="energymeter" class="p-0 m-0">
+			<svg viewBox="0 0 500 500">
+				<g :transform="'translate(' + margin.left + ',' + margin.top + ')'">
+					<!--  Bar Graph -->
+					<EMBarGraph
+						:plotdata="plotdata"
+						:x-scale="xScale"
+						:y-scale="yScale"
+						:height="height"
+						:margin="margin"
+					/>
+					<!-- Y Axis -->
+					<EMYAxis
+						:y-scale="yScale"
+						:width="width"
+						:fontsize="axisFontsize"
+						:config="globalConfig"
+					/>
+					<text
+						:x="-margin.left"
+						y="-15"
+						fill="var(--color-axis)"
+						:font-size="axisFontsize"
+					>
+						{{ graphData.graphMode == 'year' ? 'MWh' : 'kWh' }}
+					</text>
+					<EMLabels
+						:plotdata="plotdata"
+						:x-scale="xScale"
+						:y-scale="yScale"
+						:height="height"
+						:margin="margin"
+						:config="globalConfig"
+					/>
+				</g>
+			</svg>
+		</figure>
+	</WBWidget>
+</template>
+<script setup lang="ts">
+import * as d3 from 'd3'
+import type { PowerItem } from '@/assets/js/types'
+import { sourceSummary, historicSummary } from '@/assets/js/model'
+import EMBarGraph from './EMBarGraph.vue'
+import EMYAxis from './EMYAxis.vue'
+import EMLabels from './EMLabels.vue'
+import WBWidget from '../shared/WBWidget.vue'
+import PgSelector from '../powerGraph/PgSelector.vue'
+import { globalConfig, setInitializeEnergyGraph } from '@/assets/js/themeConfig'
+import {
+	shiftLeft,
+	shiftRight,
+	shiftUp,
+	shiftDown,
+} from '@/components/powerGraph/model'
+import { graphData } from '@/components/powerGraph/model'
+import { computed } from 'vue'
+// props
+const props = defineProps<{
+	usageDetails: PowerItem[]
+}>()
+//state
+const width = 500
+const height = 500
+const margin = {
+	top: 25,
+	bottom: 30,
+	left: 25,
+	right: 0,
+}
+const axisFontsize = 12
+// computed
+const plotdata = computed(() => {
+	let sources = Object.values(sourceSummary)
+	let usage = props.usageDetails
+	let historic = Object.values(historicSummary)
+	let result: PowerItem[] = []
+	setInitializeEnergyGraph(true)
+	switch (graphData.graphMode) {
+		default:
+		case 'live':
+		case 'today':
+			result = sources.concat(usage).filter((row) => row.energy > 0)
+			break
+		case 'day':
+		case 'month':
+		case 'year':
+			result = historic.filter((row) => row.energy > 0)
+	}
+	return result
+})
+const xScale = computed(() => {
+	return d3
+		.scaleBand()
+		.range([0, width - margin.left - margin.right])
+		.domain(plotdata.value.map((d) => d.name))
+		.padding(0.4)
+})
+const yScale = computed(() => {
+	return d3
+		.scaleLinear()
+		.range([height - margin.bottom - margin.top, 15])
+		.domain([0, d3.max(plotdata.value, (d: PowerItem) => d.energy) as number])
+})
+const heading = 'Energie'
+</script>
+
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/mqttViewer/MQTTViewer.vue b/packages/modules/web_themes/colors/source/src/components/mqttViewer/MQTTViewer.vue
new file mode 100755
index 0000000000..d624c84420
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/mqttViewer/MQTTViewer.vue
@@ -0,0 +1,64 @@
+<script setup lang="ts">
+import { onMounted, ref, computed } from 'vue'
+import { msgInit } from './processMessages'
+import { topicForest } from './model'
+import Node from './MqttNode.vue'
+
+onMounted(() => {
+	msgInit()
+})
+
+const expandAll = ref(false)
+function toggle() {
+	expandAll.value = !expandAll.value
+}
+const isActive = computed(() => {
+	if (expandAll.value) {
+		return 'active'
+	} else {
+		return ''
+	}
+})
+</script>
+
+<template>
+	<div class="mqviewer">
+		<div class="row pt-2">
+			<div class="col">
+				<h3 class="mqtitle ps-2">MQTT Message Viewer</h3>
+				<hr />
+				<button
+					class="btn btn-small btn-outline-primary ms-2"
+					:class="isActive"
+					@click="toggle"
+				>
+					Expand All
+				</button>
+				<hr />
+			</div>
+		</div>
+		<div v-if="topicForest[0]">
+			<Node
+				v-for="(node, i) in topicForest[0].children.sort((n1, n2) =>
+					n1.name < n2.name ? -1 : 1,
+				)"
+				:key="i"
+				:node="node"
+				:level="1"
+				:hide="true"
+				:expand-all="expandAll"
+			/>
+		</div>
+	</div>
+</template>
+
+<style scoped>
+.mqviewer {
+	background-color: white;
+	color: black;
+}
+
+.mqtitle {
+	color: black;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/mqttViewer/MqttNode.vue b/packages/modules/web_themes/colors/source/src/components/mqttViewer/MqttNode.vue
new file mode 100755
index 0000000000..9678579258
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/mqttViewer/MqttNode.vue
@@ -0,0 +1,78 @@
+<template>
+	<div class="row p-0 mb-0 mx-0">
+		<div class="col-md m-0 px-2 node" :style="leafStyle" @click="toggle">
+			<p class="py-2 m-0">{{ displaytext }}{{ counter }}</p>
+			<hr v-if="showContent" />
+			<p v-if="showContent" style="background-color: white" class="p-2">
+				<code>{{ props.node.lastValue }}</code>
+			</p>
+		</div>
+		<div
+			v-if="(expanded || props.expandAll) && childCount > 0"
+			class="col-md-9 m-0 p-0 ps-2"
+		>
+			<div class="container-fluid m-0 p-0">
+				<MqttNode
+					v-for="(child, i) in items"
+					:key="i"
+					:level="props.level + 1"
+					:node="child"
+					:hide="true"
+					:expand-all="props.expandAll"
+				/>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed, ref } from 'vue'
+import type { Node } from './model'
+const props = defineProps<{
+	node: Node
+	level: number
+	hide: boolean
+	expandAll: boolean
+}>()
+let expanded = ref(!props.hide)
+let showContent = ref(false)
+const displaytext = computed(() => {
+	return props.node.name
+})
+const items = computed(() => {
+	return [...props.node.children].sort((n1, n2) => (n1.name < n2.name ? -1 : 1))
+})
+const counter = computed(() => {
+	if (props.node.count > 0) {
+		return '(' + props.node.count + ')'
+	} else {
+		return ''
+	}
+})
+const childCount = computed(() => {
+	return props.node.children.length
+})
+const leafStyle = computed(() => {
+	if (props.node.lastValue != '') {
+		return { 'background-color': 'lightgoldenrodyellow' }
+	} else {
+		return { 'background-color': 'lightsteelblue' }
+	}
+})
+function toggle() {
+	if (childCount.value > 0) {
+		expanded.value = !expanded.value
+	}
+	if (props.node.lastValue != '') {
+		showContent.value = !showContent.value
+	}
+}
+</script>
+
+<style scoped>
+.node {
+	font-size: 1rem;
+	color: black;
+	border: 1px solid white;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/mqttViewer/model.ts b/packages/modules/web_themes/colors/source/src/components/mqttViewer/model.ts
new file mode 100755
index 0000000000..b7f5819942
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/mqttViewer/model.ts
@@ -0,0 +1,66 @@
+// this is our model. It contains all values required by the different parts of the front end
+// it is constantly updated when new MQTT events come in
+
+import { reactive } from 'vue'
+
+export const topicForest: Node[] = reactive([])
+export class Node {
+	name: string
+	children: Node[]
+	count: number
+	lastValue: string
+	constructor(
+		name: string,
+		children: Node[],
+		count: number,
+		lastValue: string,
+	) {
+		this.name = name
+		this.children = children
+		this.count = count
+		this.lastValue = lastValue
+	}
+	insert(topic: string[], message: string) {
+		if (topic.length) {
+			const subtopic = topic.splice(1)
+			if (topic[0] == this.name) {
+				if (subtopic.length) {
+					// no leaf node
+					let found = false
+					this.children.forEach((child) => {
+						if (child.name == subtopic[0]) {
+							child.insert(subtopic, message)
+							found = true
+						}
+					})
+					if (!found) {
+						const n = new Node(subtopic[0], [], 0, '')
+						n.insert(subtopic, message)
+						this.children.push(n)
+					}
+				} else {
+					// this is a leaf
+					this.count = this.count + 1
+					this.lastValue = message
+				}
+			}
+		}
+	}
+}
+export function add(topic: string, message: string) {
+	const elements = topic.split('/')
+	if (elements.length) {
+		let found = false
+		topicForest.forEach((tree) => {
+			if (tree.name == elements[0]) {
+				tree.insert(elements, message)
+				found = true
+			}
+		})
+		if (!found) {
+			const n = new Node(elements[0], [], 0, '')
+			topicForest.push(n)
+			n.insert(elements, message)
+		}
+	}
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/mqttViewer/mqttClient.ts b/packages/modules/web_themes/colors/source/src/components/mqttViewer/mqttClient.ts
new file mode 100755
index 0000000000..99331b6a7e
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/mqttViewer/mqttClient.ts
@@ -0,0 +1,88 @@
+// functions to interact with MQTT
+import {
+	MqttClient,
+	connect,
+	type OnMessageCallback,
+	type MqttProtocol,
+} from 'mqtt'
+import { type QoS } from 'mqtt-packet'
+
+const defaultQoS: QoS = 0
+const mqttConnection = {
+	host: location.hostname,
+	port: location.protocol == 'https:' ? 443 : 80,
+	endpoint: '/ws',
+	protocol: (location.protocol == 'https:' ? 'wss' : 'ws') as MqttProtocol,
+	clean: true,
+	connectTimeout: 4000,
+	reconnectPeriod: 4000,
+	clientId: Math.random()
+		.toString(36)
+		.replace(/[^a-z]+/g, '')
+		.substring(0, 6),
+	username: 'openWB',
+	password: 'openWB',
+}
+const subscription = {
+	topic: '',
+	qos: defaultQoS,
+}
+let client: MqttClient
+
+//export function MqttConnect(callback: (t: string, m: string) => void, topiclist: string[]) {
+const { host, port, endpoint, ...options } = mqttConnection
+const connectUrl = `${options.protocol}://${host}:${port}${endpoint}`
+try {
+	client = connect(connectUrl, options)
+	client.on('connect', () => {
+		console.info('MQTT connection successful')
+		// topiclist.forEach((topic) => {
+		//  subscribe(topic);
+		// });
+	})
+	client.on('error', (error) => {
+		console.error('MQTT connection failed: ', error)
+	})
+} catch (error) {
+	console.error('MQTT connect error: ', error)
+}
+
+//}
+export function mqttRegister(callback: OnMessageCallback) {
+	if (client) {
+		client.on('message', callback)
+	} else {
+		console.error('MqttRegister: MQTT client not available')
+	}
+}
+export function mqttSubscribe(toTopic: string) {
+	subscription.topic = toTopic
+	const { topic, qos } = subscription
+	client.subscribe(topic, { qos }, (error) => {
+		if (error) {
+			console.error('MQTT Subscription error: ' + error)
+			return
+		}
+		console.info('MQTT Subscription successful: ' + toTopic)
+	})
+}
+export function mqttUnsubscribe(fromTopic: string) {
+	subscription.topic = fromTopic
+	const { topic } = subscription
+	client.unsubscribe(topic, (error: Error | undefined) => {
+		if (error) {
+			console.error('MQTT Unsubscribe from ' + fromTopic + ' failed: ' + error)
+			return
+		}
+		console.info('MQTT unsubscribe successful: ' + topic)
+	})
+}
+export function mqttPublish(topic: string, message: string) {
+	const qos: QoS = 0
+	client.publish(topic, message, { qos }, (error) => {
+		if (error) {
+			console.warn('MQTT publish error: ', error)
+		}
+		console.info('Message sent: [' + topic + '](' + message + ')')
+	})
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/mqttViewer/processMessages.ts b/packages/modules/web_themes/colors/source/src/components/mqttViewer/processMessages.ts
new file mode 100755
index 0000000000..a32d4e5fce
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/mqttViewer/processMessages.ts
@@ -0,0 +1,14 @@
+import { mqttRegister, mqttSubscribe } from './mqttClient'
+import { add } from './model'
+
+const topicsToSubscribe = ['openWB/#']
+
+export function msgInit() {
+	mqttRegister(processMqttMessage)
+	topicsToSubscribe.forEach((topic) => {
+		mqttSubscribe(topic)
+	})
+}
+function processMqttMessage(topic: string, message: Buffer) {
+	add(topic, message.toString())
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/PGMenu.vue b/packages/modules/web_themes/colors/source/src/components/powerGraph/PGMenu.vue
new file mode 100755
index 0000000000..0360439798
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/PGMenu.vue
@@ -0,0 +1,160 @@
+<template>
+  <div class="d-flex flex-column align-items-end graphsettings px-2 mb-2">
+    <div class="d-flex justify-content-end align-items-center">
+    <RadioBarInput id="pgm" :options="graphmodes.map((v, i) => {
+      return {
+        text: modenames[i],
+        value: v,
+        color: 'var(--color-menu)',
+        active: (v == graphData.graphMode)
+      }
+    })" v-model="gmode">
+    </RadioBarInput>
+    <button class="btn btn-sm align-self-end float-end m-1 mx-2 p-2 closebutton" data-bs-toggle="collapse"
+          :data-bs-target="'#' + props.widgetid">
+          <span class="fa-solid fa-xl ps-1 fa-circle-check"></span>
+        </button>
+  </div>
+    <div class="d-flex justify-content-between">
+      
+      <div class="d-flex justify-content-center align-items-center mt-1">
+        <button class="btn btn-outline-secondary btn-lg arrowButton" :class="{ disabled: !props.showLeftButton }"
+          id="graphLeftButton" @click="$emit('shiftLeft')">
+          <span class="fa-solid fa-xl fa-chevron-circle-left px-0"></span>
+        </button>
+        <DateInput :model-value="graphdate" :mode="graphData.graphMode" @update:modelValue="setDate"></DateInput>
+        <button class="btn btn-outline-secondary btn-lg arrowButton" :class="{ disabled: !props.showRightButton }"
+          id="graphRightButton" @click="$emit('shiftRight')">
+          <span class="fa-solid fa-xl fa-chevron-circle-right px-0"></span>
+        </button>
+      </div>
+      <div class="d-flex flex-column">
+       
+        
+      </div>
+    </div>
+  
+  </div>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue';
+import DateInput from '../shared/DateInput.vue'
+import RadioBarInput from '../shared/RadioBarInput.vue';
+import { dayGraph, graphData, initGraph, setGraphDate } from './model'
+import { monthGraph } from './model';
+import RadioBarValues from '@/components/shared/RadioBarInput.vue'
+
+const props = defineProps<{
+  showLeftButton: boolean
+  showRightButton: boolean
+  widgetid: string
+}>()
+const graphmodes = ['live', 'today', 'day', 'month', 'year']
+const modenames = ['Live', 'Heute', 'Tag', 'Monat', 'Jahr']
+const gmode = computed({
+  get() {
+    return graphData.graphMode
+  },
+  set(value: string) {
+    switch (value) {
+      case 'day': dayButtonClicked()
+        break
+      case 'today': todayButtonClicked()
+        break
+      case 'live': liveButtonClicked()
+        break
+      case 'month': monthButtonClicked()
+        break
+      case 'year': yearButtonClicked()
+    }
+  }
+})
+
+const graphdate = computed(() => {
+  switch (graphData.graphMode) {
+    case 'live':
+    case 'today':
+      return dayGraph.getDate()
+    case 'month':
+      return monthGraph.getDate()
+    default: return dayGraph.getDate()
+  }
+})
+function setDate(v: Date) {
+  setGraphDate(v)
+}
+function buttonStyle(kind: string) {
+  if (graphData.graphMode == kind) {
+    return {
+      'background-color': 'var(--color-menu)',
+      'color': 'var(--color-bg)'
+    }
+  } else {
+    return {
+      'background-color': 'var(--color-bg)',
+      'color': 'var(--color-menu)',
+    }
+  }
+}
+function liveButtonClicked() {
+  if (graphData.graphMode != 'live') {
+    graphData.graphMode = 'live'
+    initGraph()
+  }
+}
+
+function dayButtonClicked() {
+  if (graphData.graphMode != 'day' && graphData.graphMode != 'today') {
+    graphData.graphMode = 'day'
+    initGraph()
+  }
+}
+function todayButtonClicked() {
+  if (graphData.graphMode != 'today') {
+    graphData.graphMode = 'today'
+    setGraphDate(new Date())
+  }
+}
+function monthButtonClicked() {
+  if (graphData.graphMode != 'month') {
+    graphData.graphMode = 'month'
+    initGraph()
+  }
+}
+function yearButtonClicked() {
+  if (graphData.graphMode != 'year') {
+    graphData.graphMode = 'year'
+    initGraph()
+  }
+}
+
+
+</script>
+
+<style scoped>
+.graphsettings {
+  background: var(--color-bg);
+  border: 1px solid var(--color-frame);
+  border-radius: 10px;
+
+}
+
+.rounded-pill {
+  background-color: var(--color-menu);
+}
+
+.arrowButton {
+  border: 0;
+}
+
+.closebutton {
+  background-color: var(--color-bg);
+  color: var(--color-menu);
+}
+
+.graphmodebutton {
+  border: 0.5px solid var(--color-menu);
+  font-size: var(--font-small);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/PGSourceGraph.vue b/packages/modules/web_themes/colors/source/src/components/powerGraph/PGSourceGraph.vue
new file mode 100755
index 0000000000..0ebe559ca0
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/PGSourceGraph.vue
@@ -0,0 +1,218 @@
+<template>
+	<g
+		id="pgSourceGraph"
+		:origin="draw"
+		:transform="'translate(' + margin.left + ',' + margin.top + ')'"
+	/>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import * as d3 from 'd3'
+import { globalConfig } from '@/assets/js/themeConfig'
+import {
+	graphData,
+	initializeSourceGraph,
+	sourceGraphIsInitialized,
+} from './model'
+const props = defineProps<{
+	width: number
+	height: number
+	margin: { left: number; top: number; right: number; bottom: number }
+}>()
+
+//state
+const colors: { [key: string]: string } = {
+	house: 'var(--color-house)',
+	batIn: 'var(--color-battery)',
+	inverter: 'var(--color-pv)',
+	batOut: 'var(--color-battery)',
+	selfUsage: 'var(--color-pv)',
+	gridPush: 'var(--color-export)',
+	gridPull: 'var(--color-evu)',
+}
+var paths: d3.Selection<SVGPathElement, [number, number][], d3.BaseType, never>
+var rects: d3.Selection<SVGRectElement, [number, number], d3.BaseType, never>
+const duration = globalConfig.showAnimations
+	? globalConfig.animationDuration
+	: 0
+const delay = globalConfig.showAnimations ? globalConfig.animationDelay : 0
+
+// computed:
+const draw = computed(() => {
+	if (graphData.data.length > 0) {
+		const graph = d3.select('g#pgSourceGraph')
+		if (graphData.graphMode == 'month' || graphData.graphMode == 'year') {
+			drawMonthGraph(graph)
+		} else {
+			drawGraph(graph)
+		}
+		const yAxis = graph.append('g').attr('class', 'axis')
+		yAxis.call(yAxisGenerator.value)
+		yAxis.selectAll('.tick').attr('font-size', 12)
+		yAxis
+			.selectAll('.tick line')
+			.attr('stroke', ticklineColor.value)
+			.attr('stroke-width', ticklineWidth.value)
+		yAxis.select('.domain').attr('stroke', 'var(--color-bg)')
+	}
+	return 'pgSourceGraph.vue'
+})
+const keys = computed(() => {
+	return graphData.graphMode == 'month' || graphData.graphMode == 'year'
+		? ['gridPull', 'batOut', 'selfUsage', 'gridPush']
+		: ['selfUsage', 'gridPush', 'batOut', 'gridPull']
+})
+const iScale = computed(() => {
+	return d3
+		.scaleLinear()
+		.domain([0, graphData.data.length - 1])
+		.range([0, props.width])
+})
+
+const iScaleMonth = computed(() =>
+	d3
+		.scaleBand<number>()
+		.domain(Array.from({ length: graphData.data.length }, (v, k) => k))
+		.range([0, props.width + props.margin.right])
+		.paddingInner(0.4),
+)
+const stackGen = computed(() => d3.stack().keys(keys.value))
+const stackedSeries = computed(() => stackGen.value(graphData.data))
+
+const yScale = computed(() => {
+	return d3
+		.scaleLinear()
+		.range([props.height - 10, 0])
+		.domain(
+			graphData.graphMode == 'year'
+				? [0, Math.ceil(extent.value[1] * 10) / 10]
+				: [0, Math.ceil(extent.value[1])],
+		)
+})
+
+const extent = computed(() => {
+	let result = d3.extent(graphData.data, (d) =>
+		Math.max(d.solarPower + d.gridPull + d.batOut, d.selfUsage + d.gridPush),
+	)
+	if (result[0] != undefined && result[1] != undefined) {
+		return result
+	} else {
+		return [0, 0]
+	}
+})
+const ticklength = computed(
+	() => graphData.graphMode == 'month' || graphData.graphMode == 'year',
+)
+	? -props.width - props.margin.right
+	: -props.width
+
+const yAxisGenerator = computed(() => {
+	return d3
+		.axisLeft<number>(yScale.value)
+		.tickSizeInner(ticklength)
+		.ticks(4)
+		.tickFormat((d: number) =>
+			(d == 0 ? '' : Math.round(d * 10) / 10).toLocaleString(undefined),
+		)
+})
+const ticklineWidth = computed(() => {
+	if (globalConfig.showGrid) {
+		return '0.5'
+	} else {
+		return '1'
+	}
+})
+const ticklineColor = computed(() => {
+	return globalConfig.showGrid ? 'var(--color-grid)' : 'var(--color-bg)'
+})
+
+function drawGraph(
+	graph: d3.Selection<d3.BaseType, unknown, HTMLElement, never>,
+) {
+	const area0 = d3
+		.area()
+		.x((d, i) => iScale.value(i))
+		.y(yScale.value(0))
+	const area = d3
+		.area()
+		.x((d, i) => iScale.value(i))
+		.y0((d) => yScale.value(d[0]))
+		.y1((d) => yScale.value(d[1]))
+	if (initializeSourceGraph) {
+		graph.selectAll('*').remove()
+		paths = graph
+			.selectAll('.sourceareas')
+			.data(stackedSeries.value as [number, number][][])
+			.enter()
+			.append('path')
+			.attr('fill', (d, i) => colors[keys.value[i]])
+			.attr('d', (series) => area0(series))
+		paths
+			.transition()
+			.duration(duration)
+			.delay(delay)
+			.ease(d3.easeLinear)
+			.attr('d', (series) => area(series))
+		sourceGraphIsInitialized()
+	} else {
+		paths
+			.data(stackedSeries.value as [number, number][][])
+			.transition()
+			.duration(0)
+			.ease(d3.easeLinear)
+			.attr('d', (series) => area(series))
+	}
+}
+function drawMonthGraph(
+	graph: d3.Selection<d3.BaseType, unknown, HTMLElement, never>,
+) {
+	if (initializeSourceGraph) {
+		graph.selectAll('*').remove()
+		rects = graph
+			.selectAll('.sourcebar')
+			.data(stackedSeries.value as [number, number][][])
+			.enter()
+			.append('g')
+			.attr('fill', (d, i) => colors[keys.value[i]])
+			.selectAll('rect')
+			.data((d) => d)
+			.enter()
+			.append('rect')
+			.attr('x', (d, i) => {
+				return iScaleMonth.value(i) ?? 0
+			})
+			.attr('y', () => yScale.value(0))
+			.attr('height', 0)
+			.attr('width', iScaleMonth.value.bandwidth())
+		rects
+			.transition()
+			.duration(duration)
+			.delay(delay)
+			.ease(d3.easeLinear)
+			.attr('height', (d) => yScale.value(d[0]) - yScale.value(d[1]))
+			.attr('y', (d) => yScale.value(d[1])),
+			sourceGraphIsInitialized()
+	} else {
+		graph.selectAll('*').remove()
+		rects = graph
+			.selectAll('.sourcebar')
+			.data(stackedSeries.value as [number, number][][])
+			.enter()
+			.append('g')
+			.attr('fill', (d, i) => colors[keys.value[i]])
+			.selectAll('rect')
+			.data((d) => d)
+			.enter()
+			.append('rect')
+			.attr('x', (d, i) => {
+				return iScaleMonth.value(i) ?? 0
+			})
+			.attr('y', (d) => yScale.value(d[1]))
+			.attr('width', iScaleMonth.value.bandwidth())
+			.attr('height', (d) => yScale.value(d[0]) - yScale.value(d[1]))
+	}
+}
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/PGUsageGraph.vue b/packages/modules/web_themes/colors/source/src/components/powerGraph/PGUsageGraph.vue
new file mode 100755
index 0000000000..4c1dce8891
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/PGUsageGraph.vue
@@ -0,0 +1,241 @@
+<template>
+	<g
+		id="pgUsageGraph"
+		:origin="draw"
+		:transform="'translate(' + margin.left + ',' + margin.top + ')'"
+	/>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import * as d3 from 'd3'
+import { globalConfig } from '@/assets/js/themeConfig'
+import {
+	graphData,
+	initializeUsageGraph,
+	usageGraphIsInitialized,
+} from './model'
+const props = defineProps<{
+	width: number
+	height: number
+	margin: { left: number; top: number; right: number; bottom: number }
+	stackOrder: number
+}>()
+
+//state
+const keys = [
+	['house', 'charging', 'devices', 'batIn', 'inverter'],
+	['charging', 'devices', 'house', 'batIn', 'inverter'],
+	['devices', 'house', 'charging', 'batIn', 'inverter'],
+]
+const colors: { [key: string]: string } = {
+	house: 'var(--color-house)',
+	charging: 'var(--color-charging)',
+	batIn: 'var(--color-battery)',
+	inverter: 'var(--color-pv)',
+	batOut: 'var(--color-battery)',
+	selfUsage: 'var(--color-pv)',
+	gridPush: 'var(--color-export)',
+	gridPull: 'var(--color-evu)',
+	cp0: 'var(--color-cp0)',
+	cp1: 'var(--color-cp1)',
+	cp2: 'var(--color-cp2)',
+	cp3: 'var(--color-cp3)',
+	sh1: 'var(--color-sh1)',
+	sh2: 'var(--color-sh2)',
+	sh3: 'var(--color-sh3)',
+	sh4: 'var(--color-sh4)',
+	devices: 'var(--color-devices)',
+}
+var paths: d3.Selection<SVGPathElement, [number, number][], d3.BaseType, never>
+var rects: d3.Selection<SVGRectElement, [number, number], d3.BaseType, never>
+const duration = globalConfig.showAnimations
+	? globalConfig.animationDuration
+	: 0
+const delay = globalConfig.showAnimations ? globalConfig.animationDelay : 0
+
+// computed:
+const draw = computed(() => {
+	if (graphData.data.length > 0) {
+		const graph = d3.select('g#pgUsageGraph')
+
+		if (graphData.graphMode == 'month' || graphData.graphMode == 'year') {
+			drawMonthGraph(graph)
+		} else {
+			drawGraph(graph)
+		}
+
+		const yAxis = graph.append('g').attr('class', 'axis')
+		yAxis.call(yAxisGenerator.value)
+		yAxis
+			.selectAll('.tick')
+			.attr('font-size', 12)
+			.attr('color', 'var(--color-axis)')
+		if (globalConfig.showGrid) {
+			yAxis
+				.selectAll('.tick line')
+				.attr('stroke', 'var(--color-grid)')
+				.attr('stroke-width', '0.5')
+		} else {
+			yAxis.selectAll('.tick line').attr('stroke', 'var(--color-bg)')
+		}
+		yAxis.select('.domain').attr('stroke', 'var(--color-bg)')
+	}
+	return 'pgUsageGraph.vue'
+})
+const stackGen = computed(() => d3.stack().keys(keys[props.stackOrder]))
+const stackedSeries = computed(() => stackGen.value(graphData.data))
+
+const iScale = computed(() => {
+	return d3
+		.scaleLinear()
+		.domain([0, graphData.data.length - 1])
+		.range([0, props.width])
+})
+
+const iScaleMonth = computed(() =>
+	d3
+		.scaleBand<number>()
+		.domain(Array.from({ length: graphData.data.length }, (v, k) => k))
+		.range([0, props.width + props.margin.right])
+		.paddingInner(0.4),
+)
+
+const yScale = computed(() => {
+	return d3
+		.scaleLinear()
+		.range([props.height + 10, 2 * props.height])
+		.domain(
+			graphData.graphMode == 'year'
+				? [0, Math.ceil(extent.value[1] * 10) / 10]
+				: [0, Math.ceil(extent.value[1])],
+		)
+})
+
+const extent = computed(() => {
+	let result = d3.extent(
+		graphData.data,
+		(d) => d.house + d.charging + d.batIn + d.inverter + d.devices,
+	)
+	if (result[0] != undefined && result[1] != undefined) {
+		return result
+	} else {
+		return [0, 0]
+	}
+})
+
+const ticklength = computed(
+	() => graphData.graphMode == 'month' || graphData.graphMode == 'year',
+)
+	? -props.width - props.margin.right
+	: -props.width
+
+const yAxisGenerator = computed(() => {
+	return d3
+		.axisLeft<number>(yScale.value)
+		.tickSizeInner(ticklength)
+		.ticks(4)
+		.tickFormat((d: number) =>
+			(d == 0 ? '' : Math.round(d * 10) / 10).toLocaleString(undefined),
+		)
+})
+function drawGraph(
+	graph: d3.Selection<d3.BaseType, unknown, HTMLElement, never>,
+) {
+	const area0 = d3
+		.area()
+		.x((d, i) => iScale.value(i))
+		.y(yScale.value(0))
+	const area = d3
+		.area()
+		.x((d, i) => iScale.value(i))
+		.y0((d) => yScale.value(d[0]))
+		.y1((d) => yScale.value(d[1]))
+	if (globalConfig.showAnimations) {
+		if (initializeUsageGraph) {
+			graph.selectAll('*').remove()
+			paths = graph
+				.selectAll('.usageareas')
+				.data(stackedSeries.value as [number, number][][])
+				.enter()
+				.append('path')
+				.attr('d', (series) => area0(series))
+				.attr('fill', (d, i: number) => colors[keys[props.stackOrder][i]])
+			paths
+				.transition()
+				.duration(300)
+				.delay(100)
+				.ease(d3.easeLinear)
+				.attr('d', (series) => area(series))
+			usageGraphIsInitialized()
+		} else {
+			paths
+				.data(stackedSeries.value as [number, number][][])
+				.transition()
+				.duration(100)
+				.ease(d3.easeLinear)
+				.attr('d', (series) => area(series))
+		}
+	} else {
+		graph.selectAll('*').remove()
+		graph
+			.selectAll('.usageareas')
+			.data(stackedSeries.value as [number, number][][])
+			.enter()
+			.append('path')
+			.attr('d', (series) => area(series))
+			.attr('fill', (d, i: number) => colors[keys[props.stackOrder][i]])
+	}
+}
+function drawMonthGraph(
+	graph: d3.Selection<d3.BaseType, unknown, HTMLElement, never>,
+) {
+	if (initializeUsageGraph) {
+		graph.selectAll('*').remove()
+		rects = graph
+			.selectAll('.usagebar')
+			.data(stackedSeries.value as [number, number][][])
+			.enter()
+			.append('g')
+			.attr('fill', (d, i) => colors[keys[props.stackOrder][i]])
+			.selectAll('rect')
+			.data((d) => d)
+			.enter()
+			.append('rect')
+			.attr('x', (d, i) => {
+				return iScaleMonth.value(i) ?? 0
+			})
+			.attr('y', () => yScale.value(0))
+			.attr('height', 0)
+			.attr('width', iScaleMonth.value.bandwidth())
+		rects
+			.transition()
+			.duration(duration)
+			.delay(delay)
+			.ease(d3.easeLinear)
+			.attr('y', (d) => yScale.value(d[0]))
+			.attr('height', (d) => yScale.value(d[1]) - yScale.value(d[0]))
+		usageGraphIsInitialized()
+	} else {
+		graph.selectAll('*').remove()
+		rects = graph
+			.selectAll('.usagebar')
+			.data(stackedSeries.value as [number, number][][])
+			.enter()
+			.append('g')
+			.attr('fill', (d, i) => colors[keys[props.stackOrder][i]])
+			.selectAll('rect')
+			.data((d) => d)
+			.enter()
+			.append('rect')
+			.attr('x', (d, i) => {
+				return iScaleMonth.value(i) ?? 0
+			})
+			.attr('y', (d) => yScale.value(d[0]))
+			.attr('height', (d) => yScale.value(d[1]) - yScale.value(d[0]))
+			.attr('width', iScaleMonth.value.bandwidth())
+	}
+}
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/PGXAxis.vue b/packages/modules/web_themes/colors/source/src/components/powerGraph/PGXAxis.vue
new file mode 100755
index 0000000000..146cf31bec
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/PGXAxis.vue
@@ -0,0 +1,158 @@
+<template>
+	<g :transform="'translate(' + margin.left + ',' + margin.top + ')'">
+		<g
+			id="PGXAxis"
+			class="axis"
+			:origin="drawAxis1"
+			:transform="'translate(0,' + (height / 2 - 6) + ')'"
+		/>
+		<g
+			id="PGXAxis2"
+			class="axis"
+			:origin="drawAxis2"
+			:transform="'translate(0,' + (height / 2 + 10) + ')'"
+		/>
+		<g v-if="globalConfig.showGrid">
+			<rect
+				x="0"
+				y="0"
+				:width="width"
+				:height="height / 2 - 10"
+				fill="none"
+				stroke="var(--color-grid)"
+				stroke-width="0.5"
+			/>
+		</g>
+		<g v-if="globalConfig.showGrid">
+			<rect
+				x="0"
+				:y="height / 2 + 10"
+				:width="width"
+				:height="height / 2 - 10"
+				fill="none"
+				stroke="var(--color-grid)"
+				stroke-width="0.5"
+			/>
+		</g>
+	</g>
+</template>
+
+<script setup lang="ts">
+import * as d3 from 'd3'
+import { globalConfig } from '@/assets/js/themeConfig'
+import { graphData } from './model'
+import { computed } from 'vue'
+
+const props = defineProps<{
+	width: number
+	height: number
+	margin: { left: number; top: number; right: number; bottom: number }
+}>()
+// state
+const fontsize = 12
+
+// computed
+const xAxisGenerator = computed(() => {
+	return d3
+		.axisBottom<Date>(xScale.value as d3.ScaleTime<number, number, never>)
+		.ticks(4)
+		.tickSizeInner(ticksize.value)
+		.tickFormat(d3.timeFormat('%H:%M'))
+})
+
+const xAxisGeneratorMonth = computed(() =>
+	d3
+		.axisBottom<number>(xScaleMonth.value)
+		.ticks(4)
+		.tickSizeInner(ticksize.value)
+		.tickFormat((d, i) => (i + 1).toString()),
+)
+
+const ticksize = computed(() => {
+	if (graphData.graphMode !== 'month' && graphData.graphMode !== 'year') {
+		return globalConfig.showGrid ? -(props.height / 2 - 7) : -10
+	} else {
+		return 0
+	}
+})
+/* const xAxisGenerator2 = computed(() => {
+	const ticksize2 = -(props.height / 2 - 10)
+	if (graphData.graphMode == 'month') {
+		return
+	} else {
+		return d3
+			.axisTop<Date>(xScale.value as d3.ScaleTime<number, number, never>)
+			.ticks(4)
+			.tickSizeInner(ticksize2)
+			.tickFormat((d) => '')
+	}
+})
+ */ const xScale = computed(() => {
+	let e = d3.extent(graphData.data, (d) => d.date)
+	if (e[0] && e[1]) {
+		return d3.scaleTime<number>().domain(e).range([0, props.width])
+	} else {
+		return d3.scaleTime().range([0, 0])
+	}
+})
+const xScaleMonth = computed(() => {
+	return d3
+		.scaleBand<number>()
+		.domain(Array.from({ length: graphData.data.length }, (v, k) => k))
+		.paddingInner(0.4)
+		.range([0, props.width + props.margin.right])
+})
+
+const drawAxis1 = computed(() => {
+	let axis = d3.select<d3.AxisContainerElement, number>('g#PGXAxis')
+	axis.selectAll('*').remove()
+	if (graphData.graphMode == 'month' || graphData.graphMode == 'year') {
+		axis.call(xAxisGeneratorMonth.value)
+	} else {
+		axis.call(xAxisGenerator.value)
+	}
+
+	axis
+		.selectAll('.tick')
+		.attr('color', 'var(--color-axis)')
+		.attr('font-size', fontsize)
+
+	if (globalConfig.showGrid) {
+		axis
+			.selectAll('.tick line')
+			.attr('stroke', 'var(--color-grid)')
+			.attr('stroke-width', '0.5')
+	} else {
+		axis.selectAll('.tick line').attr('stroke', 'var(--color-bg)')
+	}
+	axis.select('.domain').attr('stroke', 'var(--color-bg)')
+	axis
+		.append('text')
+		.attr('x', -props.margin.left)
+		.attr('y', 12)
+		.attr('fill', 'var(--color-axis)')
+		.attr('font-size', fontsize)
+		.text(graphData.graphMode == 'year' ? 'MWh' : 'kWh')
+		.attr('text-anchor', 'start')
+	return 'PGXAxis.vue'
+})
+const drawAxis2 = computed(() => {
+	let axis = d3.select<d3.AxisContainerElement, Date>('g#PGXAxis2')
+	axis.selectAll('*').remove()
+	if (globalConfig.showGrid) {
+		//axis.call(xAxisGenerator2.value)
+		axis
+			.selectAll('.tick')
+			.attr('color', 'var(--color-axis)')
+			.attr('font-size', fontsize)
+		axis
+			.selectAll('.tick line')
+			.attr('stroke', 'var(--color-grid)')
+			.attr('stroke-width', '0.5')
+		axis.select('.domain').attr('stroke', 'var(--color-bg)')
+	}
+	return 'PGXAxis.vue'
+})
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSelector.vue b/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSelector.vue
new file mode 100755
index 0000000000..0b3fc54a3e
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSelector.vue
@@ -0,0 +1,256 @@
+<template>
+	<div
+		class="d-flex flex-column justify-content-center pgselector rounded"
+		:style="selectorstyle"
+	>
+		<RadioBarInput
+			v-if="editmode == 2"
+			id="pgm2"
+			v-model="gmode"
+			class="m-2"
+			:options="
+				graphmodes.map((v, i) => {
+					return {
+						text: modenames[i],
+						value: v,
+						color: 'var(--color-menu)',
+						active: v == graphData.graphMode,
+					}
+				})
+			"
+		/>
+		<!-- Row 1 -->
+		<!-- Up-Button -->
+		<span
+			v-if="editmode == 1"
+			type="button"
+			class="arrowButton d-flex align-self-center mb-3 mt-3"
+			:class="{ disabled: !props.showLeftButton }"
+			@click="$emit('shiftUp')"
+		>
+			<i class="fa-solid fa-xl fa-chevron-circle-up" />
+		</span>
+		<!-- Row 2 -->
+		<div class="d-flex align-items-center" :class="row2layout">
+			<!-- Left Button -->
+			<span
+				v-if="editmode == 1"
+				type="button"
+				class="p-1"
+				:class="{ disabled: !props.showLeftButton }"
+				@click="$emit('shiftLeft')"
+			>
+				<span class="fa-solid fa-xl fa-chevron-circle-left arrowButton" />
+			</span>
+			<!-- Badge -->
+			<span
+				v-if="editmode < 2"
+				type="button"
+				class="p-2 px-3 badge rounded-pill datebadge"
+				@click="toggleEdit"
+			>
+				{{ displayDate }}
+			</span>
+			<DateInput
+				v-if="editmode == 2"
+				:model-value="graphdate"
+				:mode="graphData.graphMode"
+				@update:model-value="setDate"
+			/>
+
+			<!-- Right Button -->
+			<span
+				v-if="editmode == 1"
+				id="graphRightButton"
+				type="button"
+				class="arrowButton fa-solid fa-xl fa-chevron-circle-right p-1"
+				:class="{ disabled: !props.showRightButton }"
+				@click="$emit('shiftRight')"
+			/>
+		</div>
+		<!-- Row 3 -->
+		<div class="d-flex align-items-center" :class="row3layout">
+			<!-- Settings button -->
+			<span v-if="editmode == 1" type="button" class="p-1" @click="toggleEdit">
+				<span class="fa-solid fa-xl fa-gear" />
+			</span>
+			<!-- Down Button -->
+			<span
+				v-if="editmode == 1"
+				id="graphLeftButton"
+				type="button"
+				class="arrowButton fa-solid fa-xl fa-chevron-circle-down p-1"
+				:class="{ disabled: !props.showLeftButton }"
+				@click="$emit('shiftDown')"
+			/>
+			<!-- Close Button -->
+			<span v-if="editmode > 0" type="button" class="p-1" @click="editmode = 0">
+				<span class="fa-solid fa-xl fa-circle-check" />
+			</span>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { formatMonth } from '@/assets/js/helpers'
+import { computed, ref } from 'vue'
+import DateInput from '../shared/DateInput.vue'
+import RadioBarInput from '../shared/RadioBarInput.vue'
+import {
+	dayGraph,
+	graphData,
+	initGraph,
+	setGraphDate,
+	yearGraph,
+} from './model'
+import { monthGraph } from './model'
+
+const props = defineProps<{
+	widgetid: string
+	showLeftButton: boolean
+	showRightButton: boolean
+}>()
+defineEmits(['shiftLeft', 'shiftRight', 'shiftUp', 'shiftDown'])
+const editmode = ref(0)
+const displayDate = computed(() => {
+	switch (graphData.graphMode) {
+		case 'live':
+			if (graphData.data.length) {
+				const startTime = graphData.data[0].date
+				const endTime = graphData.data[graphData.data.length - 1].date
+				const liveGraphMinutes = Math.round((endTime - startTime) / 60000)
+				return liveGraphMinutes + ' min'
+			} else {
+				console.warn('Graph Data empty.')
+				return '???'
+			}
+		case 'today':
+			return 'heute'
+		case 'day':
+			return (
+				dayGraph.date.getDate() + '.' + (dayGraph.date.getMonth() + 1) + '.'
+			)
+		case 'month':
+			return formatMonth(monthGraph.month - 1, monthGraph.year)
+		case 'year':
+			return yearGraph.year.toString()
+		default:
+			return '???'
+	}
+})
+const graphmodes = ['live', 'today', 'day', 'month', 'year']
+const modenames = ['Live', 'Heute', 'Tag', 'Monat', 'Jahr']
+
+const gmode = computed({
+	get() {
+		return graphData.graphMode
+	},
+	set(value: string) {
+		switch (value) {
+			case 'day':
+				dayButtonClicked()
+				break
+			case 'today':
+				todayButtonClicked()
+				break
+			case 'live':
+				liveButtonClicked()
+				break
+			case 'month':
+				monthButtonClicked()
+				break
+			case 'year':
+				yearButtonClicked()
+		}
+	},
+})
+const graphdate = computed(() => {
+	switch (graphData.graphMode) {
+		case 'live':
+		case 'today':
+			return dayGraph.getDate()
+		case 'month':
+			return monthGraph.getDate()
+		default:
+			return dayGraph.getDate()
+	}
+})
+function setDate(v: Date) {
+	setGraphDate(v)
+}
+function toggleEdit() {
+	editmode.value += 1
+	if (editmode.value > 2) {
+		editmode.value = 0
+	}
+}
+function liveButtonClicked() {
+	if (graphData.graphMode != 'live') {
+		graphData.graphMode = 'live'
+		initGraph()
+	}
+}
+function dayButtonClicked() {
+	if (graphData.graphMode != 'day' && graphData.graphMode != 'today') {
+		graphData.graphMode = 'day'
+		initGraph()
+	}
+}
+function todayButtonClicked() {
+	if (graphData.graphMode != 'today') {
+		graphData.graphMode = 'today'
+		setGraphDate(new Date())
+	}
+}
+function monthButtonClicked() {
+	if (graphData.graphMode != 'month') {
+		graphData.graphMode = 'month'
+		initGraph()
+	}
+}
+function yearButtonClicked() {
+	if (graphData.graphMode != 'year') {
+		graphData.graphMode = 'year'
+		initGraph()
+	}
+}
+const selectorstyle = computed(() => {
+	if (editmode.value > 0) {
+		return { border: '1px solid var(--color-frame)' }
+	} else {
+		return ''
+	}
+})
+const row3layout = computed(() => {
+	if (editmode.value == 1) {
+		return 'justify-content-between'
+	} else {
+		return 'justify-content-end'
+	}
+})
+const row2layout = computed(() => {
+	if (editmode.value == 1) {
+		return 'justify-content-between'
+	} else {
+		return 'justify-content-center'
+	}
+})
+</script>
+
+<style scoped>
+.rounded-pill {
+	background-color: var(--color-menu);
+}
+.arrowButton {
+	border: 0;
+}
+.datebadge {
+	background-color: var(--color-menu);
+	color: var(--color-bg);
+	font-size: var(--font-medium);
+	font-weight: normal;
+}
+.arrowButton {
+	color: var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSoc.vue b/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSoc.vue
new file mode 100755
index 0000000000..cddd63d790
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSoc.vue
@@ -0,0 +1,99 @@
+<template>
+	<path
+		class="soc-baseline"
+		:d="line"
+		stroke="var(--color-bg)"
+		stroke-width="1"
+		fill="none"
+	/>
+	<path
+		class="soc-dashes"
+		:d="line"
+		:stroke="cpColor"
+		stroke-width="1"
+		:style="{ strokeDasharray: '3,3' }"
+		fill="none"
+	/>
+	<text
+		class="cpname"
+		:x="nameX"
+		:y="nameY"
+		:style="{ fill: cpColor, fontSize: 10 }"
+		:text-anchor="textPosition"
+	>
+		{{ cpName }}
+	</text>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import * as d3 from 'd3'
+import { vehicles } from '../chargePointList/model'
+import { graphData, type GraphDataItem } from './model'
+
+const props = defineProps<{
+	width: number
+	height: number
+	margin: { left: number; top: number; right: number; bottom: number }
+	order: number // 0 or 1
+}>()
+const evs = computed(() => Object.values(vehicles))
+const xScale = computed(() => {
+	let e = d3.extent(graphData.data, (d) => d.date)
+	if (e[0] && e[1]) {
+		return d3.scaleTime<number>().domain(e).range([0, props.width])
+	} else {
+		return d3.scaleTime().range([0, 0])
+	}
+})
+const yScale = computed(() => {
+	return d3
+		.scaleLinear()
+		.range([props.height - 10, 0])
+		.domain([0, 100])
+})
+const line = computed(() => {
+	const path = d3
+		.line<GraphDataItem>()
+		.x((d) => xScale.value(d.date))
+		.y((d) =>
+			yScale.value(d['soc' + props.order]) != undefined
+				? yScale.value(d['soc' + props.order])
+				: yScale.value(0),
+		)
+	let p = path(graphData.data)
+	return p ? p : ''
+})
+const cpName = computed(() => {
+	return evs.value[props.order].name ?? ''
+})
+const cpColor = computed(() => {
+	return props.order == 0 ? 'var(--color-cp1)' : 'var(--color-cp2)'
+})
+const nameX = computed(() => {
+	if (props.order == 0) {
+		return props.width - 3
+	} else {
+		return 3
+	}
+})
+const nameY = computed(() => {
+	if (graphData.data.length > 0) {
+		if (props.order == 0) {
+			return yScale.value(graphData.data[graphData.data.length - 1].soc0 + 2)
+		} else {
+			return yScale.value(graphData.data[0].soc1 + 2)
+		}
+	} else {
+		return 0
+	}
+})
+const textPosition = computed(() => {
+	if (props.order == 0) {
+		return 'end'
+	} else {
+		return 'start'
+	}
+})
+</script>
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSocAxis.vue b/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSocAxis.vue
new file mode 100755
index 0000000000..f88fbe7d7f
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/PgSocAxis.vue
@@ -0,0 +1,40 @@
+<template>
+	<g
+		id="PGSocAxis"
+		class="axis"
+		:transform="'translate(' + (width - 20) + ',0)'"
+	/>
+</template>
+<script setup lang="ts">
+import { computed, onMounted } from 'vue'
+import * as d3 from 'd3'
+const props = defineProps<{
+	width: number
+	height: number
+	margin: { left: number; top: number; right: number; bottom: number }
+}>()
+const y = computed(() => {
+	return d3
+		.scaleLinear()
+		.range([props.height - 10, 0])
+		.domain([0, 100])
+})
+const axisGenerator = computed(() => {
+	return d3
+		.axisRight(y.value)
+		.ticks(5)
+		.tickFormat((d) => d.toString() + '%')
+})
+function drawSocAxis() {
+	let axis = d3.select<d3.AxisContainerElement, number>('g#PGSocAxis')
+	axis.call(axisGenerator.value)
+	axis.selectAll('.tick').attr('font-size', 12)
+	axis.selectAll('.tick line').attr('stroke', 'var(--color-bg)')
+	axis.select('.domain').attr('stroke', 'var(--color-bg)')
+}
+
+onMounted(() => {
+	drawSocAxis()
+})
+</script>
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/PowerGraph.vue b/packages/modules/web_themes/colors/source/src/components/powerGraph/PowerGraph.vue
new file mode 100755
index 0000000000..a7cac519d4
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/PowerGraph.vue
@@ -0,0 +1,134 @@
+<template>
+	<WBWidget :full-width="true">
+		<template #title>
+			{{ heading }}
+		</template>
+		<template #buttons>
+			<PgSelector
+				widgetid="graphsettings"
+				:show-left-button="true"
+				:show-right-button="true"
+				@shift-left="shiftLeft"
+				@shift-right="shiftRight"
+				@shift-up="shiftUp"
+				@shift-down="shiftDown"
+			/>
+		</template>
+
+		<figure id="powergraph" class="p-0 m-0" @click="changeStackOrder">
+			<svg :viewBox="'0 0 ' + width + ' ' + height">
+				<!-- Draw the source graph -->
+				<PGSourceGraph
+					:width="width - margin.left - 2 * margin.right"
+					:height="(height - margin.top - margin.bottom) / 2"
+					:margin="margin"
+				/>
+				<PGUsageGraph
+					:width="width - margin.left - 2 * margin.right"
+					:height="(height - margin.top - margin.bottom) / 2"
+					:margin="margin"
+					:stack-order="globalConfig.usageStackOrder"
+				/>
+				<PGXAxis
+					:width="width - margin.left - 2 * margin.right"
+					:height="height - margin.top - margin.bottom"
+					:margin="margin"
+					:graph-data="graphData"
+				/>
+				<g :transform="'translate(' + margin.left + ',' + margin.top + ')'">
+					<PgSoc
+						v-if="
+							(graphData.graphMode == 'day' ||
+								graphData.graphMode == 'today') &&
+							Object.values(vehicles).length > 0
+						"
+						:width="width - margin.left - 2 * margin.right"
+						:height="(height - margin.top - margin.bottom) / 2"
+						:margin="margin"
+						:order="0"
+					/>
+					<PgSoc
+						v-if="
+							(graphData.graphMode == 'day' ||
+								graphData.graphMode == 'today') &&
+							Object.values(vehicles).length > 1
+						"
+						:width="width - margin.left - 2 * margin.right"
+						:height="(height - margin.top - margin.bottom) / 2"
+						:margin="margin"
+						:order="1"
+					/>
+					<PgSocAxis
+						v-if="
+							graphData.graphMode == 'day' || graphData.graphMode == 'today'
+						"
+						:width="width - margin.left - margin.right"
+						:height="(height - margin.top - margin.bottom) / 2"
+						:margin="margin"
+					/>
+				</g>
+				<g id="button">
+					<text
+						:x="width"
+						:y="height - 10"
+						color="var(--color-menu)"
+						text-anchor="end"
+					>
+						<tspan fill="var(--color-menu)" class="fas fa-lg">
+							{{ '\uf0dc' }}
+						</tspan>
+					</text>
+				</g>
+			</svg>
+		</figure>
+	</WBWidget>
+</template>
+
+<script setup lang="ts">
+import WBWidget from '../shared/WBWidget.vue'
+import PGSourceGraph from './PGSourceGraph.vue'
+import PGUsageGraph from './PGUsageGraph.vue'
+import PGXAxis from './PGXAxis.vue'
+import {
+	graphData,
+	setInitializeUsageGraph,
+	shiftLeft,
+	shiftRight,
+	shiftUp,
+	shiftDown,
+} from './model'
+import { globalConfig } from '@/assets/js/themeConfig'
+import PgSoc from './PgSoc.vue'
+import PgSocAxis from './PgSocAxis.vue'
+import { vehicles } from '../chargePointList/model'
+import PgSelector from './PgSelector.vue'
+
+// state
+const width = 500
+const height = 500
+const margin = { top: 10, right: 20, bottom: 10, left: 25 }
+const stackOrderMax = 2
+const heading = 'Leistung / Ladestand '
+
+function changeStackOrder() {
+	let newOrder = globalConfig.usageStackOrder + 1
+	if (newOrder > stackOrderMax) {
+		newOrder = 0
+	}
+	globalConfig.usageStackOrder = newOrder
+	setInitializeUsageGraph(true)
+}
+</script>
+
+<style scoped>
+.fa-ellipsis-vertical {
+	color: var(--color-menu);
+}
+
+.datebadge {
+	background-color: var(--color-menu);
+	color: var(--color-bg);
+	font-size: var(--font-medium);
+	font-weight: normal;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/model.ts b/packages/modules/web_themes/colors/source/src/components/powerGraph/model.ts
new file mode 100755
index 0000000000..d5db0008b9
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/model.ts
@@ -0,0 +1,379 @@
+import { reactive } from 'vue'
+import { mqttSubscribe, mqttUnsubscribe } from '../../assets/js/mqttClient'
+import { sendCommand } from '@/assets/js/sendMessages'
+import { globalConfig, setInitializeEnergyGraph } from '@/assets/js/themeConfig'
+
+export interface GraphDataItem {
+	[key: string]: number
+}
+export interface RawGraphDataItem {
+	[key: string]: string
+}
+export interface RawDayGraphDataItem {
+	timestamp: number
+	date: string
+	counter: object
+	pv: object
+	bat: object
+	cp: object
+	ev: object
+	sh: object
+}
+
+export class GraphData {
+	data: GraphDataItem[] = []
+	private _graphMode = 'today'
+
+	get graphMode() {
+		return this._graphMode
+	}
+	set graphMode(mode: string) {
+		this._graphMode = mode
+	}
+}
+
+export const graphData = reactive(new GraphData())
+export let initializeSourceGraph = true
+export let initializeUsageGraph = true
+export function sourceGraphIsInitialized() {
+	initializeSourceGraph = false
+}
+export function sourceGraphIsNotInitialized() {
+	initializeSourceGraph = true
+}
+
+export function usageGraphIsInitialized() {
+	initializeUsageGraph = false
+}
+export function usageGraphIsNotInitialized() {
+	initializeUsageGraph = true
+}
+export function setInitializeUsageGraph(val: boolean) {
+	initializeUsageGraph = val
+}
+export function setInitializeSourceGraph(val: boolean) {
+	initializeSourceGraph = val
+}
+export function setGraphData(d: GraphDataItem[]) {
+	graphData.data = d
+	// graphData.graphMode = graphData.graphMode
+}
+export const liveGraph = {
+	refreshTopicPrefix: 'openWB/graph/' + 'alllivevaluesJson',
+	updateTopic: 'openWB/graph/lastlivevaluesJson',
+	initialized: false,
+	initCounter: 0,
+	graphRefreshCounter: 0,
+	rawDataPacks: [] as RawGraphDataItem[][],
+
+	activate() {
+		graphData.data = []
+		this.unsubscribeUpdates()
+		this.subscribeRefresh()
+		this.initialized = false
+		this.initCounter = 0
+		this.graphRefreshCounter = 0
+		this.subscribeRefresh()
+		this.rawDataPacks = []
+	},
+	deactivate() {
+		this.unsubscribeRefresh()
+		this.unsubscribeUpdates()
+	},
+	subscribeRefresh() {
+		for (let segment = 1; segment < 17; segment++) {
+			mqttSubscribe(this.refreshTopicPrefix + segment)
+		}
+	},
+	unsubscribeRefresh() {
+		for (let segment = 1; segment < 17; segment++) {
+			mqttUnsubscribe(this.refreshTopicPrefix + segment)
+		}
+	},
+	subscribeUpdates() {
+		mqttSubscribe(this.updateTopic)
+	},
+	unsubscribeUpdates() {
+		mqttUnsubscribe(this.updateTopic)
+	},
+}
+export const dayGraph = reactive({
+	topic: 'openWB/log/daily/#',
+	date: new Date(),
+	activate() {
+		const dateString =
+			this.date.getFullYear().toString() +
+			(this.date.getMonth() + 1).toString().padStart(2, '0') +
+			this.date.getDate().toString().padStart(2, '0')
+		graphData.data = []
+		mqttSubscribe(this.topic)
+		sendCommand({
+			command: 'getDailyLog',
+			data: { day: dateString },
+		})
+	},
+	deactivate() {
+		mqttUnsubscribe(this.topic)
+	},
+	back() {
+		this.date = new Date(this.date.setTime(this.date.getTime() - 86400000))
+	},
+	forward() {
+		this.date = new Date(this.date.setTime(this.date.getTime() + 86400000))
+	},
+	setDate(newDate: Date) {
+		this.date = newDate
+	},
+	getDate() {
+		return this.date
+	},
+})
+export const monthGraph = reactive({
+	topic: 'openWB/log/monthly/#',
+	month: new Date().getMonth() + 1,
+	year: new Date().getFullYear(),
+	activate() {
+		const dateString =
+			this.year.toString() + this.month.toString().padStart(2, '0')
+		graphData.data = []
+		mqttSubscribe(this.topic)
+		sendCommand({
+			command: 'getMonthlyLog',
+			data: { month: dateString },
+		})
+	},
+	deactivate() {
+		mqttUnsubscribe(this.topic)
+	},
+	back() {
+		this.month -= 1
+		if (this.month < 1) {
+			this.month = 12
+			this.year -= 1
+		}
+		this.activate()
+	},
+	forward() {
+		if (this.month - 1 < new Date().getMonth()) {
+			this.month = this.month + 1
+			if (this.month > 12) {
+				this.month = 1
+				this.year += 1
+			}
+			this.activate()
+		}
+	},
+	getDate() {
+		return new Date(this.year, this.month)
+	},
+})
+export const yearGraph = reactive({
+	topic: 'openWB/log/yearly/#',
+	month: new Date().getMonth() + 1,
+	year: new Date().getFullYear(),
+	activate() {
+		const dateString = this.year.toString()
+
+		graphData.data = []
+		mqttSubscribe(this.topic)
+		sendCommand({
+			command: 'getYearlyLog',
+			data: { year: dateString },
+		})
+	},
+	deactivate() {
+		mqttUnsubscribe(this.topic)
+	},
+	back() {
+		this.month -= 1
+		if (this.month < 1) {
+			this.month = 12
+			this.year -= 1
+		}
+		this.activate()
+	},
+	forward() {
+		if (this.month - 1 < new Date().getMonth()) {
+			this.month = this.month + 1
+			if (this.month > 12) {
+				this.month = 1
+				this.year += 1
+			}
+			this.activate()
+		}
+	},
+	getDate() {
+		return new Date(this.year, this.month)
+	},
+})
+export function initGraph() {
+	if (graphData.graphMode == '') {
+		setGraphMode(globalConfig.graphPreference)
+	}
+	initializeSourceGraph = true
+	initializeUsageGraph = true
+	switch (graphData.graphMode) {
+		case 'live':
+			dayGraph.deactivate()
+			monthGraph.deactivate()
+			yearGraph.deactivate()
+			liveGraph.activate()
+			break
+		case 'today':
+			liveGraph.deactivate()
+			monthGraph.deactivate()
+			yearGraph.deactivate()
+			dayGraph.activate()
+			break
+		case 'day':
+			liveGraph.deactivate()
+			monthGraph.deactivate()
+			yearGraph.deactivate()
+			dayGraph.activate()
+			break
+		case 'month':
+			liveGraph.deactivate()
+			dayGraph.deactivate()
+			yearGraph.deactivate()
+			monthGraph.activate()
+			break
+		case 'year':
+			liveGraph.deactivate()
+			dayGraph.deactivate()
+			monthGraph.deactivate()
+			yearGraph.activate()
+			break
+	}
+	setInitializeEnergyGraph(true)
+}
+export function setGraphMode(mode: string) {
+	graphData.graphMode = mode
+}
+export function calculateAutarchy(cat: string, values: GraphDataItem) {
+	values[cat + 'Pv'] =
+		(values[cat] * (values.solarPower - values.gridPush)) /
+		(values.solarPower - values.gridPush + values.gridPull + values.batOut)
+	values[cat + 'Bat'] =
+		(values[cat] * values.batOut) /
+		(values.solarPower - values.gridPush + values.gridPull + values.batOut)
+}
+
+export function shiftLeft() {
+	switch (graphData.graphMode) {
+		case 'live':
+			graphData.graphMode = 'today'
+			globalConfig.showRightButton = true
+			initGraph()
+			break
+		case 'today':
+			graphData.graphMode = 'day'
+			dayGraph.date = new Date()
+			dayGraph.back()
+			initGraph()
+			break
+		case 'day':
+			dayGraph.back()
+			initGraph()
+			break
+		case 'month':
+			monthGraph.back()
+
+			break
+		default:
+			break
+	}
+}
+export function shiftRight() {
+	const now = new Date()
+	switch (graphData.graphMode) {
+		case 'live':
+			break
+		case 'today':
+			graphData.graphMode = 'live'
+			globalConfig.showRightButton = false
+			initGraph()
+			break
+		case 'day':
+			dayGraph.forward()
+			if (
+				dayGraph.date.getDate() == now.getDate() &&
+				dayGraph.date.getMonth() == now.getMonth() &&
+				dayGraph.date.getFullYear() == now.getFullYear()
+			) {
+				graphData.graphMode = 'today'
+			}
+			initGraph()
+			break
+		case 'month':
+			monthGraph.forward()
+			break
+		default:
+			break
+	}
+}
+export function shiftUp() {
+	switch (graphData.graphMode) {
+		case 'live':
+			shiftLeft()
+			break
+		case 'day':
+		case 'today':
+			graphData.graphMode = 'month'
+			initGraph()
+			break
+		case 'month':
+			graphData.graphMode = 'year'
+			initGraph()
+			break
+		default:
+			break
+	}
+}
+export function shiftDown() {
+	switch (graphData.graphMode) {
+		case 'year':
+			graphData.graphMode = 'month'
+			initGraph()
+			break
+		case 'month':
+			graphData.graphMode = 'day'
+			initGraph()
+			break
+		case 'today':
+		case 'day':
+			graphData.graphMode = 'live'
+			initGraph()
+			break
+		default:
+			break
+	}
+}
+export function setGraphDate(newDate: Date) {
+	if (graphData.graphMode == 'day' || graphData.graphMode == 'today') {
+		dayGraph.setDate(newDate)
+		const now = new Date()
+		if (
+			dayGraph.date.getDate() == now.getDate() &&
+			dayGraph.date.getMonth() == now.getMonth() &&
+			dayGraph.date.getFullYear() == now.getFullYear()
+		) {
+			graphData.graphMode = 'today'
+		} else {
+			graphData.graphMode = 'day'
+		}
+		initGraph()
+	}
+}
+
+export function toggleMonthlyView() {
+	switch (graphData.graphMode) {
+		case 'month':
+			graphData.graphMode = 'today'
+			initGraph()
+			break
+		default:
+			graphData.graphMode = 'month'
+			initGraph()
+			break
+	}
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/processDayGraphData.ts b/packages/modules/web_themes/colors/source/src/components/powerGraph/processDayGraphData.ts
new file mode 100755
index 0000000000..0143909297
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/processDayGraphData.ts
@@ -0,0 +1,267 @@
+import { timeParse } from 'd3'
+import {
+	graphData,
+	type GraphDataItem,
+	type RawDayGraphDataItem,
+	setGraphData,
+	initGraph,
+	dayGraph,
+} from './model'
+import { historicSummary, usageSummary } from '@/assets/js/model'
+import { vehicles } from '../chargePointList/model'
+let startValues: GraphDataItem = {}
+let endValues: GraphDataItem = {}
+const consumerCategories = ['charging', 'house', 'batIn', 'devices']
+let evSocs: string[] = []
+// methods:
+
+export function processDayGraphMessages(topic: string, message: string) {
+	const inputTable: RawDayGraphDataItem[] = JSON.parse(message).entries
+	evSocs = Object.values(vehicles).map((v) => 'soc-ev' + v.id.toString())
+
+	consumerCategories.map((cat) => {
+		historicSummary[cat].energyPv = 0
+		historicSummary[cat].energyBat = 0
+	})
+
+	const transformedTable = transformDatatable(inputTable)
+	setGraphData(transformedTable)
+	consumerCategories.map((cat) => {
+		historicSummary[cat].energyPv =
+			Math.round(historicSummary[cat].energyPv * 100) / 100
+		historicSummary[cat].energyBat =
+			Math.round(historicSummary[cat].energyBat * 100) / 100
+	})
+	updateEnergyValues(startValues, endValues)
+	if (graphData.graphMode == 'today') {
+		setTimeout(() => initGraph(), 300000)
+	}
+}
+
+// analyse the incoming data table and create a data table ready for display
+function transformDatatable(
+	inputTable: RawDayGraphDataItem[],
+): GraphDataItem[] {
+	const outputTable: GraphDataItem[] = []
+	let previousRow: GraphDataItem = {}
+	let transformedRow: GraphDataItem = {}
+
+	inputTable.map((inputRow, index) => {
+		//for (let index = 0; index < inputTable.length; index++) {
+		transformedRow = transformRow(inputRow)
+		if (index == 0) {
+			startValues = transformedRow
+			startValues.chargingPv = 0
+			startValues.chargingBat = 0
+			// pvChargeCounter = 0
+			// batChargeCounter = 0
+		} else {
+			const values = calculatePowerValues(transformedRow, previousRow)
+			outputTable.push(values)
+			consumerCategories.map((cat) => {
+				historicSummary[cat].energyPv += values[cat + 'Pv'] / 12
+				historicSummary[cat].energyBat += values[cat + 'Bat'] / 12
+			})
+		}
+		previousRow = transformedRow
+	})
+	endValues = transformedRow
+
+	return outputTable
+}
+
+// transform one row of the incoming graph data table
+function transformRow(currentRow: RawDayGraphDataItem): GraphDataItem {
+	const currentItem: GraphDataItem = {}
+	currentItem.devices = 0
+	if (graphData.graphMode == 'day' || graphData.graphMode == 'today') {
+		const d = timeParse('%H:%M')(currentRow.date)
+		if (d) {
+			d.setMonth(dayGraph.date.getMonth())
+			d.setDate(dayGraph.date.getDate())
+			d.setFullYear(dayGraph.date.getFullYear())
+			currentItem.date = d.getTime()
+		}
+	} else {
+		const d = timeParse('%Y%m%d')(currentRow.date)
+
+		if (d) {
+			currentItem.date = d.getDate()
+		}
+	}
+	Object.entries(currentRow.counter).forEach((item) => {
+		currentItem.gridPush = item[1].exported
+		currentItem.gridPull = item[1].imported
+	})
+	Object.entries(currentRow.pv).forEach(([id, values]) => {
+		if (id == 'pv1') {
+			currentItem.solarPower = values.exported
+		}
+	})
+	if (Object.entries(currentRow.bat).length > 0) {
+		Object.entries(currentRow.bat).forEach(([id, values]) => {
+			if (id == 'all') {
+				currentItem.batIn = values.imported
+				currentItem.batOut = values.exported
+			}
+		})
+	} else {
+		currentItem.batIn = 0
+		currentItem.batOut = 0
+	}
+	Object.entries(currentRow.cp).forEach(([id, values]) => {
+		if (id != 'all') {
+			currentItem[id] = values.imported
+			currentItem['soc' + id] = values.soc
+		} else {
+			currentItem['charging'] = values.imported
+		}
+	})
+	Object.entries(currentRow.ev).forEach(([id, values]) => {
+		if (id != 'all') {
+			currentItem['soc-' + id] = values.soc
+		}
+	})
+	Object.entries(currentRow.sh).forEach(([id, values]) => {
+		if (id != 'all') {
+			currentItem[id] = values.imported
+			currentItem['devices'] += values.imported
+		} else {
+			currentItem['devices'] += values.imported
+		}
+	})
+	//currentItem['devices']=0
+	return currentItem
+}
+
+// list of chargepoints we have
+const cps = [
+	'cp0',
+	'cp1',
+	'cp2',
+	'cp3',
+	'cp4',
+	'cp5',
+	'cp6',
+	'cp7',
+	'cp8',
+	'cp9',
+]
+
+const shs = ['sh0', 'sh1', 'sh2', 'sh3', 'sh4']
+// calculate the graph values for one row based on the delta between two input rows
+function calculatePowerValues(
+	currentRow: GraphDataItem,
+	previousRow: GraphDataItem,
+): GraphDataItem {
+	const result: GraphDataItem = {}
+	result.date = currentRow.date
+	const cats = [
+		'gridPull',
+		'gridPush',
+		'solarPower',
+		'batIn',
+		'batOut',
+		'charging',
+		'devices',
+	]
+
+	cats.concat(cps).forEach((category) => {
+		result[category] = calculatePower(currentRow, previousRow, category)
+	})
+	cats.concat(shs).forEach((category) => {
+		result[category] = calculatePower(currentRow, previousRow, category)
+	})
+	result.soc0 = evSocs[0] ? currentRow[evSocs[0]] : 0
+	result.soc1 = evSocs[1] ? currentRow[evSocs[1]] : 0
+	result.selfUsage = result.solarPower - result.gridPush
+	result.house =
+		result.solarPower +
+		result.gridPull +
+		result.batOut -
+		result.gridPush -
+		result.batIn -
+		result.charging -
+		result.devices
+	result.inverter = 0
+
+	const usedEnergy = result.gridPull + result.batOut + result.solarPower
+	if (usedEnergy > 0) {
+		consumerCategories.map((cat) => calculateAutarchy(cat, result))
+	} else {
+		consumerCategories.map((cat) => {
+			result[cat + 'Pv'] = 0
+			result[cat + 'Bat'] = 0
+		})
+	}
+	return result
+}
+
+function calculatePower(
+	currentRow: { [key: string]: number },
+	previousRow: { [key: string]: number },
+	category: string,
+) {
+	if (
+		currentRow[category] !== undefined &&
+		previousRow[category] !== undefined
+	) {
+		return (12 * (currentRow[category] - previousRow[category])) / 1000
+	} else {
+		return 0
+	}
+}
+function calculateAutarchy(cat: string, values: GraphDataItem) {
+	values[cat + 'Pv'] =
+		(values[cat] * (values.solarPower - values.gridPush)) /
+		(values.solarPower - values.gridPush + values.gridPull + values.batOut)
+	values[cat + 'Bat'] =
+		(values[cat] * values.batOut) /
+		(values.solarPower - values.gridPush + values.gridPull + values.batOut)
+}
+function updateEnergyValues(
+	startValues: GraphDataItem,
+	endValues: GraphDataItem,
+) {
+	//const startValues = extractCounters (rawData[0]);
+	//const endValues = extractCounters(rawData[rawData.length - 1]);
+	historicSummary.pv.energy =
+		(endValues.solarPower - startValues.solarPower) / 1000
+	historicSummary.evuIn.energy =
+		(endValues.gridPull - startValues.gridPull) / 1000
+	historicSummary.batOut.energy = (endValues.batOut - startValues.batOut) / 1000
+	historicSummary.evuOut.energy =
+		(endValues.gridPush - startValues.gridPush) / 1000
+	historicSummary.batIn.energy = (endValues.batIn - startValues.batIn) / 1000
+	historicSummary.charging.energy =
+		(endValues.charging - startValues.charging) / 1000
+	historicSummary.devices.energy =
+		(endValues.devices - startValues.devices) / 1000
+	// historicSummary.charging.energyPv = (endValues.chargingPv - startValues.chargingPv) / 1000
+	// historicSummary.charging.energyBat = (endValues.chargingBat - startValues.chargingBat) / 1000
+	historicSummary.charging.pvPercentage = Math.round(
+		((historicSummary.charging.energyPv + historicSummary.charging.energyBat) /
+			historicSummary.charging.energy) *
+			100,
+	)
+
+	historicSummary.house.energy =
+		historicSummary.evuIn.energy +
+		historicSummary.pv.energy +
+		historicSummary.batOut.energy -
+		historicSummary.evuOut.energy -
+		historicSummary.batIn.energy -
+		historicSummary.charging.energy -
+		historicSummary.devices.energy
+	usageSummary.devices.energy = historicSummary.devices.energy
+	consumerCategories.map((cat) => {
+		usageSummary[cat].energyPv = historicSummary[cat].energyPv
+		usageSummary[cat].energyBat = historicSummary[cat].energyBat
+		historicSummary[cat].pvPercentage = Math.round(
+			((historicSummary[cat].energyPv + historicSummary[cat].energyBat) /
+				historicSummary[cat].energy) *
+				100,
+		)
+		usageSummary[cat].pvPercentage = historicSummary[cat].pvPercentage
+	})
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts b/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts
new file mode 100755
index 0000000000..9cdbc90e4b
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts
@@ -0,0 +1,140 @@
+import * as d3 from 'd3'
+import { globalData } from '../../assets/js/model'
+import {
+	type GraphDataItem,
+	type RawGraphDataItem,
+	graphData,
+	setGraphData,
+	liveGraph,
+} from './model'
+
+// methods:
+export function processLiveGraphMessages(topic: string, message: string) {
+	if (topic == 'openWB/graph/boolDisplayLiveGraph') {
+		globalData.displayLiveGraph = +message == 1
+	} else if (topic.match(/^openwb\/graph\/alllivevaluesJson[1-9][0-9]*$/i)) {
+		reloadLiveGraph(topic, message)
+	} else if (topic == 'openWB/graph/lastlivevaluesJson') {
+		updateLiveGraph(topic, message)
+	} else if (topic == 'openWB/graph/config/duration') {
+		//  updateGlobal("liveGraphDuration", JSON.parse(message));
+	} else {
+		console.warn('Ignored GRAPH message: [' + topic + '](' + message + ')')
+	}
+}
+// initial/refresh delivery of all graph data
+export function reloadLiveGraph(topic: string, rawMessage: string) {
+	if (!liveGraph.initialized) {
+		let graphRecords: RawGraphDataItem[] = []
+		const stringTable = rawMessage.toString().split('\n')
+		if (stringTable.length > 1) {
+			graphRecords = stringTable.map(
+				(recordString) => JSON.parse(recordString) as RawGraphDataItem,
+			)
+		} else {
+			graphRecords = []
+		}
+		const numbersFound = topic.match(/(\d+)$/g)
+		const serialNo = numbersFound ? numbersFound[0] : ''
+		if (serialNo != '') {
+			if (typeof liveGraph.rawDataPacks[+serialNo - 1] === 'undefined') {
+				liveGraph.rawDataPacks[+serialNo - 1] = graphRecords
+				liveGraph.initCounter++
+			}
+		}
+	}
+	if (liveGraph.initCounter == 16) {
+		// Initialization complete
+		const newGraphData: GraphDataItem[] = []
+		liveGraph.unsubscribeRefresh()
+		liveGraph.initialized = true
+		liveGraph.rawDataPacks.map((dataPack) => {
+			dataPack.map((rawItem) => {
+				const values = extractValues(rawItem)
+				newGraphData.push(values)
+			})
+		})
+		setGraphData(newGraphData)
+		liveGraph.subscribeUpdates()
+	}
+}
+// incremental update message for the live graph
+export function updateLiveGraph(topic: string, rawString: string) {
+	const rawItem = JSON.parse(rawString) as RawGraphDataItem
+	const values = extractValues(rawItem)
+	liveGraph.graphRefreshCounter++
+	setGraphData(graphData.data.concat(values))
+	if (liveGraph.graphRefreshCounter > 60) {
+		liveGraph.activate()
+	}
+}
+function extractValues(data: RawGraphDataItem): GraphDataItem {
+	const values: GraphDataItem = {}
+	values.date = fullDate(data.time).valueOf()
+	if (+data.grid > 0) {
+		values.gridPull = +data.grid
+		values.gridPush = 0
+	} else if (+data.grid <= 0) {
+		values.gridPull = 0
+		values.gridPush = -data.grid
+	} else {
+		values.gridPull = 0
+		values.gridPush = 0
+	}
+	if (+data['pv-all'] >= 0) {
+		values.solarPower = +data['pv-all']
+		values.inverter = 0
+	} else {
+		values.solarPower = 0
+		values.inverter = -data['pv-all']
+	}
+	values.house = +data['house-power']
+	//battery
+	if (+data['bat-all-power'] > 0) {
+		values.batOut = 0
+		values.batIn = +data['bat-all-power']
+	} else if (+data['bat-all-power'] < 0) {
+		values.batOut = -data['bat-all-power']
+		values.batIn = 0
+	} else {
+		values.batOut = 0
+		values.batIn = 0
+	}
+	if (data['bat-all-soc']) {
+		values.batterySoc = +data['bat-all-soc']
+	} else {
+		values.batterySoc = 0
+	}
+	values.charging = +data['charging-all']
+	// charge points - we only show a maximum of 10 chargepoints in the graph
+	for (let i = 0; i < 10; i++) {
+		if (data['cp' + i + '-power']) {
+			values['cp' + i] = +data['cp' + i + '-power']
+		} else {
+			values['cp' + i] = 0
+		}
+	}
+	values.selfUsage = values.solarPower - values.gridPush
+	if (values.selfUsage < 0) {
+		values.selfUsage = 0
+	}
+	values.devices = 0
+	return values
+}
+function fullDate(timeString: string) {
+	const now = new Date(Date.now())
+	const mSecondsPerDay = 86400000 // milliseconds in a day
+	let date = new Date()
+	const parsedDate = d3.timeParse('%H:%M:%S')(timeString)
+	if (parsedDate) {
+		date = parsedDate
+		date.setDate(now.getDate())
+		date.setMonth(now.getMonth())
+		date.setFullYear(now.getFullYear())
+		if (date.getHours() > now.getHours()) {
+			// this is an entry from yesterday
+			date = new Date(date.getTime() - mSecondsPerDay) // change date to yesterday
+		}
+	}
+	return date
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/processMonthGraphData.ts b/packages/modules/web_themes/colors/source/src/components/powerGraph/processMonthGraphData.ts
new file mode 100755
index 0000000000..2397220990
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/processMonthGraphData.ts
@@ -0,0 +1,165 @@
+import * as d3 from 'd3'
+import {
+	type GraphDataItem,
+	type RawDayGraphDataItem,
+	setGraphData,
+	calculateAutarchy,
+} from './model'
+import { historicSummary } from '@/assets/js/model'
+let monthlyValues: { [key: string]: number } = {}
+const consumerCategories = ['charging', 'house', 'batIn', 'devices']
+
+// methods:
+// Process a new message with monthly graph data. A single message contains all data
+export function processMonthGraphMessages(topic: string, message: string) {
+	const inputTable: RawDayGraphDataItem[] = JSON.parse(message).entries
+	consumerCategories.map((cat) => {
+		historicSummary[cat].energyPv = 0
+		historicSummary[cat].energyBat = 0
+	})
+	setGraphData(transformDatatable(inputTable))
+	updateEnergyValues(monthlyValues)
+	reloadMonthGraph(topic, message)
+}
+// transform the incoming format into the format used by the graph
+function transformDatatable(
+	inputTable: RawDayGraphDataItem[],
+): GraphDataItem[] {
+	const outputTable: GraphDataItem[] = []
+	let currentItem: GraphDataItem = {}
+	monthlyValues = {}
+	inputTable.map((inputRow) => {
+		currentItem = transformRow(inputRow)
+		outputTable.push(currentItem)
+		consumerCategories.map((cat) => {
+			historicSummary[cat].energyPv += currentItem[cat + 'Pv']
+			historicSummary[cat].energyBat += currentItem[cat + 'Bat']
+		})
+		Object.keys(currentItem).map((field) => {
+			if (field != 'date') {
+				if (monthlyValues[field]) {
+					monthlyValues[field] += currentItem[field]
+				} else {
+					monthlyValues[field] = currentItem[field]
+				}
+			}
+		})
+	})
+	return outputTable
+}
+// initial/refresh delivery of all graph data
+export function reloadMonthGraph(topic: string, rawMessage: string) {
+	const graphRecords: RawDayGraphDataItem[] = JSON.parse(rawMessage).entries
+
+	const newGraphData: GraphDataItem[] = []
+	graphRecords.map((dayData) => {
+		const values = transformRow(dayData)
+		newGraphData.push(values)
+	})
+}
+
+function transformRow(inputRow: RawDayGraphDataItem): GraphDataItem {
+	const outputRow: GraphDataItem = {}
+	// date
+	const d = d3.timeParse('%Y%m%d')(inputRow.date)
+	if (d) {
+		outputRow.date = d.getDate()
+	}
+	// counters
+	Object.entries(inputRow.counter).forEach((item) => {
+		outputRow.gridPush = item[1].energy_exported
+		outputRow.gridPull = item[1].energy_imported
+	})
+	// PV
+	Object.entries(inputRow.pv).forEach(([id, values]) => {
+		if (id == 'all') {
+			outputRow.solarPower = values.energy_exported
+		}
+	})
+	// Battery
+	if (Object.entries(inputRow.bat).length > 0) {
+		Object.entries(inputRow.bat).forEach(([id, values]) => {
+			if (id == 'all') {
+				outputRow.batIn = values.energy_imported
+				outputRow.batOut = values.energy_exported
+			}
+		})
+	} else {
+		outputRow.batIn = 0
+		outputRow.batOut = 0
+	}
+	// Charge points
+	Object.entries(inputRow.cp).forEach(([id, values]) => {
+		if (id != 'all') {
+			outputRow[id] = values.energy_imported
+			// outputRow['soc' + id] = values.soc
+		} else {
+			outputRow['charging'] = values.energy_imported
+		}
+	})
+	// Vehicles
+	Object.entries(inputRow.ev).forEach(([id, values]) => {
+		if (id != 'all') {
+			outputRow['soc-' + id] = values.soc
+		}
+	})
+	// Devices
+	outputRow.devices = Object.entries(inputRow.sh).reduce<number>(
+		(sum: number, item) => {
+			sum += item[1].energy_imported
+			return sum
+		},
+		0,
+	)
+
+	outputRow.selfUsage = outputRow.solarPower - outputRow.gridPush
+	outputRow.house =
+		outputRow.solarPower +
+		outputRow.gridPull +
+		outputRow.batOut -
+		outputRow.gridPush -
+		outputRow.batIn -
+		outputRow.charging
+	outputRow.inverter = 0
+	const usedEnergy =
+		outputRow.gridPull + outputRow.batOut + outputRow.solarPower
+	if (usedEnergy > 0) {
+		consumerCategories.map((cat) => calculateAutarchy(cat, outputRow))
+		// pvChargeCounter += (result.charging * result.solarPower / usedEnergy / 12 * 1000)
+		// batChargeCounter += (result.charging * result.batOut / usedEnergy / 12 * 1000)
+	} else {
+		consumerCategories.map((cat) => {
+			outputRow[cat + 'Pv'] = 0
+			outputRow[cat + 'Bat'] = 0
+		})
+	}
+
+	return outputRow
+}
+
+function updateEnergyValues(monthlyValues: { [key: string]: number }) {
+	historicSummary.pv.energy = monthlyValues.solarPower
+	historicSummary.evuIn.energy = monthlyValues.gridPull
+	historicSummary.batOut.energy = monthlyValues.batOut
+	historicSummary.evuOut.energy = monthlyValues.gridPush
+	historicSummary.batIn.energy = monthlyValues.batIn
+	historicSummary.charging.energy = monthlyValues.charging
+	historicSummary.devices.energy = monthlyValues.devices
+
+	historicSummary.house.energy =
+		historicSummary.evuIn.energy +
+		historicSummary.pv.energy +
+		historicSummary.batOut.energy -
+		historicSummary.evuOut.energy -
+		historicSummary.batIn.energy -
+		historicSummary.charging.energy -
+		historicSummary.devices.energy
+
+	consumerCategories.map((cat) => {
+		historicSummary[cat].pvPercentage = Math.round(
+			((historicSummary[cat].energyPv + historicSummary[cat].energyBat) /
+				historicSummary[cat].energy) *
+				100,
+		)
+	})
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/processYearGraphData.ts b/packages/modules/web_themes/colors/source/src/components/powerGraph/processYearGraphData.ts
new file mode 100755
index 0000000000..a98b86e565
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/processYearGraphData.ts
@@ -0,0 +1,175 @@
+import * as d3 from 'd3'
+import {
+	type GraphDataItem,
+	type RawDayGraphDataItem,
+	setGraphData,
+	calculateAutarchy,
+} from './model'
+import { historicSummary } from '@/assets/js/model'
+let yearlyValues: { [key: string]: number } = {}
+const consumerCategories = ['charging', 'house', 'batIn', 'devices']
+
+// methods:
+// Process a new message with yearly graph data. A single message contains all data
+export function processYearGraphMessages(topic: string, message: string) {
+	const inputTable: RawDayGraphDataItem[] = JSON.parse(message).entries
+	consumerCategories.map((cat) => {
+		historicSummary[cat].energyPv = 0
+		historicSummary[cat].energyBat = 0
+	})
+	setGraphData(transformDatatable(inputTable))
+	updateEnergyValues(yearlyValues)
+	reloadMonthGraph(topic, message)
+}
+// transform the incoming format into the format used by the graph
+function transformDatatable(
+	inputTable: RawDayGraphDataItem[],
+): GraphDataItem[] {
+	const outputTable: GraphDataItem[] = []
+	let currentItem: GraphDataItem = {}
+	yearlyValues = {}
+	inputTable.map((inputRow) => {
+		currentItem = transformRow(inputRow)
+		outputTable.push(currentItem)
+		consumerCategories.map((cat) => {
+			historicSummary[cat].energyPv += currentItem[cat + 'Pv']
+			historicSummary[cat].energyBat += currentItem[cat + 'Bat']
+		})
+		Object.keys(currentItem).map((field) => {
+			if (field != 'date') {
+				if (currentItem[field] < 0) {
+					console.warn(
+						`Negative energy value for ${field} in row ${currentItem['date']}. Ignoring the value.`,
+					)
+					currentItem[field] = 0
+				}
+				if (yearlyValues[field]) {
+					yearlyValues[field] += currentItem[field]
+				} else {
+					yearlyValues[field] = currentItem[field]
+				}
+			}
+		})
+	})
+	return outputTable
+}
+// initial/refresh delivery of all graph data
+export function reloadMonthGraph(topic: string, rawMessage: string) {
+	const graphRecords: RawDayGraphDataItem[] = JSON.parse(rawMessage).entries
+
+	const newGraphData: GraphDataItem[] = []
+	graphRecords.map((dayData) => {
+		const values = transformRow(dayData)
+		newGraphData.push(values)
+	})
+}
+
+function transformRow(inputRow: RawDayGraphDataItem): GraphDataItem {
+	const outputRow: GraphDataItem = {}
+	// date
+	const d = d3.timeParse('%Y%m%d')(inputRow.date)
+	if (d) {
+		outputRow.date = d.getMonth() + 1
+	}
+	// counters
+	Object.entries(inputRow.counter).forEach((item) => {
+		outputRow.gridPush = item[1].energy_exported / 1000
+		outputRow.gridPull = item[1].energy_imported / 1000
+	})
+	// PV
+	Object.entries(inputRow.pv).forEach(([id, values]) => {
+		if (id == 'all') {
+			outputRow.solarPower = values.energy_exported / 1000
+		}
+	})
+	// Battery
+	if (Object.entries(inputRow.bat).length > 0) {
+		Object.entries(inputRow.bat).forEach(([id, values]) => {
+			if (id == 'all') {
+				outputRow.batIn = values.energy_imported / 1000
+				outputRow.batOut = values.energy_exported / 1000
+			}
+		})
+	} else {
+		outputRow.batIn = 0
+		outputRow.batOut = 0
+	}
+	// Charge points
+	Object.entries(inputRow.cp).forEach(([id, values]) => {
+		if (id != 'all') {
+			outputRow[id] = values.energy_imported / 1000
+			// outputRow['soc' + id] = values.soc
+		} else {
+			outputRow['charging'] = values.energy_imported / 1000
+		}
+	})
+	// Vehicles
+	Object.entries(inputRow.ev).forEach(([id, values]) => {
+		if (id != 'all') {
+			outputRow['soc-' + id] = values.soc
+		}
+	})
+	// Devices
+	outputRow.devices = Object.entries(inputRow.sh).reduce<number>(
+		(sum: number, item) => {
+			if (item[1].energy_imported >= 0) {
+				sum += item[1].energy_imported / 1000
+			} else {
+				console.warn(
+					`Negative energy value for device ${item[0]} in row ${outputRow.date}. Ignoring this value`,
+				)
+			}
+			return sum
+		},
+		0,
+	)
+	outputRow.selfUsage = outputRow.solarPower - outputRow.gridPush
+	outputRow.house =
+		outputRow.solarPower +
+		outputRow.gridPull +
+		outputRow.batOut -
+		outputRow.gridPush -
+		outputRow.batIn -
+		outputRow.charging
+	outputRow.inverter = 0
+	const usedEnergy =
+		outputRow.gridPull + outputRow.batOut + outputRow.solarPower
+	if (usedEnergy > 0) {
+		consumerCategories.map((cat) => calculateAutarchy(cat, outputRow))
+		// pvChargeCounter += (result.charging * result.solarPower / usedEnergy / 12 * 1000)
+		// batChargeCounter += (result.charging * result.batOut / usedEnergy / 12 * 1000)
+	} else {
+		consumerCategories.map((cat) => {
+			outputRow[cat + 'Pv'] = 0
+			outputRow[cat + 'Bat'] = 0
+		})
+	}
+	return outputRow
+}
+
+function updateEnergyValues(yearlyValues: { [key: string]: number }) {
+	historicSummary.pv.energy = yearlyValues.solarPower
+	historicSummary.evuIn.energy = yearlyValues.gridPull
+	historicSummary.batOut.energy = yearlyValues.batOut
+	historicSummary.evuOut.energy = yearlyValues.gridPush
+	historicSummary.batIn.energy = yearlyValues.batIn
+	historicSummary.charging.energy = yearlyValues.charging
+	historicSummary.devices.energy = yearlyValues.devices
+
+	historicSummary.house.energy =
+		historicSummary.evuIn.energy +
+		historicSummary.pv.energy +
+		historicSummary.batOut.energy -
+		historicSummary.evuOut.energy -
+		historicSummary.batIn.energy -
+		historicSummary.charging.energy -
+		historicSummary.devices.energy
+
+	consumerCategories.map((cat) => {
+		historicSummary[cat].pvPercentage = Math.round(
+			((historicSummary[cat].energyPv + historicSummary[cat].energyBat) /
+				historicSummary[cat].energy) *
+				100,
+		)
+	})
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/powerMeter/PMLabel.vue b/packages/modules/web_themes/colors/source/src/components/powerMeter/PMLabel.vue
new file mode 100755
index 0000000000..469f94bc55
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerMeter/PMLabel.vue
@@ -0,0 +1,64 @@
+<template>
+	<g v-if="showMe" id="pmLabel">
+		<text
+			:x="x"
+			:y="y"
+			:fill="color"
+			:text-anchor="anchor"
+			:font-size="labelfontsize"
+			class="pmLabel"
+		>
+			<tspan :class="textclass"> {{ text }} </tspan
+			><tspan>
+				<FormatWatt v-if="data !== undefined" :watt="data.power" />
+			</tspan>
+		</text>
+	</g>
+</template>
+
+<script setup lang="ts">
+import type { PowerItem, ItemProps } from '@/assets/js/types'
+import FormatWatt from '../shared/FormatWatt.vue'
+import { computed } from 'vue'
+
+//props
+const props = defineProps<{
+	x: number
+	y: number
+	data?: PowerItem
+	props?: ItemProps
+	anchor: string
+	labeltext?: string
+	labelicon?: string
+	labelcolor?: string
+}>()
+
+//state
+const labelfontsize = 22
+
+// computed
+const text = computed(() => {
+	return props.labeltext
+		? props.labeltext
+		: props.props
+		? props.props.icon + ' '
+		: props.labelicon
+		? props.labelicon + ' '
+		: ''
+})
+const color = computed(() => {
+	return props.labelcolor
+		? props.labelcolor
+		: props.props
+		? props.props.color
+		: ''
+})
+const showMe = computed(() => {
+	return !props.data || props.data.power > 0
+})
+const textclass = computed(() => {
+	return props.labeltext ? '' : 'fas'
+})
+</script>
+
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerMeter/PMSourceArc.vue b/packages/modules/web_themes/colors/source/src/components/powerMeter/PMSourceArc.vue
new file mode 100755
index 0000000000..c0e7620841
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerMeter/PMSourceArc.vue
@@ -0,0 +1,77 @@
+<template>
+	<g id="pmSourceArc" :origin="draw" />
+</template>
+
+<script setup lang="ts">
+import { globalConfig } from '@/assets/js/themeConfig'
+import type { PowerItem } from '@/assets/js/types'
+import { sourceSummary } from '@/assets/js/model'
+import * as d3 from 'd3'
+import { computed, watchEffect } from 'vue'
+// props
+const props = defineProps<{
+	radius: number
+	cornerRadius: number
+	circleGapSize: number
+	emptyPower: number
+}>()
+//  computed:
+const draw = computed(() => {
+	// Draw the arc using d3
+	const arcCount = Object.values(sourceSummary).length
+	let emptyPowerItem: PowerItem = {
+		name: '',
+		power: props.emptyPower,
+		energy: 0,
+		energyPv: 0,
+		energyBat: 0,
+		pvPercentage: 0,
+		color: 'var(--color-bg)',
+		icon: '',
+	}
+	let plotdata = sourceSummary
+	plotdata['zz-empty'] = emptyPowerItem
+
+	const pieGenerator = d3
+		.pie<PowerItem>()
+		.value((record: PowerItem) => record.power)
+		.startAngle(-Math.PI / 2 + props.circleGapSize)
+		.endAngle(Math.PI / 2 - props.circleGapSize)
+		.sort(null)
+	const path = d3
+		.arc<d3.PieArcDatum<PowerItem>>()
+		.innerRadius((props.radius / 6) * 5)
+		.outerRadius(props.radius)
+		.cornerRadius(props.cornerRadius)
+		.padAngle(0)
+	const graph = d3.select('g#pmSourceArc')
+	graph.selectAll('*').remove()
+	graph
+		.selectAll('sources')
+		.data(pieGenerator(Object.values(plotdata)))
+		.enter()
+		.append('path')
+		.attr('d', path)
+		.attr('fill', (d) => d.data.color)
+		.attr('stroke', (d, i) =>
+			i == arcCount
+				? d.data.power > 0
+					? 'var(--color-scale)'
+					: 'null'
+				: d.data.color,
+		)
+	return 'pmSourceArc.vue'
+})
+
+watchEffect(() => {
+	let currentMax =
+		sourceSummary.pv.power +
+		sourceSummary.evuIn.power +
+		sourceSummary.batOut.power
+	if (currentMax > globalConfig.maxPower) {
+		globalConfig.maxPower = currentMax
+	}
+})
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerMeter/PMUsageArc.vue b/packages/modules/web_themes/colors/source/src/components/powerMeter/PMUsageArc.vue
new file mode 100755
index 0000000000..b09a711448
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerMeter/PMUsageArc.vue
@@ -0,0 +1,73 @@
+<template>
+	<g id="pmUsageArc" :origin="draw" />
+</template>
+
+<script setup lang="ts">
+import type { PowerItem } from '@/assets/js/types'
+import { usageSummary } from '@/assets/js/model'
+import { shDevices } from '../smartHome/model'
+import * as d3 from 'd3'
+import { computed } from 'vue'
+// props
+const props = defineProps<{
+	radius: number
+	cornerRadius: number
+	circleGapSize: number
+	emptyPower: number
+}>()
+//  computed: {
+const draw = computed(() => {
+	// Draw the arc using d3
+	let emptyPowerItem: PowerItem = {
+		name: '',
+		power: props.emptyPower,
+		energy: 0,
+		energyPv: 0,
+		energyBat: 0,
+		pvPercentage: 0,
+		color: 'var(--color-bg)',
+		icon: '',
+	}
+	const plotdata = [usageSummary.evuOut, usageSummary.charging]
+		.concat(
+			Object.values(shDevices)
+				.filter((row) => row.configured && !row.countAsHouse)
+				.sort((a, b) => {
+					return b.power - a.power
+				}) as PowerItem[],
+		)
+		.concat([usageSummary.batIn, usageSummary.house])
+		.concat(emptyPowerItem)
+	const arcCount = plotdata.length - 1
+	const pieGenerator = d3
+		.pie<PowerItem>()
+		.value((record: PowerItem) => record.power)
+		.startAngle(Math.PI * 1.5 - props.circleGapSize)
+		.endAngle(Math.PI / 2 + props.circleGapSize)
+		.sort(null)
+	const path = d3
+		.arc<d3.PieArcDatum<PowerItem>>()
+		.innerRadius((props.radius / 6) * 5)
+		.outerRadius(props.radius)
+		.cornerRadius(props.cornerRadius)
+	const graph = d3.select('g#pmUsageArc')
+	graph.selectAll('*').remove()
+	graph
+		.selectAll('consumers')
+		.data(pieGenerator(plotdata))
+		.enter()
+		.append('path')
+		.attr('d', path)
+		.attr('fill', (d) => d.data.color)
+		.attr('stroke', (d, i) =>
+			i == arcCount
+				? d.data.power > 0
+					? 'var(--color-scale)'
+					: 'null'
+				: d.data.color,
+		)
+	return 'pmUsageArc.vue'
+})
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/powerMeter/PowerMeter.vue b/packages/modules/web_themes/colors/source/src/components/powerMeter/PowerMeter.vue
new file mode 100755
index 0000000000..292d9b2ae7
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/powerMeter/PowerMeter.vue
@@ -0,0 +1,237 @@
+<template>
+	<WBWidget :full-width="true">
+		<template #title> Aktuelle Leistung </template>
+		<!-- <template v-slot:buttons>
+      <button class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#themeconfig">
+      <span class="fa-solid fa-bars px-0"></span>
+    </button>
+      </template> -->
+		<figure id="powermeter" class="p-0 m-0">
+			<svg :viewBox="'0 0 ' + width + ' ' + height">
+				<g :transform="'translate(' + width / 2 + ',' + height / 2 + ')'">
+					<!-- Show the two arcs -->
+					<PMSourceArc
+						:radius="radius"
+						:corner-radius="cornerRadius"
+						:circle-gap-size="circleGapSize"
+						:empty-power="emptyPower"
+					/>
+
+					<PMUsageArc
+						:sh-device="shDevices"
+						:radius="radius"
+						:corner-radius="cornerRadius"
+						:circle-gap-size="circleGapSize"
+						:empty-power="emptyPower"
+					/>
+
+					<!-- Show the values for the different categories -->
+					<PMLabel
+						:x="0"
+						:y="-height / 5"
+						:data="sourceSummary.pv"
+						:props="masterData.pv"
+						:anchor="'middle'"
+						:config="globalConfig"
+					/>
+					<PMLabel
+						:x="0"
+						:y="((-height / 2) * 3) / 5"
+						:data="sourceSummary.evuIn"
+						:props="masterData.evuIn"
+						:anchor="'middle'"
+						:config="globalConfig"
+					/>
+					<PMLabel
+						:x="-height / 2 / 5"
+						:y="height / 2 - margin + 15"
+						:data="sourceSummary.batOut"
+						:props="masterData.batOut"
+						:anchor="'end'"
+						:config="globalConfig"
+					/>
+					<!-- iterate over all usage items-->
+					<PMLabel
+						v-for="(item, index) in valuesToDisplay"
+						:key="index"
+						:x="labelCoordinates(index).x"
+						:y="labelCoordinates(index).y"
+						:data="item"
+						:labelicon="item.icon"
+						:labelcolor="item.color"
+						:anchor="'middle'"
+						:config="globalConfig"
+					/>
+
+					<!-- Show the SoC for the first two cars -->
+					<PMLabel
+						v-if="chargepoints.length > 0 && chargepoints[0].isSocConfigured"
+						:x="-width / 2 - margin / 4 + 10"
+						:y="-height / 2 + margin + 5"
+						:labeltext="
+							trimName(chargepoints[0].vehicleName) + ': ' + soc(0) + '%'
+						"
+						:labelcolor="chargepoints[0].color"
+						:anchor="'start'"
+						:config="globalConfig"
+					/>
+					<PMLabel
+						v-if="chargepoints.length > 1 && chargepoints[1].isSocConfigured"
+						:x="width / 2 + margin / 4 - 10"
+						:y="-height / 2 + margin + 5"
+						:labeltext="
+							trimName(chargepoints[1].vehicleName) + ': ' + soc(1) + '%'
+						"
+						:labelcolor="chargepoints[1].color"
+						:anchor="'end'"
+						:config="globalConfig"
+					/>
+					<!-- Show the SoC of the 1st battery -->
+					<PMLabel
+						v-if="globalData.batterySoc > 0"
+						:x="-width / 2 - margin / 4 + 10"
+						:y="height / 2 - margin + 15"
+						:labeltext="'Speicher: ' + globalData.batterySoc + '%'"
+						:labelcolor="usageSummary.batIn.color"
+						:anchor="'start'"
+						:config="globalConfig"
+					/>
+					<!-- Show the current consumption -->
+					<PMLabel
+						:x="0"
+						:y="0"
+						:labeltext="currentConsumptionString"
+						labelcolor="var(--color-fg)"
+						anchor="middle"
+						:config="globalConfig"
+					/>
+					<!-- Show the Peak value if we use relative arc lengths -->
+					<text
+						v-if="globalConfig.showRelativeArcs"
+						:x="width / 2 - 44"
+						y="2"
+						text-anchor="middle"
+						fill="var(--color-axis)"
+						font-size="12"
+					>
+						Peak: {{ maxPowerString }}
+					</text>
+				</g>
+			</svg>
+		</figure>
+		<!-- <ModalComponent modal-id="themeconfig">
+      <template v-slot:title>Look & Feel</template>
+    <ThemeSettings @resetArcs="resetArcs"></ThemeSettings>
+    </ModalComponent> -->
+	</WBWidget>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import { globalConfig } from '@/assets/js/themeConfig'
+import {
+	globalData,
+	shDevices,
+	sourceSummary,
+	usageSummary,
+	masterData,
+} from '@/assets/js/model'
+import { chargePoints } from '@/components/chargePointList/model'
+import PMSourceArc from './PMSourceArc.vue'
+import PMUsageArc from './PMUsageArc.vue'
+import PMLabel from './PMLabel.vue'
+import WBWidget from '../shared/WBWidget.vue'
+import { formatWatt } from '@/assets/js/helpers'
+
+// state:
+const width = 500
+const height = width
+const margin = 20
+const cornerRadius = 1
+const circleGapSize = Math.PI / 40
+const schemes = [[4], [4, 6], [1, 4, 6], [0, 2, 4, 6], [0, 2, 3, 5, 6]]
+
+// computed
+
+const labelPositions = [
+	{ x: -85, y: ((height / 2) * 1) / 5 },
+	{ x: 0, y: ((height / 2) * 1) / 5 },
+	{ x: 85, y: ((height / 2) * 1) / 5 },
+	{ x: -85, y: ((height / 2) * 2) / 5 },
+	{ x: 0, y: ((height / 2) * 2) / 5 },
+	{ x: 85, y: ((height / 2) * 2) / 5 },
+	{ x: 0, y: ((height / 2) * 3) / 5 },
+]
+const radius = computed(() => {
+	return width / 2 - margin
+})
+const currentConsumptionString = computed(() => {
+	let consumptionLabel = ''
+	let sourcesToDisplay = Object.values(sourceSummary).filter((v) => v.power > 0)
+	if (sourcesToDisplay.length == 1 && sourcesToDisplay[0].name == 'PV') {
+		consumptionLabel = 'Aktueller Verbrauch: '
+	} else {
+		consumptionLabel = 'Bezug/Verbrauch: '
+	}
+
+	return (
+		consumptionLabel +
+		formatWatt(
+			usageSummary.house.power +
+				usageSummary.charging.power +
+				usageSummary.devices.power +
+				usageSummary.batIn.power,
+			globalConfig.decimalPlaces,
+		)
+	)
+})
+const maxPowerString = computed(() => {
+	let currentPower =
+		sourceSummary.pv.power +
+		sourceSummary.evuIn.power +
+		sourceSummary.batOut.power
+	return globalConfig.maxPower > currentPower
+		? formatWatt(globalConfig.maxPower, globalConfig.decimalPlaces)
+		: formatWatt(currentPower, globalConfig.decimalPlaces)
+})
+const chargepoints = computed(() => {
+	return Object.values(chargePoints)
+})
+const emptyPower = computed(() => {
+	// with relative arcs, this is the empty portion of the arc
+	let result = 0
+	if (globalConfig.showRelativeArcs) {
+		result =
+			globalConfig.maxPower -
+			(sourceSummary.pv.power +
+				sourceSummary.evuIn.power +
+				sourceSummary.batOut.power)
+	}
+	return result < 0 ? 0 : result
+})
+const valuesToDisplay = computed(() => {
+	return [
+		usageSummary.evuOut,
+		usageSummary.charging,
+		usageSummary.devices,
+		usageSummary.batIn,
+		usageSummary.house,
+	].filter((x) => x.power > 0)
+})
+const scheme = computed(() => schemes[valuesToDisplay.value.length - 1])
+function labelCoordinates(item: number) {
+	return labelPositions[scheme.value[item]]
+}
+
+// methods
+
+function soc(i: number) {
+	return chargepoints.value[i].soc
+}
+function trimName(name: string) {
+	const maxlen = 12
+	return name.length > maxlen ? name.slice(0, maxlen - 1) + '.' : name
+}
+</script>
+
+<style></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/priceChart/PriceChart.vue b/packages/modules/web_themes/colors/source/src/components/priceChart/PriceChart.vue
new file mode 100755
index 0000000000..9b585d21cd
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/priceChart/PriceChart.vue
@@ -0,0 +1,202 @@
+<template>
+	<WBWidget v-if="etData.isEtEnabled">
+		<p>not implemented yet</p>
+
+		<!-- 		<template #title> Preisbasiertes Laden </template>
+		<template #buttons>
+			<span class="color-charging"> Max: {{ etData.etMaxPrice }} ct</span>
+		</template>
+		<div class="row p-0 m-0">
+			<div class="col-12 pricechartColumn p-0 m-0">
+				<figure id="pricechart" class="p-0 m-0">
+					<svg viewBox="0 0 400 120">
+						<g
+							id="priceChartCanvas"
+							:transform="'translate(' + margin.left + ',' + margin.right + ')'"
+						/>
+					</svg>
+				</figure>
+			</div>
+		</div>
+		<div class="row m-0 p-0">
+			<div class="col-2 m-0 p-0 d-flex justify-content-start">
+				<button
+					type="button"
+					class="btn btn-secondary priceLess price-button"
+					@click="reducePrice"
+				>
+					<i class="fa fa-xl fa-minus-square" />
+				</button>
+			</div>
+			<div class="col-8 d-flex justify-content-center">
+				<input
+					id="maxPrice"
+					v-model.number="etData.etMaxPrice"
+					type="range"
+					class="form-range"
+					min="-25"
+					max="95"
+					step="0.1"
+				/>
+			</div>
+			<div class="col-2 m-0 p-0 d-flex justify-content-end">
+				<button
+					type="button"
+					class="btn btn-secondary priceMore price-button"
+					@click="increasePrice"
+				>
+					<i class="fa fa-xl fa-plus-square" />
+				</button>
+			</div>
+		</div>
+		<div class="p-0 m-0">
+			<div class="col m-0 p-0 tablecell maxPrice">
+				<label for="maxPrice" class="col-form-label p-0 m-0"
+					>Max. Preis: {{ etData.etMaxPrice }} ct
+				</label>
+			</div>
+		</div> -->
+	</WBWidget>
+</template>
+
+<script setup lang="ts">
+// import { computed } from 'vue'
+//import * as d3 from 'd3'
+import { etData } from './model'
+import WBWidget from '../shared/WBWidget.vue'
+
+/* const width = 400
+const height = 120
+const margin = { top: 5, bottom: 15, left: 15, right: 5 }
+const plotdata = computed(() => {
+	let valueArray: number[][] = []
+	if (etData.etPriceList != '') {
+		let lineBuffer = etData.etPriceList.split(/\r?\n|\r/) // split into lines
+		lineBuffer.shift() // remove first line
+		valueArray = lineBuffer
+			.map((line) => {
+				// split lines into tuples [time,price]
+				return line.split(',')
+			})
+			.map((line) => [+line[0] * 1000, +line[1]]) // multiply timestamps by 1000
+	}
+	return valueArray
+})
+ const barwidth = computed(() => {
+	if (plotdata.value.length > 1) {
+		return (width - margin.left - margin.right) / plotdata.value.length - 1
+	} else {
+		return 0
+	}
+}) 
+const xScale = computed(() => {
+	let xdomain = d3.extent(plotdata.value, (d) => d[0]) as [number, number]
+	xdomain[1] = xdomain[1] + 3600000
+	return d3
+		.scaleTime()
+		.range([0, width - margin.left - margin.right])
+		.domain(xdomain)
+})
+const yScale = computed(() => {
+	let ydomain = d3.extent(plotdata.value, (d) => d[1]) as [number, number]
+	if (ydomain[0] > 0) {
+		ydomain[0] = 0
+	}
+	ydomain[1] = Math.floor(ydomain[1] + 1)
+	return d3
+		.scaleLinear()
+		.range([height - margin.bottom - margin.top, 0])
+		.domain(ydomain)
+})
+const linePath = computed(() => {
+	console.log(etData)
+	const generator = d3.line()
+	const points = [
+		[0, yScale.value(etData.etMaxPrice)],
+		[width - margin.left - margin.right, yScale.value(etData.etMaxPrice)],
+	]
+	return generator(points as [number, number][])
+})
+const xAxisGenerator = computed(() => {
+	return d3
+		.axisBottom<Date>(xScale.value)
+		.ticks(4)
+		.tickFormat(d3.timeFormat('%H:%M'))
+})
+const yAxisGenerator = computed(() => {
+	return d3
+		.axisLeft<number>(yScale.value)
+		.ticks(6)
+		.tickSizeInner(-(width - margin.right - margin.left))
+		.tickFormat((d) => d.toString())
+})
+ const draw = computed(() => {
+	let svg = d3.select('g#priceChartCanvas')
+	svg.selectAll('*').remove()
+	const bargroups = svg
+		.selectAll('bar')
+		.data(plotdata.value)
+		.enter()
+		.append('g')
+	bargroups
+		.append('rect')
+		.attr('class', 'bar')
+		.attr('x', (d) => xScale.value(d[0]))
+		.attr('y', (d) => (d[1] >= 0 ? yScale.value(d[1]) : yScale.value(0)))
+		.attr('width', barwidth.value)
+		.attr('height', (d) =>
+			d[1] >= 0
+				? yScale.value(0) - yScale.value(d[1])
+				: yScale.value(d[1]) - yScale.value(0),
+		)
+		.attr('fill', (d) =>
+			d[1] <= etData.etMaxPrice ? 'var(--color-charging)' : 'var(--color-axis',
+		)
+	// Line for max price
+	svg.append('path').attr('d', linePath.value).attr('stroke', 'yellow')
+	// X Axis
+	const xAxis = svg.append('g').attr('class', 'axis').call(xAxisGenerator.value)
+	xAxis.attr(
+		'transform',
+		'translate(' + margin.left + ',' + (height - margin.bottom) + ')',
+	)
+	xAxis.selectAll('.tick').attr('font-size', 8).attr('color', 'var(--color-bg)')
+	xAxis
+		.selectAll('.tick line')
+		.attr('stroke', 'var(--color-bg)')
+		.attr('stroke-width', '0.5')
+	xAxis.select('.domain').attr('stroke', 'var(--color-bg')
+	// Y Axis
+	const yAxis = svg.append('g').attr('class', 'axis').call(yAxisGenerator.value)
+	yAxis.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
+	yAxis.selectAll('.tick').attr('font-size', 8).attr('color', 'var(--color-bg)')
+
+	yAxis
+		.selectAll('.tick line')
+		.attr('stroke', 'var(--color-bg)')
+		.attr('stroke-width', '0.5')
+
+	yAxis.select('.domain').attr('stroke', 'var(--color-bg)')
+
+	return 'PriceChart.vue'
+}) 
+function increasePrice() {
+	etData.etMaxPrice = Math.round(etData.etMaxPrice * 10 + 1) / 10
+}
+function reducePrice() {
+	etData.etMaxPrice = Math.round(etData.etMaxPrice * 10 - 1) / 10
+} 
+*/
+</script>
+
+<style scoped>
+.color-charging {
+	color: var(--color-charging);
+}
+
+.price-button {
+	background-color: var(--color-bg);
+	color: var(--color-fg);
+	border: 0;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/priceChart/model.ts b/packages/modules/web_themes/colors/source/src/components/priceChart/model.ts
new file mode 100755
index 0000000000..e3e4e1c2bd
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/priceChart/model.ts
@@ -0,0 +1,21 @@
+import { reactive } from 'vue'
+import { updateServer } from '@/assets/js/sendMessages'
+class EtData {
+	etPriceList = ''
+	private _etMaxPrice = 20
+	etCurrentPrice = 0
+	isEtEnabled = false
+	etProvider = ''
+	get etMaxPrice() {
+		return this._etMaxPrice
+	}
+	set etMaxPrice(max: number) {
+		this._etMaxPrice = max
+		updateServer('etMaxPrice', max)
+	}
+	updateEtMaxPrice(max: number) {
+		this._etMaxPrice = max
+	}
+}
+
+export const etData = reactive(new EtData())
diff --git a/packages/modules/web_themes/colors/source/src/components/priceChart/processMessages.ts b/packages/modules/web_themes/colors/source/src/components/priceChart/processMessages.ts
new file mode 100755
index 0000000000..e2e86704d6
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/priceChart/processMessages.ts
@@ -0,0 +1,35 @@
+import { etData } from './model'
+
+export function processEtProviderMessages(topic: string, message: string) {
+	if (topic == 'openWB/optional/et/active') {
+		etData.isEtEnabled = JSON.parse(message)
+	} else if (topic == 'openWB/optional/et/get/price') {
+		etData.etCurrentPrice = parseFloat(message)
+	} else if (topic == 'openWB/optional/et/config/max_price') {
+		etData.updateEtMaxPrice(parseFloat(message))
+	} else if (topic == 'openWB/optional/et/provider') {
+		etData.etProvider = JSON.parse(message)
+	} else {
+		console.warn('Ignored ET Provider message: ' + topic)
+	}
+	// else if ( mqttTopic == 'openWB/global/ETProvider/modulePath' ) {
+	// 	$('.etproviderLink').attr("href", "/openWB/modules/"+mqttPayload+"/stromtarifinfo/infopagephp");
+	// }
+	// else if ( mqttTopic == 'openWB/global/awattar/pricelist' ) {
+	// 	// read etprovider values and trigger graph creation
+	// 	// loadElectricityPriceChart will show electricityPriceChartCanvas if etprovideraktiv=1 in openwb.conf
+	// 	// graph will be redrawn after 5 minutes (new data pushed from cron5min.sh)
+	// 	var csvData = [];
+	// 	var rawcsv = mqttPayload.split(/\r?\n|\r/);
+	// 	// skip first entry: it is module-name responsible for list
+	// 	for (var i = 1; i < rawcsv.length; i++) {
+	// 		csvDatapush(rawcsv[i].split(','));
+	// 	}
+	// 	// Timeline (x-Achse) ist UNIX Timestamp in UTC, deshalb Umrechnung (*1000) in Javascript-Timestamp (mit Millisekunden)
+	// 	electricityPriceTimeline = getCol(csvData, 0).map(function(x) { return x * 1000; });
+	// 	// Chartline (y-Achse) ist Preis in ct/kWh
+	// 	electricityPriceChartline = getCol(csvData, 1);
+
+	// 	loadElectricityPriceChart();
+	// }
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/setup/Setup.vue b/packages/modules/web_themes/colors/source/src/components/setup/Setup.vue
new file mode 100755
index 0000000000..5eee5ab119
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/setup/Setup.vue
@@ -0,0 +1,32 @@
+<template>
+  <WBWidget :variable-width="true"  >
+    <template v-slot:title>
+      Setup
+    </template>
+    <h3>to be done</h3>
+    <div v-for="[key, value]  of system.components">
+    <h3> {{ key }} </h3>
+    <table class="table">
+      <thead>
+        <td>Modul</td><td>Beschreibung</td>
+      </thead>
+      <tbody>
+      <tr v-for="item of value">
+        <th>{{ item.name }} </th>
+        <th>{{ item.text }}</th>
+      </tr>
+    </tbody>
+    </table>
+  </div>
+  </WBWidget>
+
+  </template>
+
+<script setup lang="ts">
+// import { computed, ref, watch, watchEffect } from 'vue'
+import WBWidget from '@/components/shared/WBWidget.vue'
+import { system } from './model'
+</script>
+
+<style scoped>
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/setup/model.ts b/packages/modules/web_themes/colors/source/src/components/setup/model.ts
new file mode 100755
index 0000000000..35a35bde1b
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/setup/model.ts
@@ -0,0 +1,16 @@
+import { reactive } from 'vue'
+export class System {
+	components  = new Map<string, SystemComponent[]> 
+}
+
+export const system: System = reactive(new System())
+
+export type RawComponent = {
+value: string,
+text: string,
+component: [{value: string, text: string}]
+}
+export type SystemComponent = {
+	name: string,
+	text: string
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/setup/processMessages.ts b/packages/modules/web_themes/colors/source/src/components/setup/processMessages.ts
new file mode 100755
index 0000000000..19879a6640
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/setup/processMessages.ts
@@ -0,0 +1,44 @@
+import { type RawComponent, type SystemComponent, system } from './model'
+
+export function processSystemMessages(topic: string, message: string) {
+  // console.log (`SYSTEM: (${topic}):${message}`)
+
+  if (topic.match(/^openWB\/system\/configurable\//i,)) {
+    processConfigurableMessages(topic, message)
+  } /*else if ( topic.match(/^openWB\/LegacySmarthome\/Devices\//i,)) {
+    processSmarthomeDeviceMessages(topic,message)
+  } else {
+    // console.warn('Ignored Smarthome status message: ' + topic)
+  } */
+}
+
+function processConfigurableMessages(topic: string, message: string) {
+  if (topic.match(/^openWB\/system\/configurable\/devices_components$/i,)) {
+    storeComponents(JSON.parse(message))
+  }
+}
+function storeComponents(complist: [RawComponent]) {
+  for (const group of complist) {
+    for (const item of group.component) {
+      if (!(system.components.has(item.value))) {
+        system.components.set(item.value, [])
+      }
+      system.components.get(item.value)!.push({name: group.value, text: item.text})
+    }
+  }
+}
+
+function getIndex(topic: string): number | undefined {
+  let index = 0
+  try {
+    var matches = topic.match(/(?:\/)([0-9]+)(?=\/)/g)
+    if (matches) {
+      index = +matches[0].replace(/[^0-9]+/g, '')
+      return index
+    } else {
+      return undefined
+    }
+  } catch (e) {
+    console.warn('Parser error in getIndex for topic ' + topic)
+  }
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/BatterySymbol.vue b/packages/modules/web_themes/colors/source/src/components/shared/BatterySymbol.vue
new file mode 100755
index 0000000000..38d19ef5e2
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/BatterySymbol.vue
@@ -0,0 +1,31 @@
+<template>
+	<span>
+		<i class="fa batIcon" :class="batterySymbol" />
+		{{ soc + '%' }}
+	</span>
+</template>
+<script setup lang="ts">
+import { computed } from 'vue'
+const props = defineProps<{
+	soc: number
+}>()
+
+const batterySymbol = computed(() => {
+	if (props.soc <= 10) {
+		return 'fa-battery-empty'
+	} else if (props.soc < 50) {
+		return 'fa-battery-quarter'
+	} else if (props.soc < 75) {
+		return 'fa-battery-half'
+	} else if (props.soc < 95) {
+		return 'fa-battery-three-quarters'
+	} else {
+		return 'fa-battery-full'
+	}
+})
+</script>
+<style scoped>
+.batIcon {
+	color: var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/Carousel.vue b/packages/modules/web_themes/colors/source/src/components/shared/Carousel.vue
new file mode 100755
index 0000000000..ea19c0c134
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/Carousel.vue
@@ -0,0 +1,40 @@
+<template>
+  <div class="row py-0 px-0 m-0">
+    <swiper-container :space-between="0" :pagination="{ clickable: true }" slides-per-view="1"
+      class="p-0 m-0 swiper-carousel" :breakpoints="{
+        992: { slidesPerView: 3, spaceBetween: 0 }
+      }">
+
+      <swiper-slide>
+        <div :class="(widescreen) ? 'mb-0' : 'mb-5'" class="flex-fill d-flex align-items-stretch">
+          <slot name="item1"></slot>
+        </div>
+      </swiper-slide>
+      <swiper-slide>
+        <div :class="(widescreen) ? 'mb-0' : 'mb-5'" class="flex-fill d-flex align-items-stretch">
+          <slot name="item2"></slot>
+        </div>
+      </swiper-slide>
+      <swiper-slide>
+        <div :class="(widescreen) ? 'mb-0' : 'mb-5'" class="flex-fill d-flex align-items-stretch">
+          <slot name="item3"></slot>
+        </div>
+      </swiper-slide>
+    </swiper-container>
+    <!--  <swiper-pagination></swiper-pagination> -->
+
+  </div>
+</template>
+
+<script setup lang="ts">
+import 'swiper/css'
+import 'swiper/css/pagination'
+import { widescreen } from '@/assets/js/themeConfig';
+
+
+</script>
+<style scoped>
+.button {
+  color: var(--color-fg);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/CarouselFix.vue b/packages/modules/web_themes/colors/source/src/components/shared/CarouselFix.vue
new file mode 100755
index 0000000000..3b0365079b
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/CarouselFix.vue
@@ -0,0 +1,50 @@
+<template>
+	<div class="row py-0 px-0 m-0">
+		<swiper-container
+			:space-between="0"
+			:pagination="{ clickable: true }"
+			slides-per-view="1"
+			class="p-0 m-0 swiper-carousel"
+			:breakpoints="{
+				992: { slidesPerView: 3, spaceBetween: 0 },
+			}"
+		>
+			<swiper-slide>
+				<div
+					:class="widescreen ? 'mb-0' : 'mb-5'"
+					class="flex-fill d-flex align-items-stretch"
+				>
+					<slot name="item1" />
+				</div>
+			</swiper-slide>
+			<swiper-slide>
+				<div
+					:class="widescreen ? 'mb-0' : 'mb-5'"
+					class="flex-fill d-flex align-items-stretch"
+				>
+					<slot name="item2" />
+				</div>
+			</swiper-slide>
+			<swiper-slide>
+				<div
+					:class="widescreen ? 'mb-0' : 'mb-5'"
+					class="flex-fill d-flex align-items-stretch"
+				>
+					<slot name="item3" />
+				</div>
+			</swiper-slide>
+		</swiper-container>
+		<!--  <swiper-pagination></swiper-pagination> -->
+	</div>
+</template>
+
+<script setup lang="ts">
+import 'swiper/css'
+import 'swiper/css/pagination'
+import { widescreen } from '@/assets/js/themeConfig'
+</script>
+<style scoped>
+.button {
+	color: var(--color-fg);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/CarouselFlex.vue b/packages/modules/web_themes/colors/source/src/components/shared/CarouselFlex.vue
new file mode 100755
index 0000000000..0051917d0b
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/CarouselFlex.vue
@@ -0,0 +1,22 @@
+<template>
+	<swiper
+		:space-between="30"
+		:slides-per-view="1"
+		:pagination="{ clickable: true }"
+		:modules="modules"
+		class="carousel2"
+	>
+		<slot />
+		<swiper-slide>foo</swiper-slide>
+		<swiper-slide>bar</swiper-slide>
+	</swiper>
+</template>
+<script setup lang="ts">
+import { Swiper, SwiperSlide } from 'swiper/vue'
+import { Pagination } from 'swiper/modules'
+import 'swiper/css'
+import 'swiper/css/pagination'
+
+const modules = [Pagination]
+</script>
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/CarouselItem.vue b/packages/modules/web_themes/colors/source/src/components/shared/CarouselItem.vue
new file mode 100755
index 0000000000..a2879b66ab
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/CarouselItem.vue
@@ -0,0 +1,16 @@
+<template>
+	<swiper-slide>
+		<slot />
+	</swiper-slide>
+</template>
+
+<script setup lang="ts">
+import { SwiperSlide } from 'swiper/vue'
+import 'swiper/css'
+import 'swiper/css/pagination'
+</script>
+<style scoped>
+.swiper-slide {
+	width: 100%;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/CheckBoxInput.vue b/packages/modules/web_themes/colors/source/src/components/shared/CheckBoxInput.vue
new file mode 100755
index 0000000000..18596c9cf7
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/CheckBoxInput.vue
@@ -0,0 +1,51 @@
+<template>
+	<div v-for="(element, index) in options" :key="index">
+		<input
+			:id="'check' + index"
+			v-model="v[index]"
+			class="form-check-input"
+			type="checkbox"
+			:value="element"
+		/>
+		<label
+			class="form-check-label px-2"
+			:for="'check' + index"
+			:style="optionColor(index)"
+			>{{ options[index] }}</label
+		>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed, type StyleValue } from 'vue'
+const props = defineProps<{
+	options: string[]
+	modelValue: boolean[]
+}>()
+const emit = defineEmits(['update:modelValue'])
+const v = computed({
+	get() {
+		return props.modelValue
+	},
+	set(value: boolean[]) {
+		console.log('SET CHECKBOX')
+		emit('update:modelValue', value)
+	},
+})
+function optionColor(index: number): StyleValue {
+	if (v.value[index]) {
+		return { color: 'var(--color-pv)' }
+	} else {
+		return { color: 'var(--color-menu)' }
+	}
+}
+</script>
+
+<style scoped>
+.form-check-input {
+	background-color: var(--color-menu);
+}
+.form-check-input:checked {
+	background-color: var(--color-pv);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/ConfigItem.vue b/packages/modules/web_themes/colors/source/src/components/shared/ConfigItem.vue
new file mode 100755
index 0000000000..15b9007e73
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/ConfigItem.vue
@@ -0,0 +1,90 @@
+<template>
+	<WbSubwidget :fullwidth="fullwidth ? true : false">
+		<div class="col-12 m-0 mb-0 px-0 py-0 configitem">
+			<div class="titlecolumn m-0 p-0 d-flex align-items-center">
+				<span class="d-flex align-items-baseline m-0 p-0" @click="toggleInfo">
+					<i
+						v-if="props.icon"
+						class="fa-solid fa-sm m-0 p-0 me-2 item-icon"
+						:class="props.icon"
+					/>
+					{{ title }}</span
+				>
+				<span>
+					<i
+						v-if="props.infotext"
+						class="fa-solid fa-sm fa-circle-question ms-4 me-2"
+						:style="iconstyle"
+						@click="toggleInfo"
+					/>
+				</span>
+			</div>
+
+			<p
+				v-if="showInfo"
+				class="infotext shadow m-0 ps-2 mb-1 p-1"
+				@click="toggleInfo"
+			>
+				<i class="me-1 fa-solid fa-sm fa-circle-info" />
+				{{ infotext }}
+			</p>
+			<div class="row ms-1 mb-2 p-0 pt-2 d-flex align-items-center">
+				<div class="col me-1 p-0 ps-4 selectors">
+					<span class="d-flex justify-content-stretch align-items-center">
+						<span>
+							<slot />
+						</span>
+					</span>
+				</div>
+			</div>
+		</div>
+	</WbSubwidget>
+</template>
+
+<script setup lang="ts">
+import { ref, computed } from 'vue'
+import WbSubwidget from './WbSubwidget.vue'
+
+const props = defineProps<{
+	title: string
+	infotext?: string
+	icon?: string
+	fullwidth?: boolean
+}>()
+const showInfo = ref(false)
+function toggleInfo() {
+	showInfo.value = !showInfo.value
+}
+const iconstyle = computed(() => {
+	let style = { color: 'var(--color-charging)' }
+	if (showInfo.value) {
+		style.color = 'var(--color-battery)'
+	}
+	return style
+})
+</script>
+
+<style scoped>
+.infotext {
+	font-size: var(--font-settings);
+	color: var(--color-battery);
+}
+
+.item-icon {
+	color: var(--color-menu);
+	font-size: var(--font-settings);
+}
+
+.titlecolumn {
+	color: var(--color-fg);
+	font-size: var(--font-settings);
+}
+
+.selectors {
+	font-size: var(--font-settings);
+}
+
+.configitem {
+	font-size: var(--font-settings);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/DateInput.vue b/packages/modules/web_themes/colors/source/src/components/shared/DateInput.vue
new file mode 100755
index 0000000000..2e7c5704ce
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/DateInput.vue
@@ -0,0 +1,205 @@
+<template>
+	<span class="d-flex align-self-top justify-content-center align-items-center">
+		<div class="input-group input-group-xs">
+			<!-- day -->
+			<button
+				class="btn dropdown-toggle"
+				type="button"
+				data-bs-toggle="dropdown"
+			>
+				{{ day }}
+			</button>
+			<div class="dropdown-menu">
+				<table class="table optiontable">
+					<tr v-for="(line, i) in days" :key="i" class="">
+						<td v-for="(myday, j) in line" :key="j">
+							<span
+								v-if="day != 0"
+								type="button"
+								class="btn optionbutton"
+								@click="day = myday"
+								>{{ myday }}</span
+							>
+						</td>
+					</tr>
+				</table>
+			</div>
+			<!-- month -->
+			<button
+				class="btn dropdown-toggle"
+				type="button"
+				data-bs-toggle="dropdown"
+			>
+				{{ month + 1 }}
+			</button>
+			<div class="dropdown-menu">
+				<table class="table optiontable">
+					<tr v-for="(line, i) in months" :key="i" class="">
+						<td v-for="(mymonth, j) in line" :key="j" class="p-0 m-0">
+							<span
+								type="button"
+								class="btn btn-sm optionbutton"
+								@click="month = mymonth"
+								>{{ mymonth + 1 }}</span
+							>
+						</td>
+					</tr>
+				</table>
+			</div>
+			<!-- year -->
+			<button
+				class="btn dropdown-toggle"
+				type="button"
+				data-bs-toggle="dropdown"
+			>
+				{{ year }}
+			</button>
+			<div class="dropdown-menu">
+				<table class="table optiontable">
+					<tr v-for="(myyear, i) in years" :key="i" class="">
+						<td>
+							<span
+								type="button"
+								class="btn optionbutton"
+								@click="year = myyear"
+								>{{ myyear }}</span
+							>
+						</td>
+					</tr>
+				</table>
+			</div>
+			<button
+				class="button-outline-secondary"
+				type="button"
+				@click="updateDate"
+			>
+				<span class="fa-solid fa-circle-check" />
+			</button>
+		</div>
+	</span>
+</template>
+
+<script setup lang="ts">
+import { computed, ref } from 'vue'
+const props = defineProps({
+	modelValue: {
+		type: Date,
+		required: true,
+	},
+	mode: {
+		type: String,
+		default: 'day',
+	},
+})
+const thisYear = new Date().getFullYear()
+let years = Array.from({ length: 10 }, (_, i) => thisYear - i)
+const editMode = ref(true)
+const emit = defineEmits(['update:modelValue'])
+
+// const days = Array.from({ length: 31 }, (_, i) => i + 1)
+const months = [
+	[0, 1, 2, 3],
+	[4, 5, 6, 7],
+	[8, 9, 10, 11],
+]
+const day = ref(props.modelValue.getDate())
+const month = ref(props.modelValue.getMonth())
+const year = ref(props.modelValue.getFullYear())
+
+const days = computed(() => {
+	const newDate = new Date(year.value, month.value, 1)
+	const firstWeekdayInMonth = newDate.getDay()
+	let maxDaysPerMonth = 0
+	switch (month.value) {
+		case 1:
+		case 3:
+		case 5:
+		case 7:
+		case 8:
+		case 10:
+		case 12:
+			maxDaysPerMonth = 31
+			break
+		case 4:
+		case 6:
+		case 9:
+		case 11:
+			maxDaysPerMonth = 30
+			break
+		case 2:
+			if (Math.trunc(year.value / 4) * 4 == year.value) {
+				maxDaysPerMonth = 29
+			} else {
+				maxDaysPerMonth == 28
+			}
+	}
+
+	let result: number[][] = []
+	let week = [0, 0, 0, 0, 0, 0, 0]
+	let weekday = firstWeekdayInMonth
+	for (let i = 0; i < maxDaysPerMonth; i++) {
+		week[weekday] = i + 1
+		if (weekday == 6) {
+			result.push(week)
+			week = [0, 0, 0, 0, 0, 0, 0]
+			weekday = 0
+		} else {
+			weekday++
+		}
+	}
+	if (weekday < 8) result.push(week)
+
+	return result
+})
+
+function updateDate() {
+	emit('update:modelValue', new Date(year.value, month.value, day.value))
+	editMode.value = false
+}
+</script>
+
+<style scoped>
+.form-select {
+	background-color: var(--color-input);
+	border: 1;
+	border-color: var(--color-bg);
+	color: var(--color-bg);
+	text-align: start;
+	font-size: var(--font-small);
+}
+
+.commitbutton {
+	background-color: var(--color-bg);
+	color: var(--color-input);
+}
+
+option {
+	color: green;
+}
+
+.form-select {
+	font-size: var(--font-verysmall);
+
+	background-color: var(--color-menu);
+	color: var(--color-fg);
+}
+.optiontable {
+	background-color: var(--color-menu);
+}
+.optionbutton {
+	font-size: var(--font-small);
+	color: var(--color-fg);
+	background-color: var(--color-menu);
+	font-size: var(--font-verysmall);
+	text-align: center;
+}
+.dropdown-menu {
+	background-color: var(--color-menu);
+}
+.dropdown-toggle {
+	background-color: var(--color-menu);
+	color: var(--color-fg);
+	border: 1px solid var(--color-bg);
+	font-size: var(--font-verysmall);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/FormatWatt.vue b/packages/modules/web_themes/colors/source/src/components/shared/FormatWatt.vue
new file mode 100755
index 0000000000..6fe98deda5
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/FormatWatt.vue
@@ -0,0 +1,15 @@
+<template>
+	{{ formatted }}
+</template>
+<script setup lang="ts">
+import { computed } from 'vue'
+import { globalConfig } from '@/assets/js/themeConfig'
+import { formatWatt } from '@/assets/js/helpers'
+const props = defineProps<{
+	watt: number
+}>()
+const formatted = computed(() => {
+	return formatWatt(props.watt, globalConfig.decimalPlaces)
+})
+</script>
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/FormatWattH.vue b/packages/modules/web_themes/colors/source/src/components/shared/FormatWattH.vue
new file mode 100755
index 0000000000..fba050ee55
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/FormatWattH.vue
@@ -0,0 +1,17 @@
+<template>
+	<span>
+		{{ formatted }}
+	</span>
+</template>
+<script setup lang="ts">
+import { computed } from 'vue'
+import { globalConfig } from '@/assets/js/themeConfig'
+import { formatWattH } from '@/assets/js/helpers'
+const props = defineProps<{
+	wattH: number
+}>()
+const formatted = computed(() => {
+	return formatWattH(props.wattH, globalConfig.decimalPlaces)
+})
+</script>
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/InfoItem.vue b/packages/modules/web_themes/colors/source/src/components/shared/InfoItem.vue
new file mode 100755
index 0000000000..d41846f265
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/InfoItem.vue
@@ -0,0 +1,29 @@
+<template>
+	<span class="d-flex flex-column align-items-center">
+		<span class="heading mt-1">
+			{{ props.heading }}
+		</span>
+		<span class="mx-1">
+			<span class="d-flex my-0 align-items-center content">
+				<slot />
+			</span>
+		</span>
+	</span>
+</template>
+
+<script setup lang="ts">
+const props = defineProps<{
+	heading: string
+}>()
+</script>
+
+<style scoped>
+.heading {
+	color: var(--color-menu);
+	font-size: var(--font-small);
+}
+.content {
+	font-size: var(--font-normal);
+	font-weight: bold;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/ModalComponent.vue b/packages/modules/web_themes/colors/source/src/components/shared/ModalComponent.vue
new file mode 100755
index 0000000000..bf7032289e
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/ModalComponent.vue
@@ -0,0 +1,101 @@
+<template>
+	<div :id="props.modalId" class="modal fade">
+		<div class="modal-dialog modal-lg modal-fullscreen-lg-down">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h3 class="modal-title">
+						<slot name="title" />
+					</h3>
+					<button
+						type="button"
+						class="btn-close buttonTextSize d-flex justify-content-center pt-3 pb-0"
+						data-bs-dismiss="modal"
+					>
+						<i class="fa-solid fa-lg fa-rectangle-xmark m-0 p-0" />
+					</button>
+				</div>
+				<div class="modal-body" style="background-color: var(--color-bg)">
+					<slot />
+					<button
+						class="btn btn-secondary float-end mt-3 ms-1"
+						data-bs-dismiss="modal"
+					>
+						Schließen
+					</button>
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+<script setup lang="ts">
+import { onMounted } from 'vue'
+// import { Modal } from 'bootstrap'
+
+const props = defineProps<{
+	modalId: string
+}>()
+// state
+//let mod: Modal
+
+// lifecycle
+onMounted(() => {
+	/* let target = document.getElementById(props.modalId)
+	if (target) {
+		mod = new Modal(target, {})
+	} */
+})
+</script>
+
+<style scoped>
+.modal-footer,
+.modal-header,
+.modal-body {
+	background: var(--color-bg);
+}
+.btn-close {
+	color: var(--color-fg);
+}
+.modal-footer {
+	text-align: right;
+}
+.modal-header .btn-close {
+	color: var(--color-fg);
+	background: var(--color-bg);
+	border: 0px;
+}
+
+/*.modal.fade .modal-dialog {
+    -webkit-transform: scale(0.1);
+    -moz-transform: scale(0.1);
+    -ms-transform: scale(0.1);
+    transform: scale(0.1);
+     top: 300px;
+    opacity: 0;
+    -webkit-transition: all 0.3s;
+    -moz-transition: all 0.3s;
+    transition: all 0.3s;
+ }*/
+
+/*.modal.fade.in .modal-dialog {
+    -webkit-transform: scale(1);
+    -moz-transform: scale(1);
+    -ms-transform: scale(1);
+    transform: scale(1);
+     -webkit-transform: translate3d(0, -300px, 0);
+    transform: translate3d(0, -300px, 0);
+    opacity: 1;
+ 
+ }*/
+
+.modal.fade .modal-dialog {
+	transition: transform 1s ease-out;
+	transform: none;
+	scale: 0.6;
+}
+.modal.show .modal-dialog {
+	transition: transform 0.3s ease-in;
+	transform: none;
+	scale: 1;
+}
+</style>
+>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/RadioBarInput.vue b/packages/modules/web_themes/colors/source/src/components/shared/RadioBarInput.vue
new file mode 100755
index 0000000000..5a4b2a9f8f
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/RadioBarInput.vue
@@ -0,0 +1,81 @@
+<template>
+	<div>
+		<div class="btn-group" role="group" aria-label="radiobar">
+			<button
+				v-for="(element, index) in options"
+				:id="'radio-' + element.value"
+				:key="index"
+				class="btn btn-outline-secondary btn-sm radiobutton mx-0 mb-0 px-2"
+				:value="element.value"
+				:style="getColor(index)"
+				:class="element.value == v ? 'active' : ''"
+				@click="setValue"
+			>
+				<span :style="getColor(index)">
+					<i v-if="element.icon" class="fa-solid" :class="element.icon" />
+					{{ element.text }}
+				</span>
+			</button>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+const props = defineProps<{
+	options: InfoItemValues[] // name, object, color, icon, active
+	modelValue: number | string
+}>()
+const emit = defineEmits(['update:modelValue'])
+const v = computed({
+	get() {
+		return props.modelValue
+	},
+	set(value: number | string) {
+		emit('update:modelValue', value)
+	},
+})
+function getColor(index: number) {
+	let clr = props.options[index].color
+		? props.options[index].color
+		: 'var(--color-fg)'
+	if (props.options[index].active) {
+		return { color: 'var(--color-bg)', background: clr }
+	} else {
+		return { color: clr }
+	}
+}
+function setValue(event: Event) {
+	let element = event.target as HTMLButtonElement
+	while (element && !element.value && element.parentElement) {
+		// we need to move up the DOM in case a sub element of the button was clicked
+		element = element.parentElement as HTMLButtonElement
+	}
+	if (element.value) {
+		v.value = element.value
+	}
+}
+export type InfoItemValues = {
+	text: string
+	value: string | number
+	color?: string
+	icon?: string
+	active: boolean
+}
+</script>
+
+<style scoped>
+.radiobutton {
+	border: 0px solid var(--color-menu);
+	opacity: 1;
+}
+.btn-outline-secondary.active {
+	background-color: var(--color-bg);
+	border: 0px solid var(--color-fg);
+	/* box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); */
+	opacity: 0.8;
+}
+.btn-group {
+	border: 1px solid var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/RadioInput.vue b/packages/modules/web_themes/colors/source/src/components/shared/RadioInput.vue
new file mode 100755
index 0000000000..2a4fa9e0b1
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/RadioInput.vue
@@ -0,0 +1,110 @@
+<template>
+	<div>
+		<button
+			v-for="(element, index) in options"
+			:id="'radio-' + element[1]"
+			:key="index"
+			class="btn btn-outline-secondary radiobutton me-2 mb-0 px-2"
+			:value="element[1]"
+			:style="getColor(index)"
+			:class="element[1] == v ? 'active' : ''"
+			@click="setValue"
+		>
+			<span :style="getColor(index)">
+				<i v-if="element[3]" class="fa-solid" :class="element[3]" />
+				{{ element[0] }}
+			</span>
+		</button>
+	</div>
+	<!-- 
+<div class="form-check">
+   <span v-for="(element, index) in options">
+    <input
+      class="btn-check"
+      type="radio"
+      name="foo"
+      :id="'radio-' + element[1]"
+      autocomplete="off"
+      :value="element[1]"
+      v-on:change="showValue"
+    />
+    <label
+      class="btn me-1 px-1 mb-1 btn-outline-secondary selectButton"
+      :for="'radio' + element[1]"
+    >
+      <span :style="getColor(index)">
+        <i class="fa-solid" :class="getIcon(index)"></i>
+        {{ element[0] }}
+      </span>
+    </label>
+  </span>
+  </div>
+  -->
+	<!--
+   <div>
+  <div class="form-check-inline" v-for="(element, index) in options">
+    <input
+      class="form-check-input"
+      type="radio"
+      :id="'radio-' + element[1]"
+      :value="element[1]"
+      v-model="v"
+    />
+    <label class="form-check-label" :for="'radio' + element[1]">
+      <span :style="getColor(index)">
+        <i class="fa-solid" :class="getIcon(index)"></i>
+        {{ element[0] }}
+      </span>
+    </label>
+  </div>
+  </div>
+  -->
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+const props = defineProps<{
+	options: [number | string, number | string, string?, string?][]
+	modelValue: number | string
+}>()
+const emit = defineEmits(['update:modelValue'])
+const v = computed({
+	get() {
+		return props.modelValue
+	},
+	set(value: number | string) {
+		emit('update:modelValue', value)
+	},
+})
+function getColor(index: number) {
+	if (props.options[index][2]) {
+		return { color: props.options[index][2] }
+	} else {
+		return { color: 'var(--color-fg)' }
+	}
+}
+function setValue(event: Event) {
+	let element = event.target as HTMLButtonElement
+	while (element && !element.value && element.parentElement) {
+		// we need to move up the DOM in case a sub element of the button was clicked
+		element = element.parentElement as HTMLButtonElement
+	}
+	if (element.value) {
+		v.value = element.value
+	}
+}
+</script>
+
+<style scoped>
+.radiobutton {
+	border: 0.5px solid var(--color-input);
+	opacity: 0.5;
+	font-size: var(--font-settings);
+}
+.btn-outline-secondary.active {
+	background-color: var(--color-bg);
+	border: 1px solid var(--color-fg);
+	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+	opacity: 1;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/RangeInput.vue b/packages/modules/web_themes/colors/source/src/components/shared/RangeInput.vue
new file mode 100755
index 0000000000..52d6b1eef5
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/RangeInput.vue
@@ -0,0 +1,74 @@
+<template>
+	<span class="d-flex flex-fill justify-content-between">
+		<span class="minusButton" @click="stepDown">
+			<i class="fa fa-xl fa-minus-square me-2" />
+		</span>
+		<input
+			:id="id"
+			v-model.number="v"
+			type="range"
+			class="form-range flex-fill"
+			:min="min"
+			:max="max"
+			:step="step"
+		/>
+		<span class="plusButton" @click="stepUp">
+			<i class="fa fa-xl fa-plus-square ms-2" />
+		</span>
+	</span>
+	<span class="d-flex justify-content-between align-items-start">
+		<span class="minlabel ps-4"> {{ min }} </span>
+		<span class="valuelabel">{{ v }} {{ unit }}</span>
+		<span class="maxlabel pe-4"> {{ max }} </span>
+	</span>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+const props = defineProps<{
+	id: string
+	min: number
+	max: number
+	step: number
+	unit: string
+	modelValue: number // for v-model binding
+}>()
+const emit = defineEmits(['update:modelValue'])
+const v = computed({
+	get() {
+		return props.modelValue
+	},
+	set(value: number) {
+		emit('update:modelValue', value)
+	},
+})
+//methods
+function stepDown() {
+	if (v.value > props.min) {
+		v.value = v.value - props.step
+	}
+}
+function stepUp() {
+	if (v.value < props.max) {
+		v.value = v.value + props.step
+	}
+}
+</script>
+
+<style scoped>
+.minlabel {
+	color: var(--color-menu);
+}
+.maxlabel {
+	color: var(--color-menu);
+}
+.valuelabel {
+	color: var(--color-fg);
+}
+.minusButton {
+	color: var(--color-menu);
+}
+.plusButton {
+	color: var(--color-menu);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/SelectInput.vue b/packages/modules/web_themes/colors/source/src/components/shared/SelectInput.vue
new file mode 100755
index 0000000000..72b61d6592
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/SelectInput.vue
@@ -0,0 +1,33 @@
+<template>
+	<select id="selectme" v-model="v" class="form-select">
+		<option v-for="(element, idx) in options" :key="idx" :value="element[1]">
+			{{ element[0] }}
+		</option>
+	</select>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+const props = defineProps<{
+	options: [number | string, number | string][]
+	modelValue: number | string
+}>()
+const emit = defineEmits(['update:modelValue'])
+const v = computed({
+	get() {
+		return props.modelValue
+	},
+	set(value: number | string) {
+		emit('update:modelValue', value)
+	},
+})
+</script>
+
+<style scoped>
+.form-select {
+	background-color: var(--color-input);
+	color: black;
+	border: 1px solid var(--color-bg);
+	font-size: var(--font-settings);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/SwitchInput.vue b/packages/modules/web_themes/colors/source/src/components/shared/SwitchInput.vue
new file mode 100755
index 0000000000..11710d7ef8
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/SwitchInput.vue
@@ -0,0 +1,26 @@
+<template>
+	<div class="form-check form-switch">
+		<input
+			v-model="flag"
+			class="form-check-input"
+			type="checkbox"
+			role="switch"
+		/>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+const props = defineProps<{
+	modelValue: boolean
+}>()
+const emit = defineEmits(['update:modelValue'])
+const flag = computed({
+	get() {
+		return props.modelValue
+	},
+	set(value: boolean) {
+		emit('update:modelValue', value)
+	},
+})
+</script>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/TimeInput.vue b/packages/modules/web_themes/colors/source/src/components/shared/TimeInput.vue
new file mode 100755
index 0000000000..f5d847751e
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/TimeInput.vue
@@ -0,0 +1,27 @@
+<template>
+	<input v-model="v" type="time" class="form-control" name="t" />
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+const props = defineProps<{
+	modelValue: string
+}>()
+const emit = defineEmits(['update:modelValue'])
+const v = computed({
+	get() {
+		return props.modelValue
+	},
+	set(value: number | string) {
+		emit('update:modelValue', value)
+	},
+})
+</script>
+
+<style scoped>
+.form-control {
+	background-color: var(--color-input);
+	color: black;
+	border: 1px solid var(--color-bg);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/WBWidget.vue b/packages/modules/web_themes/colors/source/src/components/shared/WBWidget.vue
new file mode 100755
index 0000000000..fddd9e663b
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/WBWidget.vue
@@ -0,0 +1,56 @@
+<template>
+	<div class="p-2 m-0 d-flex flex-fill" :class="widgetWidth">
+		<div class="wb-widget p-0 m-0 shadow">
+			<div class="d-flex justify-content-between">
+				<h3 class="m-4 me-0 mb-0">
+					<slot name="title">
+						<div class="p-0">(title goes here)</div>
+					</slot>
+					<slot name="subtitle" />
+				</h3>
+				<div class="p-4 pb-0 ps-0 m-0" style="text-align: right">
+					<slot name="buttons" />
+				</div>
+			</div>
+			<div class="px-4 pt-4 pb-2 wb-subwidget">
+				<div class="row">
+					<div class="col">
+						<div class="container-fluid m-0 p-0">
+							<slot />
+						</div>
+					</div>
+				</div>
+			</div>
+			<div v-if="$slots.footer != undefined">
+				<hr />
+				<div class="px-4 py-2 wb-subwidget">
+					<div class="row">
+						<div class="col">
+							<div class="container-fluid m-0 p-0">
+								<slot name="footer" />
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import { globalConfig } from '@/assets/js/themeConfig'
+const props = defineProps<{
+	variableWidth?: boolean
+	fullWidth?: boolean
+}>()
+const widgetWidth = computed(() => {
+	return props.fullWidth
+		? 'col-12'
+		: props.variableWidth && globalConfig.preferWideBoxes
+		? 'col-lg-6'
+		: 'col-lg-4'
+})
+</script>
+
+<style scoped></style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/WbSubwidget.vue b/packages/modules/web_themes/colors/source/src/components/shared/WbSubwidget.vue
new file mode 100755
index 0000000000..80f02aaf8a
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/WbSubwidget.vue
@@ -0,0 +1,41 @@
+<template>
+	<div class="px-4 pt-3 mb-2 wb-subwidget m-0" :class="widgetwidth">
+		<div class="row p-0 m-0">
+			<div class="col p-0 m-0">
+				<div class="d-flex justify-content-between">
+					<h3 class="m-0 mb-2" :style="titlestyle">
+						<slot name="title" />
+					</h3>
+
+					<div class="col p-0 m-0" style="text-align: right">
+						<slot name="buttons" />
+					</div>
+				</div>
+			</div>
+		</div>
+		<div class="container-fluid m-0 p-0">
+			<slot />
+		</div>
+	</div>
+</template>
+<script setup lang="ts">
+import { computed } from 'vue'
+
+const props = defineProps<{
+	titlecolor?: string
+	fullwidth?: boolean
+}>()
+const titlestyle = computed(() => {
+	return props.titlecolor
+		? { color: props.titlecolor }
+		: { color: 'var(--color-fg)' }
+})
+const widgetwidth = computed(() => {
+	return props.fullwidth ? 'col-lg-12' : 'col-lg-4'
+})
+</script>
+<style scoped>
+.wb-subwidget {
+	border-top: 0.5px solid var(--color-scale);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/shared/WbWidgetFlex.vue b/packages/modules/web_themes/colors/source/src/components/shared/WbWidgetFlex.vue
new file mode 100755
index 0000000000..2b65237a46
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/shared/WbWidgetFlex.vue
@@ -0,0 +1,43 @@
+<template>
+	<div class="p-2 m-0 d-flex" :class="widgetWidth">
+		<div class="wb-widget p-0 m-0 shadow">
+			<div class="d-flex justify-content-between">
+				<h3 class="m-4 mb-3">
+					<slot name="title">
+						<div class="p-0">(title goes here)</div>
+					</slot>
+					<slot name="subtitle" />
+				</h3>
+				<div class="p-4 pb-0 col-4 m-0" style="text-align: right">
+					<slot name="buttons" />
+				</div>
+			</div>
+			<div class="container-fluid p-0">
+				<slot />
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import { globalConfig } from '@/assets/js/themeConfig'
+const props = defineProps<{
+	variableWidth?: boolean
+	fullWidth?: boolean
+}>()
+const widgetWidth = computed(() => {
+	return props.fullWidth
+		? 'col-12'
+		: props.variableWidth && globalConfig.preferWideBoxes
+		? 'col-lg-6'
+		: 'col-lg-4'
+})
+</script>
+
+<style scoped>
+.wb-widget {
+	width: 100%;
+	border-radius: 30px;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/smartHome/SHListItem.vue b/packages/modules/web_themes/colors/source/src/components/smartHome/SHListItem.vue
new file mode 100755
index 0000000000..f41f0cc73b
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/smartHome/SHListItem.vue
@@ -0,0 +1,135 @@
+<template>
+	<WbSubwidget :titlecolor="device.color" :fullwidth="true">
+		<template #title>
+			{{ device.name }}
+		</template>
+		<template #buttons>
+			<div class="d-flex float-right justify-content-end align-items-center">
+				<span
+					v-for="(temp, idx) in device.temp"
+					:key="idx"
+					class="p-0 m-0 align-items-center d-flex"
+				>
+					<span
+						v-if="idx < device.tempConfigured"
+						class="my-0 badge rounded-pill tempbadge mx-1"
+						>{{ formatTemp(temp) }}
+					</span>
+				</span>
+				<span
+					v-if="props.device.canSwitch"
+					:class="switchIcon"
+					:style="switchStyle"
+					class="fa statusbutton mr-2 ms-4"
+					@click="statusButtonClicked"
+				/>
+				<span
+					v-if="props.device.canSwitch"
+					class="badge rounded-pill modebutton mx-2"
+					@click="modeButtonClicked"
+					>{{ deviceMode }}</span
+				>
+			</div>
+		</template>
+		<div class="row m-1 mt-0 p-0">
+			<div class="col m-0 mb-1 p-0 d-flex justify-content-between">
+				<InfoItem heading="Leistung:">
+					<FormatWatt :watt="device.power" />
+				</InfoItem>
+				<InfoItem heading="Energie:">
+					<FormatWattH :watt-h="device.energy" />
+				</InfoItem>
+				<InfoItem heading="Laufzeit:">
+					{{ formatTime(device.runningTime) }}
+				</InfoItem>
+			</div>
+		</div>
+	</WbSubwidget>
+</template>
+
+<script setup lang="ts">
+import { computed } from 'vue'
+import { type ShDevice, shDevices } from './model'
+import { formatTime, formatTemp } from '@/assets/js/helpers'
+import WbSubwidget from '../shared/WbSubwidget.vue'
+import InfoItem from '../shared/InfoItem.vue'
+import FormatWatt from '../shared/FormatWatt.vue'
+import FormatWattH from '../shared/FormatWattH.vue'
+import { updateServer } from '@/assets/js/sendMessages'
+const props = defineProps<{
+	device: ShDevice
+}>()
+
+const switchIcon = computed(() => {
+	return props.device.status == 'on'
+		? 'fa-toggle-on'
+		: props.device.status == 'waiting'
+		? 'fa-spinner fa-spin'
+		: 'fa-toggle-off'
+})
+const switchStyle = computed(() => {
+	let swColor = 'var(--color-switchRed)'
+
+	switch (props.device.status) {
+		case 'on':
+			swColor = 'var(--color-switchGreen)'
+			break
+		case 'detection':
+			swColor = 'var(--color-switchBlue)'
+			break
+		case 'timeout':
+			swColor = 'var(--color-switchWhite)'
+			break
+		case 'waiting':
+			swColor = 'var(--color-menu)'
+			break
+		default:
+			swColor = 'var(--color-switchRed)'
+	}
+
+	return { color: swColor }
+})
+function statusButtonClicked() {
+	if (!props.device.isAutomatic) {
+		if (props.device.status == 'on') {
+			updateServer('shSwitchOn', 0, props.device.id)
+		} else {
+			updateServer('shSwitchOn', 1, props.device.id)
+		}
+		shDevices[props.device.id].status = 'waiting'
+	}
+}
+function modeButtonClicked() {
+	if (props.device.isAutomatic) {
+		updateServer('shSetManual', 1, props.device.id)
+	} else {
+		updateServer('shSetManual', 0, props.device.id)
+	}
+}
+const deviceMode = computed(() => {
+	if (props.device.isAutomatic) {
+		return 'Auto'
+	} else {
+		return 'Man'
+	}
+})
+</script>
+
+<style scoped>
+.statusbutton {
+	font-size: var(--font-large);
+}
+
+.modebutton {
+	background-color: var(--color-menu);
+	font-size: var(--font-verysmall);
+	font-weight: normal;
+}
+
+.tempbadge {
+	background-color: var(--color-battery);
+	color: var(--color-bg);
+	font-size: var(--font-verysmall);
+	font-weight: normal;
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/smartHome/SmartHomeList.vue b/packages/modules/web_themes/colors/source/src/components/smartHome/SmartHomeList.vue
new file mode 100755
index 0000000000..d382d5fd77
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/smartHome/SmartHomeList.vue
@@ -0,0 +1,126 @@
+<template v-if="device.length > 0">
+	<WbWidgetFlex
+		v-for="(group, index) in devices"
+		:key="index"
+		:variable-width="true"
+	>
+		<template #title>
+			<span @click="toggleconfig">
+				<span class="fas fa-plug me-2" style="color: var(--color-devices)"
+					>&nbsp;</span
+				>
+				<span class="sh-title py-4">{{ title(index) }}</span>
+			</span>
+		</template>
+		<template #buttons>
+			<span class="ms-2 pt-1" @click="toggleconfig">
+				<span class="fa-solid fa-lg ps-1 fa-ellipsis-vertical" />
+			</span>
+		</template>
+		<SHListItem v-for="device in group" :key="device.id" :device="device" />
+	</WbWidgetFlex>
+	<!-- Configuration -->
+	<WbWidgetFlex v-if="configmode">
+		<template #title>
+			<span class="smarthome" @click="toggleconfig">
+				<span class="fas fa-gear">&nbsp;</span> Einstellungen</span
+			>
+		</template>
+		<template #buttons>
+			<span class="ms-2 pt-1" @click="toggleconfig">
+				<span class="fa-solid fa-lg ps-1 fa-circle-check" />
+			</span>
+		</template>
+		<ConfigItem
+			title="Im Energie-Graph anzeigen:"
+			icon="fa-chart-column"
+			:fullwidth="true"
+		>
+			<div v-for="(element, idx) in activeDevices" :key="idx">
+				<input
+					:id="'check' + idx"
+					v-model="element.showInGraph"
+					class="form-check-input"
+					type="checkbox"
+					:value="element"
+				/>
+				<label class="form-check-label px-2" :for="'check' + idx">{{
+					element.name
+				}}</label>
+			</div>
+		</ConfigItem>
+		<div class="row p-0 m-0" @click="toggleconfig">
+			<div class="col-12 mb-3 pe-3 mt-0">
+				<button class="btn btn-sm btn-secondary float-end">Schließen</button>
+			</div>
+		</div>
+	</WbWidgetFlex>
+</template>
+
+<script setup lang="ts">
+import { computed, ref } from 'vue'
+import WbWidgetFlex from '../shared/WbWidgetFlex.vue'
+import SHListItem from './SHListItem.vue'
+import { ShDevice, shDevices } from './model'
+import { widescreen } from '@/assets/js/themeConfig'
+import ConfigItem from '../shared/ConfigItem.vue'
+
+const devicesPerWidget = 3 // max number of devices to be displayed in one box
+
+const devices = computed(() =>
+	widescreen.value
+		? activeDevices.value.reduce(
+				(grouping: [[ShDevice]], device: ShDevice) => {
+					const result = grouping
+					let lastGroup = grouping[grouping.length - 1]
+					if (lastGroup.length >= devicesPerWidget) {
+						grouping.push([device])
+					} else {
+						lastGroup.push(device)
+					}
+					return result
+				},
+				[[]] as unknown as [[ShDevice]],
+		  )
+		: [activeDevices.value],
+)
+const activeDevices = computed(() => {
+	return Object.values(shDevices).filter((dev) => dev.configured)
+})
+function title(index: number) {
+	return (
+		'Geräte' +
+		(widescreen.value && devices.value.length > 1
+			? '(' + (index + 1) + ')'
+			: '')
+	)
+}
+function toggleconfig() {
+	configmode.value = !configmode.value
+}
+
+const configmode = ref(false)
+</script>
+
+<style scoped>
+.sh-title {
+	color: var(--color-title);
+}
+
+.tableheader {
+	background-color: var(--color-bg);
+	color: var(--color-menu);
+}
+
+.fa-ellipsis-vertical {
+	color: var(--color-menu);
+}
+
+.fa-circle-check {
+	color: var(--color-menu);
+}
+
+.smarthome {
+	color: var(--color-devices);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/components/smartHome/model.ts b/packages/modules/web_themes/colors/source/src/components/smartHome/model.ts
new file mode 100755
index 0000000000..2e3db49d5a
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/smartHome/model.ts
@@ -0,0 +1,46 @@
+import { reactive } from 'vue'
+import { savePrefs } from '@/assets/js/themeConfig'
+export class ShDevice {
+	id: number
+	name = 'Gerät'
+	power = 0
+	status = 'off'
+	energy = 0
+	runningTime = 0
+	configured = false
+	private _showInGraph = true
+	color = 'white'
+	canSwitch = false
+	countAsHouse = false
+	energyPv = 0
+	energyBat = 0
+	pvPercentage = 0
+	tempConfigured = 0
+	temp = [300.0, 300.0, 300.0]
+	on = false
+	isAutomatic = true
+	icon = ''
+	constructor(index: number) {
+		this.id = index
+	}
+	get showInGraph() {
+		return this._showInGraph
+	}
+	set showInGraph(val: boolean) {
+		this._showInGraph = val
+		savePrefs()
+	}
+}
+
+export const shDevices: { [key: number]: ShDevice } = reactive({})
+
+export function addShDevice(shIndex: number) {
+	if (!(shIndex in shDevices)) {
+		shDevices[shIndex] = new ShDevice(shIndex)
+		shDevices[shIndex].color =
+			'var(--color-sh' + Object.values(shDevices).length + ')'
+		console.info('Added sh device ' + shIndex)
+	} else {
+		console.info('Duplicate sh device message: ' + shIndex)
+	}
+}
diff --git a/packages/modules/web_themes/colors/source/src/components/smartHome/processMessages.ts b/packages/modules/web_themes/colors/source/src/components/smartHome/processMessages.ts
new file mode 100755
index 0000000000..8c6755f620
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/components/smartHome/processMessages.ts
@@ -0,0 +1,152 @@
+import { usageSummary } from '@/assets/js/model'
+import { shDevices, addShDevice } from './model'
+
+export function processSmarthomeMessages(topic: string, message: string) {
+	if (topic.match(/^openWB\/LegacySmarthome\/config\//i)) {
+		processSmarthomeConfigMessages(topic, message)
+	} else if (topic.match(/^openWB\/LegacySmarthome\/Devices\//i)) {
+		processSmarthomeDeviceMessages(topic, message)
+	} else {
+		// console.warn('Ignored Smarthome status message: ' + topic)
+	}
+}
+
+function processSmarthomeConfigMessages(topic: string, message: string) {
+	const index = getIndex(topic)
+	if (index == undefined) {
+		console.warn('Smarthome: Missing index in ' + topic)
+		return
+	}
+	if (!(index in shDevices)) {
+		// console.warn('Invalid sh device id received: ' + index)
+		addShDevice(index)
+	}
+	if (
+		topic.match(
+			/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_configured$/i,
+		)
+	) {
+		shDevices[index].configured = message != '0'
+	} else if (
+		topic.match(
+			/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_name$/i,
+		)
+	) {
+		shDevices[index].name = message.toString()
+	} else if (
+		topic.match(
+			/^openWB\/LegacySmarthome\/config\/set\/Devices\/[0-9]+\/mode$/i,
+		)
+	) {
+		shDevices[index].isAutomatic = message == '0'
+	} else if (
+		topic.match(
+			/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_canswitch$/i,
+		)
+	) {
+		shDevices[index].canSwitch = message == '1'
+	} else if (
+		topic.match(
+			/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_temperatur_configured$/i,
+		)
+	) {
+		shDevices[index].tempConfigured = +message
+	} else {
+		// console.warn('Ignored Smarthome config message: ' + topic)
+	}
+}
+
+function processSmarthomeDeviceMessages(topic: string, message: string) {
+	const index = getIndex(topic)
+	if (index == undefined) {
+		console.warn('Smarthome: Missing index in ' + topic)
+		return
+	}
+	if (!(index in shDevices)) {
+		// console.warn('Invalid sh device id received: ' + index)
+		addShDevice(index)
+	}
+	if (topic.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/Watt$/i)) {
+		shDevices[index].power = +message
+		updateShSummary('power')
+	} //else if (topic.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/Wh$/i,)) {
+	//shDevices[index].energy = 0 // TODO: change in the future
+	//updateShSummary('energy')
+	// }
+	else if (
+		topic.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/RunningTimeToday$/i)
+	) {
+		shDevices[index].runningTime = +message
+	} else if (
+		topic.match(
+			/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor0$/i,
+		)
+	) {
+		shDevices[index].temp[0] = +message
+	} else if (
+		topic.match(
+			/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor1$/i,
+		)
+	) {
+		shDevices[index].temp[1] = +message
+	} else if (
+		topic.match(
+			/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor2$/i,
+		)
+	) {
+		shDevices[index].temp[2] = +message
+	} else if (
+		topic.match(/^openWB\/LegacySmartHome\/Devices\/[0-9]+\/Status$/i)
+	) {
+		switch (+message) {
+			case 10:
+				shDevices[index].status = 'off'
+				break
+			case 11:
+				shDevices[index].status = 'on'
+				break
+			case 20:
+				shDevices[index].status = 'detection'
+				break
+			case 30:
+				shDevices[index].status = 'timeout'
+				break
+			default:
+				shDevices[index].status = 'off'
+		}
+	} else {
+		// console.warn('Ignored Smarthome device message: ' + topic)
+	}
+}
+
+function updateShSummary(cat: string) {
+	switch (cat) {
+		case 'power':
+			usageSummary['devices'].power = Object.values(shDevices)
+				.filter((dev) => dev.configured)
+				.reduce((sum, consumer) => sum + consumer.power, 0)
+			break
+		case 'energy':
+			usageSummary['devices'].energy = Object.values(shDevices)
+				.filter((dev) => dev.configured)
+				.reduce((sum, consumer) => sum + consumer.energy, 0)
+			break
+		default:
+			console.error('Unknown category')
+	}
+}
+
+function getIndex(topic: string): number | undefined {
+	let index = 0
+	try {
+		const matches = topic.match(/(?:\/)([0-9]+)(?=\/)/g)
+		if (matches) {
+			index = +matches[0].replace(/[^0-9]+/g, '')
+			return index
+		} else {
+			return undefined
+		}
+	} catch (e) {
+		console.warn('Parser error in getIndex for topic ' + topic)
+	}
+}
diff --git a/packages/modules/web_themes/colors/source/src/main.ts b/packages/modules/web_themes/colors/source/src/main.ts
new file mode 100644
index 0000000000..6b90ceeb27
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/main.ts
@@ -0,0 +1,13 @@
+import { createApp } from 'vue'
+import App from './App.vue'
+import 'bootstrap'
+import 'bootstrap/dist/css/bootstrap.min.css'
+import './assets/css/style.css'
+import { register } from 'swiper/element/bundle'
+
+// Create and mount the root instance.
+const app = createApp(App)
+// register Swiper custom elements
+register()
+// app.use(router)
+app.mount('#app')
diff --git a/packages/modules/web_themes/colors/source/src/router/index.js b/packages/modules/web_themes/colors/source/src/router/index.js
new file mode 100755
index 0000000000..1bc6a96ebe
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/router/index.js
@@ -0,0 +1,20 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import ColorsTheme from '../views/ColorsTheme.vue'
+import ThemeSettings from '../views/ThemeSettings.vue'
+const routes = [
+	{
+		path: '/',
+		name: 'ColorsTheme',
+		component: ColorsTheme,
+	},
+	{
+		path: '/themesettings',
+		name: 'ThemeSettings',
+		component: ThemeSettings,
+	},
+]
+const router = createRouter({
+	history: createWebHistory(import.meta.env.BASE_URL),
+	routes,
+})
+export default router
diff --git a/packages/modules/web_themes/colors/source/src/views/ColorsTheme.vue b/packages/modules/web_themes/colors/source/src/views/ColorsTheme.vue
new file mode 100644
index 0000000000..c0df329a9f
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/views/ColorsTheme.vue
@@ -0,0 +1,258 @@
+/* * ColorsTheme.vue * colors theme for openwb 2.0 * Copyright (c) 2022 Claus
+Hagen */
+
+<template>
+	<div class="container-fluid px-2 m-0 theme-colors">
+		<!-- Theme settings -->
+		<div id="themesettings" class="collapse">
+			<ThemeSettings />
+		</div>
+		<!-- Button Bar -->
+		<ButtonBar />
+
+		<!-- Main Widgets -->
+		<div v-if="false" class="row py-0 px-0 m-0">
+			<PowerMeter />
+			<PowerGraph />
+			<EnergyMeter :usage-details="usageDetails" />
+		</div>
+		<div v-if="true" class="row py-0 px-0 m-0">
+			<CarouselFix>
+				<template #item1>
+					<PowerMeter />
+				</template>
+				<template #item2>
+					<PowerGraph />
+				</template>
+				<template #item3>
+					<EnergyMeter :usage-details="usageDetails" />
+				</template>
+			</CarouselFix>
+		</div>
+
+		<!-- Detail configuration list -->
+		<div
+			v-if="!globalConfig.showQuickAccess"
+			class="row py-0 m-0 d-flex justify-content-center"
+		>
+			<ChargePointList />
+			<BatteryList />
+			<SmartHomeList />
+			<PriceChart />
+		</div>
+		<!-- Tabbed area -->
+		<nav
+			v-if="globalConfig.showQuickAccess"
+			class="nav nav-tabs nav-justified mx-1 mt-2"
+			role="tablist"
+		>
+			<a class="nav-link active" data-bs-toggle="tab" data-bs-target="#showAll">
+				<i class="fa-solid fa-lg fa-circle-info me-1" />
+				<span class="d-none d-md-inline ms-2">Alles</span>
+			</a>
+			<a
+				class="nav-link"
+				data-bs-toggle="tab"
+				data-bs-target="#chargepointlist"
+			>
+				<i class="fa-solid fa-lg fa-charging-station" />
+				<span class="d-none d-md-inline ms-2">Ladepunkte</span>
+			</a>
+			<a
+				v-if="globalData.isBatteryConfigured"
+				class="nav-link"
+				data-bs-toggle="tab"
+				data-bs-target="#batterylist"
+			>
+				<i class="fa-solid fa-lg fa-car-battery" />
+				<span class="d-none d-md-inline ms-2">Speicher</span>
+			</a>
+			<a class="nav-link" data-bs-toggle="tab" data-bs-target="#smarthomelist">
+				<i class="fa-solid fa-lg fa-plug" />
+				<span class="d-none d-md-inline ms-2">Smart Home</span>
+			</a>
+			<a
+				v-if="etData.isEtEnabled"
+				class="nav-link"
+				data-bs-toggle="tab"
+				data-bs-target="#etPricing"
+			>
+				<i class="fa-solid fa-lg fa-money-bill-1-wave" />
+				<span class="d-none d-md-inline ms-2">Strompreis</span>
+			</a>
+		</nav>
+		<!-- Tab panes -->
+		<div
+			v-if="globalConfig.showQuickAccess"
+			id="cpContent"
+			class="tab-content mx-0 pt-1"
+		>
+			<div
+				id="showAll"
+				class="tab-pane active"
+				role="tabpanel"
+				aria-labelledby="showall-tab"
+			>
+				<div class="row py-0 m-0 d-flex justify-content-center">
+					<ChargePointList />
+					<BatteryList />
+					<SmartHomeList />
+					<PriceChart />
+				</div>
+			</div>
+			<div
+				id="chargepointlist"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="chargepoint-tab"
+			>
+				<div class="row py-0 m-0 d-flex justify-content-center">
+					<ChargePointList />
+				</div>
+			</div>
+			<div
+				id="batterylist"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="battery-tab"
+			>
+				<div class="row py-0 m-0 d-flex justify-content-center">
+					<BatteryList />
+				</div>
+			</div>
+			<div
+				id="smarthomelist"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="smarthome-tab"
+			>
+				<div
+					v-if="Object.keys(shDevices).length > 0"
+					class="row py-0 m-0 d-flex justify-content-center"
+				>
+					<SmartHomeList />
+				</div>
+			</div>
+			<div
+				id="etPricing"
+				class="tab-pane"
+				role="tabpanel"
+				aria-labelledby="pricechart-tab"
+			>
+				<div class="row py-0 m-0 d-flex justify-content-center">
+					<PriceChart />
+				</div>
+			</div>
+		</div>
+	</div>
+	<!-- Footer -->
+	<div class="row p-2 mt-5">
+		<div class="col p-2">
+			<hr />
+			<div class="d-flex justify-content-between">
+				<p class="mx-4">Screen Width: {{ screensize.x }}</p>
+				<!--      <button class="btn btn-sm btn-secondary mx-4" @click="toggleSetup">
+          System Setup
+        </button> -->
+				<button class="btn btn-sm btn-secondary mx-4" @click="toggleMqViewer">
+					MQ Viewer
+				</button>
+			</div>
+			<!--   <hr v-if="showSetup" />
+      <Setup v-if="showSetup"></Setup> -->
+
+			<hr v-if="showMQ" />
+			<MQTTViewer v-if="showMQ" />
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { ref, computed, onMounted } from 'vue'
+import { usageSummary, shDevices, globalData } from '../assets/js/model'
+import { chargePoints } from '@/components/chargePointList/model'
+import { etData } from '@/components/priceChart/model'
+import { initConfig } from '@/assets/js/themeConfig'
+import PowerMeter from '@/components/powerMeter/PowerMeter.vue'
+import PowerGraph from '@/components/powerGraph/PowerGraph.vue'
+import EnergyMeter from '@/components/energyMeter/EnergyMeter.vue'
+import ChargePointList from '@/components/chargePointList/ChargePointList.vue'
+import ButtonBar from '@/components/buttonBar/ButtonBar.vue'
+import BatteryList from '@/components/batteryList/BatteryList.vue'
+import PriceChart from '@/components/priceChart/PriceChart.vue'
+import SmartHomeList from '@/components/smartHome/SmartHomeList.vue'
+import CarouselFix from '@/components/shared/CarouselFix.vue'
+import { msgInit } from '@/assets/js/processMessages'
+import MQTTViewer from '@/components/mqttViewer/MQTTViewer.vue'
+import ThemeSettings from '@/views/ThemeSettings.vue'
+import {
+	globalConfig,
+	updateDimensions,
+	screensize,
+} from '@/assets/js/themeConfig'
+
+// state
+const usageDetails = computed(() => {
+	return [usageSummary.evuOut, usageSummary.devices, usageSummary.charging]
+		.concat(Object.values(chargePoints).map((cp) => cp.toPowerItem()))
+		.concat(
+			Object.values(shDevices).filter(
+				(row) => row.configured && row.showInGraph,
+			),
+		)
+		.concat([usageSummary.batIn, usageSummary.house])
+})
+const showMQ = ref(false)
+// methods
+function init() {
+	initConfig()
+}
+function toggleMqViewer() {
+	showMQ.value = !showMQ.value
+}
+// lifecycle
+onMounted(() => {
+	init()
+	window.addEventListener('resize', updateDimensions)
+	msgInit()
+})
+</script>
+
+<style scoped>
+.nav-tabs {
+	border-bottom: 0.5px solid var(--color-menu);
+	background-color: var(--color-bg);
+}
+.nav-tabs .nav-link {
+	color: var(--color-menu);
+	opacity: 0.5;
+}
+.nav-tabs .nav-link.disabled {
+	color: var(--color-axis);
+	border: 0.5px solid var(--color-axis);
+}
+
+.nav-tabs .nav-link.active {
+	color: var(--color-fg);
+	background-color: var(--color-bg);
+	opacity: 1;
+	border: 0.5px solid var(--color-menu);
+	border-bottom: 0px solid var(--color-menu);
+	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+}
+.fa-circle-info {
+	color: var(--color-fg);
+}
+.fa-charging-station {
+	color: var(--color-charging);
+}
+.fa-car-battery {
+	color: var(--color-battery);
+}
+.fa-plug {
+	color: var(--color-devices);
+}
+.fa-money-bill-1-wave {
+	color: var(--color-pv);
+}
+</style>
diff --git a/packages/modules/web_themes/colors/source/src/views/ThemeSettings.vue b/packages/modules/web_themes/colors/source/src/views/ThemeSettings.vue
new file mode 100755
index 0000000000..6b456e4782
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/src/views/ThemeSettings.vue
@@ -0,0 +1,146 @@
+<template>
+	<div class="container-fluid p-0 m-0">
+		<div class="row p-0 m-0">
+			<WbWidgetFlex :full-width="true">
+				<template #title> Look & Feel </template>
+				<template #buttons>
+					<button
+						class="btn btn-secondary float-end mt-0 ms-1"
+						data-bs-toggle="collapse"
+						data-bs-target="#themesettings"
+					>
+						<span>
+							<i class="fa-solid fa-rectangle-xmark" />
+						</span>
+					</button>
+				</template>
+				<div class="row m-0 p-0">
+					<ConfigItem
+						title="Farbschema"
+						icon="fa-adjust"
+						infotext="Hintergrundfarbe"
+					>
+						<RadioInput
+							v-model="globalConfig.displayMode"
+							:options="colorschemes"
+						/>
+					</ConfigItem>
+					<ConfigItem
+						title="Grafik: Raster"
+						icon="fa-th"
+						infotext="Verwende ein Hintergrundraster in den Grafiken"
+					>
+						<SwitchInput v-model="globalConfig.showGrid" />
+					</ConfigItem>
+					<ConfigItem
+						title="Variable Bogenlänge"
+						icon="fa-chart-area"
+						infotext="Im Graph 'Aktuelle Leistung' können die Bögen immer die volle Länge haben, oder entsprechend des aktuellen Gesamtleistung verkürzt dargestellt werden."
+					>
+						<SwitchInput v-model="globalConfig.showRelativeArcs" />
+					</ConfigItem>
+					<ConfigItem
+						v-if="globalConfig.showRelativeArcs"
+						title="Bögen zurücksetzen"
+						icon="fa-undo"
+						infotext="Durch Click auf den Button wird die Maximallänge der Bögen auf den aktuellen Wert gesetzt."
+					>
+						<button
+							v-if="globalConfig.showRelativeArcs"
+							class="btn btn-secondary"
+							@click="emit('resetArcs')"
+						>
+							Reset
+						</button>
+					</ConfigItem>
+					<ConfigItem
+						title="Anzahl Dezimalstellen"
+						icon="fa-sliders-h"
+						infotext="Alle kW- und kWh-Werte werden mit der gewählten Anzahl an Stellen angezeigt."
+					>
+						<SelectInput
+							v-model="globalConfig.decimalPlaces"
+							:options="decimalDisplay"
+						/>
+					</ConfigItem>
+					<ConfigItem
+						title="Farbschema Smart-Home-Geräte"
+						icon="fa-palette"
+						infotext="Für die Smart-Home-Geräte stehen mehrere Schemata zur Verfügung."
+					>
+						<RadioInput
+							v-model="globalConfig.smartHomeColors"
+							:options="shSchemes"
+						/>
+					</ConfigItem>
+					<ConfigItem
+						title="Kompakte Ladepunktliste"
+						icon="fa-list"
+						infotext="Zeige eine einzelne Ladepunktliste statt separater Element pro Ladepunkt."
+					>
+						<SwitchInput v-model="globalConfig.simpleCpList" />
+					</ConfigItem>
+					<ConfigItem
+						title="Filter-Buttons"
+						icon="fa-filter"
+						infotext="Hauptseite mit Buttons zur Auswahl der Kategorie."
+					>
+						<SwitchInput v-model="globalConfig.showQuickAccess" />
+					</ConfigItem>
+					<ConfigItem
+						title="Animationen"
+						icon="fa-film"
+						infotext="Animationen anzeigen"
+					>
+						<SwitchInput v-model="globalConfig.showAnimations" />
+					</ConfigItem>
+					<ConfigItem
+						title="Breite Widgets"
+						icon="fa-desktop"
+						infotext="Widgets immer breit machen"
+					>
+						<SwitchInput v-model="globalConfig.preferWideBoxes" />
+					</ConfigItem>
+				</div>
+				<div class="row p-0 m-0">
+					<div class="col-12 mb-3 pe-3 mt-0">
+						<button
+							class="btn btn-sm btn-secondary float-end"
+							data-bs-toggle="collapse"
+							data-bs-target="#themesettings"
+						>
+							Schließen
+						</button>
+					</div>
+				</div>
+			</WbWidgetFlex>
+		</div>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { globalConfig } from '@/assets/js/themeConfig'
+import SelectInput from '@/components/shared/SelectInput.vue'
+import ConfigItem from '@/components/shared/ConfigItem.vue'
+import SwitchInput from '@/components/shared/SwitchInput.vue'
+import RadioInput from '@/components/shared/RadioInput.vue'
+import WbWidgetFlex from '@/components/shared/WbWidgetFlex.vue'
+const emit = defineEmits(['resetArcs'])
+const colorschemes: [string, string][] = [
+	['Dunkel', 'dark'],
+	['Hell', 'light'],
+	['Blau', 'blue'],
+]
+const decimalDisplay: [string, string][] = [
+	['3 kW', '0'],
+	['3,1 kW', '1'],
+	['3,14 kW', '2'],
+	['3,141 kW', '3'],
+	['3141 W', '4'],
+]
+const shSchemes: [string, string][] = [
+	['Orange', 'normal'],
+	['Grün/Violett', 'standard'],
+	['Bunt', 'advanced'],
+]
+</script>
diff --git a/packages/modules/web_themes/colors/source/tsconfig.json b/packages/modules/web_themes/colors/source/tsconfig.json
new file mode 100755
index 0000000000..e0e5318b44
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/tsconfig.json
@@ -0,0 +1,19 @@
+{
+  "extends": "@vue/tsconfig/tsconfig.json",
+  "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
+  "compilerOptions": {
+    "baseUrl": ".",
+    "paths": {
+      "@/*": ["./src/*"]
+    },
+    "moduleResolution": "node",
+    "skipLibCheck": true
+  },
+
+  "references": [
+    {
+      "path": "./tsconfig.vite-config.json"
+    }
+  ],
+  
+}
diff --git a/packages/modules/web_themes/colors/source/tsconfig.vite-config.json b/packages/modules/web_themes/colors/source/tsconfig.vite-config.json
new file mode 100755
index 0000000000..e336f6382e
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/tsconfig.vite-config.json
@@ -0,0 +1,9 @@
+{
+  "extends": "@vue/tsconfig/tsconfig.json",
+  "include": ["vite.config.*"],
+  "compilerOptions": {
+    "composite": true,
+    "types": ["node", ],
+    "moduleResolution": "node"
+  }
+}
\ No newline at end of file
diff --git a/packages/modules/web_themes/colors/source/vite.config.ts b/packages/modules/web_themes/colors/source/vite.config.ts
new file mode 100755
index 0000000000..6cc40d8064
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/vite.config.ts
@@ -0,0 +1,49 @@
+import { fileURLToPath, URL } from 'url'
+import { defineConfig, splitVendorChunkPlugin } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill";
+import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill";
+import nodePolyfills from "rollup-plugin-polyfill-node";
+
+// https://vitejs.dev/config/
+export default defineConfig({
+  plugins: [vue({
+    template: {
+      compilerOptions: {
+        isCustomElement: (tag) => ['swiper-slide', 'swiper-container', 'swiper-pagination'].includes(tag)
+      }
+    }
+  }),
+  splitVendorChunkPlugin(),
+  ],
+  resolve: {
+    alias: {
+      '@': fileURLToPath(new URL('./src', import.meta.url)),
+      url: "rollup-plugin-node-polyfills/polyfills/url",
+      util: "rollup-plugin-node-polyfills/polyfills/util",
+      querystring: "rollup-plugin-node-polyfills/polyfills/qs",
+    }
+  },
+  optimizeDeps: {
+    esbuildOptions: {
+      // Node.js global to browser globalThis
+      define: {
+        global: "globalThis",
+      },
+      // Enable esbuild polyfill plugins
+      plugins: [
+        NodeGlobalsPolyfillPlugin({
+          buffer: true,
+        }),
+        NodeModulesPolyfillPlugin(),
+      ],
+    },
+  },
+  build: {
+    rollupOptions: {
+      // Enable rollup polyfills plugin
+      // used during production bundling
+      plugins: [nodePolyfills()],
+    },
+  },
+})
diff --git a/packages/modules/web_themes/colors/source/yarn.lock b/packages/modules/web_themes/colors/source/yarn.lock
new file mode 100644
index 0000000000..fee5e74351
--- /dev/null
+++ b/packages/modules/web_themes/colors/source/yarn.lock
@@ -0,0 +1,2685 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@aashutoshrathi/word-wrap@^1.2.3":
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
+  integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
+
+"@babel/helper-string-parser@^7.22.5":
+  version "7.22.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
+  integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
+
+"@babel/helper-validator-identifier@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+  integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
+"@babel/parser@^7.20.15":
+  version "7.22.10"
+  resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz"
+  integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==
+
+"@babel/parser@^7.21.3":
+  version "7.23.0"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
+  integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
+
+"@babel/types@^7.22.5":
+  version "7.23.0"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
+  integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
+  dependencies:
+    "@babel/helper-string-parser" "^7.22.5"
+    "@babel/helper-validator-identifier" "^7.22.20"
+    to-fast-properties "^2.0.0"
+
+"@esbuild-plugins/node-globals-polyfill@^0.2.3":
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz#0e4497a2b53c9e9485e149bc92ddb228438d6bcf"
+  integrity sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==
+
+"@esbuild-plugins/node-modules-polyfill@^0.2.2":
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz#cefa3dc0bd1c16277a8338b52833420c94987327"
+  integrity sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==
+  dependencies:
+    escape-string-regexp "^4.0.0"
+    rollup-plugin-node-polyfills "^0.2.1"
+
+"@esbuild/android-arm64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
+  integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
+
+"@esbuild/android-arm64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz#74752a09301b8c6b9a415fbda9fb71406a62a7b7"
+  integrity sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==
+
+"@esbuild/android-arm@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
+  integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
+
+"@esbuild/android-arm@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.4.tgz#c27363e1e280e577d9b5c8fa7c7a3be2a8d79bf5"
+  integrity sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==
+
+"@esbuild/android-x64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
+  integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
+
+"@esbuild/android-x64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.4.tgz#6c9ee03d1488973d928618100048b75b147e0426"
+  integrity sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==
+
+"@esbuild/darwin-arm64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
+  integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
+
+"@esbuild/darwin-arm64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz#64e2ee945e5932cd49812caa80e8896e937e2f8b"
+  integrity sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==
+
+"@esbuild/darwin-x64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
+  integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
+
+"@esbuild/darwin-x64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz#d8e26e1b965df284692e4d1263ba69a49b39ac7a"
+  integrity sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==
+
+"@esbuild/freebsd-arm64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
+  integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
+
+"@esbuild/freebsd-arm64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz#29751a41b242e0a456d89713b228f1da4f45582f"
+  integrity sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==
+
+"@esbuild/freebsd-x64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
+  integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
+
+"@esbuild/freebsd-x64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz#873edc0f73e83a82432460ea59bf568c1e90b268"
+  integrity sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==
+
+"@esbuild/linux-arm64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
+  integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
+
+"@esbuild/linux-arm64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz#659f2fa988d448dbf5010b5cc583be757cc1b914"
+  integrity sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==
+
+"@esbuild/linux-arm@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
+  integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
+
+"@esbuild/linux-arm@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz#d5b13a7ec1f1c655ce05c8d319b3950797baee55"
+  integrity sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==
+
+"@esbuild/linux-ia32@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
+  integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
+
+"@esbuild/linux-ia32@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz#878cd8bf24c9847c77acdb5dd1b2ef6e4fa27a82"
+  integrity sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==
+
+"@esbuild/linux-loong64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
+  integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
+
+"@esbuild/linux-loong64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz#df890499f6e566b7de3aa2361be6df2b8d5fa015"
+  integrity sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==
+
+"@esbuild/linux-mips64el@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
+  integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
+
+"@esbuild/linux-mips64el@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz#76eae4e88d2ce9f4f1b457e93892e802851b6807"
+  integrity sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==
+
+"@esbuild/linux-ppc64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
+  integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
+
+"@esbuild/linux-ppc64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz#c49032f4abbcfa3f747b543a106931fe3dce41ff"
+  integrity sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==
+
+"@esbuild/linux-riscv64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
+  integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
+
+"@esbuild/linux-riscv64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz#0f815a090772138503ee0465a747e16865bf94b1"
+  integrity sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==
+
+"@esbuild/linux-s390x@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
+  integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
+
+"@esbuild/linux-s390x@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz#8d2cca20cd4e7c311fde8701d9f1042664f8b92b"
+  integrity sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==
+
+"@esbuild/linux-x64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
+  integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
+
+"@esbuild/linux-x64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz#f618bec2655de49bff91c588777e37b5e3169d4a"
+  integrity sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==
+
+"@esbuild/netbsd-x64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
+  integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
+
+"@esbuild/netbsd-x64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz#7889744ca4d60f1538d62382b95e90a49687cef2"
+  integrity sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==
+
+"@esbuild/openbsd-x64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
+  integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
+
+"@esbuild/openbsd-x64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz#c3e436eb9271a423d2e8436fcb120e3fd90e2b01"
+  integrity sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==
+
+"@esbuild/sunos-x64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
+  integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
+
+"@esbuild/sunos-x64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz#f63f5841ba8c8c1a1c840d073afc99b53e8ce740"
+  integrity sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==
+
+"@esbuild/win32-arm64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
+  integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
+
+"@esbuild/win32-arm64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz#80be69cec92da4da7781cf7a8351b95cc5a236b0"
+  integrity sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==
+
+"@esbuild/win32-ia32@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
+  integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
+
+"@esbuild/win32-ia32@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz#15dc0ed83d2794872b05d8edc4a358fecf97eb54"
+  integrity sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==
+
+"@esbuild/win32-x64@0.18.20":
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
+  integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
+
+"@esbuild/win32-x64@0.19.4":
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz#d46a6e220a717f31f39ae80f49477cc3220be0f0"
+  integrity sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==
+
+"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
+  version "4.4.0"
+  resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz"
+  integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
+  dependencies:
+    eslint-visitor-keys "^3.3.0"
+
+"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
+  version "4.9.1"
+  resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4"
+  integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==
+
+"@eslint/eslintrc@^2.1.2":
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396"
+  integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.3.2"
+    espree "^9.6.0"
+    globals "^13.19.0"
+    ignore "^5.2.0"
+    import-fresh "^3.2.1"
+    js-yaml "^4.1.0"
+    minimatch "^3.1.2"
+    strip-json-comments "^3.1.1"
+
+"@eslint/js@8.50.0":
+  version "8.50.0"
+  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484"
+  integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==
+
+"@humanwhocodes/config-array@^0.11.11":
+  version "0.11.11"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844"
+  integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==
+  dependencies:
+    "@humanwhocodes/object-schema" "^1.2.1"
+    debug "^4.1.1"
+    minimatch "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+  integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/object-schema@^1.2.1":
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+  integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+
+"@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.15":
+  version "1.4.15"
+  resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
+  integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@nodelib/fs.scandir@2.1.5":
+  version "2.1.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+  integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.5"
+    run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.5"
+  resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
+  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
+  version "1.2.8"
+  resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
+  integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.5"
+    fastq "^1.6.0"
+
+"@pkgr/utils@^2.3.1":
+  version "2.4.2"
+  resolved "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz"
+  integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==
+  dependencies:
+    cross-spawn "^7.0.3"
+    fast-glob "^3.3.0"
+    is-glob "^4.0.3"
+    open "^9.1.0"
+    picocolors "^1.0.0"
+    tslib "^2.6.0"
+
+"@popperjs/core@^2.11.8", "@popperjs/core@^2.9.2":
+  version "2.11.8"
+  resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
+  integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
+
+"@rollup/plugin-inject@^5.0.1":
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.4.tgz#7116970c2cde6ce150734cabac9165d7b60ad6f1"
+  integrity sha512-dM93Nyqp9Ah14jvThFFA30ifjB8cDKk3Bx69M1nIIHGytXug3VrTv5HEuYBzevu45HvZ0ho7t+40bmScmkzZhg==
+  dependencies:
+    "@rollup/pluginutils" "^5.0.1"
+    estree-walker "^2.0.2"
+    magic-string "^0.27.0"
+
+"@rollup/pluginutils@^5.0.1":
+  version "5.0.5"
+  resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c"
+  integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==
+  dependencies:
+    "@types/estree" "^1.0.0"
+    estree-walker "^2.0.2"
+    picomatch "^2.3.1"
+
+"@rushstack/eslint-patch@^1.3.2":
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922"
+  integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==
+
+"@types/bootstrap@^5.2.6":
+  version "5.2.7"
+  resolved "https://registry.yarnpkg.com/@types/bootstrap/-/bootstrap-5.2.7.tgz#a920df4ea82d8cc605751007f5c9744336842f30"
+  integrity sha512-vWs0HzobIB8Af2F0B1GXpaVLSVn1NWULDYgTIWp08Et/r2B3aAwwhFBeOs/rRFWJA38EZTXkWP3tepIjpQkpLg==
+  dependencies:
+    "@popperjs/core" "^2.9.2"
+
+"@types/d3-array@*":
+  version "3.0.8"
+  resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.8.tgz#a5d0687a12b48142c6f124d5e3796054e91bcea5"
+  integrity sha512-2xAVyAUgaXHX9fubjcCbGAUOqYfRJN1em1EKR2HfzWBpObZhwfnZKvofTN4TplMqJdFQao61I+NVSai/vnBvDQ==
+
+"@types/d3-axis@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.4.tgz#0e1b380ca92b825f8b07402c8ba88b702e7de0b1"
+  integrity sha512-ySnjI/7qm+J602VjcejXcqs1hEuu5UBbGaJGp+Cn/yKVc1iS3JueLVpToGdQsS2sqta7tqA/kG4ore/+LH90UA==
+  dependencies:
+    "@types/d3-selection" "*"
+
+"@types/d3-brush@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.4.tgz#dbbd71a980c7fd198771e4ae79ccba75debdc76f"
+  integrity sha512-Kg5uIsdJNMCs5lTqeZFsTKqj9lBvpiFRDkYN3j2CDlPhonNDg9/gXVpv1E/MKh3tEqArryIj9o6RBGE/MQe+6Q==
+  dependencies:
+    "@types/d3-selection" "*"
+
+"@types/d3-chord@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.4.tgz#7f2a3174bfa3dd94e0caa2111b8ce24d1dd2a5cd"
+  integrity sha512-p4PvN1N+7GL3Y/NI9Ug1TKwowUV6h664kmxL79ctp1HRYCk1mhP0+SXhjRsoWXCdnJfbLLLmpV99rt8dMrHrzg==
+
+"@types/d3-color@*":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.1.tgz#43a2aa7836fdae19ce32fabe97742e787f4b2e08"
+  integrity sha512-CSAVrHAtM9wfuLJ2tpvvwCU/F22sm7rMHNN+yh9D6O6hyAms3+O0cgMpC1pm6UEUMOntuZC8bMt74PteiDUdCg==
+
+"@types/d3-contour@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.4.tgz#8e7cf6435000aaf9f1049267dcd67b18c9922b2e"
+  integrity sha512-B0aeX8Xg3MNUglULxqDvlgY1SVXuN2xtEleYSAY0iMhl/SMVT7snzgAveejjwM3KaWuNXIoXEJ7dmXE8oPq/jA==
+  dependencies:
+    "@types/d3-array" "*"
+    "@types/geojson" "*"
+
+"@types/d3-delaunay@*":
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.2.tgz#ef2a4ae56058dee00ebce7f110806a4efdf56389"
+  integrity sha512-WplUJ/OHU7eITneDqNnzK+2pgR+WDzUHG6XAUVo+oWHPQq74VcgUdw8a4ODweaZzF56OVYK+x9GxCyuq6hSu1A==
+
+"@types/d3-dispatch@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.4.tgz#bac9eb26e49b235ac731a398b9596abc1fb76a3a"
+  integrity sha512-NApHpGHRNxUy7e2Lfzl/cwOucmn4Xdx6FdmXzAoomo8T81LyGmlBjjko/vP0TVzawlvEFLDq8OCRLulW6DDzKw==
+
+"@types/d3-drag@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.4.tgz#8d31aaf565b6b146d370eb511805c18541c1a748"
+  integrity sha512-/t53K1erTuUbP7WIX9SE0hlmytpTYRbIthlhbGkBHzCV5vPO++7yrk8OlisWPyIJO5TGowTmqCtGH2tokY5T/g==
+  dependencies:
+    "@types/d3-selection" "*"
+
+"@types/d3-dsv@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.4.tgz#f2706ed90f72e8c16d3858b3c3060dfd47b7f161"
+  integrity sha512-YxfUVJ55HxR8oq88136w09mBMPNhgH7PZjteq72onWXWOohGif/cLQnQv8V4A5lEGjXF04LhwSTpmzpY9wyVyA==
+
+"@types/d3-ease@*":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.0.tgz#c29926f8b596f9dadaeca062a32a45365681eae0"
+  integrity sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==
+
+"@types/d3-fetch@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.4.tgz#e54ab1286f859c8f0edb261c3ce4b155a3232c37"
+  integrity sha512-RleYajubALkGjrvatxWhlygfvB1KNF0Uzz9guRUeeA+M/2B7l8rxObYdktaX9zU1st04lMCHjZWe4vbl+msH2Q==
+  dependencies:
+    "@types/d3-dsv" "*"
+
+"@types/d3-force@*":
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.6.tgz#7898d7fd2618fba65058ee83baaf7d79a8c047c5"
+  integrity sha512-G9wbOvCxkNlLrppoHLZ6oFpbm3z7ibfkXwLD8g5/4Aa7iTEV0Z7TQ0OL8UxAtvdOhCa2VZcSuqn1NQqyCEqmiw==
+
+"@types/d3-format@*":
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.2.tgz#1416669e1ae3fd924bdbb6c80901be45f3a3cea6"
+  integrity sha512-9oQWvKk2qVBo49FQq8yD/et8Lx0W5Ac2FdGSOUecqOFKqh0wkpyHqf9Qc7A06ftTR+Lz13Pi3jHIQis0aCueOA==
+
+"@types/d3-geo@*":
+  version "3.0.5"
+  resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.0.5.tgz#4407202458b306c97c90c9a5271b3b7e1fc687af"
+  integrity sha512-ysEEU93Wv9p2UZBxTK3kUP7veHgyhTA0qYtI7bxK5EMXb3JxGv0D4IH54PxprAF26n+uHci24McVmzwIdLgvgQ==
+  dependencies:
+    "@types/geojson" "*"
+
+"@types/d3-hierarchy@*":
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.4.tgz#4e0b6679895e3a0ce14b93d63ba158183801b776"
+  integrity sha512-wrvjpRFdmEu6yAqgjGy8MSud9ggxJj+I9XLuztLeSf/E0j0j6RQYtxH2J8U0Cfbgiw9ZDHyhpmaVuWhxscYaAQ==
+
+"@types/d3-interpolate@*":
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.2.tgz#b5928cca26fc20dbfe689ff37d62f7bac434c74e"
+  integrity sha512-zAbCj9lTqW9J9PlF4FwnvEjXZUy75NQqPm7DMHZXuxCFTpuTrdK2NMYGQekf4hlasL78fCYOLu4EE3/tXElwow==
+  dependencies:
+    "@types/d3-color" "*"
+
+"@types/d3-path@*":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.0.0.tgz#939e3a784ae4f80b1fde8098b91af1776ff1312b"
+  integrity sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==
+
+"@types/d3-polygon@*":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.0.tgz#5200a3fa793d7736fa104285fa19b0dbc2424b93"
+  integrity sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw==
+
+"@types/d3-quadtree@*":
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.3.tgz#b6f03b436e7f023100f24fbee5f8c8821fc9b456"
+  integrity sha512-GDWaR+rGEk4ToLQSGugYnoh9AYYblsg/8kmdpa1KAJMwcdZ0v8rwgnldURxI5UrzxPlCPzF7by/Tjmv+Jn21Dg==
+
+"@types/d3-random@*":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.1.tgz#5c8d42b36cd4c80b92e5626a252f994ca6bfc953"
+  integrity sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==
+
+"@types/d3-scale-chromatic@*":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#103124777e8cdec85b20b51fd3397c682ee1e954"
+  integrity sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==
+
+"@types/d3-scale@*":
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.5.tgz#daa4faa5438315a37a1f5eb1bcdc5aeb3d3e5a2d"
+  integrity sha512-w/C++3W394MHzcLKO2kdsIn5KKNTOqeQVzyPSGPLzQbkPw/jpeaGtSRlakcKevGgGsjJxGsbqS0fPrVFDbHrDA==
+  dependencies:
+    "@types/d3-time" "*"
+
+"@types/d3-selection@*":
+  version "3.0.7"
+  resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.7.tgz#c710b42de8dfa9f8927a3ed99c38ec3ce682bb8b"
+  integrity sha512-qoj2O7KjfqCobmtFOth8FMvjwMVPUAAmn6xiUbLl1ld7vQCPgffvyV5BBcEFfqWdilAUm+3zciU/3P3vZrUMlg==
+
+"@types/d3-shape@*":
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.3.tgz#20eee7aad70f2562041af18e305fec6b48fd511d"
+  integrity sha512-cHMdIq+rhF5IVwAV7t61pcEXfEHsEsrbBUPkFGBwTXuxtTAkBBrnrNA8++6OWm3jwVsXoZYQM8NEekg6CPJ3zw==
+  dependencies:
+    "@types/d3-path" "*"
+
+"@types/d3-time-format@*":
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.1.tgz#c47d933c2998ddc61a3133da64c0b8f0a5ecdefa"
+  integrity sha512-Br6EFeu9B1Zrem7KaYbr800xCmEDyq8uE60kEU8rWhC/XpFYX6ocGMZuRJDQfFCq6SyakQxNHFqIfJbFLf4x6Q==
+
+"@types/d3-time@*":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.1.tgz#f0c8f9037632cc4511ae55e7e1459dcb95fb3619"
+  integrity sha512-5j/AnefKAhCw4HpITmLDTPlf4vhi8o/dES+zbegfPb7LaGfNyqkLxBR6E+4yvTAgnJLmhe80EXFMzUs38fw4oA==
+
+"@types/d3-timer@*":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.0.tgz#e2505f1c21ec08bda8915238e397fb71d2fc54ce"
+  integrity sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==
+
+"@types/d3-transition@*":
+  version "3.0.5"
+  resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.5.tgz#354e8c60650c76c2249cd7b99055b344672c71aa"
+  integrity sha512-dcfjP6prFxj3ziFOJrnt4W2P0oXNj/sGxsJXH8286sHtVZ4qWGbjuZj+RRCYx4YZ4C0izpeE8OqXVCtoWEtzYg==
+  dependencies:
+    "@types/d3-selection" "*"
+
+"@types/d3-zoom@*":
+  version "3.0.5"
+  resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.5.tgz#3cc09d38add8231ecaa710ec053e876896e9b865"
+  integrity sha512-mIefdTLtxuWUWTbBupCUXPAXVPmi8/Uwrq41gQpRh0rD25GMU1ku+oTELqNY2NuuiI0F3wXC5e1liBQi7YS7XQ==
+  dependencies:
+    "@types/d3-interpolate" "*"
+    "@types/d3-selection" "*"
+
+"@types/d3@^7.1.0":
+  version "7.4.1"
+  resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.1.tgz#0168b616fa551d99e4534d0cbdeb50844c92b597"
+  integrity sha512-lBpYmbHTCtFKO1DB1R7E9dXp9/g1F3JXSGOF7iKPZ+wRmYg/Q6tCRHODGOc5Qk25fJRe2PI60EDRf2HLPUncMA==
+  dependencies:
+    "@types/d3-array" "*"
+    "@types/d3-axis" "*"
+    "@types/d3-brush" "*"
+    "@types/d3-chord" "*"
+    "@types/d3-color" "*"
+    "@types/d3-contour" "*"
+    "@types/d3-delaunay" "*"
+    "@types/d3-dispatch" "*"
+    "@types/d3-drag" "*"
+    "@types/d3-dsv" "*"
+    "@types/d3-ease" "*"
+    "@types/d3-fetch" "*"
+    "@types/d3-force" "*"
+    "@types/d3-format" "*"
+    "@types/d3-geo" "*"
+    "@types/d3-hierarchy" "*"
+    "@types/d3-interpolate" "*"
+    "@types/d3-path" "*"
+    "@types/d3-polygon" "*"
+    "@types/d3-quadtree" "*"
+    "@types/d3-random" "*"
+    "@types/d3-scale" "*"
+    "@types/d3-scale-chromatic" "*"
+    "@types/d3-selection" "*"
+    "@types/d3-shape" "*"
+    "@types/d3-time" "*"
+    "@types/d3-time-format" "*"
+    "@types/d3-timer" "*"
+    "@types/d3-transition" "*"
+    "@types/d3-zoom" "*"
+
+"@types/estree@^1.0.0":
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453"
+  integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==
+
+"@types/geojson@*":
+  version "7946.0.11"
+  resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.11.tgz#012c17cb2256ad8de78560da851ab914a7b9b40e"
+  integrity sha512-L7A0AINMXQpVwxHJ4jxD6/XjZ4NDufaRlUJHjNIFKYUFBH1SvOW+neaqb0VTRSLW5suSrSu19ObFEFnfNcr+qg==
+
+"@types/json-schema@^7.0.12":
+  version "7.0.13"
+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85"
+  integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==
+
+"@types/node@*":
+  version "20.8.3"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.3.tgz#c4ae2bb1cfab2999ed441a95c122bbbe1567a66d"
+  integrity sha512-jxiZQFpb+NlH5kjW49vXxvxTjeeqlbsnTAdBTKpzEdPs9itay7MscYXz3Fo9VYFEsfQ6LJFitHad3faerLAjCw==
+
+"@types/node@^20.3.1":
+  version "20.8.2"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.2.tgz#d76fb80d87d0d8abfe334fc6d292e83e5524efc4"
+  integrity sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==
+
+"@types/readable-stream@^4.0.1":
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-4.0.3.tgz#ec70b21c668a836b72ae178656833b45a8998ef7"
+  integrity sha512-Z8BOzyIj3UPpn3j5DmDNKIw4wPN9N8a1d1oyteiprWq+wxdgQNC0UfFAQwWjmjyA7uoj7mvoWgxWWH66zYtm4Q==
+  dependencies:
+    "@types/node" "*"
+    safe-buffer "~5.1.1"
+
+"@types/semver@^7.5.0":
+  version "7.5.3"
+  resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04"
+  integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==
+
+"@types/ws@^8.5.5":
+  version "8.5.6"
+  resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.6.tgz#e9ad51f0ab79b9110c50916c9fcbddc36d373065"
+  integrity sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==
+  dependencies:
+    "@types/node" "*"
+
+"@typescript-eslint/eslint-plugin@^6.7.0", "@typescript-eslint/eslint-plugin@^6.7.4":
+  version "6.7.4"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz#057338df21b6062c2f2fc5999fbea8af9973ac6d"
+  integrity sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==
+  dependencies:
+    "@eslint-community/regexpp" "^4.5.1"
+    "@typescript-eslint/scope-manager" "6.7.4"
+    "@typescript-eslint/type-utils" "6.7.4"
+    "@typescript-eslint/utils" "6.7.4"
+    "@typescript-eslint/visitor-keys" "6.7.4"
+    debug "^4.3.4"
+    graphemer "^1.4.0"
+    ignore "^5.2.4"
+    natural-compare "^1.4.0"
+    semver "^7.5.4"
+    ts-api-utils "^1.0.1"
+
+"@typescript-eslint/parser@^6.7.0", "@typescript-eslint/parser@^6.7.4":
+  version "6.7.4"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.4.tgz#23d1dd4fe5d295c7fa2ab651f5406cd9ad0bd435"
+  integrity sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==
+  dependencies:
+    "@typescript-eslint/scope-manager" "6.7.4"
+    "@typescript-eslint/types" "6.7.4"
+    "@typescript-eslint/typescript-estree" "6.7.4"
+    "@typescript-eslint/visitor-keys" "6.7.4"
+    debug "^4.3.4"
+
+"@typescript-eslint/scope-manager@6.7.4":
+  version "6.7.4"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz#a484a17aa219e96044db40813429eb7214d7b386"
+  integrity sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==
+  dependencies:
+    "@typescript-eslint/types" "6.7.4"
+    "@typescript-eslint/visitor-keys" "6.7.4"
+
+"@typescript-eslint/type-utils@6.7.4":
+  version "6.7.4"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz#847cd3b59baf948984499be3e0a12ff07373e321"
+  integrity sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==
+  dependencies:
+    "@typescript-eslint/typescript-estree" "6.7.4"
+    "@typescript-eslint/utils" "6.7.4"
+    debug "^4.3.4"
+    ts-api-utils "^1.0.1"
+
+"@typescript-eslint/types@6.7.4":
+  version "6.7.4"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.4.tgz#5d358484d2be986980c039de68e9f1eb62ea7897"
+  integrity sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==
+
+"@typescript-eslint/typescript-estree@6.7.4":
+  version "6.7.4"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz#f2baece09f7bb1df9296e32638b2e1130014ef1a"
+  integrity sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==
+  dependencies:
+    "@typescript-eslint/types" "6.7.4"
+    "@typescript-eslint/visitor-keys" "6.7.4"
+    debug "^4.3.4"
+    globby "^11.1.0"
+    is-glob "^4.0.3"
+    semver "^7.5.4"
+    ts-api-utils "^1.0.1"
+
+"@typescript-eslint/utils@6.7.4":
+  version "6.7.4"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.4.tgz#2236f72b10e38277ee05ef06142522e1de470ff2"
+  integrity sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.4.0"
+    "@types/json-schema" "^7.0.12"
+    "@types/semver" "^7.5.0"
+    "@typescript-eslint/scope-manager" "6.7.4"
+    "@typescript-eslint/types" "6.7.4"
+    "@typescript-eslint/typescript-estree" "6.7.4"
+    semver "^7.5.4"
+
+"@typescript-eslint/visitor-keys@6.7.4":
+  version "6.7.4"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz#80dfecf820fc67574012375859085f91a4dff043"
+  integrity sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==
+  dependencies:
+    "@typescript-eslint/types" "6.7.4"
+    eslint-visitor-keys "^3.4.1"
+
+"@vitejs/plugin-vue@^4.4.0":
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz#8ae96573236cdb12de6850a6d929b5537ec85390"
+  integrity sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==
+
+"@volar/language-core@1.10.1", "@volar/language-core@~1.10.0":
+  version "1.10.1"
+  resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.1.tgz#76789c5b0c214eeff8add29cbff0333d89b6fc4a"
+  integrity sha512-JnsM1mIPdfGPxmoOcK1c7HYAsL6YOv0TCJ4aW3AXPZN/Jb4R77epDyMZIVudSGjWMbvv/JfUa+rQ+dGKTmgwBA==
+  dependencies:
+    "@volar/source-map" "1.10.1"
+
+"@volar/source-map@1.10.1", "@volar/source-map@~1.10.0":
+  version "1.10.1"
+  resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.10.1.tgz#b806845782cc615f2beba94624ff34a700f302f5"
+  integrity sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA==
+  dependencies:
+    muggle-string "^0.3.1"
+
+"@volar/typescript@~1.10.0":
+  version "1.10.1"
+  resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.10.1.tgz#b20341c1cc5785b4de0669ea645e1619c97a4764"
+  integrity sha512-+iiO9yUSRHIYjlteT+QcdRq8b44qH19/eiUZtjNtuh6D9ailYM7DVR0zO2sEgJlvCaunw/CF9Ov2KooQBpR4VQ==
+  dependencies:
+    "@volar/language-core" "1.10.1"
+
+"@vue/compiler-core@3.3.4":
+  version "3.3.4"
+  resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128"
+  integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==
+  dependencies:
+    "@babel/parser" "^7.21.3"
+    "@vue/shared" "3.3.4"
+    estree-walker "^2.0.2"
+    source-map-js "^1.0.2"
+
+"@vue/compiler-dom@3.3.4", "@vue/compiler-dom@^3.3.0":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz"
+  integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==
+  dependencies:
+    "@vue/compiler-core" "3.3.4"
+    "@vue/shared" "3.3.4"
+
+"@vue/compiler-sfc@3.3.4":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz"
+  integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==
+  dependencies:
+    "@babel/parser" "^7.20.15"
+    "@vue/compiler-core" "3.3.4"
+    "@vue/compiler-dom" "3.3.4"
+    "@vue/compiler-ssr" "3.3.4"
+    "@vue/reactivity-transform" "3.3.4"
+    "@vue/shared" "3.3.4"
+    estree-walker "^2.0.2"
+    magic-string "^0.30.0"
+    postcss "^8.1.10"
+    source-map-js "^1.0.2"
+
+"@vue/compiler-ssr@3.3.4":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz"
+  integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==
+  dependencies:
+    "@vue/compiler-dom" "3.3.4"
+    "@vue/shared" "3.3.4"
+
+"@vue/eslint-config-prettier@^8.0.0":
+  version "8.0.0"
+  resolved "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz"
+  integrity sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==
+  dependencies:
+    eslint-config-prettier "^8.8.0"
+    eslint-plugin-prettier "^5.0.0"
+
+"@vue/eslint-config-typescript@^12.0.0":
+  version "12.0.0"
+  resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#0ce22d97af5e4155f3f2e7b21a48cfde8a6f3365"
+  integrity sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==
+  dependencies:
+    "@typescript-eslint/eslint-plugin" "^6.7.0"
+    "@typescript-eslint/parser" "^6.7.0"
+    vue-eslint-parser "^9.3.1"
+
+"@vue/language-core@1.8.15":
+  version "1.8.15"
+  resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.15.tgz#e84536f529f706c072037d495bfd610d4661fbae"
+  integrity sha512-zche5Aw8kkvp3YaghuLiOZyVIpoWHjSQ0EfjxGSsqHOPMamdCoa9x3HtbenpR38UMUoKJ88wiWuiOrV3B/Yq+A==
+  dependencies:
+    "@volar/language-core" "~1.10.0"
+    "@volar/source-map" "~1.10.0"
+    "@vue/compiler-dom" "^3.3.0"
+    "@vue/reactivity" "^3.3.0"
+    "@vue/shared" "^3.3.0"
+    minimatch "^9.0.0"
+    muggle-string "^0.3.1"
+    vue-template-compiler "^2.7.14"
+
+"@vue/reactivity-transform@3.3.4":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz"
+  integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==
+  dependencies:
+    "@babel/parser" "^7.20.15"
+    "@vue/compiler-core" "3.3.4"
+    "@vue/shared" "3.3.4"
+    estree-walker "^2.0.2"
+    magic-string "^0.30.0"
+
+"@vue/reactivity@3.3.4", "@vue/reactivity@^3.3.0":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz"
+  integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==
+  dependencies:
+    "@vue/shared" "3.3.4"
+
+"@vue/runtime-core@3.3.4":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz"
+  integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==
+  dependencies:
+    "@vue/reactivity" "3.3.4"
+    "@vue/shared" "3.3.4"
+
+"@vue/runtime-dom@3.3.4":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz"
+  integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==
+  dependencies:
+    "@vue/runtime-core" "3.3.4"
+    "@vue/shared" "3.3.4"
+    csstype "^3.1.1"
+
+"@vue/server-renderer@3.3.4":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz"
+  integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==
+  dependencies:
+    "@vue/compiler-ssr" "3.3.4"
+    "@vue/shared" "3.3.4"
+
+"@vue/shared@3.3.4", "@vue/shared@^3.3.0":
+  version "3.3.4"
+  resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780"
+  integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==
+
+"@vue/tsconfig@^0.4.0":
+  version "0.4.0"
+  resolved "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.4.0.tgz"
+  integrity sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==
+
+"@vue/typescript@1.8.15":
+  version "1.8.15"
+  resolved "https://registry.yarnpkg.com/@vue/typescript/-/typescript-1.8.15.tgz#ee8f7a99cf93597fa5503dc27125ddad3bcd32a7"
+  integrity sha512-qWyanQKXOsK84S8rP7QBrqsvUdQ0nZABZmTjXMpb3ox4Bp5IbkscREA3OPUrkgl64mAxwwCzIWcOc3BPTCPjQw==
+  dependencies:
+    "@volar/typescript" "~1.10.0"
+    "@vue/language-core" "1.8.15"
+
+abort-controller@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
+  integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
+  dependencies:
+    event-target-shim "^5.0.0"
+
+acorn-jsx@^5.3.2:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn@^8.9.0:
+  version "8.10.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
+  integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
+
+ajv@^6.12.4:
+  version "6.12.6"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
+
+ansi-regex@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+array-union@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
+  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
+balanced-match@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.3.1:
+  version "1.5.1"
+  resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
+  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+big-integer@^1.6.44:
+  version "1.6.51"
+  resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz"
+  integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
+
+bl@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273"
+  integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==
+  dependencies:
+    buffer "^6.0.3"
+    inherits "^2.0.4"
+    readable-stream "^3.4.0"
+
+boolbase@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
+  integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+
+bootstrap@^5.3.0:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.2.tgz#97226583f27aae93b2b28ab23f4c114757ff16ae"
+  integrity sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==
+
+bplist-parser@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz"
+  integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==
+  dependencies:
+    big-integer "^1.6.44"
+
+brace-expansion@^1.1.7:
+  version "1.1.11"
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+  dependencies:
+    balanced-match "^1.0.0"
+    concat-map "0.0.1"
+
+brace-expansion@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
+  integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+  dependencies:
+    balanced-match "^1.0.0"
+
+braces@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+  dependencies:
+    fill-range "^7.0.1"
+
+buffer-from@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
+  integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+buffer@^6.0.3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
+  integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
+  dependencies:
+    base64-js "^1.3.1"
+    ieee754 "^1.2.1"
+
+bundle-name@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz"
+  integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==
+  dependencies:
+    run-applescript "^5.0.0"
+
+callsites@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+chalk@^4.0.0:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+  dependencies:
+    color-name "~1.1.4"
+
+color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+commander@7:
+  version "7.2.0"
+  resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
+  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
+commist@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/commist/-/commist-3.2.0.tgz#da9c8e5f245ac21510badc4b10c46b5bcc9b56cd"
+  integrity sha512-4PIMoPniho+LqXmpS5d3NuGYncG6XWlkBSVGiWycL22dd42OYdUGil2CWuzklaJoNxyxUSpO4MKIBU94viWNAw==
+
+concat-map@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+  integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+concat-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz"
+  integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==
+  dependencies:
+    buffer-from "^1.0.0"
+    inherits "^2.0.3"
+    readable-stream "^3.0.2"
+    typedarray "^0.0.6"
+
+cross-spawn@^7.0.2, cross-spawn@^7.0.3:
+  version "7.0.3"
+  resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
+cssesc@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
+  integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+csstype@^3.1.1:
+  version "3.1.2"
+  resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
+  integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
+
+"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0:
+  version "3.2.4"
+  resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz"
+  integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
+  dependencies:
+    internmap "1 - 2"
+
+d3-axis@3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz"
+  integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==
+
+d3-brush@3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz"
+  integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==
+  dependencies:
+    d3-dispatch "1 - 3"
+    d3-drag "2 - 3"
+    d3-interpolate "1 - 3"
+    d3-selection "3"
+    d3-transition "3"
+
+d3-chord@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz"
+  integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==
+  dependencies:
+    d3-path "1 - 3"
+
+"d3-color@1 - 3", d3-color@3:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz"
+  integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
+
+d3-contour@4:
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz"
+  integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==
+  dependencies:
+    d3-array "^3.2.0"
+
+d3-delaunay@6:
+  version "6.0.4"
+  resolved "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz"
+  integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==
+  dependencies:
+    delaunator "5"
+
+"d3-dispatch@1 - 3", d3-dispatch@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz"
+  integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
+
+"d3-drag@2 - 3", d3-drag@3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz"
+  integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==
+  dependencies:
+    d3-dispatch "1 - 3"
+    d3-selection "3"
+
+"d3-dsv@1 - 3", d3-dsv@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz"
+  integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==
+  dependencies:
+    commander "7"
+    iconv-lite "0.6"
+    rw "1"
+
+"d3-ease@1 - 3", d3-ease@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz"
+  integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
+
+d3-fetch@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz"
+  integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==
+  dependencies:
+    d3-dsv "1 - 3"
+
+d3-force@3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz"
+  integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==
+  dependencies:
+    d3-dispatch "1 - 3"
+    d3-quadtree "1 - 3"
+    d3-timer "1 - 3"
+
+"d3-format@1 - 3", d3-format@3:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz"
+  integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==
+
+d3-geo@3:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz"
+  integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==
+  dependencies:
+    d3-array "2.5.0 - 3"
+
+d3-hierarchy@3:
+  version "3.1.2"
+  resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz"
+  integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==
+
+"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz"
+  integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
+  dependencies:
+    d3-color "1 - 3"
+
+"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz"
+  integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
+
+d3-polygon@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz"
+  integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==
+
+"d3-quadtree@1 - 3", d3-quadtree@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz"
+  integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==
+
+d3-random@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz"
+  integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==
+
+d3-scale-chromatic@3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz"
+  integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==
+  dependencies:
+    d3-color "1 - 3"
+    d3-interpolate "1 - 3"
+
+d3-scale@4:
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz"
+  integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
+  dependencies:
+    d3-array "2.10.0 - 3"
+    d3-format "1 - 3"
+    d3-interpolate "1.2.0 - 3"
+    d3-time "2.1.1 - 3"
+    d3-time-format "2 - 4"
+
+"d3-selection@2 - 3", d3-selection@3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz"
+  integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
+
+d3-shape@3:
+  version "3.2.0"
+  resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz"
+  integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==
+  dependencies:
+    d3-path "^3.1.0"
+
+"d3-time-format@2 - 4", d3-time-format@4:
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz"
+  integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
+  dependencies:
+    d3-time "1 - 3"
+
+"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz"
+  integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
+  dependencies:
+    d3-array "2 - 3"
+
+"d3-timer@1 - 3", d3-timer@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
+  integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
+
+"d3-transition@2 - 3", d3-transition@3:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz"
+  integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==
+  dependencies:
+    d3-color "1 - 3"
+    d3-dispatch "1 - 3"
+    d3-ease "1 - 3"
+    d3-interpolate "1 - 3"
+    d3-timer "1 - 3"
+
+d3-zoom@3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz"
+  integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==
+  dependencies:
+    d3-dispatch "1 - 3"
+    d3-drag "2 - 3"
+    d3-interpolate "1 - 3"
+    d3-selection "2 - 3"
+    d3-transition "2 - 3"
+
+d3@^7.8.5:
+  version "7.8.5"
+  resolved "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz"
+  integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==
+  dependencies:
+    d3-array "3"
+    d3-axis "3"
+    d3-brush "3"
+    d3-chord "3"
+    d3-color "3"
+    d3-contour "4"
+    d3-delaunay "6"
+    d3-dispatch "3"
+    d3-drag "3"
+    d3-dsv "3"
+    d3-ease "3"
+    d3-fetch "3"
+    d3-force "3"
+    d3-format "3"
+    d3-geo "3"
+    d3-hierarchy "3"
+    d3-interpolate "3"
+    d3-path "3"
+    d3-polygon "3"
+    d3-quadtree "3"
+    d3-random "3"
+    d3-scale "4"
+    d3-scale-chromatic "3"
+    d3-selection "3"
+    d3-shape "3"
+    d3-time "3"
+    d3-time-format "4"
+    d3-timer "3"
+    d3-transition "3"
+    d3-zoom "3"
+
+de-indent@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
+  integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
+
+debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
+  version "4.3.4"
+  resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
+  integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+  dependencies:
+    ms "2.1.2"
+
+deep-is@^0.1.3:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+default-browser-id@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz"
+  integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==
+  dependencies:
+    bplist-parser "^0.2.0"
+    untildify "^4.0.0"
+
+default-browser@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz"
+  integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==
+  dependencies:
+    bundle-name "^3.0.0"
+    default-browser-id "^3.0.0"
+    execa "^7.1.1"
+    titleize "^3.0.0"
+
+define-lazy-prop@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz"
+  integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==
+
+delaunator@5:
+  version "5.0.0"
+  resolved "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz"
+  integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==
+  dependencies:
+    robust-predicates "^3.0.0"
+
+dir-glob@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
+  integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+  dependencies:
+    path-type "^4.0.0"
+
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+  dependencies:
+    esutils "^2.0.2"
+
+duplexify@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0"
+  integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==
+  dependencies:
+    end-of-stream "^1.4.1"
+    inherits "^2.0.3"
+    readable-stream "^3.1.1"
+    stream-shift "^1.0.0"
+
+end-of-stream@^1.4.1:
+  version "1.4.4"
+  resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
+  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+  dependencies:
+    once "^1.4.0"
+
+esbuild@^0.18.10:
+  version "0.18.20"
+  resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
+  integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
+  optionalDependencies:
+    "@esbuild/android-arm" "0.18.20"
+    "@esbuild/android-arm64" "0.18.20"
+    "@esbuild/android-x64" "0.18.20"
+    "@esbuild/darwin-arm64" "0.18.20"
+    "@esbuild/darwin-x64" "0.18.20"
+    "@esbuild/freebsd-arm64" "0.18.20"
+    "@esbuild/freebsd-x64" "0.18.20"
+    "@esbuild/linux-arm" "0.18.20"
+    "@esbuild/linux-arm64" "0.18.20"
+    "@esbuild/linux-ia32" "0.18.20"
+    "@esbuild/linux-loong64" "0.18.20"
+    "@esbuild/linux-mips64el" "0.18.20"
+    "@esbuild/linux-ppc64" "0.18.20"
+    "@esbuild/linux-riscv64" "0.18.20"
+    "@esbuild/linux-s390x" "0.18.20"
+    "@esbuild/linux-x64" "0.18.20"
+    "@esbuild/netbsd-x64" "0.18.20"
+    "@esbuild/openbsd-x64" "0.18.20"
+    "@esbuild/sunos-x64" "0.18.20"
+    "@esbuild/win32-arm64" "0.18.20"
+    "@esbuild/win32-ia32" "0.18.20"
+    "@esbuild/win32-x64" "0.18.20"
+
+esbuild@^0.19.4:
+  version "0.19.4"
+  resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.4.tgz#cdf5c4c684956d550bc3c6d0c01dac7fef6c75b1"
+  integrity sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==
+  optionalDependencies:
+    "@esbuild/android-arm" "0.19.4"
+    "@esbuild/android-arm64" "0.19.4"
+    "@esbuild/android-x64" "0.19.4"
+    "@esbuild/darwin-arm64" "0.19.4"
+    "@esbuild/darwin-x64" "0.19.4"
+    "@esbuild/freebsd-arm64" "0.19.4"
+    "@esbuild/freebsd-x64" "0.19.4"
+    "@esbuild/linux-arm" "0.19.4"
+    "@esbuild/linux-arm64" "0.19.4"
+    "@esbuild/linux-ia32" "0.19.4"
+    "@esbuild/linux-loong64" "0.19.4"
+    "@esbuild/linux-mips64el" "0.19.4"
+    "@esbuild/linux-ppc64" "0.19.4"
+    "@esbuild/linux-riscv64" "0.19.4"
+    "@esbuild/linux-s390x" "0.19.4"
+    "@esbuild/linux-x64" "0.19.4"
+    "@esbuild/netbsd-x64" "0.19.4"
+    "@esbuild/openbsd-x64" "0.19.4"
+    "@esbuild/sunos-x64" "0.19.4"
+    "@esbuild/win32-arm64" "0.19.4"
+    "@esbuild/win32-ia32" "0.19.4"
+    "@esbuild/win32-x64" "0.19.4"
+
+escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+eslint-config-prettier@^8.8.0:
+  version "8.10.0"
+  resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz"
+  integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==
+
+eslint-plugin-prettier@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz"
+  integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==
+  dependencies:
+    prettier-linter-helpers "^1.0.0"
+    synckit "^0.8.5"
+
+eslint-plugin-vue@^9.14.1:
+  version "9.17.0"
+  resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz"
+  integrity sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.4.0"
+    natural-compare "^1.4.0"
+    nth-check "^2.1.1"
+    postcss-selector-parser "^6.0.13"
+    semver "^7.5.4"
+    vue-eslint-parser "^9.3.1"
+    xml-name-validator "^4.0.0"
+
+eslint-scope@^7.1.1, eslint-scope@^7.2.2:
+  version "7.2.2"
+  resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz"
+  integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^5.2.0"
+
+eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
+  version "3.4.3"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
+  integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+
+eslint@^8.43.0:
+  version "8.50.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2"
+  integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.2.0"
+    "@eslint-community/regexpp" "^4.6.1"
+    "@eslint/eslintrc" "^2.1.2"
+    "@eslint/js" "8.50.0"
+    "@humanwhocodes/config-array" "^0.11.11"
+    "@humanwhocodes/module-importer" "^1.0.1"
+    "@nodelib/fs.walk" "^1.2.8"
+    ajv "^6.12.4"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
+    debug "^4.3.2"
+    doctrine "^3.0.0"
+    escape-string-regexp "^4.0.0"
+    eslint-scope "^7.2.2"
+    eslint-visitor-keys "^3.4.3"
+    espree "^9.6.1"
+    esquery "^1.4.2"
+    esutils "^2.0.2"
+    fast-deep-equal "^3.1.3"
+    file-entry-cache "^6.0.1"
+    find-up "^5.0.0"
+    glob-parent "^6.0.2"
+    globals "^13.19.0"
+    graphemer "^1.4.0"
+    ignore "^5.2.0"
+    imurmurhash "^0.1.4"
+    is-glob "^4.0.0"
+    is-path-inside "^3.0.3"
+    js-yaml "^4.1.0"
+    json-stable-stringify-without-jsonify "^1.0.1"
+    levn "^0.4.1"
+    lodash.merge "^4.6.2"
+    minimatch "^3.1.2"
+    natural-compare "^1.4.0"
+    optionator "^0.9.3"
+    strip-ansi "^6.0.1"
+    text-table "^0.2.0"
+
+espree@^9.3.1, espree@^9.6.0, espree@^9.6.1:
+  version "9.6.1"
+  resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz"
+  integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+  dependencies:
+    acorn "^8.9.0"
+    acorn-jsx "^5.3.2"
+    eslint-visitor-keys "^3.4.1"
+
+esquery@^1.4.0, esquery@^1.4.2:
+  version "1.5.0"
+  resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz"
+  integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
+  dependencies:
+    estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+  dependencies:
+    estraverse "^5.2.0"
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+estree-walker@^0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
+  integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
+
+estree-walker@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
+  integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+
+esutils@^2.0.2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+event-target-shim@^5.0.0:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
+  integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+
+events@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+  integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+execa@^5.0.0:
+  version "5.1.1"
+  resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
+  integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+  dependencies:
+    cross-spawn "^7.0.3"
+    get-stream "^6.0.0"
+    human-signals "^2.1.0"
+    is-stream "^2.0.0"
+    merge-stream "^2.0.0"
+    npm-run-path "^4.0.1"
+    onetime "^5.1.2"
+    signal-exit "^3.0.3"
+    strip-final-newline "^2.0.0"
+
+execa@^7.1.1:
+  version "7.2.0"
+  resolved "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz"
+  integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==
+  dependencies:
+    cross-spawn "^7.0.3"
+    get-stream "^6.0.1"
+    human-signals "^4.3.0"
+    is-stream "^3.0.0"
+    merge-stream "^2.0.0"
+    npm-run-path "^5.1.0"
+    onetime "^6.0.0"
+    signal-exit "^3.0.7"
+    strip-final-newline "^3.0.0"
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-diff@^1.1.2:
+  version "1.3.0"
+  resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz"
+  integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
+
+fast-glob@^3.2.9, fast-glob@^3.3.0:
+  version "3.3.1"
+  resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz"
+  integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
+  dependencies:
+    "@nodelib/fs.stat" "^2.0.2"
+    "@nodelib/fs.walk" "^1.2.3"
+    glob-parent "^5.1.2"
+    merge2 "^1.3.0"
+    micromatch "^4.0.4"
+
+fast-json-stable-stringify@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
+fastq@^1.6.0:
+  version "1.15.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
+  integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
+  dependencies:
+    reusify "^1.0.4"
+
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+  dependencies:
+    flat-cache "^3.0.4"
+
+fill-range@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+  dependencies:
+    to-regex-range "^5.0.1"
+
+find-up@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+  dependencies:
+    locate-path "^6.0.0"
+    path-exists "^4.0.0"
+
+flat-cache@^3.0.4:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f"
+  integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==
+  dependencies:
+    flatted "^3.2.7"
+    keyv "^4.5.3"
+    rimraf "^3.0.2"
+
+flatted@^3.2.7:
+  version "3.2.9"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf"
+  integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==
+
+fs.realpath@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+  integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+fsevents@~2.3.2:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
+get-stream@^6.0.0, get-stream@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+glob-parent@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob-parent@^6.0.2:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+  integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+  dependencies:
+    is-glob "^4.0.3"
+
+glob@^7.1.3:
+  version "7.2.3"
+  resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
+  integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.1.1"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
+glob@^8.0.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
+  integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^5.0.1"
+    once "^1.3.0"
+
+globals@^13.19.0:
+  version "13.23.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02"
+  integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==
+  dependencies:
+    type-fest "^0.20.2"
+
+globby@^11.1.0:
+  version "11.1.0"
+  resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
+  integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+  dependencies:
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.2.9"
+    ignore "^5.2.0"
+    merge2 "^1.4.1"
+    slash "^3.0.0"
+
+graphemer@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+  integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+he@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+help-me@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563"
+  integrity sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==
+  dependencies:
+    glob "^8.0.0"
+    readable-stream "^3.6.0"
+
+human-signals@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+human-signals@^4.3.0:
+  version "4.3.1"
+  resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz"
+  integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
+
+iconv-lite@0.6:
+  version "0.6.3"
+  resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
+  integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3.0.0"
+
+ieee754@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+ignore@^5.2.0, ignore@^5.2.4:
+  version "5.2.4"
+  resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
+  integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
+
+import-fresh@^3.2.1:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
+imurmurhash@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+inflight@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+  dependencies:
+    once "^1.3.0"
+    wrappy "1"
+
+inherits@2, inherits@^2.0.3, inherits@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+"internmap@1 - 2":
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz"
+  integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
+
+is-docker@^2.0.0:
+  version "2.2.1"
+  resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz"
+  integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-docker@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz"
+  integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==
+
+is-extglob@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+  integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+  dependencies:
+    is-extglob "^2.1.1"
+
+is-inside-container@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz"
+  integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==
+  dependencies:
+    is-docker "^3.0.0"
+
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-path-inside@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
+is-stream@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
+  integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+is-stream@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz"
+  integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
+
+is-wsl@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
+  integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+  dependencies:
+    is-docker "^2.0.0"
+
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+js-sdsl@4.3.0:
+  version "4.3.0"
+  resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz"
+  integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==
+
+js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
+
+json-buffer@3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+  integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+json-schema-traverse@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
+keyv@^4.5.3:
+  version "4.5.3"
+  resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25"
+  integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==
+  dependencies:
+    json-buffer "3.0.1"
+
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+  dependencies:
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
+
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+  dependencies:
+    p-locate "^5.0.0"
+
+lodash.merge@^4.6.2:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash@^4.17.21:
+  version "4.17.21"
+  resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
+lru-cache@^7.18.3:
+  version "7.18.3"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
+  integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
+
+magic-string@^0.25.3:
+  version "0.25.9"
+  resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
+  integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
+  dependencies:
+    sourcemap-codec "^1.4.8"
+
+magic-string@^0.27.0:
+  version "0.27.0"
+  resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3"
+  integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
+  dependencies:
+    "@jridgewell/sourcemap-codec" "^1.4.13"
+
+magic-string@^0.30.0:
+  version "0.30.2"
+  resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz"
+  integrity sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==
+  dependencies:
+    "@jridgewell/sourcemap-codec" "^1.4.15"
+
+merge-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0, merge2@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromatch@^4.0.4:
+  version "4.0.5"
+  resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
+  integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+  dependencies:
+    braces "^3.0.2"
+    picomatch "^2.3.1"
+
+mimic-fn@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
+  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+mimic-fn@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz"
+  integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+
+minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+  integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+  dependencies:
+    brace-expansion "^1.1.7"
+
+minimatch@^5.0.1:
+  version "5.1.6"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
+  integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
+  dependencies:
+    brace-expansion "^2.0.1"
+
+minimatch@^9.0.0:
+  version "9.0.3"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
+  integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
+  dependencies:
+    brace-expansion "^2.0.1"
+
+minimist@^1.2.8:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+  integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+mqtt-packet@^8.2.0:
+  version "8.2.1"
+  resolved "https://registry.yarnpkg.com/mqtt-packet/-/mqtt-packet-8.2.1.tgz#f0875df12be5af3fdd994a81b104570bd45fc7c7"
+  integrity sha512-vrHHjwhmuxzQIe3fJWoOLQHF4H5FETUrQGYD5g1qGfEmpjkQUkPONfygA0cI8Wtb3IUCfu66WmZiVSCgGm8oUw==
+  dependencies:
+    bl "^5.0.0"
+    debug "^4.1.1"
+    process-nextick-args "^2.0.1"
+
+mqtt@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/mqtt/-/mqtt-5.1.0.tgz#bf2bf359678cfb47791f2424f41a95e09ebfc9db"
+  integrity sha512-diOpTxlECz1/ld6NNN2T7ZlNqNwGCo8KfROyXMeBX/ZMULdAo6VvWUDXY8Esh5DhMWR/wM+lfSYXv4OHJ8MUiw==
+  dependencies:
+    "@types/readable-stream" "^4.0.1"
+    "@types/ws" "^8.5.5"
+    commist "^3.2.0"
+    concat-stream "^2.0.0"
+    debug "^4.3.4"
+    duplexify "^4.1.2"
+    help-me "^4.2.0"
+    lru-cache "^7.18.3"
+    minimist "^1.2.8"
+    mqtt-packet "^8.2.0"
+    number-allocator "^1.0.14"
+    readable-stream "^4.4.2"
+    reinterval "^1.1.0"
+    rfdc "^1.3.0"
+    split2 "^4.2.0"
+    ws "^8.13.0"
+
+ms@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+muggle-string@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a"
+  integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==
+
+nanoid@^3.3.6:
+  version "3.3.6"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
+  integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
+
+natural-compare@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+
+npm-run-path@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
+  integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+  dependencies:
+    path-key "^3.0.0"
+
+npm-run-path@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz"
+  integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
+  dependencies:
+    path-key "^4.0.0"
+
+nth-check@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz"
+  integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+  dependencies:
+    boolbase "^1.0.0"
+
+number-allocator@^1.0.14:
+  version "1.0.14"
+  resolved "https://registry.yarnpkg.com/number-allocator/-/number-allocator-1.0.14.tgz#1f2e32855498a7740dcc8c78bed54592d930ee4d"
+  integrity sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==
+  dependencies:
+    debug "^4.3.1"
+    js-sdsl "4.3.0"
+
+once@^1.3.0, once@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+  integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+  dependencies:
+    wrappy "1"
+
+onetime@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
+  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+  dependencies:
+    mimic-fn "^2.1.0"
+
+onetime@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz"
+  integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
+  dependencies:
+    mimic-fn "^4.0.0"
+
+open@^9.1.0:
+  version "9.1.0"
+  resolved "https://registry.npmjs.org/open/-/open-9.1.0.tgz"
+  integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==
+  dependencies:
+    default-browser "^4.0.0"
+    define-lazy-prop "^3.0.0"
+    is-inside-container "^1.0.0"
+    is-wsl "^2.2.0"
+
+optionator@^0.9.3:
+  version "0.9.3"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
+  integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
+  dependencies:
+    "@aashutoshrathi/word-wrap" "^1.2.3"
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+
+p-limit@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+  dependencies:
+    yocto-queue "^0.1.0"
+
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+  dependencies:
+    p-limit "^3.0.2"
+
+parent-module@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+  dependencies:
+    callsites "^3.0.0"
+
+path-exists@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+  integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-key@^3.0.0, path-key@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-key@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz"
+  integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
+
+path-type@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
+  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+picocolors@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
+  integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+postcss-selector-parser@^6.0.13:
+  version "6.0.13"
+  resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz"
+  integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
+  dependencies:
+    cssesc "^3.0.0"
+    util-deprecate "^1.0.2"
+
+postcss@^8.1.10, postcss@^8.4.27:
+  version "8.4.31"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
+  integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
+  dependencies:
+    nanoid "^3.3.6"
+    picocolors "^1.0.0"
+    source-map-js "^1.0.2"
+
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prettier-linter-helpers@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
+  integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+  dependencies:
+    fast-diff "^1.1.2"
+
+prettier@^3.0.1:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643"
+  integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==
+
+process-nextick-args@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+process@^0.11.10:
+  version "0.11.10"
+  resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+  integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
+
+punycode@^2.1.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
+  integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+  version "3.6.2"
+  resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
+  integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
+readable-stream@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13"
+  integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==
+  dependencies:
+    abort-controller "^3.0.0"
+    buffer "^6.0.3"
+    events "^3.3.0"
+    process "^0.11.10"
+    string_decoder "^1.3.0"
+
+reinterval@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz"
+  integrity sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==
+
+resolve-from@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rfdc@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz"
+  integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
+
+rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
+robust-predicates@^3.0.0:
+  version "3.0.2"
+  resolved "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz"
+  integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==
+
+rollup-plugin-inject@^3.0.0:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4"
+  integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==
+  dependencies:
+    estree-walker "^0.6.1"
+    magic-string "^0.25.3"
+    rollup-pluginutils "^2.8.1"
+
+rollup-plugin-node-polyfills@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd"
+  integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==
+  dependencies:
+    rollup-plugin-inject "^3.0.0"
+
+rollup-plugin-polyfill-node@^0.12.0:
+  version "0.12.0"
+  resolved "https://registry.yarnpkg.com/rollup-plugin-polyfill-node/-/rollup-plugin-polyfill-node-0.12.0.tgz#33d421ddb7fcb69c234461e508ca6d2db6193f1d"
+  integrity sha512-PWEVfDxLEKt8JX1nZ0NkUAgXpkZMTb85rO/Ru9AQ69wYW8VUCfDgP4CGRXXWYni5wDF0vIeR1UoF3Jmw/Lt3Ug==
+  dependencies:
+    "@rollup/plugin-inject" "^5.0.1"
+
+rollup-pluginutils@^2.8.1:
+  version "2.8.2"
+  resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
+  integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
+  dependencies:
+    estree-walker "^0.6.1"
+
+rollup@3.x, rollup@^3.27.1:
+  version "3.29.4"
+  resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
+  integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
+  optionalDependencies:
+    fsevents "~2.3.2"
+
+run-applescript@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz"
+  integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==
+  dependencies:
+    execa "^5.0.0"
+
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
+
+rw@1:
+  version "1.3.3"
+  resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz"
+  integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==
+
+safe-buffer@~5.1.1:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-buffer@~5.2.0:
+  version "5.2.1"
+  resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+"safer-buffer@>= 2.1.2 < 3.0.0":
+  version "2.1.2"
+  resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+semver@^7.3.6, semver@^7.3.8, semver@^7.5.4:
+  version "7.5.4"
+  resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz"
+  integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+  dependencies:
+    lru-cache "^6.0.0"
+
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+  dependencies:
+    shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+signal-exit@^3.0.3, signal-exit@^3.0.7:
+  version "3.0.7"
+  resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
+  integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+slash@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
+  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+source-map-js@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+  integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+sourcemap-codec@^1.4.8:
+  version "1.4.8"
+  resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
+  integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
+
+split2@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
+  integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
+
+stream-shift@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz"
+  integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+
+string_decoder@^1.1.1, string_decoder@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
+  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+  dependencies:
+    safe-buffer "~5.2.0"
+
+strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+  dependencies:
+    ansi-regex "^5.0.1"
+
+strip-final-newline@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
+  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-final-newline@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz"
+  integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
+
+strip-json-comments@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+supports-color@^7.1.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  dependencies:
+    has-flag "^4.0.0"
+
+swiper@^10.1.0:
+  version "10.3.1"
+  resolved "https://registry.yarnpkg.com/swiper/-/swiper-10.3.1.tgz#4d19d7e9d0bd184c30accf2c1b180cfe41b9f4af"
+  integrity sha512-24Wk3YUdZHxjc9faID97GTu6xnLNia+adMt6qMTZG/HgdSUt4fS0REsGUXJOgpTED0Amh/j+gRGQxsLayJUlBQ==
+
+synckit@^0.8.5:
+  version "0.8.5"
+  resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz"
+  integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==
+  dependencies:
+    "@pkgr/utils" "^2.3.1"
+    tslib "^2.5.0"
+
+text-table@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+
+titleize@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz"
+  integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==
+
+to-fast-properties@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+  integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
+
+to-regex-range@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+  dependencies:
+    is-number "^7.0.0"
+
+ts-api-utils@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331"
+  integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==
+
+tslib@^2.5.0, tslib@^2.6.0:
+  version "2.6.2"
+  resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
+  integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+  dependencies:
+    prelude-ls "^1.2.1"
+
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+typedarray@^0.0.6:
+  version "0.0.6"
+  resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+  integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+
+typescript@^5.1.3:
+  version "5.2.2"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78"
+  integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==
+
+untildify@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz"
+  integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
+
+uri-js@^4.2.2:
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+  dependencies:
+    punycode "^2.1.0"
+
+util-deprecate@^1.0.1, util-deprecate@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+  integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+vite@^4.4.11:
+  version "4.4.11"
+  resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.11.tgz#babdb055b08c69cfc4c468072a2e6c9ca62102b0"
+  integrity sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==
+  dependencies:
+    esbuild "^0.18.10"
+    postcss "^8.4.27"
+    rollup "^3.27.1"
+  optionalDependencies:
+    fsevents "~2.3.2"
+
+vue-eslint-parser@^9.3.1:
+  version "9.3.1"
+  resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz"
+  integrity sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==
+  dependencies:
+    debug "^4.3.4"
+    eslint-scope "^7.1.1"
+    eslint-visitor-keys "^3.3.0"
+    espree "^9.3.1"
+    esquery "^1.4.0"
+    lodash "^4.17.21"
+    semver "^7.3.6"
+
+vue-template-compiler@^2.7.14:
+  version "2.7.14"
+  resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1"
+  integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==
+  dependencies:
+    de-indent "^1.0.2"
+    he "^1.2.0"
+
+vue-tsc@^1.8.0:
+  version "1.8.15"
+  resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.15.tgz#e00faee4215b65e797efc29200ab9ad9432318df"
+  integrity sha512-4DoB3LUj7IToLmggoCxRiFG+QU5lem0nv03m1ocqugXA9rSVoTOEoYYaP8vu8b99Eh+/cCVdYOeIAQ+RsgUYUw==
+  dependencies:
+    "@vue/language-core" "1.8.15"
+    "@vue/typescript" "1.8.15"
+    semver "^7.3.8"
+
+vue@^3.3.4:
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz"
+  integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==
+  dependencies:
+    "@vue/compiler-dom" "3.3.4"
+    "@vue/compiler-sfc" "3.3.4"
+    "@vue/runtime-dom" "3.3.4"
+    "@vue/server-renderer" "3.3.4"
+    "@vue/shared" "3.3.4"
+
+which@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+  dependencies:
+    isexe "^2.0.0"
+
+wrappy@1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+  integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+ws@^8.13.0:
+  version "8.14.2"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f"
+  integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==
+
+xml-name-validator@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
+  integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
diff --git a/packages/modules/web_themes/colors/web/assets/fa-solid-900-1782156b.ttf b/packages/modules/web_themes/colors/web/assets/fa-solid-900-1782156b.ttf
new file mode 100644
index 0000000000..99b35ad505
Binary files /dev/null and b/packages/modules/web_themes/colors/web/assets/fa-solid-900-1782156b.ttf differ
diff --git a/packages/modules/web_themes/colors/web/assets/fa-solid-900-1b099f88.woff2 b/packages/modules/web_themes/colors/web/assets/fa-solid-900-1b099f88.woff2
new file mode 100644
index 0000000000..c7bd59c241
Binary files /dev/null and b/packages/modules/web_themes/colors/web/assets/fa-solid-900-1b099f88.woff2 differ
diff --git a/packages/modules/web_themes/colors/web/assets/index-061c8b93.css b/packages/modules/web_themes/colors/web/assets/index-061c8b93.css
new file mode 100644
index 0000000000..cb9af4d3c4
--- /dev/null
+++ b/packages/modules/web_themes/colors/web/assets/index-061c8b93.css
@@ -0,0 +1,9 @@
+@charset "UTF-8";.form-select[data-v-73750280]{background-color:var(--color-input);border:1;border-color:var(--color-bg);color:var(--color-bg);text-align:start;font-size:var(--font-small)}.commitbutton[data-v-73750280]{background-color:var(--color-bg);color:var(--color-input)}option[data-v-73750280]{color:green}.form-select[data-v-73750280]{font-size:var(--font-verysmall);background-color:var(--color-menu);color:var(--color-fg)}.optiontable[data-v-73750280]{background-color:var(--color-menu)}.optionbutton[data-v-73750280]{font-size:var(--font-small);color:var(--color-fg);background-color:var(--color-menu);font-size:var(--font-verysmall);text-align:center}.dropdown-menu[data-v-73750280]{background-color:var(--color-menu)}.dropdown-toggle[data-v-73750280]{background-color:var(--color-menu);color:var(--color-fg);border:1px solid var(--color-bg);font-size:var(--font-verysmall)}.radiobutton[data-v-4705eced]{border:0px solid var(--color-menu);opacity:1}.btn-outline-secondary.active[data-v-4705eced]{background-color:var(--color-bg);border:0px solid var(--color-fg);opacity:.8}.btn-group[data-v-4705eced]{border:1px solid var(--color-menu)}.rounded-pill[data-v-f1a7249f]{background-color:var(--color-menu)}.arrowButton[data-v-f1a7249f]{border:0}.datebadge[data-v-f1a7249f]{background-color:var(--color-menu);color:var(--color-bg);font-size:var(--font-medium);font-weight:400}.arrowButton[data-v-f1a7249f],.fa-ellipsis-vertical[data-v-2ce1d1f1]{color:var(--color-menu)}.datebadge[data-v-2ce1d1f1]{background-color:var(--color-menu);color:var(--color-bg);font-size:var(--font-medium);font-weight:400}.heading[data-v-5512398e]{color:var(--color-menu);font-size:var(--font-small)}.content[data-v-5512398e]{font-size:var(--font-normal);font-weight:700}.wb-subwidget[data-v-263a58f0]{border-top:.5px solid var(--color-scale)}.infotext[data-v-85517e3c]{font-size:var(--font-settings);color:var(--color-battery)}.item-icon[data-v-85517e3c]{color:var(--color-menu);font-size:var(--font-settings)}.titlecolumn[data-v-85517e3c]{color:var(--color-fg);font-size:var(--font-settings)}.selectors[data-v-85517e3c],.configitem[data-v-85517e3c]{font-size:var(--font-settings)}.minlabel[data-v-d228e49b],.maxlabel[data-v-d228e49b]{color:var(--color-menu)}.valuelabel[data-v-d228e49b]{color:var(--color-fg)}.minusButton[data-v-d228e49b],.plusButton[data-v-d228e49b]{color:var(--color-menu)}.radiobutton[data-v-df222cbe]{border:.5px solid var(--color-input);opacity:.5;font-size:var(--font-settings)}.btn-outline-secondary.active[data-v-df222cbe]{background-color:var(--color-bg);border:1px solid var(--color-fg);box-shadow:0 .5rem 1rem #00000026;opacity:1}.chargeConfigSelect[data-v-ccd11e7e]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-ccd11e7e]{color:var(--color-charging)}.chargeConfigSelect[data-v-daf11c39]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-daf11c39]{color:var(--color-pv)}.modal-footer[data-v-1a32bb24],.modal-header[data-v-1a32bb24],.modal-body[data-v-1a32bb24]{background:var(--color-bg)}.btn-close[data-v-1a32bb24]{color:var(--color-fg)}.modal-footer[data-v-1a32bb24]{text-align:right}.modal-header .btn-close[data-v-1a32bb24]{color:var(--color-fg);background:var(--color-bg);border:0px}.modal.fade .modal-dialog[data-v-1a32bb24]{transition:transform 1s ease-out;transform:none;scale:.6}.modal.show .modal-dialog[data-v-1a32bb24]{transition:transform .3s ease-in;transform:none;scale:1}.form-select[data-v-5e33ce1f]{background-color:var(--color-input);color:#000;border:1px solid var(--color-bg);font-size:var(--font-settings)}.form-check-input[data-v-534700e0]{background-color:var(--color-menu)}.form-check-input[data-v-534700e0]:checked{background-color:var(--color-pv)}.form-control[data-v-51c81cc3]{background-color:var(--color-input);color:#000;border:1px solid var(--color-bg)}.time-input[data-v-119e0317]{background-color:var(--color-bg);color:var(--color-fg);border:1px solid var(--color-menu)}.tablecell[data-v-399182a8]{color:var(--color-fg);text-align:center}.emptycell[data-v-399182a8]{border-left:0;border-right:0;border-bottom:0}.tableheader[data-v-399182a8]{color:var(--color-menu);text-align:center}.heading[data-v-399182a8]{color:var(--color-battery)}.editButton[data-v-399182a8],.addButton[data-v-399182a8]{color:var(--color-menu)}.left[data-v-399182a8]{text-align:left}.right[data-v-399182a8]{text-align:right}.time-input[data-v-dbb0f7ee]{background-color:var(--color-bg);color:var(--color-fg);border:1px solid var(--color-menu)}.tablecell[data-v-674bed04]{color:var(--color-fg);background-color:var(--color-bg);text-align:center}.tableheader[data-v-674bed04]{color:var(--color-menu);background-color:var(--color-bg);text-align:center}.emptycell[data-v-674bed04]{border-left:0;border-right:0;border-bottom:0;border-top:0;background-color:var(--color-bg);color:var(--color-fg)}.heading[data-v-674bed04]{color:var(--color-battery)}.editButton[data-v-674bed04],.addButton[data-v-674bed04]{color:var(--color-menu)}.left[data-v-674bed04]{text-align:left}.right[data-v-674bed04]{text-align:right}.status-string[data-v-fcb57a44]{font-size:var(--font-normal);font-style:italic;color:var(--color-battery)}.chargeConfigSelect[data-v-fcb57a44]{background:var(--color-bg);color:var(--color-fg)}.chargeModeOption[data-v-fcb57a44]{background:green;color:#00f}.nav-tabs .nav-link[data-v-fcb57a44]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-fcb57a44]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-fcb57a44]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:1px solid var(--color-menu);border-bottom:1px solid var(--color-menu)}.settingsheader[data-v-fcb57a44]{color:var(--color-charging)}.status-string[data-v-29abd227]{font-size:var(--font-normal);font-style:italic;color:var(--color-battery)}.chargeConfigSelect[data-v-29abd227]{background:var(--color-bg);color:var(--color-fg)}.chargeModeOption[data-v-29abd227]{background:green;color:#00f}.nav-tabs .nav-link[data-v-29abd227]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-29abd227]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-29abd227]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:1px solid var(--color-menu);border-bottom:1px solid var(--color-menu)}.settingsheader[data-v-29abd227]{color:var(--color-charging);font-size:16px;font-weight:700}hr[data-v-29abd227]{color:var(--color-menu)}.status-string[data-v-963883cd]{font-size:var(--font-settings);font-style:italic;color:var(--color-battery)}.nav-tabs .nav-link[data-v-963883cd]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-963883cd]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-963883cd]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:1px solid var(--color-menu);border-bottom:0px solid var(--color-menu)}.heading[data-v-963883cd],.batIcon[data-v-49be699a]{color:var(--color-menu)}.wb-widget[data-v-349e7414]{width:100%;border-radius:30px}.modeIndicator[data-v-090d0c53]{color:#fff}.outlinePill[data-v-090d0c53]{border:1px solid;background:var(--color-bg);vertical-align:bottom;font-size:var(--font-verysmall)}.statusIndicator[data-v-090d0c53]{border:1px solid;background:"var(--bg) "}.buttonIcon[data-v-090d0c53]{color:var(--color-menu)}.fa-star[data-v-090d0c53]{color:var(--color-evu)}.fa-clock[data-v-090d0c53]{color:var(--color-battery)}.fa-sliders[data-v-090d0c53],.energylabel[data-v-090d0c53]{color:var(--color-menu)}.vehicleName[data-v-090d0c53]{color:var(--color-fg)}.longline[data-v-090d0c53]{color:var(--color-menu);padding:3;margin-left:5}.fa-car[data-v-090d0c53],.fa-ellipsis-vertical[data-v-090d0c53],.fa-circle-check[data-v-090d0c53]{color:var(--color-menu)}.heading[data-v-090d0c53]{color:var(--color-menu);font-size:var(--font-small)}.content[data-v-090d0c53]{font-size:var(--font-normal);font-weight:700}.tablerow[data-v-e5ea1042]{margin:14px}.tablecell[data-v-e5ea1042]{color:var(--color-fg);background-color:var(--color-bg);text-align:center;padding-top:2px;padding-left:2px;padding-right:2px;vertical-align:baseline;line-height:1.4rem;font-size:var(--font-small)}.buttoncell[data-v-e5ea1042]{background-color:var(--color-bg);padding:0;margin:0}.left[data-v-e5ea1042]{text-align:left}.tablecell.right[data-v-e5ea1042]{text-align:right}.tablecolum1[data-v-e5ea1042]{color:var(--color-fg);text-align:left;margin:0;padding:0}.tableicon[data-v-e5ea1042]{color:var(--color-menu)}.fa-star[data-v-e5ea1042]{color:var(--color-evu)}.fa-clock[data-v-e5ea1042]{color:var(--color-battery)}.tableheader[data-v-76f208ee]{margin:0;padding-left:0;background-color:var(--color-bg);color:var(--color-menu)}.alignleft[data-v-76f208ee]{text-align:left}.aligncenter[data-v-76f208ee]{text-align:center}.alignright[data-v-76f208ee]{text-align:right}.table[data-v-76f208ee]{border-spacing:1rem;background-color:var(--color-bg)}@font-face{font-family:swiper-icons;src:url(data:application/font-woff;charset=utf-8;base64,\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA);font-weight:400;font-style:normal}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;overflow:clip;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.plugIndicator[data-v-1cdb938b]{color:#fff;border:1px solid white}.chargeButton[data-v-1cdb938b]{color:#fff}.left[data-v-1cdb938b]{float:left}.right[data-v-1cdb938b]{float:right}.center[data-v-1cdb938b]{margin:auto}.battery-color[data-v-a5c2f113]{color:var(--color-battery)}.fg-color[data-v-a5c2f113]{color:var(--color-fg)}.menu-color[data-v-a5c2f113],.todaystring[data-v-a5c2f113]{color:var(--color-menu)}.color-charging[data-v-453a6579]{color:var(--color-charging)}.price-button[data-v-453a6579]{background-color:var(--color-bg);color:var(--color-fg);border:0}.statusbutton[data-v-064f5a85]{font-size:var(--font-large)}.modebutton[data-v-064f5a85]{background-color:var(--color-menu);font-size:var(--font-verysmall);font-weight:400}.tempbadge[data-v-064f5a85]{background-color:var(--color-battery);color:var(--color-bg);font-size:var(--font-verysmall);font-weight:400}.sh-title[data-v-d1210081]{color:var(--color-title)}.tableheader[data-v-d1210081]{background-color:var(--color-bg);color:var(--color-menu)}.fa-ellipsis-vertical[data-v-d1210081],.fa-circle-check[data-v-d1210081]{color:var(--color-menu)}.smarthome[data-v-d1210081]{color:var(--color-devices)}.button[data-v-3ef4f401]{color:var(--color-fg)}.node[data-v-3dfd535f]{font-size:1rem;color:#000;border:1px solid white}.mqviewer[data-v-bf618b70]{background-color:#fff;color:#000}.mqtitle[data-v-bf618b70]{color:#000}.nav-tabs[data-v-42ab5d0a]{border-bottom:.5px solid var(--color-menu);background-color:var(--color-bg)}.nav-tabs .nav-link[data-v-42ab5d0a]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-42ab5d0a]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-42ab5d0a]{color:var(--color-fg);background-color:var(--color-bg);opacity:1;border:.5px solid var(--color-menu);border-bottom:0px solid var(--color-menu);box-shadow:0 .5rem 1rem #00000026}.fa-circle-info[data-v-42ab5d0a]{color:var(--color-fg)}.fa-charging-station[data-v-42ab5d0a]{color:var(--color-charging)}.fa-car-battery[data-v-42ab5d0a]{color:var(--color-battery)}.fa-plug[data-v-42ab5d0a]{color:var(--color-devices)}.fa-money-bill-1-wave[data-v-42ab5d0a]{color:var(--color-pv)}.navbar[data-v-bfeed27e]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.dropdown-menu[data-v-bfeed27e]{background-color:var(--color-bg);color:var(--color-fg)}.dropdown-item[data-v-bfeed27e]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.btn[data-v-bfeed27e]{font-size:var(--font-medium);background-color:var(--color-bg);color:var(--color-fg)}.navbar-brand[data-v-bfeed27e]{font-weight:700;color:var(--color-fg)}.nav-link[data-v-bfeed27e]{color:var(--color-fg);border-color:red;font-size:var(--font-normal)}.navbar-toggler[data-v-bfeed27e]{color:var(--color-fg);border-color:var(--color-bg)}.fa{font-family:var(--fa-style-family, "Font Awesome 6 Free");font-weight:var(--fa-style, 900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display, inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin, 2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius, .1em);border:var(--fa-border-width, .08em) var(--fa-border-style, solid) var(--fa-border-color, #eee);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, ease-in-out);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.28, .84, .42, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.28, .84, .42, 1) )}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) )}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) );animation-timing-function:var( --fa-animation-timing, cubic-bezier(.4, 0, .6, 1) )}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, ease-in-out);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, linear);animation-timing-function:var(--fa-animation-timing, linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration, 2s);animation-duration:var(--fa-animation-duration, 2s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, linear);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin-reverse{--fa-animation-direction: reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var( --fa-animation-iteration-count, infinite );animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, steps(8));animation-timing-function:var(--fa-animation-timing, steps(8))}@media (prefers-reduced-motion: reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale, 1.25));transform:scale(var(--fa-beat-scale, 1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale, 1.25));transform:scale(var(--fa-beat-scale, 1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em));transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em));transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em));transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em));transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale, 1.125));transform:scale(var(--fa-beat-fade-scale, 1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale, 1.125));transform:scale(var(--fa-beat-fade-scale, 1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg));transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg));transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle, none));transform:rotate(var(--fa-rotate-angle, none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index, auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse, #fff)}.fa-0:before{content:"0"}.fa-1:before{content:"1"}.fa-2:before{content:"2"}.fa-3:before{content:"3"}.fa-4:before{content:"4"}.fa-5:before{content:"5"}.fa-6:before{content:"6"}.fa-7:before{content:"7"}.fa-8:before{content:"8"}.fa-9:before{content:"9"}.fa-a:before{content:"A"}.fa-address-book:before,.fa-contact-book:before{content:""}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:""}.fa-align-center:before{content:""}.fa-align-justify:before{content:""}.fa-align-left:before{content:""}.fa-align-right:before{content:""}.fa-anchor:before{content:""}.fa-angle-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-double-down:before,.fa-angles-down:before{content:""}.fa-angle-double-left:before,.fa-angles-left:before{content:""}.fa-angle-double-right:before,.fa-angles-right:before{content:""}.fa-angle-double-up:before,.fa-angles-up:before{content:""}.fa-ankh:before{content:""}.fa-apple-alt:before,.fa-apple-whole:before{content:""}.fa-archway:before{content:""}.fa-arrow-down:before{content:""}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:""}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:""}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:""}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:""}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:""}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:""}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:""}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:""}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:""}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:""}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:""}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:""}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:""}.fa-arrow-trend-down:before{content:""}.fa-arrow-trend-up:before{content:""}.fa-arrow-turn-down:before,.fa-level-down:before{content:""}.fa-arrow-turn-up:before,.fa-level-up:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:""}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:""}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:""}.fa-arrow-up-from-bracket:before{content:""}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:""}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:""}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:""}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:""}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:""}.fa-arrows-h:before,.fa-arrows-left-right:before{content:""}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:""}.fa-arrows-up-down:before,.fa-arrows-v:before{content:""}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:""}.fa-asterisk:before{content:"*"}.fa-at:before{content:"@"}.fa-atom:before{content:""}.fa-audio-description:before{content:""}.fa-austral-sign:before{content:""}.fa-award:before{content:""}.fa-b:before{content:"B"}.fa-baby:before{content:""}.fa-baby-carriage:before,.fa-carriage-baby:before{content:""}.fa-backward:before{content:""}.fa-backward-fast:before,.fa-fast-backward:before{content:""}.fa-backward-step:before,.fa-step-backward:before{content:""}.fa-bacon:before{content:""}.fa-bacteria:before{content:""}.fa-bacterium:before{content:""}.fa-bag-shopping:before,.fa-shopping-bag:before{content:""}.fa-bahai:before{content:""}.fa-baht-sign:before{content:""}.fa-ban:before,.fa-cancel:before{content:""}.fa-ban-smoking:before,.fa-smoking-ban:before{content:""}.fa-band-aid:before,.fa-bandage:before{content:""}.fa-barcode:before{content:""}.fa-bars:before,.fa-navicon:before{content:""}.fa-bars-progress:before,.fa-tasks-alt:before{content:""}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:""}.fa-baseball-ball:before,.fa-baseball:before{content:""}.fa-baseball-bat-ball:before{content:""}.fa-basket-shopping:before,.fa-shopping-basket:before{content:""}.fa-basketball-ball:before,.fa-basketball:before{content:""}.fa-bath:before,.fa-bathtub:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-half:before{content:""}.fa-battery-2:before,.fa-battery-quarter:before{content:""}.fa-battery-4:before,.fa-battery-three-quarters:before{content:""}.fa-bed:before{content:""}.fa-bed-pulse:before,.fa-procedures:before{content:""}.fa-beer-mug-empty:before,.fa-beer:before{content:""}.fa-bell:before{content:""}.fa-bell-concierge:before,.fa-concierge-bell:before{content:""}.fa-bell-slash:before{content:""}.fa-bezier-curve:before{content:""}.fa-bicycle:before{content:""}.fa-binoculars:before{content:""}.fa-biohazard:before{content:""}.fa-bitcoin-sign:before{content:""}.fa-blender:before{content:""}.fa-blender-phone:before{content:""}.fa-blog:before{content:""}.fa-bold:before{content:""}.fa-bolt:before,.fa-zap:before{content:""}.fa-bolt-lightning:before{content:""}.fa-bomb:before{content:""}.fa-bone:before{content:""}.fa-bong:before{content:""}.fa-book:before{content:""}.fa-atlas:before,.fa-book-atlas:before{content:""}.fa-bible:before,.fa-book-bible:before{content:""}.fa-book-journal-whills:before,.fa-journal-whills:before{content:""}.fa-book-medical:before{content:""}.fa-book-open:before{content:""}.fa-book-open-reader:before,.fa-book-reader:before{content:""}.fa-book-quran:before,.fa-quran:before{content:""}.fa-book-dead:before,.fa-book-skull:before{content:""}.fa-bookmark:before{content:""}.fa-border-all:before{content:""}.fa-border-none:before{content:""}.fa-border-style:before,.fa-border-top-left:before{content:""}.fa-bowling-ball:before{content:""}.fa-box:before{content:""}.fa-archive:before,.fa-box-archive:before{content:""}.fa-box-open:before{content:""}.fa-box-tissue:before{content:""}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:""}.fa-braille:before{content:""}.fa-brain:before{content:""}.fa-brazilian-real-sign:before{content:""}.fa-bread-slice:before{content:""}.fa-briefcase:before{content:""}.fa-briefcase-medical:before{content:""}.fa-broom:before{content:""}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:""}.fa-brush:before{content:""}.fa-bug:before{content:""}.fa-bug-slash:before{content:""}.fa-building:before{content:""}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:""}.fa-bullhorn:before{content:""}.fa-bullseye:before{content:""}.fa-burger:before,.fa-hamburger:before{content:""}.fa-bus:before{content:""}.fa-bus-alt:before,.fa-bus-simple:before{content:""}.fa-briefcase-clock:before,.fa-business-time:before{content:""}.fa-c:before{content:"C"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:""}.fa-calculator:before{content:""}.fa-calendar:before{content:""}.fa-calendar-check:before{content:""}.fa-calendar-day:before{content:""}.fa-calendar-alt:before,.fa-calendar-days:before{content:""}.fa-calendar-minus:before{content:""}.fa-calendar-plus:before{content:""}.fa-calendar-week:before{content:""}.fa-calendar-times:before,.fa-calendar-xmark:before{content:""}.fa-camera-alt:before,.fa-camera:before{content:""}.fa-camera-retro:before{content:""}.fa-camera-rotate:before{content:""}.fa-campground:before{content:""}.fa-candy-cane:before{content:""}.fa-cannabis:before{content:""}.fa-capsules:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-battery-car:before,.fa-car-battery:before{content:""}.fa-car-crash:before{content:""}.fa-car-alt:before,.fa-car-rear:before{content:""}.fa-car-side:before{content:""}.fa-caravan:before{content:""}.fa-caret-down:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-caret-up:before{content:""}.fa-carrot:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:""}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-shopping:before,.fa-shopping-cart:before{content:""}.fa-cash-register:before{content:""}.fa-cat:before{content:""}.fa-cedi-sign:before{content:""}.fa-cent-sign:before{content:""}.fa-certificate:before{content:""}.fa-chair:before{content:""}.fa-blackboard:before,.fa-chalkboard:before{content:""}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:""}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:""}.fa-charging-station:before{content:""}.fa-area-chart:before,.fa-chart-area:before{content:""}.fa-bar-chart:before,.fa-chart-bar:before{content:""}.fa-chart-column:before{content:""}.fa-chart-gantt:before{content:""}.fa-chart-line:before,.fa-line-chart:before{content:""}.fa-chart-pie:before,.fa-pie-chart:before{content:""}.fa-check:before{content:""}.fa-check-double:before{content:""}.fa-check-to-slot:before,.fa-vote-yea:before{content:""}.fa-cheese:before{content:""}.fa-chess:before{content:""}.fa-chess-bishop:before{content:""}.fa-chess-board:before{content:""}.fa-chess-king:before{content:""}.fa-chess-knight:before{content:""}.fa-chess-pawn:before{content:""}.fa-chess-queen:before{content:""}.fa-chess-rook:before{content:""}.fa-chevron-down:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-chevron-up:before{content:""}.fa-child:before{content:""}.fa-church:before{content:""}.fa-circle:before{content:""}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:""}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:""}.fa-check-circle:before,.fa-circle-check:before{content:""}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:""}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:""}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:""}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:""}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:""}.fa-circle-dot:before,.fa-dot-circle:before{content:""}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:""}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:""}.fa-circle-h:before,.fa-hospital-symbol:before{content:""}.fa-adjust:before,.fa-circle-half-stroke:before{content:""}.fa-circle-info:before,.fa-info-circle:before{content:""}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:""}.fa-circle-minus:before,.fa-minus-circle:before{content:""}.fa-circle-notch:before{content:""}.fa-circle-pause:before,.fa-pause-circle:before{content:""}.fa-circle-play:before,.fa-play-circle:before{content:""}.fa-circle-plus:before,.fa-plus-circle:before{content:""}.fa-circle-question:before,.fa-question-circle:before{content:""}.fa-circle-radiation:before,.fa-radiation-alt:before{content:""}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:""}.fa-circle-stop:before,.fa-stop-circle:before{content:""}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:""}.fa-circle-user:before,.fa-user-circle:before{content:""}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:""}.fa-city:before{content:""}.fa-clapperboard:before{content:""}.fa-clipboard:before{content:""}.fa-clipboard-check:before{content:""}.fa-clipboard-list:before{content:""}.fa-clock-four:before,.fa-clock:before{content:""}.fa-clock-rotate-left:before,.fa-history:before{content:""}.fa-clone:before{content:""}.fa-closed-captioning:before{content:""}.fa-cloud:before{content:""}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:""}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:""}.fa-cloud-meatball:before{content:""}.fa-cloud-moon:before{content:""}.fa-cloud-moon-rain:before{content:""}.fa-cloud-rain:before{content:""}.fa-cloud-showers-heavy:before{content:""}.fa-cloud-sun:before{content:""}.fa-cloud-sun-rain:before{content:""}.fa-clover:before{content:""}.fa-code:before{content:""}.fa-code-branch:before{content:""}.fa-code-commit:before{content:""}.fa-code-compare:before{content:""}.fa-code-fork:before{content:""}.fa-code-merge:before{content:""}.fa-code-pull-request:before{content:""}.fa-coins:before{content:""}.fa-colon-sign:before{content:""}.fa-comment:before{content:""}.fa-comment-dollar:before{content:""}.fa-comment-dots:before,.fa-commenting:before{content:""}.fa-comment-medical:before{content:""}.fa-comment-slash:before{content:""}.fa-comment-sms:before,.fa-sms:before{content:""}.fa-comments:before{content:""}.fa-comments-dollar:before{content:""}.fa-compact-disc:before{content:""}.fa-compass:before{content:""}.fa-compass-drafting:before,.fa-drafting-compass:before{content:""}.fa-compress:before{content:""}.fa-computer-mouse:before,.fa-mouse:before{content:""}.fa-cookie:before{content:""}.fa-cookie-bite:before{content:""}.fa-copy:before{content:""}.fa-copyright:before{content:""}.fa-couch:before{content:""}.fa-credit-card-alt:before,.fa-credit-card:before{content:""}.fa-crop:before{content:""}.fa-crop-alt:before,.fa-crop-simple:before{content:""}.fa-cross:before{content:""}.fa-crosshairs:before{content:""}.fa-crow:before{content:""}.fa-crown:before{content:""}.fa-crutch:before{content:""}.fa-cruzeiro-sign:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-d:before{content:"D"}.fa-database:before{content:""}.fa-backspace:before,.fa-delete-left:before{content:""}.fa-democrat:before{content:""}.fa-desktop-alt:before,.fa-desktop:before{content:""}.fa-dharmachakra:before{content:""}.fa-diagram-next:before{content:""}.fa-diagram-predecessor:before{content:""}.fa-diagram-project:before,.fa-project-diagram:before{content:""}.fa-diagram-successor:before{content:""}.fa-diamond:before{content:""}.fa-diamond-turn-right:before,.fa-directions:before{content:""}.fa-dice:before{content:""}.fa-dice-d20:before{content:""}.fa-dice-d6:before{content:""}.fa-dice-five:before{content:""}.fa-dice-four:before{content:""}.fa-dice-one:before{content:""}.fa-dice-six:before{content:""}.fa-dice-three:before{content:""}.fa-dice-two:before{content:""}.fa-disease:before{content:""}.fa-divide:before{content:""}.fa-dna:before{content:""}.fa-dog:before{content:""}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"$"}.fa-dolly-box:before,.fa-dolly:before{content:""}.fa-dong-sign:before{content:""}.fa-door-closed:before{content:""}.fa-door-open:before{content:""}.fa-dove:before{content:""}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:""}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:""}.fa-download:before{content:""}.fa-dragon:before{content:""}.fa-draw-polygon:before{content:""}.fa-droplet:before,.fa-tint:before{content:""}.fa-droplet-slash:before,.fa-tint-slash:before{content:""}.fa-drum:before{content:""}.fa-drum-steelpan:before{content:""}.fa-drumstick-bite:before{content:""}.fa-dumbbell:before{content:""}.fa-dumpster:before{content:""}.fa-dumpster-fire:before{content:""}.fa-dungeon:before{content:""}.fa-e:before{content:"E"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:""}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:""}.fa-earth-africa:before,.fa-globe-africa:before{content:""}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:""}.fa-earth-asia:before,.fa-globe-asia:before{content:""}.fa-earth-europe:before,.fa-globe-europe:before{content:""}.fa-earth-oceania:before,.fa-globe-oceania:before{content:""}.fa-egg:before{content:""}.fa-eject:before{content:""}.fa-elevator:before{content:""}.fa-ellipsis-h:before,.fa-ellipsis:before{content:""}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:""}.fa-envelope:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-text:before{content:""}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:""}.fa-equals:before{content:"="}.fa-eraser:before{content:""}.fa-ethernet:before{content:""}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:""}.fa-exclamation:before{content:"!"}.fa-expand:before{content:""}.fa-eye:before{content:""}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:""}.fa-eye-low-vision:before,.fa-low-vision:before{content:""}.fa-eye-slash:before{content:""}.fa-f:before{content:"F"}.fa-angry:before,.fa-face-angry:before{content:""}.fa-dizzy:before,.fa-face-dizzy:before{content:""}.fa-face-flushed:before,.fa-flushed:before{content:""}.fa-face-frown:before,.fa-frown:before{content:""}.fa-face-frown-open:before,.fa-frown-open:before{content:""}.fa-face-grimace:before,.fa-grimace:before{content:""}.fa-face-grin:before,.fa-grin:before{content:""}.fa-face-grin-beam:before,.fa-grin-beam:before{content:""}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:""}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:""}.fa-face-grin-squint:before,.fa-grin-squint:before{content:""}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:""}.fa-face-grin-stars:before,.fa-grin-stars:before{content:""}.fa-face-grin-tears:before,.fa-grin-tears:before{content:""}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:""}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:""}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:""}.fa-face-grin-wide:before,.fa-grin-alt:before{content:""}.fa-face-grin-wink:before,.fa-grin-wink:before{content:""}.fa-face-kiss:before,.fa-kiss:before{content:""}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:""}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:""}.fa-face-laugh:before,.fa-laugh:before{content:""}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:""}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:""}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:""}.fa-face-meh:before,.fa-meh:before{content:""}.fa-face-meh-blank:before,.fa-meh-blank:before{content:""}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:""}.fa-face-sad-cry:before,.fa-sad-cry:before{content:""}.fa-face-sad-tear:before,.fa-sad-tear:before{content:""}.fa-face-smile:before,.fa-smile:before{content:""}.fa-face-smile-beam:before,.fa-smile-beam:before{content:""}.fa-face-smile-wink:before,.fa-smile-wink:before{content:""}.fa-face-surprise:before,.fa-surprise:before{content:""}.fa-face-tired:before,.fa-tired:before{content:""}.fa-fan:before{content:""}.fa-faucet:before{content:""}.fa-fax:before{content:""}.fa-feather:before{content:""}.fa-feather-alt:before,.fa-feather-pointed:before{content:""}.fa-file:before{content:""}.fa-file-arrow-down:before,.fa-file-download:before{content:""}.fa-file-arrow-up:before,.fa-file-upload:before{content:""}.fa-file-audio:before{content:""}.fa-file-code:before{content:""}.fa-file-contract:before{content:""}.fa-file-csv:before{content:""}.fa-file-excel:before{content:""}.fa-arrow-right-from-file:before,.fa-file-export:before{content:""}.fa-file-image:before{content:""}.fa-arrow-right-to-file:before,.fa-file-import:before{content:""}.fa-file-invoice:before{content:""}.fa-file-invoice-dollar:before{content:""}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:""}.fa-file-medical:before{content:""}.fa-file-pdf:before{content:""}.fa-file-powerpoint:before{content:""}.fa-file-prescription:before{content:""}.fa-file-signature:before{content:""}.fa-file-video:before{content:""}.fa-file-medical-alt:before,.fa-file-waveform:before{content:""}.fa-file-word:before{content:""}.fa-file-archive:before,.fa-file-zipper:before{content:""}.fa-fill:before{content:""}.fa-fill-drip:before{content:""}.fa-film:before{content:""}.fa-filter:before{content:""}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:""}.fa-filter-circle-xmark:before{content:""}.fa-fingerprint:before{content:""}.fa-fire:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:""}.fa-burn:before,.fa-fire-flame-simple:before{content:""}.fa-fish:before{content:""}.fa-flag:before{content:""}.fa-flag-checkered:before{content:""}.fa-flag-usa:before{content:""}.fa-flask:before{content:""}.fa-floppy-disk:before,.fa-save:before{content:""}.fa-florin-sign:before{content:""}.fa-folder:before{content:""}.fa-folder-minus:before{content:""}.fa-folder-open:before{content:""}.fa-folder-plus:before{content:""}.fa-folder-tree:before{content:""}.fa-font:before{content:""}.fa-football-ball:before,.fa-football:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before,.fa-forward-fast:before{content:""}.fa-forward-step:before,.fa-step-forward:before{content:""}.fa-franc-sign:before{content:""}.fa-frog:before{content:""}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:""}.fa-g:before{content:"G"}.fa-gamepad:before{content:""}.fa-gas-pump:before{content:""}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:""}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:""}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:""}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-gem:before{content:""}.fa-genderless:before{content:""}.fa-ghost:before{content:""}.fa-gift:before{content:""}.fa-gifts:before{content:""}.fa-glasses:before{content:""}.fa-globe:before{content:""}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:""}.fa-gopuram:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-greater-than:before{content:">"}.fa-greater-than-equal:before{content:""}.fa-grip-horizontal:before,.fa-grip:before{content:""}.fa-grip-lines:before{content:""}.fa-grip-lines-vertical:before{content:""}.fa-grip-vertical:before{content:""}.fa-guarani-sign:before{content:""}.fa-guitar:before{content:""}.fa-gun:before{content:""}.fa-h:before{content:"H"}.fa-hammer:before{content:""}.fa-hamsa:before{content:""}.fa-hand-paper:before,.fa-hand:before{content:""}.fa-hand-back-fist:before,.fa-hand-rock:before{content:""}.fa-allergies:before,.fa-hand-dots:before{content:""}.fa-fist-raised:before,.fa-hand-fist:before{content:""}.fa-hand-holding:before{content:""}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:""}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:""}.fa-hand-holding-heart:before{content:""}.fa-hand-holding-medical:before{content:""}.fa-hand-lizard:before{content:""}.fa-hand-middle-finger:before{content:""}.fa-hand-peace:before{content:""}.fa-hand-point-down:before{content:""}.fa-hand-point-left:before{content:""}.fa-hand-point-right:before{content:""}.fa-hand-point-up:before{content:""}.fa-hand-pointer:before{content:""}.fa-hand-scissors:before{content:""}.fa-hand-sparkles:before{content:""}.fa-hand-spock:before{content:""}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:""}.fa-hands-bubbles:before,.fa-hands-wash:before{content:""}.fa-hands-clapping:before{content:""}.fa-hands-holding:before{content:""}.fa-hands-praying:before,.fa-praying-hands:before{content:""}.fa-handshake:before{content:""}.fa-hands-helping:before,.fa-handshake-angle:before{content:""}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:""}.fa-handshake-slash:before{content:""}.fa-hanukiah:before{content:""}.fa-hard-drive:before,.fa-hdd:before{content:""}.fa-hashtag:before{content:"#"}.fa-hat-cowboy:before{content:""}.fa-hat-cowboy-side:before{content:""}.fa-hat-wizard:before{content:""}.fa-head-side-cough:before{content:""}.fa-head-side-cough-slash:before{content:""}.fa-head-side-mask:before{content:""}.fa-head-side-virus:before{content:""}.fa-header:before,.fa-heading:before{content:""}.fa-headphones:before{content:""}.fa-headphones-alt:before,.fa-headphones-simple:before{content:""}.fa-headset:before{content:""}.fa-heart:before{content:""}.fa-heart-broken:before,.fa-heart-crack:before{content:""}.fa-heart-pulse:before,.fa-heartbeat:before{content:""}.fa-helicopter:before{content:""}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:""}.fa-highlighter:before{content:""}.fa-hippo:before{content:""}.fa-hockey-puck:before{content:""}.fa-holly-berry:before{content:""}.fa-horse:before{content:""}.fa-horse-head:before{content:""}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:""}.fa-hospital-user:before{content:""}.fa-hot-tub-person:before,.fa-hot-tub:before{content:""}.fa-hotdog:before{content:""}.fa-hotel:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:""}.fa-hourglass-empty:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:""}.fa-home-lg:before,.fa-house-chimney:before{content:""}.fa-house-chimney-crack:before,.fa-house-damage:before{content:""}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:""}.fa-house-chimney-user:before{content:""}.fa-house-chimney-window:before{content:""}.fa-house-crack:before{content:""}.fa-house-laptop:before,.fa-laptop-house:before{content:""}.fa-house-medical:before{content:""}.fa-home-user:before,.fa-house-user:before{content:""}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:""}.fa-i:before{content:"I"}.fa-i-cursor:before{content:""}.fa-ice-cream:before{content:""}.fa-icicles:before{content:""}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-id-card-alt:before,.fa-id-card-clip:before{content:""}.fa-igloo:before{content:""}.fa-image:before{content:""}.fa-image-portrait:before,.fa-portrait:before{content:""}.fa-images:before{content:""}.fa-inbox:before{content:""}.fa-indent:before{content:""}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:""}.fa-industry:before{content:""}.fa-infinity:before{content:""}.fa-info:before{content:""}.fa-italic:before{content:""}.fa-j:before{content:"J"}.fa-jedi:before{content:""}.fa-fighter-jet:before,.fa-jet-fighter:before{content:""}.fa-joint:before{content:""}.fa-k:before{content:"K"}.fa-kaaba:before{content:""}.fa-key:before{content:""}.fa-keyboard:before{content:""}.fa-khanda:before{content:""}.fa-kip-sign:before{content:""}.fa-first-aid:before,.fa-kit-medical:before{content:""}.fa-kiwi-bird:before{content:""}.fa-l:before{content:"L"}.fa-landmark:before{content:""}.fa-language:before{content:""}.fa-laptop:before{content:""}.fa-laptop-code:before{content:""}.fa-laptop-medical:before{content:""}.fa-lari-sign:before{content:""}.fa-layer-group:before{content:""}.fa-leaf:before{content:""}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:""}.fa-arrows-alt-h:before,.fa-left-right:before{content:""}.fa-lemon:before{content:""}.fa-less-than:before{content:"<"}.fa-less-than-equal:before{content:""}.fa-life-ring:before{content:""}.fa-lightbulb:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:""}.fa-lira-sign:before{content:""}.fa-list-squares:before,.fa-list:before{content:""}.fa-list-check:before,.fa-tasks:before{content:""}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:""}.fa-list-dots:before,.fa-list-ul:before{content:""}.fa-litecoin-sign:before{content:""}.fa-location-arrow:before{content:""}.fa-location-crosshairs:before,.fa-location:before{content:""}.fa-location-dot:before,.fa-map-marker-alt:before{content:""}.fa-location-pin:before,.fa-map-marker:before{content:""}.fa-lock:before{content:""}.fa-lock-open:before{content:""}.fa-lungs:before{content:""}.fa-lungs-virus:before{content:""}.fa-m:before{content:"M"}.fa-magnet:before{content:""}.fa-magnifying-glass:before,.fa-search:before{content:""}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:""}.fa-magnifying-glass-location:before,.fa-search-location:before{content:""}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:""}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:""}.fa-manat-sign:before{content:""}.fa-map:before{content:""}.fa-map-location:before,.fa-map-marked:before{content:""}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:""}.fa-map-pin:before{content:""}.fa-marker:before{content:""}.fa-mars:before{content:""}.fa-mars-and-venus:before{content:""}.fa-mars-double:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:""}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:""}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:""}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:""}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:""}.fa-mask:before{content:""}.fa-mask-face:before{content:""}.fa-masks-theater:before,.fa-theater-masks:before{content:""}.fa-expand-arrows-alt:before,.fa-maximize:before{content:""}.fa-medal:before{content:""}.fa-memory:before{content:""}.fa-menorah:before{content:""}.fa-mercury:before{content:""}.fa-comment-alt:before,.fa-message:before{content:""}.fa-meteor:before{content:""}.fa-microchip:before{content:""}.fa-microphone:before{content:""}.fa-microphone-alt:before,.fa-microphone-lines:before{content:""}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:""}.fa-microphone-slash:before{content:""}.fa-microscope:before{content:""}.fa-mill-sign:before{content:""}.fa-compress-arrows-alt:before,.fa-minimize:before{content:""}.fa-minus:before,.fa-subtract:before{content:""}.fa-mitten:before{content:""}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-mobile-button:before{content:""}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:""}.fa-money-bill:before{content:""}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:""}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:""}.fa-money-bill-wave:before{content:""}.fa-money-check:before{content:""}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:""}.fa-monument:before{content:""}.fa-moon:before{content:""}.fa-mortar-pestle:before{content:""}.fa-mosque:before{content:""}.fa-motorcycle:before{content:""}.fa-mountain:before{content:""}.fa-mug-hot:before{content:""}.fa-coffee:before,.fa-mug-saucer:before{content:""}.fa-music:before{content:""}.fa-n:before{content:"N"}.fa-naira-sign:before{content:""}.fa-network-wired:before{content:""}.fa-neuter:before{content:""}.fa-newspaper:before{content:""}.fa-not-equal:before{content:""}.fa-note-sticky:before,.fa-sticky-note:before{content:""}.fa-notes-medical:before{content:""}.fa-o:before{content:"O"}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-oil-can:before{content:""}.fa-om:before{content:""}.fa-otter:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-p:before{content:"P"}.fa-pager:before{content:""}.fa-paint-roller:before{content:""}.fa-paint-brush:before,.fa-paintbrush:before{content:""}.fa-palette:before{content:""}.fa-pallet:before{content:""}.fa-panorama:before{content:""}.fa-paper-plane:before{content:""}.fa-paperclip:before{content:""}.fa-parachute-box:before{content:""}.fa-paragraph:before{content:""}.fa-passport:before{content:""}.fa-file-clipboard:before,.fa-paste:before{content:""}.fa-pause:before{content:""}.fa-paw:before{content:""}.fa-peace:before{content:""}.fa-pen:before{content:""}.fa-pen-alt:before,.fa-pen-clip:before{content:""}.fa-pen-fancy:before{content:""}.fa-pen-nib:before{content:""}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:""}.fa-edit:before,.fa-pen-to-square:before{content:""}.fa-pencil-alt:before,.fa-pencil:before{content:""}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:""}.fa-people-carry-box:before,.fa-people-carry:before{content:""}.fa-pepper-hot:before{content:""}.fa-percent:before,.fa-percentage:before{content:"%"}.fa-male:before,.fa-person:before{content:""}.fa-biking:before,.fa-person-biking:before{content:""}.fa-person-booth:before{content:""}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:""}.fa-female:before,.fa-person-dress:before{content:""}.fa-hiking:before,.fa-person-hiking:before{content:""}.fa-person-praying:before,.fa-pray:before{content:""}.fa-person-running:before,.fa-running:before{content:""}.fa-person-skating:before,.fa-skating:before{content:""}.fa-person-skiing:before,.fa-skiing:before{content:""}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:""}.fa-person-snowboarding:before,.fa-snowboarding:before{content:""}.fa-person-swimming:before,.fa-swimmer:before{content:""}.fa-person-walking:before,.fa-walking:before{content:""}.fa-blind:before,.fa-person-walking-with-cane:before{content:""}.fa-peseta-sign:before{content:""}.fa-peso-sign:before{content:""}.fa-phone:before{content:""}.fa-phone-alt:before,.fa-phone-flip:before{content:""}.fa-phone-slash:before{content:""}.fa-phone-volume:before,.fa-volume-control-phone:before{content:""}.fa-photo-film:before,.fa-photo-video:before{content:""}.fa-piggy-bank:before{content:""}.fa-pills:before{content:""}.fa-pizza-slice:before{content:""}.fa-place-of-worship:before{content:""}.fa-plane:before{content:""}.fa-plane-arrival:before{content:""}.fa-plane-departure:before{content:""}.fa-plane-slash:before{content:""}.fa-play:before{content:""}.fa-plug:before{content:""}.fa-add:before,.fa-plus:before{content:"+"}.fa-plus-minus:before{content:""}.fa-podcast:before{content:""}.fa-poo:before{content:""}.fa-poo-bolt:before,.fa-poo-storm:before{content:""}.fa-poop:before{content:""}.fa-power-off:before{content:""}.fa-prescription:before{content:""}.fa-prescription-bottle:before{content:""}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:""}.fa-print:before{content:""}.fa-pump-medical:before{content:""}.fa-pump-soap:before{content:""}.fa-puzzle-piece:before{content:""}.fa-q:before{content:"Q"}.fa-qrcode:before{content:""}.fa-question:before{content:"?"}.fa-quote-left-alt:before,.fa-quote-left:before{content:""}.fa-quote-right-alt:before,.fa-quote-right:before{content:""}.fa-r:before{content:"R"}.fa-radiation:before{content:""}.fa-rainbow:before{content:""}.fa-receipt:before{content:""}.fa-record-vinyl:before{content:""}.fa-ad:before,.fa-rectangle-ad:before{content:""}.fa-list-alt:before,.fa-rectangle-list:before{content:""}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-recycle:before{content:""}.fa-registered:before{content:""}.fa-repeat:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-republican:before{content:""}.fa-restroom:before{content:""}.fa-retweet:before{content:""}.fa-ribbon:before{content:""}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:""}.fa-exchange-alt:before,.fa-right-left:before{content:""}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:""}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:""}.fa-ring:before{content:""}.fa-road:before{content:""}.fa-robot:before{content:""}.fa-rocket:before{content:""}.fa-rotate:before,.fa-sync-alt:before{content:""}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:""}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:""}.fa-route:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:""}.fa-ruler:before{content:""}.fa-ruler-combined:before{content:""}.fa-ruler-horizontal:before{content:""}.fa-ruler-vertical:before{content:""}.fa-rupee-sign:before,.fa-rupee:before{content:""}.fa-rupiah-sign:before{content:""}.fa-s:before{content:"S"}.fa-sailboat:before{content:""}.fa-satellite:before{content:""}.fa-satellite-dish:before{content:""}.fa-balance-scale:before,.fa-scale-balanced:before{content:""}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:""}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:""}.fa-school:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-screwdriver:before{content:""}.fa-screwdriver-wrench:before,.fa-tools:before{content:""}.fa-scroll:before{content:""}.fa-scroll-torah:before,.fa-torah:before{content:""}.fa-sd-card:before{content:""}.fa-section:before{content:""}.fa-seedling:before,.fa-sprout:before{content:""}.fa-server:before{content:""}.fa-shapes:before,.fa-triangle-circle-square:before{content:""}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:""}.fa-share-from-square:before,.fa-share-square:before{content:""}.fa-share-alt:before,.fa-share-nodes:before{content:""}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:""}.fa-shield:before{content:""}.fa-shield-alt:before,.fa-shield-blank:before{content:""}.fa-shield-virus:before{content:""}.fa-ship:before{content:""}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:""}.fa-shoe-prints:before{content:""}.fa-shop:before,.fa-store-alt:before{content:""}.fa-shop-slash:before,.fa-store-alt-slash:before{content:""}.fa-shower:before{content:""}.fa-shrimp:before{content:""}.fa-random:before,.fa-shuffle:before{content:""}.fa-shuttle-space:before,.fa-space-shuttle:before{content:""}.fa-sign-hanging:before,.fa-sign:before{content:""}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:""}.fa-signature:before{content:""}.fa-map-signs:before,.fa-signs-post:before{content:""}.fa-sim-card:before{content:""}.fa-sink:before{content:""}.fa-sitemap:before{content:""}.fa-skull:before{content:""}.fa-skull-crossbones:before{content:""}.fa-slash:before{content:""}.fa-sleigh:before{content:""}.fa-sliders-h:before,.fa-sliders:before{content:""}.fa-smog:before{content:""}.fa-smoking:before{content:""}.fa-snowflake:before{content:""}.fa-snowman:before{content:""}.fa-snowplow:before{content:""}.fa-soap:before{content:""}.fa-socks:before{content:""}.fa-solar-panel:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-spa:before{content:""}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:""}.fa-spell-check:before{content:""}.fa-spider:before{content:""}.fa-spinner:before{content:""}.fa-splotch:before{content:""}.fa-spoon:before,.fa-utensil-spoon:before{content:""}.fa-spray-can:before{content:""}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:""}.fa-square:before{content:""}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:""}.fa-caret-square-down:before,.fa-square-caret-down:before{content:""}.fa-caret-square-left:before,.fa-square-caret-left:before{content:""}.fa-caret-square-right:before,.fa-square-caret-right:before{content:""}.fa-caret-square-up:before,.fa-square-caret-up:before{content:""}.fa-check-square:before,.fa-square-check:before{content:""}.fa-envelope-square:before,.fa-square-envelope:before{content:""}.fa-square-full:before{content:""}.fa-h-square:before,.fa-square-h:before{content:""}.fa-minus-square:before,.fa-square-minus:before{content:""}.fa-parking:before,.fa-square-parking:before{content:""}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:""}.fa-phone-square:before,.fa-square-phone:before{content:""}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:""}.fa-plus-square:before,.fa-square-plus:before{content:""}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:""}.fa-poll:before,.fa-square-poll-vertical:before{content:""}.fa-square-root-alt:before,.fa-square-root-variable:before{content:""}.fa-rss-square:before,.fa-square-rss:before{content:""}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:""}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:""}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:""}.fa-stairs:before{content:""}.fa-stamp:before{content:""}.fa-star:before{content:""}.fa-star-and-crescent:before{content:""}.fa-star-half:before{content:""}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:""}.fa-star-of-david:before{content:""}.fa-star-of-life:before{content:""}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:""}.fa-stethoscope:before{content:""}.fa-stop:before{content:""}.fa-stopwatch:before{content:""}.fa-stopwatch-20:before{content:""}.fa-store:before{content:""}.fa-store-slash:before{content:""}.fa-street-view:before{content:""}.fa-strikethrough:before{content:""}.fa-stroopwafel:before{content:""}.fa-subscript:before{content:""}.fa-suitcase:before{content:""}.fa-medkit:before,.fa-suitcase-medical:before{content:""}.fa-suitcase-rolling:before{content:""}.fa-sun:before{content:""}.fa-superscript:before{content:""}.fa-swatchbook:before{content:""}.fa-synagogue:before{content:""}.fa-syringe:before{content:""}.fa-t:before{content:"T"}.fa-table:before{content:""}.fa-table-cells:before,.fa-th:before{content:""}.fa-table-cells-large:before,.fa-th-large:before{content:""}.fa-columns:before,.fa-table-columns:before{content:""}.fa-table-list:before,.fa-th-list:before{content:""}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:""}.fa-tablet-android:before,.fa-tablet:before{content:""}.fa-tablet-button:before{content:""}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:""}.fa-tablets:before{content:""}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-tape:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-teeth:before{content:""}.fa-teeth-open:before{content:""}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:""}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-temperature-high:before{content:""}.fa-temperature-low:before{content:""}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-tenge-sign:before,.fa-tenge:before{content:""}.fa-terminal:before{content:""}.fa-text-height:before{content:""}.fa-remove-format:before,.fa-text-slash:before{content:""}.fa-text-width:before{content:""}.fa-thermometer:before{content:""}.fa-thumbs-down:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumb-tack:before,.fa-thumbtack:before{content:""}.fa-ticket:before{content:""}.fa-ticket-alt:before,.fa-ticket-simple:before{content:""}.fa-timeline:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-toilet:before{content:""}.fa-toilet-paper:before{content:""}.fa-toilet-paper-slash:before{content:""}.fa-toolbox:before{content:""}.fa-tooth:before{content:""}.fa-torii-gate:before{content:""}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:""}.fa-tractor:before{content:""}.fa-trademark:before{content:""}.fa-traffic-light:before{content:""}.fa-trailer:before{content:""}.fa-train:before{content:""}.fa-subway:before,.fa-train-subway:before{content:""}.fa-train-tram:before,.fa-tram:before{content:""}.fa-transgender-alt:before,.fa-transgender:before{content:""}.fa-trash:before{content:""}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:""}.fa-trash-alt:before,.fa-trash-can:before{content:""}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:""}.fa-tree:before{content:""}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:""}.fa-trophy:before{content:""}.fa-truck:before{content:""}.fa-shipping-fast:before,.fa-truck-fast:before{content:""}.fa-ambulance:before,.fa-truck-medical:before{content:""}.fa-truck-monster:before{content:""}.fa-truck-moving:before{content:""}.fa-truck-pickup:before{content:""}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:""}.fa-teletype:before,.fa-tty:before{content:""}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:""}.fa-level-down-alt:before,.fa-turn-down:before{content:""}.fa-level-up-alt:before,.fa-turn-up:before{content:""}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:""}.fa-u:before{content:"U"}.fa-umbrella:before{content:""}.fa-umbrella-beach:before{content:""}.fa-underline:before{content:""}.fa-universal-access:before{content:""}.fa-unlock:before{content:""}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:""}.fa-arrows-alt-v:before,.fa-up-down:before{content:""}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:""}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:""}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:""}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:""}.fa-upload:before{content:""}.fa-user:before{content:""}.fa-user-astronaut:before{content:""}.fa-user-check:before{content:""}.fa-user-clock:before{content:""}.fa-user-doctor:before,.fa-user-md:before{content:""}.fa-user-cog:before,.fa-user-gear:before{content:""}.fa-user-graduate:before{content:""}.fa-user-friends:before,.fa-user-group:before{content:""}.fa-user-injured:before{content:""}.fa-user-alt:before,.fa-user-large:before{content:""}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:""}.fa-user-lock:before{content:""}.fa-user-minus:before{content:""}.fa-user-ninja:before{content:""}.fa-user-nurse:before{content:""}.fa-user-edit:before,.fa-user-pen:before{content:""}.fa-user-plus:before{content:""}.fa-user-secret:before{content:""}.fa-user-shield:before{content:""}.fa-user-slash:before{content:""}.fa-user-tag:before{content:""}.fa-user-tie:before{content:""}.fa-user-times:before,.fa-user-xmark:before{content:""}.fa-users:before{content:""}.fa-users-cog:before,.fa-users-gear:before{content:""}.fa-users-slash:before{content:""}.fa-cutlery:before,.fa-utensils:before{content:""}.fa-v:before{content:"V"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:""}.fa-vault:before{content:""}.fa-vector-square:before{content:""}.fa-venus:before{content:""}.fa-venus-double:before{content:""}.fa-venus-mars:before{content:""}.fa-vest:before{content:""}.fa-vest-patches:before{content:""}.fa-vial:before{content:""}.fa-vials:before{content:""}.fa-video-camera:before,.fa-video:before{content:""}.fa-video-slash:before{content:""}.fa-vihara:before{content:""}.fa-virus:before{content:""}.fa-virus-covid:before{content:""}.fa-virus-covid-slash:before{content:""}.fa-virus-slash:before{content:""}.fa-viruses:before{content:""}.fa-voicemail:before{content:""}.fa-volleyball-ball:before,.fa-volleyball:before{content:""}.fa-volume-high:before,.fa-volume-up:before{content:""}.fa-volume-down:before,.fa-volume-low:before{content:""}.fa-volume-off:before{content:""}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:""}.fa-vr-cardboard:before{content:""}.fa-w:before{content:"W"}.fa-wallet:before{content:""}.fa-magic:before,.fa-wand-magic:before{content:""}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:""}.fa-wand-sparkles:before{content:""}.fa-warehouse:before{content:""}.fa-water:before{content:""}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:""}.fa-wave-square:before{content:""}.fa-weight-hanging:before{content:""}.fa-weight-scale:before,.fa-weight:before{content:""}.fa-wheelchair:before{content:""}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:""}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:""}.fa-wind:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-wine-bottle:before{content:""}.fa-wine-glass:before{content:""}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:""}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:""}.fa-wrench:before{content:""}.fa-x:before{content:"X"}.fa-x-ray:before{content:""}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:""}.fa-y:before{content:"Y"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:""}.fa-yin-yang:before{content:""}.fa-z:before{content:"Z"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}/*!
+ * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
+ */:host,:root{--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(/openWB/web/themes/colors/assets/fa-solid-900-1b099f88.woff2) format("woff2"),url(/openWB/web/themes/colors/assets/fa-solid-900-1782156b.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}/*!
+ * Bootstrap  v5.3.2 (https://getbootstrap.com/)
+ * Copyright 2011-2023 The Bootstrap Authors
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, .75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, .5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, .175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm:0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width:.25rem;--bs-focus-ring-opacity:.25;--bs-focus-ring-color:rgba(13, 110, 253, .25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, .75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, .5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, .15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label:after{position:absolute;top:1rem;right:.375rem;bottom:1rem;left:.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label:after,.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-select~label:after{position:absolute;top:1rem;right:.375rem;bottom:1rem;left:.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label:after,.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, .15),0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity:.65;--bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:.25rem;--bs-btn-padding-x:.5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:.5rem;--bs-dropdown-spacer:.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, .15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:.5rem;--bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:.25rem;--bs-navbar-toggler-transition:box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, .55);--bs-navbar-hover-color:rgba(255, 255, 255, .75);--bs-navbar-disabled-color:rgba(255, 255, 255, .25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform .2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:.75rem;--bs-pagination-padding-y:.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:.5rem;--bs-pagination-padding-y:.25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:.65em;--bs-badge-padding-y:.35em;--bs-badge-font-size:.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:.75rem;--bs-toast-padding-y:.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:.5rem;--bs-tooltip-padding-y:.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:.9;--bs-tooltip-arrow-width:.8rem;--bs-tooltip-arrow-height:.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translate(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-border-width:.25em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform .3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:.1}.border-opacity-25{--bs-border-opacity:.25}.border-opacity-50{--bs-border-opacity:.5}.border-opacity-75{--bs-border-opacity:.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:#00000080!important}.text-white-50{--bs-text-opacity:1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:.25}.text-opacity-50{--bs-text-opacity:.5}.text-opacity-75{--bs-text-opacity:.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity:.1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity:.25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity:.5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity:.75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:.1}.bg-opacity-25{--bs-bg-opacity:.25}.bg-opacity-50{--bs-bg-opacity:.5}.bg-opacity-75{--bs-bg-opacity:.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}html{min-height:100%;min-width:100%}body{color:var(--color-fg);background:var(--color-bg)}body>.container{padding:55px 15px 0}html{font-size:12px}@media screen and (min-width: 400px){html{font-size:15px}}@media screen and (min-width: 576px){html{font-size:20px}}@media screen and (min-width: 768px){html{font-size:22px}}@media screen and (min-width: 992px){html{font-size:11px}}@media screen and (min-width: 1200px){html{font-size:14px}}@media screen and (min-width: 1400px){html{font-size:16px}}@media screen and (min-width: 2000px){html{font-size:16px}}.verySmallTextSize{font-size:var(--font-verysmall)}.smallTextSize{font-size:var(--font-medium)}.regularTextSize{font-size:var(--font-normal)}.largeTextSize,.buttonTextSize{font-size:var(--font-large)}h3{font-size:var(--font-extralarge);color:var(--color-title);font-weight:700}h4{color:var(--color-axis)}body>.container-fluid{padding:55px 15px 0}.tablecell{font-size:var(--font-normal);line-height:1rem;vertical-align:middle;padding:0;background-color:var(--color-bg)}.maxPrice{text-align:center}:root{--fontCol: rgba(160, 160, 160, .82);--gridCol: rgba(160, 160, 160, .82);--xgridCol: rgba(160, 160, 160, .82);--tickCol: rgba(160, 160, 160, .82);--evuCol: rgba(178, 34, 34, 1);--color-switchRed: #d12020;--color-switchGreen: #4db662;--color-switchBlue: steelblue;--color-cp1: #6baed6;--color-cp2: #4292c6;--color-cp3: #2171b5;--color-cp4: #9ecae1;--color-cp5: #c6dbef;--color-cp6: #deebf7;--color-cp7: #08519c;--color-cp8: #6baed6;--color-evu: firebrick;--color-pv: #33a02c;--color-house: #7f7f7f;--color-charging: #1f78b4;--color-export: #b2df8a;--color-battery: goldenrod;--color-input: lightgrey;--font-normal: 1.4rem;--font-large: 1.6rem;--font-medium: 1.2rem;--font-small: 1rem;--font-verysmall: .7rem;--font-extralarge: 1.6rem;--font-settings: 16px}.theme-light{--color-bg: white;--color-axis: gray;--color-grid: #bbbbbb;--color-menu: gray;--color-frame: white;--color-subframe: lightgrey;--color-fg: black;--color-scale: lightgrey;--color-title: black;--padding-widget: 5px;--fontCol: rgba(255, 255, 255, .82);--gridCol: rgba(255, 255, 255, .82);--xgridCol: rgba(255, 255, 255, .1);--tickCol: rgba(255, 255, 255, .82);--evuCol: rgba(255, 0, 0, .7)}.theme-blue{--color-bg: midnightblue;--color-axis: steelblue;--color-grid: steelblue;--color-menu: lightskyblue;--color-frame: lightskyblue;--color-subframe: midnightblue;--color-fg: white;--color-scale: steelblue;--color-title: lightgrey;--padding-widget: 0px}.theme-dark{--color-bg: #333333;--color-export: #b2df8a;--color-axis: #666666;--color-grid: black;--color-menu: #999999;--color-frame: #666666;--color-subframe: #333333;--color-fg: white;--color-scale: #999999;--color-title: lightgrey;--padding-widget: 0px}.shcolors-normal{--color-devices: #f16913;--color-sh1: #fd8d3c;--color-sh2: #f16913;--color-sh3: #d94801;--color-sh4: #fdae6b;--color-sh5: #fdd0a2;--color-sh6: #fee6ce;--color-sh7: #a63603;--color-sh8: #fe4b83;--color-sh9: #e4419d}.shcolors-advanced{--color-devices: #ff4d4d;--color-sh1: #ffffff;--color-sh2: #ff4d4d;--color-sh3: #668cff;--color-sh4: #ff6600;--color-sh5: #00ff00;--color-sh6: #ffff00;--color-sh7: #ff00ff;--color-sh8: #993300;--color-sh9: #a366ff}.shcolors-standard{--color-devices: rgba(200, 50, 200, .7);--color-sh1: rgba(200, 150, 200, .7);--color-sh2: rgba(200, 100, 200, .7);--color-sh3: rgba(200, 50, 200, .7);--color-sh4: rgba(200, 0, 200, .7);--color-sh5: rgba(150, 200, 200, .7);--color-sh6: rgba(100, 200, 200, .7);--color-sh7: rgba(50, 200, 200, .7);--color-sh8: rgba(0, 200, 200, .7);--color-sh9: rgba(200, 200, 200, .7)}.openwb-devices{color:#cff;background-color:#009696}.colormenu{background-color:var(--color-frame)}.wb-widget{background-color:var(--color-bg);border:.1px dotted var(--color-frame);align-self:stretch;width:100%;border-radius:30px}.wb-subwidget{border:0px solid var(--color-subframe);padding:var(--padding-widget)}th{color:var(--color-axis)}.table-borderless td{border:0}.popup-header{color:#191970}.axis text{color:var(--color-axis);stroke-width:0}.phasesInUse{font-family:monospace;color:#fff;background:var(--color-menu);font-size:var(--font-verysmall);padding:.2rem .4rem .1rem;margin:0rem .2rem}.swiper-slide-active,.swiper-slide{display:flex}swiper-slide{display:flex}option{color:#00f}
diff --git a/packages/modules/web_themes/colors/web/assets/index-96f26804.js b/packages/modules/web_themes/colors/web/assets/index-96f26804.js
new file mode 100644
index 0000000000..1b641219f5
--- /dev/null
+++ b/packages/modules/web_themes/colors/web/assets/index-96f26804.js
@@ -0,0 +1,2 @@
+var Ma=Object.defineProperty;var Ca=(t,e,a)=>e in t?Ma(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var p=(t,e,a)=>(Ca(t,typeof e!="symbol"?e+"":e,a),a);import{m as Jt,r as Q,a as le,c as f,s as fe,d as I,p as Qt,b as Yt,w as Ia,o as i,e as h,t as $,f as n,n as z,g as B,h as w,i as te,j as b,k as j,u as d,l as m,F as E,q as F,v as Be,x as mt,y as Zt,z as ft,A as Mt,B as rt,C as De,D as Wt,E as Ba,G as lt,H as Va,I as R,J as Ta,K as Ue,L as K,M as ee,N as La,O as Te,P as Xt,Q as vt,R as Oa,S as Aa,T as Je,U as Da,V as Ea,W as Wa,X as Ga}from"./vendor-73164592.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function a(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=a(o);fetch(o.href,r)}})();const ja=0,Kt={host:location.hostname,port:location.protocol=="https:"?443:80,endpoint:"/ws",protocol:location.protocol=="https:"?"wss":"ws",connectTimeout:4e3,reconnectPeriod:4e3,clientId:Math.random().toString(36).replace(/[^a-z]+/g,"").substring(0,6)},it={topic:"",qos:ja};let xe;const{host:Ua,port:za,endpoint:Na,...Ct}=Kt,ea=`${Ct.protocol}://${Ua}:${za}${Na}`;console.log(ea);console.log(Ct);try{xe=Jt.connect(ea,Ct),xe.on("connect",()=>{console.info("MQTT connection successful")}),xe.on("error",t=>{console.error("MQTT connection failed: ",t)})}catch(t){console.error("MQTT connect error: ",t)}function qa(t){xe?xe.on("message",t):console.error("MqttRegister: MQTT client not available")}function Ge(t){it.topic=t;const{topic:e,qos:a}=it;xe.subscribe(e,{qos:a},s=>{if(s){console.error("MQTT Subscription error: "+s);return}})}function Qe(t){it.topic=t;const{topic:e}=it;xe.unsubscribe(e,a=>{if(a){console.error("MQTT Unsubscribe from "+t+" failed: "+a);return}})}function ct(t,e){xe.publish(t,e,{qos:0},s=>{s&&console.warn("MQTT publish error: ",s),console.info("Message sent: ["+t+"]("+e+")")})}function Fa(){return Kt.clientId}class Ra{constructor(e){p(this,"id");p(this,"name","Ladepunkt");p(this,"icon","Ladepunkt");p(this,"type","");p(this,"ev",0);p(this,"template",0);p(this,"connectedPhases",0);p(this,"phase_1",0);p(this,"autoPhaseSwitchHw",!1);p(this,"controlPilotInterruptionHw",!1);p(this,"isEnabled",!0);p(this,"isPluggedIn",!1);p(this,"isCharging",!1);p(this,"_isLocked",!1);p(this,"_connectedVehicle",0);p(this,"chargeTemplate",0);p(this,"evTemplate",0);p(this,"_chargeMode","pv_charging");p(this,"_hasPriority",!1);p(this,"currentPlan","");p(this,"averageConsumption",0);p(this,"vehicleName","");p(this,"rangeCharged",0);p(this,"rangeUnit","");p(this,"counter",0);p(this,"dailyYield",0);p(this,"energyPv",0);p(this,"energyBat",0);p(this,"pvPercentage",0);p(this,"faultState",0);p(this,"faultStr","");p(this,"phasesInUse",0);p(this,"power",0);p(this,"chargedSincePlugged",0);p(this,"stateStr","");p(this,"current",0);p(this,"phasesToUse",0);p(this,"soc",0);p(this,"isSocConfigured",!0);p(this,"isSocManual",!1);p(this,"color","white");p(this,"_scheduledCharging",!1);p(this,"_instantChargeLimitMode","");p(this,"_instantTargetCurrent",0);p(this,"_instantTargetSoc",0);p(this,"_instantMaxEnergy",0);p(this,"_pvFeedInLimit",!1);p(this,"_pvMinCurrent",0);p(this,"_pvMaxSoc",0);p(this,"_pvMinSoc",0);p(this,"_pvMinSocCurrent",0);this.id=e}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked=e,Z("cpLock",e,this.id)}updateIsLocked(e){this._isLocked=e}get connectedVehicle(){return this._connectedVehicle}set connectedVehicle(e){this._connectedVehicle=e,Z("cpVehicle",e,this.id)}updateConnectedVehicle(e){this._connectedVehicle=e}get chargeMode(){return this._chargeMode}set chargeMode(e){this._chargeMode=e,Z("chargeMode",e,this.id)}updateChargeMode(e){this._chargeMode=e}get hasPriority(){return this._hasPriority}set hasPriority(e){this._hasPriority=e,Z("cpPriority",e,this.id)}updateCpPriority(e){this._hasPriority=e}get scheduledCharging(){return this._scheduledCharging}set scheduledCharging(e){this._scheduledCharging=e,Z("cpScheduledCharging",e,this.id)}updateScheduledCharging(e){this._scheduledCharging=e}get instantTargetCurrent(){return this._instantTargetCurrent}set instantTargetCurrent(e){this._instantTargetCurrent=e,Z("cpInstantTargetCurrent",e,this.id)}updateInstantTargetCurrent(e){this._instantTargetCurrent=e}get instantChargeLimitMode(){return this._instantChargeLimitMode}set instantChargeLimitMode(e){this._instantChargeLimitMode=e,Z("cpInstantChargeLimitMode",e,this.id)}updateInstantChargeLimitMode(e){this._instantChargeLimitMode=e}get instantTargetSoc(){return this._instantTargetSoc}set instantTargetSoc(e){this._instantTargetSoc=e,Z("cpInstantTargetSoc",e,this.id)}updateInstantTargetSoc(e){this._instantTargetSoc=e}get instantMaxEnergy(){return this._instantMaxEnergy}set instantMaxEnergy(e){this._instantMaxEnergy=e,Z("cpInstantMaxEnergy",e,this.id)}updateInstantMaxEnergy(e){this._instantMaxEnergy=e}get pvFeedInLimit(){return this._pvFeedInLimit}set pvFeedInLimit(e){this._pvFeedInLimit=e,Z("cpPvFeedInLimit",e,this.id)}updatePvFeedInLimit(e){this._pvFeedInLimit=e}get pvMinCurrent(){return this._pvMinCurrent}set pvMinCurrent(e){this._pvMinCurrent=e,Z("cpPvMinCurrent",e,this.id)}updatePvMinCurrent(e){this._pvMinCurrent=e}get pvMaxSoc(){return this._pvMaxSoc}set pvMaxSoc(e){this._pvMaxSoc=e,Z("cpPvMaxSoc",e,this.id)}updatePvMaxSoc(e){this._pvMaxSoc=e}get pvMinSoc(){return this._pvMinSoc}set pvMinSoc(e){this._pvMinSoc=e,Z("cpPvMinSoc",e,this.id)}updatePvMinSoc(e){this._pvMinSoc=e}get pvMinSocCurrent(){return this._pvMinSocCurrent}set pvMinSocCurrent(e){this._pvMinSocCurrent=e,Z("cpPvMinSocCurrent",e,this.id)}updatePvMinSocCurrent(e){this._pvMinSocCurrent=e}toPowerItem(){return{name:this.name,power:this.power,energy:this.dailyYield,energyPv:this.energyPv,energyBat:this.energyBat,pvPercentage:this.pvPercentage,color:this.color,icon:this.icon}}}class Ha{constructor(e){p(this,"id");p(this,"name","");p(this,"_chargeTemplateId",0);p(this,"_evTemplateId",0);p(this,"tags",[]);p(this,"soc",0);p(this,"range",0);this.id=e}get chargeTemplateId(){return this._chargeTemplateId}set chargeTemplateId(e){this._chargeTemplateId=e,Z("vhChargeTemplateId",e,this.id)}updateChargeTemplateId(e){this._chargeTemplateId=e}get evTemplateId(){return this._evTemplateId}set evTemplateId(e){this._evTemplateId=e,Z("vhEvTemplateId",e,this.id)}updateEvTemplateId(e){this._evTemplateId=e}}var de=(t=>(t.instant_charging="instant_charging",t.pv_charging="pv_charging",t.scheduled_charging="scheduled_charging",t.standby="standby",t.stop="stop",t))(de||{});function ta(){return{frequency:{once:[new Date("2022-02-02"),new Date("2022-02-22")],selected:"daily",weekly:[!1,!1,!1,!1,!1,!1,!1]},name:"Neuer Plan",time:["10:00","16:00"],current:16}}function aa(){return{name:"Neuer Plan",timed:!1,time:"12:00",soc:80,frequency:{once:[new Date("2022-02-02"),new Date("2022-02-22")],selected:"daily",weekly:[!1,!1,!1,!1,!1,!1,!1]}}}const T=Q({}),X=Q({}),ue=Q({}),xt=Q({});function Ja(t){t in T?console.info("Duplicate chargepoint message: "+t):(T[t]=new Ra(t),T[t].color="var(--color-cp"+Object.values(T).length+")",console.info("Added chargepoint "+t))}function Qa(){Object.keys(T).forEach(t=>{delete T[parseInt(t)]})}const Ya={cpLock:"openWB/set/chargepoint/%/set/manual_lock",chargeMode:"openWB/set/vehicle/template/charge_template/%/chargemode/selected",cpPriority:"openWB/set/vehicle/template/charge_template/%/prio",cpScheduledCharging:"openWB/set/vehicle/template/charge_template/%/time_charging/active",pvBatteryPriority:"openWB/set/general/chargemode_config/pv_charging/bat_prio",chargeTemplate:"openWB/set/vehicle/template/charge_template/%",cpVehicle:"openWB/set/chargepoint/%/config/ev",cpInstantChargeLimitMode:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/selected",cpInstantTargetCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/current",cpInstantTargetSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/soc",cpInstantMaxEnergy:"openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/amount",cpPvFeedInLimit:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/feed_in_limit",cpPvMinCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_current",cpPvMaxSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/max_soc",cpPvMinSoc:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_soc",cpPvMinSocCurrent:"openWB/set/vehicle/template/charge_template/%/chargemode/pv_charging/min_soc_current",etMaxPrice:"openWB/set/optional/et/max_price",vhChargeTemplateId:"openWB/set/vehicle/%/charge_template",vhEvTemplateId:"openWB/set/vehicle/%/ev_template",shSetManual:"openWB/set/LegacySmartHome/config/set/Devices/%/mode",shSwitchOn:"openWB/set/LegacySmartHome/config/set/Devices/%/device_manual_control"};function Z(t,e,a=0){if(isNaN(a)){console.warn("Invalid index");return}let s=Ya[t];if(!s){console.warn("No topic for update type "+t);return}switch(t){case"chargeMode":case"cpPriority":case"cpScheduledCharging":case"cpInstantTargetCurrent":case"cpInstantChargeLimitMode":case"cpInstantTargetSoc":case"cpInstantMaxEnergy":case"cpPvFeedInLimit":case"cpPvMinCurrent":case"cpPvMaxSoc":case"cpPvMinSoc":case"cpPvMinSocCurrent":s=s.replace("%",T[a].chargeTemplate.toString());break;default:s=s.replace("%",String(a))}switch(typeof e){case"number":ct(s,JSON.stringify(+e));break;default:ct(s,JSON.stringify(e))}}function na(t){const e=ue[t];if(e){const a="openWB/set/vehicle/template/charge_template/"+t;ct(a,JSON.stringify(e))}}function It(t){ct("openWB/set/command/"+Fa()+"/todo",JSON.stringify(t))}let Za=class{constructor(e){p(this,"id");p(this,"name","");p(this,"power",0);p(this,"energy",0);p(this,"energyPv",0);p(this,"energyBat",0);p(this,"pvPercentage",0);p(this,"configured",!0);p(this,"showInGraph",!0);p(this,"color","white");p(this,"icon","");p(this,"countAsHouse",!1);this.id=e}};class Xa{constructor(){p(this,"batterySoc",0);p(this,"isBatteryConfigured",!0);p(this,"chargeMode","0");p(this,"_pvBatteryPriority",!1);p(this,"displayLiveGraph",!0);p(this,"isEtEnabled",!0);p(this,"etMaxPrice",0);p(this,"etCurrentPrice",0);p(this,"cpDailyExported",0);p(this,"evuId",0);p(this,"etProvider","")}get pvBatteryPriority(){return this._pvBatteryPriority}set pvBatteryPriority(e){this._pvBatteryPriority=e,Z("pvBatteryPriority",e)}updatePvBatteryPriority(e){this._pvBatteryPriority=e}}const Ee=Q({evuIn:{name:"Netz",color:"var(--color-evu)",icon:""},pv:{name:"PV",color:"var(--color-pv",icon:""},batOut:{name:"Bat >",color:"var(--color-battery)",icon:""},evuOut:{name:"Export",color:"var(--color-export)",icon:""},charging:{name:"Laden",color:"var(--color-charging)",icon:""},devices:{name:"Geräte",color:"var(--color-devices)",icon:""},batIn:{name:"> Bat",color:"var(--color-battery)",icon:""},house:{name:"Haus",color:"var(--color-house)",icon:""}}),k=Q({evuIn:ce("evuIn"),pv:ce("pv"),batOut:ce("batOut"),evuOut:ce("evuOut"),charging:ce("charging"),devices:ce("devices"),batIn:ce("batIn"),house:ce("house")}),N=Q({evuIn:ce("evuIn"),pv:ce("pv"),batOut:ce("batOut")}),A=Q({evuOut:ce("evuOut"),charging:ce("charging"),devices:ce("devices"),batIn:ce("batIn"),house:ce("house")}),Ye=Q([]),ae=Q(new Xa);le("");Array.from({length:9},(t,e)=>Ye[e]=new Za(e));Object.values(Ye).forEach(t=>{t.color="var(--color-sh"+(t.id+1)+")"});function ce(t){return{name:Ee[t].name,power:0,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:Ee[t].color,icon:Ee[t].icon}}class Ka{constructor(){p(this,"etPriceList","");p(this,"_etMaxPrice",20);p(this,"etCurrentPrice",0);p(this,"isEtEnabled",!1);p(this,"etProvider","")}get etMaxPrice(){return this._etMaxPrice}set etMaxPrice(e){this._etMaxPrice=e,Z("etMaxPrice",e)}updateEtMaxPrice(e){this._etMaxPrice=e}}const Ae=Q(new Ka);class en{constructor(e){p(this,"id");p(this,"name","Gerät");p(this,"power",0);p(this,"status","off");p(this,"energy",0);p(this,"runningTime",0);p(this,"configured",!1);p(this,"_showInGraph",!0);p(this,"color","white");p(this,"canSwitch",!1);p(this,"countAsHouse",!1);p(this,"energyPv",0);p(this,"energyBat",0);p(this,"pvPercentage",0);p(this,"tempConfigured",0);p(this,"temp",[300,300,300]);p(this,"on",!1);p(this,"isAutomatic",!0);p(this,"icon","");this.id=e}get showInGraph(){return this._showInGraph}set showInGraph(e){this._showInGraph=e,he()}}const q=Q({});function Bt(t){t in q?console.info("Duplicate sh device message: "+t):(q[t]=new en(t),q[t].color="var(--color-sh"+Object.values(q).length+")",console.info("Added sh device "+t))}class tn{constructor(){p(this,"data",[]);p(this,"_graphMode","today")}get graphMode(){return this._graphMode}set graphMode(e){this._graphMode=e}}const v=Q(new tn);let dt=!0,Ze=!0;function Gt(){dt=!1}function jt(){Ze=!1}function an(t){Ze=t}function at(t){v.data=t}const re={refreshTopicPrefix:"openWB/graph/alllivevaluesJson",updateTopic:"openWB/graph/lastlivevaluesJson",initialized:!1,initCounter:0,graphRefreshCounter:0,rawDataPacks:[],activate(){v.data=[],this.unsubscribeUpdates(),this.subscribeRefresh(),this.initialized=!1,this.initCounter=0,this.graphRefreshCounter=0,this.subscribeRefresh(),this.rawDataPacks=[]},deactivate(){this.unsubscribeRefresh(),this.unsubscribeUpdates()},subscribeRefresh(){for(let t=1;t<17;t++)Ge(this.refreshTopicPrefix+t)},unsubscribeRefresh(){for(let t=1;t<17;t++)Qe(this.refreshTopicPrefix+t)},subscribeUpdates(){Ge(this.updateTopic)},unsubscribeUpdates(){Qe(this.updateTopic)}},J=Q({topic:"openWB/log/daily/#",date:new Date,activate(){const t=this.date.getFullYear().toString()+(this.date.getMonth()+1).toString().padStart(2,"0")+this.date.getDate().toString().padStart(2,"0");v.data=[],Ge(this.topic),It({command:"getDailyLog",data:{day:t}})},deactivate(){Qe(this.topic)},back(){this.date=new Date(this.date.setTime(this.date.getTime()-864e5))},forward(){this.date=new Date(this.date.setTime(this.date.getTime()+864e5))},setDate(t){this.date=t},getDate(){return this.date}}),ve=Q({topic:"openWB/log/monthly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(){const t=this.year.toString()+this.month.toString().padStart(2,"0");v.data=[],Ge(this.topic),It({command:"getMonthlyLog",data:{month:t}})},deactivate(){Qe(this.topic)},back(){this.month-=1,this.month<1&&(this.month=12,this.year-=1),this.activate()},forward(){this.month-1<new Date().getMonth()&&(this.month=this.month+1,this.month>12&&(this.month=1,this.year+=1),this.activate())},getDate(){return new Date(this.year,this.month)}}),Oe=Q({topic:"openWB/log/yearly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(){const t=this.year.toString();v.data=[],Ge(this.topic),It({command:"getYearlyLog",data:{year:t}})},deactivate(){Qe(this.topic)},back(){this.month-=1,this.month<1&&(this.month=12,this.year-=1),this.activate()},forward(){this.month-1<new Date().getMonth()&&(this.month=this.month+1,this.month>12&&(this.month=1,this.year+=1),this.activate())},getDate(){return new Date(this.year,this.month)}});function ie(){switch(v.graphMode==""&&nn(_.graphPreference),dt=!0,Ze=!0,v.graphMode){case"live":J.deactivate(),ve.deactivate(),Oe.deactivate(),re.activate();break;case"today":re.deactivate(),ve.deactivate(),Oe.deactivate(),J.activate();break;case"day":re.deactivate(),ve.deactivate(),Oe.deactivate(),J.activate();break;case"month":re.deactivate(),J.deactivate(),Oe.deactivate(),ve.activate();break;case"year":re.deactivate(),J.deactivate(),ve.deactivate(),Oe.activate();break}}function nn(t){v.graphMode=t}function oa(t,e){e[t+"Pv"]=e[t]*(e.solarPower-e.gridPush)/(e.solarPower-e.gridPush+e.gridPull+e.batOut),e[t+"Bat"]=e[t]*e.batOut/(e.solarPower-e.gridPush+e.gridPull+e.batOut)}function Vt(){switch(v.graphMode){case"live":v.graphMode="today",_.showRightButton=!0,ie();break;case"today":v.graphMode="day",J.date=new Date,J.back(),ie();break;case"day":J.back(),ie();break;case"month":ve.back();break}}function sa(){const t=new Date;switch(v.graphMode){case"live":break;case"today":v.graphMode="live",_.showRightButton=!1,ie();break;case"day":J.forward(),J.date.getDate()==t.getDate()&&J.date.getMonth()==t.getMonth()&&J.date.getFullYear()==t.getFullYear()&&(v.graphMode="today"),ie();break;case"month":ve.forward();break}}function ra(){switch(v.graphMode){case"live":Vt();break;case"day":case"today":v.graphMode="month",ie();break;case"month":v.graphMode="year",ie();break}}function la(){switch(v.graphMode){case"year":v.graphMode="month",ie();break;case"month":v.graphMode="day",ie();break;case"today":case"day":v.graphMode="live",ie();break}}function Ut(t){if(v.graphMode=="day"||v.graphMode=="today"){J.setDate(t);const e=new Date;J.date.getDate()==e.getDate()&&J.date.getMonth()==e.getMonth()&&J.date.getFullYear()==e.getFullYear()?v.graphMode="today":v.graphMode="day",ie()}}class on{constructor(){p(this,"_showRelativeArcs",!1);p(this,"showTodayGraph",!0);p(this,"_graphPreference","today");p(this,"_usageStackOrder",0);p(this,"_displayMode","dark");p(this,"_showGrid",!1);p(this,"_smartHomeColors","normal");p(this,"_decimalPlaces",1);p(this,"_showQuickAccess",!0);p(this,"_simpleCpList",!1);p(this,"_showAnimations",!0);p(this,"_preferWideBoxes",!1);p(this,"maxPower",4e3);p(this,"isEtEnabled",!1);p(this,"etPrice",20.5);p(this,"showRightButton",!0);p(this,"showLeftButton",!0);p(this,"animationDuration",300);p(this,"animationDelay",100)}get showRelativeArcs(){return this._showRelativeArcs}set showRelativeArcs(e){this._showRelativeArcs=e,he()}get graphPreference(){return this._graphPreference}set graphPreference(e){this._graphPreference=e,he()}setGraphPreference(e){this._graphPreference=e}setUsageStackOrder(e){this._usageStackOrder=e}get usageStackOrder(){return this._usageStackOrder}set usageStackOrder(e){this._usageStackOrder=e,he()}get displayMode(){return this._displayMode}set displayMode(e){this._displayMode=e,ln(e)}get showGrid(){return this._showGrid}set showGrid(e){this._showGrid=e,he()}get decimalPlaces(){return this._decimalPlaces}set decimalPlaces(e){this._decimalPlaces=e,he()}get smartHomeColors(){return this._smartHomeColors}set smartHomeColors(e){this._smartHomeColors=e,cn(e),he()}get showQuickAccess(){return this._showQuickAccess}set showQuickAccess(e){this._showQuickAccess=e,he()}get simpleCpList(){return this._simpleCpList}set simpleCpList(e){this._simpleCpList=e,he()}get showAnimations(){return this._showAnimations}set showAnimations(e){this._showAnimations=e,he()}get preferWideBoxes(){return this._preferWideBoxes}set preferWideBoxes(e){this._preferWideBoxes=e,he()}}const _=Q(new on);function ia(){un();const t=fe("html");t.classed("theme-dark",_.displayMode=="dark"),t.classed("theme-light",_.displayMode=="light"),t.classed("theme-blue",_.displayMode=="blue"),t.classed("shcolors-standard",_.smartHomeColors=="standard"),t.classed("shcolors-advanced",_.smartHomeColors=="advanced"),t.classed("shcolors-normal",_.smartHomeColors=="normal")}const sn=992,ut=Q({x:document.documentElement.clientWidth,y:document.documentElement.clientHeight});function rn(){ut.x=document.documentElement.clientWidth,ut.y=document.documentElement.clientHeight,ia()}const Ie=f(()=>ut.x>=sn),se={stop:{mode:de.stop,name:"Stop",color:"var(--color-fg)",icon:"fa-power-off"},standby:{mode:de.standby,name:"Standby",color:"var(--color-axis",icon:"fa-pause"},pv_charging:{mode:de.pv_charging,name:"PV",color:"var(--color-pv",icon:"fa-solar-panel"},scheduled_charging:{mode:de.scheduled_charging,name:"Zielladen",color:"var(--color-battery)",icon:"fa-bullseye"},instant_charging:{mode:de.instant_charging,name:"Sofort",color:"var(--color-charging)",icon:"fa-bolt"}};function he(){dn()}function ln(t){const e=fe("html");e.classed("theme-dark",t=="dark"),e.classed("theme-light",t=="light"),e.classed("theme-blue",t=="blue"),he()}function cn(t){const e=fe("html");e.classed("shcolors-normal",t=="normal"),e.classed("shcolors-standard",t=="standard"),e.classed("shcolors-advanced",t=="advanced"),he()}const Se={chargemode:"Der Lademodus für diesen Ladepunkt",vehicle:"Das Fahrzeug, das an diesem Ladepounkt geladen wird",locked:"Diesen Ladepunkt sperren",priority:"Diesen Ladepunkt auf hohe Priorität setzen",timeplan:"An diesem Ladepunkt nach dem konfigurierten Zeitplan laden",minsoc:"Immer mindestens bis zum eingestellten Ladestand laden. Wenn notwendig mit Netzstrom.",minpv:"Durchgehend mit mindestens dem eingestellten Strom laden. Wenn notwendig mit Netzstrom."};function dn(){const t={};t.hideSH=Object.values(q).filter(e=>!e.showInGraph).map(e=>e.id),t.showLG=_.graphPreference=="live",t.displayM=_.displayMode,t.stackO=_.usageStackOrder,t.showGr=_.showGrid,t.decimalP=_.decimalPlaces,t.smartHomeC=_.smartHomeColors,t.relPM=_.showRelativeArcs,t.maxPow=_.maxPower,t.showQA=_.showQuickAccess,t.simpleCP=_.simpleCpList,t.animation=_.showAnimations,t.wideB=_.preferWideBoxes,document.cookie="openWBColorTheme="+JSON.stringify(t)+"; max-age=16000000"}function un(){const e=document.cookie.split(";").filter(a=>a.split("=")[0]==="openWBColorTheme");if(e.length>0){const a=JSON.parse(e[0].split("=")[1]);a.decimalP!==void 0&&(_.decimalPlaces=a.decimalP),a.smartHomeC!==void 0&&(_.smartHomeColors=a.smartHomeC),a.hideSH!==void 0&&a.hideSH.map(s=>{q[s]==null&&Bt(s),q[s].showInGraph=!1}),a.showLG!==void 0&&_.setGraphPreference(a.showLG?"live":"today"),a.maxPow!==void 0&&(_.maxPower=+a.maxPow),a.relPM!==void 0&&(_.showRelativeArcs=a.relPM),a.displayM!==void 0&&(_.displayMode=a.displayM),a.stackO!==void 0&&_.setUsageStackOrder(a.stackO),a.showGr!==void 0&&(_.showGrid=a.showGr),a.showQA!==void 0&&(_.showQuickAccess=a.showQA),a.simpleCP!==void 0&&(_.simpleCpList=a.simpleCP),a.animation!=null&&(_.showAnimations=a.animation),a.wideB!=null&&(_.preferWideBoxes=a.wideB)}}const hn=["origin"],pn=I({__name:"PMSourceArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{}},setup(t){const e=t,a=f(()=>{const s=Object.values(N).length;let o={name:"",power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:""},r=N;r["zz-empty"]=o;const l=Qt().value(g=>g.power).startAngle(-Math.PI/2+e.circleGapSize).endAngle(Math.PI/2-e.circleGapSize).sort(null),c=Yt().innerRadius(e.radius/6*5).outerRadius(e.radius).cornerRadius(e.cornerRadius).padAngle(0),u=fe("g#pmSourceArc");return u.selectAll("*").remove(),u.selectAll("sources").data(l(Object.values(r))).enter().append("path").attr("d",c).attr("fill",g=>g.data.color).attr("stroke",(g,y)=>y==s?g.data.power>0?"var(--color-scale)":"null":g.data.color),"pmSourceArc.vue"});return Ia(()=>{let s=N.pv.power+N.evuIn.power+N.batOut.power;s>_.maxPower&&(_.maxPower=s)}),(s,o)=>(i(),h("g",{id:"pmSourceArc",origin:a.value},null,8,hn))}}),gn=["origin"],mn=I({__name:"PMUsageArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{}},setup(t){const e=t,a=f(()=>{let s={name:"",power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:""};const o=[A.evuOut,A.charging].concat(Object.values(q).filter(g=>g.configured&&!g.countAsHouse).sort((g,y)=>y.power-g.power)).concat([A.batIn,A.house]).concat(s),r=o.length-1,l=Qt().value(g=>g.power).startAngle(Math.PI*1.5-e.circleGapSize).endAngle(Math.PI/2+e.circleGapSize).sort(null),c=Yt().innerRadius(e.radius/6*5).outerRadius(e.radius).cornerRadius(e.cornerRadius),u=fe("g#pmUsageArc");return u.selectAll("*").remove(),u.selectAll("consumers").data(l(o)).enter().append("path").attr("d",c).attr("fill",g=>g.data.color).attr("stroke",(g,y)=>y==r?g.data.power>0?"var(--color-scale)":"null":g.data.color),"pmUsageArc.vue"});return(s,o)=>(i(),h("g",{id:"pmUsageArc",origin:a.value},null,8,gn))}});function Pe(t,e=1){let a;if(t>=1e3&&e<4){switch(e){case 0:a=Math.round(t/1e3);break;case 1:a=Math.round(t/100)/10;break;case 2:a=Math.round(t/10)/100;break;case 3:a=Math.round(t)/1e3;break;default:a=Math.round(t/100)/10;break}return(a==null?void 0:a.toLocaleString(void 0,{minimumFractionDigits:e}))+" kW"}else return Math.round(t).toLocaleString(void 0)+" W"}function Xe(t,e=1,a=!1){let s;if(t>=1e3&&e<4){switch(e){case 0:s=Math.round(t/1e3);break;case 1:s=(Math.round(t/100)/10).toFixed(1);break;case 2:s=(Math.round(t/10)/100).toFixed(2);break;case 3:s=(Math.round(t)/1e3).toFixed(3);break;default:s=Math.round(t/100)/10;break}return s.toLocaleString(void 0,{minimumFractionDigits:e})+(a?" MWh":" kWh")}else return Math.round(t).toLocaleString(void 0)+(a?" kWh":" Wh")}function fn(t){const e=Math.floor(t/3600),a=(t%3600/60).toFixed(0);return e>0?e+"h "+a+" min":a+" min"}function vn(t,e){return["Jan","Feb","März","April","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Dez"][t]+" "+e}function _n(t){return(Math.round(t*10)/10).toLocaleString(void 0,{minimumFractionDigits:1})+"°"}const Tt=I({__name:"FormatWatt",props:{watt:{}},setup(t){const e=t,a=f(()=>Pe(e.watt,_.decimalPlaces));return(s,o)=>$(a.value)}}),bn={key:0,id:"pmLabel"},yn=["x","y","fill","text-anchor"],wn=22,be=I({__name:"PMLabel",props:{x:{},y:{},data:{},props:{},anchor:{},labeltext:{},labelicon:{},labelcolor:{}},setup(t){const e=t,a=f(()=>e.labeltext?e.labeltext:e.props?e.props.icon+" ":e.labelicon?e.labelicon+" ":""),s=f(()=>e.labelcolor?e.labelcolor:e.props?e.props.color:""),o=f(()=>!e.data||e.data.power>0),r=f(()=>e.labeltext?"":"fas");return(l,c)=>o.value?(i(),h("g",bn,[n("text",{x:l.x,y:l.y,fill:s.value,"text-anchor":l.anchor,"font-size":wn,class:"pmLabel"},[n("tspan",{class:z(r.value)},$(a.value),3),n("tspan",null,[l.data!==void 0?(i(),B(Tt,{key:0,watt:l.data.power},null,8,["watt"])):w("",!0)])],8,yn)])):w("",!0)}}),kn={class:"wb-widget p-0 m-0 shadow"},$n={class:"d-flex justify-content-between"},Sn={class:"m-4 me-0 mb-0"},xn=n("div",{class:"p-0"},"(title goes here)",-1),Pn={class:"p-4 pb-0 ps-0 m-0",style:{"text-align":"right"}},Mn={class:"px-4 pt-4 pb-2 wb-subwidget"},Cn={class:"row"},In={class:"col"},Bn={class:"container-fluid m-0 p-0"},Vn={key:0},Tn=n("hr",null,null,-1),Ln={class:"px-4 py-2 wb-subwidget"},On={class:"row"},An={class:"col"},Dn={class:"container-fluid m-0 p-0"},Me=I({__name:"WBWidget",props:{variableWidth:{type:Boolean},fullWidth:{type:Boolean}},setup(t){const e=t,a=f(()=>e.fullWidth?"col-12":e.variableWidth&&_.preferWideBoxes?"col-lg-6":"col-lg-4");return(s,o)=>(i(),h("div",{class:z(["p-2 m-0 d-flex flex-fill",a.value])},[n("div",kn,[n("div",$n,[n("h3",Sn,[te(s.$slots,"title",{},()=>[xn]),te(s.$slots,"subtitle")]),n("div",Pn,[te(s.$slots,"buttons")])]),n("div",Mn,[n("div",Cn,[n("div",In,[n("div",Bn,[te(s.$slots,"default")])])])]),s.$slots.footer!=null?(i(),h("div",Vn,[Tn,n("div",Ln,[n("div",On,[n("div",An,[n("div",Dn,[te(s.$slots,"footer")])])])])])):w("",!0)])],2))}}),En={id:"powermeter",class:"p-0 m-0"},Wn=["viewBox"],Gn=["transform"],jn=["x"],ye=500,we=20,zt=1,Un=I({__name:"PowerMeter",setup(t){const e=ye,a=Math.PI/40,s=[[4],[4,6],[1,4,6],[0,2,4,6],[0,2,3,5,6]],o=[{x:-85,y:e/2*1/5},{x:0,y:e/2*1/5},{x:85,y:e/2*1/5},{x:-85,y:e/2*2/5},{x:0,y:e/2*2/5},{x:85,y:e/2*2/5},{x:0,y:e/2*3/5}],r=f(()=>ye/2-we),l=f(()=>{let x="",U=Object.values(N).filter(Y=>Y.power>0);return U.length==1&&U[0].name=="PV"?x="Aktueller Verbrauch: ":x="Bezug/Verbrauch: ",x+Pe(A.house.power+A.charging.power+A.devices.power+A.batIn.power,_.decimalPlaces)}),c=f(()=>{let x=N.pv.power+N.evuIn.power+N.batOut.power;return _.maxPower>x?Pe(_.maxPower,_.decimalPlaces):Pe(x,_.decimalPlaces)}),u=f(()=>Object.values(T)),g=f(()=>{let x=0;return _.showRelativeArcs&&(x=_.maxPower-(N.pv.power+N.evuIn.power+N.batOut.power)),x<0?0:x}),y=f(()=>[A.evuOut,A.charging,A.devices,A.batIn,A.house].filter(x=>x.power>0)),M=f(()=>s[y.value.length-1]);function C(x){return o[M.value[x]]}function S(x){return u.value[x].soc}function P(x){return x.length>12?x.slice(0,12-1)+".":x}return(x,U)=>(i(),B(Me,{"full-width":!0},{title:b(()=>[j(" Aktuelle Leistung ")]),default:b(()=>[n("figure",En,[(i(),h("svg",{viewBox:"0 0 "+ye+" "+d(e)},[n("g",{transform:"translate("+ye/2+","+d(e)/2+")"},[m(pn,{radius:r.value,"corner-radius":zt,"circle-gap-size":a,"empty-power":g.value},null,8,["radius","empty-power"]),m(mn,{"sh-device":d(Ye),radius:r.value,"corner-radius":zt,"circle-gap-size":a,"empty-power":g.value},null,8,["sh-device","radius","empty-power"]),m(be,{x:0,y:-d(e)/5,data:d(N).pv,props:d(Ee).pv,anchor:"middle",config:d(_)},null,8,["y","data","props","config"]),m(be,{x:0,y:-d(e)/2*3/5,data:d(N).evuIn,props:d(Ee).evuIn,anchor:"middle",config:d(_)},null,8,["y","data","props","config"]),m(be,{x:-d(e)/2/5,y:d(e)/2-we+15,data:d(N).batOut,props:d(Ee).batOut,anchor:"end",config:d(_)},null,8,["x","y","data","props","config"]),(i(!0),h(E,null,F(y.value,(Y,H)=>(i(),B(be,{key:H,x:C(H).x,y:C(H).y,data:Y,labelicon:Y.icon,labelcolor:Y.color,anchor:"middle",config:d(_)},null,8,["x","y","data","labelicon","labelcolor","config"]))),128)),u.value.length>0&&u.value[0].isSocConfigured?(i(),B(be,{key:0,x:-ye/2-we/4+10,y:-d(e)/2+we+5,labeltext:P(u.value[0].vehicleName)+": "+S(0)+"%",labelcolor:u.value[0].color,anchor:"start",config:d(_)},null,8,["x","y","labeltext","labelcolor","config"])):w("",!0),u.value.length>1&&u.value[1].isSocConfigured?(i(),B(be,{key:1,x:ye/2+we/4-10,y:-d(e)/2+we+5,labeltext:P(u.value[1].vehicleName)+": "+S(1)+"%",labelcolor:u.value[1].color,anchor:"end",config:d(_)},null,8,["x","y","labeltext","labelcolor","config"])):w("",!0),d(ae).batterySoc>0?(i(),B(be,{key:2,x:-ye/2-we/4+10,y:d(e)/2-we+15,labeltext:"Speicher: "+d(ae).batterySoc+"%",labelcolor:d(A).batIn.color,anchor:"start",config:d(_)},null,8,["x","y","labeltext","labelcolor","config"])):w("",!0),m(be,{x:0,y:0,labeltext:l.value,labelcolor:"var(--color-fg)",anchor:"middle",config:d(_)},null,8,["labeltext","config"]),d(_).showRelativeArcs?(i(),h("text",{key:3,x:ye/2-44,y:"2","text-anchor":"middle",fill:"var(--color-axis)","font-size":"12"}," Peak: "+$(c.value),9,jn)):w("",!0)],8,Gn)],8,Wn))])]),_:1}))}}),zn=["origin","transform"],Nn=I({__name:"PGSourceGraph",props:{width:{},height:{},margin:{}},setup(t){const e=t,a={house:"var(--color-house)",batIn:"var(--color-battery)",inverter:"var(--color-pv)",batOut:"var(--color-battery)",selfUsage:"var(--color-pv)",gridPush:"var(--color-export)",gridPull:"var(--color-evu)"};var s,o;const r=_.showAnimations?_.animationDuration:0,l=_.showAnimations?_.animationDelay:0,c=f(()=>{if(v.data.length>0){const G=fe("g#pgSourceGraph");v.graphMode=="month"||v.graphMode=="year"?L(G):D(G);const V=G.append("g").attr("class","axis");V.call(U.value),V.selectAll(".tick").attr("font-size",12),V.selectAll(".tick line").attr("stroke",H.value).attr("stroke-width",Y.value),V.select(".domain").attr("stroke","var(--color-bg)")}return"pgSourceGraph.vue"}),u=f(()=>v.graphMode=="month"||v.graphMode=="year"?["gridPull","batOut","selfUsage","gridPush"]:["selfUsage","gridPush","batOut","gridPull"]),g=f(()=>Be().domain([0,v.data.length-1]).range([0,e.width])),y=f(()=>mt().domain(Array.from({length:v.data.length},(G,V)=>V)).range([0,e.width+e.margin.right]).paddingInner(.4)),M=f(()=>Zt().keys(u.value)),C=f(()=>M.value(v.data)),S=f(()=>Be().range([e.height-10,0]).domain(v.graphMode=="year"?[0,Math.ceil(P.value[1]*10)/10]:[0,Math.ceil(P.value[1])])),P=f(()=>{let G=ft(v.data,V=>Math.max(V.solarPower+V.gridPull+V.batOut,V.selfUsage+V.gridPush));return G[0]!=null&&G[1]!=null?G:[0,0]}),x=f(()=>v.graphMode=="month"||v.graphMode=="year")?-e.width-e.margin.right:-e.width,U=f(()=>Mt(S.value).tickSizeInner(x).ticks(4).tickFormat(G=>(G==0?"":Math.round(G*10)/10).toLocaleString(void 0))),Y=f(()=>_.showGrid?"0.5":"1"),H=f(()=>_.showGrid?"var(--color-grid)":"var(--color-bg)");function D(G){const V=rt().x((ge,qe)=>g.value(qe)).y(S.value(0)),ne=rt().x((ge,qe)=>g.value(qe)).y0(ge=>S.value(ge[0])).y1(ge=>S.value(ge[1]));dt?(G.selectAll("*").remove(),s=G.selectAll(".sourceareas").data(C.value).enter().append("path").attr("fill",(ge,qe)=>a[u.value[qe]]).attr("d",ge=>V(ge)),s.transition().duration(r).delay(l).ease(De).attr("d",ge=>ne(ge)),Gt()):s.data(C.value).transition().duration(0).ease(De).attr("d",ge=>ne(ge))}function L(G){dt?(G.selectAll("*").remove(),o=G.selectAll(".sourcebar").data(C.value).enter().append("g").attr("fill",(V,ne)=>a[u.value[ne]]).selectAll("rect").data(V=>V).enter().append("rect").attr("x",(V,ne)=>y.value(ne)??0).attr("y",()=>S.value(0)).attr("height",0).attr("width",y.value.bandwidth()),o.transition().duration(r).delay(l).ease(De).attr("height",V=>S.value(V[0])-S.value(V[1])).attr("y",V=>S.value(V[1])),Gt()):(G.selectAll("*").remove(),o=G.selectAll(".sourcebar").data(C.value).enter().append("g").attr("fill",(V,ne)=>a[u.value[ne]]).selectAll("rect").data(V=>V).enter().append("rect").attr("x",(V,ne)=>y.value(ne)??0).attr("y",V=>S.value(V[1])).attr("width",y.value.bandwidth()).attr("height",V=>S.value(V[0])-S.value(V[1])))}return(G,V)=>(i(),h("g",{id:"pgSourceGraph",origin:c.value,transform:"translate("+G.margin.left+","+G.margin.top+")"},null,8,zn))}}),qn=["origin","transform"],Fn=I({__name:"PGUsageGraph",props:{width:{},height:{},margin:{},stackOrder:{}},setup(t){const e=t,a=[["house","charging","devices","batIn","inverter"],["charging","devices","house","batIn","inverter"],["devices","house","charging","batIn","inverter"]],s={house:"var(--color-house)",charging:"var(--color-charging)",batIn:"var(--color-battery)",inverter:"var(--color-pv)",batOut:"var(--color-battery)",selfUsage:"var(--color-pv)",gridPush:"var(--color-export)",gridPull:"var(--color-evu)",cp0:"var(--color-cp0)",cp1:"var(--color-cp1)",cp2:"var(--color-cp2)",cp3:"var(--color-cp3)",sh1:"var(--color-sh1)",sh2:"var(--color-sh2)",sh3:"var(--color-sh3)",sh4:"var(--color-sh4)",devices:"var(--color-devices)"};var o,r;const l=_.showAnimations?_.animationDuration:0,c=_.showAnimations?_.animationDelay:0,u=f(()=>{if(v.data.length>0){const D=fe("g#pgUsageGraph");v.graphMode=="month"||v.graphMode=="year"?H(D):Y(D);const L=D.append("g").attr("class","axis");L.call(U.value),L.selectAll(".tick").attr("font-size",12).attr("color","var(--color-axis)"),_.showGrid?L.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):L.selectAll(".tick line").attr("stroke","var(--color-bg)"),L.select(".domain").attr("stroke","var(--color-bg)")}return"pgUsageGraph.vue"}),g=f(()=>Zt().keys(a[e.stackOrder])),y=f(()=>g.value(v.data)),M=f(()=>Be().domain([0,v.data.length-1]).range([0,e.width])),C=f(()=>mt().domain(Array.from({length:v.data.length},(D,L)=>L)).range([0,e.width+e.margin.right]).paddingInner(.4)),S=f(()=>Be().range([e.height+10,2*e.height]).domain(v.graphMode=="year"?[0,Math.ceil(P.value[1]*10)/10]:[0,Math.ceil(P.value[1])])),P=f(()=>{let D=ft(v.data,L=>L.house+L.charging+L.batIn+L.inverter+L.devices);return D[0]!=null&&D[1]!=null?D:[0,0]}),x=f(()=>v.graphMode=="month"||v.graphMode=="year")?-e.width-e.margin.right:-e.width,U=f(()=>Mt(S.value).tickSizeInner(x).ticks(4).tickFormat(D=>(D==0?"":Math.round(D*10)/10).toLocaleString(void 0)));function Y(D){const L=rt().x((V,ne)=>M.value(ne)).y(S.value(0)),G=rt().x((V,ne)=>M.value(ne)).y0(V=>S.value(V[0])).y1(V=>S.value(V[1]));_.showAnimations?Ze?(D.selectAll("*").remove(),o=D.selectAll(".usageareas").data(y.value).enter().append("path").attr("d",V=>L(V)).attr("fill",(V,ne)=>s[a[e.stackOrder][ne]]),o.transition().duration(300).delay(100).ease(De).attr("d",V=>G(V)),jt()):o.data(y.value).transition().duration(100).ease(De).attr("d",V=>G(V)):(D.selectAll("*").remove(),D.selectAll(".usageareas").data(y.value).enter().append("path").attr("d",V=>G(V)).attr("fill",(V,ne)=>s[a[e.stackOrder][ne]]))}function H(D){Ze?(D.selectAll("*").remove(),r=D.selectAll(".usagebar").data(y.value).enter().append("g").attr("fill",(L,G)=>s[a[e.stackOrder][G]]).selectAll("rect").data(L=>L).enter().append("rect").attr("x",(L,G)=>C.value(G)??0).attr("y",()=>S.value(0)).attr("height",0).attr("width",C.value.bandwidth()),r.transition().duration(l).delay(c).ease(De).attr("y",L=>S.value(L[0])).attr("height",L=>S.value(L[1])-S.value(L[0])),jt()):(D.selectAll("*").remove(),r=D.selectAll(".usagebar").data(y.value).enter().append("g").attr("fill",(L,G)=>s[a[e.stackOrder][G]]).selectAll("rect").data(L=>L).enter().append("rect").attr("x",(L,G)=>C.value(G)??0).attr("y",L=>S.value(L[0])).attr("height",L=>S.value(L[1])-S.value(L[0])).attr("width",C.value.bandwidth()))}return(D,L)=>(i(),h("g",{id:"pgUsageGraph",origin:u.value,transform:"translate("+D.margin.left+","+D.margin.top+")"},null,8,qn))}}),Rn=["transform"],Hn=["origin","transform"],Jn=["origin","transform"],Qn={key:0},Yn=["width","height"],Zn={key:1},Xn=["y","width","height"],bt=12,Kn=I({__name:"PGXAxis",props:{width:{},height:{},margin:{}},setup(t){const e=t,a=f(()=>Wt(r.value).ticks(4).tickSizeInner(o.value).tickFormat(Ba("%H:%M"))),s=f(()=>Wt(l.value).ticks(4).tickSizeInner(o.value).tickFormat((g,y)=>(y+1).toString())),o=f(()=>v.graphMode!=="month"&&v.graphMode!=="year"?_.showGrid?-(e.height/2-7):-10:0),r=f(()=>{let g=ft(v.data,y=>y.date);return g[0]&&g[1]?lt().domain(g).range([0,e.width]):lt().range([0,0])}),l=f(()=>mt().domain(Array.from({length:v.data.length},(g,y)=>y)).paddingInner(.4).range([0,e.width+e.margin.right])),c=f(()=>{let g=fe("g#PGXAxis");return g.selectAll("*").remove(),v.graphMode=="month"||v.graphMode=="year"?g.call(s.value):g.call(a.value),g.selectAll(".tick").attr("color","var(--color-axis)").attr("font-size",bt),_.showGrid?g.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):g.selectAll(".tick line").attr("stroke","var(--color-bg)"),g.select(".domain").attr("stroke","var(--color-bg)"),g.append("text").attr("x",-e.margin.left).attr("y",12).attr("fill","var(--color-axis)").attr("font-size",bt).text(v.graphMode=="year"?"MWh":"kWh").attr("text-anchor","start"),"PGXAxis.vue"}),u=f(()=>{let g=fe("g#PGXAxis2");return g.selectAll("*").remove(),_.showGrid&&(g.selectAll(".tick").attr("color","var(--color-axis)").attr("font-size",bt),g.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"),g.select(".domain").attr("stroke","var(--color-bg)")),"PGXAxis.vue"});return(g,y)=>(i(),h("g",{transform:"translate("+g.margin.left+","+g.margin.top+")"},[n("g",{id:"PGXAxis",class:"axis",origin:c.value,transform:"translate(0,"+(g.height/2-6)+")"},null,8,Hn),n("g",{id:"PGXAxis2",class:"axis",origin:u.value,transform:"translate(0,"+(g.height/2+10)+")"},null,8,Jn),d(_).showGrid?(i(),h("g",Qn,[n("rect",{x:"0",y:"0",width:g.width,height:g.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,Yn)])):w("",!0),d(_).showGrid?(i(),h("g",Zn,[n("rect",{x:"0",y:g.height/2+10,width:g.width,height:g.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,Xn)])):w("",!0)],8,Rn))}}),eo=["d"],to=["d","stroke"],ao=["x","y","text-anchor"],Nt=I({__name:"PgSoc",props:{width:{},height:{},margin:{},order:{}},setup(t){const e=t,a=f(()=>Object.values(X)),s=f(()=>{let M=ft(v.data,C=>C.date);return M[0]&&M[1]?lt().domain(M).range([0,e.width]):lt().range([0,0])}),o=f(()=>Be().range([e.height-10,0]).domain([0,100])),r=f(()=>{let C=Va().x(S=>s.value(S.date)).y(S=>o.value(S["soc"+e.order])!=null?o.value(S["soc"+e.order]):o.value(0))(v.data);return C||""}),l=f(()=>a.value[e.order].name??""),c=f(()=>e.order==0?"var(--color-cp1)":"var(--color-cp2)"),u=f(()=>e.order==0?e.width-3:3),g=f(()=>v.data.length>0?e.order==0?o.value(v.data[v.data.length-1].soc0+2):o.value(v.data[0].soc1+2):0),y=f(()=>e.order==0?"end":"start");return(M,C)=>(i(),h(E,null,[n("path",{class:"soc-baseline",d:r.value,stroke:"var(--color-bg)","stroke-width":"1",fill:"none"},null,8,eo),n("path",{class:"soc-dashes",d:r.value,stroke:c.value,"stroke-width":"1",style:{strokeDasharray:"3,3"},fill:"none"},null,8,to),n("text",{class:"cpname",x:u.value,y:g.value,style:R({fill:c.value,fontSize:10}),"text-anchor":y.value},$(l.value),13,ao)],64))}}),no=["transform"],oo=I({__name:"PgSocAxis",props:{width:{},height:{},margin:{}},setup(t){const e=t,a=f(()=>Be().range([e.height-10,0]).domain([0,100])),s=f(()=>Ta(a.value).ticks(5).tickFormat(r=>r.toString()+"%"));function o(){let r=fe("g#PGSocAxis");r.call(s.value),r.selectAll(".tick").attr("font-size",12),r.selectAll(".tick line").attr("stroke","var(--color-bg)"),r.select(".domain").attr("stroke","var(--color-bg)")}return Ue(()=>{o()}),(r,l)=>(i(),h("g",{id:"PGSocAxis",class:"axis",transform:"translate("+(r.width-20)+",0)"},null,8,no))}}),so=t=>(K("data-v-73750280"),t=t(),ee(),t),ro={class:"d-flex align-self-top justify-content-center align-items-center"},lo={class:"input-group input-group-xs"},io={class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},co={class:"dropdown-menu"},uo={class:"table optiontable"},ho=["onClick"],po={class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},go={class:"dropdown-menu"},mo={class:"table optiontable"},fo=["onClick"],vo={class:"btn dropdown-toggle",type:"button","data-bs-toggle":"dropdown"},_o={class:"dropdown-menu"},bo={class:"table optiontable"},yo=["onClick"],wo=so(()=>n("span",{class:"fa-solid fa-circle-check"},null,-1)),ko=[wo],$o=I({__name:"DateInput",props:{modelValue:{type:Date,required:!0},mode:{type:String,default:"day"}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,s=new Date().getFullYear();let o=Array.from({length:10},(C,S)=>s-S);const r=le(!0),l=[[0,1,2,3],[4,5,6,7],[8,9,10,11]],c=le(a.modelValue.getDate()),u=le(a.modelValue.getMonth()),g=le(a.modelValue.getFullYear()),y=f(()=>{const S=new Date(g.value,u.value,1).getDay();let P=0;switch(u.value){case 1:case 3:case 5:case 7:case 8:case 10:case 12:P=31;break;case 4:case 6:case 9:case 11:P=30;break;case 2:Math.trunc(g.value/4)*4==g.value&&(P=29)}let x=[],U=[0,0,0,0,0,0,0],Y=S;for(let H=0;H<P;H++)U[Y]=H+1,Y==6?(x.push(U),U=[0,0,0,0,0,0,0],Y=0):Y++;return Y<8&&x.push(U),x});function M(){e("update:modelValue",new Date(g.value,u.value,c.value)),r.value=!1}return(C,S)=>(i(),h("span",ro,[n("div",lo,[n("button",io,$(c.value),1),n("div",co,[n("table",uo,[(i(!0),h(E,null,F(y.value,(P,x)=>(i(),h("tr",{key:x,class:""},[(i(!0),h(E,null,F(P,(U,Y)=>(i(),h("td",{key:Y},[c.value!=0?(i(),h("span",{key:0,type:"button",class:"btn optionbutton",onClick:H=>c.value=U},$(U),9,ho)):w("",!0)]))),128))]))),128))])]),n("button",po,$(u.value+1),1),n("div",go,[n("table",mo,[(i(),h(E,null,F(l,(P,x)=>n("tr",{key:x,class:""},[(i(!0),h(E,null,F(P,(U,Y)=>(i(),h("td",{key:Y,class:"p-0 m-0"},[n("span",{type:"button",class:"btn btn-sm optionbutton",onClick:H=>u.value=U},$(U+1),9,fo)]))),128))])),64))])]),n("button",vo,$(g.value),1),n("div",_o,[n("table",bo,[(i(!0),h(E,null,F(d(o),(P,x)=>(i(),h("tr",{key:x,class:""},[n("td",null,[n("span",{type:"button",class:"btn optionbutton",onClick:U=>g.value=P},$(P),9,yo)])]))),128))])]),n("button",{class:"button-outline-secondary",type:"button",onClick:M},ko)])]))}});const W=(t,e)=>{const a=t.__vccOpts||t;for(const[s,o]of e)a[s]=o;return a},Ke=W($o,[["__scopeId","data-v-73750280"]]),So={class:"btn-group",role:"group","aria-label":"radiobar"},xo=["id","value"],Po=I({__name:"RadioBarInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,s=f({get(){return a.modelValue},set(l){e("update:modelValue",l)}});function o(l){let c=a.options[l].color?a.options[l].color:"var(--color-fg)";return a.options[l].active?{color:"var(--color-bg)",background:c}:{color:c}}function r(l){let c=l.target;for(;c&&!c.value&&c.parentElement;)c=c.parentElement;c.value&&(s.value=c.value)}return(l,c)=>(i(),h("div",null,[n("div",So,[(i(!0),h(E,null,F(l.options,(u,g)=>(i(),h("button",{id:"radio-"+u.value,key:g,class:z(["btn btn-outline-secondary btn-sm radiobutton mx-0 mb-0 px-2",u.value==s.value?"active":""]),value:u.value,style:R(o(g)),onClick:r},[n("span",{style:R(o(g))},[u.icon?(i(),h("i",{key:0,class:z(["fa-solid",u.icon])},null,2)):w("",!0),j(" "+$(u.text),1)],4)],14,xo))),128))])]))}});const ca=W(Po,[["__scopeId","data-v-4705eced"]]),_t=t=>(K("data-v-f1a7249f"),t=t(),ee(),t),Mo=_t(()=>n("i",{class:"fa-solid fa-xl fa-chevron-circle-up"},null,-1)),Co=[Mo],Io=_t(()=>n("span",{class:"fa-solid fa-xl fa-chevron-circle-left arrowButton"},null,-1)),Bo=[Io],Vo=_t(()=>n("span",{class:"fa-solid fa-xl fa-gear"},null,-1)),To=[Vo],Lo=_t(()=>n("span",{class:"fa-solid fa-xl fa-circle-check"},null,-1)),Oo=[Lo],Ao=I({__name:"PgSelector",props:{widgetid:{},showLeftButton:{type:Boolean},showRightButton:{type:Boolean}},emits:["shiftLeft","shiftRight","shiftUp","shiftDown"],setup(t){const e=t,a=le(0),s=f(()=>{switch(v.graphMode){case"live":if(v.data.length){const H=v.data[0].date,D=v.data[v.data.length-1].date;return Math.round((D-H)/6e4)+" min"}else return console.warn("Graph Data empty."),"???";case"today":return"heute";case"day":return J.date.getDate()+"."+(J.date.getMonth()+1)+".";case"month":return vn(ve.month-1,ve.year);case"year":return Oe.year.toString();default:return"???"}}),o=["live","today","day","month","year"],r=["Live","Heute","Tag","Monat","Jahr"],l=f({get(){return v.graphMode},set(H){switch(H){case"day":M();break;case"today":C();break;case"live":y();break;case"month":S();break;case"year":P()}}}),c=f(()=>{switch(v.graphMode){case"live":case"today":return J.getDate();case"month":return ve.getDate();default:return J.getDate()}});function u(H){Ut(H)}function g(){a.value+=1,a.value>2&&(a.value=0)}function y(){v.graphMode!="live"&&(v.graphMode="live",ie())}function M(){v.graphMode!="day"&&v.graphMode!="today"&&(v.graphMode="day",ie())}function C(){v.graphMode!="today"&&(v.graphMode="today",Ut(new Date))}function S(){v.graphMode!="month"&&(v.graphMode="month",ie())}function P(){v.graphMode!="year"&&(v.graphMode="year",ie())}const x=f(()=>a.value>0?{border:"1px solid var(--color-frame)"}:""),U=f(()=>a.value==1?"justify-content-between":"justify-content-end"),Y=f(()=>a.value==1?"justify-content-between":"justify-content-center");return(H,D)=>(i(),h("div",{class:"d-flex flex-column justify-content-center pgselector rounded",style:R(x.value)},[a.value==2?(i(),B(ca,{key:0,id:"pgm2",modelValue:l.value,"onUpdate:modelValue":D[0]||(D[0]=L=>l.value=L),class:"m-2",options:o.map((L,G)=>({text:r[G],value:L,color:"var(--color-menu)",active:L==d(v).graphMode}))},null,8,["modelValue","options"])):w("",!0),a.value==1?(i(),h("span",{key:1,type:"button",class:z(["arrowButton d-flex align-self-center mb-3 mt-3",{disabled:!e.showLeftButton}]),onClick:D[1]||(D[1]=L=>H.$emit("shiftUp"))},Co,2)):w("",!0),n("div",{class:z(["d-flex align-items-center",Y.value])},[a.value==1?(i(),h("span",{key:0,type:"button",class:z(["p-1",{disabled:!e.showLeftButton}]),onClick:D[2]||(D[2]=L=>H.$emit("shiftLeft"))},Bo,2)):w("",!0),a.value<2?(i(),h("span",{key:1,type:"button",class:"p-2 px-3 badge rounded-pill datebadge",onClick:g},$(s.value),1)):w("",!0),a.value==2?(i(),B(Ke,{key:2,"model-value":c.value,mode:d(v).graphMode,"onUpdate:modelValue":u},null,8,["model-value","mode"])):w("",!0),a.value==1?(i(),h("span",{key:3,id:"graphRightButton",type:"button",class:z(["arrowButton fa-solid fa-xl fa-chevron-circle-right p-1",{disabled:!e.showRightButton}]),onClick:D[3]||(D[3]=L=>H.$emit("shiftRight"))},null,2)):w("",!0)],2),n("div",{class:z(["d-flex align-items-center",U.value])},[a.value==1?(i(),h("span",{key:0,type:"button",class:"p-1",onClick:g},To)):w("",!0),a.value==1?(i(),h("span",{key:1,id:"graphLeftButton",type:"button",class:z(["arrowButton fa-solid fa-xl fa-chevron-circle-down p-1",{disabled:!e.showLeftButton}]),onClick:D[4]||(D[4]=L=>H.$emit("shiftDown"))},null,2)):w("",!0),a.value>0?(i(),h("span",{key:2,type:"button",class:"p-1",onClick:D[5]||(D[5]=L=>a.value=0)},Oo)):w("",!0)],2)],4))}});const da=W(Ao,[["__scopeId","data-v-f1a7249f"]]),Do=t=>(K("data-v-2ce1d1f1"),t=t(),ee(),t),Eo=["viewBox"],Wo=["transform"],Go={id:"button"},jo=["y"],Uo=Do(()=>n("tspan",{fill:"var(--color-menu)",class:"fas fa-lg"},$(""),-1)),zo=[Uo],ke=500,$e=500,No=2,qo="Leistung / Ladestand ",Fo=I({__name:"PowerGraph",setup(t){const e={top:10,right:20,bottom:10,left:25};function a(){let s=_.usageStackOrder+1;s>No&&(s=0),_.usageStackOrder=s,an(!0)}return(s,o)=>(i(),B(Me,{"full-width":!0},{title:b(()=>[j($(qo))]),buttons:b(()=>[m(da,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,onShiftLeft:d(Vt),onShiftRight:d(sa),onShiftUp:d(ra),onShiftDown:d(la)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"])]),default:b(()=>[n("figure",{id:"powergraph",class:"p-0 m-0",onClick:a},[(i(),h("svg",{viewBox:"0 0 "+ke+" "+$e},[m(Nn,{width:ke-e.left-2*e.right,height:($e-e.top-e.bottom)/2,margin:e},null,8,["width","height"]),m(Fn,{width:ke-e.left-2*e.right,height:($e-e.top-e.bottom)/2,margin:e,"stack-order":d(_).usageStackOrder},null,8,["width","height","stack-order"]),m(Kn,{width:ke-e.left-2*e.right,height:$e-e.top-e.bottom,margin:e,"graph-data":d(v)},null,8,["width","height","graph-data"]),n("g",{transform:"translate("+e.left+","+e.top+")"},[(d(v).graphMode=="day"||d(v).graphMode=="today")&&Object.values(d(X)).length>0?(i(),B(Nt,{key:0,width:ke-e.left-2*e.right,height:($e-e.top-e.bottom)/2,margin:e,order:0},null,8,["width","height"])):w("",!0),(d(v).graphMode=="day"||d(v).graphMode=="today")&&Object.values(d(X)).length>1?(i(),B(Nt,{key:1,width:ke-e.left-2*e.right,height:($e-e.top-e.bottom)/2,margin:e,order:1},null,8,["width","height"])):w("",!0),d(v).graphMode=="day"||d(v).graphMode=="today"?(i(),B(oo,{key:2,width:ke-e.left-e.right,height:($e-e.top-e.bottom)/2,margin:e},null,8,["width","height"])):w("",!0)],8,Wo),n("g",Go,[n("text",{x:ke,y:$e-10,color:"var(--color-menu)","text-anchor":"end"},zo,8,jo)])],8,Eo))])]),_:1}))}});const Ro=W(Fo,[["__scopeId","data-v-2ce1d1f1"]]),Ho=["id"],Jo=["x","width","height","fill"],Qo=["x","width","height"],Yo=["x","width","height"],Zo=I({__name:"EmBar",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(t){const e=t,a=f(()=>e.height-e.yScale(e.item.energy)-e.margin.top-e.margin.bottom),s=f(()=>e.item.energyPv>0?e.height-e.yScale(e.item.energyPv)-e.margin.top-e.margin.bottom:0),o=f(()=>e.item.energyPv>0?e.height-e.yScale(e.item.energyBat)-e.margin.top-e.margin.bottom:0);return(r,l)=>(i(),h("g",{id:"bar-"+e.item.name,transform:"scale(1,-1) translate (0,-445)"},[n("rect",{class:"bar",x:e.xScale(r.item.name),y:"0",width:e.xScale.bandwidth(),height:a.value,fill:r.item.color},null,8,Jo),n("rect",{class:"bar",x:e.xScale(r.item.name)+e.xScale.bandwidth()/6,y:"0",width:e.xScale.bandwidth()*2/3,height:s.value,fill:"var(--color-pv)","fill-opacity":"66%"},null,8,Qo),n("rect",{class:"bar",x:e.xScale(r.item.name)+e.xScale.bandwidth()/6,y:"0",width:e.xScale.bandwidth()*2/3,height:o.value,fill:"var(--color-pv)","fill-opacity":"66%"},null,8,Yo)],8,Ho))}}),Xo={id:"emBargraph"},Ko=n("animateTransform",{"attribute-name":"transform",type:"scale",from:"1 0",to:"1 1",begin:"0s",dur:"2s"},null,-1),es=I({__name:"EMBarGraph",props:{plotdata:{},xScale:{},yScale:{},margin:{},height:{}},setup(t){const e=t;function a(o){if(o.name=="PV"){const r=v.graphMode=="live"||v.graphMode=="day"?N:k,c=(v.graphMode=="live"||v.graphMode=="day"?A:k).evuOut.energy,u=r.pv.energy;return Math.round((u-c)/u*100)}else if(o.name=="Netz"){const r=v.graphMode=="live"||v.graphMode=="day"?N:k,l=v.graphMode=="live"||v.graphMode=="day"?A:k,c=l.evuOut.energy,u=r.evuIn.energy,g=r.pv.energy,y=r.batOut.energy,M=l.batIn.energy;return Math.round((g+y-c-M)/(g+y+u-c-M)*100)}else return o.pvPercentage}function s(o){return o.name=="PV"?"Eigen":"Aut"}return(o,r)=>(i(),h("g",Xo,[(i(!0),h(E,null,F(e.plotdata,(l,c)=>(i(),h("g",{key:c},[m(Zo,{item:l,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":s(l),autarchy:a(l)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128)),Ko]))}}),ts=["origin"],as=I({__name:"EMYAxis",props:{yScale:{},width:{},fontsize:{}},setup(t){const e=t,a=f(()=>Mt(e.yScale).tickFormat(o=>o>0?o.toString():"").ticks(6).tickSizeInner(-e.width)),s=f(()=>{const o=fe("g#emYAxis");return o.attr("class","axis").call(a.value),o.append("text").attr("y",6).attr("dy","0.71em").attr("text-anchor","end").text("energy"),o.selectAll(".tick").attr("font-size",e.fontsize),_.showGrid?o.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):o.selectAll(".tick line").attr("stroke","var(--color-bg)"),o.select(".domain").attr("stroke","var(--color-bg)"),"emYAxis.vue"});return(o,r)=>(i(),h("g",{id:"emYAxis",class:"axis",origin:s.value},null,8,ts))}}),ns=["id"],os=["x","y","font-size"],ss=["x","y","font-size","fill"],rs=["x","y","font-size","fill"],ls=I({__name:"EmLabel",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(t){const e=t,a=f(()=>e.autarchy?e.yScale(e.item.energy)-25:e.yScale(e.item.energy)-10),s=f(()=>{let u=16,g=e.barcount;return g<=5?u=16:g==6?u=14:g>6&&g<=8?u=13:g==9?u=11:g==10?u=10:u=9,u}),o=f(()=>{let u=12,g=e.barcount;return g<=5?u=12:g==6?u=11:g>6&&g<=8||g==9?u=8:g==10?u=7:u=6,u});function r(u,g){return g.length>o.value?g.substring(0,o.value)+".":g}function l(){return e.autarchy?e.autText+": "+e.autarchy.toLocaleString(void 0)+" %":""}function c(){return"var(--color-pv)"}return(u,g)=>(i(),h("g",{id:"barlabel-"+e.item.name},[n("text",{x:e.xScale(u.item.name)+e.xScale.bandwidth()/2,y:a.value,"font-size":s.value,"text-anchor":"middle",fill:"var(--color-menu)"},$(d(Xe)(u.item.energy*1e3,d(_).decimalPlaces,d(v).graphMode=="year")),9,os),n("text",{x:e.xScale(u.item.name)+e.xScale.bandwidth()/2,y:e.yScale(u.item.energy)-10,"font-size":s.value-2,"text-anchor":"middle",fill:c()},$(l()),9,ss),n("text",{x:e.xScale(u.item.name)+e.xScale.bandwidth()/2,y:e.height-e.margin.bottom-5,"font-size":s.value,"text-anchor":"middle",fill:u.item.color,class:z(u.item.icon.length<=2?"fas":"")},$(r(u.item.name,u.item.icon)),11,rs)],8,ns))}}),is={id:"emBarLabels"},cs=I({__name:"EMLabels",props:{plotdata:{},xScale:{},yScale:{},height:{},margin:{}},setup(t){const e=t;function a(o){if(o.name=="PV"){const r=v.graphMode=="live"||v.graphMode=="day"?N:k,c=(v.graphMode=="live"||v.graphMode=="day"?A:k).evuOut.energy,u=r.pv.energy;return Math.round((u-c)/u*100)}else if(o.name=="Netz"){const r=v.graphMode=="live"||v.graphMode=="day"?N:k,l=v.graphMode=="live"||v.graphMode=="day"?A:k,c=l.evuOut.energy,u=r.evuIn.energy,g=r.pv.energy,y=r.batOut.energy,M=l.batIn.energy;return Math.round((g+y-c-M)/(g+y+u-c-M)*100)}else return o.pvPercentage}function s(o){return o.name=="PV"?"Eigen":"Aut"}return(o,r)=>(i(),h("g",is,[(i(!0),h(E,null,F(e.plotdata,(l,c)=>(i(),h("g",{key:c},[m(ls,{item:l,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":s(l),autarchy:a(l)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128))]))}}),ds={id:"energymeter",class:"p-0 m-0"},us={viewBox:"0 0 500 500"},hs=["transform"],ps=["x"],qt=500,yt=500,Ft=12,gs="Energie",ms=I({__name:"EnergyMeter",props:{usageDetails:{}},setup(t){const e=t,a={top:25,bottom:30,left:25,right:0},s=f(()=>{let l=Object.values(N),c=e.usageDetails,u=Object.values(k),g=[];switch(v.graphMode){default:case"live":case"today":g=l.concat(c).filter(y=>y.energy>0);break;case"day":case"month":case"year":g=u.filter(y=>y.energy>0)}return g}),o=f(()=>mt().range([0,qt-a.left-a.right]).domain(s.value.map(l=>l.name)).padding(.4)),r=f(()=>Be().range([yt-a.bottom-a.top,15]).domain([0,La(s.value,l=>l.energy)]));return(l,c)=>(i(),B(Me,{"full-width":!0},{title:b(()=>[j($(gs))]),buttons:b(()=>[m(da,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,onShiftLeft:d(Vt),onShiftRight:d(sa),onShiftUp:d(ra),onShiftDown:d(la)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"])]),default:b(()=>[n("figure",ds,[(i(),h("svg",us,[n("g",{transform:"translate("+a.left+","+a.top+")"},[m(es,{plotdata:s.value,"x-scale":o.value,"y-scale":r.value,height:yt,margin:a},null,8,["plotdata","x-scale","y-scale"]),m(as,{"y-scale":r.value,width:qt,fontsize:Ft,config:d(_)},null,8,["y-scale","config"]),n("text",{x:-a.left,y:"-15",fill:"var(--color-axis)","font-size":Ft},$(d(v).graphMode=="year"?"MWh":"kWh"),9,ps),m(cs,{plotdata:s.value,"x-scale":o.value,"y-scale":r.value,height:yt,margin:a,config:d(_)},null,8,["plotdata","x-scale","y-scale","config"])],8,hs)]))])]),_:1}))}}),fs={class:"d-flex flex-column align-items-center"},vs={class:"heading mt-1"},_s={class:"mx-1"},bs={class:"d-flex my-0 align-items-center content"},ys=I({__name:"InfoItem",props:{heading:{}},setup(t){const e=t;return(a,s)=>(i(),h("span",fs,[n("span",vs,$(e.heading),1),n("span",_s,[n("span",bs,[te(a.$slots,"default",{},void 0,!0)])])]))}});const oe=W(ys,[["__scopeId","data-v-5512398e"]]),ws={class:"row p-0 m-0"},ks={class:"col p-0 m-0"},$s={class:"d-flex justify-content-between"},Ss={class:"col p-0 m-0",style:{"text-align":"right"}},xs={class:"container-fluid m-0 p-0"},Ps=I({__name:"WbSubwidget",props:{titlecolor:{},fullwidth:{type:Boolean}},setup(t){const e=t,a=f(()=>e.titlecolor?{color:e.titlecolor}:{color:"var(--color-fg)"}),s=f(()=>e.fullwidth?"col-lg-12":"col-lg-4");return(o,r)=>(i(),h("div",{class:z(["px-4 pt-3 mb-2 wb-subwidget m-0",s.value])},[n("div",ws,[n("div",ks,[n("div",$s,[n("h3",{class:"m-0 mb-2",style:R(a.value)},[te(o.$slots,"title",{},void 0,!0)],4),n("div",Ss,[te(o.$slots,"buttons",{},void 0,!0)])])])]),n("div",xs,[te(o.$slots,"default",{},void 0,!0)])],2))}});const ua=W(Ps,[["__scopeId","data-v-263a58f0"]]),Ms=t=>(K("data-v-85517e3c"),t=t(),ee(),t),Cs={class:"col-12 m-0 mb-0 px-0 py-0 configitem"},Is={class:"titlecolumn m-0 p-0 d-flex align-items-center"},Bs=Ms(()=>n("i",{class:"me-1 fa-solid fa-sm fa-circle-info"},null,-1)),Vs={class:"row ms-1 mb-2 p-0 pt-2 d-flex align-items-center"},Ts={class:"col me-1 p-0 ps-4 selectors"},Ls={class:"d-flex justify-content-stretch align-items-center"},Os=I({__name:"ConfigItem",props:{title:{},infotext:{},icon:{},fullwidth:{type:Boolean}},setup(t){const e=t,a=le(!1);function s(){a.value=!a.value}const o=f(()=>{let r={color:"var(--color-charging)"};return a.value&&(r.color="var(--color-battery)"),r});return(r,l)=>(i(),B(ua,{fullwidth:!!r.fullwidth},{default:b(()=>[n("div",Cs,[n("div",Is,[n("span",{class:"d-flex align-items-baseline m-0 p-0",onClick:s},[e.icon?(i(),h("i",{key:0,class:z(["fa-solid fa-sm m-0 p-0 me-2 item-icon",e.icon])},null,2)):w("",!0),j(" "+$(r.title),1)]),n("span",null,[e.infotext?(i(),h("i",{key:0,class:"fa-solid fa-sm fa-circle-question ms-4 me-2",style:R(o.value),onClick:s},null,4)):w("",!0)])]),a.value?(i(),h("p",{key:0,class:"infotext shadow m-0 ps-2 mb-1 p-1",onClick:s},[Bs,j(" "+$(r.infotext),1)])):w("",!0),n("div",Vs,[n("div",Ts,[n("span",Ls,[n("span",null,[te(r.$slots,"default",{},void 0,!0)])])])])])]),_:3},8,["fullwidth"]))}});const O=W(Os,[["__scopeId","data-v-85517e3c"]]),ha=t=>(K("data-v-d228e49b"),t=t(),ee(),t),As={class:"d-flex flex-fill justify-content-between"},Ds=ha(()=>n("i",{class:"fa fa-xl fa-minus-square me-2"},null,-1)),Es=[Ds],Ws=["id","min","max","step"],Gs=ha(()=>n("i",{class:"fa fa-xl fa-plus-square ms-2"},null,-1)),js=[Gs],Us={class:"d-flex justify-content-between align-items-start"},zs={class:"minlabel ps-4"},Ns={class:"valuelabel"},qs={class:"maxlabel pe-4"},Fs=I({__name:"RangeInput",props:{id:{},min:{},max:{},step:{},unit:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,s=f({get(){return a.modelValue},set(l){e("update:modelValue",l)}});function o(){s.value>a.min&&(s.value=s.value-a.step)}function r(){s.value<a.max&&(s.value=s.value+a.step)}return(l,c)=>(i(),h(E,null,[n("span",As,[n("span",{class:"minusButton",onClick:o},Es),Te(n("input",{id:l.id,"onUpdate:modelValue":c[0]||(c[0]=u=>s.value=u),type:"range",class:"form-range flex-fill",min:l.min,max:l.max,step:l.step},null,8,Ws),[[Xt,s.value,void 0,{number:!0}]]),n("span",{class:"plusButton",onClick:r},js)]),n("span",Us,[n("span",zs,$(l.min),1),n("span",Ns,$(s.value)+" "+$(l.unit),1),n("span",qs,$(l.max),1)])],64))}});const _e=W(Fs,[["__scopeId","data-v-d228e49b"]]),Rs=["id","value"],Hs=I({__name:"RadioInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,s=f({get(){return a.modelValue},set(l){e("update:modelValue",l)}});function o(l){return a.options[l][2]?{color:a.options[l][2]}:{color:"var(--color-fg)"}}function r(l){let c=l.target;for(;c&&!c.value&&c.parentElement;)c=c.parentElement;c.value&&(s.value=c.value)}return(l,c)=>(i(),h("div",null,[(i(!0),h(E,null,F(l.options,(u,g)=>(i(),h("button",{id:"radio-"+u[1],key:g,class:z(["btn btn-outline-secondary radiobutton me-2 mb-0 px-2",u[1]==s.value?"active":""]),value:u[1],style:R(o(g)),onClick:r},[n("span",{style:R(o(g))},[u[3]?(i(),h("i",{key:0,class:z(["fa-solid",u[3]])},null,2)):w("",!0),j(" "+$(u[0]),1)],4)],14,Rs))),128))]))}});const Ve=W(Hs,[["__scopeId","data-v-df222cbe"]]),Js=t=>(K("data-v-ccd11e7e"),t=t(),ee(),t),Qs={class:"mt-2"},Ys=Js(()=>n("p",{class:"heading ms-1"},"Sofortladen:",-1)),Zs={key:0},Xs=I({__name:"CPConfigInstant",props:{chargepoint:{}},setup(t){const a=le(t.chargepoint),s=[{name:"keine",id:"none"},{name:"EV-SoC",id:"soc"},{name:"Energiemenge",id:"amount"}];return(o,r)=>(i(),h("div",Qs,[Ys,m(O,{title:"Stromstärke",icon:"fa-bolt",fullwidth:!0},{default:b(()=>[m(_e,{id:"targetCurrent",modelValue:a.value.instantTargetCurrent,"onUpdate:modelValue":r[0]||(r[0]=l=>a.value.instantTargetCurrent=l),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1}),a.value.instantChargeLimitMode!="none"?(i(),h("hr",Zs)):w("",!0),m(O,{title:"Begrenzung",icon:"fa-hand"},{default:b(()=>[m(Ve,{modelValue:a.value.instantChargeLimitMode,"onUpdate:modelValue":r[1]||(r[1]=l=>a.value.instantChargeLimitMode=l),options:s.map(l=>[l.name,l.id])},null,8,["modelValue","options"])]),_:1}),a.value.instantChargeLimitMode=="soc"?(i(),B(O,{key:1,title:"Maximaler SoC",icon:"fa-sliders"},{default:b(()=>[m(_e,{id:"maxSoc",modelValue:a.value.instantTargetSoc,"onUpdate:modelValue":r[2]||(r[2]=l=>a.value.instantTargetSoc=l),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):w("",!0),a.value.instantChargeLimitMode=="amount"?(i(),B(O,{key:2,title:"Zu ladende Energie",icon:"fa-sliders"},{default:b(()=>[m(_e,{id:"maxEnergy",modelValue:a.value.instantMaxEnergy,"onUpdate:modelValue":r[3]||(r[3]=l=>a.value.instantMaxEnergy=l),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):w("",!0)]))}});const Ks=W(Xs,[["__scopeId","data-v-ccd11e7e"]]),er={class:"form-check form-switch"},me=I({__name:"SwitchInput",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,s=f({get(){return a.modelValue},set(o){e("update:modelValue",o)}});return(o,r)=>(i(),h("div",er,[Te(n("input",{"onUpdate:modelValue":r[0]||(r[0]=l=>s.value=l),class:"form-check-input",type:"checkbox",role:"switch"},null,512),[[vt,s.value]])]))}}),pa=t=>(K("data-v-daf11c39"),t=t(),ee(),t),tr={class:"pt-2"},ar=pa(()=>n("p",{class:"heading ms-1"},"PV-Laden:",-1)),nr={class:"form-check form-switch"},or=pa(()=>n("hr",null,null,-1)),sr={key:2},rr=I({__name:"CPConfigPv",props:{chargepoint:{}},setup(t){const a=le(t.chargepoint),s=f({get(){return a.value.pvMinCurrent>5},set(r){r?a.value.pvMinCurrent=6:a.value.pvMinCurrent=0}}),o=f({get(){return a.value.pvMinSoc>0},set(r){r?a.value.pvMinSoc=50:a.value.pvMinSoc=0}});return(r,l)=>(i(),h("div",tr,[ar,m(O,{title:"Maximaler Ladestand",icon:"fa-battery-three-quarters",fullwidth:!0},{default:b(()=>[m(_e,{id:"maxSoc",modelValue:a.value.pvMaxSoc,"onUpdate:modelValue":l[0]||(l[0]=c=>a.value.pvMaxSoc=c),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1}),m(O,{title:"Einspeisegrenze beachten",icon:"fa-hand",fullwidth:!0},{default:b(()=>[n("div",nr,[Te(n("input",{id:"feedInLimitSwitch","onUpdate:modelValue":l[1]||(l[1]=c=>a.value.pvFeedInLimit=c),class:"form-check-input",type:"checkbox",role:"switch"},null,512),[[vt,a.value.pvFeedInLimit]])])]),_:1}),or,m(O,{title:"Min-SoC-Laden",icon:"fa-battery-half",infotext:d(Se).minsoc,fullwidth:!0},{default:b(()=>[m(me,{modelValue:o.value,"onUpdate:modelValue":l[2]||(l[2]=c=>o.value=c)},null,8,["modelValue"])]),_:1},8,["infotext"]),o.value?(i(),B(O,{key:0,title:"...bis SoC",fullwidth:!0},{info:b(()=>[j($(d(Se).minsoc),1)]),default:b(()=>[m(_e,{id:"minSoc",modelValue:a.value.pvMinSoc,"onUpdate:modelValue":l[3]||(l[3]=c=>a.value.pvMinSoc=c),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):w("",!0),o.value?(i(),B(O,{key:1,title:"...mit Ladestrom",fullwidth:!0},{default:b(()=>[m(_e,{id:"minSocCurrent",modelValue:a.value.pvMinSocCurrent,"onUpdate:modelValue":l[4]||(l[4]=c=>a.value.pvMinSocCurrent=c),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1})):w("",!0),s.value||o.value?(i(),h("hr",sr)):w("",!0),m(O,{title:"Min+PV-Laden",icon:"fa-bolt",infotext:d(Se).minpv,fullwidth:!0},{default:b(()=>[m(me,{modelValue:s.value,"onUpdate:modelValue":l[5]||(l[5]=c=>s.value=c)},null,8,["modelValue"])]),_:1},8,["infotext"]),s.value?(i(),B(O,{key:3,title:"...bei Ladestrom (minimal)",fullwidth:!0},{default:b(()=>[m(_e,{id:"minCurrent",modelValue:a.value.pvMinCurrent,"onUpdate:modelValue":l[6]||(l[6]=c=>a.value.pvMinCurrent=c),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1})):w("",!0)]))}});const lr=W(rr,[["__scopeId","data-v-daf11c39"]]),ga=t=>(K("data-v-1a32bb24"),t=t(),ee(),t),ir=["id"],cr={class:"modal-dialog modal-lg modal-fullscreen-lg-down"},dr={class:"modal-content"},ur={class:"modal-header"},hr={class:"modal-title"},pr=ga(()=>n("button",{type:"button",class:"btn-close buttonTextSize d-flex justify-content-center pt-3 pb-0","data-bs-dismiss":"modal"},[n("i",{class:"fa-solid fa-lg fa-rectangle-xmark m-0 p-0"})],-1)),gr={class:"modal-body",style:{"background-color":"var(--color-bg)"}},mr=ga(()=>n("button",{class:"btn btn-secondary float-end mt-3 ms-1","data-bs-dismiss":"modal"}," Schließen ",-1)),fr=I({__name:"ModalComponent",props:{modalId:{}},setup(t){const e=t;return Ue(()=>{}),(a,s)=>(i(),h("div",{id:e.modalId,class:"modal fade"},[n("div",cr,[n("div",dr,[n("div",ur,[n("h3",hr,[te(a.$slots,"title",{},void 0,!0)]),pr]),n("div",gr,[te(a.$slots,"default",{},void 0,!0),mr])])])],8,ir))}});const Lt=W(fr,[["__scopeId","data-v-1a32bb24"]]),vr=["value"],_r=I({__name:"SelectInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,s=f({get(){return a.modelValue},set(o){e("update:modelValue",o)}});return(o,r)=>Te((i(),h("select",{id:"selectme","onUpdate:modelValue":r[0]||(r[0]=l=>s.value=l),class:"form-select"},[(i(!0),h(E,null,F(o.options,(l,c)=>(i(),h("option",{key:c,value:l[1]},$(l[0]),9,vr))),128))],512)),[[Oa,s.value]])}});const Ot=W(_r,[["__scopeId","data-v-5e33ce1f"]]),br=["id","onUpdate:modelValue","value"],yr=["for"],wr=I({__name:"CheckBoxInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,s=f({get(){return a.modelValue},set(r){console.log("SET CHECKBOX"),e("update:modelValue",r)}});function o(r){return s.value[r]?{color:"var(--color-pv)"}:{color:"var(--color-menu)"}}return(r,l)=>(i(!0),h(E,null,F(r.options,(c,u)=>(i(),h("div",{key:u},[Te(n("input",{id:"check"+u,"onUpdate:modelValue":g=>s.value[u]=g,class:"form-check-input",type:"checkbox",value:c},null,8,br),[[vt,s.value[u]]]),n("label",{class:"form-check-label px-2",for:"check"+u,style:R(o(u))},$(r.options[u]),13,yr)]))),128))}});const ma=W(wr,[["__scopeId","data-v-534700e0"]]),kr=I({__name:"TimeInput",props:{modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,s=f({get(){return a.modelValue},set(o){e("update:modelValue",o)}});return(o,r)=>Te((i(),h("input",{"onUpdate:modelValue":r[0]||(r[0]=l=>s.value=l),type:"time",class:"form-control",name:"t"},null,512)),[[Xt,s.value]])}});const Pt=W(kr,[["__scopeId","data-v-51c81cc3"]]),$r={class:"container-fluid p-0 m-0"},Sr={class:"row mt-2"},xr={class:"col d-flex justify-content-end"},Pr=I({__name:"CPEditSchedule",props:{chargeTemplateId:{},planId:{}},emits:["deletePlan","abort","savePlan"],setup(t){const e=t,a=[["Einmalig","once"],["Täglich","daily"],["Wöchentlich","weekly"]],s=["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],o=f(()=>ue[e.chargeTemplateId]),r=f(()=>{let l=o.value.chargemode.scheduled_charging.plans[e.planId];return l||aa()});return(l,c)=>(i(),h("div",$r,[m(O,{title:"Ladestand",fullwidth:!0},{default:b(()=>[m(_e,{id:"soc",modelValue:r.value.soc,"onUpdate:modelValue":c[0]||(c[0]=u=>r.value.soc=u),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1}),m(O,{title:"Zielzeit beachten",fullwidth:!0},{default:b(()=>[m(me,{modelValue:r.value.timed,"onUpdate:modelValue":c[1]||(c[1]=u=>r.value.timed=u)},null,8,["modelValue"])]),_:1}),m(O,{title:"Uhrzeit",fullwidth:!0},{default:b(()=>[m(Pt,{modelValue:r.value.time,"onUpdate:modelValue":c[2]||(c[2]=u=>r.value.time=u)},null,8,["modelValue"])]),_:1}),m(O,{title:"Wiederholungen",fullwidth:!0},{default:b(()=>[m(Ot,{modelValue:r.value.frequency.selected,"onUpdate:modelValue":c[3]||(c[3]=u=>r.value.frequency.selected=u),options:a},null,8,["modelValue"])]),_:1}),r.value.frequency.selected=="once"?(i(),B(O,{key:0,title:"Gültig ab",fullwidth:!0},{default:b(()=>[m(Ke,{modelValue:r.value.frequency.once[0],"onUpdate:modelValue":c[4]||(c[4]=u=>r.value.frequency.once[0]=u)},null,8,["modelValue"])]),_:1})):w("",!0),r.value.frequency.selected=="once"?(i(),B(O,{key:1,title:"Gültig bis",fullwidth:!0},{default:b(()=>[m(Ke,{modelValue:r.value.frequency.once[1],"onUpdate:modelValue":c[5]||(c[5]=u=>r.value.frequency.once[1]=u)},null,8,["modelValue"])]),_:1})):w("",!0),r.value.frequency.selected=="weekly"?(i(),B(O,{key:2,title:"Wochentage",fullwidth:!0},{default:b(()=>[m(ma,{modelValue:r.value.frequency.weekly,"onUpdate:modelValue":c[6]||(c[6]=u=>r.value.frequency.weekly=u),options:s},null,8,["modelValue"])]),_:1})):w("",!0),n("div",Sr,[n("div",xr,[n("button",{class:"btn btn-danger","data-bs-dismiss":"modal",onClick:c[7]||(c[7]=u=>l.$emit("deletePlan",l.planId))}," Löschen "),n("button",{class:"btn btn-warning ms-1","data-bs-dismiss":"modal",onClick:c[8]||(c[8]=u=>l.$emit("abort"))}," Abbrechen "),n("button",{class:"btn btn-success float-end ms-1","data-bs-dismiss":"modal",onClick:c[9]||(c[9]=u=>l.$emit("savePlan",l.planId))}," Speichern ")])])]))}});const Mr=W(Pr,[["__scopeId","data-v-119e0317"]]),Le=t=>(K("data-v-399182a8"),t=t(),ee(),t),Cr=Le(()=>n("p",{class:"heading ms-1 pt-2"},"Zielladen:",-1)),Ir={class:"table table-borderless"},Br=Le(()=>n("thead",null,[n("tr",null,[n("th",{class:"tableheader"},"Ziel-SoC"),n("th",{class:"tableheader"},"Zeit"),n("th",{class:"tableheader"},"Wiederholung"),n("th",{class:"tableheader"})])],-1)),Vr={class:"tablecell"},Tr={class:"tablecell"},Lr={class:"tablecell"},Or={class:"tablecell left"},Ar=["data-bs-target","onClick"],Dr=Le(()=>n("i",{class:"fas fa-lg fa-pen ms-2"},null,-1)),Er=[Dr],Wr=Le(()=>n("td",{class:"emptycell"},null,-1)),Gr=Le(()=>n("td",{class:"emptycell"},null,-1)),jr=Le(()=>n("td",{class:"emptycell"},null,-1)),Ur={class:"right"},zr=["data-bs-target"],Nr=Le(()=>n("i",{class:"fa-solid fa-xl fa-square-plus ms-2"},null,-1)),qr=[Nr],Fr=I({__name:"CPConfigScheduled",props:{chargeTemplate:{},chargeTemplateId:{}},setup(t){const e=t,a={daily:"Täglich",once:"Einmal",weekly:"Wöchentlich"},s="schedulesettingmodal"+e.chargeTemplateId,o=Q(["0"]),r=f(()=>{let P=e.chargeTemplate.chargemode.scheduled_charging.plans;return P||{}});function l(P){return r.value[P].timed?r.value[P].time:"-"}function c(P){o[0]=P}function u(){na(e.chargeTemplateId)}function g(){u()}function y(){console.log("abort edit")}function M(P){delete ue[e.chargeTemplateId].chargemode.scheduled_charging.plans[P],u()}function C(){let P=aa();e.chargeTemplate.chargemode.scheduled_charging.plans||(ue[e.chargeTemplateId].chargemode.scheduled_charging.plans={});let x=0;Object.keys(r.value).forEach(U=>{+U>x&&(x=+U)}),x=x+1,ue[e.chargeTemplateId].chargemode.scheduled_charging.plans[x.toString()]=P,c(x.toString()),console.log(r.value),S()}function S(){let P=document.getElementById(s);P?new Aa(P).show():console.log("NO MODAL ELEMENT")}return(P,x)=>(i(),h(E,null,[Cr,n("table",Ir,[Br,n("tbody",null,[(i(!0),h(E,null,F(Object.keys(r.value),U=>(i(),h("tr",{key:U},[n("td",Vr,$(r.value[U].soc)+" %",1),n("td",Tr,$(l(U)),1),n("td",Lr,$(a[r.value[U].frequency.selected]),1),n("td",Or,[n("span",{class:"editButton","data-bs-toggle":"modal","data-bs-target":"#"+s,onClick:Y=>c(U)},Er,8,Ar)])]))),128)),n("tr",null,[Wr,Gr,jr,n("td",Ur,[n("span",{class:"addButton","data-bs-target":"#"+s,onClick:C},qr,8,zr)])])])]),(i(!0),h(E,null,F(o,U=>(i(),B(Lt,{key:U,"modal-id":s},{title:b(()=>[j(" Zielladen - Parameter ")]),default:b(()=>[m(Mr,{"charge-template-id":P.chargeTemplateId,"plan-id":U,onSavePlan:g,onDeletePlan:M,onAbort:y},null,8,["charge-template-id","plan-id"])]),_:2},1024))),128))],64))}});const Rr=W(Fr,[["__scopeId","data-v-399182a8"]]),Hr={class:"container-fluid p-0 m-0"},Jr={class:"row"},Qr={class:"col d-flex justify-content-end"},Yr=I({__name:"CPEditTimeplan",props:{chargeTemplateId:{},planId:{}},emits:["deletePlan","abort","savePlan"],setup(t){const e=t,a=[["Einmalig","once"],["Täglich","daily"],["Wöchentlich","weekly"]],s=["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],o=f(()=>ue[e.chargeTemplateId]),r=f(()=>{let l=o.value.time_charging.plans[e.planId];return l||ta()});return(l,c)=>(i(),h("div",Hr,[m(O,{title:"Beginn",fullwidth:!0},{default:b(()=>[m(Pt,{modelValue:r.value.time[0],"onUpdate:modelValue":c[0]||(c[0]=u=>r.value.time[0]=u)},null,8,["modelValue"])]),_:1}),m(O,{title:"Ende",fullwidth:!0},{default:b(()=>[m(Pt,{modelValue:r.value.time[1],"onUpdate:modelValue":c[1]||(c[1]=u=>r.value.time[1]=u)},null,8,["modelValue"])]),_:1}),m(O,{title:"Ladestrom",fullwidth:!0},{default:b(()=>[m(_e,{id:"current",modelValue:r.value.current,"onUpdate:modelValue":c[2]||(c[2]=u=>r.value.current=u),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1}),m(O,{title:"Wiederholungen",fullwidth:!0},{default:b(()=>[m(Ot,{modelValue:r.value.frequency.selected,"onUpdate:modelValue":c[3]||(c[3]=u=>r.value.frequency.selected=u),options:a},null,8,["modelValue"])]),_:1}),r.value.frequency.selected=="once"?(i(),B(O,{key:0,title:"Gültig ab",fullwidth:!0},{default:b(()=>[m(Ke,{modelValue:r.value.frequency.once[0],"onUpdate:modelValue":c[4]||(c[4]=u=>r.value.frequency.once[0]=u)},null,8,["modelValue"])]),_:1})):w("",!0),r.value.frequency.selected=="once"?(i(),B(O,{key:1,title:"Gültig bis",fullwidth:!0},{default:b(()=>[m(Ke,{modelValue:r.value.frequency.once[1],"onUpdate:modelValue":c[5]||(c[5]=u=>r.value.frequency.once[1]=u)},null,8,["modelValue"])]),_:1})):w("",!0),r.value.frequency.selected=="weekly"?(i(),B(O,{key:2,title:"Wochentage",fullwidth:!0},{default:b(()=>[m(ma,{modelValue:r.value.frequency.weekly,"onUpdate:modelValue":c[6]||(c[6]=u=>r.value.frequency.weekly=u),options:s},null,8,["modelValue"])]),_:1})):w("",!0),n("div",Jr,[n("div",Qr,[n("button",{class:"btn btn-danger",onClick:c[7]||(c[7]=u=>l.$emit("deletePlan",l.planId))}," Löschen "),n("button",{class:"btn btn-warning ms-1",onClick:c[8]||(c[8]=u=>l.$emit("abort"))}," Abbrechen "),n("button",{class:"btn btn-success float-end ms-1",onClick:c[9]||(c[9]=u=>l.$emit("savePlan",l.planId))}," Speichern ")])])]))}});const Zr=W(Yr,[["__scopeId","data-v-dbb0f7ee"]]),Ce=t=>(K("data-v-674bed04"),t=t(),ee(),t),Xr=Ce(()=>n("p",{class:"heading ms-1 pt-2"},"Zeitpläne:",-1)),Kr={class:"table table-borderless"},el=Ce(()=>n("thead",null,[n("tr",null,[n("th",{class:"tableheader"},"Von"),n("th",{class:"tableheader"},"Bis"),n("th",{class:"tableheader"},"Ladestrom"),n("th",{class:"tableheader"},"Wiederholung"),n("th",{class:"tableheader right"})])],-1)),tl={class:"tablecell"},al={class:"tablecell"},nl={class:"tablecell"},ol={class:"tablecell"},sl={class:"tablecell left"},rl=["onClick"],ll=Ce(()=>n("i",{class:"fas fa-lg fa-pen ms-2"},null,-1)),il=[ll],cl=Ce(()=>n("td",{class:"emptycell"},null,-1)),dl=Ce(()=>n("td",{class:"emptycell"},null,-1)),ul=Ce(()=>n("td",{class:"emptycell"},null,-1)),hl=Ce(()=>n("td",{class:"emptycell"},null,-1)),pl=Ce(()=>n("i",{class:"fa-solid fa-xl fa-square-plus ms-2"},null,-1)),gl=[pl],ml=I({__name:"CPConfigTimed",props:{chargeTemplate:{},chargeTemplateId:{}},setup(t){const e=t,a={daily:"Täglich",once:"Einmal",weekly:"Wöchentlich"},s=Q(["0"]);function o(C){s[0]=C}const r=le(!1);function l(){na(e.chargeTemplateId)}function c(){l(),r.value=!1}function u(){console.log("abort edit"),r.value=!1}function g(C){delete ue[e.chargeTemplateId].time_charging.plans[C],l(),r.value=!1}function y(){let C=ta();e.chargeTemplate.time_charging.plans||(ue[e.chargeTemplateId].time_charging.plans={});let S=0;Object.keys(M.value).forEach(P=>{+P>S&&(S=+P)}),S=S+1,ue[e.chargeTemplateId].time_charging.plans[S.toString()]=C,o(S.toString()),r.value=!0}const M=f(()=>{let C=e.chargeTemplate.time_charging.plans;return C||{}});return(C,S)=>(i(),h(E,null,[Xr,n("table",Kr,[el,n("tbody",null,[(i(!0),h(E,null,F(Object.keys(M.value),P=>(i(),h("tr",{key:P},[n("td",tl,$(M.value[P].time[0]),1),n("td",al,$(M.value[P].time[1]),1),n("td",nl,$(M.value[P].current)+" A",1),n("td",ol,$(a[M.value[P].frequency.selected]),1),n("td",sl,[n("span",{class:"editButton",editPlan:"true",onClick:x=>o(P)},il,8,rl)])]))),128)),n("tr",null,[cl,dl,ul,hl,n("td",{class:"tablecell right"},[n("span",{class:"addButton",onClick:y},gl)])])])]),r.value?(i(),B(Me,{key:0,"full-width":!0},{title:b(()=>[j(" Zeitplan bearbeiten ")]),default:b(()=>[m(Zr,{"charge-template-id":C.chargeTemplateId,"plan-id":s[0],onSavePlan:c,onDeletePlan:g,onAbort:u},null,8,["charge-template-id","plan-id"])]),_:1})):w("",!0)],64))}});const fl=W(ml,[["__scopeId","data-v-674bed04"]]),vl={class:"settingsheader mt-2 ms-1"},_l=I({__name:"CPConfigVehicle",props:{vehicleId:{}},setup(t){const e=t;return(a,s)=>(i(),h(E,null,[n("p",vl," Profile für "+$(d(X)[e.vehicleId].name)+": ",1),m(O,{title:"Ladeprofil",icon:"fa-sliders",fullwidth:!0},{default:b(()=>[m(Ve,{modelValue:d(X)[e.vehicleId].chargeTemplateId,"onUpdate:modelValue":s[0]||(s[0]=o=>d(X)[e.vehicleId].chargeTemplateId=o),modelModifiers:{number:!0},options:Object.keys(d(ue)).map(o=>[d(ue)[+o].name,o])},null,8,["modelValue","options"])]),_:1}),m(O,{title:"Fahrzeug-Vorlage",icon:"fa-sliders",fullwidth:!0},{default:b(()=>[m(Ve,{modelValue:d(X)[e.vehicleId].evTemplateId,"onUpdate:modelValue":s[1]||(s[1]=o=>d(X)[e.vehicleId].evTemplateId=o),modelModifiers:{number:!0},options:Object.keys(d(xt)).map(o=>[d(xt)[+o].name,o])},null,8,["modelValue","options"])]),_:1})],64))}});const bl=W(_l,[["__scopeId","data-v-fcb57a44"]]),yl=t=>(K("data-v-29abd227"),t=t(),ee(),t),wl=yl(()=>n("p",{class:"settingsheader mt-2 ms-1"},"Ladepunkt:",-1)),kl=I({__name:"CPChargeConfig",props:{chargepoint:{}},emits:["closeConfig"],setup(t){const a=t.chargepoint;return(s,o)=>(i(),h(E,null,[wl,m(O,{title:"Lademodus",icon:"fa-charging-station",infotext:d(Se).chargemode,fullwidth:!0},{default:b(()=>[m(Ve,{modelValue:d(a).chargeMode,"onUpdate:modelValue":o[0]||(o[0]=r=>d(a).chargeMode=r),options:Object.keys(d(se)).map(r=>[d(se)[r].name,r,d(se)[r].color,d(se)[r].icon])},null,8,["modelValue","options"])]),_:1},8,["infotext"]),m(O,{title:"Fahrzeug",icon:"fa-car",infotext:d(Se).vehicle,fullwidth:!0},{default:b(()=>[m(Ve,{modelValue:d(a).connectedVehicle,"onUpdate:modelValue":o[1]||(o[1]=r=>d(a).connectedVehicle=r),modelModifiers:{number:!0},options:Object.values(d(X)).map(r=>[r.name,r.id])},null,8,["modelValue","options"])]),_:1},8,["infotext"]),m(O,{title:"Sperren",icon:"fa-lock",infotext:d(Se).locked,fullwidth:!0},{default:b(()=>[m(me,{modelValue:d(a).isLocked,"onUpdate:modelValue":o[2]||(o[2]=r=>d(a).isLocked=r)},null,8,["modelValue"])]),_:1},8,["infotext"]),m(O,{title:"Priorität",icon:"fa-star",infotext:d(Se).priority,fullwidth:!0},{default:b(()=>[m(me,{modelValue:d(a).hasPriority,"onUpdate:modelValue":o[3]||(o[3]=r=>d(a).hasPriority=r)},null,8,["modelValue"])]),_:1},8,["infotext"]),m(O,{title:"Zeitplan",icon:"fa-clock",infotext:d(Se).timeplan,fullwidth:!0},{default:b(()=>[m(me,{modelValue:d(a).scheduledCharging,"onUpdate:modelValue":o[4]||(o[4]=r=>d(a).scheduledCharging=r)},null,8,["modelValue"])]),_:1},8,["infotext"])],64))}});const $l=W(kl,[["__scopeId","data-v-29abd227"]]),ze=t=>(K("data-v-963883cd"),t=t(),ee(),t),Sl={class:"status-string"},xl={style:{color:"red"}},Pl={class:"m-0 mt-4 p-0"},Ml={class:"nav nav-tabs nav-justified mx-1 mt-1",role:"tablist"},Cl=["data-bs-target"],Il=ze(()=>n("i",{class:"fa-solid fa-charging-station"},null,-1)),Bl=[Il],Vl=["data-bs-target"],Tl=ze(()=>n("i",{class:"fa-solid fa-lg fa-bolt"},null,-1)),Ll=[Tl],Ol=["data-bs-target"],Al=ze(()=>n("i",{class:"fa-solid fa-solar-panel me-1"},null,-1)),Dl=[Al],El=["data-bs-target"],Wl=ze(()=>n("i",{class:"fa-solid fa-bullseye me-1"},null,-1)),Gl=[Wl],jl=["data-bs-target"],Ul=ze(()=>n("i",{class:"fa-solid fa-clock"},null,-1)),zl=[Ul],Nl=["data-bs-target"],ql=ze(()=>n("i",{class:"fa-solid fa-rectangle-list"},null,-1)),Fl=[ql],Rl={id:"settingsPanes",class:"tab-content mx-1 p-1 pb-3"},Hl=["id"],Jl=["id"],Ql=["id"],Yl=["id"],Zl=["id"],Xl=["id"],Kl=I({__name:"CPChargeConfigPanel",props:{chargepoint:{}},emits:["closeConfig"],setup(t){const a=t.chargepoint,s=f(()=>ue[a.chargeTemplate]),o=f(()=>a.id);return Ue(()=>{}),(r,l)=>(i(),h(E,null,[m(O,{title:"Status",icon:"fa-info-circle",fullwidth:!0},{default:b(()=>[n("span",Sl,$(d(a).stateStr),1)]),_:1}),d(a).faultState!=0?(i(),B(O,{key:0,title:"Fehler"},{default:b(()=>[n("span",xl,$(d(a).faultStr),1)]),_:1})):w("",!0),n("div",Pl,[n("nav",Ml,[n("a",{class:"nav-link active","data-bs-toggle":"tab","data-bs-target":"#chargeSettings"+o.value},Bl,8,Cl),r.chargepoint.chargeMode=="instant_charging"?(i(),h("a",{key:0,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#instantSettings"+o.value},Ll,8,Vl)):w("",!0),r.chargepoint.chargeMode=="pv_charging"?(i(),h("a",{key:1,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#pvSettings"+o.value},Dl,8,Ol)):w("",!0),r.chargepoint.chargeMode=="scheduled_charging"?(i(),h("a",{key:2,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#scheduledSettings"+o.value},Gl,8,El)):w("",!0),r.chargepoint.scheduledCharging?(i(),h("a",{key:3,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#timeSettings"+o.value},zl,8,jl)):w("",!0),n("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#carSettings"+o.value},Fl,8,Nl)]),n("div",Rl,[n("div",{id:"chargeSettings"+o.value,class:"tab-pane active",role:"tabpanel","aria-labelledby":"instant-tab"},[m($l,{chargepoint:r.chargepoint},null,8,["chargepoint"])],8,Hl),n("div",{id:"instantSettings"+o.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"instant-tab"},[m(Ks,{chargepoint:d(a),vehicles:d(X),"charge-templates":d(ue)},null,8,["chargepoint","vehicles","charge-templates"])],8,Jl),n("div",{id:"pvSettings"+o.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"pv-tab"},[m(lr,{chargepoint:d(a),vehicles:d(X),"charge-templates":d(ue)},null,8,["chargepoint","vehicles","charge-templates"])],8,Ql),n("div",{id:"scheduledSettings"+o.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"scheduled-tab"},[s.value!=null?(i(),B(Rr,{key:0,"charge-template":s.value,"charge-template-id":d(a).chargeTemplate},null,8,["charge-template","charge-template-id"])):w("",!0)],8,Yl),n("div",{id:"timeSettings"+o.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"time-tab"},[s.value!=null?(i(),B(fl,{key:0,"charge-template":s.value,"charge-template-id":d(a).chargeTemplate},null,8,["charge-template","charge-template-id"])):w("",!0)],8,Zl),n("div",{id:"carSettings"+o.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"car-tab"},[d(X)[d(a).connectedVehicle]!=null?(i(),B(bl,{key:0,"vehicle-id":d(a).connectedVehicle},null,8,["vehicle-id"])):w("",!0)],8,Xl)])])],64))}});const ht=W(Kl,[["__scopeId","data-v-963883cd"]]),ei=I({__name:"BatterySymbol",props:{soc:{}},setup(t){const e=t,a=f(()=>e.soc<=10?"fa-battery-empty":e.soc<50?"fa-battery-quarter":e.soc<75?"fa-battery-half":e.soc<95?"fa-battery-three-quarters":"fa-battery-full");return(s,o)=>(i(),h("span",null,[n("i",{class:z(["fa batIcon",a.value])},null,2),j(" "+$(s.soc+"%"),1)]))}});const At=W(ei,[["__scopeId","data-v-49be699a"]]),fa=I({__name:"FormatWattH",props:{wattH:{}},setup(t){const e=t,a=f(()=>Xe(e.wattH,_.decimalPlaces));return(s,o)=>(i(),h("span",null,$(a.value),1))}}),ti=t=>(K("data-v-349e7414"),t=t(),ee(),t),ai={class:"wb-widget p-0 m-0 shadow"},ni={class:"d-flex justify-content-between"},oi={class:"m-4 mb-3"},si=ti(()=>n("div",{class:"p-0"},"(title goes here)",-1)),ri={class:"p-4 pb-0 col-4 m-0",style:{"text-align":"right"}},li={class:"container-fluid p-0"},ii=I({__name:"WbWidgetFlex",props:{variableWidth:{type:Boolean},fullWidth:{type:Boolean}},setup(t){const e=t,a=f(()=>e.fullWidth?"col-12":e.variableWidth&&_.preferWideBoxes?"col-lg-6":"col-lg-4");return(s,o)=>(i(),h("div",{class:z(["p-2 m-0 d-flex",a.value])},[n("div",ai,[n("div",ni,[n("h3",oi,[te(s.$slots,"title",{},()=>[si],!0),te(s.$slots,"subtitle",{},void 0,!0)]),n("div",ri,[te(s.$slots,"buttons",{},void 0,!0)])]),n("div",li,[te(s.$slots,"default",{},void 0,!0)])])],2))}});const pt=W(ii,[["__scopeId","data-v-349e7414"]]),nt=t=>(K("data-v-090d0c53"),t=t(),ee(),t),ci=nt(()=>n("span",{class:"fas fa-charging-station"}," ",-1)),di=nt(()=>n("span",{class:"fa-solid fa-lg ps-1 fa-ellipsis-vertical"},null,-1)),ui=[di],hi={key:0},pi={class:"col m-0 mb-1 p-0 d-flex justify-content-between"},gi={class:"col m-0 p-0 d-flex justify-content-between"},mi={class:"row m-0 p-1 mt-3 mb-0"},fi={class:"col d-flex justify-content-center"},vi={key:1,class:"row m-0 mt-0 p-0"},_i={class:"col m-0 p-0"},bi={key:0},yi={class:"col"},wi=nt(()=>n("i",{class:"fa-solid fa-sm fa-car me-2"},null,-1)),ki={key:0,class:"me-1 fa-solid fa-xs fa-star ps-1"},$i={class:"row m-0 p-1 pt-2 mb-3"},Si={class:"m-0 p-0 d-flex justify-content-between"},xi={key:0,class:"me-1 fa-solid fa-xs fa-clock ps-1"},Pi=nt(()=>n("span",{class:"fas fa-gear"}," ",-1)),Mi=nt(()=>n("span",{class:"fa-solid fa-lg ps-1 fa-circle-check"},null,-1)),Ci=[Mi],Ii=I({__name:"CPChargePoint",props:{chargepoint:{},fullWidth:{type:Boolean}},setup(t){const e=t,a=f({get(){return e.chargepoint.chargeMode},set(C){T[e.chargepoint.id].chargeMode=C}}),s=f(()=>(Math.round(e.chargepoint.current*10)/10).toLocaleString(void 0)+" A"),o=f(()=>Math.round(e.chargepoint.rangeCharged).toString()+" "+e.chargepoint.rangeUnit),r=f(()=>e.chargepoint.isLocked?"Gesperrt":e.chargepoint.isCharging?"Lädt":e.chargepoint.isPluggedIn?"Bereit":"Frei"),l=f(()=>e.chargepoint.isLocked?"var(--color-evu)":e.chargepoint.isCharging?"var(--color-charging)":e.chargepoint.isPluggedIn?"var(--color-battery)":"var(--color-axis)"),c=f(()=>{let C="";return e.chargepoint.isLocked?C="fa-lock":e.chargepoint.isCharging?C=" fa-bolt":e.chargepoint.isPluggedIn&&(C="fa-plug"),"fa "+C}),u=f(()=>{switch(e.chargepoint.chargeMode){case"stop":return{color:"var(--fg)"};default:return{color:se[e.chargepoint.chargeMode].color}}}),g=f(()=>e.chargepoint.soc),y=f(()=>({color:e.chargepoint.color})),M=le(!1);return(C,S)=>(i(),h(E,null,[M.value?w("",!0):(i(),B(Me,{key:0,"variable-width":!0,"full-width":e.fullWidth},{title:b(()=>[n("span",{style:R(y.value),onClick:S[0]||(S[0]=P=>M.value=!M.value)},[ci,j(" "+$(e.chargepoint.name),1)],4)]),buttons:b(()=>[n("span",{class:"ms-2 pt-1",style:R(u.value),onClick:S[1]||(S[1]=P=>M.value=!M.value)},ui,4)]),footer:b(()=>[M.value?w("",!0):(i(),h("div",bi,[n("div",{class:"row",onClick:S[5]||(S[5]=P=>M.value=!M.value)},[n("div",yi,[n("h3",null,[wi,j(" "+$(C.chargepoint.vehicleName)+" ",1),C.chargepoint.hasPriority?(i(),h("span",ki)):w("",!0)])])]),n("div",$i,[n("div",Si,[m(oe,{heading:"Ladestand:"},{default:b(()=>[C.chargepoint.isSocConfigured?(i(),B(At,{key:0,soc:g.value,class:"me-2"},null,8,["soc"])):w("",!0),C.chargepoint.isSocManual?(i(),h("i",{key:1,class:"fa-solid fa-sm fas fa-edit",style:R({color:"var(--color-menu)"})},null,4)):w("",!0),C.chargepoint.isSocManual?w("",!0):(i(),h("i",{key:2,class:"fa-solid fa-sm fa-sync",style:R({color:"var(--color-menu)"})},null,4))]),_:1}),m(oe,{heading:"Reichweite:"},{default:b(()=>[j($(d(X)[e.chargepoint.connectedVehicle]?Math.round(d(X)[1].range):0)+" km ",1)]),_:1}),m(oe,{heading:"Zeitplan:"},{default:b(()=>[C.chargepoint.scheduledCharging?(i(),h("span",xi)):w("",!0),j(" "+$(e.chargepoint.scheduledCharging?"Ja":"Nein"),1)]),_:1})])])]))]),default:b(()=>[M.value?w("",!0):(i(),h("div",hi,[n("div",{class:"row m-1 mt-0 p-0",onClick:S[2]||(S[2]=P=>M.value=!M.value)},[n("div",pi,[m(oe,{heading:"Status:"},{default:b(()=>[n("span",{style:R({color:l.value})},[n("i",{class:z(c.value)},null,2),j(" "+$(r.value),1)],4)]),_:1}),m(oe,{heading:"Geladen:"},{default:b(()=>[m(fa,{"watt-h":C.chargepoint.chargedSincePlugged},null,8,["watt-h"])]),_:1}),m(oe,{heading:"gel. Reichw.:"},{default:b(()=>[j($(o.value),1)]),_:1})])]),e.chargepoint.power>0?(i(),h("div",{key:0,class:"row m-1 p-0",onClick:S[3]||(S[3]=P=>M.value=!M.value)},[n("div",gi,[m(oe,{heading:"Leistung:"},{default:b(()=>[m(Tt,{watt:e.chargepoint.power},null,8,["watt"])]),_:1}),m(oe,{heading:"Stromstärke:"},{default:b(()=>[j($(s.value),1)]),_:1}),m(oe,{heading:"Phasen:"},{default:b(()=>[j($(e.chargepoint.phasesInUse),1)]),_:1})])])):w("",!0),n("div",mi,[n("div",fi,[m(ca,{id:"chargemode-"+C.chargepoint.name,modelValue:a.value,"onUpdate:modelValue":S[4]||(S[4]=P=>a.value=P),options:Object.keys(d(se)).map(P=>({text:d(se)[P].name,value:P,color:d(se)[P].color,icon:d(se)[P].icon,active:d(se)[P].mode==C.chargepoint.chargeMode}))},null,8,["id","modelValue","options"])])])])),M.value?(i(),h("div",vi,[n("div",_i,[C.chargepoint!=null?(i(),B(ht,{key:0,chargepoint:C.chargepoint},null,8,["chargepoint"])):w("",!0)])])):w("",!0)]),_:1},8,["full-width"])),M.value?(i(),B(pt,{key:1,"full-width":e.fullWidth},{title:b(()=>[n("span",{style:R(y.value),onClick:S[6]||(S[6]=P=>M.value=!M.value)},[Pi,j(" Einstellungen "+$(e.chargepoint.name),1)],4)]),buttons:b(()=>[n("span",{class:"ms-2 pt-1",style:R(u.value),onClick:S[7]||(S[7]=P=>M.value=!M.value)},Ci,4)]),default:b(()=>[C.chargepoint!=null?(i(),B(ht,{key:0,chargepoint:C.chargepoint},null,8,["chargepoint"])):w("",!0)]),_:1},8,["full-width"])):w("",!0)],64))}});const Bi=W(Ii,[["__scopeId","data-v-090d0c53"]]),Vi={class:"tablerow"},Ti={class:"d-flex flex-wrap"},Li={key:0,class:"fa-solid fa-xs fa-star"},Oi={key:1,class:"fa-solid fa-xs fa-clock"},Ai={class:"tablecell left"},Di={class:"d-flex flex-column"},Ei={key:0,class:"flex-wrap"},Wi=["data-bs-target"],Gi={class:"d-flex flex-column"},ji={class:"d-flex align-items-center flex-wrap"},Ui={class:"d-flex align-items-center me-1"},zi={class:"badge phasesInUse rounded-pill"},Ni=["data-bs-target"],qi={class:"d-flex flex-column"},Fi={class:"me-2"},Ri={class:"buttoncell right"},Hi=["data-bs-target"],Ji={key:0},Qi={colspan:"5",class:"px-0"},Yi=I({__name:"CPSListItem",props:{chargepoint:{}},setup(t){const e=t,a=le(!1),s=f(()=>se[e.chargepoint.chargeMode].icon),o=f(()=>{let x="";return e.chargepoint.isLocked?x="fa-lock":e.chargepoint.isCharging?x=" fa-bolt":e.chargepoint.isPluggedIn&&(x="fa-plug"),"fa "+x}),r=f(()=>{let x={color:"var(--color-axis)"};return e.chargepoint.isLocked?x.color="var(--color-evu)":e.chargepoint.isCharging?x.color="var(--color-charging)":e.chargepoint.isPluggedIn&&(x.color="var(--color-battery)"),x}),l=f(()=>{switch(e.chargepoint.chargeMode){case"stop":return{color:"var(--fg)"};default:return{color:se[e.chargepoint.chargeMode].color}}}),c=f(()=>Pe(e.chargepoint.power,_.decimalPlaces)),u=f(()=>e.chargepoint.current+" A"),g=f(()=>e.chargepoint.phasesInUse),y=f(()=>e.chargepoint.dailyYield>0?Xe(e.chargepoint.dailyYield,_.decimalPlaces):"0 Wh"),M=f(()=>e.chargepoint.averageConsumption>0&&e.chargepoint.dailyYield>0?"("+Math.round(e.chargepoint.dailyYield/e.chargepoint.averageConsumption/10).toString()+" km)":""),C=f(()=>se[e.chargepoint.chargeMode].name);function S(){return{color:e.chargepoint.color}}function P(){a.value=!a.value}return(x,U)=>(i(),h(E,null,[n("tr",Vi,[n("td",{class:"tablecell left",onClick:P},[n("div",Ti,[n("span",null,[n("i",{class:z([o.value,"me-1"]),style:R(r.value)},null,6),n("span",{class:"me-1",style:R(S())},$(x.chargepoint.name),5)]),n("span",null,[x.chargepoint.hasPriority?(i(),h("i",Li)):w("",!0),x.chargepoint.scheduledCharging?(i(),h("i",Oi)):w("",!0)])])]),n("td",Ai,[n("div",Di,[n("span",null,$(x.chargepoint.vehicleName),1),x.chargepoint.isSocConfigured?(i(),h("span",Ei,[m(At,{class:"me-1",soc:x.chargepoint.soc},null,8,["soc"]),x.chargepoint.isSocManual?(i(),h("i",{key:0,class:"fa-solid fa-sm fas fa-edit me-2",style:R({color:"var(--color-menu)"})},null,4)):w("",!0),x.chargepoint.isSocManual?w("",!0):(i(),h("i",{key:1,class:"fa-solid fa-sm fa-sync me-2",style:R({color:"var(--color-menu)"})},null,4))])):w("",!0)])]),n("td",{class:"tablecell left","data-bs-toggle":"modal","data-bs-target":"#cpsconfig-"+x.chargepoint.id},[n("div",Gi,[n("span",ji,[n("span",null,$(c.value),1),n("span",Ui,[n("span",zi,$(g.value),1),n("span",null,$(u.value),1)])]),n("span",{style:R(l.value)},[n("i",{class:z(["fa me-1",s.value])},null,2),j(" "+$(C.value),1)],4)])],8,Wi),n("td",{class:"tablecell left","data-bs-toggle":"modal","data-bs-target":"#cpsconfig-"+x.chargepoint.id},[n("div",qi,[n("span",Fi,$(y.value),1),n("span",null,$(M.value),1)])],8,Ni),n("td",Ri,[n("span",{class:"fa-solid fa-lg fa-edit ps-1 tableicon","data-bs-toggle":"modal","data-bs-target":"#cpsconfig-"+x.chargepoint.id},null,8,Hi)])]),a.value?(i(),h("tr",Ji,[n("td",Qi,[a.value?(i(),B(ht,{key:0,chargepoint:x.chargepoint,onCloseConfig:P},null,8,["chargepoint"])):w("",!0)])])):w("",!0)],64))}});const Zi=W(Yi,[["__scopeId","data-v-e5ea1042"]]),Xi=t=>(K("data-v-76f208ee"),t=t(),ee(),t),Ki={class:"table table-borderless px-0"},ec=Xi(()=>n("thead",null,[n("tr",null,[n("th",{class:"tableheader alignleft"},[n("i",{class:"fa-solid fa-lg fa-charging-station ps-2"})]),n("th",{class:"tableheader alignleft"},[n("i",{class:"fa-solid fa-lg fa-car ps-2"})]),n("th",{class:"tableheader alignleft"},[n("i",{class:"fa-solid fa-lg fa-bolt ps-2"})]),n("th",{class:"tableheader alignleft"},[n("i",{class:"fa-solid fa-lg fa-car-battery ps-2"})]),n("th",{class:"tableheader alignright"})])],-1)),tc=I({__name:"CPSimpleList",setup(t){const e=f(()=>Object.values(T));return(a,s)=>(i(),B(Me,null,{title:b(()=>[j(" Ladepunkte ")]),default:b(()=>[n("table",Ki,[ec,n("tbody",null,[(i(!0),h(E,null,F(e.value,o=>(i(),B(Zi,{key:o.id,chargepoint:o},null,8,["chargepoint"]))),128))])]),(i(!0),h(E,null,F(e.value,o=>(i(),B(Lt,{key:o.id,"modal-id":"cpsconfig-"+o.id},{title:b(()=>[j(" Konfiguration: "+$(o.name),1)]),default:b(()=>[o!=null?(i(),B(ht,{key:0,chargepoint:o},null,8,["chargepoint"])):w("",!0)]),_:2},1032,["modal-id"]))),128))]),_:1}))}});const ac=W(tc,[["__scopeId","data-v-76f208ee"]]);const wt=I({__name:"ChargePointList",setup(t){let e,a;const s=f(()=>{let l=Object.values(T);return r(),l}),o=f(()=>{switch(Object.values(T).length){case 0:return _.preferWideBoxes?"col-lg-6":"col-lg-4";case 1:return _.preferWideBoxes?"col-lg-6":"col-lg-4";case 2:return _.preferWideBoxes?"col-lg-12":"col-lg-8 ";default:return"col-lg-12"}});function r(){if(e){let l="1";if(Ie.value)switch(Object.values(T).length){case 0:case 1:l="1";break;case 2:l="2";break;default:l="3"}a.setAttribute("slides-per-view",l),e.update()}}return Ue(()=>{let l=document.querySelector(".swiper-chargepoints");l&&(a=l,e=a.swiper),window.addEventListener("resize",r)}),(l,c)=>(i(),h(E,null,[d(_).simpleCpList?w("",!0):(i(),h("swiper-container",{key:0,"space-between":0,"slides-per-view":1,pagination:{clickable:!0},class:z(["cplist m-0 p-0 swiper-chargepoints d-flex align-items-stretch",o.value])},[(i(!0),h(E,null,F(s.value,u=>(i(),h("swiper-slide",{key:u.id},[n("div",{class:z([d(Ie)?"mb-0":"mb-5","d-flex align-items-stretch flex-fill"])},[m(Bi,{chargepoint:u,"full-width":!0},null,8,["chargepoint"])],2)]))),128))],2)),d(_).simpleCpList?(i(),B(ac,{key:1})):w("",!0)],64))}}),nc={class:"container-fluid p-0 m-0"},oc={class:"row p-0 m-0"},sc={class:"d-grid gap-2"},rc=["onClick"],lc={class:"col-md-4 p-1"},ic={class:"d-grid gap-2"},cc={key:0},dc=n("hr",null,null,-1),uc=n("div",{class:"row"},[n("div",{class:"col text-center"},"Vorrang im Lademodus PV-Laden:")],-1),hc={class:"row justify-content-center m-1 p-0"},pc={class:"col-6 p-1 m-0"},gc={class:"d-grid gap-2"},mc=n("span",{class:"fas fa-car"}," ",-1),fc={class:"col-6 p-1 m-0"},vc={class:"d-grid gap-2"},_c=n("span",{class:"fas fa-car-battery"}," ",-1),bc=I({__name:"BBSelect",props:{cpId:{}},setup(t){const e=t,a=[{mode:"instant_charging",name:"Sofort",color:"var(--color-charging)"},{mode:"pv_charging",name:"PV",color:"var(--color-pv)"},{mode:"scheduled_charging",name:"Zielladen",color:"var(--color-battery)"},{mode:"standby",name:"Standby",color:"var(--color-axis)"},{mode:"stop",name:"Stop",color:"var(--color-axis)"}],s=f(()=>T[e.cpId]);function o(g){return g==s.value.chargeMode?"btn btn-success buttonTextSize":"btn btn-secondary buttonTextSize"}function r(g){switch(g){case"ev":return ae.pvBatteryPriority?"btn-secondary":"btn-success";case"bat":return ae.pvBatteryPriority?"btn-success":"btn-secondary";default:return""}}function l(g){s.value.chargeMode=g}function c(g){s.value.isLocked=g}function u(g){ae.pvBatteryPriority=g}return(g,y)=>(i(),h("div",nc,[n("div",oc,[(i(),h(E,null,F(a,(M,C)=>n("div",{key:C,class:"col-md-4 p-1"},[n("div",sc,[n("button",{type:"button",class:z(o(M.mode)),style:{},onClick:S=>l(M.mode)},$(M.name),11,rc)])])),64)),n("div",lc,[n("div",ic,[s.value.isLocked?(i(),h("button",{key:0,type:"button",class:"btn btn-outline-success buttonTextSize","data-bs-dismiss":"modal",onClick:y[0]||(y[0]=M=>c(!1))}," Entsperren ")):w("",!0),s.value.isLocked?w("",!0):(i(),h("button",{key:1,type:"button",class:"btn btn-outline-danger buttonTextSize","data-bs-dismiss":"modal",onClick:y[1]||(y[1]=M=>c(!0))}," Sperren "))])])]),d(ae).isBatteryConfigured&&s.value.chargeMode=="pv_charging"?(i(),h("div",cc,[dc,uc,n("div",hc,[n("div",pc,[n("div",gc,[n("button",{id:"evPriorityBtn",type:"button",class:z(["priorityModeBtn btn btn-secondary buttonTextSize",r("ev")]),"data-dismiss":"modal",priority:"1",onClick:y[2]||(y[2]=M=>u(!1))},[j(" EV "),mc],2)])]),n("div",fc,[n("div",vc,[n("button",{id:"batteryPriorityBtn",type:"button",class:z(["priorityModeBtn btn btn-secondary buttonTextSize",r("bat")]),"data-dismiss":"modal",priority:"0",onClick:y[3]||(y[3]=M=>u(!0))},[j(" Speicher "),_c],2)])])])])):w("",!0)]))}}),yc={class:"col-lg-4 p-0 m-0 mt-1"},wc={class:"d-grid gap-2"},kc=["data-bs-target"],$c={class:"m-0 p-0"},Sc={class:"m-0 p-0 d-flex justify-content-between"},xc={class:"m-0 p-0 d-flex flex-column left"},Pc={key:0,class:"mx-1 badge rounded-pill smallTextSize plugIndicator"},Mc={key:0,class:"ms-2"},Cc={key:1,class:"mx-1 badge rounded-pill smallTextSize plugIndicator"},Ic={key:0,class:"ms-2"},Bc={class:"m-0 p-0 d-flex flex-column center"},Vc={class:"m-0 p-0 d-flex flex-column right"},Tc={key:0,class:"ps-1"},Lc=I({__name:"BbChargeButton",props:{chargepoint:{}},setup(t){const e=t,a="chargeSelectModal"+e.chargepoint.id,s=f(()=>se[e.chargepoint.chargeMode].name),o=f(()=>{let y={background:"var(--color-menu)"};return e.chargepoint.isLocked?y.background="var(--color-evu)":e.chargepoint.isCharging?y.background="var(--color-charging)":e.chargepoint.isPluggedIn&&(y.background="var(--color-battery)"),y}),r=f(()=>{if(se){let y={background:se[e.chargepoint.chargeMode].color,color:"white"};switch(e.chargepoint.chargeMode){case de.instant_charging:e.chargepoint.isCharging&&!e.chargepoint.isLocked&&(y=g(y));break;case de.standby:case de.stop:e.chargepoint.isPluggedIn||(y=g(y));break;case de.scheduled_charging:e.chargepoint.isPluggedIn&&!e.chargepoint.isCharging&&!e.chargepoint.isLocked&&(y=g(y));break}return y}else return{background:"var(--color-bg)",color:"var(--color-bg)"}}),l=f(()=>se?se[e.chargepoint.chargeMode].icon:""),c=f(()=>ae.pvBatteryPriority?"fa-car-battery":"fa-car"),u=f(()=>{let y="fa-ellipsis";return e.chargepoint.isLocked?y="fa-lock":e.chargepoint.isCharging?y=" fa-bolt":e.chargepoint.isPluggedIn&&(y="fa-plug"),"fa "+y});function g(y){let M=y.color;return y.color=y.background,y.background=M,y}return(y,M)=>(i(),h("div",yc,[n("div",wc,[n("button",{type:"button",class:"btn mx-1 mb-0 p-1 regularTextSize chargeButton shadow",style:R(o.value),"data-bs-toggle":"modal","data-bs-target":"#"+a},[n("div",$c,[n("div",Sc,[n("div",xc,[y.chargepoint.isPluggedIn?(i(),h("span",Pc,[n("i",{class:z(u.value)},null,2),y.chargepoint.isCharging?(i(),h("span",Mc,$(d(Pe)(y.chargepoint.power)),1)):w("",!0)])):w("",!0),y.chargepoint.isPluggedIn?w("",!0):(i(),h("span",Cc,[n("i",{class:z(u.value)},null,2),y.chargepoint.isCharging?(i(),h("span",Ic,$(d(Pe)(y.chargepoint.power)),1)):w("",!0)]))]),n("div",Bc,$(y.chargepoint.name),1),n("div",Vc,[n("span",{class:"mx-2 badge rounded-pill smallTextSize modeIndicator",style:R(r.value)},[n("i",{class:z(["fa me-1",l.value])},null,2),j(" "+$(s.value)+" ",1),y.chargepoint.chargeMode==d(de).pv_charging&&d(ae).isBatteryConfigured?(i(),h("span",Tc,[j(" ( "),n("i",{class:z(["fa m-0",c.value])},null,2),j(") ")])):w("",!0)],4)])])])],12,kc)]),m(Lt,{"modal-id":a},{title:b(()=>[j(" Lademodus für "+$(y.chargepoint.name),1)]),default:b(()=>[m(bc,{"cp-id":y.chargepoint.id},null,8,["cp-id"])]),_:1})]))}});const Oc=W(Lc,[["__scopeId","data-v-1cdb938b"]]),Ac={class:"row p-0 mt-0 mb-1 m-0"},Dc={class:"col p-0 m-0"},Ec={class:"container-fluid p-0 m-0"},Wc={class:"row p-0 m-0 d-flex justify-content-center"},Gc=I({__name:"ButtonBar",setup(t){return(e,a)=>(i(),h("div",Ac,[n("div",Dc,[n("div",Ec,[n("div",Wc,[(i(!0),h(E,null,F(d(T),(s,o)=>(i(),B(Oc,{key:o,chargepoint:s,"charge-point-count":Object.values(d(T)).length},null,8,["chargepoint","charge-point-count"]))),128))])])])]))}}),Dt=t=>(K("data-v-a5c2f113"),t=t(),ee(),t),jc=Dt(()=>n("span",{class:"fas fa-car-battery me-2",style:{color:"var(--color-battery)"}}," ",-1)),Uc=Dt(()=>n("span",{class:"sh-title py-4"},"Speicher",-1)),zc={class:"col m-0 mb-1 p-0 d-flex justify-content-between"},Nc={class:"col m-0 mt-3 mb-1 p-0 d-flex justify-content-between"},qc=Dt(()=>n("span",{class:"todaystring mt-4 float-right"}," Heute:",-1)),Fc=I({__name:"BatteryList",setup(t){const e=f(()=>N.batOut.power>0?"Liefert":A.batIn.power>0?"Lädt":"Bereit"),a=f(()=>Pe(N.batOut.power+A.batIn.power));return(s,o)=>d(ae).isBatteryConfigured?(i(),B(Me,{key:0,"variable-width":!0},{title:b(()=>[jc,Uc]),default:b(()=>[n("div",zc,[m(oe,{heading:"Ladestand:"},{default:b(()=>[m(At,{soc:d(ae).batterySoc,class:"me-2"},null,8,["soc"])]),_:1}),m(oe,{heading:"Status:"},{default:b(()=>[n("span",null,$(e.value),1)]),_:1}),m(oe,{heading:"Leistung:"},{default:b(()=>[n("span",null,$(a.value),1)]),_:1})]),n("div",Nc,[m(oe,{heading:""},{default:b(()=>[qc]),_:1}),m(oe,{heading:"Geladen:"},{default:b(()=>[n("span",null,$(d(Xe)(d(A).batIn.energy)),1)]),_:1}),m(oe,{heading:"Geliefert"},{default:b(()=>[n("span",null,$(d(Xe)(d(N).batOut.energy)),1)]),_:1})])]),_:1})):w("",!0)}});const kt=W(Fc,[["__scopeId","data-v-a5c2f113"]]),Rc=t=>(K("data-v-453a6579"),t=t(),ee(),t),Hc=Rc(()=>n("p",null,"not implemented yet",-1)),Jc=I({__name:"PriceChart",setup(t){return(e,a)=>d(Ae).isEtEnabled?(i(),B(Me,{key:0},{default:b(()=>[Hc]),_:1})):w("",!0)}});const $t=W(Jc,[["__scopeId","data-v-453a6579"]]),Qc={class:"d-flex float-right justify-content-end align-items-center"},Yc={key:0,class:"my-0 badge rounded-pill tempbadge mx-1"},Zc={class:"row m-1 mt-0 p-0"},Xc={class:"col m-0 mb-1 p-0 d-flex justify-content-between"},Kc=I({__name:"SHListItem",props:{device:{}},setup(t){const e=t,a=f(()=>e.device.status=="on"?"fa-toggle-on":e.device.status=="waiting"?"fa-spinner fa-spin":"fa-toggle-off"),s=f(()=>{let c="var(--color-switchRed)";switch(e.device.status){case"on":c="var(--color-switchGreen)";break;case"detection":c="var(--color-switchBlue)";break;case"timeout":c="var(--color-switchWhite)";break;case"waiting":c="var(--color-menu)";break;default:c="var(--color-switchRed)"}return{color:c}});function o(){e.device.isAutomatic||(e.device.status=="on"?Z("shSwitchOn",0,e.device.id):Z("shSwitchOn",1,e.device.id),q[e.device.id].status="waiting")}function r(){e.device.isAutomatic?Z("shSetManual",1,e.device.id):Z("shSetManual",0,e.device.id)}const l=f(()=>e.device.isAutomatic?"Auto":"Man");return(c,u)=>(i(),B(ua,{titlecolor:c.device.color,fullwidth:!0},{title:b(()=>[j($(c.device.name),1)]),buttons:b(()=>[n("div",Qc,[(i(!0),h(E,null,F(c.device.temp,(g,y)=>(i(),h("span",{key:y,class:"p-0 m-0 align-items-center d-flex"},[y<c.device.tempConfigured?(i(),h("span",Yc,$(d(_n)(g)),1)):w("",!0)]))),128)),e.device.canSwitch?(i(),h("span",{key:0,class:z([a.value,"fa statusbutton mr-2 ms-4"]),style:R(s.value),onClick:o},null,6)):w("",!0),e.device.canSwitch?(i(),h("span",{key:1,class:"badge rounded-pill modebutton mx-2",onClick:r},$(l.value),1)):w("",!0)])]),default:b(()=>[n("div",Zc,[n("div",Xc,[m(oe,{heading:"Leistung:"},{default:b(()=>[m(Tt,{watt:c.device.power},null,8,["watt"])]),_:1}),m(oe,{heading:"Energie:"},{default:b(()=>[m(fa,{"watt-h":c.device.energy},null,8,["watt-h"])]),_:1}),m(oe,{heading:"Laufzeit:"},{default:b(()=>[j($(d(fn)(c.device.runningTime)),1)]),_:1})])])]),_:1},8,["titlecolor"]))}});const ed=W(Kc,[["__scopeId","data-v-064f5a85"]]),ot=t=>(K("data-v-d1210081"),t=t(),ee(),t),td=ot(()=>n("span",{class:"fas fa-plug me-2",style:{color:"var(--color-devices)"}}," ",-1)),ad={class:"sh-title py-4"},nd=ot(()=>n("span",{class:"fa-solid fa-lg ps-1 fa-ellipsis-vertical"},null,-1)),od=[nd],sd=ot(()=>n("span",{class:"fas fa-gear"}," ",-1)),rd=ot(()=>n("span",{class:"fa-solid fa-lg ps-1 fa-circle-check"},null,-1)),ld=[rd],id=["id","onUpdate:modelValue","value"],cd=["for"],dd=ot(()=>n("div",{class:"col-12 mb-3 pe-3 mt-0"},[n("button",{class:"btn btn-sm btn-secondary float-end"},"Schließen")],-1)),ud=[dd],hd=3,pd=I({__name:"SmartHomeList",setup(t){const e=f(()=>Ie.value?a.value.reduce((l,c)=>{const u=l;let g=l[l.length-1];return g.length>=hd?l.push([c]):g.push(c),u},[[]]):[a.value]),a=f(()=>Object.values(q).filter(l=>l.configured));function s(l){return"Geräte"+(Ie.value&&e.value.length>1?"("+(l+1)+")":"")}function o(){r.value=!r.value}const r=le(!1);return(l,c)=>(i(),h(E,null,[(i(!0),h(E,null,F(e.value,(u,g)=>(i(),B(pt,{key:g,"variable-width":!0},{title:b(()=>[n("span",{onClick:o},[td,n("span",ad,$(s(g)),1)])]),buttons:b(()=>[n("span",{class:"ms-2 pt-1",onClick:o},od)]),default:b(()=>[(i(!0),h(E,null,F(u,y=>(i(),B(ed,{key:y.id,device:y},null,8,["device"]))),128))]),_:2},1024))),128)),r.value?(i(),B(pt,{key:0},{title:b(()=>[n("span",{class:"smarthome",onClick:o},[sd,j(" Einstellungen")])]),buttons:b(()=>[n("span",{class:"ms-2 pt-1",onClick:o},ld)]),default:b(()=>[m(O,{title:"Im Energie-Graph anzeigen:",icon:"fa-chart-column",fullwidth:!0},{default:b(()=>[(i(!0),h(E,null,F(a.value,(u,g)=>(i(),h("div",{key:g},[Te(n("input",{id:"check"+g,"onUpdate:modelValue":y=>u.showInGraph=y,class:"form-check-input",type:"checkbox",value:u},null,8,id),[[vt,u.showInGraph]]),n("label",{class:"form-check-label px-2",for:"check"+g},$(u.name),9,cd)]))),128))]),_:1}),n("div",{class:"row p-0 m-0",onClick:o},ud)]),_:1})):w("",!0)],64))}});const St=W(pd,[["__scopeId","data-v-d1210081"]]),gd={class:"row py-0 px-0 m-0"},md={"space-between":0,pagination:{clickable:!0},"slides-per-view":"1",class:"p-0 m-0 swiper-carousel",breakpoints:{992:{slidesPerView:3,spaceBetween:0}}},fd=I({__name:"CarouselFix",setup(t){return(e,a)=>(i(),h("div",gd,[n("swiper-container",md,[n("swiper-slide",null,[n("div",{class:z([d(Ie)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[te(e.$slots,"item1",{},void 0,!0)],2)]),n("swiper-slide",null,[n("div",{class:z([d(Ie)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[te(e.$slots,"item2",{},void 0,!0)],2)]),n("swiper-slide",null,[n("div",{class:z([d(Ie)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[te(e.$slots,"item3",{},void 0,!0)],2)])])]))}});const vd=W(fd,[["__scopeId","data-v-3ef4f401"]]);function _d(t,e){t=="openWB/graph/boolDisplayLiveGraph"?ae.displayLiveGraph=+e==1:t.match(/^openwb\/graph\/alllivevaluesJson[1-9][0-9]*$/i)?bd(t,e):t=="openWB/graph/lastlivevaluesJson"?yd(t,e):t=="openWB/graph/config/duration"||console.warn("Ignored GRAPH message: ["+t+"]("+e+")")}function bd(t,e){if(!re.initialized){let a=[];const s=e.toString().split(`
+`);s.length>1?a=s.map(l=>JSON.parse(l)):a=[];const o=t.match(/(\d+)$/g),r=o?o[0]:"";r!=""&&typeof re.rawDataPacks[+r-1]>"u"&&(re.rawDataPacks[+r-1]=a,re.initCounter++)}if(re.initCounter==16){const a=[];re.unsubscribeRefresh(),re.initialized=!0,re.rawDataPacks.map(s=>{s.map(o=>{const r=va(o);a.push(r)})}),at(a),re.subscribeUpdates()}}function yd(t,e){const a=JSON.parse(e),s=va(a);re.graphRefreshCounter++,at(v.data.concat(s)),re.graphRefreshCounter>60&&re.activate()}function va(t){const e={};e.date=wd(t.time).valueOf(),+t.grid>0?(e.gridPull=+t.grid,e.gridPush=0):+t.grid<=0?(e.gridPull=0,e.gridPush=-t.grid):(e.gridPull=0,e.gridPush=0),+t["pv-all"]>=0?(e.solarPower=+t["pv-all"],e.inverter=0):(e.solarPower=0,e.inverter=-t["pv-all"]),e.house=+t["house-power"],+t["bat-all-power"]>0?(e.batOut=0,e.batIn=+t["bat-all-power"]):+t["bat-all-power"]<0?(e.batOut=-t["bat-all-power"],e.batIn=0):(e.batOut=0,e.batIn=0),t["bat-all-soc"]?e.batterySoc=+t["bat-all-soc"]:e.batterySoc=0,e.charging=+t["charging-all"];for(let a=0;a<10;a++)t["cp"+a+"-power"]?e["cp"+a]=+t["cp"+a+"-power"]:e["cp"+a]=0;return e.selfUsage=e.solarPower-e.gridPush,e.selfUsage<0&&(e.selfUsage=0),e.devices=0,e}function wd(t){const e=new Date(Date.now()),a=864e5;let s=new Date;const o=Je("%H:%M:%S")(t);return o&&(s=o,s.setDate(e.getDate()),s.setMonth(e.getMonth()),s.setFullYear(e.getFullYear()),s.getHours()>e.getHours()&&(s=new Date(s.getTime()-a))),s}let st={},_a={};const je=["charging","house","batIn","devices"];let Fe=[];function kd(t,e){const a=JSON.parse(e).entries;Fe=Object.values(X).map(o=>"soc-ev"+o.id.toString()),je.map(o=>{k[o].energyPv=0,k[o].energyBat=0});const s=$d(a);at(s),je.map(o=>{k[o].energyPv=Math.round(k[o].energyPv*100)/100,k[o].energyBat=Math.round(k[o].energyBat*100)/100}),Id(st,_a),v.graphMode=="today"&&setTimeout(()=>ie(),3e5)}function $d(t){const e=[];let a={},s={};return t.map((o,r)=>{if(s=Sd(o),r==0)st=s,st.chargingPv=0,st.chargingBat=0;else{const l=Md(s,a);e.push(l),je.map(c=>{k[c].energyPv+=l[c+"Pv"]/12,k[c].energyBat+=l[c+"Bat"]/12})}a=s}),_a=s,e}function Sd(t){const e={};if(e.devices=0,v.graphMode=="day"||v.graphMode=="today"){const a=Je("%H:%M")(t.date);a&&(a.setMonth(J.date.getMonth()),a.setDate(J.date.getDate()),a.setFullYear(J.date.getFullYear()),e.date=a.getTime())}else{const a=Je("%Y%m%d")(t.date);a&&(e.date=a.getDate())}return Object.entries(t.counter).forEach(a=>{e.gridPush=a[1].exported,e.gridPull=a[1].imported}),Object.entries(t.pv).forEach(([a,s])=>{a=="pv1"&&(e.solarPower=s.exported)}),Object.entries(t.bat).length>0?Object.entries(t.bat).forEach(([a,s])=>{a=="all"&&(e.batIn=s.imported,e.batOut=s.exported)}):(e.batIn=0,e.batOut=0),Object.entries(t.cp).forEach(([a,s])=>{a!="all"?(e[a]=s.imported,e["soc"+a]=s.soc):e.charging=s.imported}),Object.entries(t.ev).forEach(([a,s])=>{a!="all"&&(e["soc-"+a]=s.soc)}),Object.entries(t.sh).forEach(([a,s])=>{a!="all"&&(e[a]=s.imported),e.devices+=s.imported}),e}const xd=["cp0","cp1","cp2","cp3","cp4","cp5","cp6","cp7","cp8","cp9"],Pd=["sh0","sh1","sh2","sh3","sh4"];function Md(t,e){const a={};a.date=t.date;const s=["gridPull","gridPush","solarPower","batIn","batOut","charging","devices"];return s.concat(xd).forEach(r=>{a[r]=Rt(t,e,r)}),s.concat(Pd).forEach(r=>{a[r]=Rt(t,e,r)}),a.soc0=Fe[0]?t[Fe[0]]:0,a.soc1=Fe[1]?t[Fe[1]]:0,a.selfUsage=a.solarPower-a.gridPush,a.house=a.solarPower+a.gridPull+a.batOut-a.gridPush-a.batIn-a.charging-a.devices,a.inverter=0,a.gridPull+a.batOut+a.solarPower>0?je.map(r=>Cd(r,a)):je.map(r=>{a[r+"Pv"]=0,a[r+"Bat"]=0}),a}function Rt(t,e,a){return t[a]!==void 0&&e[a]!==void 0?12*(t[a]-e[a])/1e3:0}function Cd(t,e){e[t+"Pv"]=e[t]*(e.solarPower-e.gridPush)/(e.solarPower-e.gridPush+e.gridPull+e.batOut),e[t+"Bat"]=e[t]*e.batOut/(e.solarPower-e.gridPush+e.gridPull+e.batOut)}function Id(t,e){k.pv.energy=(e.solarPower-t.solarPower)/1e3,k.evuIn.energy=(e.gridPull-t.gridPull)/1e3,k.batOut.energy=(e.batOut-t.batOut)/1e3,k.evuOut.energy=(e.gridPush-t.gridPush)/1e3,k.batIn.energy=(e.batIn-t.batIn)/1e3,k.charging.energy=(e.charging-t.charging)/1e3,k.devices.energy=(e.devices-t.devices)/1e3,k.charging.pvPercentage=Math.round((k.charging.energyPv+k.charging.energyBat)/k.charging.energy*100),k.house.energy=k.evuIn.energy+k.pv.energy+k.batOut.energy-k.evuOut.energy-k.batIn.energy-k.charging.energy-k.devices.energy,A.devices.energy=k.devices.energy,je.map(a=>{A[a].energyPv=k[a].energyPv,A[a].energyBat=k[a].energyBat,k[a].pvPercentage=Math.round((k[a].energyPv+k[a].energyBat)/k[a].energy*100),A[a].pvPercentage=k[a].pvPercentage})}let Re={};const et=["charging","house","batIn","devices"];function Bd(t,e){const a=JSON.parse(e).entries;et.map(s=>{k[s].energyPv=0,k[s].energyBat=0}),at(Vd(a)),Ld(Re),Td(t,e)}function Vd(t){const e=[];let a={};return Re={},t.map(s=>{a=ba(s),e.push(a),et.map(o=>{k[o].energyPv+=a[o+"Pv"],k[o].energyBat+=a[o+"Bat"]}),Object.keys(a).map(o=>{o!="date"&&(Re[o]?Re[o]+=a[o]:Re[o]=a[o])})}),e}function Td(t,e){JSON.parse(e).entries.map(s=>{ba(s)})}function ba(t){const e={},a=Je("%Y%m%d")(t.date);return a&&(e.date=a.getDate()),Object.entries(t.counter).forEach(o=>{e.gridPush=o[1].energy_exported,e.gridPull=o[1].energy_imported}),Object.entries(t.pv).forEach(([o,r])=>{o=="all"&&(e.solarPower=r.energy_exported)}),Object.entries(t.bat).length>0?Object.entries(t.bat).forEach(([o,r])=>{o=="all"&&(e.batIn=r.energy_imported,e.batOut=r.energy_exported)}):(e.batIn=0,e.batOut=0),Object.entries(t.cp).forEach(([o,r])=>{o!="all"?e[o]=r.energy_imported:e.charging=r.energy_imported}),Object.entries(t.ev).forEach(([o,r])=>{o!="all"&&(e["soc-"+o]=r.soc)}),e.devices=Object.entries(t.sh).reduce((o,r)=>(o+=r[1].energy_imported,o),0),e.selfUsage=e.solarPower-e.gridPush,e.house=e.solarPower+e.gridPull+e.batOut-e.gridPush-e.batIn-e.charging,e.inverter=0,e.gridPull+e.batOut+e.solarPower>0?et.map(o=>oa(o,e)):et.map(o=>{e[o+"Pv"]=0,e[o+"Bat"]=0}),e}function Ld(t){k.pv.energy=t.solarPower,k.evuIn.energy=t.gridPull,k.batOut.energy=t.batOut,k.evuOut.energy=t.gridPush,k.batIn.energy=t.batIn,k.charging.energy=t.charging,k.devices.energy=t.devices,k.house.energy=k.evuIn.energy+k.pv.energy+k.batOut.energy-k.evuOut.energy-k.batIn.energy-k.charging.energy-k.devices.energy,et.map(e=>{k[e].pvPercentage=Math.round((k[e].energyPv+k[e].energyBat)/k[e].energy*100)})}let He={};const tt=["charging","house","batIn","devices"];function Od(t,e){const a=JSON.parse(e).entries;tt.map(s=>{k[s].energyPv=0,k[s].energyBat=0}),at(Ad(a)),Ed(He),Dd(t,e)}function Ad(t){const e=[];let a={};return He={},t.map(s=>{a=ya(s),e.push(a),tt.map(o=>{k[o].energyPv+=a[o+"Pv"],k[o].energyBat+=a[o+"Bat"]}),Object.keys(a).map(o=>{o!="date"&&(a[o]<0&&(console.warn(`Negative energy value for ${o} in row ${a.date}. Ignoring the value.`),a[o]=0),He[o]?He[o]+=a[o]:He[o]=a[o])})}),e}function Dd(t,e){JSON.parse(e).entries.map(s=>{ya(s)})}function ya(t){const e={},a=Je("%Y%m%d")(t.date);return a&&(e.date=a.getMonth()+1),Object.entries(t.counter).forEach(o=>{e.gridPush=o[1].energy_exported/1e3,e.gridPull=o[1].energy_imported/1e3}),Object.entries(t.pv).forEach(([o,r])=>{o=="all"&&(e.solarPower=r.energy_exported/1e3)}),Object.entries(t.bat).length>0?Object.entries(t.bat).forEach(([o,r])=>{o=="all"&&(e.batIn=r.energy_imported/1e3,e.batOut=r.energy_exported/1e3)}):(e.batIn=0,e.batOut=0),Object.entries(t.cp).forEach(([o,r])=>{o!="all"?e[o]=r.energy_imported/1e3:e.charging=r.energy_imported/1e3}),Object.entries(t.ev).forEach(([o,r])=>{o!="all"&&(e["soc-"+o]=r.soc)}),e.devices=Object.entries(t.sh).reduce((o,r)=>(r[1].energy_imported>=0?o+=r[1].energy_imported/1e3:console.warn(`Negative energy value for device ${r[0]} in row ${e.date}. Ignoring this value`),o),0),e.selfUsage=e.solarPower-e.gridPush,e.house=e.solarPower+e.gridPull+e.batOut-e.gridPush-e.batIn-e.charging,e.inverter=0,e.gridPull+e.batOut+e.solarPower>0?tt.map(o=>oa(o,e)):tt.map(o=>{e[o+"Pv"]=0,e[o+"Bat"]=0}),e}function Ed(t){k.pv.energy=t.solarPower,k.evuIn.energy=t.gridPull,k.batOut.energy=t.batOut,k.evuOut.energy=t.gridPush,k.batIn.energy=t.batIn,k.charging.energy=t.charging,k.devices.energy=t.devices,k.house.energy=k.evuIn.energy+k.pv.energy+k.batOut.energy-k.evuOut.energy-k.batIn.energy-k.charging.energy-k.devices.energy,tt.map(e=>{k[e].pvPercentage=Math.round((k[e].energyPv+k[e].energyBat)/k[e].energy*100)})}class Wd{constructor(e){p(this,"id");p(this,"dailyYieldExport",0);p(this,"dailyYieldImport",0);p(this,"exported",0);p(this,"faultState",0);p(this,"faultStr","");p(this,"imported",0);p(this,"power",0);p(this,"soc",0);this.id=e}}class Gd{constructor(){p(this,"dailyExport",0);p(this,"dailyImport",0);p(this,"exported",0);p(this,"imported",0);p(this,"power",0);p(this,"soc",0)}}const pe=Q({});Q(new Gd);function jd(t){t in pe?console.info("Duplicate battery message: "+t):(pe[t]=new Wd(t),console.info("Added battery "+t))}function Ud(){Object.keys(pe).forEach(t=>{delete pe[parseInt(t)]})}function zd(t,e){const a=Nd(t);if(a&&!(a in pe)){console.warn("Invalid battery index received: "+a);return}t=="openWB/bat/config/configured"?ae.isBatteryConfigured=e=="true":t=="openWB/bat/get/power"?+e>0?(A.batIn.power=+e,N.batOut.power=0):(A.batIn.power=0,N.batOut.power=-e):t=="openWB/bat/get/soc"?ae.batterySoc=+e:t=="openWB/bat/get/daily_exported"?N.batOut.energy=+e/1e3:t=="openWB/bat/get/daily_imported"?A.batIn.energy=+e/1e3:a&&(t.match(/^openwb\/bat\/[0-9]+\/get\/daily_yield_export$/i)?pe[a].dailyYieldExport=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/daily_yield_import$/i)?pe[a].dailyYieldImport=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/exported$/i)?pe[a].exported=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/fault_state$/i)?pe[a].faultState=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/fault_str$/i)?pe[a].faultStr=e:t.match(/^openwb\/bat\/[0-9]+\/get\/imported$/i)?pe[a].imported=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/power$/i)?pe[a].power=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/soc$/i)&&(pe[a].soc=+e))}function Nd(t){let e=0;try{const a=t.match(/(?:\/)([0-9]+)(?=\/)/g);return a?(e=+a[0].replace(/[^0-9]+/g,""),e):void 0}catch{console.warn("Parser error in getIndex for topic "+t)}}function qd(t,e){t=="openWB/optional/et/active"?Ae.isEtEnabled=JSON.parse(e):t=="openWB/optional/et/get/price"?Ae.etCurrentPrice=parseFloat(e):t=="openWB/optional/et/config/max_price"?Ae.updateEtMaxPrice(parseFloat(e)):t=="openWB/optional/et/provider"?Ae.etProvider=JSON.parse(e):console.warn("Ignored ET Provider message: "+t)}function Fd(t,e){const a=wa(t);if(a&&!(a in T)){console.warn("Invalid chargepoint id received: "+a);return}if(t=="openWB/chargepoint/get/power"?A.charging.power=+e:t=="openWB/chargepoint/get/daily_imported"&&(A.charging.energy=+e/1e3),t=="openWB/chargepoint/get/daily_exported")ae.cpDailyExported=+e;else if(a){if(t.match(/^openwb\/chargepoint\/[0-9]+\/config$/i))if(T[a]){const s=JSON.parse(e);T[a].name=s.name,T[a].icon=s.name}else console.warn("invalid chargepoint index: "+a);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/state_str$/i))T[a].stateStr=JSON.parse(e);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_str$/i))T[a].faultStr=JSON.parse(e);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_state$/i))T[a].faultState=+e;else if(t.match(/^openWB\/chargepoint\/[0-9]+\/get\/power$/i))T[a].power=+e;else if(t.match(/^openWB\/chargepoint\/[0-9]+\/get\/daily_imported$/i))T[a].dailyYield=+e/1e3;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/plug_state$/i))T[a].isPluggedIn=e=="true";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/charge_state$/i))T[a].isCharging=e=="true";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/manual_lock$/i))T[a].updateIsLocked(e=="true");else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/enabled$/i))T[a].isEnabled=e=="1";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/phases_in_use/i))T[a].phasesInUse=+e;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/current/i))T[a].current=+e;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/log/i)){const s=JSON.parse(e);T[a].chargedSincePlugged=s.imported_since_plugged}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/soc$/i)){const s=JSON.parse(e);T[a].rangeCharged=s.range_charged,T[a].rangeUnit=s.range_unit}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/soc_config$/i))T[a].isSocManual=e=="manual";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/info$/i)){const s=JSON.parse(e);T[a].vehicleName=String(s.name),T[a].updateConnectedVehicle(+s.id)}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/config$/i)){const s=JSON.parse(e);switch(s.chargemode){case"instant_charging":T[a].updateChargeMode(de.instant_charging);break;case"pv_charging":T[a].updateChargeMode(de.pv_charging);break;case"scheduled_charging":T[a].updateChargeMode(de.scheduled_charging);break;case"standby":T[a].updateChargeMode(de.standby);break;case"stop":T[a].updateChargeMode(de.stop);break}T[a].chargeTemplate=s.charge_template,T[a].averageConsumption=s.average_consumption}}}function Rd(t,e){const a=wa(t);if(a!=null){if(!(a in X)){const s=new Ha(a);X[a]=s,console.info("New vehicle created: "+a)}t.match(/^openwb\/vehicle\/[0-9]+\/name$/i)?(Object.values(T).forEach(s=>{s.connectedVehicle==a&&(s.vehicleName=JSON.parse(e))}),X[a].name=JSON.parse(e)):t.match(/^openwb\/vehicle\/[0-9]+\/get\/soc$/i)?Object.values(T).forEach(s=>{s.connectedVehicle==a&&(s.soc=JSON.parse(e))}):t.match(/^openwb\/vehicle\/[0-9]+\/get\/range$/i)?X[a].range=+e:t.match(/^openwb\/vehicle\/[0-9]+\/charge_template$/i)?X[a].updateChargeTemplateId(+e):t.match(/^openwb\/vehicle\/[0-9]+\/ev_template$/i)&&X[a].updateEvTemplateId(+e)}}function Hd(t,e){if(t.match(/^openwb\/vehicle\/template\/charge_template\/[0-9]+$/i)){const a=t.match(/[0-9]+$/i);if(a){const s=+a[0],o=JSON.parse(e);o.chargemode.scheduled_charging.plans||(o.chargemode.scheduled_charging.plans={}),o.time_charging.plans||(o.time_charging.plans={}),ue[s]=o,Jd(s,o)}}else if(t.match(/^openwb\/vehicle\/template\/charge_template\/[0-9]+\/time_charging\/plans\/[0-9]+$/i)){const a=t.match(/(?:\/)([0-9]+)(?:\/)/g),s=t.match(/[0-9]+$/i);if(a&&s){const o=+a[0].replace(/[^0-9]+/g,""),r=+s[0],l=JSON.parse(e);ue[o].time_charging.plans[r]=l}}else if(t.match(/^openwb\/vehicle\/template\/ev_template\/[0-9]+$/i)){const a=t.match(/[0-9]+$/i);if(a){const s=+a[0],o=JSON.parse(e);xt[s]=o}}}function Jd(t,e){Object.values(T).forEach(a=>{a.chargeTemplate==t&&(a.updateCpPriority(e.prio),a.updateInstantChargeLimitMode(e.chargemode.instant_charging.limit.selected),a.updateInstantTargetCurrent(e.chargemode.instant_charging.current),a.updateInstantTargetSoc(e.chargemode.instant_charging.limit.soc),a.updateInstantMaxEnergy(e.chargemode.instant_charging.limit.amount),a.updateScheduledCharging(e.time_charging.active),a.updatePvFeedInLimit(e.chargemode.pv_charging.feed_in_limit),a.updatePvMinCurrent(e.chargemode.pv_charging.min_current),a.updatePvMaxSoc(e.chargemode.pv_charging.max_soc),a.updatePvMinSoc(e.chargemode.pv_charging.min_soc),a.updatePvMinSocCurrent(e.chargemode.pv_charging.min_soc_current))})}function wa(t){let e=0;try{const a=t.match(/(?:\/)([0-9]+)(?=\/)/g);return a?(e=+a[0].replace(/[^0-9]+/g,""),e):void 0}catch{console.warn("Parser error in getIndex for topic "+t)}}function Qd(t,e){t.match(/^openWB\/LegacySmarthome\/config\//i)?Yd(t,e):t.match(/^openWB\/LegacySmarthome\/Devices\//i)&&Zd(t,e)}function Yd(t,e){const a=ka(t);if(a==null){console.warn("Smarthome: Missing index in "+t);return}a in q||Bt(a),t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_configured$/i)?q[a].configured=e!="0":t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_name$/i)?q[a].name=e.toString():t.match(/^openWB\/LegacySmarthome\/config\/set\/Devices\/[0-9]+\/mode$/i)?q[a].isAutomatic=e=="0":t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_canswitch$/i)?q[a].canSwitch=e=="1":t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_temperatur_configured$/i)&&(q[a].tempConfigured=+e)}function Zd(t,e){const a=ka(t);if(a==null){console.warn("Smarthome: Missing index in "+t);return}if(a in q||Bt(a),t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/Watt$/i))q[a].power=+e,Xd("power");else if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/RunningTimeToday$/i))q[a].runningTime=+e;else if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor0$/i))q[a].temp[0]=+e;else if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor1$/i))q[a].temp[1]=+e;else if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/TemperatureSensor2$/i))q[a].temp[2]=+e;else if(t.match(/^openWB\/LegacySmartHome\/Devices\/[0-9]+\/Status$/i))switch(+e){case 10:q[a].status="off";break;case 11:q[a].status="on";break;case 20:q[a].status="detection";break;case 30:q[a].status="timeout";break;default:q[a].status="off"}}function Xd(t){switch(t){case"power":A.devices.power=Object.values(q).filter(e=>e.configured).reduce((e,a)=>e+a.power,0);break;case"energy":A.devices.energy=Object.values(q).filter(e=>e.configured).reduce((e,a)=>e+a.energy,0);break;default:console.error("Unknown category")}}function ka(t){let e=0;try{const a=t.match(/(?:\/)([0-9]+)(?=\/)/g);return a?(e=+a[0].replace(/[^0-9]+/g,""),e):void 0}catch{console.warn("Parser error in getIndex for topic "+t)}}const Kd=["openWB/counter/#","openWB/bat/#","openWB/pv/get/#","openWB/chargepoint/#","openWB/vehicle/#","openWB/general/chargemode_config/pv_charging/#","openWB/optional/et/#","openWB/system/#","openWB/LegacySmartHome/#"];function eu(){qa(tu),Kd.forEach(t=>{Ge(t)}),ie()}function tu(t,e){const a=e.toString();t.match(/^openwb\/counter\/[0-9]+\//i)?au(t,a):t.match(/^openwb\/counter\//i)?nu(t,a):t.match(/^openwb\/bat\//i)?zd(t,a):t.match(/^openwb\/pv\//i)?ou(t,a):t.match(/^openwb\/chargepoint\//i)?Fd(t,a):t.match(/^openwb\/vehicle\/template\//i)?Hd(t,a):t.match(/^openwb\/vehicle\//i)?Rd(t,a):t.match(/^openwb\/general\/chargemode_config\/pv_charging\//i)?su(t,a):t.match(/^openwb\/graph\//i)?_d(t,a):t.match(/^openwb\/log\/daily\//i)?kd(t,a):t.match(/^openwb\/log\/monthly\//i)?Bd(t,a):t.match(/^openwb\/log\/yearly\//i)?Od(t,a):t.match(/^openwb\/optional\/et\//i)?qd(t,a):t.match(/^openwb\/LegacySmartHome\//i)&&Qd(t,a)}function au(t,e){const a=t.split("/");if(+a[2]==ae.evuId)ru(t,e);else if(a[3]=="config")console.warn("Ignored counter config message");else switch(a[4]){}}function nu(t,e){if(t.match(/^openwb\/counter\/get\/hierarchy$/i)){const a=JSON.parse(e);if(a.length){Qa(),Ud();for(const s of a)s.type=="counter"&&(ae.evuId=s.id,console.info("EVU counter is "+ae.evuId));$a(a[0])}}else t.match(/^openwb\/counter\/set\/home_consumption$/i)?A.house.power=+e:t.match(/^openwb\/counter\/set\/daily_yield_home_consumption$/i)&&(A.house.energy=+e/1e3)}function $a(t){switch(t.type){case"counter":console.info("counter in hierachy: "+t.id);break;case"cp":Ja(t.id);break;case"bat":jd(t.id);break;case"inverter":console.info("inverter id "+t.id);break;default:console.warn("Ignored Hierarchy type: "+t.type)}t.children.forEach(e=>$a(e))}function ou(t,e){switch(t){case"openWB/pv/get/power":N.pv.power=-e;break;case"openWB/pv/get/daily_exported":N.pv.energy=+e/1e3;break}}function su(t,e){const a=t.split("/");if(a.length>0)switch(a[4]){case"bat_prio":ae.updatePvBatteryPriority(e=="true");break}}function ru(t,e){switch(t.split("/")[4]){case"power":+e>0?(N.evuIn.power=+e,A.evuOut.power=0):(N.evuIn.power=0,A.evuOut.power=-e);break;case"daily_imported":N.evuIn.energy=+e/1e3;break;case"daily_exported":A.evuOut.energy=+e/1e3;break}}const lu=0,iu={host:location.hostname,port:location.protocol=="https:"?443:80,endpoint:"/ws",protocol:location.protocol=="https:"?"wss":"ws",clean:!0,connectTimeout:4e3,reconnectPeriod:4e3,clientId:Math.random().toString(36).replace(/[^a-z]+/g,"").substring(0,6),username:"openWB",password:"openWB"},Ht={topic:"",qos:lu};let We;const{host:cu,port:du,endpoint:uu,...Sa}=iu,hu=`${Sa.protocol}://${cu}:${du}${uu}`;try{We=Jt.connect(hu,Sa),We.on("connect",()=>{console.info("MQTT connection successful")}),We.on("error",t=>{console.error("MQTT connection failed: ",t)})}catch(t){console.error("MQTT connect error: ",t)}function pu(t){We?We.on("message",t):console.error("MqttRegister: MQTT client not available")}function gu(t){Ht.topic=t;const{topic:e,qos:a}=Ht;We.subscribe(e,{qos:a},s=>{if(s){console.error("MQTT Subscription error: "+s);return}console.info("MQTT Subscription successful: "+t)})}const gt=Q([]);let mu=class xa{constructor(e,a,s,o){p(this,"name");p(this,"children");p(this,"count");p(this,"lastValue");this.name=e,this.children=a,this.count=s,this.lastValue=o}insert(e,a){if(e.length){const s=e.splice(1);if(e[0]==this.name)if(s.length){let o=!1;if(this.children.forEach(r=>{r.name==s[0]&&(r.insert(s,a),o=!0)}),!o){const r=new xa(s[0],[],0,"");r.insert(s,a),this.children.push(r)}}else this.count=this.count+1,this.lastValue=a}}};function fu(t,e){const a=t.split("/");if(a.length){let s=!1;if(gt.forEach(o=>{o.name==a[0]&&(o.insert(a,e),s=!0)}),!s){const o=new mu(a[0],[],0,"");gt.push(o),o.insert(a,e)}}}const vu=["openWB/#"];function _u(){pu(bu),vu.forEach(t=>{gu(t)})}function bu(t,e){fu(t,e.toString())}const yu={class:"row p-0 mb-0 mx-0"},wu={class:"py-2 m-0"},ku={key:0},$u={key:1,style:{"background-color":"white"},class:"p-2"},Su={key:0,class:"col-md-9 m-0 p-0 ps-2"},xu={class:"container-fluid m-0 p-0"},Pu=I({__name:"MqttNode",props:{node:{},level:{},hide:{type:Boolean},expandAll:{type:Boolean}},setup(t){const e=t;let a=le(!e.hide),s=le(!1);const o=f(()=>e.node.name),r=f(()=>[...e.node.children].sort((y,M)=>y.name<M.name?-1:1)),l=f(()=>e.node.count>0?"("+e.node.count+")":""),c=f(()=>e.node.children.length),u=f(()=>e.node.lastValue!=""?{"background-color":"lightgoldenrodyellow"}:{"background-color":"lightsteelblue"});function g(){c.value>0&&(a.value=!a.value),e.node.lastValue!=""&&(s.value=!s.value)}return(y,M)=>{const C=Da("MqttNode",!0);return i(),h("div",yu,[n("div",{class:"col-md m-0 px-2 node",style:R(u.value),onClick:g},[n("p",wu,$(o.value)+$(l.value),1),d(s)?(i(),h("hr",ku)):w("",!0),d(s)?(i(),h("p",$u,[n("code",null,$(e.node.lastValue),1)])):w("",!0)],4),(d(a)||e.expandAll)&&c.value>0?(i(),h("div",Su,[n("div",xu,[(i(!0),h(E,null,F(r.value,(S,P)=>(i(),B(C,{key:P,level:e.level+1,node:S,hide:!0,"expand-all":e.expandAll},null,8,["level","node","expand-all"]))),128))])])):w("",!0)])}}});const Mu=W(Pu,[["__scopeId","data-v-3dfd535f"]]),Et=t=>(K("data-v-bf618b70"),t=t(),ee(),t),Cu={class:"mqviewer"},Iu={class:"row pt-2"},Bu={class:"col"},Vu=Et(()=>n("h3",{class:"mqtitle ps-2"},"MQTT Message Viewer",-1)),Tu=Et(()=>n("hr",null,null,-1)),Lu=Et(()=>n("hr",null,null,-1)),Ou={key:0},Au=I({__name:"MQTTViewer",setup(t){Ue(()=>{_u()});const e=le(!1);function a(){e.value=!e.value}const s=f(()=>e.value?"active":"");return(o,r)=>(i(),h("div",Cu,[n("div",Iu,[n("div",Bu,[Vu,Tu,n("button",{class:z(["btn btn-small btn-outline-primary ms-2",s.value]),onClick:a}," Expand All ",2),Lu])]),d(gt)[0]?(i(),h("div",Ou,[(i(!0),h(E,null,F(d(gt)[0].children.sort((l,c)=>l.name<c.name?-1:1),(l,c)=>(i(),B(Mu,{key:c,node:l,level:1,hide:!0,"expand-all":e.value},null,8,["node","expand-all"]))),128))])):w("",!0)]))}});const Du=W(Au,[["__scopeId","data-v-bf618b70"]]),Eu={class:"container-fluid p-0 m-0"},Wu={class:"row p-0 m-0"},Gu=n("button",{class:"btn btn-secondary float-end mt-0 ms-1","data-bs-toggle":"collapse","data-bs-target":"#themesettings"},[n("span",null,[n("i",{class:"fa-solid fa-rectangle-xmark"})])],-1),ju={class:"row m-0 p-0"},Uu=n("div",{class:"row p-0 m-0"},[n("div",{class:"col-12 mb-3 pe-3 mt-0"},[n("button",{class:"btn btn-sm btn-secondary float-end","data-bs-toggle":"collapse","data-bs-target":"#themesettings"}," Schließen ")])],-1),zu=I({__name:"ThemeSettings",emits:["resetArcs"],setup(t,{emit:e}){const a=[["Dunkel","dark"],["Hell","light"],["Blau","blue"]],s=[["3 kW","0"],["3,1 kW","1"],["3,14 kW","2"],["3,141 kW","3"],["3141 W","4"]],o=[["Orange","normal"],["Grün/Violett","standard"],["Bunt","advanced"]];return(r,l)=>(i(),h("div",Eu,[n("div",Wu,[m(pt,{"full-width":!0},{title:b(()=>[j(" Look & Feel ")]),buttons:b(()=>[Gu]),default:b(()=>[n("div",ju,[m(O,{title:"Farbschema",icon:"fa-adjust",infotext:"Hintergrundfarbe"},{default:b(()=>[m(Ve,{modelValue:d(_).displayMode,"onUpdate:modelValue":l[0]||(l[0]=c=>d(_).displayMode=c),options:a},null,8,["modelValue"])]),_:1}),m(O,{title:"Grafik: Raster",icon:"fa-th",infotext:"Verwende ein Hintergrundraster in den Grafiken"},{default:b(()=>[m(me,{modelValue:d(_).showGrid,"onUpdate:modelValue":l[1]||(l[1]=c=>d(_).showGrid=c)},null,8,["modelValue"])]),_:1}),m(O,{title:"Variable Bogenlänge",icon:"fa-chart-area",infotext:"Im Graph 'Aktuelle Leistung' können die Bögen immer die volle Länge haben, oder entsprechend des aktuellen Gesamtleistung verkürzt dargestellt werden."},{default:b(()=>[m(me,{modelValue:d(_).showRelativeArcs,"onUpdate:modelValue":l[2]||(l[2]=c=>d(_).showRelativeArcs=c)},null,8,["modelValue"])]),_:1}),d(_).showRelativeArcs?(i(),B(O,{key:0,title:"Bögen zurücksetzen",icon:"fa-undo",infotext:"Durch Click auf den Button wird die Maximallänge der Bögen auf den aktuellen Wert gesetzt."},{default:b(()=>[d(_).showRelativeArcs?(i(),h("button",{key:0,class:"btn btn-secondary",onClick:l[3]||(l[3]=c=>e("resetArcs"))}," Reset ")):w("",!0)]),_:1})):w("",!0),m(O,{title:"Anzahl Dezimalstellen",icon:"fa-sliders-h",infotext:"Alle kW- und kWh-Werte werden mit der gewählten Anzahl an Stellen angezeigt."},{default:b(()=>[m(Ot,{modelValue:d(_).decimalPlaces,"onUpdate:modelValue":l[4]||(l[4]=c=>d(_).decimalPlaces=c),options:s},null,8,["modelValue"])]),_:1}),m(O,{title:"Farbschema Smart-Home-Geräte",icon:"fa-palette",infotext:"Für die Smart-Home-Geräte stehen mehrere Schemata zur Verfügung."},{default:b(()=>[m(Ve,{modelValue:d(_).smartHomeColors,"onUpdate:modelValue":l[5]||(l[5]=c=>d(_).smartHomeColors=c),options:o},null,8,["modelValue"])]),_:1}),m(O,{title:"Kompakte Ladepunktliste",icon:"fa-list",infotext:"Zeige eine einzelne Ladepunktliste statt separater Element pro Ladepunkt."},{default:b(()=>[m(me,{modelValue:d(_).simpleCpList,"onUpdate:modelValue":l[6]||(l[6]=c=>d(_).simpleCpList=c)},null,8,["modelValue"])]),_:1}),m(O,{title:"Filter-Buttons",icon:"fa-filter",infotext:"Hauptseite mit Buttons zur Auswahl der Kategorie."},{default:b(()=>[m(me,{modelValue:d(_).showQuickAccess,"onUpdate:modelValue":l[7]||(l[7]=c=>d(_).showQuickAccess=c)},null,8,["modelValue"])]),_:1}),m(O,{title:"Animationen",icon:"fa-film",infotext:"Animationen anzeigen"},{default:b(()=>[m(me,{modelValue:d(_).showAnimations,"onUpdate:modelValue":l[8]||(l[8]=c=>d(_).showAnimations=c)},null,8,["modelValue"])]),_:1}),m(O,{title:"Breite Widgets",icon:"fa-desktop",infotext:"Widgets immer breit machen"},{default:b(()=>[m(me,{modelValue:d(_).preferWideBoxes,"onUpdate:modelValue":l[9]||(l[9]=c=>d(_).preferWideBoxes=c)},null,8,["modelValue"])]),_:1})]),Uu]),_:1})])]))}}),Ne=t=>(K("data-v-42ab5d0a"),t=t(),ee(),t),Nu={class:"container-fluid px-2 m-0 theme-colors"},qu={id:"themesettings",class:"collapse"},Fu={key:1,class:"row py-0 px-0 m-0"},Ru={key:2,class:"row py-0 m-0 d-flex justify-content-center"},Hu={key:3,class:"nav nav-tabs nav-justified mx-1 mt-2",role:"tablist"},Ju=Ea('<a class="nav-link active" data-bs-toggle="tab" data-bs-target="#showAll" data-v-42ab5d0a><i class="fa-solid fa-lg fa-circle-info me-1" data-v-42ab5d0a></i><span class="d-none d-md-inline ms-2" data-v-42ab5d0a>Alles</span></a><a class="nav-link" data-bs-toggle="tab" data-bs-target="#chargepointlist" data-v-42ab5d0a><i class="fa-solid fa-lg fa-charging-station" data-v-42ab5d0a></i><span class="d-none d-md-inline ms-2" data-v-42ab5d0a>Ladepunkte</span></a>',2),Qu={key:0,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#batterylist"},Yu=Ne(()=>n("i",{class:"fa-solid fa-lg fa-car-battery"},null,-1)),Zu=Ne(()=>n("span",{class:"d-none d-md-inline ms-2"},"Speicher",-1)),Xu=[Yu,Zu],Ku=Ne(()=>n("a",{class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#smarthomelist"},[n("i",{class:"fa-solid fa-lg fa-plug"}),n("span",{class:"d-none d-md-inline ms-2"},"Smart Home")],-1)),eh={key:1,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#etPricing"},th=Ne(()=>n("i",{class:"fa-solid fa-lg fa-money-bill-1-wave"},null,-1)),ah=Ne(()=>n("span",{class:"d-none d-md-inline ms-2"},"Strompreis",-1)),nh=[th,ah],oh={key:4,id:"cpContent",class:"tab-content mx-0 pt-1"},sh={id:"showAll",class:"tab-pane active",role:"tabpanel","aria-labelledby":"showall-tab"},rh={class:"row py-0 m-0 d-flex justify-content-center"},lh={id:"chargepointlist",class:"tab-pane",role:"tabpanel","aria-labelledby":"chargepoint-tab"},ih={class:"row py-0 m-0 d-flex justify-content-center"},ch={id:"batterylist",class:"tab-pane",role:"tabpanel","aria-labelledby":"battery-tab"},dh={class:"row py-0 m-0 d-flex justify-content-center"},uh={id:"smarthomelist",class:"tab-pane",role:"tabpanel","aria-labelledby":"smarthome-tab"},hh={key:0,class:"row py-0 m-0 d-flex justify-content-center"},ph={id:"etPricing",class:"tab-pane",role:"tabpanel","aria-labelledby":"pricechart-tab"},gh={class:"row py-0 m-0 d-flex justify-content-center"},mh={class:"row p-2 mt-5"},fh={class:"col p-2"},vh=Ne(()=>n("hr",null,null,-1)),_h={class:"d-flex justify-content-between"},bh={class:"mx-4"},yh={key:0},wh=I({__name:"ColorsTheme",setup(t){const e=f(()=>[A.evuOut,A.devices,A.charging].concat(Object.values(T).map(r=>r.toPowerItem())).concat(Object.values(Ye).filter(r=>r.configured&&r.showInGraph)).concat([A.batIn,A.house])),a=le(!1);function s(){ia()}function o(){a.value=!a.value}return Ue(()=>{s(),window.addEventListener("resize",rn),eu()}),(r,l)=>(i(),h(E,null,[n("div",Nu,[n("div",qu,[m(zu)]),m(Gc),w("",!0),(i(),h("div",Fu,[m(vd,null,{item1:b(()=>[m(Un)]),item2:b(()=>[m(Ro)]),item3:b(()=>[m(ms,{"usage-details":e.value},null,8,["usage-details"])]),_:1})])),d(_).showQuickAccess?w("",!0):(i(),h("div",Ru,[m(wt),m(kt),m(St),m($t)])),d(_).showQuickAccess?(i(),h("nav",Hu,[Ju,d(ae).isBatteryConfigured?(i(),h("a",Qu,Xu)):w("",!0),Ku,d(Ae).isEtEnabled?(i(),h("a",eh,nh)):w("",!0)])):w("",!0),d(_).showQuickAccess?(i(),h("div",oh,[n("div",sh,[n("div",rh,[m(wt),m(kt),m(St),m($t)])]),n("div",lh,[n("div",ih,[m(wt)])]),n("div",ch,[n("div",dh,[m(kt)])]),n("div",uh,[Object.keys(d(Ye)).length>0?(i(),h("div",hh,[m(St)])):w("",!0)]),n("div",ph,[n("div",gh,[m($t)])])])):w("",!0)]),n("div",mh,[n("div",fh,[vh,n("div",_h,[n("p",bh,"Screen Width: "+$(d(ut).x),1),n("button",{class:"btn btn-sm btn-secondary mx-4",onClick:o}," MQ Viewer ")]),a.value?(i(),h("hr",yh)):w("",!0),a.value?(i(),B(Du,{key:1})):w("",!0)])])],64))}});const kh=W(wh,[["__scopeId","data-v-42ab5d0a"]]);const $h={},Pa=t=>(K("data-v-bfeed27e"),t=t(),ee(),t),Sh=Pa(()=>n("nav",{class:"navbar navbar-expand-lg px-3 mb-0"},[n("div",{class:"container-lg"},[n("a",{href:"/",class:"navbar-brand"},[n("span",null,"openWB")]),n("button",{class:"navbar-toggler togglebutton ps-5",type:"button","data-bs-toggle":"collapse","data-bs-target":"#mainNavbar","aria-controls":"mainNavbar","aria-expanded":"false","aria-label":"Toggle navigation"},[n("span",{class:"fa fa-ellipsis-vertical"})]),n("div",{id:"mainNavbar",class:"collapse navbar-collapse justify-content-end"},[n("div",{class:"nav navbar-nav"},[n("a",{id:"navStatus",class:"nav-link",href:"../../settings/#/Status",target:"_parent"},"Status"),n("div",{class:"nav-item dropdown"},[n("a",{id:"loggingDropdown",class:"nav-link",href:"#",role:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[j("Auswertungen "),n("i",{class:"fa-solid fa-caret-down"})]),n("div",{class:"dropdown-menu","aria-labelledby":"loggingDropdown"},[n("a",{href:"../../settings/#/Logging/ChargeLog",class:"dropdown-item",target:"_parent"},"Ladeprotokoll"),n("a",{href:"../../settings/#/Logging/Chart",class:"dropdown-item",target:"_parent"},"Diagramme")])]),n("div",{class:"nav-item dropdown"},[n("a",{id:"settingsDropdown",class:"nav-link",href:"#",role:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[j("Einstellungen "),n("i",{class:"fa-solid fa-caret-down"})]),n("div",{class:"dropdown-menu","aria-labelledby":"settingsDropdown"},[n("a",{id:"navSettings",class:"nav-link",href:"../../settings/index.html",target:"_parent"},"openWB"),n("a",{class:"nav-link","data-bs-toggle":"collapse","data-bs-target":"#themesettings","aria-expanded":"false","aria-controls":"themeSettings"},[n("span",null,[j("Look&Feel"),n("span",{class:"fa-solid fa-caret-down"})])])])])])])])],-1)),xh=Pa(()=>n("hr",{class:"m-0 p-0 mb-2"},null,-1));function Ph(t,e){return i(),h(E,null,[Sh,xh],64)}const Mh=W($h,[["render",Ph],["__scopeId","data-v-bfeed27e"]]),Ch={id:"app",class:"m-0 p-0"},Ih={class:"container-lg p-0"},Bh={class:"row p-0 m-0"},Vh={class:"col-12 p-0 m-0"},Th=I({__name:"App",setup(t){return(e,a)=>(i(),h("div",Ch,[m(Mh),n("div",Ih,[n("div",Bh,[n("div",Vh,[m(kh)])])])]))}});const Lh=Wa(Th);Ga();Lh.mount("#app");
diff --git a/packages/modules/web_themes/colors/web/assets/vendor-73164592.js b/packages/modules/web_themes/colors/web/assets/vendor-73164592.js
new file mode 100644
index 0000000000..b602803490
--- /dev/null
+++ b/packages/modules/web_themes/colors/web/assets/vendor-73164592.js
@@ -0,0 +1,53 @@
+const ln=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};function ld(t,e){const r=Object.create(null),n=t.split(",");for(let i=0;i<n.length;i++)r[n[i]]=!0;return e?i=>!!r[i.toLowerCase()]:i=>!!r[i]}const Fe={},Ai=[],qt=()=>{},AE=()=>!1,ME=/^on[^a-z]/,bl=t=>ME.test(t),ud=t=>t.startsWith("onUpdate:"),Ye=Object.assign,cd=(t,e)=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)},CE=Object.prototype.hasOwnProperty,Pe=(t,e)=>CE.call(t,e),we=Array.isArray,Mi=t=>mo(t)==="[object Map]",ns=t=>mo(t)==="[object Set]",ip=t=>mo(t)==="[object Date]",Ae=t=>typeof t=="function",We=t=>typeof t=="string",Js=t=>typeof t=="symbol",Ue=t=>t!==null&&typeof t=="object",ew=t=>Ue(t)&&Ae(t.then)&&Ae(t.catch),tw=Object.prototype.toString,mo=t=>tw.call(t),IE=t=>mo(t).slice(8,-1),rw=t=>mo(t)==="[object Object]",fd=t=>We(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,fa=ld(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_l=t=>{const e=Object.create(null);return r=>e[r]||(e[r]=t(r))},OE=/-(\w)/g,hr=_l(t=>t.replace(OE,(e,r)=>r?r.toUpperCase():"")),PE=/\B([A-Z])/g,is=_l(t=>t.replace(PE,"-$1").toLowerCase()),vl=_l(t=>t.charAt(0).toUpperCase()+t.slice(1)),Iu=_l(t=>t?`on${vl(t)}`:""),Zs=(t,e)=>!Object.is(t,e),da=(t,e)=>{for(let r=0;r<t.length;r++)t[r](e)},$a=(t,e,r)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:r})},ka=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let sp;const Xc=()=>sp||(sp=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof ln<"u"?ln:{});function dd(t){if(we(t)){const e={};for(let r=0;r<t.length;r++){const n=t[r],i=We(n)?$E(n):dd(n);if(i)for(const s in i)e[s]=i[s]}return e}else{if(We(t))return t;if(Ue(t))return t}}const RE=/;(?![^(]*\))/g,LE=/:([^]+)/,NE=/\/\*[^]*?\*\//g;function $E(t){const e={};return t.replace(NE,"").split(RE).forEach(r=>{if(r){const n=r.split(LE);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function hd(t){let e="";if(We(t))e=t;else if(we(t))for(let r=0;r<t.length;r++){const n=hd(t[r]);n&&(e+=n+" ")}else if(Ue(t))for(const r in t)t[r]&&(e+=r+" ");return e.trim()}const kE="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",DE=ld(kE);function nw(t){return!!t||t===""}function BE(t,e){if(t.length!==e.length)return!1;let r=!0;for(let n=0;r&&n<t.length;n++)r=yo(t[n],e[n]);return r}function yo(t,e){if(t===e)return!0;let r=ip(t),n=ip(e);if(r||n)return r&&n?t.getTime()===e.getTime():!1;if(r=Js(t),n=Js(e),r||n)return t===e;if(r=we(t),n=we(e),r||n)return r&&n?BE(t,e):!1;if(r=Ue(t),n=Ue(e),r||n){if(!r||!n)return!1;const i=Object.keys(t).length,s=Object.keys(e).length;if(i!==s)return!1;for(const o in t){const a=t.hasOwnProperty(o),l=e.hasOwnProperty(o);if(a&&!l||!a&&l||!yo(t[o],e[o]))return!1}}return String(t)===String(e)}function pd(t,e){return t.findIndex(r=>yo(r,e))}const hW=t=>We(t)?t:t==null?"":we(t)||Ue(t)&&(t.toString===tw||!Ae(t.toString))?JSON.stringify(t,iw,2):String(t),iw=(t,e)=>e&&e.__v_isRef?iw(t,e.value):Mi(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:ns(e)?{[`Set(${e.size})`]:[...e.values()]}:Ue(e)&&!we(e)&&!rw(e)?String(e):e;let Bt;class FE{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Bt,!e&&Bt&&(this.index=(Bt.scopes||(Bt.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const r=Bt;try{return Bt=this,e()}finally{Bt=r}}}on(){Bt=this}off(){Bt=this.parent}stop(e){if(this._active){let r,n;for(r=0,n=this.effects.length;r<n;r++)this.effects[r].stop();for(r=0,n=this.cleanups.length;r<n;r++)this.cleanups[r]();if(this.scopes)for(r=0,n=this.scopes.length;r<n;r++)this.scopes[r].stop(!0);if(!this.detached&&this.parent&&!e){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0,this._active=!1}}}function UE(t,e=Bt){e&&e.active&&e.effects.push(t)}function jE(){return Bt}const gd=t=>{const e=new Set(t);return e.w=0,e.n=0,e},sw=t=>(t.w&un)>0,ow=t=>(t.n&un)>0,zE=({deps:t})=>{if(t.length)for(let e=0;e<t.length;e++)t[e].w|=un},HE=t=>{const{deps:e}=t;if(e.length){let r=0;for(let n=0;n<e.length;n++){const i=e[n];sw(i)&&!ow(i)?i.delete(t):e[r++]=i,i.w&=~un,i.n&=~un}e.length=r}},Qc=new WeakMap;let Ps=0,un=1;const Jc=30;let jt;const Fn=Symbol(""),Zc=Symbol("");class md{constructor(e,r=null,n){this.fn=e,this.scheduler=r,this.active=!0,this.deps=[],this.parent=void 0,UE(this,n)}run(){if(!this.active)return this.fn();let e=jt,r=on;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=jt,jt=this,on=!0,un=1<<++Ps,Ps<=Jc?zE(this):op(this),this.fn()}finally{Ps<=Jc&&HE(this),un=1<<--Ps,jt=this.parent,on=r,this.parent=void 0,this.deferStop&&this.stop()}}stop(){jt===this?this.deferStop=!0:this.active&&(op(this),this.onStop&&this.onStop(),this.active=!1)}}function op(t){const{deps:e}=t;if(e.length){for(let r=0;r<e.length;r++)e[r].delete(t);e.length=0}}let on=!0;const aw=[];function ss(){aw.push(on),on=!1}function os(){const t=aw.pop();on=t===void 0?!0:t}function yt(t,e,r){if(on&&jt){let n=Qc.get(t);n||Qc.set(t,n=new Map);let i=n.get(r);i||n.set(r,i=gd()),lw(i)}}function lw(t,e){let r=!1;Ps<=Jc?ow(t)||(t.n|=un,r=!sw(t)):r=!t.has(jt),r&&(t.add(jt),jt.deps.push(t))}function Lr(t,e,r,n,i,s){const o=Qc.get(t);if(!o)return;let a=[];if(e==="clear")a=[...o.values()];else if(r==="length"&&we(t)){const l=Number(n);o.forEach((u,c)=>{(c==="length"||c>=l)&&a.push(u)})}else switch(r!==void 0&&a.push(o.get(r)),e){case"add":we(t)?fd(r)&&a.push(o.get("length")):(a.push(o.get(Fn)),Mi(t)&&a.push(o.get(Zc)));break;case"delete":we(t)||(a.push(o.get(Fn)),Mi(t)&&a.push(o.get(Zc)));break;case"set":Mi(t)&&a.push(o.get(Fn));break}if(a.length===1)a[0]&&ef(a[0]);else{const l=[];for(const u of a)u&&l.push(...u);ef(gd(l))}}function ef(t,e){const r=we(t)?t:[...t];for(const n of r)n.computed&&ap(n);for(const n of r)n.computed||ap(n)}function ap(t,e){(t!==jt||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}const WE=ld("__proto__,__v_isRef,__isVue"),uw=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Js)),VE=yd(),qE=yd(!1,!0),YE=yd(!0),lp=KE();function KE(){const t={};return["includes","indexOf","lastIndexOf"].forEach(e=>{t[e]=function(...r){const n=Ne(this);for(let s=0,o=this.length;s<o;s++)yt(n,"get",s+"");const i=n[e](...r);return i===-1||i===!1?n[e](...r.map(Ne)):i}}),["push","pop","shift","unshift","splice"].forEach(e=>{t[e]=function(...r){ss();const n=Ne(this)[e].apply(this,r);return os(),n}}),t}function GE(t){const e=Ne(this);return yt(e,"has",t),e.hasOwnProperty(t)}function yd(t=!1,e=!1){return function(n,i,s){if(i==="__v_isReactive")return!t;if(i==="__v_isReadonly")return t;if(i==="__v_isShallow")return e;if(i==="__v_raw"&&s===(t?e?fS:pw:e?hw:dw).get(n))return n;const o=we(n);if(!t){if(o&&Pe(lp,i))return Reflect.get(lp,i,s);if(i==="hasOwnProperty")return GE}const a=Reflect.get(n,i,s);return(Js(i)?uw.has(i):WE(i))||(t||yt(n,"get",i),e)?a:rt(a)?o&&fd(i)?a:a.value:Ue(a)?t?gw(a):_d(a):a}}const XE=cw(),QE=cw(!0);function cw(t=!1){return function(r,n,i,s){let o=r[n];if(ki(o)&&rt(o)&&!rt(i))return!1;if(!t&&(!Da(i)&&!ki(i)&&(o=Ne(o),i=Ne(i)),!we(r)&&rt(o)&&!rt(i)))return o.value=i,!0;const a=we(r)&&fd(n)?Number(n)<r.length:Pe(r,n),l=Reflect.set(r,n,i,s);return r===Ne(s)&&(a?Zs(i,o)&&Lr(r,"set",n,i):Lr(r,"add",n,i)),l}}function JE(t,e){const r=Pe(t,e);t[e];const n=Reflect.deleteProperty(t,e);return n&&r&&Lr(t,"delete",e,void 0),n}function ZE(t,e){const r=Reflect.has(t,e);return(!Js(e)||!uw.has(e))&&yt(t,"has",e),r}function eS(t){return yt(t,"iterate",we(t)?"length":Fn),Reflect.ownKeys(t)}const fw={get:VE,set:XE,deleteProperty:JE,has:ZE,ownKeys:eS},tS={get:YE,set(t,e){return!0},deleteProperty(t,e){return!0}},rS=Ye({},fw,{get:qE,set:QE}),wd=t=>t,El=t=>Reflect.getPrototypeOf(t);function Do(t,e,r=!1,n=!1){t=t.__v_raw;const i=Ne(t),s=Ne(e);r||(e!==s&&yt(i,"get",e),yt(i,"get",s));const{has:o}=El(i),a=n?wd:r?Ed:eo;if(o.call(i,e))return a(t.get(e));if(o.call(i,s))return a(t.get(s));t!==i&&t.get(e)}function Bo(t,e=!1){const r=this.__v_raw,n=Ne(r),i=Ne(t);return e||(t!==i&&yt(n,"has",t),yt(n,"has",i)),t===i?r.has(t):r.has(t)||r.has(i)}function Fo(t,e=!1){return t=t.__v_raw,!e&&yt(Ne(t),"iterate",Fn),Reflect.get(t,"size",t)}function up(t){t=Ne(t);const e=Ne(this);return El(e).has.call(e,t)||(e.add(t),Lr(e,"add",t,t)),this}function cp(t,e){e=Ne(e);const r=Ne(this),{has:n,get:i}=El(r);let s=n.call(r,t);s||(t=Ne(t),s=n.call(r,t));const o=i.call(r,t);return r.set(t,e),s?Zs(e,o)&&Lr(r,"set",t,e):Lr(r,"add",t,e),this}function fp(t){const e=Ne(this),{has:r,get:n}=El(e);let i=r.call(e,t);i||(t=Ne(t),i=r.call(e,t)),n&&n.call(e,t);const s=e.delete(t);return i&&Lr(e,"delete",t,void 0),s}function dp(){const t=Ne(this),e=t.size!==0,r=t.clear();return e&&Lr(t,"clear",void 0,void 0),r}function Uo(t,e){return function(n,i){const s=this,o=s.__v_raw,a=Ne(o),l=e?wd:t?Ed:eo;return!t&&yt(a,"iterate",Fn),o.forEach((u,c)=>n.call(i,l(u),l(c),s))}}function jo(t,e,r){return function(...n){const i=this.__v_raw,s=Ne(i),o=Mi(s),a=t==="entries"||t===Symbol.iterator&&o,l=t==="keys"&&o,u=i[t](...n),c=r?wd:e?Ed:eo;return!e&&yt(s,"iterate",l?Zc:Fn),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:a?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Gr(t){return function(...e){return t==="delete"?!1:this}}function nS(){const t={get(s){return Do(this,s)},get size(){return Fo(this)},has:Bo,add:up,set:cp,delete:fp,clear:dp,forEach:Uo(!1,!1)},e={get(s){return Do(this,s,!1,!0)},get size(){return Fo(this)},has:Bo,add:up,set:cp,delete:fp,clear:dp,forEach:Uo(!1,!0)},r={get(s){return Do(this,s,!0)},get size(){return Fo(this,!0)},has(s){return Bo.call(this,s,!0)},add:Gr("add"),set:Gr("set"),delete:Gr("delete"),clear:Gr("clear"),forEach:Uo(!0,!1)},n={get(s){return Do(this,s,!0,!0)},get size(){return Fo(this,!0)},has(s){return Bo.call(this,s,!0)},add:Gr("add"),set:Gr("set"),delete:Gr("delete"),clear:Gr("clear"),forEach:Uo(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{t[s]=jo(s,!1,!1),r[s]=jo(s,!0,!1),e[s]=jo(s,!1,!0),n[s]=jo(s,!0,!0)}),[t,r,e,n]}const[iS,sS,oS,aS]=nS();function bd(t,e){const r=e?t?aS:oS:t?sS:iS;return(n,i,s)=>i==="__v_isReactive"?!t:i==="__v_isReadonly"?t:i==="__v_raw"?n:Reflect.get(Pe(r,i)&&i in n?r:n,i,s)}const lS={get:bd(!1,!1)},uS={get:bd(!1,!0)},cS={get:bd(!0,!1)},dw=new WeakMap,hw=new WeakMap,pw=new WeakMap,fS=new WeakMap;function dS(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function hS(t){return t.__v_skip||!Object.isExtensible(t)?0:dS(IE(t))}function _d(t){return ki(t)?t:vd(t,!1,fw,lS,dw)}function pS(t){return vd(t,!1,rS,uS,hw)}function gw(t){return vd(t,!0,tS,cS,pw)}function vd(t,e,r,n,i){if(!Ue(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const s=i.get(t);if(s)return s;const o=hS(t);if(o===0)return t;const a=new Proxy(t,o===2?n:r);return i.set(t,a),a}function Ci(t){return ki(t)?Ci(t.__v_raw):!!(t&&t.__v_isReactive)}function ki(t){return!!(t&&t.__v_isReadonly)}function Da(t){return!!(t&&t.__v_isShallow)}function mw(t){return Ci(t)||ki(t)}function Ne(t){const e=t&&t.__v_raw;return e?Ne(e):t}function yw(t){return $a(t,"__v_skip",!0),t}const eo=t=>Ue(t)?_d(t):t,Ed=t=>Ue(t)?gw(t):t;function ww(t){on&&jt&&(t=Ne(t),lw(t.dep||(t.dep=gd())))}function bw(t,e){t=Ne(t);const r=t.dep;r&&ef(r)}function rt(t){return!!(t&&t.__v_isRef===!0)}function pW(t){return gS(t,!1)}function gS(t,e){return rt(t)?t:new mS(t,e)}class mS{constructor(e,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?e:Ne(e),this._value=r?e:eo(e)}get value(){return ww(this),this._value}set value(e){const r=this.__v_isShallow||Da(e)||ki(e);e=r?e:Ne(e),Zs(e,this._rawValue)&&(this._rawValue=e,this._value=r?e:eo(e),bw(this))}}function yS(t){return rt(t)?t.value:t}const wS={get:(t,e,r)=>yS(Reflect.get(t,e,r)),set:(t,e,r,n)=>{const i=t[e];return rt(i)&&!rt(r)?(i.value=r,!0):Reflect.set(t,e,r,n)}};function _w(t){return Ci(t)?t:new Proxy(t,wS)}class bS{constructor(e,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new md(e,()=>{this._dirty||(this._dirty=!0,bw(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const e=Ne(this);return ww(e),(e._dirty||!e._cacheable)&&(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function _S(t,e,r=!1){let n,i;const s=Ae(t);return s?(n=t,i=qt):(n=t.get,i=t.set),new bS(n,i,s||!i,r)}function an(t,e,r,n){let i;try{i=n?t(...n):t()}catch(s){Sl(s,e,r)}return i}function Yt(t,e,r,n){if(Ae(t)){const s=an(t,e,r,n);return s&&ew(s)&&s.catch(o=>{Sl(o,e,r)}),s}const i=[];for(let s=0;s<t.length;s++)i.push(Yt(t[s],e,r,n));return i}function Sl(t,e,r,n=!0){const i=e?e.vnode:null;if(e){let s=e.parent;const o=e.proxy,a=r;for(;s;){const u=s.ec;if(u){for(let c=0;c<u.length;c++)if(u[c](t,o,a)===!1)return}s=s.parent}const l=e.appContext.config.errorHandler;if(l){an(l,null,10,[t,o,a]);return}}vS(t,r,i,n)}function vS(t,e,r,n=!0){console.error(t)}let to=!1,tf=!1;const tt=[];let nr=0;const Ii=[];let xr=null,On=0;const vw=Promise.resolve();let Sd=null;function ES(t){const e=Sd||vw;return t?e.then(this?t.bind(this):t):e}function SS(t){let e=nr+1,r=tt.length;for(;e<r;){const n=e+r>>>1;ro(tt[n])<t?e=n+1:r=n}return e}function xd(t){(!tt.length||!tt.includes(t,to&&t.allowRecurse?nr+1:nr))&&(t.id==null?tt.push(t):tt.splice(SS(t.id),0,t),Ew())}function Ew(){!to&&!tf&&(tf=!0,Sd=vw.then(xw))}function xS(t){const e=tt.indexOf(t);e>nr&&tt.splice(e,1)}function TS(t){we(t)?Ii.push(...t):(!xr||!xr.includes(t,t.allowRecurse?On+1:On))&&Ii.push(t),Ew()}function hp(t,e=to?nr+1:0){for(;e<tt.length;e++){const r=tt[e];r&&r.pre&&(tt.splice(e,1),e--,r())}}function Sw(t){if(Ii.length){const e=[...new Set(Ii)];if(Ii.length=0,xr){xr.push(...e);return}for(xr=e,xr.sort((r,n)=>ro(r)-ro(n)),On=0;On<xr.length;On++)xr[On]();xr=null,On=0}}const ro=t=>t.id==null?1/0:t.id,AS=(t,e)=>{const r=ro(t)-ro(e);if(r===0){if(t.pre&&!e.pre)return-1;if(e.pre&&!t.pre)return 1}return r};function xw(t){tf=!1,to=!0,tt.sort(AS);const e=qt;try{for(nr=0;nr<tt.length;nr++){const r=tt[nr];r&&r.active!==!1&&an(r,null,14)}}finally{nr=0,tt.length=0,Sw(),to=!1,Sd=null,(tt.length||Ii.length)&&xw()}}function MS(t,e,...r){if(t.isUnmounted)return;const n=t.vnode.props||Fe;let i=r;const s=e.startsWith("update:"),o=s&&e.slice(7);if(o&&o in n){const c=`${o==="modelValue"?"model":o}Modifiers`,{number:f,trim:d}=n[c]||Fe;d&&(i=r.map(h=>We(h)?h.trim():h)),f&&(i=r.map(ka))}let a,l=n[a=Iu(e)]||n[a=Iu(hr(e))];!l&&s&&(l=n[a=Iu(is(e))]),l&&Yt(l,t,6,i);const u=n[a+"Once"];if(u){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,Yt(u,t,6,i)}}function Tw(t,e,r=!1){const n=e.emitsCache,i=n.get(t);if(i!==void 0)return i;const s=t.emits;let o={},a=!1;if(!Ae(t)){const l=u=>{const c=Tw(u,e,!0);c&&(a=!0,Ye(o,c))};!r&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!a?(Ue(t)&&n.set(t,null),null):(we(s)?s.forEach(l=>o[l]=null):Ye(o,s),Ue(t)&&n.set(t,o),o)}function xl(t,e){return!t||!bl(e)?!1:(e=e.slice(2).replace(/Once$/,""),Pe(t,e[0].toLowerCase()+e.slice(1))||Pe(t,is(e))||Pe(t,e))}let nt=null,Tl=null;function Ba(t){const e=nt;return nt=t,Tl=t&&t.type.__scopeId||null,e}function gW(t){Tl=t}function mW(){Tl=null}function CS(t,e=nt,r){if(!e||t._n)return t;const n=(...i)=>{n._d&&xp(-1);const s=Ba(e);let o;try{o=t(...i)}finally{Ba(s),n._d&&xp(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Ou(t){const{type:e,vnode:r,proxy:n,withProxy:i,props:s,propsOptions:[o],slots:a,attrs:l,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:g,inheritAttrs:y}=t;let b,E;const _=Ba(t);try{if(r.shapeFlag&4){const T=i||n;b=rr(c.call(T,T,f,s,h,d,g)),E=l}else{const T=e;b=rr(T.length>1?T(s,{attrs:l,slots:a,emit:u}):T(s,null)),E=e.props?l:IS(l)}}catch(T){zs.length=0,Sl(T,t,1),b=Kt(cn)}let v=b;if(E&&y!==!1){const T=Object.keys(E),{shapeFlag:C}=v;T.length&&C&7&&(o&&T.some(ud)&&(E=OS(E,o)),v=Di(v,E))}return r.dirs&&(v=Di(v),v.dirs=v.dirs?v.dirs.concat(r.dirs):r.dirs),r.transition&&(v.transition=r.transition),b=v,Ba(_),b}const IS=t=>{let e;for(const r in t)(r==="class"||r==="style"||bl(r))&&((e||(e={}))[r]=t[r]);return e},OS=(t,e)=>{const r={};for(const n in t)(!ud(n)||!(n.slice(9)in e))&&(r[n]=t[n]);return r};function PS(t,e,r){const{props:n,children:i,component:s}=t,{props:o,children:a,patchFlag:l}=e,u=s.emitsOptions;if(e.dirs||e.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?pp(n,o,u):!!o;if(l&8){const c=e.dynamicProps;for(let f=0;f<c.length;f++){const d=c[f];if(o[d]!==n[d]&&!xl(u,d))return!0}}}else return(i||a)&&(!a||!a.$stable)?!0:n===o?!1:n?o?pp(n,o,u):!0:!!o;return!1}function pp(t,e,r){const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!0;for(let i=0;i<n.length;i++){const s=n[i];if(e[s]!==t[s]&&!xl(r,s))return!0}return!1}function RS({vnode:t,parent:e},r){for(;e&&e.subTree===t;)(t=e.vnode).el=r,e=e.parent}const LS=t=>t.__isSuspense;function NS(t,e){e&&e.pendingBranch?we(t)?e.effects.push(...t):e.effects.push(t):TS(t)}function yW(t,e){return Td(t,null,e)}const zo={};function Pu(t,e,r){return Td(t,e,r)}function Td(t,e,{immediate:r,deep:n,flush:i,onTrack:s,onTrigger:o}=Fe){var a;const l=jE()===((a=Xe)==null?void 0:a.scope)?Xe:null;let u,c=!1,f=!1;if(rt(t)?(u=()=>t.value,c=Da(t)):Ci(t)?(u=()=>t,n=!0):we(t)?(f=!0,c=t.some(T=>Ci(T)||Da(T)),u=()=>t.map(T=>{if(rt(T))return T.value;if(Ci(T))return Rn(T);if(Ae(T))return an(T,l,2)})):Ae(t)?e?u=()=>an(t,l,2):u=()=>{if(!(l&&l.isUnmounted))return d&&d(),Yt(t,l,3,[h])}:u=qt,e&&n){const T=u;u=()=>Rn(T())}let d,h=T=>{d=_.onStop=()=>{an(T,l,4)}},g;if(io)if(h=qt,e?r&&Yt(e,l,3,[u(),f?[]:void 0,h]):u(),i==="sync"){const T=O1();g=T.__watcherHandles||(T.__watcherHandles=[])}else return qt;let y=f?new Array(t.length).fill(zo):zo;const b=()=>{if(_.active)if(e){const T=_.run();(n||c||(f?T.some((C,O)=>Zs(C,y[O])):Zs(T,y)))&&(d&&d(),Yt(e,l,3,[T,y===zo?void 0:f&&y[0]===zo?[]:y,h]),y=T)}else _.run()};b.allowRecurse=!!e;let E;i==="sync"?E=b:i==="post"?E=()=>pt(b,l&&l.suspense):(b.pre=!0,l&&(b.id=l.uid),E=()=>xd(b));const _=new md(u,E);e?r?b():y=_.run():i==="post"?pt(_.run.bind(_),l&&l.suspense):_.run();const v=()=>{_.stop(),l&&l.scope&&cd(l.scope.effects,_)};return g&&g.push(v),v}function $S(t,e,r){const n=this.proxy,i=We(t)?t.includes(".")?Aw(n,t):()=>n[t]:t.bind(n,n);let s;Ae(e)?s=e:(s=e.handler,r=e);const o=Xe;Bi(this);const a=Td(i,s.bind(n),r);return o?Bi(o):Un(),a}function Aw(t,e){const r=e.split(".");return()=>{let n=t;for(let i=0;i<r.length&&n;i++)n=n[r[i]];return n}}function Rn(t,e){if(!Ue(t)||t.__v_skip||(e=e||new Set,e.has(t)))return t;if(e.add(t),rt(t))Rn(t.value,e);else if(we(t))for(let r=0;r<t.length;r++)Rn(t[r],e);else if(ns(t)||Mi(t))t.forEach(r=>{Rn(r,e)});else if(rw(t))for(const r in t)Rn(t[r],e);return t}function wW(t,e){const r=nt;if(r===null)return t;const n=Il(r)||r.proxy,i=t.dirs||(t.dirs=[]);for(let s=0;s<e.length;s++){let[o,a,l,u=Fe]=e[s];o&&(Ae(o)&&(o={mounted:o,updated:o}),o.deep&&Rn(a),i.push({dir:o,instance:n,value:a,oldValue:void 0,arg:l,modifiers:u}))}return t}function xn(t,e,r,n){const i=t.dirs,s=e&&e.dirs;for(let o=0;o<i.length;o++){const a=i[o];s&&(a.oldValue=s[o].value);let l=a.dir[n];l&&(ss(),Yt(l,r,8,[t.el,a,t,e]),os())}}function bW(t,e){return Ae(t)?(()=>Ye({name:t.name},e,{setup:t}))():t}const Us=t=>!!t.type.__asyncLoader,Mw=t=>t.type.__isKeepAlive;function kS(t,e){Cw(t,"a",e)}function DS(t,e){Cw(t,"da",e)}function Cw(t,e,r=Xe){const n=t.__wdc||(t.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return t()});if(Al(e,n,r),r){let i=r.parent;for(;i&&i.parent;)Mw(i.parent.vnode)&&BS(n,e,r,i),i=i.parent}}function BS(t,e,r,n){const i=Al(e,t,n,!0);Iw(()=>{cd(n[e],i)},r)}function Al(t,e,r=Xe,n=!1){if(r){const i=r[t]||(r[t]=[]),s=e.__weh||(e.__weh=(...o)=>{if(r.isUnmounted)return;ss(),Bi(r);const a=Yt(e,r,t,o);return Un(),os(),a});return n?i.unshift(s):i.push(s),s}}const zr=t=>(e,r=Xe)=>(!io||t==="sp")&&Al(t,(...n)=>e(...n),r),FS=zr("bm"),US=zr("m"),jS=zr("bu"),zS=zr("u"),HS=zr("bum"),Iw=zr("um"),WS=zr("sp"),VS=zr("rtg"),qS=zr("rtc");function YS(t,e=Xe){Al("ec",t,e)}const Ow="components";function _W(t,e){return GS(Ow,t,!0,e)||t}const KS=Symbol.for("v-ndc");function GS(t,e,r=!0,n=!1){const i=nt||Xe;if(i){const s=i.type;if(t===Ow){const a=A1(s,!1);if(a&&(a===e||a===hr(e)||a===vl(hr(e))))return s}const o=gp(i[t]||s[t],e)||gp(i.appContext[t],e);return!o&&n?s:o}}function gp(t,e){return t&&(t[e]||t[hr(e)]||t[vl(hr(e))])}function vW(t,e,r,n){let i;const s=r&&r[n];if(we(t)||We(t)){i=new Array(t.length);for(let o=0,a=t.length;o<a;o++)i[o]=e(t[o],o,void 0,s&&s[o])}else if(typeof t=="number"){i=new Array(t);for(let o=0;o<t;o++)i[o]=e(o+1,o,void 0,s&&s[o])}else if(Ue(t))if(t[Symbol.iterator])i=Array.from(t,(o,a)=>e(o,a,void 0,s&&s[a]));else{const o=Object.keys(t);i=new Array(o.length);for(let a=0,l=o.length;a<l;a++){const u=o[a];i[a]=e(t[u],u,a,s&&s[a])}}else i=[];return r&&(r[n]=i),i}function EW(t,e,r={},n,i){if(nt.isCE||nt.parent&&Us(nt.parent)&&nt.parent.isCE)return e!=="default"&&(r.name=e),Kt("slot",r,n&&n());let s=t[e];s&&s._c&&(s._d=!1),Uw();const o=s&&Pw(s(r)),a=zw(Ft,{key:r.key||o&&o.key||`_${e}`},o||(n?n():[]),o&&t._===1?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),s&&s._c&&(s._d=!0),a}function Pw(t){return t.some(e=>Hw(e)?!(e.type===cn||e.type===Ft&&!Pw(e.children)):!0)?t:null}const rf=t=>t?qw(t)?Il(t)||t.proxy:rf(t.parent):null,js=Ye(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>rf(t.parent),$root:t=>rf(t.root),$emit:t=>t.emit,$options:t=>Ad(t),$forceUpdate:t=>t.f||(t.f=()=>xd(t.update)),$nextTick:t=>t.n||(t.n=ES.bind(t.proxy)),$watch:t=>$S.bind(t)}),Ru=(t,e)=>t!==Fe&&!t.__isScriptSetup&&Pe(t,e),XS={get({_:t},e){const{ctx:r,setupState:n,data:i,props:s,accessCache:o,type:a,appContext:l}=t;let u;if(e[0]!=="$"){const h=o[e];if(h!==void 0)switch(h){case 1:return n[e];case 2:return i[e];case 4:return r[e];case 3:return s[e]}else{if(Ru(n,e))return o[e]=1,n[e];if(i!==Fe&&Pe(i,e))return o[e]=2,i[e];if((u=t.propsOptions[0])&&Pe(u,e))return o[e]=3,s[e];if(r!==Fe&&Pe(r,e))return o[e]=4,r[e];nf&&(o[e]=0)}}const c=js[e];let f,d;if(c)return e==="$attrs"&&yt(t,"get",e),c(t);if((f=a.__cssModules)&&(f=f[e]))return f;if(r!==Fe&&Pe(r,e))return o[e]=4,r[e];if(d=l.config.globalProperties,Pe(d,e))return d[e]},set({_:t},e,r){const{data:n,setupState:i,ctx:s}=t;return Ru(i,e)?(i[e]=r,!0):n!==Fe&&Pe(n,e)?(n[e]=r,!0):Pe(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=r,!0)},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:i,propsOptions:s}},o){let a;return!!r[o]||t!==Fe&&Pe(t,o)||Ru(e,o)||(a=s[0])&&Pe(a,o)||Pe(n,o)||Pe(js,o)||Pe(i.config.globalProperties,o)},defineProperty(t,e,r){return r.get!=null?t._.accessCache[e]=0:Pe(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function mp(t){return we(t)?t.reduce((e,r)=>(e[r]=null,e),{}):t}let nf=!0;function QS(t){const e=Ad(t),r=t.proxy,n=t.ctx;nf=!1,e.beforeCreate&&yp(e.beforeCreate,t,"bc");const{data:i,computed:s,methods:o,watch:a,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:g,activated:y,deactivated:b,beforeDestroy:E,beforeUnmount:_,destroyed:v,unmounted:T,render:C,renderTracked:O,renderTriggered:D,errorCaptured:F,serverPrefetch:L,expose:U,inheritAttrs:k,components:W,directives:$,filters:I}=e;if(u&&JS(u,n,null),o)for(const H in o){const K=o[H];Ae(K)&&(n[H]=K.bind(r))}if(i){const H=i.call(r,r);Ue(H)&&(t.data=_d(H))}if(nf=!0,s)for(const H in s){const K=s[H],X=Ae(K)?K.bind(r,r):Ae(K.get)?K.get.bind(r,r):qt,Z=!Ae(K)&&Ae(K.set)?K.set.bind(r):qt,ce=C1({get:X,set:Z});Object.defineProperty(n,H,{enumerable:!0,configurable:!0,get:()=>ce.value,set:pe=>ce.value=pe})}if(a)for(const H in a)Rw(a[H],n,r,H);if(l){const H=Ae(l)?l.call(r):l;Reflect.ownKeys(H).forEach(K=>{i1(K,H[K])})}c&&yp(c,t,"c");function Q(H,K){we(K)?K.forEach(X=>H(X.bind(r))):K&&H(K.bind(r))}if(Q(FS,f),Q(US,d),Q(jS,h),Q(zS,g),Q(kS,y),Q(DS,b),Q(YS,F),Q(qS,O),Q(VS,D),Q(HS,_),Q(Iw,T),Q(WS,L),we(U))if(U.length){const H=t.exposed||(t.exposed={});U.forEach(K=>{Object.defineProperty(H,K,{get:()=>r[K],set:X=>r[K]=X})})}else t.exposed||(t.exposed={});C&&t.render===qt&&(t.render=C),k!=null&&(t.inheritAttrs=k),W&&(t.components=W),$&&(t.directives=$)}function JS(t,e,r=qt){we(t)&&(t=sf(t));for(const n in t){const i=t[n];let s;Ue(i)?"default"in i?s=ha(i.from||n,i.default,!0):s=ha(i.from||n):s=ha(i),rt(s)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):e[n]=s}}function yp(t,e,r){Yt(we(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,r)}function Rw(t,e,r,n){const i=n.includes(".")?Aw(r,n):()=>r[n];if(We(t)){const s=e[t];Ae(s)&&Pu(i,s)}else if(Ae(t))Pu(i,t.bind(r));else if(Ue(t))if(we(t))t.forEach(s=>Rw(s,e,r,n));else{const s=Ae(t.handler)?t.handler.bind(r):e[t.handler];Ae(s)&&Pu(i,s,t)}}function Ad(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=t.appContext,a=s.get(e);let l;return a?l=a:!i.length&&!r&&!n?l=e:(l={},i.length&&i.forEach(u=>Fa(l,u,o,!0)),Fa(l,e,o)),Ue(e)&&s.set(e,l),l}function Fa(t,e,r,n=!1){const{mixins:i,extends:s}=e;s&&Fa(t,s,r,!0),i&&i.forEach(o=>Fa(t,o,r,!0));for(const o in e)if(!(n&&o==="expose")){const a=ZS[o]||r&&r[o];t[o]=a?a(t[o],e[o]):e[o]}return t}const ZS={data:wp,props:bp,emits:bp,methods:Rs,computed:Rs,beforeCreate:ot,created:ot,beforeMount:ot,mounted:ot,beforeUpdate:ot,updated:ot,beforeDestroy:ot,beforeUnmount:ot,destroyed:ot,unmounted:ot,activated:ot,deactivated:ot,errorCaptured:ot,serverPrefetch:ot,components:Rs,directives:Rs,watch:t1,provide:wp,inject:e1};function wp(t,e){return e?t?function(){return Ye(Ae(t)?t.call(this,this):t,Ae(e)?e.call(this,this):e)}:e:t}function e1(t,e){return Rs(sf(t),sf(e))}function sf(t){if(we(t)){const e={};for(let r=0;r<t.length;r++)e[t[r]]=t[r];return e}return t}function ot(t,e){return t?[...new Set([].concat(t,e))]:e}function Rs(t,e){return t?Ye(Object.create(null),t,e):e}function bp(t,e){return t?we(t)&&we(e)?[...new Set([...t,...e])]:Ye(Object.create(null),mp(t),mp(e??{})):e}function t1(t,e){if(!t)return e;if(!e)return t;const r=Ye(Object.create(null),t);for(const n in e)r[n]=ot(t[n],e[n]);return r}function Lw(){return{app:null,config:{isNativeTag:AE,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let r1=0;function n1(t,e){return function(n,i=null){Ae(n)||(n=Ye({},n)),i!=null&&!Ue(i)&&(i=null);const s=Lw(),o=new Set;let a=!1;const l=s.app={_uid:r1++,_component:n,_props:i,_container:null,_context:s,_instance:null,version:P1,get config(){return s.config},set config(u){},use(u,...c){return o.has(u)||(u&&Ae(u.install)?(o.add(u),u.install(l,...c)):Ae(u)&&(o.add(u),u(l,...c))),l},mixin(u){return s.mixins.includes(u)||s.mixins.push(u),l},component(u,c){return c?(s.components[u]=c,l):s.components[u]},directive(u,c){return c?(s.directives[u]=c,l):s.directives[u]},mount(u,c,f){if(!a){const d=Kt(n,i);return d.appContext=s,c&&e?e(d,u):t(d,u,f),a=!0,l._container=u,u.__vue_app__=l,Il(d.component)||d.component.proxy}},unmount(){a&&(t(null,l._container),delete l._container.__vue_app__)},provide(u,c){return s.provides[u]=c,l},runWithContext(u){Ua=l;try{return u()}finally{Ua=null}}};return l}}let Ua=null;function i1(t,e){if(Xe){let r=Xe.provides;const n=Xe.parent&&Xe.parent.provides;n===r&&(r=Xe.provides=Object.create(n)),r[t]=e}}function ha(t,e,r=!1){const n=Xe||nt;if(n||Ua){const i=n?n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:Ua._context.provides;if(i&&t in i)return i[t];if(arguments.length>1)return r&&Ae(e)?e.call(n&&n.proxy):e}}function s1(t,e,r,n=!1){const i={},s={};$a(s,Cl,1),t.propsDefaults=Object.create(null),Nw(t,e,i,s);for(const o in t.propsOptions[0])o in i||(i[o]=void 0);r?t.props=n?i:pS(i):t.type.props?t.props=i:t.props=s,t.attrs=s}function o1(t,e,r,n){const{props:i,attrs:s,vnode:{patchFlag:o}}=t,a=Ne(i),[l]=t.propsOptions;let u=!1;if((n||o>0)&&!(o&16)){if(o&8){const c=t.vnode.dynamicProps;for(let f=0;f<c.length;f++){let d=c[f];if(xl(t.emitsOptions,d))continue;const h=e[d];if(l)if(Pe(s,d))h!==s[d]&&(s[d]=h,u=!0);else{const g=hr(d);i[g]=of(l,a,g,h,t,!1)}else h!==s[d]&&(s[d]=h,u=!0)}}}else{Nw(t,e,i,s)&&(u=!0);let c;for(const f in a)(!e||!Pe(e,f)&&((c=is(f))===f||!Pe(e,c)))&&(l?r&&(r[f]!==void 0||r[c]!==void 0)&&(i[f]=of(l,a,f,void 0,t,!0)):delete i[f]);if(s!==a)for(const f in s)(!e||!Pe(e,f))&&(delete s[f],u=!0)}u&&Lr(t,"set","$attrs")}function Nw(t,e,r,n){const[i,s]=t.propsOptions;let o=!1,a;if(e)for(let l in e){if(fa(l))continue;const u=e[l];let c;i&&Pe(i,c=hr(l))?!s||!s.includes(c)?r[c]=u:(a||(a={}))[c]=u:xl(t.emitsOptions,l)||(!(l in n)||u!==n[l])&&(n[l]=u,o=!0)}if(s){const l=Ne(r),u=a||Fe;for(let c=0;c<s.length;c++){const f=s[c];r[f]=of(i,l,f,u[f],t,!Pe(u,f))}}return o}function of(t,e,r,n,i,s){const o=t[r];if(o!=null){const a=Pe(o,"default");if(a&&n===void 0){const l=o.default;if(o.type!==Function&&!o.skipFactory&&Ae(l)){const{propsDefaults:u}=i;r in u?n=u[r]:(Bi(i),n=u[r]=l.call(null,e),Un())}else n=l}o[0]&&(s&&!a?n=!1:o[1]&&(n===""||n===is(r))&&(n=!0))}return n}function $w(t,e,r=!1){const n=e.propsCache,i=n.get(t);if(i)return i;const s=t.props,o={},a=[];let l=!1;if(!Ae(t)){const c=f=>{l=!0;const[d,h]=$w(f,e,!0);Ye(o,d),h&&a.push(...h)};!r&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!s&&!l)return Ue(t)&&n.set(t,Ai),Ai;if(we(s))for(let c=0;c<s.length;c++){const f=hr(s[c]);_p(f)&&(o[f]=Fe)}else if(s)for(const c in s){const f=hr(c);if(_p(f)){const d=s[c],h=o[f]=we(d)||Ae(d)?{type:d}:Ye({},d);if(h){const g=Sp(Boolean,h.type),y=Sp(String,h.type);h[0]=g>-1,h[1]=y<0||g<y,(g>-1||Pe(h,"default"))&&a.push(f)}}}const u=[o,a];return Ue(t)&&n.set(t,u),u}function _p(t){return t[0]!=="$"}function vp(t){const e=t&&t.toString().match(/^\s*(function|class) (\w+)/);return e?e[2]:t===null?"null":""}function Ep(t,e){return vp(t)===vp(e)}function Sp(t,e){return we(e)?e.findIndex(r=>Ep(r,t)):Ae(e)&&Ep(e,t)?0:-1}const kw=t=>t[0]==="_"||t==="$stable",Md=t=>we(t)?t.map(rr):[rr(t)],a1=(t,e,r)=>{if(e._n)return e;const n=CS((...i)=>Md(e(...i)),r);return n._c=!1,n},Dw=(t,e,r)=>{const n=t._ctx;for(const i in t){if(kw(i))continue;const s=t[i];if(Ae(s))e[i]=a1(i,s,n);else if(s!=null){const o=Md(s);e[i]=()=>o}}},Bw=(t,e)=>{const r=Md(e);t.slots.default=()=>r},l1=(t,e)=>{if(t.vnode.shapeFlag&32){const r=e._;r?(t.slots=Ne(e),$a(e,"_",r)):Dw(e,t.slots={})}else t.slots={},e&&Bw(t,e);$a(t.slots,Cl,1)},u1=(t,e,r)=>{const{vnode:n,slots:i}=t;let s=!0,o=Fe;if(n.shapeFlag&32){const a=e._;a?r&&a===1?s=!1:(Ye(i,e),!r&&a===1&&delete i._):(s=!e.$stable,Dw(e,i)),o=e}else e&&(Bw(t,e),o={default:1});if(s)for(const a in i)!kw(a)&&!(a in o)&&delete i[a]};function af(t,e,r,n,i=!1){if(we(t)){t.forEach((d,h)=>af(d,e&&(we(e)?e[h]:e),r,n,i));return}if(Us(n)&&!i)return;const s=n.shapeFlag&4?Il(n.component)||n.component.proxy:n.el,o=i?null:s,{i:a,r:l}=t,u=e&&e.r,c=a.refs===Fe?a.refs={}:a.refs,f=a.setupState;if(u!=null&&u!==l&&(We(u)?(c[u]=null,Pe(f,u)&&(f[u]=null)):rt(u)&&(u.value=null)),Ae(l))an(l,a,12,[o,c]);else{const d=We(l),h=rt(l);if(d||h){const g=()=>{if(t.f){const y=d?Pe(f,l)?f[l]:c[l]:l.value;i?we(y)&&cd(y,s):we(y)?y.includes(s)||y.push(s):d?(c[l]=[s],Pe(f,l)&&(f[l]=c[l])):(l.value=[s],t.k&&(c[t.k]=l.value))}else d?(c[l]=o,Pe(f,l)&&(f[l]=o)):h&&(l.value=o,t.k&&(c[t.k]=o))};o?(g.id=-1,pt(g,r)):g()}}}const pt=NS;function c1(t){return f1(t)}function f1(t,e){const r=Xc();r.__VUE__=!0;const{insert:n,remove:i,patchProp:s,createElement:o,createText:a,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=qt,insertStaticContent:g}=t,y=(w,S,A,B=null,z=null,q=null,ie=!1,re=null,ae=!!S.dynamicChildren)=>{if(w===S)return;w&&!gs(w,S)&&(B=Y(w),pe(w,z,q,!0),w=null),S.patchFlag===-2&&(ae=!1,S.dynamicChildren=null);const{type:se,ref:he,shapeFlag:fe}=S;switch(se){case Ml:b(w,S,A,B);break;case cn:E(w,S,A,B);break;case pa:w==null&&_(S,A,B,ie);break;case Ft:W(w,S,A,B,z,q,ie,re,ae);break;default:fe&1?C(w,S,A,B,z,q,ie,re,ae):fe&6?$(w,S,A,B,z,q,ie,re,ae):(fe&64||fe&128)&&se.process(w,S,A,B,z,q,ie,re,ae,ee)}he!=null&&z&&af(he,w&&w.ref,q,S||w,!S)},b=(w,S,A,B)=>{if(w==null)n(S.el=a(S.children),A,B);else{const z=S.el=w.el;S.children!==w.children&&u(z,S.children)}},E=(w,S,A,B)=>{w==null?n(S.el=l(S.children||""),A,B):S.el=w.el},_=(w,S,A,B)=>{[w.el,w.anchor]=g(w.children,S,A,B,w.el,w.anchor)},v=({el:w,anchor:S},A,B)=>{let z;for(;w&&w!==S;)z=d(w),n(w,A,B),w=z;n(S,A,B)},T=({el:w,anchor:S})=>{let A;for(;w&&w!==S;)A=d(w),i(w),w=A;i(S)},C=(w,S,A,B,z,q,ie,re,ae)=>{ie=ie||S.type==="svg",w==null?O(S,A,B,z,q,ie,re,ae):L(w,S,z,q,ie,re,ae)},O=(w,S,A,B,z,q,ie,re)=>{let ae,se;const{type:he,props:fe,shapeFlag:ge,transition:M,dirs:N}=w;if(ae=w.el=o(w.type,q,fe&&fe.is,fe),ge&8?c(ae,w.children):ge&16&&F(w.children,ae,null,B,z,q&&he!=="foreignObject",ie,re),N&&xn(w,null,B,"created"),D(ae,w,w.scopeId,ie,B),fe){for(const p in fe)p!=="value"&&!fa(p)&&s(ae,p,null,fe[p],q,w.children,B,z,G);"value"in fe&&s(ae,"value",null,fe.value),(se=fe.onVnodeBeforeMount)&&Jt(se,B,w)}N&&xn(w,null,B,"beforeMount");const x=(!z||z&&!z.pendingBranch)&&M&&!M.persisted;x&&M.beforeEnter(ae),n(ae,S,A),((se=fe&&fe.onVnodeMounted)||x||N)&&pt(()=>{se&&Jt(se,B,w),x&&M.enter(ae),N&&xn(w,null,B,"mounted")},z)},D=(w,S,A,B,z)=>{if(A&&h(w,A),B)for(let q=0;q<B.length;q++)h(w,B[q]);if(z){let q=z.subTree;if(S===q){const ie=z.vnode;D(w,ie,ie.scopeId,ie.slotScopeIds,z.parent)}}},F=(w,S,A,B,z,q,ie,re,ae=0)=>{for(let se=ae;se<w.length;se++){const he=w[se]=re?en(w[se]):rr(w[se]);y(null,he,S,A,B,z,q,ie,re)}},L=(w,S,A,B,z,q,ie)=>{const re=S.el=w.el;let{patchFlag:ae,dynamicChildren:se,dirs:he}=S;ae|=w.patchFlag&16;const fe=w.props||Fe,ge=S.props||Fe;let M;A&&Tn(A,!1),(M=ge.onVnodeBeforeUpdate)&&Jt(M,A,S,w),he&&xn(S,w,A,"beforeUpdate"),A&&Tn(A,!0);const N=z&&S.type!=="foreignObject";if(se?U(w.dynamicChildren,se,re,A,B,N,q):ie||K(w,S,re,null,A,B,N,q,!1),ae>0){if(ae&16)k(re,S,fe,ge,A,B,z);else if(ae&2&&fe.class!==ge.class&&s(re,"class",null,ge.class,z),ae&4&&s(re,"style",fe.style,ge.style,z),ae&8){const x=S.dynamicProps;for(let p=0;p<x.length;p++){const m=x[p],R=fe[m],V=ge[m];(V!==R||m==="value")&&s(re,m,R,V,z,w.children,A,B,G)}}ae&1&&w.children!==S.children&&c(re,S.children)}else!ie&&se==null&&k(re,S,fe,ge,A,B,z);((M=ge.onVnodeUpdated)||he)&&pt(()=>{M&&Jt(M,A,S,w),he&&xn(S,w,A,"updated")},B)},U=(w,S,A,B,z,q,ie)=>{for(let re=0;re<S.length;re++){const ae=w[re],se=S[re],he=ae.el&&(ae.type===Ft||!gs(ae,se)||ae.shapeFlag&70)?f(ae.el):A;y(ae,se,he,null,B,z,q,ie,!0)}},k=(w,S,A,B,z,q,ie)=>{if(A!==B){if(A!==Fe)for(const re in A)!fa(re)&&!(re in B)&&s(w,re,A[re],null,ie,S.children,z,q,G);for(const re in B){if(fa(re))continue;const ae=B[re],se=A[re];ae!==se&&re!=="value"&&s(w,re,se,ae,ie,S.children,z,q,G)}"value"in B&&s(w,"value",A.value,B.value)}},W=(w,S,A,B,z,q,ie,re,ae)=>{const se=S.el=w?w.el:a(""),he=S.anchor=w?w.anchor:a("");let{patchFlag:fe,dynamicChildren:ge,slotScopeIds:M}=S;M&&(re=re?re.concat(M):M),w==null?(n(se,A,B),n(he,A,B),F(S.children,A,he,z,q,ie,re,ae)):fe>0&&fe&64&&ge&&w.dynamicChildren?(U(w.dynamicChildren,ge,A,z,q,ie,re),(S.key!=null||z&&S===z.subTree)&&Fw(w,S,!0)):K(w,S,A,he,z,q,ie,re,ae)},$=(w,S,A,B,z,q,ie,re,ae)=>{S.slotScopeIds=re,w==null?S.shapeFlag&512?z.ctx.activate(S,A,B,ie,ae):I(S,A,B,z,q,ie,ae):j(w,S,ae)},I=(w,S,A,B,z,q,ie)=>{const re=w.component=v1(w,B,z);if(Mw(w)&&(re.ctx.renderer=ee),E1(re),re.asyncDep){if(z&&z.registerDep(re,Q),!w.el){const ae=re.subTree=Kt(cn);E(null,ae,S,A)}return}Q(re,w,S,A,z,q,ie)},j=(w,S,A)=>{const B=S.component=w.component;if(PS(w,S,A))if(B.asyncDep&&!B.asyncResolved){H(B,S,A);return}else B.next=S,xS(B.update),B.update();else S.el=w.el,B.vnode=S},Q=(w,S,A,B,z,q,ie)=>{const re=()=>{if(w.isMounted){let{next:he,bu:fe,u:ge,parent:M,vnode:N}=w,x=he,p;Tn(w,!1),he?(he.el=N.el,H(w,he,ie)):he=N,fe&&da(fe),(p=he.props&&he.props.onVnodeBeforeUpdate)&&Jt(p,M,he,N),Tn(w,!0);const m=Ou(w),R=w.subTree;w.subTree=m,y(R,m,f(R.el),Y(R),w,z,q),he.el=m.el,x===null&&RS(w,m.el),ge&&pt(ge,z),(p=he.props&&he.props.onVnodeUpdated)&&pt(()=>Jt(p,M,he,N),z)}else{let he;const{el:fe,props:ge}=S,{bm:M,m:N,parent:x}=w,p=Us(S);if(Tn(w,!1),M&&da(M),!p&&(he=ge&&ge.onVnodeBeforeMount)&&Jt(he,x,S),Tn(w,!0),fe&&P){const m=()=>{w.subTree=Ou(w),P(fe,w.subTree,w,z,null)};p?S.type.__asyncLoader().then(()=>!w.isUnmounted&&m()):m()}else{const m=w.subTree=Ou(w);y(null,m,A,B,w,z,q),S.el=m.el}if(N&&pt(N,z),!p&&(he=ge&&ge.onVnodeMounted)){const m=S;pt(()=>Jt(he,x,m),z)}(S.shapeFlag&256||x&&Us(x.vnode)&&x.vnode.shapeFlag&256)&&w.a&&pt(w.a,z),w.isMounted=!0,S=A=B=null}},ae=w.effect=new md(re,()=>xd(se),w.scope),se=w.update=()=>ae.run();se.id=w.uid,Tn(w,!0),se()},H=(w,S,A)=>{S.component=w;const B=w.vnode.props;w.vnode=S,w.next=null,o1(w,S.props,B,A),u1(w,S.children,A),ss(),hp(),os()},K=(w,S,A,B,z,q,ie,re,ae=!1)=>{const se=w&&w.children,he=w?w.shapeFlag:0,fe=S.children,{patchFlag:ge,shapeFlag:M}=S;if(ge>0){if(ge&128){Z(se,fe,A,B,z,q,ie,re,ae);return}else if(ge&256){X(se,fe,A,B,z,q,ie,re,ae);return}}M&8?(he&16&&G(se,z,q),fe!==se&&c(A,fe)):he&16?M&16?Z(se,fe,A,B,z,q,ie,re,ae):G(se,z,q,!0):(he&8&&c(A,""),M&16&&F(fe,A,B,z,q,ie,re,ae))},X=(w,S,A,B,z,q,ie,re,ae)=>{w=w||Ai,S=S||Ai;const se=w.length,he=S.length,fe=Math.min(se,he);let ge;for(ge=0;ge<fe;ge++){const M=S[ge]=ae?en(S[ge]):rr(S[ge]);y(w[ge],M,A,null,z,q,ie,re,ae)}se>he?G(w,z,q,!0,!1,fe):F(S,A,B,z,q,ie,re,ae,fe)},Z=(w,S,A,B,z,q,ie,re,ae)=>{let se=0;const he=S.length;let fe=w.length-1,ge=he-1;for(;se<=fe&&se<=ge;){const M=w[se],N=S[se]=ae?en(S[se]):rr(S[se]);if(gs(M,N))y(M,N,A,null,z,q,ie,re,ae);else break;se++}for(;se<=fe&&se<=ge;){const M=w[fe],N=S[ge]=ae?en(S[ge]):rr(S[ge]);if(gs(M,N))y(M,N,A,null,z,q,ie,re,ae);else break;fe--,ge--}if(se>fe){if(se<=ge){const M=ge+1,N=M<he?S[M].el:B;for(;se<=ge;)y(null,S[se]=ae?en(S[se]):rr(S[se]),A,N,z,q,ie,re,ae),se++}}else if(se>ge)for(;se<=fe;)pe(w[se],z,q,!0),se++;else{const M=se,N=se,x=new Map;for(se=N;se<=ge;se++){const Me=S[se]=ae?en(S[se]):rr(S[se]);Me.key!=null&&x.set(Me.key,se)}let p,m=0;const R=ge-N+1;let V=!1,J=0;const te=new Array(R);for(se=0;se<R;se++)te[se]=0;for(se=M;se<=fe;se++){const Me=w[se];if(m>=R){pe(Me,z,q,!0);continue}let Ce;if(Me.key!=null)Ce=x.get(Me.key);else for(p=N;p<=ge;p++)if(te[p-N]===0&&gs(Me,S[p])){Ce=p;break}Ce===void 0?pe(Me,z,q,!0):(te[Ce-N]=se+1,Ce>=J?J=Ce:V=!0,y(Me,S[Ce],A,null,z,q,ie,re,ae),m++)}const Te=V?d1(te):Ai;for(p=Te.length-1,se=R-1;se>=0;se--){const Me=N+se,Ce=S[Me],$e=Me+1<he?S[Me+1].el:B;te[se]===0?y(null,Ce,A,$e,z,q,ie,re,ae):V&&(p<0||se!==Te[p]?ce(Ce,A,$e,2):p--)}}},ce=(w,S,A,B,z=null)=>{const{el:q,type:ie,transition:re,children:ae,shapeFlag:se}=w;if(se&6){ce(w.component.subTree,S,A,B);return}if(se&128){w.suspense.move(S,A,B);return}if(se&64){ie.move(w,S,A,ee);return}if(ie===Ft){n(q,S,A);for(let fe=0;fe<ae.length;fe++)ce(ae[fe],S,A,B);n(w.anchor,S,A);return}if(ie===pa){v(w,S,A);return}if(B!==2&&se&1&&re)if(B===0)re.beforeEnter(q),n(q,S,A),pt(()=>re.enter(q),z);else{const{leave:fe,delayLeave:ge,afterLeave:M}=re,N=()=>n(q,S,A),x=()=>{fe(q,()=>{N(),M&&M()})};ge?ge(q,N,x):x()}else n(q,S,A)},pe=(w,S,A,B=!1,z=!1)=>{const{type:q,props:ie,ref:re,children:ae,dynamicChildren:se,shapeFlag:he,patchFlag:fe,dirs:ge}=w;if(re!=null&&af(re,null,A,w,!0),he&256){S.ctx.deactivate(w);return}const M=he&1&&ge,N=!Us(w);let x;if(N&&(x=ie&&ie.onVnodeBeforeUnmount)&&Jt(x,S,w),he&6)be(w.component,A,B);else{if(he&128){w.suspense.unmount(A,B);return}M&&xn(w,null,S,"beforeUnmount"),he&64?w.type.remove(w,S,A,z,ee,B):se&&(q!==Ft||fe>0&&fe&64)?G(se,S,A,!1,!0):(q===Ft&&fe&384||!z&&he&16)&&G(ae,S,A),B&&de(w)}(N&&(x=ie&&ie.onVnodeUnmounted)||M)&&pt(()=>{x&&Jt(x,S,w),M&&xn(w,null,S,"unmounted")},A)},de=w=>{const{type:S,el:A,anchor:B,transition:z}=w;if(S===Ft){me(A,B);return}if(S===pa){T(w);return}const q=()=>{i(A),z&&!z.persisted&&z.afterLeave&&z.afterLeave()};if(w.shapeFlag&1&&z&&!z.persisted){const{leave:ie,delayLeave:re}=z,ae=()=>ie(A,q);re?re(w.el,q,ae):ae()}else q()},me=(w,S)=>{let A;for(;w!==S;)A=d(w),i(w),w=A;i(S)},be=(w,S,A)=>{const{bum:B,scope:z,update:q,subTree:ie,um:re}=w;B&&da(B),z.stop(),q&&(q.active=!1,pe(ie,w,S,A)),re&&pt(re,S),pt(()=>{w.isUnmounted=!0},S),S&&S.pendingBranch&&!S.isUnmounted&&w.asyncDep&&!w.asyncResolved&&w.suspenseId===S.pendingId&&(S.deps--,S.deps===0&&S.resolve())},G=(w,S,A,B=!1,z=!1,q=0)=>{for(let ie=q;ie<w.length;ie++)pe(w[ie],S,A,B,z)},Y=w=>w.shapeFlag&6?Y(w.component.subTree):w.shapeFlag&128?w.suspense.next():d(w.anchor||w.el),ne=(w,S,A)=>{w==null?S._vnode&&pe(S._vnode,null,null,!0):y(S._vnode||null,w,S,null,null,null,A),hp(),Sw(),S._vnode=w},ee={p:y,um:pe,m:ce,r:de,mt:I,mc:F,pc:K,pbc:U,n:Y,o:t};let ue,P;return e&&([ue,P]=e(ee)),{render:ne,hydrate:ue,createApp:n1(ne,ue)}}function Tn({effect:t,update:e},r){t.allowRecurse=e.allowRecurse=r}function Fw(t,e,r=!1){const n=t.children,i=e.children;if(we(n)&&we(i))for(let s=0;s<n.length;s++){const o=n[s];let a=i[s];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[s]=en(i[s]),a.el=o.el),r||Fw(o,a)),a.type===Ml&&(a.el=o.el)}}function d1(t){const e=t.slice(),r=[0];let n,i,s,o,a;const l=t.length;for(n=0;n<l;n++){const u=t[n];if(u!==0){if(i=r[r.length-1],t[i]<u){e[n]=i,r.push(n);continue}for(s=0,o=r.length-1;s<o;)a=s+o>>1,t[r[a]]<u?s=a+1:o=a;u<t[r[s]]&&(s>0&&(e[n]=r[s-1]),r[s]=n)}}for(s=r.length,o=r[s-1];s-- >0;)r[s]=o,o=e[o];return r}const h1=t=>t.__isTeleport,Ft=Symbol.for("v-fgt"),Ml=Symbol.for("v-txt"),cn=Symbol.for("v-cmt"),pa=Symbol.for("v-stc"),zs=[];let Wt=null;function Uw(t=!1){zs.push(Wt=t?null:[])}function p1(){zs.pop(),Wt=zs[zs.length-1]||null}let no=1;function xp(t){no+=t}function jw(t){return t.dynamicChildren=no>0?Wt||Ai:null,p1(),no>0&&Wt&&Wt.push(t),t}function SW(t,e,r,n,i,s){return jw(Vw(t,e,r,n,i,s,!0))}function zw(t,e,r,n,i){return jw(Kt(t,e,r,n,i,!0))}function Hw(t){return t?t.__v_isVNode===!0:!1}function gs(t,e){return t.type===e.type&&t.key===e.key}const Cl="__vInternal",Ww=({key:t})=>t??null,ga=({ref:t,ref_key:e,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?We(t)||rt(t)||Ae(t)?{i:nt,r:t,k:e,f:!!r}:t:null);function Vw(t,e=null,r=null,n=0,i=null,s=t===Ft?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Ww(e),ref:e&&ga(e),scopeId:Tl,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:nt};return a?(Cd(l,r),s&128&&t.normalize(l)):r&&(l.shapeFlag|=We(r)?8:16),no>0&&!o&&Wt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Wt.push(l),l}const Kt=g1;function g1(t,e=null,r=null,n=0,i=null,s=!1){if((!t||t===KS)&&(t=cn),Hw(t)){const a=Di(t,e,!0);return r&&Cd(a,r),no>0&&!s&&Wt&&(a.shapeFlag&6?Wt[Wt.indexOf(t)]=a:Wt.push(a)),a.patchFlag|=-2,a}if(M1(t)&&(t=t.__vccOpts),e){e=m1(e);let{class:a,style:l}=e;a&&!We(a)&&(e.class=hd(a)),Ue(l)&&(mw(l)&&!we(l)&&(l=Ye({},l)),e.style=dd(l))}const o=We(t)?1:LS(t)?128:h1(t)?64:Ue(t)?4:Ae(t)?2:0;return Vw(t,e,r,n,i,o,s,!0)}function m1(t){return t?mw(t)||Cl in t?Ye({},t):t:null}function Di(t,e,r=!1){const{props:n,ref:i,patchFlag:s,children:o}=t,a=e?w1(n||{},e):n;return{__v_isVNode:!0,__v_skip:!0,type:t.type,props:a,key:a&&Ww(a),ref:e&&e.ref?r&&i?we(i)?i.concat(ga(e)):[i,ga(e)]:ga(e):i,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:o,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Ft?s===-1?16:s|16:s,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:t.transition,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Di(t.ssContent),ssFallback:t.ssFallback&&Di(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce}}function y1(t=" ",e=0){return Kt(Ml,null,t,e)}function xW(t,e){const r=Kt(pa,null,t);return r.staticCount=e,r}function TW(t="",e=!1){return e?(Uw(),zw(cn,null,t)):Kt(cn,null,t)}function rr(t){return t==null||typeof t=="boolean"?Kt(cn):we(t)?Kt(Ft,null,t.slice()):typeof t=="object"?en(t):Kt(Ml,null,String(t))}function en(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Di(t)}function Cd(t,e){let r=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(we(e))r=16;else if(typeof e=="object")if(n&65){const i=e.default;i&&(i._c&&(i._d=!1),Cd(t,i()),i._c&&(i._d=!0));return}else{r=32;const i=e._;!i&&!(Cl in e)?e._ctx=nt:i===3&&nt&&(nt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else Ae(e)?(e={default:e,_ctx:nt},r=32):(e=String(e),n&64?(r=16,e=[y1(e)]):r=8);t.children=e,t.shapeFlag|=r}function w1(...t){const e={};for(let r=0;r<t.length;r++){const n=t[r];for(const i in n)if(i==="class")e.class!==n.class&&(e.class=hd([e.class,n.class]));else if(i==="style")e.style=dd([e.style,n.style]);else if(bl(i)){const s=e[i],o=n[i];o&&s!==o&&!(we(s)&&s.includes(o))&&(e[i]=s?[].concat(s,o):o)}else i!==""&&(e[i]=n[i])}return e}function Jt(t,e,r,n=null){Yt(t,e,7,[r,n])}const b1=Lw();let _1=0;function v1(t,e,r){const n=t.type,i=(e?e.appContext:t.appContext)||b1,s={uid:_1++,vnode:t,type:n,parent:e,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,scope:new FE(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:$w(n,i),emitsOptions:Tw(n,i),emit:null,emitted:null,propsDefaults:Fe,inheritAttrs:n.inheritAttrs,ctx:Fe,data:Fe,props:Fe,attrs:Fe,slots:Fe,refs:Fe,setupState:Fe,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:r,suspenseId:r?r.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=e?e.root:s,s.emit=MS.bind(null,s),t.ce&&t.ce(s),s}let Xe=null,Id,ci,Tp="__VUE_INSTANCE_SETTERS__";(ci=Xc()[Tp])||(ci=Xc()[Tp]=[]),ci.push(t=>Xe=t),Id=t=>{ci.length>1?ci.forEach(e=>e(t)):ci[0](t)};const Bi=t=>{Id(t),t.scope.on()},Un=()=>{Xe&&Xe.scope.off(),Id(null)};function qw(t){return t.vnode.shapeFlag&4}let io=!1;function E1(t,e=!1){io=e;const{props:r,children:n}=t.vnode,i=qw(t);s1(t,r,i,e),l1(t,n);const s=i?S1(t,e):void 0;return io=!1,s}function S1(t,e){const r=t.type;t.accessCache=Object.create(null),t.proxy=yw(new Proxy(t.ctx,XS));const{setup:n}=r;if(n){const i=t.setupContext=n.length>1?T1(t):null;Bi(t),ss();const s=an(n,t,0,[t.props,i]);if(os(),Un(),ew(s)){if(s.then(Un,Un),e)return s.then(o=>{Ap(t,o,e)}).catch(o=>{Sl(o,t,0)});t.asyncDep=s}else Ap(t,s,e)}else Yw(t,e)}function Ap(t,e,r){Ae(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Ue(e)&&(t.setupState=_w(e)),Yw(t,r)}let Mp;function Yw(t,e,r){const n=t.type;if(!t.render){if(!e&&Mp&&!n.render){const i=n.template||Ad(t).template;if(i){const{isCustomElement:s,compilerOptions:o}=t.appContext.config,{delimiters:a,compilerOptions:l}=n,u=Ye(Ye({isCustomElement:s,delimiters:a},o),l);n.render=Mp(i,u)}}t.render=n.render||qt}Bi(t),ss(),QS(t),os(),Un()}function x1(t){return t.attrsProxy||(t.attrsProxy=new Proxy(t.attrs,{get(e,r){return yt(t,"get","$attrs"),e[r]}}))}function T1(t){const e=r=>{t.exposed=r||{}};return{get attrs(){return x1(t)},slots:t.slots,emit:t.emit,expose:e}}function Il(t){if(t.exposed)return t.exposeProxy||(t.exposeProxy=new Proxy(_w(yw(t.exposed)),{get(e,r){if(r in e)return e[r];if(r in js)return js[r](t)},has(e,r){return r in e||r in js}}))}function A1(t,e=!0){return Ae(t)?t.displayName||t.name:t.name||e&&t.__name}function M1(t){return Ae(t)&&"__vccOpts"in t}const C1=(t,e)=>_S(t,e,io),I1=Symbol.for("v-scx"),O1=()=>ha(I1),P1="3.3.4",R1="http://www.w3.org/2000/svg",Pn=typeof document<"u"?document:null,Cp=Pn&&Pn.createElement("template"),L1={insert:(t,e,r)=>{e.insertBefore(t,r||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,r,n)=>{const i=e?Pn.createElementNS(R1,t):Pn.createElement(t,r?{is:r}:void 0);return t==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:t=>Pn.createTextNode(t),createComment:t=>Pn.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>Pn.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,r,n,i,s){const o=r?r.previousSibling:e.lastChild;if(i&&(i===s||i.nextSibling))for(;e.insertBefore(i.cloneNode(!0),r),!(i===s||!(i=i.nextSibling)););else{Cp.innerHTML=n?`<svg>${t}</svg>`:t;const a=Cp.content;if(n){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,r)}return[o?o.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}};function N1(t,e,r){const n=t._vtc;n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):r?t.setAttribute("class",e):t.className=e}function $1(t,e,r){const n=t.style,i=We(r);if(r&&!i){if(e&&!We(e))for(const s in e)r[s]==null&&lf(n,s,"");for(const s in r)lf(n,s,r[s])}else{const s=n.display;i?e!==r&&(n.cssText=r):e&&t.removeAttribute("style"),"_vod"in t&&(n.display=s)}}const Ip=/\s*!important$/;function lf(t,e,r){if(we(r))r.forEach(n=>lf(t,e,n));else if(r==null&&(r=""),e.startsWith("--"))t.setProperty(e,r);else{const n=k1(t,e);Ip.test(r)?t.setProperty(is(n),r.replace(Ip,""),"important"):t[n]=r}}const Op=["Webkit","Moz","ms"],Lu={};function k1(t,e){const r=Lu[e];if(r)return r;let n=hr(e);if(n!=="filter"&&n in t)return Lu[e]=n;n=vl(n);for(let i=0;i<Op.length;i++){const s=Op[i]+n;if(s in t)return Lu[e]=s}return e}const Pp="http://www.w3.org/1999/xlink";function D1(t,e,r,n,i){if(n&&e.startsWith("xlink:"))r==null?t.removeAttributeNS(Pp,e.slice(6,e.length)):t.setAttributeNS(Pp,e,r);else{const s=DE(e);r==null||s&&!nw(r)?t.removeAttribute(e):t.setAttribute(e,s?"":r)}}function B1(t,e,r,n,i,s,o){if(e==="innerHTML"||e==="textContent"){n&&o(n,i,s),t[e]=r??"";return}const a=t.tagName;if(e==="value"&&a!=="PROGRESS"&&!a.includes("-")){t._value=r;const u=a==="OPTION"?t.getAttribute("value"):t.value,c=r??"";u!==c&&(t.value=c),r==null&&t.removeAttribute(e);return}let l=!1;if(r===""||r==null){const u=typeof t[e];u==="boolean"?r=nw(r):r==null&&u==="string"?(r="",l=!0):u==="number"&&(r=0,l=!0)}try{t[e]=r}catch{}l&&t.removeAttribute(e)}function rn(t,e,r,n){t.addEventListener(e,r,n)}function F1(t,e,r,n){t.removeEventListener(e,r,n)}function U1(t,e,r,n,i=null){const s=t._vei||(t._vei={}),o=s[e];if(n&&o)o.value=n;else{const[a,l]=j1(e);if(n){const u=s[e]=W1(n,i);rn(t,a,u,l)}else o&&(F1(t,a,o,l),s[e]=void 0)}}const Rp=/(?:Once|Passive|Capture)$/;function j1(t){let e;if(Rp.test(t)){e={};let n;for(;n=t.match(Rp);)t=t.slice(0,t.length-n[0].length),e[n[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):is(t.slice(2)),e]}let Nu=0;const z1=Promise.resolve(),H1=()=>Nu||(z1.then(()=>Nu=0),Nu=Date.now());function W1(t,e){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;Yt(V1(n,r.value),e,5,[n])};return r.value=t,r.attached=H1(),r}function V1(t,e){if(we(e)){const r=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{r.call(t),t._stopped=!0},e.map(n=>i=>!i._stopped&&n&&n(i))}else return e}const Lp=/^on[a-z]/,q1=(t,e,r,n,i=!1,s,o,a,l)=>{e==="class"?N1(t,n,i):e==="style"?$1(t,r,n):bl(e)?ud(e)||U1(t,e,r,n,o):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Y1(t,e,n,i))?B1(t,e,n,s,o,a,l):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),D1(t,e,n,i))};function Y1(t,e,r,n){return n?!!(e==="innerHTML"||e==="textContent"||e in t&&Lp.test(e)&&Ae(r)):e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA"||Lp.test(e)&&We(r)?!1:e in t}const Fi=t=>{const e=t.props["onUpdate:modelValue"]||!1;return we(e)?r=>da(e,r):e};function K1(t){t.target.composing=!0}function Np(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const AW={created(t,{modifiers:{lazy:e,trim:r,number:n}},i){t._assign=Fi(i);const s=n||i.props&&i.props.type==="number";rn(t,e?"change":"input",o=>{if(o.target.composing)return;let a=t.value;r&&(a=a.trim()),s&&(a=ka(a)),t._assign(a)}),r&&rn(t,"change",()=>{t.value=t.value.trim()}),e||(rn(t,"compositionstart",K1),rn(t,"compositionend",Np),rn(t,"change",Np))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,modifiers:{lazy:r,trim:n,number:i}},s){if(t._assign=Fi(s),t.composing||document.activeElement===t&&t.type!=="range"&&(r||n&&t.value.trim()===e||(i||t.type==="number")&&ka(t.value)===e))return;const o=e??"";t.value!==o&&(t.value=o)}},MW={deep:!0,created(t,e,r){t._assign=Fi(r),rn(t,"change",()=>{const n=t._modelValue,i=so(t),s=t.checked,o=t._assign;if(we(n)){const a=pd(n,i),l=a!==-1;if(s&&!l)o(n.concat(i));else if(!s&&l){const u=[...n];u.splice(a,1),o(u)}}else if(ns(n)){const a=new Set(n);s?a.add(i):a.delete(i),o(a)}else o(Kw(t,s))})},mounted:$p,beforeUpdate(t,e,r){t._assign=Fi(r),$p(t,e,r)}};function $p(t,{value:e,oldValue:r},n){t._modelValue=e,we(e)?t.checked=pd(e,n.props.value)>-1:ns(e)?t.checked=e.has(n.props.value):e!==r&&(t.checked=yo(e,Kw(t,!0)))}const CW={deep:!0,created(t,{value:e,modifiers:{number:r}},n){const i=ns(e);rn(t,"change",()=>{const s=Array.prototype.filter.call(t.options,o=>o.selected).map(o=>r?ka(so(o)):so(o));t._assign(t.multiple?i?new Set(s):s:s[0])}),t._assign=Fi(n)},mounted(t,{value:e}){kp(t,e)},beforeUpdate(t,e,r){t._assign=Fi(r)},updated(t,{value:e}){kp(t,e)}};function kp(t,e){const r=t.multiple;if(!(r&&!we(e)&&!ns(e))){for(let n=0,i=t.options.length;n<i;n++){const s=t.options[n],o=so(s);if(r)we(e)?s.selected=pd(e,o)>-1:s.selected=e.has(o);else if(yo(so(s),e)){t.selectedIndex!==n&&(t.selectedIndex=n);return}}!r&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function so(t){return"_value"in t?t._value:t.value}function Kw(t,e){const r=e?"_trueValue":"_falseValue";return r in t?t[r]:e}const G1=Ye({patchProp:q1},L1);let Dp;function X1(){return Dp||(Dp=c1(G1))}const IW=(...t)=>{const e=X1().createApp(...t),{mount:r}=e;return e.mount=n=>{const i=Q1(n);if(!i)return;const s=e._component;!Ae(s)&&!s.render&&!s.template&&(s.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},e};function Q1(t){return We(t)?document.querySelector(t):t}var xe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function J1(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Ol(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var Z1={};function Gw(){throw new Error("setTimeout has not been defined")}function Xw(){throw new Error("clearTimeout has not been defined")}var Qr=Gw,Jr=Xw;typeof ln.setTimeout=="function"&&(Qr=setTimeout);typeof ln.clearTimeout=="function"&&(Jr=clearTimeout);function Qw(t){if(Qr===setTimeout)return setTimeout(t,0);if((Qr===Gw||!Qr)&&setTimeout)return Qr=setTimeout,setTimeout(t,0);try{return Qr(t,0)}catch{try{return Qr.call(null,t,0)}catch{return Qr.call(this,t,0)}}}function ex(t){if(Jr===clearTimeout)return clearTimeout(t);if((Jr===Xw||!Jr)&&clearTimeout)return Jr=clearTimeout,clearTimeout(t);try{return Jr(t)}catch{try{return Jr.call(null,t)}catch{return Jr.call(this,t)}}}var Tr=[],Oi=!1,Ln,ma=-1;function tx(){!Oi||!Ln||(Oi=!1,Ln.length?Tr=Ln.concat(Tr):ma=-1,Tr.length&&Jw())}function Jw(){if(!Oi){var t=Qw(tx);Oi=!0;for(var e=Tr.length;e;){for(Ln=Tr,Tr=[];++ma<e;)Ln&&Ln[ma].run();ma=-1,e=Tr.length}Ln=null,Oi=!1,ex(t)}}function rx(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];Tr.push(new Zw(t,e)),Tr.length===1&&!Oi&&Qw(Jw)}function Zw(t,e){this.fun=t,this.array=e}Zw.prototype.run=function(){this.fun.apply(null,this.array)};var nx="browser",ix="browser",sx=!0,ox={},ax=[],lx="",ux={},cx={},fx={};function ei(){}var dx=ei,hx=ei,px=ei,gx=ei,mx=ei,yx=ei,bx=ei;function _x(t){throw new Error("process.binding is not supported")}function vx(){return"/"}function Ex(t){throw new Error("process.chdir is not supported")}function Sx(){return 0}var gi=ln.performance||{},xx=gi.now||gi.mozNow||gi.msNow||gi.oNow||gi.webkitNow||function(){return new Date().getTime()};function Tx(t){var e=xx.call(gi)*.001,r=Math.floor(e),n=Math.floor(e%1*1e9);return t&&(r=r-t[0],n=n-t[1],n<0&&(r--,n+=1e9)),[r,n]}var Ax=new Date;function Mx(){var t=new Date,e=t-Ax;return e/1e3}var _e={nextTick:rx,title:nx,browser:sx,env:ox,argv:ax,version:lx,versions:ux,on:dx,addListener:hx,once:px,off:gx,removeListener:mx,removeAllListeners:yx,emit:bx,binding:_x,cwd:vx,chdir:Ex,umask:Sx,hrtime:Tx,platform:ix,release:cx,config:fx,uptime:Mx},oo={},Od={};Object.defineProperty(Od,"__esModule",{value:!0});class Cx{constructor(e){this.aliasToTopic={},this.max=e}put(e,r){return r===0||r>this.max?!1:(this.aliasToTopic[r]=e,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(e){return this.aliasToTopic[e]}clear(){this.aliasToTopic={}}}Od.default=Cx;var Pl={},Rl={exports:{}},uf={exports:{}},Pd={exports:{}},Pi=typeof Reflect=="object"?Reflect:null,Bp=Pi&&typeof Pi.apply=="function"?Pi.apply:function(e,r,n){return Function.prototype.apply.call(e,r,n)},ya;Pi&&typeof Pi.ownKeys=="function"?ya=Pi.ownKeys:Object.getOwnPropertySymbols?ya=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:ya=function(e){return Object.getOwnPropertyNames(e)};function Ix(t){console&&console.warn&&console.warn(t)}var e0=Number.isNaN||function(e){return e!==e};function ke(){ke.init.call(this)}Pd.exports=ke;Pd.exports.once=Lx;ke.EventEmitter=ke;ke.prototype._events=void 0;ke.prototype._eventsCount=0;ke.prototype._maxListeners=void 0;var Fp=10;function Ll(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(ke,"defaultMaxListeners",{enumerable:!0,get:function(){return Fp},set:function(t){if(typeof t!="number"||t<0||e0(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Fp=t}});ke.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};ke.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||e0(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function t0(t){return t._maxListeners===void 0?ke.defaultMaxListeners:t._maxListeners}ke.prototype.getMaxListeners=function(){return t0(this)};ke.prototype.emit=function(e){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=e==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(r.length>0&&(o=r[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var l=s[e];if(l===void 0)return!1;if(typeof l=="function")Bp(l,this,r);else for(var u=l.length,c=o0(l,u),n=0;n<u;++n)Bp(c[n],this,r);return!0};function r0(t,e,r,n){var i,s,o;if(Ll(r),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),s=t._events),o=s[e]),o===void 0)o=s[e]=r,++t._eventsCount;else if(typeof o=="function"?o=s[e]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),i=t0(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=o.length,Ix(a)}return t}ke.prototype.addListener=function(e,r){return r0(this,e,r,!1)};ke.prototype.on=ke.prototype.addListener;ke.prototype.prependListener=function(e,r){return r0(this,e,r,!0)};function Ox(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function n0(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=Ox.bind(n);return i.listener=r,n.wrapFn=i,i}ke.prototype.once=function(e,r){return Ll(r),this.on(e,n0(this,e,r)),this};ke.prototype.prependOnceListener=function(e,r){return Ll(r),this.prependListener(e,n0(this,e,r)),this};ke.prototype.removeListener=function(e,r){var n,i,s,o,a;if(Ll(r),i=this._events,i===void 0)return this;if(n=i[e],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||r));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():Px(n,s),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||r)}return this};ke.prototype.off=ke.prototype.removeListener;ke.prototype.removeAllListeners=function(e){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[e],typeof r=="function")this.removeListener(e,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(e,r[i]);return this};function i0(t,e,r){var n=t._events;if(n===void 0)return[];var i=n[e];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?Rx(i):o0(i,i.length)}ke.prototype.listeners=function(e){return i0(this,e,!0)};ke.prototype.rawListeners=function(e){return i0(this,e,!1)};ke.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):s0.call(t,e)};ke.prototype.listenerCount=s0;function s0(t){var e=this._events;if(e!==void 0){var r=e[t];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}ke.prototype.eventNames=function(){return this._eventsCount>0?ya(this._events):[]};function o0(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function Px(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function Rx(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}function Lx(t,e){return new Promise(function(r,n){function i(o){t.removeListener(e,s),n(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",i),r([].slice.call(arguments))}a0(t,e,s,{once:!0}),e!=="error"&&Nx(t,i,{once:!0})})}function Nx(t,e,r){typeof t.on=="function"&&a0(t,"error",e,r)}function a0(t,e,r,n){if(typeof t.on=="function")n.once?t.once(e,r):t.on(e,r);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(s){n.once&&t.removeEventListener(e,i),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var gn=Pd.exports,l0=gn.EventEmitter,He={},Nl={};Nl.byteLength=Dx;Nl.toByteArray=Fx;Nl.fromByteArray=zx;var ir=[],At=[],$x=typeof Uint8Array<"u"?Uint8Array:Array,$u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var fi=0,kx=$u.length;fi<kx;++fi)ir[fi]=$u[fi],At[$u.charCodeAt(fi)]=fi;At["-".charCodeAt(0)]=62;At["_".charCodeAt(0)]=63;function u0(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function Dx(t){var e=u0(t),r=e[0],n=e[1];return(r+n)*3/4-n}function Bx(t,e,r){return(e+r)*3/4-r}function Fx(t){var e,r=u0(t),n=r[0],i=r[1],s=new $x(Bx(t,n,i)),o=0,a=i>0?n-4:n,l;for(l=0;l<a;l+=4)e=At[t.charCodeAt(l)]<<18|At[t.charCodeAt(l+1)]<<12|At[t.charCodeAt(l+2)]<<6|At[t.charCodeAt(l+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=At[t.charCodeAt(l)]<<2|At[t.charCodeAt(l+1)]>>4,s[o++]=e&255),i===1&&(e=At[t.charCodeAt(l)]<<10|At[t.charCodeAt(l+1)]<<4|At[t.charCodeAt(l+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function Ux(t){return ir[t>>18&63]+ir[t>>12&63]+ir[t>>6&63]+ir[t&63]}function jx(t,e,r){for(var n,i=[],s=e;s<r;s+=3)n=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),i.push(Ux(n));return i.join("")}function zx(t){for(var e,r=t.length,n=r%3,i=[],s=16383,o=0,a=r-n;o<a;o+=s)i.push(jx(t,o,o+s>a?a:o+s));return n===1?(e=t[r-1],i.push(ir[e>>2]+ir[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],i.push(ir[e>>10]+ir[e>>4&63]+ir[e<<2&63]+"=")),i.join("")}var Rd={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Rd.read=function(t,e,r,n,i){var s,o,a=i*8-n-1,l=(1<<a)-1,u=l>>1,c=-7,f=r?i-1:0,d=r?-1:1,h=t[e+f];for(f+=d,s=h&(1<<-c)-1,h>>=-c,c+=a;c>0;s=s*256+t[e+f],f+=d,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=n;c>0;o=o*256+t[e+f],f+=d,c-=8);if(s===0)s=1-u;else{if(s===l)return o?NaN:(h?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-u}return(h?-1:1)*o*Math.pow(2,s-n)};Rd.write=function(t,e,r,n,i,s){var o,a,l,u=s*8-i-1,c=(1<<u)-1,f=c>>1,d=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:s-1,g=n?1:-1,y=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(o++,l/=2),o+f>=c?(a=0,o=c):o+f>=1?(a=(e*l-1)*Math.pow(2,i),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+h]=a&255,h+=g,a/=256,i-=8);for(o=o<<i|a,u+=i;u>0;t[r+h]=o&255,h+=g,o/=256,u-=8);t[r+h-g]|=y*128};/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author   Feross Aboukhadijeh <https://feross.org>
+ * @license  MIT
+ */(function(t){const e=Nl,r=Rd,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=a,t.SlowBuffer=_,t.INSPECT_MAX_BYTES=50;const i=2147483647;t.kMaxLength=i,a.TYPED_ARRAY_SUPPORT=s(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const x=new Uint8Array(1),p={foo:function(){return 42}};return Object.setPrototypeOf(p,Uint8Array.prototype),Object.setPrototypeOf(x,p),x.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function o(x){if(x>i)throw new RangeError('The value "'+x+'" is invalid for option "size"');const p=new Uint8Array(x);return Object.setPrototypeOf(p,a.prototype),p}function a(x,p,m){if(typeof x=="number"){if(typeof p=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(x)}return l(x,p,m)}a.poolSize=8192;function l(x,p,m){if(typeof x=="string")return d(x,p);if(ArrayBuffer.isView(x))return g(x);if(x==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x);if(he(x,ArrayBuffer)||x&&he(x.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(he(x,SharedArrayBuffer)||x&&he(x.buffer,SharedArrayBuffer)))return y(x,p,m);if(typeof x=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const R=x.valueOf&&x.valueOf();if(R!=null&&R!==x)return a.from(R,p,m);const V=b(x);if(V)return V;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof x[Symbol.toPrimitive]=="function")return a.from(x[Symbol.toPrimitive]("string"),p,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x)}a.from=function(x,p,m){return l(x,p,m)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function u(x){if(typeof x!="number")throw new TypeError('"size" argument must be of type number');if(x<0)throw new RangeError('The value "'+x+'" is invalid for option "size"')}function c(x,p,m){return u(x),x<=0?o(x):p!==void 0?typeof m=="string"?o(x).fill(p,m):o(x).fill(p):o(x)}a.alloc=function(x,p,m){return c(x,p,m)};function f(x){return u(x),o(x<0?0:E(x)|0)}a.allocUnsafe=function(x){return f(x)},a.allocUnsafeSlow=function(x){return f(x)};function d(x,p){if((typeof p!="string"||p==="")&&(p="utf8"),!a.isEncoding(p))throw new TypeError("Unknown encoding: "+p);const m=v(x,p)|0;let R=o(m);const V=R.write(x,p);return V!==m&&(R=R.slice(0,V)),R}function h(x){const p=x.length<0?0:E(x.length)|0,m=o(p);for(let R=0;R<p;R+=1)m[R]=x[R]&255;return m}function g(x){if(he(x,Uint8Array)){const p=new Uint8Array(x);return y(p.buffer,p.byteOffset,p.byteLength)}return h(x)}function y(x,p,m){if(p<0||x.byteLength<p)throw new RangeError('"offset" is outside of buffer bounds');if(x.byteLength<p+(m||0))throw new RangeError('"length" is outside of buffer bounds');let R;return p===void 0&&m===void 0?R=new Uint8Array(x):m===void 0?R=new Uint8Array(x,p):R=new Uint8Array(x,p,m),Object.setPrototypeOf(R,a.prototype),R}function b(x){if(a.isBuffer(x)){const p=E(x.length)|0,m=o(p);return m.length===0||x.copy(m,0,0,p),m}if(x.length!==void 0)return typeof x.length!="number"||fe(x.length)?o(0):h(x);if(x.type==="Buffer"&&Array.isArray(x.data))return h(x.data)}function E(x){if(x>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return x|0}function _(x){return+x!=x&&(x=0),a.alloc(+x)}a.isBuffer=function(p){return p!=null&&p._isBuffer===!0&&p!==a.prototype},a.compare=function(p,m){if(he(p,Uint8Array)&&(p=a.from(p,p.offset,p.byteLength)),he(m,Uint8Array)&&(m=a.from(m,m.offset,m.byteLength)),!a.isBuffer(p)||!a.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(p===m)return 0;let R=p.length,V=m.length;for(let J=0,te=Math.min(R,V);J<te;++J)if(p[J]!==m[J]){R=p[J],V=m[J];break}return R<V?-1:V<R?1:0},a.isEncoding=function(p){switch(String(p).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(p,m){if(!Array.isArray(p))throw new TypeError('"list" argument must be an Array of Buffers');if(p.length===0)return a.alloc(0);let R;if(m===void 0)for(m=0,R=0;R<p.length;++R)m+=p[R].length;const V=a.allocUnsafe(m);let J=0;for(R=0;R<p.length;++R){let te=p[R];if(he(te,Uint8Array))J+te.length>V.length?(a.isBuffer(te)||(te=a.from(te)),te.copy(V,J)):Uint8Array.prototype.set.call(V,te,J);else if(a.isBuffer(te))te.copy(V,J);else throw new TypeError('"list" argument must be an Array of Buffers');J+=te.length}return V};function v(x,p){if(a.isBuffer(x))return x.length;if(ArrayBuffer.isView(x)||he(x,ArrayBuffer))return x.byteLength;if(typeof x!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof x);const m=x.length,R=arguments.length>2&&arguments[2]===!0;if(!R&&m===0)return 0;let V=!1;for(;;)switch(p){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return q(x).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return ae(x).length;default:if(V)return R?-1:q(x).length;p=(""+p).toLowerCase(),V=!0}}a.byteLength=v;function T(x,p,m){let R=!1;if((p===void 0||p<0)&&(p=0),p>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,p>>>=0,m<=p))return"";for(x||(x="utf8");;)switch(x){case"hex":return X(this,p,m);case"utf8":case"utf-8":return I(this,p,m);case"ascii":return H(this,p,m);case"latin1":case"binary":return K(this,p,m);case"base64":return $(this,p,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Z(this,p,m);default:if(R)throw new TypeError("Unknown encoding: "+x);x=(x+"").toLowerCase(),R=!0}}a.prototype._isBuffer=!0;function C(x,p,m){const R=x[p];x[p]=x[m],x[m]=R}a.prototype.swap16=function(){const p=this.length;if(p%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<p;m+=2)C(this,m,m+1);return this},a.prototype.swap32=function(){const p=this.length;if(p%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<p;m+=4)C(this,m,m+3),C(this,m+1,m+2);return this},a.prototype.swap64=function(){const p=this.length;if(p%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<p;m+=8)C(this,m,m+7),C(this,m+1,m+6),C(this,m+2,m+5),C(this,m+3,m+4);return this},a.prototype.toString=function(){const p=this.length;return p===0?"":arguments.length===0?I(this,0,p):T.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(p){if(!a.isBuffer(p))throw new TypeError("Argument must be a Buffer");return this===p?!0:a.compare(this,p)===0},a.prototype.inspect=function(){let p="";const m=t.INSPECT_MAX_BYTES;return p=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(p+=" ... "),"<Buffer "+p+">"},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(p,m,R,V,J){if(he(p,Uint8Array)&&(p=a.from(p,p.offset,p.byteLength)),!a.isBuffer(p))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof p);if(m===void 0&&(m=0),R===void 0&&(R=p?p.length:0),V===void 0&&(V=0),J===void 0&&(J=this.length),m<0||R>p.length||V<0||J>this.length)throw new RangeError("out of range index");if(V>=J&&m>=R)return 0;if(V>=J)return-1;if(m>=R)return 1;if(m>>>=0,R>>>=0,V>>>=0,J>>>=0,this===p)return 0;let te=J-V,Te=R-m;const Me=Math.min(te,Te),Ce=this.slice(V,J),$e=p.slice(m,R);for(let Le=0;Le<Me;++Le)if(Ce[Le]!==$e[Le]){te=Ce[Le],Te=$e[Le];break}return te<Te?-1:Te<te?1:0};function O(x,p,m,R,V){if(x.length===0)return-1;if(typeof m=="string"?(R=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,fe(m)&&(m=V?0:x.length-1),m<0&&(m=x.length+m),m>=x.length){if(V)return-1;m=x.length-1}else if(m<0)if(V)m=0;else return-1;if(typeof p=="string"&&(p=a.from(p,R)),a.isBuffer(p))return p.length===0?-1:D(x,p,m,R,V);if(typeof p=="number")return p=p&255,typeof Uint8Array.prototype.indexOf=="function"?V?Uint8Array.prototype.indexOf.call(x,p,m):Uint8Array.prototype.lastIndexOf.call(x,p,m):D(x,[p],m,R,V);throw new TypeError("val must be string, number or Buffer")}function D(x,p,m,R,V){let J=1,te=x.length,Te=p.length;if(R!==void 0&&(R=String(R).toLowerCase(),R==="ucs2"||R==="ucs-2"||R==="utf16le"||R==="utf-16le")){if(x.length<2||p.length<2)return-1;J=2,te/=2,Te/=2,m/=2}function Me($e,Le){return J===1?$e[Le]:$e.readUInt16BE(Le*J)}let Ce;if(V){let $e=-1;for(Ce=m;Ce<te;Ce++)if(Me(x,Ce)===Me(p,$e===-1?0:Ce-$e)){if($e===-1&&($e=Ce),Ce-$e+1===Te)return $e*J}else $e!==-1&&(Ce-=Ce-$e),$e=-1}else for(m+Te>te&&(m=te-Te),Ce=m;Ce>=0;Ce--){let $e=!0;for(let Le=0;Le<Te;Le++)if(Me(x,Ce+Le)!==Me(p,Le)){$e=!1;break}if($e)return Ce}return-1}a.prototype.includes=function(p,m,R){return this.indexOf(p,m,R)!==-1},a.prototype.indexOf=function(p,m,R){return O(this,p,m,R,!0)},a.prototype.lastIndexOf=function(p,m,R){return O(this,p,m,R,!1)};function F(x,p,m,R){m=Number(m)||0;const V=x.length-m;R?(R=Number(R),R>V&&(R=V)):R=V;const J=p.length;R>J/2&&(R=J/2);let te;for(te=0;te<R;++te){const Te=parseInt(p.substr(te*2,2),16);if(fe(Te))return te;x[m+te]=Te}return te}function L(x,p,m,R){return se(q(p,x.length-m),x,m,R)}function U(x,p,m,R){return se(ie(p),x,m,R)}function k(x,p,m,R){return se(ae(p),x,m,R)}function W(x,p,m,R){return se(re(p,x.length-m),x,m,R)}a.prototype.write=function(p,m,R,V){if(m===void 0)V="utf8",R=this.length,m=0;else if(R===void 0&&typeof m=="string")V=m,R=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(R)?(R=R>>>0,V===void 0&&(V="utf8")):(V=R,R=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const J=this.length-m;if((R===void 0||R>J)&&(R=J),p.length>0&&(R<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");V||(V="utf8");let te=!1;for(;;)switch(V){case"hex":return F(this,p,m,R);case"utf8":case"utf-8":return L(this,p,m,R);case"ascii":case"latin1":case"binary":return U(this,p,m,R);case"base64":return k(this,p,m,R);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return W(this,p,m,R);default:if(te)throw new TypeError("Unknown encoding: "+V);V=(""+V).toLowerCase(),te=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function $(x,p,m){return p===0&&m===x.length?e.fromByteArray(x):e.fromByteArray(x.slice(p,m))}function I(x,p,m){m=Math.min(x.length,m);const R=[];let V=p;for(;V<m;){const J=x[V];let te=null,Te=J>239?4:J>223?3:J>191?2:1;if(V+Te<=m){let Me,Ce,$e,Le;switch(Te){case 1:J<128&&(te=J);break;case 2:Me=x[V+1],(Me&192)===128&&(Le=(J&31)<<6|Me&63,Le>127&&(te=Le));break;case 3:Me=x[V+1],Ce=x[V+2],(Me&192)===128&&(Ce&192)===128&&(Le=(J&15)<<12|(Me&63)<<6|Ce&63,Le>2047&&(Le<55296||Le>57343)&&(te=Le));break;case 4:Me=x[V+1],Ce=x[V+2],$e=x[V+3],(Me&192)===128&&(Ce&192)===128&&($e&192)===128&&(Le=(J&15)<<18|(Me&63)<<12|(Ce&63)<<6|$e&63,Le>65535&&Le<1114112&&(te=Le))}}te===null?(te=65533,Te=1):te>65535&&(te-=65536,R.push(te>>>10&1023|55296),te=56320|te&1023),R.push(te),V+=Te}return Q(R)}const j=4096;function Q(x){const p=x.length;if(p<=j)return String.fromCharCode.apply(String,x);let m="",R=0;for(;R<p;)m+=String.fromCharCode.apply(String,x.slice(R,R+=j));return m}function H(x,p,m){let R="";m=Math.min(x.length,m);for(let V=p;V<m;++V)R+=String.fromCharCode(x[V]&127);return R}function K(x,p,m){let R="";m=Math.min(x.length,m);for(let V=p;V<m;++V)R+=String.fromCharCode(x[V]);return R}function X(x,p,m){const R=x.length;(!p||p<0)&&(p=0),(!m||m<0||m>R)&&(m=R);let V="";for(let J=p;J<m;++J)V+=ge[x[J]];return V}function Z(x,p,m){const R=x.slice(p,m);let V="";for(let J=0;J<R.length-1;J+=2)V+=String.fromCharCode(R[J]+R[J+1]*256);return V}a.prototype.slice=function(p,m){const R=this.length;p=~~p,m=m===void 0?R:~~m,p<0?(p+=R,p<0&&(p=0)):p>R&&(p=R),m<0?(m+=R,m<0&&(m=0)):m>R&&(m=R),m<p&&(m=p);const V=this.subarray(p,m);return Object.setPrototypeOf(V,a.prototype),V};function ce(x,p,m){if(x%1!==0||x<0)throw new RangeError("offset is not uint");if(x+p>m)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(p,m,R){p=p>>>0,m=m>>>0,R||ce(p,m,this.length);let V=this[p],J=1,te=0;for(;++te<m&&(J*=256);)V+=this[p+te]*J;return V},a.prototype.readUintBE=a.prototype.readUIntBE=function(p,m,R){p=p>>>0,m=m>>>0,R||ce(p,m,this.length);let V=this[p+--m],J=1;for(;m>0&&(J*=256);)V+=this[p+--m]*J;return V},a.prototype.readUint8=a.prototype.readUInt8=function(p,m){return p=p>>>0,m||ce(p,1,this.length),this[p]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(p,m){return p=p>>>0,m||ce(p,2,this.length),this[p]|this[p+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(p,m){return p=p>>>0,m||ce(p,2,this.length),this[p]<<8|this[p+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(p,m){return p=p>>>0,m||ce(p,4,this.length),(this[p]|this[p+1]<<8|this[p+2]<<16)+this[p+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(p,m){return p=p>>>0,m||ce(p,4,this.length),this[p]*16777216+(this[p+1]<<16|this[p+2]<<8|this[p+3])},a.prototype.readBigUInt64LE=M(function(p){p=p>>>0,S(p,"offset");const m=this[p],R=this[p+7];(m===void 0||R===void 0)&&A(p,this.length-8);const V=m+this[++p]*2**8+this[++p]*2**16+this[++p]*2**24,J=this[++p]+this[++p]*2**8+this[++p]*2**16+R*2**24;return BigInt(V)+(BigInt(J)<<BigInt(32))}),a.prototype.readBigUInt64BE=M(function(p){p=p>>>0,S(p,"offset");const m=this[p],R=this[p+7];(m===void 0||R===void 0)&&A(p,this.length-8);const V=m*2**24+this[++p]*2**16+this[++p]*2**8+this[++p],J=this[++p]*2**24+this[++p]*2**16+this[++p]*2**8+R;return(BigInt(V)<<BigInt(32))+BigInt(J)}),a.prototype.readIntLE=function(p,m,R){p=p>>>0,m=m>>>0,R||ce(p,m,this.length);let V=this[p],J=1,te=0;for(;++te<m&&(J*=256);)V+=this[p+te]*J;return J*=128,V>=J&&(V-=Math.pow(2,8*m)),V},a.prototype.readIntBE=function(p,m,R){p=p>>>0,m=m>>>0,R||ce(p,m,this.length);let V=m,J=1,te=this[p+--V];for(;V>0&&(J*=256);)te+=this[p+--V]*J;return J*=128,te>=J&&(te-=Math.pow(2,8*m)),te},a.prototype.readInt8=function(p,m){return p=p>>>0,m||ce(p,1,this.length),this[p]&128?(255-this[p]+1)*-1:this[p]},a.prototype.readInt16LE=function(p,m){p=p>>>0,m||ce(p,2,this.length);const R=this[p]|this[p+1]<<8;return R&32768?R|4294901760:R},a.prototype.readInt16BE=function(p,m){p=p>>>0,m||ce(p,2,this.length);const R=this[p+1]|this[p]<<8;return R&32768?R|4294901760:R},a.prototype.readInt32LE=function(p,m){return p=p>>>0,m||ce(p,4,this.length),this[p]|this[p+1]<<8|this[p+2]<<16|this[p+3]<<24},a.prototype.readInt32BE=function(p,m){return p=p>>>0,m||ce(p,4,this.length),this[p]<<24|this[p+1]<<16|this[p+2]<<8|this[p+3]},a.prototype.readBigInt64LE=M(function(p){p=p>>>0,S(p,"offset");const m=this[p],R=this[p+7];(m===void 0||R===void 0)&&A(p,this.length-8);const V=this[p+4]+this[p+5]*2**8+this[p+6]*2**16+(R<<24);return(BigInt(V)<<BigInt(32))+BigInt(m+this[++p]*2**8+this[++p]*2**16+this[++p]*2**24)}),a.prototype.readBigInt64BE=M(function(p){p=p>>>0,S(p,"offset");const m=this[p],R=this[p+7];(m===void 0||R===void 0)&&A(p,this.length-8);const V=(m<<24)+this[++p]*2**16+this[++p]*2**8+this[++p];return(BigInt(V)<<BigInt(32))+BigInt(this[++p]*2**24+this[++p]*2**16+this[++p]*2**8+R)}),a.prototype.readFloatLE=function(p,m){return p=p>>>0,m||ce(p,4,this.length),r.read(this,p,!0,23,4)},a.prototype.readFloatBE=function(p,m){return p=p>>>0,m||ce(p,4,this.length),r.read(this,p,!1,23,4)},a.prototype.readDoubleLE=function(p,m){return p=p>>>0,m||ce(p,8,this.length),r.read(this,p,!0,52,8)},a.prototype.readDoubleBE=function(p,m){return p=p>>>0,m||ce(p,8,this.length),r.read(this,p,!1,52,8)};function pe(x,p,m,R,V,J){if(!a.isBuffer(x))throw new TypeError('"buffer" argument must be a Buffer instance');if(p>V||p<J)throw new RangeError('"value" argument is out of bounds');if(m+R>x.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(p,m,R,V){if(p=+p,m=m>>>0,R=R>>>0,!V){const Te=Math.pow(2,8*R)-1;pe(this,p,m,R,Te,0)}let J=1,te=0;for(this[m]=p&255;++te<R&&(J*=256);)this[m+te]=p/J&255;return m+R},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(p,m,R,V){if(p=+p,m=m>>>0,R=R>>>0,!V){const Te=Math.pow(2,8*R)-1;pe(this,p,m,R,Te,0)}let J=R-1,te=1;for(this[m+J]=p&255;--J>=0&&(te*=256);)this[m+J]=p/te&255;return m+R},a.prototype.writeUint8=a.prototype.writeUInt8=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,1,255,0),this[m]=p&255,m+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,2,65535,0),this[m]=p&255,this[m+1]=p>>>8,m+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,2,65535,0),this[m]=p>>>8,this[m+1]=p&255,m+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,4,4294967295,0),this[m+3]=p>>>24,this[m+2]=p>>>16,this[m+1]=p>>>8,this[m]=p&255,m+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,4,4294967295,0),this[m]=p>>>24,this[m+1]=p>>>16,this[m+2]=p>>>8,this[m+3]=p&255,m+4};function de(x,p,m,R,V){w(p,R,V,x,m,7);let J=Number(p&BigInt(4294967295));x[m++]=J,J=J>>8,x[m++]=J,J=J>>8,x[m++]=J,J=J>>8,x[m++]=J;let te=Number(p>>BigInt(32)&BigInt(4294967295));return x[m++]=te,te=te>>8,x[m++]=te,te=te>>8,x[m++]=te,te=te>>8,x[m++]=te,m}function me(x,p,m,R,V){w(p,R,V,x,m,7);let J=Number(p&BigInt(4294967295));x[m+7]=J,J=J>>8,x[m+6]=J,J=J>>8,x[m+5]=J,J=J>>8,x[m+4]=J;let te=Number(p>>BigInt(32)&BigInt(4294967295));return x[m+3]=te,te=te>>8,x[m+2]=te,te=te>>8,x[m+1]=te,te=te>>8,x[m]=te,m+8}a.prototype.writeBigUInt64LE=M(function(p,m=0){return de(this,p,m,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=M(function(p,m=0){return me(this,p,m,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(p,m,R,V){if(p=+p,m=m>>>0,!V){const Me=Math.pow(2,8*R-1);pe(this,p,m,R,Me-1,-Me)}let J=0,te=1,Te=0;for(this[m]=p&255;++J<R&&(te*=256);)p<0&&Te===0&&this[m+J-1]!==0&&(Te=1),this[m+J]=(p/te>>0)-Te&255;return m+R},a.prototype.writeIntBE=function(p,m,R,V){if(p=+p,m=m>>>0,!V){const Me=Math.pow(2,8*R-1);pe(this,p,m,R,Me-1,-Me)}let J=R-1,te=1,Te=0;for(this[m+J]=p&255;--J>=0&&(te*=256);)p<0&&Te===0&&this[m+J+1]!==0&&(Te=1),this[m+J]=(p/te>>0)-Te&255;return m+R},a.prototype.writeInt8=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,1,127,-128),p<0&&(p=255+p+1),this[m]=p&255,m+1},a.prototype.writeInt16LE=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,2,32767,-32768),this[m]=p&255,this[m+1]=p>>>8,m+2},a.prototype.writeInt16BE=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,2,32767,-32768),this[m]=p>>>8,this[m+1]=p&255,m+2},a.prototype.writeInt32LE=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,4,2147483647,-2147483648),this[m]=p&255,this[m+1]=p>>>8,this[m+2]=p>>>16,this[m+3]=p>>>24,m+4},a.prototype.writeInt32BE=function(p,m,R){return p=+p,m=m>>>0,R||pe(this,p,m,4,2147483647,-2147483648),p<0&&(p=4294967295+p+1),this[m]=p>>>24,this[m+1]=p>>>16,this[m+2]=p>>>8,this[m+3]=p&255,m+4},a.prototype.writeBigInt64LE=M(function(p,m=0){return de(this,p,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=M(function(p,m=0){return me(this,p,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function be(x,p,m,R,V,J){if(m+R>x.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function G(x,p,m,R,V){return p=+p,m=m>>>0,V||be(x,p,m,4),r.write(x,p,m,R,23,4),m+4}a.prototype.writeFloatLE=function(p,m,R){return G(this,p,m,!0,R)},a.prototype.writeFloatBE=function(p,m,R){return G(this,p,m,!1,R)};function Y(x,p,m,R,V){return p=+p,m=m>>>0,V||be(x,p,m,8),r.write(x,p,m,R,52,8),m+8}a.prototype.writeDoubleLE=function(p,m,R){return Y(this,p,m,!0,R)},a.prototype.writeDoubleBE=function(p,m,R){return Y(this,p,m,!1,R)},a.prototype.copy=function(p,m,R,V){if(!a.isBuffer(p))throw new TypeError("argument should be a Buffer");if(R||(R=0),!V&&V!==0&&(V=this.length),m>=p.length&&(m=p.length),m||(m=0),V>0&&V<R&&(V=R),V===R||p.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(R<0||R>=this.length)throw new RangeError("Index out of range");if(V<0)throw new RangeError("sourceEnd out of bounds");V>this.length&&(V=this.length),p.length-m<V-R&&(V=p.length-m+R);const J=V-R;return this===p&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,R,V):Uint8Array.prototype.set.call(p,this.subarray(R,V),m),J},a.prototype.fill=function(p,m,R,V){if(typeof p=="string"){if(typeof m=="string"?(V=m,m=0,R=this.length):typeof R=="string"&&(V=R,R=this.length),V!==void 0&&typeof V!="string")throw new TypeError("encoding must be a string");if(typeof V=="string"&&!a.isEncoding(V))throw new TypeError("Unknown encoding: "+V);if(p.length===1){const te=p.charCodeAt(0);(V==="utf8"&&te<128||V==="latin1")&&(p=te)}}else typeof p=="number"?p=p&255:typeof p=="boolean"&&(p=Number(p));if(m<0||this.length<m||this.length<R)throw new RangeError("Out of range index");if(R<=m)return this;m=m>>>0,R=R===void 0?this.length:R>>>0,p||(p=0);let J;if(typeof p=="number")for(J=m;J<R;++J)this[J]=p;else{const te=a.isBuffer(p)?p:a.from(p,V),Te=te.length;if(Te===0)throw new TypeError('The value "'+p+'" is invalid for argument "value"');for(J=0;J<R-m;++J)this[J+m]=te[J%Te]}return this};const ne={};function ee(x,p,m){ne[x]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:p.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${x}]`,this.stack,delete this.name}get code(){return x}set code(V){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:V,writable:!0})}toString(){return`${this.name} [${x}]: ${this.message}`}}}ee("ERR_BUFFER_OUT_OF_BOUNDS",function(x){return x?`${x} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),ee("ERR_INVALID_ARG_TYPE",function(x,p){return`The "${x}" argument must be of type number. Received type ${typeof p}`},TypeError),ee("ERR_OUT_OF_RANGE",function(x,p,m){let R=`The value of "${x}" is out of range.`,V=m;return Number.isInteger(m)&&Math.abs(m)>2**32?V=ue(String(m)):typeof m=="bigint"&&(V=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(V=ue(V)),V+="n"),R+=` It must be ${p}. Received ${V}`,R},RangeError);function ue(x){let p="",m=x.length;const R=x[0]==="-"?1:0;for(;m>=R+4;m-=3)p=`_${x.slice(m-3,m)}${p}`;return`${x.slice(0,m)}${p}`}function P(x,p,m){S(p,"offset"),(x[p]===void 0||x[p+m]===void 0)&&A(p,x.length-(m+1))}function w(x,p,m,R,V,J){if(x>m||x<p){const te=typeof p=="bigint"?"n":"";let Te;throw J>3?p===0||p===BigInt(0)?Te=`>= 0${te} and < 2${te} ** ${(J+1)*8}${te}`:Te=`>= -(2${te} ** ${(J+1)*8-1}${te}) and < 2 ** ${(J+1)*8-1}${te}`:Te=`>= ${p}${te} and <= ${m}${te}`,new ne.ERR_OUT_OF_RANGE("value",Te,x)}P(R,V,J)}function S(x,p){if(typeof x!="number")throw new ne.ERR_INVALID_ARG_TYPE(p,"number",x)}function A(x,p,m){throw Math.floor(x)!==x?(S(x,m),new ne.ERR_OUT_OF_RANGE(m||"offset","an integer",x)):p<0?new ne.ERR_BUFFER_OUT_OF_BOUNDS:new ne.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${p}`,x)}const B=/[^+/0-9A-Za-z-_]/g;function z(x){if(x=x.split("=")[0],x=x.trim().replace(B,""),x.length<2)return"";for(;x.length%4!==0;)x=x+"=";return x}function q(x,p){p=p||1/0;let m;const R=x.length;let V=null;const J=[];for(let te=0;te<R;++te){if(m=x.charCodeAt(te),m>55295&&m<57344){if(!V){if(m>56319){(p-=3)>-1&&J.push(239,191,189);continue}else if(te+1===R){(p-=3)>-1&&J.push(239,191,189);continue}V=m;continue}if(m<56320){(p-=3)>-1&&J.push(239,191,189),V=m;continue}m=(V-55296<<10|m-56320)+65536}else V&&(p-=3)>-1&&J.push(239,191,189);if(V=null,m<128){if((p-=1)<0)break;J.push(m)}else if(m<2048){if((p-=2)<0)break;J.push(m>>6|192,m&63|128)}else if(m<65536){if((p-=3)<0)break;J.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((p-=4)<0)break;J.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return J}function ie(x){const p=[];for(let m=0;m<x.length;++m)p.push(x.charCodeAt(m)&255);return p}function re(x,p){let m,R,V;const J=[];for(let te=0;te<x.length&&!((p-=2)<0);++te)m=x.charCodeAt(te),R=m>>8,V=m%256,J.push(V),J.push(R);return J}function ae(x){return e.toByteArray(z(x))}function se(x,p,m,R){let V;for(V=0;V<R&&!(V+m>=p.length||V>=x.length);++V)p[V+m]=x[V];return V}function he(x,p){return x instanceof p||x!=null&&x.constructor!=null&&x.constructor.name!=null&&x.constructor.name===p.name}function fe(x){return x!==x}const ge=function(){const x="0123456789abcdef",p=new Array(256);for(let m=0;m<16;++m){const R=m*16;for(let V=0;V<16;++V)p[R+V]=x[m]+x[V]}return p}();function M(x){return typeof BigInt>"u"?N:x}function N(){throw new Error("BigInt not supported")}})(He);var sr=[],Mt=[],Hx=typeof Uint8Array<"u"?Uint8Array:Array,Ld=!1;function c0(){Ld=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,r=t.length;e<r;++e)sr[e]=t[e],Mt[t.charCodeAt(e)]=e;Mt["-".charCodeAt(0)]=62,Mt["_".charCodeAt(0)]=63}function Wx(t){Ld||c0();var e,r,n,i,s,o,a=t.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");s=t[a-2]==="="?2:t[a-1]==="="?1:0,o=new Hx(a*3/4-s),n=s>0?a-4:a;var l=0;for(e=0,r=0;e<n;e+=4,r+=3)i=Mt[t.charCodeAt(e)]<<18|Mt[t.charCodeAt(e+1)]<<12|Mt[t.charCodeAt(e+2)]<<6|Mt[t.charCodeAt(e+3)],o[l++]=i>>16&255,o[l++]=i>>8&255,o[l++]=i&255;return s===2?(i=Mt[t.charCodeAt(e)]<<2|Mt[t.charCodeAt(e+1)]>>4,o[l++]=i&255):s===1&&(i=Mt[t.charCodeAt(e)]<<10|Mt[t.charCodeAt(e+1)]<<4|Mt[t.charCodeAt(e+2)]>>2,o[l++]=i>>8&255,o[l++]=i&255),o}function Vx(t){return sr[t>>18&63]+sr[t>>12&63]+sr[t>>6&63]+sr[t&63]}function qx(t,e,r){for(var n,i=[],s=e;s<r;s+=3)n=(t[s]<<16)+(t[s+1]<<8)+t[s+2],i.push(Vx(n));return i.join("")}function Up(t){Ld||c0();for(var e,r=t.length,n=r%3,i="",s=[],o=16383,a=0,l=r-n;a<l;a+=o)s.push(qx(t,a,a+o>l?l:a+o));return n===1?(e=t[r-1],i+=sr[e>>2],i+=sr[e<<4&63],i+="=="):n===2&&(e=(t[r-2]<<8)+t[r-1],i+=sr[e>>10],i+=sr[e>>4&63],i+=sr[e<<2&63],i+="="),s.push(i),s.join("")}function $l(t,e,r,n,i){var s,o,a=i*8-n-1,l=(1<<a)-1,u=l>>1,c=-7,f=r?i-1:0,d=r?-1:1,h=t[e+f];for(f+=d,s=h&(1<<-c)-1,h>>=-c,c+=a;c>0;s=s*256+t[e+f],f+=d,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=n;c>0;o=o*256+t[e+f],f+=d,c-=8);if(s===0)s=1-u;else{if(s===l)return o?NaN:(h?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-u}return(h?-1:1)*o*Math.pow(2,s-n)}function f0(t,e,r,n,i,s){var o,a,l,u=s*8-i-1,c=(1<<u)-1,f=c>>1,d=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:s-1,g=n?1:-1,y=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(o++,l/=2),o+f>=c?(a=0,o=c):o+f>=1?(a=(e*l-1)*Math.pow(2,i),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+h]=a&255,h+=g,a/=256,i-=8);for(o=o<<i|a,u+=i;u>0;t[r+h]=o&255,h+=g,o/=256,u-=8);t[r+h-g]|=y*128}var Yx={}.toString,d0=Array.isArray||function(t){return Yx.call(t)=="[object Array]"};/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license  MIT
+ */var Kx=50;oe.TYPED_ARRAY_SUPPORT=ln.TYPED_ARRAY_SUPPORT!==void 0?ln.TYPED_ARRAY_SUPPORT:!0;ja();function ja(){return oe.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Ar(t,e){if(ja()<e)throw new RangeError("Invalid typed array length");return oe.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=oe.prototype):(t===null&&(t=new oe(e)),t.length=e),t}function oe(t,e,r){if(!oe.TYPED_ARRAY_SUPPORT&&!(this instanceof oe))return new oe(t,e,r);if(typeof t=="number"){if(typeof e=="string")throw new Error("If encoding is specified then the first argument must be a string");return Nd(this,t)}return h0(this,t,e,r)}oe.poolSize=8192;oe._augment=function(t){return t.__proto__=oe.prototype,t};function h0(t,e,r,n){if(typeof e=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer?Qx(t,e,r,n):typeof e=="string"?Xx(t,e,r):Jx(t,e)}oe.from=function(t,e,r){return h0(null,t,e,r)};oe.TYPED_ARRAY_SUPPORT&&(oe.prototype.__proto__=Uint8Array.prototype,oe.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&oe[Symbol.species]);function p0(t){if(typeof t!="number")throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function Gx(t,e,r,n){return p0(e),e<=0?Ar(t,e):r!==void 0?typeof n=="string"?Ar(t,e).fill(r,n):Ar(t,e).fill(r):Ar(t,e)}oe.alloc=function(t,e,r){return Gx(null,t,e,r)};function Nd(t,e){if(p0(e),t=Ar(t,e<0?0:$d(e)|0),!oe.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}oe.allocUnsafe=function(t){return Nd(null,t)};oe.allocUnsafeSlow=function(t){return Nd(null,t)};function Xx(t,e,r){if((typeof r!="string"||r==="")&&(r="utf8"),!oe.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=g0(e,r)|0;t=Ar(t,n);var i=t.write(e,r);return i!==n&&(t=t.slice(0,i)),t}function cf(t,e){var r=e.length<0?0:$d(e.length)|0;t=Ar(t,r);for(var n=0;n<r;n+=1)t[n]=e[n]&255;return t}function Qx(t,e,r,n){if(e.byteLength,r<0||e.byteLength<r)throw new RangeError("'offset' is out of bounds");if(e.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return r===void 0&&n===void 0?e=new Uint8Array(e):n===void 0?e=new Uint8Array(e,r):e=new Uint8Array(e,r,n),oe.TYPED_ARRAY_SUPPORT?(t=e,t.__proto__=oe.prototype):t=cf(t,e),t}function Jx(t,e){if(pr(e)){var r=$d(e.length)|0;return t=Ar(t,r),t.length===0||e.copy(t,0,0,r),t}if(e){if(typeof ArrayBuffer<"u"&&e.buffer instanceof ArrayBuffer||"length"in e)return typeof e.length!="number"||yT(e.length)?Ar(t,0):cf(t,e);if(e.type==="Buffer"&&d0(e.data))return cf(t,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function $d(t){if(t>=ja())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ja().toString(16)+" bytes");return t|0}oe.isBuffer=wT;function pr(t){return!!(t!=null&&t._isBuffer)}oe.compare=function(e,r){if(!pr(e)||!pr(r))throw new TypeError("Arguments must be Buffers");if(e===r)return 0;for(var n=e.length,i=r.length,s=0,o=Math.min(n,i);s<o;++s)if(e[s]!==r[s]){n=e[s],i=r[s];break}return n<i?-1:i<n?1:0};oe.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};oe.concat=function(e,r){if(!d0(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return oe.alloc(0);var n;if(r===void 0)for(r=0,n=0;n<e.length;++n)r+=e[n].length;var i=oe.allocUnsafe(r),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!pr(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,s),s+=o.length}return i};function g0(t,e){if(pr(t))return t.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;typeof t!="string"&&(t=""+t);var r=t.length;if(r===0)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return za(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return E0(t).length;default:if(n)return za(t).length;e=(""+e).toLowerCase(),n=!0}}oe.byteLength=g0;function Zx(t,e,r){var n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,e>>>=0,r<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return uT(this,e,r);case"utf8":case"utf-8":return w0(this,e,r);case"ascii":return aT(this,e,r);case"latin1":case"binary":return lT(this,e,r);case"base64":return sT(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return cT(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}oe.prototype._isBuffer=!0;function Nn(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}oe.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var r=0;r<e;r+=2)Nn(this,r,r+1);return this};oe.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var r=0;r<e;r+=4)Nn(this,r,r+3),Nn(this,r+1,r+2);return this};oe.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var r=0;r<e;r+=8)Nn(this,r,r+7),Nn(this,r+1,r+6),Nn(this,r+2,r+5),Nn(this,r+3,r+4);return this};oe.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?w0(this,0,e):Zx.apply(this,arguments)};oe.prototype.equals=function(e){if(!pr(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:oe.compare(this,e)===0};oe.prototype.inspect=function(){var e="",r=Kx;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"};oe.prototype.compare=function(e,r,n,i,s){if(!pr(e))throw new TypeError("Argument must be a Buffer");if(r===void 0&&(r=0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),s===void 0&&(s=this.length),r<0||n>e.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&r>=n)return 0;if(i>=s)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,s>>>=0,this===e)return 0;for(var o=s-i,a=n-r,l=Math.min(o,a),u=this.slice(i,s),c=e.slice(r,n),f=0;f<l;++f)if(u[f]!==c[f]){o=u[f],a=c[f];break}return o<a?-1:a<o?1:0};function m0(t,e,r,n,i){if(t.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof e=="string"&&(e=oe.from(e,n)),pr(e))return e.length===0?-1:jp(t,e,r,n,i);if(typeof e=="number")return e=e&255,oe.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):jp(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function jp(t,e,r,n,i){var s=1,o=t.length,a=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(t.length<2||e.length<2)return-1;s=2,o/=2,a/=2,r/=2}function l(h,g){return s===1?h[g]:h.readUInt16BE(g*s)}var u;if(i){var c=-1;for(u=r;u<o;u++)if(l(t,u)===l(e,c===-1?0:u-c)){if(c===-1&&(c=u),u-c+1===a)return c*s}else c!==-1&&(u-=u-c),c=-1}else for(r+a>o&&(r=o-a),u=r;u>=0;u--){for(var f=!0,d=0;d<a;d++)if(l(t,u+d)!==l(e,d)){f=!1;break}if(f)return u}return-1}oe.prototype.includes=function(e,r,n){return this.indexOf(e,r,n)!==-1};oe.prototype.indexOf=function(e,r,n){return m0(this,e,r,n,!0)};oe.prototype.lastIndexOf=function(e,r,n){return m0(this,e,r,n,!1)};function eT(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n),n>i&&(n=i)):n=i;var s=e.length;if(s%2!==0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var o=0;o<n;++o){var a=parseInt(e.substr(o*2,2),16);if(isNaN(a))return o;t[r+o]=a}return o}function tT(t,e,r,n){return Bl(za(e,t.length-r),t,r,n)}function y0(t,e,r,n){return Bl(gT(e),t,r,n)}function rT(t,e,r,n){return y0(t,e,r,n)}function nT(t,e,r,n){return Bl(E0(e),t,r,n)}function iT(t,e,r,n){return Bl(mT(e,t.length-r),t,r,n)}oe.prototype.write=function(e,r,n,i){if(r===void 0)i="utf8",n=this.length,r=0;else if(n===void 0&&typeof r=="string")i=r,n=this.length,r=0;else if(isFinite(r))r=r|0,isFinite(n)?(n=n|0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var s=this.length-r;if((n===void 0||n>s)&&(n=s),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return eT(this,e,r,n);case"utf8":case"utf-8":return tT(this,e,r,n);case"ascii":return y0(this,e,r,n);case"latin1":case"binary":return rT(this,e,r,n);case"base64":return nT(this,e,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return iT(this,e,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}};oe.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function sT(t,e,r){return e===0&&r===t.length?Up(t):Up(t.slice(e,r))}function w0(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var s=t[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=r){var l,u,c,f;switch(a){case 1:s<128&&(o=s);break;case 2:l=t[i+1],(l&192)===128&&(f=(s&31)<<6|l&63,f>127&&(o=f));break;case 3:l=t[i+1],u=t[i+2],(l&192)===128&&(u&192)===128&&(f=(s&15)<<12|(l&63)<<6|u&63,f>2047&&(f<55296||f>57343)&&(o=f));break;case 4:l=t[i+1],u=t[i+2],c=t[i+3],(l&192)===128&&(u&192)===128&&(c&192)===128&&(f=(s&15)<<18|(l&63)<<12|(u&63)<<6|c&63,f>65535&&f<1114112&&(o=f))}}o===null?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=a}return oT(n)}var zp=4096;function oT(t){var e=t.length;if(e<=zp)return String.fromCharCode.apply(String,t);for(var r="",n=0;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=zp));return r}function aT(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]&127);return n}function lT(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function uT(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i="",s=e;s<r;++s)i+=pT(t[s]);return i}function cT(t,e,r){for(var n=t.slice(e,r),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+n[s+1]*256);return i}oe.prototype.slice=function(e,r){var n=this.length;e=~~e,r=r===void 0?n:~~r,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),r<e&&(r=e);var i;if(oe.TYPED_ARRAY_SUPPORT)i=this.subarray(e,r),i.__proto__=oe.prototype;else{var s=r-e;i=new oe(s,void 0);for(var o=0;o<s;++o)i[o]=this[o+e]}return i};function Ke(t,e,r){if(t%1!==0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}oe.prototype.readUIntLE=function(e,r,n){e=e|0,r=r|0,n||Ke(e,r,this.length);for(var i=this[e],s=1,o=0;++o<r&&(s*=256);)i+=this[e+o]*s;return i};oe.prototype.readUIntBE=function(e,r,n){e=e|0,r=r|0,n||Ke(e,r,this.length);for(var i=this[e+--r],s=1;r>0&&(s*=256);)i+=this[e+--r]*s;return i};oe.prototype.readUInt8=function(e,r){return r||Ke(e,1,this.length),this[e]};oe.prototype.readUInt16LE=function(e,r){return r||Ke(e,2,this.length),this[e]|this[e+1]<<8};oe.prototype.readUInt16BE=function(e,r){return r||Ke(e,2,this.length),this[e]<<8|this[e+1]};oe.prototype.readUInt32LE=function(e,r){return r||Ke(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};oe.prototype.readUInt32BE=function(e,r){return r||Ke(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};oe.prototype.readIntLE=function(e,r,n){e=e|0,r=r|0,n||Ke(e,r,this.length);for(var i=this[e],s=1,o=0;++o<r&&(s*=256);)i+=this[e+o]*s;return s*=128,i>=s&&(i-=Math.pow(2,8*r)),i};oe.prototype.readIntBE=function(e,r,n){e=e|0,r=r|0,n||Ke(e,r,this.length);for(var i=r,s=1,o=this[e+--i];i>0&&(s*=256);)o+=this[e+--i]*s;return s*=128,o>=s&&(o-=Math.pow(2,8*r)),o};oe.prototype.readInt8=function(e,r){return r||Ke(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};oe.prototype.readInt16LE=function(e,r){r||Ke(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};oe.prototype.readInt16BE=function(e,r){r||Ke(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};oe.prototype.readInt32LE=function(e,r){return r||Ke(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};oe.prototype.readInt32BE=function(e,r){return r||Ke(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};oe.prototype.readFloatLE=function(e,r){return r||Ke(e,4,this.length),$l(this,e,!0,23,4)};oe.prototype.readFloatBE=function(e,r){return r||Ke(e,4,this.length),$l(this,e,!1,23,4)};oe.prototype.readDoubleLE=function(e,r){return r||Ke(e,8,this.length),$l(this,e,!0,52,8)};oe.prototype.readDoubleBE=function(e,r){return r||Ke(e,8,this.length),$l(this,e,!1,52,8)};function wt(t,e,r,n,i,s){if(!pr(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<s)throw new RangeError('"value" argument is out of bounds');if(r+n>t.length)throw new RangeError("Index out of range")}oe.prototype.writeUIntLE=function(e,r,n,i){if(e=+e,r=r|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;wt(this,e,r,n,s,0)}var o=1,a=0;for(this[r]=e&255;++a<n&&(o*=256);)this[r+a]=e/o&255;return r+n};oe.prototype.writeUIntBE=function(e,r,n,i){if(e=+e,r=r|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;wt(this,e,r,n,s,0)}var o=n-1,a=1;for(this[r+o]=e&255;--o>=0&&(a*=256);)this[r+o]=e/a&255;return r+n};oe.prototype.writeUInt8=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,1,255,0),oe.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=e&255,r+1};function kl(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,s=Math.min(t.length-r,2);i<s;++i)t[r+i]=(e&255<<8*(n?i:1-i))>>>(n?i:1-i)*8}oe.prototype.writeUInt16LE=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,2,65535,0),oe.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8):kl(this,e,r,!0),r+2};oe.prototype.writeUInt16BE=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,2,65535,0),oe.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=e&255):kl(this,e,r,!1),r+2};function Dl(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,s=Math.min(t.length-r,4);i<s;++i)t[r+i]=e>>>(n?i:3-i)*8&255}oe.prototype.writeUInt32LE=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,4,4294967295,0),oe.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255):Dl(this,e,r,!0),r+4};oe.prototype.writeUInt32BE=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,4,4294967295,0),oe.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255):Dl(this,e,r,!1),r+4};oe.prototype.writeIntLE=function(e,r,n,i){if(e=+e,r=r|0,!i){var s=Math.pow(2,8*n-1);wt(this,e,r,n,s-1,-s)}var o=0,a=1,l=0;for(this[r]=e&255;++o<n&&(a*=256);)e<0&&l===0&&this[r+o-1]!==0&&(l=1),this[r+o]=(e/a>>0)-l&255;return r+n};oe.prototype.writeIntBE=function(e,r,n,i){if(e=+e,r=r|0,!i){var s=Math.pow(2,8*n-1);wt(this,e,r,n,s-1,-s)}var o=n-1,a=1,l=0;for(this[r+o]=e&255;--o>=0&&(a*=256);)e<0&&l===0&&this[r+o+1]!==0&&(l=1),this[r+o]=(e/a>>0)-l&255;return r+n};oe.prototype.writeInt8=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,1,127,-128),oe.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=e&255,r+1};oe.prototype.writeInt16LE=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,2,32767,-32768),oe.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8):kl(this,e,r,!0),r+2};oe.prototype.writeInt16BE=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,2,32767,-32768),oe.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=e&255):kl(this,e,r,!1),r+2};oe.prototype.writeInt32LE=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,4,2147483647,-2147483648),oe.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):Dl(this,e,r,!0),r+4};oe.prototype.writeInt32BE=function(e,r,n){return e=+e,r=r|0,n||wt(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),oe.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255):Dl(this,e,r,!1),r+4};function b0(t,e,r,n,i,s){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function _0(t,e,r,n,i){return i||b0(t,e,r,4),f0(t,e,r,n,23,4),r+4}oe.prototype.writeFloatLE=function(e,r,n){return _0(this,e,r,!0,n)};oe.prototype.writeFloatBE=function(e,r,n){return _0(this,e,r,!1,n)};function v0(t,e,r,n,i){return i||b0(t,e,r,8),f0(t,e,r,n,52,8),r+8}oe.prototype.writeDoubleLE=function(e,r,n){return v0(this,e,r,!0,n)};oe.prototype.writeDoubleBE=function(e,r,n){return v0(this,e,r,!1,n)};oe.prototype.copy=function(e,r,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i<n&&(i=n),i===n||e.length===0||this.length===0)return 0;if(r<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-r<i-n&&(i=e.length-r+n);var s=i-n,o;if(this===e&&n<r&&r<i)for(o=s-1;o>=0;--o)e[o+r]=this[o+n];else if(s<1e3||!oe.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+r]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),r);return s};oe.prototype.fill=function(e,r,n,i){if(typeof e=="string"){if(typeof r=="string"?(i=r,r=0,n=this.length):typeof n=="string"&&(i=n,n=this.length),e.length===1){var s=e.charCodeAt(0);s<256&&(e=s)}if(i!==void 0&&typeof i!="string")throw new TypeError("encoding must be a string");if(typeof i=="string"&&!oe.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else typeof e=="number"&&(e=e&255);if(r<0||this.length<r||this.length<n)throw new RangeError("Out of range index");if(n<=r)return this;r=r>>>0,n=n===void 0?this.length:n>>>0,e||(e=0);var o;if(typeof e=="number")for(o=r;o<n;++o)this[o]=e;else{var a=pr(e)?e:za(new oe(e,i).toString()),l=a.length;for(o=0;o<n-r;++o)this[o+r]=a[o%l]}return this};var fT=/[^+\/0-9A-Za-z-_]/g;function dT(t){if(t=hT(t).replace(fT,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function hT(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function pT(t){return t<16?"0"+t.toString(16):t.toString(16)}function za(t,e){e=e||1/0;for(var r,n=t.length,i=null,s=[],o=0;o<n;++o){if(r=t.charCodeAt(o),r>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(o+1===n){(e-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&s.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(e-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;s.push(r)}else if(r<2048){if((e-=2)<0)break;s.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;s.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return s}function gT(t){for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r)&255);return e}function mT(t,e){for(var r,n,i,s=[],o=0;o<t.length&&!((e-=2)<0);++o)r=t.charCodeAt(o),n=r>>8,i=r%256,s.push(i),s.push(n);return s}function E0(t){return Wx(dT(t))}function Bl(t,e,r,n){for(var i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function yT(t){return t!==t}function wT(t){return t!=null&&(!!t._isBuffer||S0(t)||bT(t))}function S0(t){return!!t.constructor&&typeof t.constructor.isBuffer=="function"&&t.constructor.isBuffer(t)}function bT(t){return typeof t.readFloatLE=="function"&&typeof t.slice=="function"&&S0(t.slice(0,0))}var x0={exports:{}},ze=x0.exports={},er,tr;function ff(){throw new Error("setTimeout has not been defined")}function df(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?er=setTimeout:er=ff}catch{er=ff}try{typeof clearTimeout=="function"?tr=clearTimeout:tr=df}catch{tr=df}})();function T0(t){if(er===setTimeout)return setTimeout(t,0);if((er===ff||!er)&&setTimeout)return er=setTimeout,setTimeout(t,0);try{return er(t,0)}catch{try{return er.call(null,t,0)}catch{return er.call(this,t,0)}}}function _T(t){if(tr===clearTimeout)return clearTimeout(t);if((tr===df||!tr)&&clearTimeout)return tr=clearTimeout,clearTimeout(t);try{return tr(t)}catch{try{return tr.call(null,t)}catch{return tr.call(this,t)}}}var Mr=[],Ri=!1,$n,wa=-1;function vT(){!Ri||!$n||(Ri=!1,$n.length?Mr=$n.concat(Mr):wa=-1,Mr.length&&A0())}function A0(){if(!Ri){var t=T0(vT);Ri=!0;for(var e=Mr.length;e;){for($n=Mr,Mr=[];++wa<e;)$n&&$n[wa].run();wa=-1,e=Mr.length}$n=null,Ri=!1,_T(t)}}ze.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];Mr.push(new M0(t,e)),Mr.length===1&&!Ri&&T0(A0)};function M0(t,e){this.fun=t,this.array=e}M0.prototype.run=function(){this.fun.apply(null,this.array)};ze.title="browser";ze.browser=!0;ze.env={};ze.argv=[];ze.version="";ze.versions={};function Hr(){}ze.on=Hr;ze.addListener=Hr;ze.once=Hr;ze.off=Hr;ze.removeListener=Hr;ze.removeAllListeners=Hr;ze.emit=Hr;ze.prependListener=Hr;ze.prependOnceListener=Hr;ze.listeners=function(t){return[]};ze.binding=function(t){throw new Error("process.binding is not supported")};ze.cwd=function(){return"/"};ze.chdir=function(t){throw new Error("process.chdir is not supported")};ze.umask=function(){return 0};var mn=x0.exports;const ku=J1(mn);var hf;typeof Object.create=="function"?hf=function(e,r){e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:hf=function(e,r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e};const C0=hf;var ET=/%[sdj%]/g;function Fl(t){if(!yn(t)){for(var e=[],r=0;r<arguments.length;r++)e.push(lr(arguments[r]));return e.join(" ")}for(var r=1,n=arguments,i=n.length,s=String(t).replace(ET,function(a){if(a==="%%")return"%";if(r>=i)return a;switch(a){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch{return"[Circular]"}default:return a}}),o=n[r];r<i;o=n[++r])Cr(o)||!Wr(o)?s+=" "+o:s+=" "+lr(o);return s}function kd(t,e){if(ar(ln.process))return function(){return kd(t,e).apply(this,arguments)};if(ku.noDeprecation===!0)return t;var r=!1;function n(){if(!r){if(ku.throwDeprecation)throw new Error(e);ku.traceDeprecation?console.trace(e):console.error(e),r=!0}return t.apply(this,arguments)}return n}var Ho={},Du;function I0(t){if(ar(Du)&&(Du={}.NODE_DEBUG||""),t=t.toUpperCase(),!Ho[t])if(new RegExp("\\b"+t+"\\b","i").test(Du)){var e=0;Ho[t]=function(){var r=Fl.apply(null,arguments);console.error("%s %d: %s",t,e,r)}}else Ho[t]=function(){};return Ho[t]}function lr(t,e){var r={seen:[],stylize:xT};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Ul(e)?r.showHidden=e:e&&jd(r,e),ar(r.showHidden)&&(r.showHidden=!1),ar(r.depth)&&(r.depth=2),ar(r.colors)&&(r.colors=!1),ar(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=ST),Ha(r,t,r.depth)}lr.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};lr.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function ST(t,e){var r=lr.styles[e];return r?"\x1B["+lr.colors[r][0]+"m"+t+"\x1B["+lr.colors[r][1]+"m":t}function xT(t,e){return t}function TT(t){var e={};return t.forEach(function(r,n){e[r]=!0}),e}function Ha(t,e,r){if(t.customInspect&&e&&Vs(e.inspect)&&e.inspect!==lr&&!(e.constructor&&e.constructor.prototype===e)){var n=e.inspect(r,t);return yn(n)||(n=Ha(t,n,r)),n}var i=AT(t,e);if(i)return i;var s=Object.keys(e),o=TT(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(e)),Ws(e)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return Bu(e);if(s.length===0){if(Vs(e)){var a=e.name?": "+e.name:"";return t.stylize("[Function"+a+"]","special")}if(Hs(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(Wa(e))return t.stylize(Date.prototype.toString.call(e),"date");if(Ws(e))return Bu(e)}var l="",u=!1,c=["{","}"];if(Dd(e)&&(u=!0,c=["[","]"]),Vs(e)){var f=e.name?": "+e.name:"";l=" [Function"+f+"]"}if(Hs(e)&&(l=" "+RegExp.prototype.toString.call(e)),Wa(e)&&(l=" "+Date.prototype.toUTCString.call(e)),Ws(e)&&(l=" "+Bu(e)),s.length===0&&(!u||e.length==0))return c[0]+l+c[1];if(r<0)return Hs(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special");t.seen.push(e);var d;return u?d=MT(t,e,r,o,s):d=s.map(function(h){return pf(t,e,r,o,h,u)}),t.seen.pop(),CT(d,l,c)}function AT(t,e){if(ar(e))return t.stylize("undefined","undefined");if(yn(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(Fd(e))return t.stylize(""+e,"number");if(Ul(e))return t.stylize(""+e,"boolean");if(Cr(e))return t.stylize("null","null")}function Bu(t){return"["+Error.prototype.toString.call(t)+"]"}function MT(t,e,r,n,i){for(var s=[],o=0,a=e.length;o<a;++o)N0(e,String(o))?s.push(pf(t,e,r,n,String(o),!0)):s.push("");return i.forEach(function(l){l.match(/^\d+$/)||s.push(pf(t,e,r,n,l,!0))}),s}function pf(t,e,r,n,i,s){var o,a,l;if(l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]},l.get?l.set?a=t.stylize("[Getter/Setter]","special"):a=t.stylize("[Getter]","special"):l.set&&(a=t.stylize("[Setter]","special")),N0(n,i)||(o="["+i+"]"),a||(t.seen.indexOf(l.value)<0?(Cr(r)?a=Ha(t,l.value,null):a=Ha(t,l.value,r-1),a.indexOf(`
+`)>-1&&(s?a=a.split(`
+`).map(function(u){return"  "+u}).join(`
+`).substr(2):a=`
+`+a.split(`
+`).map(function(u){return"   "+u}).join(`
+`))):a=t.stylize("[Circular]","special")),ar(o)){if(s&&i.match(/^\d+$/))return a;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+a}function CT(t,e,r){var n=t.reduce(function(i,s){return s.indexOf(`
+`)>=0,i+s.replace(/\u001b\[\d\d?m/g,"").length+1},0);return n>60?r[0]+(e===""?"":e+`
+ `)+" "+t.join(`,
+  `)+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}function Dd(t){return Array.isArray(t)}function Ul(t){return typeof t=="boolean"}function Cr(t){return t===null}function Bd(t){return t==null}function Fd(t){return typeof t=="number"}function yn(t){return typeof t=="string"}function O0(t){return typeof t=="symbol"}function ar(t){return t===void 0}function Hs(t){return Wr(t)&&Ud(t)==="[object RegExp]"}function Wr(t){return typeof t=="object"&&t!==null}function Wa(t){return Wr(t)&&Ud(t)==="[object Date]"}function Ws(t){return Wr(t)&&(Ud(t)==="[object Error]"||t instanceof Error)}function Vs(t){return typeof t=="function"}function P0(t){return t===null||typeof t=="boolean"||typeof t=="number"||typeof t=="string"||typeof t=="symbol"||typeof t>"u"}function R0(t){return oe.isBuffer(t)}function Ud(t){return Object.prototype.toString.call(t)}function Fu(t){return t<10?"0"+t.toString(10):t.toString(10)}var IT=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function OT(){var t=new Date,e=[Fu(t.getHours()),Fu(t.getMinutes()),Fu(t.getSeconds())].join(":");return[t.getDate(),IT[t.getMonth()],e].join(" ")}function L0(){console.log("%s - %s",OT(),Fl.apply(null,arguments))}function jd(t,e){if(!e||!Wr(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}function N0(t,e){return Object.prototype.hasOwnProperty.call(t,e)}const PT={inherits:C0,_extend:jd,log:L0,isBuffer:R0,isPrimitive:P0,isFunction:Vs,isError:Ws,isDate:Wa,isObject:Wr,isRegExp:Hs,isUndefined:ar,isSymbol:O0,isString:yn,isNumber:Fd,isNullOrUndefined:Bd,isNull:Cr,isBoolean:Ul,isArray:Dd,inspect:lr,deprecate:kd,format:Fl,debuglog:I0},RT=Object.freeze(Object.defineProperty({__proto__:null,_extend:jd,debuglog:I0,default:PT,deprecate:kd,format:Fl,inherits:C0,inspect:lr,isArray:Dd,isBoolean:Ul,isBuffer:R0,isDate:Wa,isError:Ws,isFunction:Vs,isNull:Cr,isNullOrUndefined:Bd,isNumber:Fd,isObject:Wr,isPrimitive:P0,isRegExp:Hs,isString:yn,isSymbol:O0,isUndefined:ar,log:L0},Symbol.toStringTag,{value:"Module"})),$0=Ol(RT);var Uu,Hp;function LT(){if(Hp)return Uu;Hp=1;function t(g,y){var b=Object.keys(g);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(g);y&&(E=E.filter(function(_){return Object.getOwnPropertyDescriptor(g,_).enumerable})),b.push.apply(b,E)}return b}function e(g){for(var y=1;y<arguments.length;y++){var b=arguments[y]!=null?arguments[y]:{};y%2?t(Object(b),!0).forEach(function(E){r(g,E,b[E])}):Object.getOwnPropertyDescriptors?Object.defineProperties(g,Object.getOwnPropertyDescriptors(b)):t(Object(b)).forEach(function(E){Object.defineProperty(g,E,Object.getOwnPropertyDescriptor(b,E))})}return g}function r(g,y,b){return y=o(y),y in g?Object.defineProperty(g,y,{value:b,enumerable:!0,configurable:!0,writable:!0}):g[y]=b,g}function n(g,y){if(!(g instanceof y))throw new TypeError("Cannot call a class as a function")}function i(g,y){for(var b=0;b<y.length;b++){var E=y[b];E.enumerable=E.enumerable||!1,E.configurable=!0,"value"in E&&(E.writable=!0),Object.defineProperty(g,o(E.key),E)}}function s(g,y,b){return y&&i(g.prototype,y),b&&i(g,b),Object.defineProperty(g,"prototype",{writable:!1}),g}function o(g){var y=a(g,"string");return typeof y=="symbol"?y:String(y)}function a(g,y){if(typeof g!="object"||g===null)return g;var b=g[Symbol.toPrimitive];if(b!==void 0){var E=b.call(g,y||"default");if(typeof E!="object")return E;throw new TypeError("@@toPrimitive must return a primitive value.")}return(y==="string"?String:Number)(g)}var l=He,u=l.Buffer,c=$0,f=c.inspect,d=f&&f.custom||"inspect";function h(g,y,b){u.prototype.copy.call(g,y,b)}return Uu=function(){function g(){n(this,g),this.head=null,this.tail=null,this.length=0}return s(g,[{key:"push",value:function(b){var E={data:b,next:null};this.length>0?this.tail.next=E:this.head=E,this.tail=E,++this.length}},{key:"unshift",value:function(b){var E={data:b,next:this.head};this.length===0&&(this.tail=E),this.head=E,++this.length}},{key:"shift",value:function(){if(this.length!==0){var b=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,b}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(b){if(this.length===0)return"";for(var E=this.head,_=""+E.data;E=E.next;)_+=b+E.data;return _}},{key:"concat",value:function(b){if(this.length===0)return u.alloc(0);for(var E=u.allocUnsafe(b>>>0),_=this.head,v=0;_;)h(_.data,E,v),v+=_.data.length,_=_.next;return E}},{key:"consume",value:function(b,E){var _;return b<this.head.data.length?(_=this.head.data.slice(0,b),this.head.data=this.head.data.slice(b)):b===this.head.data.length?_=this.shift():_=E?this._getString(b):this._getBuffer(b),_}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(b){var E=this.head,_=1,v=E.data;for(b-=v.length;E=E.next;){var T=E.data,C=b>T.length?T.length:b;if(C===T.length?v+=T:v+=T.slice(0,b),b-=C,b===0){C===T.length?(++_,E.next?this.head=E.next:this.head=this.tail=null):(this.head=E,E.data=T.slice(C));break}++_}return this.length-=_,v}},{key:"_getBuffer",value:function(b){var E=u.allocUnsafe(b),_=this.head,v=1;for(_.data.copy(E),b-=_.data.length;_=_.next;){var T=_.data,C=b>T.length?T.length:b;if(T.copy(E,E.length-b,0,C),b-=C,b===0){C===T.length?(++v,_.next?this.head=_.next:this.head=this.tail=null):(this.head=_,_.data=T.slice(C));break}++v}return this.length-=v,E}},{key:d,value:function(b,E){return f(this,e(e({},E),{},{depth:0,customInspect:!1}))}}]),g}(),Uu}function NT(t,e){var r=this,n=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return n||i?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,_e.nextTick(gf,this,t)):_e.nextTick(gf,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(s){!e&&s?r._writableState?r._writableState.errorEmitted?_e.nextTick(ba,r):(r._writableState.errorEmitted=!0,_e.nextTick(Wp,r,s)):_e.nextTick(Wp,r,s):e?(_e.nextTick(ba,r),e(s)):_e.nextTick(ba,r)}),this)}function Wp(t,e){gf(t,e),ba(t)}function ba(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function $T(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function gf(t,e){t.emit("error",e)}function kT(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}var k0={destroy:NT,undestroy:$T,errorOrDestroy:kT},ti={};function DT(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var D0={};function Nt(t,e,r){r||(r=Error);function n(s,o,a){return typeof e=="string"?e:e(s,o,a)}var i=function(s){DT(o,s);function o(a,l,u){return s.call(this,n(a,l,u))||this}return o}(r);i.prototype.name=r.name,i.prototype.code=t,D0[t]=i}function Vp(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map(function(n){return String(n)}),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:r===2?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}else return"of ".concat(e," ").concat(String(t))}function BT(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function FT(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function UT(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Nt("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Nt("ERR_INVALID_ARG_TYPE",function(t,e,r){var n;typeof e=="string"&&BT(e,"not ")?(n="must not be",e=e.replace(/^not /,"")):n="must be";var i;if(FT(t," argument"))i="The ".concat(t," ").concat(n," ").concat(Vp(e,"type"));else{var s=UT(t,".")?"property":"argument";i='The "'.concat(t,'" ').concat(s," ").concat(n," ").concat(Vp(e,"type"))}return i+=". Received type ".concat(typeof r),i},TypeError);Nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Nt("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Nt("ERR_STREAM_PREMATURE_CLOSE","Premature close");Nt("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Nt("ERR_STREAM_WRITE_AFTER_END","write after end");Nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Nt("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");ti.codes=D0;var jT=ti.codes.ERR_INVALID_OPT_VALUE;function zT(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function HT(t,e,r,n){var i=zT(e,n,r);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=n?r:"highWaterMark";throw new jT(s,i)}return Math.floor(i)}return t.objectMode?16:16*1024}var B0={getHighWaterMark:HT},mf={exports:{}};typeof Object.create=="function"?mf.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:mf.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}};var ri=mf.exports,WT=VT;function VT(t,e){if(ju("noDeprecation"))return t;var r=!1;function n(){if(!r){if(ju("throwDeprecation"))throw new Error(e);ju("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}return n}function ju(t){try{if(!xe.localStorage)return!1}catch{return!1}var e=xe.localStorage[t];return e==null?!1:String(e).toLowerCase()==="true"}var zu,qp;function F0(){if(qp)return zu;qp=1,zu=F;function t(G){var Y=this;this.next=null,this.entry=null,this.finish=function(){be(Y,G)}}var e;F.WritableState=O;var r={deprecate:WT},n=l0,i=He.Buffer,s=(typeof xe<"u"?xe:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(G){return i.from(G)}function a(G){return i.isBuffer(G)||G instanceof s}var l=k0,u=B0,c=u.getHighWaterMark,f=ti.codes,d=f.ERR_INVALID_ARG_TYPE,h=f.ERR_METHOD_NOT_IMPLEMENTED,g=f.ERR_MULTIPLE_CALLBACK,y=f.ERR_STREAM_CANNOT_PIPE,b=f.ERR_STREAM_DESTROYED,E=f.ERR_STREAM_NULL_VALUES,_=f.ERR_STREAM_WRITE_AFTER_END,v=f.ERR_UNKNOWN_ENCODING,T=l.errorOrDestroy;ri(F,n);function C(){}function O(G,Y,ne){e=e||Ui(),G=G||{},typeof ne!="boolean"&&(ne=Y instanceof e),this.objectMode=!!G.objectMode,ne&&(this.objectMode=this.objectMode||!!G.writableObjectMode),this.highWaterMark=c(this,G,"writableHighWaterMark",ne),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var ee=G.decodeStrings===!1;this.decodeStrings=!ee,this.defaultEncoding=G.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(ue){Q(Y,ue)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=G.emitClose!==!1,this.autoDestroy=!!G.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}O.prototype.getBuffer=function(){for(var Y=this.bufferedRequest,ne=[];Y;)ne.push(Y),Y=Y.next;return ne},function(){try{Object.defineProperty(O.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var D;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(D=Function.prototype[Symbol.hasInstance],Object.defineProperty(F,Symbol.hasInstance,{value:function(Y){return D.call(this,Y)?!0:this!==F?!1:Y&&Y._writableState instanceof O}})):D=function(Y){return Y instanceof this};function F(G){e=e||Ui();var Y=this instanceof e;if(!Y&&!D.call(F,this))return new F(G);this._writableState=new O(G,this,Y),this.writable=!0,G&&(typeof G.write=="function"&&(this._write=G.write),typeof G.writev=="function"&&(this._writev=G.writev),typeof G.destroy=="function"&&(this._destroy=G.destroy),typeof G.final=="function"&&(this._final=G.final)),n.call(this)}F.prototype.pipe=function(){T(this,new y)};function L(G,Y){var ne=new _;T(G,ne),_e.nextTick(Y,ne)}function U(G,Y,ne,ee){var ue;return ne===null?ue=new E:typeof ne!="string"&&!Y.objectMode&&(ue=new d("chunk",["string","Buffer"],ne)),ue?(T(G,ue),_e.nextTick(ee,ue),!1):!0}F.prototype.write=function(G,Y,ne){var ee=this._writableState,ue=!1,P=!ee.objectMode&&a(G);return P&&!i.isBuffer(G)&&(G=o(G)),typeof Y=="function"&&(ne=Y,Y=null),P?Y="buffer":Y||(Y=ee.defaultEncoding),typeof ne!="function"&&(ne=C),ee.ending?L(this,ne):(P||U(this,ee,G,ne))&&(ee.pendingcb++,ue=W(this,ee,P,G,Y,ne)),ue},F.prototype.cork=function(){this._writableState.corked++},F.prototype.uncork=function(){var G=this._writableState;G.corked&&(G.corked--,!G.writing&&!G.corked&&!G.bufferProcessing&&G.bufferedRequest&&X(this,G))},F.prototype.setDefaultEncoding=function(Y){if(typeof Y=="string"&&(Y=Y.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((Y+"").toLowerCase())>-1))throw new v(Y);return this._writableState.defaultEncoding=Y,this},Object.defineProperty(F.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function k(G,Y,ne){return!G.objectMode&&G.decodeStrings!==!1&&typeof Y=="string"&&(Y=i.from(Y,ne)),Y}Object.defineProperty(F.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function W(G,Y,ne,ee,ue,P){if(!ne){var w=k(Y,ee,ue);ee!==w&&(ne=!0,ue="buffer",ee=w)}var S=Y.objectMode?1:ee.length;Y.length+=S;var A=Y.length<Y.highWaterMark;if(A||(Y.needDrain=!0),Y.writing||Y.corked){var B=Y.lastBufferedRequest;Y.lastBufferedRequest={chunk:ee,encoding:ue,isBuf:ne,callback:P,next:null},B?B.next=Y.lastBufferedRequest:Y.bufferedRequest=Y.lastBufferedRequest,Y.bufferedRequestCount+=1}else $(G,Y,!1,S,ee,ue,P);return A}function $(G,Y,ne,ee,ue,P,w){Y.writelen=ee,Y.writecb=w,Y.writing=!0,Y.sync=!0,Y.destroyed?Y.onwrite(new b("write")):ne?G._writev(ue,Y.onwrite):G._write(ue,P,Y.onwrite),Y.sync=!1}function I(G,Y,ne,ee,ue){--Y.pendingcb,ne?(_e.nextTick(ue,ee),_e.nextTick(de,G,Y),G._writableState.errorEmitted=!0,T(G,ee)):(ue(ee),G._writableState.errorEmitted=!0,T(G,ee),de(G,Y))}function j(G){G.writing=!1,G.writecb=null,G.length-=G.writelen,G.writelen=0}function Q(G,Y){var ne=G._writableState,ee=ne.sync,ue=ne.writecb;if(typeof ue!="function")throw new g;if(j(ne),Y)I(G,ne,ee,Y,ue);else{var P=Z(ne)||G.destroyed;!P&&!ne.corked&&!ne.bufferProcessing&&ne.bufferedRequest&&X(G,ne),ee?_e.nextTick(H,G,ne,P,ue):H(G,ne,P,ue)}}function H(G,Y,ne,ee){ne||K(G,Y),Y.pendingcb--,ee(),de(G,Y)}function K(G,Y){Y.length===0&&Y.needDrain&&(Y.needDrain=!1,G.emit("drain"))}function X(G,Y){Y.bufferProcessing=!0;var ne=Y.bufferedRequest;if(G._writev&&ne&&ne.next){var ee=Y.bufferedRequestCount,ue=new Array(ee),P=Y.corkedRequestsFree;P.entry=ne;for(var w=0,S=!0;ne;)ue[w]=ne,ne.isBuf||(S=!1),ne=ne.next,w+=1;ue.allBuffers=S,$(G,Y,!0,Y.length,ue,"",P.finish),Y.pendingcb++,Y.lastBufferedRequest=null,P.next?(Y.corkedRequestsFree=P.next,P.next=null):Y.corkedRequestsFree=new t(Y),Y.bufferedRequestCount=0}else{for(;ne;){var A=ne.chunk,B=ne.encoding,z=ne.callback,q=Y.objectMode?1:A.length;if($(G,Y,!1,q,A,B,z),ne=ne.next,Y.bufferedRequestCount--,Y.writing)break}ne===null&&(Y.lastBufferedRequest=null)}Y.bufferedRequest=ne,Y.bufferProcessing=!1}F.prototype._write=function(G,Y,ne){ne(new h("_write()"))},F.prototype._writev=null,F.prototype.end=function(G,Y,ne){var ee=this._writableState;return typeof G=="function"?(ne=G,G=null,Y=null):typeof Y=="function"&&(ne=Y,Y=null),G!=null&&this.write(G,Y),ee.corked&&(ee.corked=1,this.uncork()),ee.ending||me(this,ee,ne),this},Object.defineProperty(F.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Z(G){return G.ending&&G.length===0&&G.bufferedRequest===null&&!G.finished&&!G.writing}function ce(G,Y){G._final(function(ne){Y.pendingcb--,ne&&T(G,ne),Y.prefinished=!0,G.emit("prefinish"),de(G,Y)})}function pe(G,Y){!Y.prefinished&&!Y.finalCalled&&(typeof G._final=="function"&&!Y.destroyed?(Y.pendingcb++,Y.finalCalled=!0,_e.nextTick(ce,G,Y)):(Y.prefinished=!0,G.emit("prefinish")))}function de(G,Y){var ne=Z(Y);if(ne&&(pe(G,Y),Y.pendingcb===0&&(Y.finished=!0,G.emit("finish"),Y.autoDestroy))){var ee=G._readableState;(!ee||ee.autoDestroy&&ee.endEmitted)&&G.destroy()}return ne}function me(G,Y,ne){Y.ending=!0,de(G,Y),ne&&(Y.finished?_e.nextTick(ne):G.once("finish",ne)),Y.ended=!0,G.writable=!1}function be(G,Y,ne){var ee=G.entry;for(G.entry=null;ee;){var ue=ee.callback;Y.pendingcb--,ue(ne),ee=ee.next}Y.corkedRequestsFree.next=G}return Object.defineProperty(F.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(Y){this._writableState&&(this._writableState.destroyed=Y)}}),F.prototype.destroy=l.destroy,F.prototype._undestroy=l.undestroy,F.prototype._destroy=function(G,Y){Y(G)},zu}var Hu,Yp;function Ui(){if(Yp)return Hu;Yp=1;var t=Object.keys||function(u){var c=[];for(var f in u)c.push(f);return c};Hu=o;var e=j0(),r=F0();ri(o,e);for(var n=t(r.prototype),i=0;i<n.length;i++){var s=n[i];o.prototype[s]||(o.prototype[s]=r.prototype[s])}function o(u){if(!(this instanceof o))return new o(u);e.call(this,u),r.call(this,u),this.allowHalfOpen=!0,u&&(u.readable===!1&&(this.readable=!1),u.writable===!1&&(this.writable=!1),u.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",a)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function a(){this._writableState.ended||_e.nextTick(l,this)}function l(u){u.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(c){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=c,this._writableState.destroyed=c)}}),Hu}var Va={},yf={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(t,e){var r=He,n=r.Buffer;function i(o,a){for(var l in o)a[l]=o[l]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(i(r,e),e.Buffer=s);function s(o,a,l){return n(o,a,l)}s.prototype=Object.create(n.prototype),i(n,s),s.from=function(o,a,l){if(typeof o=="number")throw new TypeError("Argument must not be a number");return n(o,a,l)},s.alloc=function(o,a,l){if(typeof o!="number")throw new TypeError("Argument must be a number");var u=n(o);return a!==void 0?typeof l=="string"?u.fill(a,l):u.fill(a):u.fill(0),u},s.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n(o)},s.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(o)}})(yf,yf.exports);var qT=yf.exports,zd=qT.Buffer,Kp=zd.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function YT(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function KT(t){var e=YT(t);if(typeof e!="string"&&(zd.isEncoding===Kp||!Kp(t)))throw new Error("Unknown encoding: "+t);return e||t}Va.StringDecoder=wo;function wo(t){this.encoding=KT(t);var e;switch(this.encoding){case"utf16le":this.text=eA,this.end=tA,e=4;break;case"utf8":this.fillLast=QT,e=4;break;case"base64":this.text=rA,this.end=nA,e=3;break;default:this.write=iA,this.end=sA;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=zd.allocUnsafe(e)}wo.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||""};wo.prototype.end=ZT;wo.prototype.text=JT;wo.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function Wu(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function GT(t,e,r){var n=e.length-1;if(n<r)return 0;var i=Wu(e[n]);return i>=0?(i>0&&(t.lastNeed=i-1),i):--n<r||i===-2?0:(i=Wu(e[n]),i>=0?(i>0&&(t.lastNeed=i-2),i):--n<r||i===-2?0:(i=Wu(e[n]),i>=0?(i>0&&(i===2?i=0:t.lastNeed=i-3),i):0))}function XT(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"�"}}function QT(t){var e=this.lastTotal-this.lastNeed,r=XT(this,t);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function JT(t,e){var r=GT(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)}function ZT(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e}function eA(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function tA(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function rA(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function nA(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function iA(t){return t.toString(this.encoding)}function sA(t){return t&&t.length?this.write(t):""}var Gp=ti.codes.ERR_STREAM_PREMATURE_CLOSE;function oA(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];t.apply(this,n)}}}function aA(){}function lA(t){return t.setHeader&&typeof t.abort=="function"}function U0(t,e,r){if(typeof e=="function")return U0(t,null,e);e||(e={}),r=oA(r||aA);var n=e.readable||e.readable!==!1&&t.readable,i=e.writable||e.writable!==!1&&t.writable,s=function(){t.writable||a()},o=t._writableState&&t._writableState.finished,a=function(){i=!1,o=!0,n||r.call(t)},l=t._readableState&&t._readableState.endEmitted,u=function(){n=!1,l=!0,i||r.call(t)},c=function(g){r.call(t,g)},f=function(){var g;if(n&&!l)return(!t._readableState||!t._readableState.ended)&&(g=new Gp),r.call(t,g);if(i&&!o)return(!t._writableState||!t._writableState.ended)&&(g=new Gp),r.call(t,g)},d=function(){t.req.on("finish",a)};return lA(t)?(t.on("complete",a),t.on("abort",f),t.req?d():t.on("request",d)):i&&!t._writableState&&(t.on("end",s),t.on("close",s)),t.on("end",u),t.on("finish",a),e.error!==!1&&t.on("error",c),t.on("close",f),function(){t.removeListener("complete",a),t.removeListener("abort",f),t.removeListener("request",d),t.req&&t.req.removeListener("finish",a),t.removeListener("end",s),t.removeListener("close",s),t.removeListener("finish",a),t.removeListener("end",u),t.removeListener("error",c),t.removeListener("close",f)}}var Hd=U0,Vu,Xp;function uA(){if(Xp)return Vu;Xp=1;var t;function e(v,T,C){return T=r(T),T in v?Object.defineProperty(v,T,{value:C,enumerable:!0,configurable:!0,writable:!0}):v[T]=C,v}function r(v){var T=n(v,"string");return typeof T=="symbol"?T:String(T)}function n(v,T){if(typeof v!="object"||v===null)return v;var C=v[Symbol.toPrimitive];if(C!==void 0){var O=C.call(v,T||"default");if(typeof O!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(T==="string"?String:Number)(v)}var i=Hd,s=Symbol("lastResolve"),o=Symbol("lastReject"),a=Symbol("error"),l=Symbol("ended"),u=Symbol("lastPromise"),c=Symbol("handlePromise"),f=Symbol("stream");function d(v,T){return{value:v,done:T}}function h(v){var T=v[s];if(T!==null){var C=v[f].read();C!==null&&(v[u]=null,v[s]=null,v[o]=null,T(d(C,!1)))}}function g(v){_e.nextTick(h,v)}function y(v,T){return function(C,O){v.then(function(){if(T[l]){C(d(void 0,!0));return}T[c](C,O)},O)}}var b=Object.getPrototypeOf(function(){}),E=Object.setPrototypeOf((t={get stream(){return this[f]},next:function(){var T=this,C=this[a];if(C!==null)return Promise.reject(C);if(this[l])return Promise.resolve(d(void 0,!0));if(this[f].destroyed)return new Promise(function(L,U){_e.nextTick(function(){T[a]?U(T[a]):L(d(void 0,!0))})});var O=this[u],D;if(O)D=new Promise(y(O,this));else{var F=this[f].read();if(F!==null)return Promise.resolve(d(F,!1));D=new Promise(this[c])}return this[u]=D,D}},e(t,Symbol.asyncIterator,function(){return this}),e(t,"return",function(){var T=this;return new Promise(function(C,O){T[f].destroy(null,function(D){if(D){O(D);return}C(d(void 0,!0))})})}),t),b),_=function(T){var C,O=Object.create(E,(C={},e(C,f,{value:T,writable:!0}),e(C,s,{value:null,writable:!0}),e(C,o,{value:null,writable:!0}),e(C,a,{value:null,writable:!0}),e(C,l,{value:T._readableState.endEmitted,writable:!0}),e(C,c,{value:function(F,L){var U=O[f].read();U?(O[u]=null,O[s]=null,O[o]=null,F(d(U,!1))):(O[s]=F,O[o]=L)},writable:!0}),C));return O[u]=null,i(T,function(D){if(D&&D.code!=="ERR_STREAM_PREMATURE_CLOSE"){var F=O[o];F!==null&&(O[u]=null,O[s]=null,O[o]=null,F(D)),O[a]=D;return}var L=O[s];L!==null&&(O[u]=null,O[s]=null,O[o]=null,L(d(void 0,!0))),O[l]=!0}),T.on("readable",g.bind(null,O)),O};return Vu=_,Vu}var qu,Qp;function cA(){return Qp||(Qp=1,qu=function(){throw new Error("Readable.from is not available in the browser")}),qu}var Yu,Jp;function j0(){if(Jp)return Yu;Jp=1,Yu=L;var t;L.ReadableState=F,gn.EventEmitter;var e=function(w,S){return w.listeners(S).length},r=l0,n=He.Buffer,i=(typeof xe<"u"?xe:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(P){return n.from(P)}function o(P){return n.isBuffer(P)||P instanceof i}var a=$0,l;a&&a.debuglog?l=a.debuglog("stream"):l=function(){};var u=LT(),c=k0,f=B0,d=f.getHighWaterMark,h=ti.codes,g=h.ERR_INVALID_ARG_TYPE,y=h.ERR_STREAM_PUSH_AFTER_EOF,b=h.ERR_METHOD_NOT_IMPLEMENTED,E=h.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,_,v,T;ri(L,r);var C=c.errorOrDestroy,O=["error","close","destroy","pause","resume"];function D(P,w,S){if(typeof P.prependListener=="function")return P.prependListener(w,S);!P._events||!P._events[w]?P.on(w,S):Array.isArray(P._events[w])?P._events[w].unshift(S):P._events[w]=[S,P._events[w]]}function F(P,w,S){t=t||Ui(),P=P||{},typeof S!="boolean"&&(S=w instanceof t),this.objectMode=!!P.objectMode,S&&(this.objectMode=this.objectMode||!!P.readableObjectMode),this.highWaterMark=d(this,P,"readableHighWaterMark",S),this.buffer=new u,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=P.emitClose!==!1,this.autoDestroy=!!P.autoDestroy,this.destroyed=!1,this.defaultEncoding=P.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,P.encoding&&(_||(_=Va.StringDecoder),this.decoder=new _(P.encoding),this.encoding=P.encoding)}function L(P){if(t=t||Ui(),!(this instanceof L))return new L(P);var w=this instanceof t;this._readableState=new F(P,this,w),this.readable=!0,P&&(typeof P.read=="function"&&(this._read=P.read),typeof P.destroy=="function"&&(this._destroy=P.destroy)),r.call(this)}Object.defineProperty(L.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(w){this._readableState&&(this._readableState.destroyed=w)}}),L.prototype.destroy=c.destroy,L.prototype._undestroy=c.undestroy,L.prototype._destroy=function(P,w){w(P)},L.prototype.push=function(P,w){var S=this._readableState,A;return S.objectMode?A=!0:typeof P=="string"&&(w=w||S.defaultEncoding,w!==S.encoding&&(P=n.from(P,w),w=""),A=!0),U(this,P,w,!1,A)},L.prototype.unshift=function(P){return U(this,P,null,!0,!1)};function U(P,w,S,A,B){l("readableAddChunk",w);var z=P._readableState;if(w===null)z.reading=!1,Q(P,z);else{var q;if(B||(q=W(z,w)),q)C(P,q);else if(z.objectMode||w&&w.length>0)if(typeof w!="string"&&!z.objectMode&&Object.getPrototypeOf(w)!==n.prototype&&(w=s(w)),A)z.endEmitted?C(P,new E):k(P,z,w,!0);else if(z.ended)C(P,new y);else{if(z.destroyed)return!1;z.reading=!1,z.decoder&&!S?(w=z.decoder.write(w),z.objectMode||w.length!==0?k(P,z,w,!1):X(P,z)):k(P,z,w,!1)}else A||(z.reading=!1,X(P,z))}return!z.ended&&(z.length<z.highWaterMark||z.length===0)}function k(P,w,S,A){w.flowing&&w.length===0&&!w.sync?(w.awaitDrain=0,P.emit("data",S)):(w.length+=w.objectMode?1:S.length,A?w.buffer.unshift(S):w.buffer.push(S),w.needReadable&&H(P)),X(P,w)}function W(P,w){var S;return!o(w)&&typeof w!="string"&&w!==void 0&&!P.objectMode&&(S=new g("chunk",["string","Buffer","Uint8Array"],w)),S}L.prototype.isPaused=function(){return this._readableState.flowing===!1},L.prototype.setEncoding=function(P){_||(_=Va.StringDecoder);var w=new _(P);this._readableState.decoder=w,this._readableState.encoding=this._readableState.decoder.encoding;for(var S=this._readableState.buffer.head,A="";S!==null;)A+=w.write(S.data),S=S.next;return this._readableState.buffer.clear(),A!==""&&this._readableState.buffer.push(A),this._readableState.length=A.length,this};var $=1073741824;function I(P){return P>=$?P=$:(P--,P|=P>>>1,P|=P>>>2,P|=P>>>4,P|=P>>>8,P|=P>>>16,P++),P}function j(P,w){return P<=0||w.length===0&&w.ended?0:w.objectMode?1:P!==P?w.flowing&&w.length?w.buffer.head.data.length:w.length:(P>w.highWaterMark&&(w.highWaterMark=I(P)),P<=w.length?P:w.ended?w.length:(w.needReadable=!0,0))}L.prototype.read=function(P){l("read",P),P=parseInt(P,10);var w=this._readableState,S=P;if(P!==0&&(w.emittedReadable=!1),P===0&&w.needReadable&&((w.highWaterMark!==0?w.length>=w.highWaterMark:w.length>0)||w.ended))return l("read: emitReadable",w.length,w.ended),w.length===0&&w.ended?ne(this):H(this),null;if(P=j(P,w),P===0&&w.ended)return w.length===0&&ne(this),null;var A=w.needReadable;l("need readable",A),(w.length===0||w.length-P<w.highWaterMark)&&(A=!0,l("length less than watermark",A)),w.ended||w.reading?(A=!1,l("reading or ended",A)):A&&(l("do read"),w.reading=!0,w.sync=!0,w.length===0&&(w.needReadable=!0),this._read(w.highWaterMark),w.sync=!1,w.reading||(P=j(S,w)));var B;return P>0?B=Y(P,w):B=null,B===null?(w.needReadable=w.length<=w.highWaterMark,P=0):(w.length-=P,w.awaitDrain=0),w.length===0&&(w.ended||(w.needReadable=!0),S!==P&&w.ended&&ne(this)),B!==null&&this.emit("data",B),B};function Q(P,w){if(l("onEofChunk"),!w.ended){if(w.decoder){var S=w.decoder.end();S&&S.length&&(w.buffer.push(S),w.length+=w.objectMode?1:S.length)}w.ended=!0,w.sync?H(P):(w.needReadable=!1,w.emittedReadable||(w.emittedReadable=!0,K(P)))}}function H(P){var w=P._readableState;l("emitReadable",w.needReadable,w.emittedReadable),w.needReadable=!1,w.emittedReadable||(l("emitReadable",w.flowing),w.emittedReadable=!0,_e.nextTick(K,P))}function K(P){var w=P._readableState;l("emitReadable_",w.destroyed,w.length,w.ended),!w.destroyed&&(w.length||w.ended)&&(P.emit("readable"),w.emittedReadable=!1),w.needReadable=!w.flowing&&!w.ended&&w.length<=w.highWaterMark,G(P)}function X(P,w){w.readingMore||(w.readingMore=!0,_e.nextTick(Z,P,w))}function Z(P,w){for(;!w.reading&&!w.ended&&(w.length<w.highWaterMark||w.flowing&&w.length===0);){var S=w.length;if(l("maybeReadMore read 0"),P.read(0),S===w.length)break}w.readingMore=!1}L.prototype._read=function(P){C(this,new b("_read()"))},L.prototype.pipe=function(P,w){var S=this,A=this._readableState;switch(A.pipesCount){case 0:A.pipes=P;break;case 1:A.pipes=[A.pipes,P];break;default:A.pipes.push(P);break}A.pipesCount+=1,l("pipe count=%d opts=%j",A.pipesCount,w);var B=(!w||w.end!==!1)&&P!==_e.stdout&&P!==_e.stderr,z=B?ie:N;A.endEmitted?_e.nextTick(z):S.once("end",z),P.on("unpipe",q);function q(x,p){l("onunpipe"),x===S&&p&&p.hasUnpiped===!1&&(p.hasUnpiped=!0,se())}function ie(){l("onend"),P.end()}var re=ce(S);P.on("drain",re);var ae=!1;function se(){l("cleanup"),P.removeListener("close",ge),P.removeListener("finish",M),P.removeListener("drain",re),P.removeListener("error",fe),P.removeListener("unpipe",q),S.removeListener("end",ie),S.removeListener("end",N),S.removeListener("data",he),ae=!0,A.awaitDrain&&(!P._writableState||P._writableState.needDrain)&&re()}S.on("data",he);function he(x){l("ondata");var p=P.write(x);l("dest.write",p),p===!1&&((A.pipesCount===1&&A.pipes===P||A.pipesCount>1&&ue(A.pipes,P)!==-1)&&!ae&&(l("false write response, pause",A.awaitDrain),A.awaitDrain++),S.pause())}function fe(x){l("onerror",x),N(),P.removeListener("error",fe),e(P,"error")===0&&C(P,x)}D(P,"error",fe);function ge(){P.removeListener("finish",M),N()}P.once("close",ge);function M(){l("onfinish"),P.removeListener("close",ge),N()}P.once("finish",M);function N(){l("unpipe"),S.unpipe(P)}return P.emit("pipe",S),A.flowing||(l("pipe resume"),S.resume()),P};function ce(P){return function(){var S=P._readableState;l("pipeOnDrain",S.awaitDrain),S.awaitDrain&&S.awaitDrain--,S.awaitDrain===0&&e(P,"data")&&(S.flowing=!0,G(P))}}L.prototype.unpipe=function(P){var w=this._readableState,S={hasUnpiped:!1};if(w.pipesCount===0)return this;if(w.pipesCount===1)return P&&P!==w.pipes?this:(P||(P=w.pipes),w.pipes=null,w.pipesCount=0,w.flowing=!1,P&&P.emit("unpipe",this,S),this);if(!P){var A=w.pipes,B=w.pipesCount;w.pipes=null,w.pipesCount=0,w.flowing=!1;for(var z=0;z<B;z++)A[z].emit("unpipe",this,{hasUnpiped:!1});return this}var q=ue(w.pipes,P);return q===-1?this:(w.pipes.splice(q,1),w.pipesCount-=1,w.pipesCount===1&&(w.pipes=w.pipes[0]),P.emit("unpipe",this,S),this)},L.prototype.on=function(P,w){var S=r.prototype.on.call(this,P,w),A=this._readableState;return P==="data"?(A.readableListening=this.listenerCount("readable")>0,A.flowing!==!1&&this.resume()):P==="readable"&&!A.endEmitted&&!A.readableListening&&(A.readableListening=A.needReadable=!0,A.flowing=!1,A.emittedReadable=!1,l("on readable",A.length,A.reading),A.length?H(this):A.reading||_e.nextTick(de,this)),S},L.prototype.addListener=L.prototype.on,L.prototype.removeListener=function(P,w){var S=r.prototype.removeListener.call(this,P,w);return P==="readable"&&_e.nextTick(pe,this),S},L.prototype.removeAllListeners=function(P){var w=r.prototype.removeAllListeners.apply(this,arguments);return(P==="readable"||P===void 0)&&_e.nextTick(pe,this),w};function pe(P){var w=P._readableState;w.readableListening=P.listenerCount("readable")>0,w.resumeScheduled&&!w.paused?w.flowing=!0:P.listenerCount("data")>0&&P.resume()}function de(P){l("readable nexttick read 0"),P.read(0)}L.prototype.resume=function(){var P=this._readableState;return P.flowing||(l("resume"),P.flowing=!P.readableListening,me(this,P)),P.paused=!1,this};function me(P,w){w.resumeScheduled||(w.resumeScheduled=!0,_e.nextTick(be,P,w))}function be(P,w){l("resume",w.reading),w.reading||P.read(0),w.resumeScheduled=!1,P.emit("resume"),G(P),w.flowing&&!w.reading&&P.read(0)}L.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function G(P){var w=P._readableState;for(l("flow",w.flowing);w.flowing&&P.read()!==null;);}L.prototype.wrap=function(P){var w=this,S=this._readableState,A=!1;P.on("end",function(){if(l("wrapped end"),S.decoder&&!S.ended){var q=S.decoder.end();q&&q.length&&w.push(q)}w.push(null)}),P.on("data",function(q){if(l("wrapped data"),S.decoder&&(q=S.decoder.write(q)),!(S.objectMode&&q==null)&&!(!S.objectMode&&(!q||!q.length))){var ie=w.push(q);ie||(A=!0,P.pause())}});for(var B in P)this[B]===void 0&&typeof P[B]=="function"&&(this[B]=function(ie){return function(){return P[ie].apply(P,arguments)}}(B));for(var z=0;z<O.length;z++)P.on(O[z],this.emit.bind(this,O[z]));return this._read=function(q){l("wrapped _read",q),A&&(A=!1,P.resume())},this},typeof Symbol=="function"&&(L.prototype[Symbol.asyncIterator]=function(){return v===void 0&&(v=uA()),v(this)}),Object.defineProperty(L.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(L.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(L.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(w){this._readableState&&(this._readableState.flowing=w)}}),L._fromList=Y,Object.defineProperty(L.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function Y(P,w){if(w.length===0)return null;var S;return w.objectMode?S=w.buffer.shift():!P||P>=w.length?(w.decoder?S=w.buffer.join(""):w.buffer.length===1?S=w.buffer.first():S=w.buffer.concat(w.length),w.buffer.clear()):S=w.buffer.consume(P,w.decoder),S}function ne(P){var w=P._readableState;l("endReadable",w.endEmitted),w.endEmitted||(w.ended=!0,_e.nextTick(ee,w,P))}function ee(P,w){if(l("endReadableNT",P.endEmitted,P.length),!P.endEmitted&&P.length===0&&(P.endEmitted=!0,w.readable=!1,w.emit("end"),P.autoDestroy)){var S=w._writableState;(!S||S.autoDestroy&&S.finished)&&w.destroy()}}typeof Symbol=="function"&&(L.from=function(P,w){return T===void 0&&(T=cA()),T(L,P,w)});function ue(P,w){for(var S=0,A=P.length;S<A;S++)if(P[S]===w)return S;return-1}return Yu}var z0=Nr,jl=ti.codes,fA=jl.ERR_METHOD_NOT_IMPLEMENTED,dA=jl.ERR_MULTIPLE_CALLBACK,hA=jl.ERR_TRANSFORM_ALREADY_TRANSFORMING,pA=jl.ERR_TRANSFORM_WITH_LENGTH_0,zl=Ui();ri(Nr,zl);function gA(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new dA);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function Nr(t){if(!(this instanceof Nr))return new Nr(t);zl.call(this,t),this._transformState={afterTransform:gA.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(typeof t.transform=="function"&&(this._transform=t.transform),typeof t.flush=="function"&&(this._flush=t.flush)),this.on("prefinish",mA)}function mA(){var t=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,r){Zp(t,e,r)}):Zp(this,null,null)}Nr.prototype.push=function(t,e){return this._transformState.needTransform=!1,zl.prototype.push.call(this,t,e)};Nr.prototype._transform=function(t,e,r){r(new fA("_transform()"))};Nr.prototype._write=function(t,e,r){var n=this._transformState;if(n.writecb=r,n.writechunk=t,n.writeencoding=e,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}};Nr.prototype._read=function(t){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};Nr.prototype._destroy=function(t,e){zl.prototype._destroy.call(this,t,function(r){e(r)})};function Zp(t,e,r){if(e)return t.emit("error",e);if(r!=null&&t.push(r),t._writableState.length)throw new pA;if(t._transformState.transforming)throw new hA;return t.push(null)}var yA=ao,H0=z0;ri(ao,H0);function ao(t){if(!(this instanceof ao))return new ao(t);H0.call(this,t)}ao.prototype._transform=function(t,e,r){r(null,t)};var Ku;function wA(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var W0=ti.codes,bA=W0.ERR_MISSING_ARGS,_A=W0.ERR_STREAM_DESTROYED;function eg(t){if(t)throw t}function vA(t){return t.setHeader&&typeof t.abort=="function"}function EA(t,e,r,n){n=wA(n);var i=!1;t.on("close",function(){i=!0}),Ku===void 0&&(Ku=Hd),Ku(t,{readable:e,writable:r},function(o){if(o)return n(o);i=!0,n()});var s=!1;return function(o){if(!i&&!s){if(s=!0,vA(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();n(o||new _A("pipe"))}}}function tg(t){t()}function SA(t,e){return t.pipe(e)}function xA(t){return!t.length||typeof t[t.length-1]!="function"?eg:t.pop()}function TA(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var n=xA(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new bA("streams");var i,s=e.map(function(o,a){var l=a<e.length-1,u=a>0;return EA(o,l,u,function(c){i||(i=c),c&&s.forEach(tg),!l&&(s.forEach(tg),n(i))})});return e.reduce(SA)}var AA=TA;(function(t,e){e=t.exports=j0(),e.Stream=e,e.Readable=e,e.Writable=F0(),e.Duplex=Ui(),e.Transform=z0,e.PassThrough=yA,e.finished=Hd,e.pipeline=AA})(uf,uf.exports);var V0=uf.exports;const{Buffer:zt}=He,q0=Symbol.for("BufferList");function Be(t){if(!(this instanceof Be))return new Be(t);Be._init.call(this,t)}Be._init=function(e){Object.defineProperty(this,q0,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};Be.prototype._new=function(e){return new Be(e)};Be.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let n=0;n<this._bufs.length;n++){const i=r+this._bufs[n].length;if(e<i||n===this._bufs.length-1)return[n,e-r];r=i}};Be.prototype._reverseOffset=function(t){const e=t[0];let r=t[1];for(let n=0;n<e;n++)r+=this._bufs[n].length;return r};Be.prototype.get=function(e){if(e>this.length||e<0)return;const r=this._offset(e);return this._bufs[r[0]][r[1]]};Be.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};Be.prototype.copy=function(e,r,n,i){if((typeof n!="number"||n<0)&&(n=0),(typeof i!="number"||i>this.length)&&(i=this.length),n>=this.length||i<=0)return e||zt.alloc(0);const s=!!e,o=this._offset(n),a=i-n;let l=a,u=s&&r||0,c=o[1];if(n===0&&i===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:zt.concat(this._bufs,this.length);for(let f=0;f<this._bufs.length;f++)this._bufs[f].copy(e,u),u+=this._bufs[f].length;return e}if(l<=this._bufs[o[0]].length-c)return s?this._bufs[o[0]].copy(e,r,c,c+l):this._bufs[o[0]].slice(c,c+l);s||(e=zt.allocUnsafe(a));for(let f=o[0];f<this._bufs.length;f++){const d=this._bufs[f].length-c;if(l>d)this._bufs[f].copy(e,u,c),u+=d;else{this._bufs[f].copy(e,u,c,c+l),u+=d;break}l-=d,c&&(c=0)}return e.length>u?e.slice(0,u):e};Be.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();const n=this._offset(e),i=this._offset(r),s=this._bufs.slice(n[0],i[0]+1);return i[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,i[1]),n[1]!==0&&(s[0]=s[0].slice(n[1])),this._new(s)};Be.prototype.toString=function(e,r,n){return this.slice(r,n).toString(e)};Be.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};Be.prototype.duplicate=function(){const e=this._new();for(let r=0;r<this._bufs.length;r++)e.append(this._bufs[r]);return e};Be.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(zt.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let r=0;r<e.length;r++)this.append(e[r]);else if(this._isBufferList(e))for(let r=0;r<e._bufs.length;r++)this.append(e._bufs[r]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(zt.from(e));return this};Be.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};Be.prototype.indexOf=function(t,e,r){if(r===void 0&&typeof e=="string"&&(r=e,e=void 0),typeof t=="function"||Array.isArray(t))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof t=="number"?t=zt.from([t]):typeof t=="string"?t=zt.from(t,r):this._isBufferList(t)?t=t.slice():Array.isArray(t.buffer)?t=zt.from(t.buffer,t.byteOffset,t.byteLength):zt.isBuffer(t)||(t=zt.from(t)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;const n=this._offset(e);let i=n[0],s=n[1];for(;i<this._bufs.length;i++){const o=this._bufs[i];for(;s<o.length;)if(o.length-s>=t.length){const l=o.indexOf(t,s);if(l!==-1)return this._reverseOffset([i,l]);s=o.length-t.length+1}else{const l=this._reverseOffset([i,s]);if(this._match(l,t))return l;s++}s=0}return-1};Be.prototype._match=function(t,e){if(this.length-t<e.length)return!1;for(let r=0;r<e.length;r++)if(this.get(t+r)!==e[r])return!1;return!0};(function(){const t={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(const e in t)(function(r){t[r]===null?Be.prototype[r]=function(n,i){return this.slice(n,n+i)[r](0,i)}:Be.prototype[r]=function(n=0){return this.slice(n,n+t[r])[r](0)}})(e)})();Be.prototype._isBufferList=function(e){return e instanceof Be||Be.isBufferList(e)};Be.isBufferList=function(e){return e!=null&&e[q0]};var MA=Be;const Wd=V0.Duplex,CA=ri,bo=MA;function it(t){if(!(this instanceof it))return new it(t);if(typeof t=="function"){this._callback=t;const e=(function(n){this._callback&&(this._callback(n),this._callback=null)}).bind(this);this.on("pipe",function(n){n.on("error",e)}),this.on("unpipe",function(n){n.removeListener("error",e)}),t=null}bo._init.call(this,t),Wd.call(this)}CA(it,Wd);Object.assign(it.prototype,bo.prototype);it.prototype._new=function(e){return new it(e)};it.prototype._write=function(e,r,n){this._appendBuffer(e),typeof n=="function"&&n()};it.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};it.prototype.end=function(e){Wd.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};it.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};it.prototype._isBufferList=function(e){return e instanceof it||e instanceof bo||it.isBufferList(e)};it.isBufferList=bo.isBufferList;Rl.exports=it;Rl.exports.BufferListStream=it;Rl.exports.BufferList=bo;var IA=Rl.exports;let OA=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};var PA=OA,Y0={exports:{}};(function(t){const e=t.exports,{Buffer:r}=He;e.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},e.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},e.requiredHeaderFlagsErrors={};for(const i in e.requiredHeaderFlags){const s=e.requiredHeaderFlags[i];e.requiredHeaderFlagsErrors[i]="Invalid header flag bits, must be 0x"+s.toString(16)+" for "+e.types[i]+" packet"}e.codes={};for(const i in e.types){const s=e.types[i];e.codes[s]=i}e.CMD_SHIFT=4,e.CMD_MASK=240,e.DUP_MASK=8,e.QOS_MASK=3,e.QOS_SHIFT=1,e.RETAIN_MASK=1,e.VARBYTEINT_MASK=127,e.VARBYTEINT_FIN_MASK=128,e.VARBYTEINT_MAX=268435455,e.SESSIONPRESENT_MASK=1,e.SESSIONPRESENT_HEADER=r.from([e.SESSIONPRESENT_MASK]),e.CONNACK_HEADER=r.from([e.codes.connack<<e.CMD_SHIFT]),e.USERNAME_MASK=128,e.PASSWORD_MASK=64,e.WILL_RETAIN_MASK=32,e.WILL_QOS_MASK=24,e.WILL_QOS_SHIFT=3,e.WILL_FLAG_MASK=4,e.CLEAN_SESSION_MASK=2,e.CONNECT_HEADER=r.from([e.codes.connect<<e.CMD_SHIFT]),e.properties={sessionExpiryInterval:17,willDelayInterval:24,receiveMaximum:33,maximumPacketSize:39,topicAliasMaximum:34,requestResponseInformation:25,requestProblemInformation:23,userProperties:38,authenticationMethod:21,authenticationData:22,payloadFormatIndicator:1,messageExpiryInterval:2,contentType:3,responseTopic:8,correlationData:9,maximumQoS:36,retainAvailable:37,assignedClientIdentifier:18,reasonString:31,wildcardSubscriptionAvailable:40,subscriptionIdentifiersAvailable:41,sharedSubscriptionAvailable:42,serverKeepAlive:19,responseInformation:26,serverReference:28,topicAlias:35,subscriptionIdentifier:11},e.propertiesCodes={};for(const i in e.properties){const s=e.properties[i];e.propertiesCodes[s]=i}e.propertiesTypes={sessionExpiryInterval:"int32",willDelayInterval:"int32",receiveMaximum:"int16",maximumPacketSize:"int32",topicAliasMaximum:"int16",requestResponseInformation:"byte",requestProblemInformation:"byte",userProperties:"pair",authenticationMethod:"string",authenticationData:"binary",payloadFormatIndicator:"byte",messageExpiryInterval:"int32",contentType:"string",responseTopic:"string",correlationData:"binary",maximumQoS:"int8",retainAvailable:"byte",assignedClientIdentifier:"string",reasonString:"string",wildcardSubscriptionAvailable:"byte",subscriptionIdentifiersAvailable:"byte",sharedSubscriptionAvailable:"byte",serverKeepAlive:"int16",responseInformation:"string",serverReference:"string",topicAlias:"int16",subscriptionIdentifier:"var"};function n(i){return[0,1,2].map(s=>[0,1].map(o=>[0,1].map(a=>{const l=r.alloc(1);return l.writeUInt8(e.codes[i]<<e.CMD_SHIFT|(o?e.DUP_MASK:0)|s<<e.QOS_SHIFT|a,0,!0),l})))}e.PUBLISH_HEADER=n("publish"),e.SUBSCRIBE_HEADER=n("subscribe"),e.SUBSCRIBE_OPTIONS_QOS_MASK=3,e.SUBSCRIBE_OPTIONS_NL_MASK=1,e.SUBSCRIBE_OPTIONS_NL_SHIFT=2,e.SUBSCRIBE_OPTIONS_RAP_MASK=1,e.SUBSCRIBE_OPTIONS_RAP_SHIFT=3,e.SUBSCRIBE_OPTIONS_RH_MASK=3,e.SUBSCRIBE_OPTIONS_RH_SHIFT=4,e.SUBSCRIBE_OPTIONS_RH=[0,16,32],e.SUBSCRIBE_OPTIONS_NL=4,e.SUBSCRIBE_OPTIONS_RAP=8,e.SUBSCRIBE_OPTIONS_QOS=[0,1,2],e.UNSUBSCRIBE_HEADER=n("unsubscribe"),e.ACKS={unsuback:n("unsuback"),puback:n("puback"),pubcomp:n("pubcomp"),pubrel:n("pubrel"),pubrec:n("pubrec")},e.SUBACK_HEADER=r.from([e.codes.suback<<e.CMD_SHIFT]),e.VERSION3=r.from([3]),e.VERSION4=r.from([4]),e.VERSION5=r.from([5]),e.VERSION131=r.from([131]),e.VERSION132=r.from([132]),e.QOS=[0,1,2].map(i=>r.from([i])),e.EMPTY={pingreq:r.from([e.codes.pingreq<<4,0]),pingresp:r.from([e.codes.pingresp<<4,0]),disconnect:r.from([e.codes.disconnect<<4,0])},e.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},e.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},e.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},e.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},e.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},e.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}})(Y0);var K0=Y0.exports,wf={exports:{}},Gu,rg;function RA(){if(rg)return Gu;rg=1;var t=1e3,e=t*60,r=e*60,n=r*24,i=n*7,s=n*365.25;Gu=function(c,f){f=f||{};var d=typeof c;if(d==="string"&&c.length>0)return o(c);if(d==="number"&&isFinite(c))return f.long?l(c):a(c);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(c))};function o(c){if(c=String(c),!(c.length>100)){var f=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(c);if(f){var d=parseFloat(f[1]),h=(f[2]||"ms").toLowerCase();switch(h){case"years":case"year":case"yrs":case"yr":case"y":return d*s;case"weeks":case"week":case"w":return d*i;case"days":case"day":case"d":return d*n;case"hours":case"hour":case"hrs":case"hr":case"h":return d*r;case"minutes":case"minute":case"mins":case"min":case"m":return d*e;case"seconds":case"second":case"secs":case"sec":case"s":return d*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return d;default:return}}}}function a(c){var f=Math.abs(c);return f>=n?Math.round(c/n)+"d":f>=r?Math.round(c/r)+"h":f>=e?Math.round(c/e)+"m":f>=t?Math.round(c/t)+"s":c+"ms"}function l(c){var f=Math.abs(c);return f>=n?u(c,f,n,"day"):f>=r?u(c,f,r,"hour"):f>=e?u(c,f,e,"minute"):f>=t?u(c,f,t,"second"):c+" ms"}function u(c,f,d,h){var g=f>=d*1.5;return Math.round(c/d)+" "+h+(g?"s":"")}return Gu}function LA(t){r.debug=r,r.default=r,r.coerce=l,r.disable=s,r.enable=i,r.enabled=o,r.humanize=RA(),r.destroy=u,Object.keys(t).forEach(c=>{r[c]=t[c]}),r.names=[],r.skips=[],r.formatters={};function e(c){let f=0;for(let d=0;d<c.length;d++)f=(f<<5)-f+c.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(c){let f,d=null,h,g;function y(...b){if(!y.enabled)return;const E=y,_=Number(new Date),v=_-(f||_);E.diff=v,E.prev=f,E.curr=_,f=_,b[0]=r.coerce(b[0]),typeof b[0]!="string"&&b.unshift("%O");let T=0;b[0]=b[0].replace(/%([a-zA-Z%])/g,(O,D)=>{if(O==="%%")return"%";T++;const F=r.formatters[D];if(typeof F=="function"){const L=b[T];O=F.call(E,L),b.splice(T,1),T--}return O}),r.formatArgs.call(E,b),(E.log||r.log).apply(E,b)}return y.namespace=c,y.useColors=r.useColors(),y.color=r.selectColor(c),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==r.namespaces&&(h=r.namespaces,g=r.enabled(c)),g),set:b=>{d=b}}),typeof r.init=="function"&&r.init(y),y}function n(c,f){const d=r(this.namespace+(typeof f>"u"?":":f)+c);return d.log=this.log,d}function i(c){r.save(c),r.namespaces=c,r.names=[],r.skips=[];let f;const d=(typeof c=="string"?c:"").split(/[\s,]+/),h=d.length;for(f=0;f<h;f++)d[f]&&(c=d[f].replace(/\*/g,".*?"),c[0]==="-"?r.skips.push(new RegExp("^"+c.slice(1)+"$")):r.names.push(new RegExp("^"+c+"$")))}function s(){const c=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),c}function o(c){if(c[c.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f<d;f++)if(r.skips[f].test(c))return!1;for(f=0,d=r.names.length;f<d;f++)if(r.names[f].test(c))return!0;return!1}function a(c){return c.toString().substring(2,c.toString().length-2).replace(/\.\*\?$/,"*")}function l(c){return c instanceof Error?c.stack||c.message:c}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}var NA=LA;(function(t,e){e.formatArgs=n,e.save=i,e.load=s,e.useColors=r,e.storage=o(),e.destroy=(()=>{let l=!1;return()=>{l||(l=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function n(l){if(l[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+l[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const u="color: "+this.color;l.splice(1,0,u,"color: inherit");let c=0,f=0;l[0].replace(/%[a-zA-Z%]/g,d=>{d!=="%%"&&(c++,d==="%c"&&(f=c))}),l.splice(f,0,u)}e.log=console.debug||console.log||(()=>{});function i(l){try{l?e.storage.setItem("debug",l):e.storage.removeItem("debug")}catch{}}function s(){let l;try{l=e.storage.getItem("debug")}catch{}return!l&&typeof _e<"u"&&"env"in _e&&(l={}.DEBUG),l}function o(){try{return localStorage}catch{}}t.exports=NA(e);const{formatters:a}=t.exports;a.j=function(l){try{return JSON.stringify(l)}catch(u){return"[UnexpectedJSONParseError]: "+u.message}}})(wf,wf.exports);var Vr=wf.exports;const $A=IA,kA=gn,ng=PA,Oe=K0,Ee=Vr("mqtt-packet:parser");class qa extends kA{constructor(){super(),this.parser=this.constructor.parser}static parser(e){return this instanceof qa?(this.settings=e||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new qa().parser(e)}_resetState(){Ee("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new ng,this.error=null,this._list=$A(),this._stateCounter=0}parse(e){for(this.error&&this._resetState(),this._list.append(e),Ee("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,Ee("parse: state complete. _stateCounter is now: %d",this._stateCounter),Ee("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return Ee("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){const e=this._list.readUInt8(0),r=e>>Oe.CMD_SHIFT;this.packet.cmd=Oe.types[r];const n=e&15,i=Oe.requiredHeaderFlags[r];return i!=null&&n!==i?this._emitError(new Error(Oe.requiredHeaderFlagsErrors[r])):(this.packet.retain=(e&Oe.RETAIN_MASK)!==0,this.packet.qos=e>>Oe.QOS_SHIFT&Oe.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(e&Oe.DUP_MASK)!==0,Ee("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){const e=this._parseVarByteNum(!0);return e&&(this.packet.length=e.value,this._list.consume(e.bytes)),Ee("_parseLength %d",e.value),!!e}_parsePayload(){Ee("_parsePayload: payload %O",this._list);let e=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}e=!0}return Ee("_parsePayload complete result: %s",e),e}_parseConnect(){Ee("_parseConnect");let e,r,n,i;const s={},o=this.packet,a=this._parseString();if(a===null)return this._emitError(new Error("Cannot parse protocolId"));if(a!=="MQTT"&&a!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(o.protocolId=a,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(o.protocolVersion=this._list.readUInt8(this._pos),o.protocolVersion>=128&&(o.bridgeMode=!0,o.protocolVersion=o.protocolVersion-128),o.protocolVersion!==3&&o.protocolVersion!==4&&o.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));s.username=this._list.readUInt8(this._pos)&Oe.USERNAME_MASK,s.password=this._list.readUInt8(this._pos)&Oe.PASSWORD_MASK,s.will=this._list.readUInt8(this._pos)&Oe.WILL_FLAG_MASK;const l=!!(this._list.readUInt8(this._pos)&Oe.WILL_RETAIN_MASK),u=(this._list.readUInt8(this._pos)&Oe.WILL_QOS_MASK)>>Oe.WILL_QOS_SHIFT;if(s.will)o.will={},o.will.retain=l,o.will.qos=u;else{if(l)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(u)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(o.clean=(this._list.readUInt8(this._pos)&Oe.CLEAN_SESSION_MASK)!==0,this._pos++,o.keepalive=this._parseNum(),o.keepalive===-1)return this._emitError(new Error("Packet too short"));if(o.protocolVersion===5){const f=this._parseProperties();Object.getOwnPropertyNames(f).length&&(o.properties=f)}const c=this._parseString();if(c===null)return this._emitError(new Error("Packet too short"));if(o.clientId=c,Ee("_parseConnect: packet.clientId: %s",o.clientId),s.will){if(o.protocolVersion===5){const f=this._parseProperties();Object.getOwnPropertyNames(f).length&&(o.will.properties=f)}if(e=this._parseString(),e===null)return this._emitError(new Error("Cannot parse will topic"));if(o.will.topic=e,Ee("_parseConnect: packet.will.topic: %s",o.will.topic),r=this._parseBuffer(),r===null)return this._emitError(new Error("Cannot parse will payload"));o.will.payload=r,Ee("_parseConnect: packet.will.paylaod: %s",o.will.payload)}if(s.username){if(i=this._parseString(),i===null)return this._emitError(new Error("Cannot parse username"));o.username=i,Ee("_parseConnect: packet.username: %s",o.username)}if(s.password){if(n=this._parseBuffer(),n===null)return this._emitError(new Error("Cannot parse password"));o.password=n}return this.settings=o,Ee("_parseConnect: complete"),o}_parseConnack(){Ee("_parseConnack");const e=this.packet;if(this._list.length<1)return null;const r=this._list.readUInt8(this._pos++);if(r>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(e.sessionPresent=!!(r&Oe.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?e.reasonCode=this._list.readUInt8(this._pos++):e.reasonCode=0;else{if(this._list.length<2)return null;e.returnCode=this._list.readUInt8(this._pos++)}if(e.returnCode===-1||e.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){const n=this._parseProperties();Object.getOwnPropertyNames(n).length&&(e.properties=n)}Ee("_parseConnack: complete")}_parsePublish(){Ee("_parsePublish");const e=this.packet;if(e.topic=this._parseString(),e.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(e.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(e.properties=r)}e.payload=this._list.slice(this._pos,e.length),Ee("_parsePublish: payload from buffer list: %o",e.payload)}}_parseSubscribe(){Ee("_parseSubscribe");const e=this.packet;let r,n,i,s,o,a,l;if(e.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(e.properties=u)}if(e.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos<e.length;){if(r=this._parseString(),r===null)return this._emitError(new Error("Cannot parse topic"));if(this._pos>=e.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(n=this._parseByte(),this.settings.protocolVersion===5){if(n&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(n&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(i=n&Oe.SUBSCRIBE_OPTIONS_QOS_MASK,i>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(a=(n>>Oe.SUBSCRIBE_OPTIONS_NL_SHIFT&Oe.SUBSCRIBE_OPTIONS_NL_MASK)!==0,o=(n>>Oe.SUBSCRIBE_OPTIONS_RAP_SHIFT&Oe.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,s=n>>Oe.SUBSCRIBE_OPTIONS_RH_SHIFT&Oe.SUBSCRIBE_OPTIONS_RH_MASK,s>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));l={topic:r,qos:i},this.settings.protocolVersion===5?(l.nl=a,l.rap=o,l.rh=s):this.settings.bridgeMode&&(l.rh=0,l.rap=!0,l.nl=!0),Ee("_parseSubscribe: push subscription `%s` to subscription",l),e.subscriptions.push(l)}}}_parseSuback(){Ee("_parseSuback");const e=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(e.properties=r)}if(e.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos<this.packet.length;){const r=this._list.readUInt8(this._pos++);if(this.settings.protocolVersion===5){if(!Oe.MQTT5_SUBACK_CODES[r])return this._emitError(new Error("Invalid suback code"))}else if(r>2&&r!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(r)}}}_parseUnsubscribe(){Ee("_parseUnsubscribe");const e=this.packet;if(e.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(e.properties=r)}if(e.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos<e.length;){const r=this._parseString();if(r===null)return this._emitError(new Error("Cannot parse topic"));Ee("_parseUnsubscribe: push topic `%s` to unsubscriptions",r),e.unsubscriptions.push(r)}}}_parseUnsuback(){Ee("_parseUnsuback");const e=this.packet;if(!this._parseMessageId())return this._emitError(new Error("Cannot parse messageId"));if((this.settings.protocolVersion===3||this.settings.protocolVersion===4)&&e.length!==2)return this._emitError(new Error("Malformed unsuback, payload length must be 2"));if(e.length<=0)return this._emitError(new Error("Malformed unsuback, no payload specified"));if(this.settings.protocolVersion===5){const r=this._parseProperties();for(Object.getOwnPropertyNames(r).length&&(e.properties=r),e.granted=[];this._pos<this.packet.length;){const n=this._list.readUInt8(this._pos++);if(!Oe.MQTT5_UNSUBACK_CODES[n])return this._emitError(new Error("Invalid unsuback code"));this.packet.granted.push(n)}}}_parseConfirmation(){Ee("_parseConfirmation: packet.cmd: `%s`",this.packet.cmd);const e=this.packet;if(this._parseMessageId(),this.settings.protocolVersion===5){if(e.length>2){switch(e.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!Oe.MQTT5_PUBACK_PUBREC_CODES[e.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!Oe.MQTT5_PUBREL_PUBCOMP_CODES[e.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}Ee("_parseConfirmation: packet.reasonCode `%d`",e.reasonCode)}else e.reasonCode=0;if(e.length>3){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(e.properties=r)}}return!0}_parseDisconnect(){const e=this.packet;if(Ee("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(e.reasonCode=this._parseByte(),Oe.MQTT5_DISCONNECT_CODES[e.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):e.reasonCode=0;const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(e.properties=r)}return Ee("_parseDisconnect result: true"),!0}_parseAuth(){Ee("_parseAuth");const e=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(e.reasonCode=this._parseByte(),!Oe.MQTT5_AUTH_CODES[e.reasonCode])return this._emitError(new Error("Invalid auth reason code"));const r=this._parseProperties();return Object.getOwnPropertyNames(r).length&&(e.properties=r),Ee("_parseAuth: result: true"),!0}_parseMessageId(){const e=this.packet;return e.messageId=this._parseNum(),e.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(Ee("_parseMessageId: packet.messageId %d",e.messageId),!0)}_parseString(e){const r=this._parseNum(),n=r+this._pos;if(r===-1||n>this._list.length||n>this.packet.length)return null;const i=this._list.toString("utf8",this._pos,n);return this._pos+=r,Ee("_parseString: result: %s",i),i}_parseStringPair(){return Ee("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){const e=this._parseNum(),r=e+this._pos;if(e===-1||r>this._list.length||r>this.packet.length)return null;const n=this._list.slice(this._pos,r);return this._pos+=e,Ee("_parseBuffer: result: %o",n),n}_parseNum(){if(this._list.length-this._pos<2)return-1;const e=this._list.readUInt16BE(this._pos);return this._pos+=2,Ee("_parseNum: result: %s",e),e}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;const e=this._list.readUInt32BE(this._pos);return this._pos+=4,Ee("_parse4ByteNum: result: %s",e),e}_parseVarByteNum(e){Ee("_parseVarByteNum");const r=4;let n=0,i=1,s=0,o=!1,a;const l=this._pos?this._pos:0;for(;n<r&&l+n<this._list.length;){if(a=this._list.readUInt8(l+n++),s+=i*(a&Oe.VARBYTEINT_MASK),i*=128,!(a&Oe.VARBYTEINT_FIN_MASK)){o=!0;break}if(this._list.length<=n)break}return!o&&n===r&&this._list.length>=n&&this._emitError(new Error("Invalid variable byte integer")),l&&(this._pos+=n),o?e?o={bytes:n,value:s}:o=s:o=!1,Ee("_parseVarByteNum: result: %o",o),o}_parseByte(){let e;return this._pos<this._list.length&&(e=this._list.readUInt8(this._pos),this._pos++),Ee("_parseByte: result: %o",e),e}_parseByType(e){switch(Ee("_parseByType: type: %s",e),e){case"byte":return this._parseByte()!==0;case"int8":return this._parseByte();case"int16":return this._parseNum();case"int32":return this._parse4ByteNum();case"var":return this._parseVarByteNum();case"string":return this._parseString();case"pair":return this._parseStringPair();case"binary":return this._parseBuffer()}}_parseProperties(){Ee("_parseProperties");const e=this._parseVarByteNum(),n=this._pos+e,i={};for(;this._pos<n;){const s=this._parseByte();if(!s)return this._emitError(new Error("Cannot parse property code type")),!1;const o=Oe.propertiesCodes[s];if(!o)return this._emitError(new Error("Unknown property")),!1;if(o==="userProperties"){i[o]||(i[o]=Object.create(null));const a=this._parseByType(Oe.propertiesTypes[o]);if(i[o][a.name])if(Array.isArray(i[o][a.name]))i[o][a.name].push(a.value);else{const l=i[o][a.name];i[o][a.name]=[l],i[o][a.name].push(a.value)}else i[o][a.name]=a.value;continue}i[o]?Array.isArray(i[o])?i[o].push(this._parseByType(Oe.propertiesTypes[o])):(i[o]=[i[o]],i[o].push(this._parseByType(Oe.propertiesTypes[o]))):i[o]=this._parseByType(Oe.propertiesTypes[o])}return i}_newPacket(){return Ee("_newPacket"),this.packet&&(this._list.consume(this.packet.length),Ee("_newPacket: parser emit packet: packet.cmd: %s, packet.payload: %s, packet.length: %d",this.packet.cmd,this.packet.payload,this.packet.length),this.emit("packet",this.packet)),Ee("_newPacket: new packet"),this.packet=new ng,this._pos=0,!0}_emitError(e){Ee("_emitError",e),this.error=e,this.emit("error",e)}}var DA=qa;const{Buffer:lo}=He,BA=65536,G0={},FA=lo.isBuffer(lo.from([1,2]).subarray(0,1));function X0(t){const e=lo.allocUnsafe(2);return e.writeUInt8(t>>8,0),e.writeUInt8(t&255,0+1),e}function UA(){for(let t=0;t<BA;t++)G0[t]=X0(t)}function jA(t){let r=0,n=0;const i=lo.allocUnsafe(4);do r=t%128|0,t=t/128|0,t>0&&(r=r|128),i.writeUInt8(r,n++);while(t>0&&n<4);return t>0&&(n=0),FA?i.subarray(0,n):i.slice(0,n)}function zA(t){const e=lo.allocUnsafe(4);return e.writeUInt32BE(t,0),e}var HA={cache:G0,generateCache:UA,generateNumber:X0,genBufVariableByteInt:jA,generate4ByteBuffer:zA},bf={exports:{}};typeof _e>"u"||!_e.version||_e.version.indexOf("v0.")===0||_e.version.indexOf("v1.")===0&&_e.version.indexOf("v1.8.")!==0?bf.exports={nextTick:WA}:bf.exports=_e;function WA(t,e,r,n){if(typeof t!="function")throw new TypeError('"callback" argument must be a function');var i=arguments.length,s,o;switch(i){case 0:case 1:return _e.nextTick(t);case 2:return _e.nextTick(function(){t.call(null,e)});case 3:return _e.nextTick(function(){t.call(null,e,r)});case 4:return _e.nextTick(function(){t.call(null,e,r,n)});default:for(s=new Array(i-1),o=0;o<s.length;)s[o++]=arguments[o];return _e.nextTick(function(){t.apply(null,s)})}}var VA=bf.exports;const Se=K0,{Buffer:ve}=He,qA=ve.allocUnsafe(0),YA=ve.from([0]),_o=HA,KA=VA.nextTick,Pt=Vr("mqtt-packet:writeToStream"),Ya=_o.cache,GA=_o.generateNumber,XA=_o.generateCache,_f=_o.genBufVariableByteInt,QA=_o.generate4ByteBuffer;let ut=vf,Ka=!0;function Q0(t,e,r){switch(Pt("generate called"),e.cork&&(e.cork(),KA(JA,e)),Ka&&(Ka=!1,XA()),Pt("generate: packet.cmd: %s",t.cmd),t.cmd){case"connect":return ZA(t,e);case"connack":return eM(t,e,r);case"publish":return tM(t,e,r);case"puback":case"pubrec":case"pubrel":case"pubcomp":return rM(t,e,r);case"subscribe":return nM(t,e,r);case"suback":return iM(t,e,r);case"unsubscribe":return sM(t,e,r);case"unsuback":return oM(t,e,r);case"pingreq":case"pingresp":return aM(t,e);case"disconnect":return lM(t,e,r);case"auth":return uM(t,e,r);default:return e.destroy(new Error("Unknown command")),!1}}Object.defineProperty(Q0,"cacheNumbers",{get(){return ut===vf},set(t){t?((!Ya||Object.keys(Ya).length===0)&&(Ka=!0),ut=vf):(Ka=!1,ut=cM)}});function JA(t){t.uncork()}function ZA(t,e,r){const n=t||{},i=n.protocolId||"MQTT";let s=n.protocolVersion||4;const o=n.will;let a=n.clean;const l=n.keepalive||0,u=n.clientId||"",c=n.username,f=n.password,d=n.properties;a===void 0&&(a=!0);let h=0;if(!i||typeof i!="string"&&!ve.isBuffer(i))return e.destroy(new Error("Invalid protocolId")),!1;if(h+=i.length+2,s!==3&&s!==4&&s!==5)return e.destroy(new Error("Invalid protocol version")),!1;if(h+=1,(typeof u=="string"||ve.isBuffer(u))&&(u||s>=4)&&(u||a))h+=ve.byteLength(u)+2;else{if(s<4)return e.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(a*1===0)return e.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof l!="number"||l<0||l>65535||l%1!==0)return e.destroy(new Error("Invalid keepalive")),!1;h+=2,h+=1;let g,y;if(s===5){if(g=fn(e,d),!g)return!1;h+=g.length}if(o){if(typeof o!="object")return e.destroy(new Error("Invalid will")),!1;if(!o.topic||typeof o.topic!="string")return e.destroy(new Error("Invalid will topic")),!1;if(h+=ve.byteLength(o.topic)+2,h+=2,o.payload)if(o.payload.length>=0)typeof o.payload=="string"?h+=ve.byteLength(o.payload):h+=o.payload.length;else return e.destroy(new Error("Invalid will payload")),!1;if(y={},s===5){if(y=fn(e,o.properties),!y)return!1;h+=y.length}}let b=!1;if(c!=null)if(lg(c))b=!0,h+=ve.byteLength(c)+2;else return e.destroy(new Error("Invalid username")),!1;if(f!=null){if(!b)return e.destroy(new Error("Username is required to use password")),!1;if(lg(f))h+=J0(f)+2;else return e.destroy(new Error("Invalid password")),!1}e.write(Se.CONNECT_HEADER),$t(e,h),mi(e,i),n.bridgeMode&&(s+=128),e.write(s===131?Se.VERSION131:s===132?Se.VERSION132:s===4?Se.VERSION4:s===5?Se.VERSION5:Se.VERSION3);let E=0;return E|=c!=null?Se.USERNAME_MASK:0,E|=f!=null?Se.PASSWORD_MASK:0,E|=o&&o.retain?Se.WILL_RETAIN_MASK:0,E|=o&&o.qos?o.qos<<Se.WILL_QOS_SHIFT:0,E|=o?Se.WILL_FLAG_MASK:0,E|=a?Se.CLEAN_SESSION_MASK:0,e.write(ve.from([E])),ut(e,l),s===5&&g.write(),mi(e,u),o&&(s===5&&y.write(),Vn(e,o.topic),mi(e,o.payload)),c!=null&&mi(e,c),f!=null&&mi(e,f),!0}function eM(t,e,r){const n=r?r.protocolVersion:4,i=t||{},s=n===5?i.reasonCode:i.returnCode,o=i.properties;let a=2;if(typeof s!="number")return e.destroy(new Error("Invalid return code")),!1;let l=null;if(n===5){if(l=fn(e,o),!l)return!1;a+=l.length}return e.write(Se.CONNACK_HEADER),$t(e,a),e.write(i.sessionPresent?Se.SESSIONPRESENT_HEADER:YA),e.write(ve.from([s])),l!=null&&l.write(),!0}function tM(t,e,r){Pt("publish: packet: %o",t);const n=r?r.protocolVersion:4,i=t||{},s=i.qos||0,o=i.retain?Se.RETAIN_MASK:0,a=i.topic,l=i.payload||qA,u=i.messageId,c=i.properties;let f=0;if(typeof a=="string")f+=ve.byteLength(a)+2;else if(ve.isBuffer(a))f+=a.length+2;else return e.destroy(new Error("Invalid topic")),!1;if(ve.isBuffer(l)?f+=l.length:f+=ve.byteLength(l),s&&typeof u!="number")return e.destroy(new Error("Invalid messageId")),!1;s&&(f+=2);let d=null;if(n===5){if(d=fn(e,c),!d)return!1;f+=d.length}return e.write(Se.PUBLISH_HEADER[s][i.dup?1:0][o?1:0]),$t(e,f),ut(e,J0(a)),e.write(a),s>0&&ut(e,u),d!=null&&d.write(),Pt("publish: payload: %o",l),e.write(l)}function rM(t,e,r){const n=r?r.protocolVersion:4,i=t||{},s=i.cmd||"puback",o=i.messageId,a=i.dup&&s==="pubrel"?Se.DUP_MASK:0;let l=0;const u=i.reasonCode,c=i.properties;let f=n===5?3:2;if(s==="pubrel"&&(l=1),typeof o!="number")return e.destroy(new Error("Invalid messageId")),!1;let d=null;if(n===5&&typeof c=="object"){if(d=vo(e,c,r,f),!d)return!1;f+=d.length}return e.write(Se.ACKS[s][l][a][0]),f===3&&(f+=u!==0?1:-1),$t(e,f),ut(e,o),n===5&&f!==2&&e.write(ve.from([u])),d!==null?d.write():f===4&&e.write(ve.from([0])),!0}function nM(t,e,r){Pt("subscribe: packet: ");const n=r?r.protocolVersion:4,i=t||{},s=i.dup?Se.DUP_MASK:0,o=i.messageId,a=i.subscriptions,l=i.properties;let u=0;if(typeof o!="number")return e.destroy(new Error("Invalid messageId")),!1;u+=2;let c=null;if(n===5){if(c=fn(e,l),!c)return!1;u+=c.length}if(typeof a=="object"&&a.length)for(let d=0;d<a.length;d+=1){const h=a[d].topic,g=a[d].qos;if(typeof h!="string")return e.destroy(new Error("Invalid subscriptions - invalid topic")),!1;if(typeof g!="number")return e.destroy(new Error("Invalid subscriptions - invalid qos")),!1;if(n===5){if(typeof(a[d].nl||!1)!="boolean")return e.destroy(new Error("Invalid subscriptions - invalid No Local")),!1;if(typeof(a[d].rap||!1)!="boolean")return e.destroy(new Error("Invalid subscriptions - invalid Retain as Published")),!1;const E=a[d].rh||0;if(typeof E!="number"||E>2)return e.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}u+=ve.byteLength(h)+2+1}else return e.destroy(new Error("Invalid subscriptions")),!1;Pt("subscribe: writing to stream: %o",Se.SUBSCRIBE_HEADER),e.write(Se.SUBSCRIBE_HEADER[1][s?1:0][0]),$t(e,u),ut(e,o),c!==null&&c.write();let f=!0;for(const d of a){const h=d.topic,g=d.qos,y=+d.nl,b=+d.rap,E=d.rh;let _;Vn(e,h),_=Se.SUBSCRIBE_OPTIONS_QOS[g],n===5&&(_|=y?Se.SUBSCRIBE_OPTIONS_NL:0,_|=b?Se.SUBSCRIBE_OPTIONS_RAP:0,_|=E?Se.SUBSCRIBE_OPTIONS_RH[E]:0),f=e.write(ve.from([_]))}return f}function iM(t,e,r){const n=r?r.protocolVersion:4,i=t||{},s=i.messageId,o=i.granted,a=i.properties;let l=0;if(typeof s!="number")return e.destroy(new Error("Invalid messageId")),!1;if(l+=2,typeof o=="object"&&o.length)for(let c=0;c<o.length;c+=1){if(typeof o[c]!="number")return e.destroy(new Error("Invalid qos vector")),!1;l+=1}else return e.destroy(new Error("Invalid qos vector")),!1;let u=null;if(n===5){if(u=vo(e,a,r,l),!u)return!1;l+=u.length}return e.write(Se.SUBACK_HEADER),$t(e,l),ut(e,s),u!==null&&u.write(),e.write(ve.from(o))}function sM(t,e,r){const n=r?r.protocolVersion:4,i=t||{},s=i.messageId,o=i.dup?Se.DUP_MASK:0,a=i.unsubscriptions,l=i.properties;let u=0;if(typeof s!="number")return e.destroy(new Error("Invalid messageId")),!1;if(u+=2,typeof a=="object"&&a.length)for(let d=0;d<a.length;d+=1){if(typeof a[d]!="string")return e.destroy(new Error("Invalid unsubscriptions")),!1;u+=ve.byteLength(a[d])+2}else return e.destroy(new Error("Invalid unsubscriptions")),!1;let c=null;if(n===5){if(c=fn(e,l),!c)return!1;u+=c.length}e.write(Se.UNSUBSCRIBE_HEADER[1][o?1:0][0]),$t(e,u),ut(e,s),c!==null&&c.write();let f=!0;for(let d=0;d<a.length;d++)f=Vn(e,a[d]);return f}function oM(t,e,r){const n=r?r.protocolVersion:4,i=t||{},s=i.messageId,o=i.dup?Se.DUP_MASK:0,a=i.granted,l=i.properties,u=i.cmd,c=0;let f=2;if(typeof s!="number")return e.destroy(new Error("Invalid messageId")),!1;if(n===5)if(typeof a=="object"&&a.length)for(let h=0;h<a.length;h+=1){if(typeof a[h]!="number")return e.destroy(new Error("Invalid qos vector")),!1;f+=1}else return e.destroy(new Error("Invalid qos vector")),!1;let d=null;if(n===5){if(d=vo(e,l,r,f),!d)return!1;f+=d.length}return e.write(Se.ACKS[u][c][o][0]),$t(e,f),ut(e,s),d!==null&&d.write(),n===5&&e.write(ve.from(a)),!0}function aM(t,e,r){return e.write(Se.EMPTY[t.cmd])}function lM(t,e,r){const n=r?r.protocolVersion:4,i=t||{},s=i.reasonCode,o=i.properties;let a=n===5?1:0,l=null;if(n===5){if(l=vo(e,o,r,a),!l)return!1;a+=l.length}return e.write(ve.from([Se.codes.disconnect<<4])),$t(e,a),n===5&&e.write(ve.from([s])),l!==null&&l.write(),!0}function uM(t,e,r){const n=r?r.protocolVersion:4,i=t||{},s=i.reasonCode,o=i.properties;let a=n===5?1:0;n!==5&&e.destroy(new Error("Invalid mqtt version for auth packet"));const l=vo(e,o,r,a);return l?(a+=l.length,e.write(ve.from([Se.codes.auth<<4])),$t(e,a),e.write(ve.from([s])),l!==null&&l.write(),!0):!1}const ig={};function $t(t,e){if(e>Se.VARBYTEINT_MAX)return t.destroy(new Error(`Invalid variable byte integer: ${e}`)),!1;let r=ig[e];return r||(r=_f(e),e<16384&&(ig[e]=r)),Pt("writeVarByteInt: writing to stream: %o",r),t.write(r)}function Vn(t,e){const r=ve.byteLength(e);return ut(t,r),Pt("writeString: %s",e),t.write(e,"utf8")}function sg(t,e,r){Vn(t,e),Vn(t,r)}function vf(t,e){return Pt("writeNumberCached: number: %d",e),Pt("writeNumberCached: %o",Ya[e]),t.write(Ya[e])}function cM(t,e){const r=GA(e);return Pt("writeNumberGenerated: %o",r),t.write(r)}function fM(t,e){const r=QA(e);return Pt("write4ByteNumber: %o",r),t.write(r)}function mi(t,e){typeof e=="string"?Vn(t,e):e?(ut(t,e.length),t.write(e)):ut(t,0)}function fn(t,e){if(typeof e!="object"||e.length!=null)return{length:1,write(){ag(t,{},0)}};let r=0;function n(s,o){const a=Se.propertiesTypes[s];let l=0;switch(a){case"byte":{if(typeof o!="boolean")return t.destroy(new Error(`Invalid ${s}: ${o}`)),!1;l+=1+1;break}case"int8":{if(typeof o!="number"||o<0||o>255)return t.destroy(new Error(`Invalid ${s}: ${o}`)),!1;l+=1+1;break}case"binary":{if(o&&o===null)return t.destroy(new Error(`Invalid ${s}: ${o}`)),!1;l+=1+ve.byteLength(o)+2;break}case"int16":{if(typeof o!="number"||o<0||o>65535)return t.destroy(new Error(`Invalid ${s}: ${o}`)),!1;l+=1+2;break}case"int32":{if(typeof o!="number"||o<0||o>4294967295)return t.destroy(new Error(`Invalid ${s}: ${o}`)),!1;l+=1+4;break}case"var":{if(typeof o!="number"||o<0||o>268435455)return t.destroy(new Error(`Invalid ${s}: ${o}`)),!1;l+=1+ve.byteLength(_f(o));break}case"string":{if(typeof o!="string")return t.destroy(new Error(`Invalid ${s}: ${o}`)),!1;l+=1+2+ve.byteLength(o.toString());break}case"pair":{if(typeof o!="object")return t.destroy(new Error(`Invalid ${s}: ${o}`)),!1;l+=Object.getOwnPropertyNames(o).reduce((u,c)=>{const f=o[c];return Array.isArray(f)?u+=f.reduce((d,h)=>(d+=1+2+ve.byteLength(c.toString())+2+ve.byteLength(h.toString()),d),0):u+=1+2+ve.byteLength(c.toString())+2+ve.byteLength(o[c].toString()),u},0);break}default:return t.destroy(new Error(`Invalid property ${s}: ${o}`)),!1}return l}if(e)for(const s in e){let o=0,a=0;const l=e[s];if(Array.isArray(l))for(let u=0;u<l.length;u++){if(a=n(s,l[u]),!a)return!1;o+=a}else{if(a=n(s,l),!a)return!1;o=a}if(!o)return!1;r+=o}return{length:ve.byteLength(_f(r))+r,write(){ag(t,e,r)}}}function vo(t,e,r,n){const i=["reasonString","userProperties"],s=r&&r.properties&&r.properties.maximumPacketSize?r.properties.maximumPacketSize:0;let o=fn(t,e);if(s)for(;n+o.length>s;){const a=i.shift();if(a&&e[a])delete e[a],o=fn(t,e);else return!1}return o}function og(t,e,r){switch(Se.propertiesTypes[e]){case"byte":{t.write(ve.from([Se.properties[e]])),t.write(ve.from([+r]));break}case"int8":{t.write(ve.from([Se.properties[e]])),t.write(ve.from([r]));break}case"binary":{t.write(ve.from([Se.properties[e]])),mi(t,r);break}case"int16":{t.write(ve.from([Se.properties[e]])),ut(t,r);break}case"int32":{t.write(ve.from([Se.properties[e]])),fM(t,r);break}case"var":{t.write(ve.from([Se.properties[e]])),$t(t,r);break}case"string":{t.write(ve.from([Se.properties[e]])),Vn(t,r);break}case"pair":{Object.getOwnPropertyNames(r).forEach(i=>{const s=r[i];Array.isArray(s)?s.forEach(o=>{t.write(ve.from([Se.properties[e]])),sg(t,i.toString(),o.toString())}):(t.write(ve.from([Se.properties[e]])),sg(t,i.toString(),s.toString()))});break}default:return t.destroy(new Error(`Invalid property ${e} value: ${r}`)),!1}}function ag(t,e,r){$t(t,r);for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==null){const i=e[n];if(Array.isArray(i))for(let s=0;s<i.length;s++)og(t,n,i[s]);else og(t,n,i)}}function J0(t){return t?t instanceof ve?t.length:ve.byteLength(t):0}function lg(t){return typeof t=="string"||t instanceof ve}var Z0=Q0;const dM=Z0,hM=gn,{Buffer:ug}=He;function pM(t,e){const r=new gM;return dM(t,r,e),r.concat()}class gM extends hM{constructor(){super(),this._array=new Array(20),this._i=0}write(e){return this._array[this._i++]=e,!0}concat(){let e=0;const r=new Array(this._array.length),n=this._array;let i=0,s;for(s=0;s<n.length&&n[s]!==void 0;s++)typeof n[s]!="string"?r[s]=n[s].length:r[s]=ug.byteLength(n[s]),e+=r[s];const o=ug.allocUnsafe(e);for(s=0;s<n.length&&n[s]!==void 0;s++)typeof n[s]!="string"?(n[s].copy(o,i),i+=r[s]):(o.write(n[s],i),i+=r[s]);return o}destroy(e){e&&this.emit("error",e)}}var mM=pM;Pl.parser=DA.parser;Pl.generate=mM;Pl.writeToStream=Z0;var Hl={};Object.defineProperty(Hl,"__esModule",{value:!0});class yM{constructor(){this.nextId=Math.max(1,Math.floor(Math.random()*65535))}allocate(){const e=this.nextId++;return this.nextId===65536&&(this.nextId=1),e}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(e){return!0}deallocate(e){}clear(){}}Hl.default=yM;var eb={exports:{}},Xu={exports:{}},Ve={ArrayIsArray(t){return Array.isArray(t)},ArrayPrototypeIncludes(t,e){return t.includes(e)},ArrayPrototypeIndexOf(t,e){return t.indexOf(e)},ArrayPrototypeJoin(t,e){return t.join(e)},ArrayPrototypeMap(t,e){return t.map(e)},ArrayPrototypePop(t,e){return t.pop(e)},ArrayPrototypePush(t,e){return t.push(e)},ArrayPrototypeSlice(t,e,r){return t.slice(e,r)},Error,FunctionPrototypeCall(t,e,...r){return t.call(e,...r)},FunctionPrototypeSymbolHasInstance(t,e){return Function.prototype[Symbol.hasInstance].call(t,e)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(t,e){return Object.defineProperties(t,e)},ObjectDefineProperty(t,e,r){return Object.defineProperty(t,e,r)},ObjectGetOwnPropertyDescriptor(t,e){return Object.getOwnPropertyDescriptor(t,e)},ObjectKeys(t){return Object.keys(t)},ObjectSetPrototypeOf(t,e){return Object.setPrototypeOf(t,e)},Promise,PromisePrototypeCatch(t,e){return t.catch(e)},PromisePrototypeThen(t,e,r){return t.then(e,r)},PromiseReject(t){return Promise.reject(t)},ReflectApply:Reflect.apply,RegExpPrototypeTest(t,e){return t.test(e)},SafeSet:Set,String,StringPrototypeSlice(t,e,r){return t.slice(e,r)},StringPrototypeToLowerCase(t){return t.toLowerCase()},StringPrototypeToUpperCase(t){return t.toUpperCase()},StringPrototypeTrim(t){return t.trim()},Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(t,e,r){return t.set(e,r)},Uint8Array},tb={exports:{}};(function(t){const e=He,r=Object.getPrototypeOf(async function(){}).constructor,n=globalThis.Blob||e.Blob,i=typeof n<"u"?function(a){return a instanceof n}:function(a){return!1};class s extends Error{constructor(a){if(!Array.isArray(a))throw new TypeError(`Expected input to be an Array, got ${typeof a}`);let l="";for(let u=0;u<a.length;u++)l+=`    ${a[u].stack}
+`;super(l),this.name="AggregateError",this.errors=a}}t.exports={AggregateError:s,kEmptyObject:Object.freeze({}),once(o){let a=!1;return function(...l){a||(a=!0,o.apply(this,l))}},createDeferredPromise:function(){let o,a;return{promise:new Promise((u,c)=>{o=u,a=c}),resolve:o,reject:a}},promisify(o){return new Promise((a,l)=>{o((u,...c)=>u?l(u):a(...c))})},debuglog(){return function(){}},format(o,...a){return o.replace(/%([sdifj])/g,function(...[l,u]){const c=a.shift();return u==="f"?c.toFixed(6):u==="j"?JSON.stringify(c):u==="s"&&typeof c=="object"?`${c.constructor!==Object?c.constructor.name:""} {}`.trim():c.toString()})},inspect(o){switch(typeof o){case"string":if(o.includes("'"))if(o.includes('"')){if(!o.includes("`")&&!o.includes("${"))return`\`${o}\``}else return`"${o}"`;return`'${o}'`;case"number":return isNaN(o)?"NaN":Object.is(o,-0)?String(o):o;case"bigint":return`${String(o)}n`;case"boolean":case"undefined":return String(o);case"object":return"{}"}},types:{isAsyncFunction(o){return o instanceof r},isArrayBufferView(o){return ArrayBuffer.isView(o)}},isBlob:i},t.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")})(tb);var qr=tb.exports,Vd={},ms={exports:{}},cg;function qd(){if(cg)return ms.exports;cg=1;const{AbortController:t,AbortSignal:e}=typeof self<"u"?self:typeof window<"u"?window:void 0;return ms.exports=t,ms.exports.AbortSignal=e,ms.exports.default=t,ms.exports}const{format:wM,inspect:Ga,AggregateError:bM}=qr,_M=globalThis.AggregateError||bM,vM=Symbol("kIsNodeError"),EM=["string","function","number","object","Function","Object","boolean","bigint","symbol"],SM=/^([A-Z][a-z0-9]*)+$/,xM="__node_internal_",Wl={};function jn(t,e){if(!t)throw new Wl.ERR_INTERNAL_ASSERTION(e)}function fg(t){let e="",r=t.length;const n=t[0]==="-"?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function TM(t,e,r){if(typeof e=="function")return jn(e.length<=r.length,`Code: ${t}; The provided arguments length (${r.length}) does not match the required ones (${e.length}).`),e(...r);const n=(e.match(/%[dfijoOs]/g)||[]).length;return jn(n===r.length,`Code: ${t}; The provided arguments length (${r.length}) does not match the required ones (${n}).`),r.length===0?e:wM(e,...r)}function Ze(t,e,r){r||(r=Error);class n extends r{constructor(...s){super(TM(t,e,s))}toString(){return`${this.name} [${t}]: ${this.message}`}}Object.defineProperties(n.prototype,{name:{value:r.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${t}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),n.prototype.code=t,n.prototype[vM]=!0,Wl[t]=n}function dg(t){const e=xM+t.name;return Object.defineProperty(t,"name",{value:e}),t}function AM(t,e){if(t&&e&&t!==e){if(Array.isArray(e.errors))return e.errors.push(t),e;const r=new _M([e,t],e.message);return r.code=e.code,r}return t||e}let MM=class extends Error{constructor(e="The operation was aborted",r=void 0){if(r!==void 0&&typeof r!="object")throw new Wl.ERR_INVALID_ARG_TYPE("options","Object",r);super(e,r),this.code="ABORT_ERR",this.name="AbortError"}};Ze("ERR_ASSERTION","%s",Error);Ze("ERR_INVALID_ARG_TYPE",(t,e,r)=>{jn(typeof t=="string","'name' must be a string"),Array.isArray(e)||(e=[e]);let n="The ";t.endsWith(" argument")?n+=`${t} `:n+=`"${t}" ${t.includes(".")?"property":"argument"} `,n+="must be ";const i=[],s=[],o=[];for(const l of e)jn(typeof l=="string","All expected entries have to be of type string"),EM.includes(l)?i.push(l.toLowerCase()):SM.test(l)?s.push(l):(jn(l!=="object",'The value "object" should be written as "Object"'),o.push(l));if(s.length>0){const l=i.indexOf("object");l!==-1&&(i.splice(i,l,1),s.push("Object"))}if(i.length>0){switch(i.length){case 1:n+=`of type ${i[0]}`;break;case 2:n+=`one of type ${i[0]} or ${i[1]}`;break;default:{const l=i.pop();n+=`one of type ${i.join(", ")}, or ${l}`}}(s.length>0||o.length>0)&&(n+=" or ")}if(s.length>0){switch(s.length){case 1:n+=`an instance of ${s[0]}`;break;case 2:n+=`an instance of ${s[0]} or ${s[1]}`;break;default:{const l=s.pop();n+=`an instance of ${s.join(", ")}, or ${l}`}}o.length>0&&(n+=" or ")}switch(o.length){case 0:break;case 1:o[0].toLowerCase()!==o[0]&&(n+="an "),n+=`${o[0]}`;break;case 2:n+=`one of ${o[0]} or ${o[1]}`;break;default:{const l=o.pop();n+=`one of ${o.join(", ")}, or ${l}`}}if(r==null)n+=`. Received ${r}`;else if(typeof r=="function"&&r.name)n+=`. Received function ${r.name}`;else if(typeof r=="object"){var a;if((a=r.constructor)!==null&&a!==void 0&&a.name)n+=`. Received an instance of ${r.constructor.name}`;else{const l=Ga(r,{depth:-1});n+=`. Received ${l}`}}else{let l=Ga(r,{colors:!1});l.length>25&&(l=`${l.slice(0,25)}...`),n+=`. Received type ${typeof r} (${l})`}return n},TypeError);Ze("ERR_INVALID_ARG_VALUE",(t,e,r="is invalid")=>{let n=Ga(e);return n.length>128&&(n=n.slice(0,128)+"..."),`The ${t.includes(".")?"property":"argument"} '${t}' ${r}. Received ${n}`},TypeError);Ze("ERR_INVALID_RETURN_VALUE",(t,e,r)=>{var n;const i=r!=null&&(n=r.constructor)!==null&&n!==void 0&&n.name?`instance of ${r.constructor.name}`:`type ${typeof r}`;return`Expected ${t} to be returned from the "${e}" function but got ${i}.`},TypeError);Ze("ERR_MISSING_ARGS",(...t)=>{jn(t.length>0,"At least one arg needs to be specified");let e;const r=t.length;switch(t=(Array.isArray(t)?t:[t]).map(n=>`"${n}"`).join(" or "),r){case 1:e+=`The ${t[0]} argument`;break;case 2:e+=`The ${t[0]} and ${t[1]} arguments`;break;default:{const n=t.pop();e+=`The ${t.join(", ")}, and ${n} arguments`}break}return`${e} must be specified`},TypeError);Ze("ERR_OUT_OF_RANGE",(t,e,r)=>{jn(e,'Missing "range" argument');let n;return Number.isInteger(r)&&Math.abs(r)>2**32?n=fg(String(r)):typeof r=="bigint"?(n=String(r),(r>2n**32n||r<-(2n**32n))&&(n=fg(n)),n+="n"):n=Ga(r),`The value of "${t}" is out of range. It must be ${e}. Received ${n}`},RangeError);Ze("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error);Ze("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error);Ze("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error);Ze("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error);Ze("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error);Ze("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ze("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error);Ze("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error);Ze("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error);Ze("ERR_STREAM_WRITE_AFTER_END","write after end",Error);Ze("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError);var bt={AbortError:MM,aggregateTwoErrors:dg(AM),hideStackFrames:dg,codes:Wl};const{ArrayIsArray:Yd,ArrayPrototypeIncludes:rb,ArrayPrototypeJoin:nb,ArrayPrototypeMap:CM,NumberIsInteger:Kd,NumberIsNaN:IM,NumberMAX_SAFE_INTEGER:OM,NumberMIN_SAFE_INTEGER:PM,NumberParseInt:RM,ObjectPrototypeHasOwnProperty:LM,RegExpPrototypeExec:ib,String:NM,StringPrototypeToUpperCase:$M,StringPrototypeTrim:kM}=Ve,{hideStackFrames:kt,codes:{ERR_SOCKET_BAD_PORT:DM,ERR_INVALID_ARG_TYPE:dt,ERR_INVALID_ARG_VALUE:as,ERR_OUT_OF_RANGE:qn,ERR_UNKNOWN_SIGNAL:hg}}=bt,{normalizeEncoding:BM}=qr,{isAsyncFunction:FM,isArrayBufferView:UM}=qr.types,pg={};function jM(t){return t===(t|0)}function zM(t){return t===t>>>0}const HM=/^[0-7]+$/,WM="must be a 32-bit unsigned integer or an octal string";function VM(t,e,r){if(typeof t>"u"&&(t=r),typeof t=="string"){if(ib(HM,t)===null)throw new as(e,t,WM);t=RM(t,8)}return sb(t,e),t}const qM=kt((t,e,r=PM,n=OM)=>{if(typeof t!="number")throw new dt(e,"number",t);if(!Kd(t))throw new qn(e,"an integer",t);if(t<r||t>n)throw new qn(e,`>= ${r} && <= ${n}`,t)}),YM=kt((t,e,r=-2147483648,n=2147483647)=>{if(typeof t!="number")throw new dt(e,"number",t);if(!Kd(t))throw new qn(e,"an integer",t);if(t<r||t>n)throw new qn(e,`>= ${r} && <= ${n}`,t)}),sb=kt((t,e,r=!1)=>{if(typeof t!="number")throw new dt(e,"number",t);if(!Kd(t))throw new qn(e,"an integer",t);const n=r?1:0,i=4294967295;if(t<n||t>i)throw new qn(e,`>= ${n} && <= ${i}`,t)});function Gd(t,e){if(typeof t!="string")throw new dt(e,"string",t)}function KM(t,e,r=void 0,n){if(typeof t!="number")throw new dt(e,"number",t);if(r!=null&&t<r||n!=null&&t>n||(r!=null||n!=null)&&IM(t))throw new qn(e,`${r!=null?`>= ${r}`:""}${r!=null&&n!=null?" && ":""}${n!=null?`<= ${n}`:""}`,t)}const GM=kt((t,e,r)=>{if(!rb(r,t)){const i="must be one of: "+nb(CM(r,s=>typeof s=="string"?`'${s}'`:NM(s)),", ");throw new as(e,t,i)}});function ob(t,e){if(typeof t!="boolean")throw new dt(e,"boolean",t)}function Qu(t,e,r){return t==null||!LM(t,e)?r:t[e]}const XM=kt((t,e,r=null)=>{const n=Qu(r,"allowArray",!1),i=Qu(r,"allowFunction",!1);if(!Qu(r,"nullable",!1)&&t===null||!n&&Yd(t)||typeof t!="object"&&(!i||typeof t!="function"))throw new dt(e,"Object",t)}),QM=kt((t,e)=>{if(t!=null&&typeof t!="object"&&typeof t!="function")throw new dt(e,"a dictionary",t)}),Xd=kt((t,e,r=0)=>{if(!Yd(t))throw new dt(e,"Array",t);if(t.length<r){const n=`must be longer than ${r}`;throw new as(e,t,n)}});function JM(t,e){Xd(t,e);for(let r=0;r<t.length;r++)Gd(t[r],`${e}[${r}]`)}function ZM(t,e){Xd(t,e);for(let r=0;r<t.length;r++)ob(t[r],`${e}[${r}]`)}function eC(t,e="signal"){if(Gd(t,e),pg[t]===void 0)throw pg[$M(t)]!==void 0?new hg(t+" (signals must use all capital letters)"):new hg(t)}const tC=kt((t,e="buffer")=>{if(!UM(t))throw new dt(e,["Buffer","TypedArray","DataView"],t)});function rC(t,e){const r=BM(e),n=t.length;if(r==="hex"&&n%2!==0)throw new as("encoding",e,`is invalid for data of length ${n}`)}function nC(t,e="Port",r=!0){if(typeof t!="number"&&typeof t!="string"||typeof t=="string"&&kM(t).length===0||+t!==+t>>>0||t>65535||t===0&&!r)throw new DM(e,t,r);return t|0}const iC=kt((t,e)=>{if(t!==void 0&&(t===null||typeof t!="object"||!("aborted"in t)))throw new dt(e,"AbortSignal",t)}),sC=kt((t,e)=>{if(typeof t!="function")throw new dt(e,"Function",t)}),oC=kt((t,e)=>{if(typeof t!="function"||FM(t))throw new dt(e,"Function",t)}),aC=kt((t,e)=>{if(t!==void 0)throw new dt(e,"undefined",t)});function lC(t,e,r){if(!rb(r,t))throw new dt(e,`('${nb(r,"|")}')`,t)}const uC=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function gg(t,e){if(typeof t>"u"||!ib(uC,t))throw new as(e,t,'must be an array or string of format "</styles.css>; rel=preload; as=style"')}function cC(t){if(typeof t=="string")return gg(t,"hints"),t;if(Yd(t)){const e=t.length;let r="";if(e===0)return r;for(let n=0;n<e;n++){const i=t[n];gg(i,"hints"),r+=i,n!==e-1&&(r+=", ")}return r}throw new as("hints",t,'must be an array or string of format "</styles.css>; rel=preload; as=style"')}var Vl={isInt32:jM,isUint32:zM,parseFileMode:VM,validateArray:Xd,validateStringArray:JM,validateBooleanArray:ZM,validateBoolean:ob,validateBuffer:tC,validateDictionary:QM,validateEncoding:rC,validateFunction:sC,validateInt32:YM,validateInteger:qM,validateNumber:KM,validateObject:XM,validateOneOf:GM,validatePlainFunction:oC,validatePort:nC,validateSignalName:eC,validateString:Gd,validateUint32:sb,validateUndefined:aC,validateUnion:lC,validateAbortSignal:iC,validateLinkHeaderValue:cC},Qd={exports:{}};const{Symbol:ql,SymbolAsyncIterator:mg,SymbolIterator:yg,SymbolFor:ab}=Ve,lb=ql("kDestroyed"),ub=ql("kIsErrored"),Ef=ql("kIsReadable"),cb=ql("kIsDisturbed"),fC=ab("nodejs.webstream.isClosedPromise"),dC=ab("nodejs.webstream.controllerErrorFunction");function Yl(t,e=!1){var r;return!!(t&&typeof t.pipe=="function"&&typeof t.on=="function"&&(!e||typeof t.pause=="function"&&typeof t.resume=="function")&&(!t._writableState||((r=t._readableState)===null||r===void 0?void 0:r.readable)!==!1)&&(!t._writableState||t._readableState))}function Kl(t){var e;return!!(t&&typeof t.write=="function"&&typeof t.on=="function"&&(!t._readableState||((e=t._writableState)===null||e===void 0?void 0:e.writable)!==!1))}function hC(t){return!!(t&&typeof t.pipe=="function"&&t._readableState&&typeof t.on=="function"&&typeof t.write=="function")}function wr(t){return t&&(t._readableState||t._writableState||typeof t.write=="function"&&typeof t.on=="function"||typeof t.pipe=="function"&&typeof t.on=="function")}function fb(t){return!!(t&&!wr(t)&&typeof t.pipeThrough=="function"&&typeof t.getReader=="function"&&typeof t.cancel=="function")}function db(t){return!!(t&&!wr(t)&&typeof t.getWriter=="function"&&typeof t.abort=="function")}function hb(t){return!!(t&&!wr(t)&&typeof t.readable=="object"&&typeof t.writable=="object")}function pC(t){return fb(t)||db(t)||hb(t)}function gC(t,e){return t==null?!1:e===!0?typeof t[mg]=="function":e===!1?typeof t[yg]=="function":typeof t[mg]=="function"||typeof t[yg]=="function"}function Gl(t){if(!wr(t))return null;const e=t._writableState,r=t._readableState,n=e||r;return!!(t.destroyed||t[lb]||n!=null&&n.destroyed)}function pb(t){if(!Kl(t))return null;if(t.writableEnded===!0)return!0;const e=t._writableState;return e!=null&&e.errored?!1:typeof(e==null?void 0:e.ended)!="boolean"?null:e.ended}function mC(t,e){if(!Kl(t))return null;if(t.writableFinished===!0)return!0;const r=t._writableState;return r!=null&&r.errored?!1:typeof(r==null?void 0:r.finished)!="boolean"?null:!!(r.finished||e===!1&&r.ended===!0&&r.length===0)}function yC(t){if(!Yl(t))return null;if(t.readableEnded===!0)return!0;const e=t._readableState;return!e||e.errored?!1:typeof(e==null?void 0:e.ended)!="boolean"?null:e.ended}function gb(t,e){if(!Yl(t))return null;const r=t._readableState;return r!=null&&r.errored?!1:typeof(r==null?void 0:r.endEmitted)!="boolean"?null:!!(r.endEmitted||e===!1&&r.ended===!0&&r.length===0)}function mb(t){return t&&t[Ef]!=null?t[Ef]:typeof(t==null?void 0:t.readable)!="boolean"?null:Gl(t)?!1:Yl(t)&&t.readable&&!gb(t)}function yb(t){return typeof(t==null?void 0:t.writable)!="boolean"?null:Gl(t)?!1:Kl(t)&&t.writable&&!pb(t)}function wC(t,e){return wr(t)?Gl(t)?!0:!((e==null?void 0:e.readable)!==!1&&mb(t)||(e==null?void 0:e.writable)!==!1&&yb(t)):null}function bC(t){var e,r;return wr(t)?t.writableErrored?t.writableErrored:(e=(r=t._writableState)===null||r===void 0?void 0:r.errored)!==null&&e!==void 0?e:null:null}function _C(t){var e,r;return wr(t)?t.readableErrored?t.readableErrored:(e=(r=t._readableState)===null||r===void 0?void 0:r.errored)!==null&&e!==void 0?e:null:null}function vC(t){if(!wr(t))return null;if(typeof t.closed=="boolean")return t.closed;const e=t._writableState,r=t._readableState;return typeof(e==null?void 0:e.closed)=="boolean"||typeof(r==null?void 0:r.closed)=="boolean"?(e==null?void 0:e.closed)||(r==null?void 0:r.closed):typeof t._closed=="boolean"&&wb(t)?t._closed:null}function wb(t){return typeof t._closed=="boolean"&&typeof t._defaultKeepAlive=="boolean"&&typeof t._removedConnection=="boolean"&&typeof t._removedContLen=="boolean"}function bb(t){return typeof t._sent100=="boolean"&&wb(t)}function EC(t){var e;return typeof t._consuming=="boolean"&&typeof t._dumped=="boolean"&&((e=t.req)===null||e===void 0?void 0:e.upgradeOrConnect)===void 0}function SC(t){if(!wr(t))return null;const e=t._writableState,r=t._readableState,n=e||r;return!n&&bb(t)||!!(n&&n.autoDestroy&&n.emitClose&&n.closed===!1)}function xC(t){var e;return!!(t&&((e=t[cb])!==null&&e!==void 0?e:t.readableDidRead||t.readableAborted))}function TC(t){var e,r,n,i,s,o,a,l,u,c;return!!(t&&((e=(r=(n=(i=(s=(o=t[ub])!==null&&o!==void 0?o:t.readableErrored)!==null&&s!==void 0?s:t.writableErrored)!==null&&i!==void 0?i:(a=t._readableState)===null||a===void 0?void 0:a.errorEmitted)!==null&&n!==void 0?n:(l=t._writableState)===null||l===void 0?void 0:l.errorEmitted)!==null&&r!==void 0?r:(u=t._readableState)===null||u===void 0?void 0:u.errored)!==null&&e!==void 0?e:!((c=t._writableState)===null||c===void 0)&&c.errored))}var Yr={kDestroyed:lb,isDisturbed:xC,kIsDisturbed:cb,isErrored:TC,kIsErrored:ub,isReadable:mb,kIsReadable:Ef,kIsClosedPromise:fC,kControllerErrorFunction:dC,isClosed:vC,isDestroyed:Gl,isDuplexNodeStream:hC,isFinished:wC,isIterable:gC,isReadableNodeStream:Yl,isReadableStream:fb,isReadableEnded:yC,isReadableFinished:gb,isReadableErrored:_C,isNodeStream:wr,isWebStream:pC,isWritable:yb,isWritableNodeStream:Kl,isWritableStream:db,isWritableEnded:pb,isWritableFinished:mC,isWritableErrored:bC,isServerRequest:EC,isServerResponse:bb,willEmitClose:SC,isTransformStream:hb};const tn=mn,{AbortError:_b,codes:AC}=bt,{ERR_INVALID_ARG_TYPE:MC,ERR_STREAM_PREMATURE_CLOSE:wg}=AC,{kEmptyObject:Sf,once:xf}=qr,{validateAbortSignal:CC,validateFunction:IC,validateObject:OC,validateBoolean:PC}=Vl,{Promise:RC,PromisePrototypeThen:LC}=Ve,{isClosed:NC,isReadable:bg,isReadableNodeStream:Ju,isReadableStream:$C,isReadableFinished:_g,isReadableErrored:vg,isWritable:Eg,isWritableNodeStream:Sg,isWritableStream:kC,isWritableFinished:xg,isWritableErrored:Tg,isNodeStream:DC,willEmitClose:BC,kIsClosedPromise:FC}=Yr;function UC(t){return t.setHeader&&typeof t.abort=="function"}const Tf=()=>{};function vb(t,e,r){var n,i;if(arguments.length===2?(r=e,e=Sf):e==null?e=Sf:OC(e,"options"),IC(r,"callback"),CC(e.signal,"options.signal"),r=xf(r),$C(t)||kC(t))return jC(t,e,r);if(!DC(t))throw new MC("stream",["ReadableStream","WritableStream","Stream"],t);const s=(n=e.readable)!==null&&n!==void 0?n:Ju(t),o=(i=e.writable)!==null&&i!==void 0?i:Sg(t),a=t._writableState,l=t._readableState,u=()=>{t.writable||d()};let c=BC(t)&&Ju(t)===s&&Sg(t)===o,f=xg(t,!1);const d=()=>{f=!0,t.destroyed&&(c=!1),!(c&&(!t.readable||s))&&(!s||h)&&r.call(t)};let h=_g(t,!1);const g=()=>{h=!0,t.destroyed&&(c=!1),!(c&&(!t.writable||o))&&(!o||f)&&r.call(t)},y=C=>{r.call(t,C)};let b=NC(t);const E=()=>{b=!0;const C=Tg(t)||vg(t);if(C&&typeof C!="boolean")return r.call(t,C);if(s&&!h&&Ju(t,!0)&&!_g(t,!1))return r.call(t,new wg);if(o&&!f&&!xg(t,!1))return r.call(t,new wg);r.call(t)},_=()=>{b=!0;const C=Tg(t)||vg(t);if(C&&typeof C!="boolean")return r.call(t,C);r.call(t)},v=()=>{t.req.on("finish",d)};UC(t)?(t.on("complete",d),c||t.on("abort",E),t.req?v():t.on("request",v)):o&&!a&&(t.on("end",u),t.on("close",u)),!c&&typeof t.aborted=="boolean"&&t.on("aborted",E),t.on("end",g),t.on("finish",d),e.error!==!1&&t.on("error",y),t.on("close",E),b?tn.nextTick(E):a!=null&&a.errorEmitted||l!=null&&l.errorEmitted?c||tn.nextTick(_):(!s&&(!c||bg(t))&&(f||Eg(t)===!1)||!o&&(!c||Eg(t))&&(h||bg(t)===!1)||l&&t.req&&t.aborted)&&tn.nextTick(_);const T=()=>{r=Tf,t.removeListener("aborted",E),t.removeListener("complete",d),t.removeListener("abort",E),t.removeListener("request",v),t.req&&t.req.removeListener("finish",d),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",d),t.removeListener("end",g),t.removeListener("error",y),t.removeListener("close",E)};if(e.signal&&!b){const C=()=>{const O=r;T(),O.call(t,new _b(void 0,{cause:e.signal.reason}))};if(e.signal.aborted)tn.nextTick(C);else{const O=r;r=xf((...D)=>{e.signal.removeEventListener("abort",C),O.apply(t,D)}),e.signal.addEventListener("abort",C)}}return T}function jC(t,e,r){let n=!1,i=Tf;if(e.signal)if(i=()=>{n=!0,r.call(t,new _b(void 0,{cause:e.signal.reason}))},e.signal.aborted)tn.nextTick(i);else{const o=r;r=xf((...a)=>{e.signal.removeEventListener("abort",i),o.apply(t,a)}),e.signal.addEventListener("abort",i)}const s=(...o)=>{n||tn.nextTick(()=>r.apply(t,o))};return LC(t[FC].promise,s,s),Tf}function zC(t,e){var r;let n=!1;return e===null&&(e=Sf),(r=e)!==null&&r!==void 0&&r.cleanup&&(PC(e.cleanup,"cleanup"),n=e.cleanup),new RC((i,s)=>{const o=vb(t,e,a=>{n&&o(),a?s(a):i()})})}Qd.exports=vb;Qd.exports.finished=zC;var wn=Qd.exports;const ur=mn,{aggregateTwoErrors:HC,codes:{ERR_MULTIPLE_CALLBACK:WC},AbortError:VC}=bt,{Symbol:Eb}=Ve,{kDestroyed:qC,isDestroyed:YC,isFinished:KC,isServerRequest:GC}=Yr,Sb=Eb("kDestroy"),Af=Eb("kConstruct");function xb(t,e,r){t&&(t.stack,e&&!e.errored&&(e.errored=t),r&&!r.errored&&(r.errored=t))}function XC(t,e){const r=this._readableState,n=this._writableState,i=n||r;return n!=null&&n.destroyed||r!=null&&r.destroyed?(typeof e=="function"&&e(),this):(xb(t,n,r),n&&(n.destroyed=!0),r&&(r.destroyed=!0),i.constructed?Ag(this,t,e):this.once(Sb,function(s){Ag(this,HC(s,t),e)}),this)}function Ag(t,e,r){let n=!1;function i(s){if(n)return;n=!0;const o=t._readableState,a=t._writableState;xb(s,a,o),a&&(a.closed=!0),o&&(o.closed=!0),typeof r=="function"&&r(s),s?ur.nextTick(QC,t,s):ur.nextTick(Tb,t)}try{t._destroy(e||null,i)}catch(s){i(s)}}function QC(t,e){Mf(t,e),Tb(t)}function Tb(t){const e=t._readableState,r=t._writableState;r&&(r.closeEmitted=!0),e&&(e.closeEmitted=!0),(r!=null&&r.emitClose||e!=null&&e.emitClose)&&t.emit("close")}function Mf(t,e){const r=t._readableState,n=t._writableState;n!=null&&n.errorEmitted||r!=null&&r.errorEmitted||(n&&(n.errorEmitted=!0),r&&(r.errorEmitted=!0),t.emit("error",e))}function JC(){const t=this._readableState,e=this._writableState;t&&(t.constructed=!0,t.closed=!1,t.closeEmitted=!1,t.destroyed=!1,t.errored=null,t.errorEmitted=!1,t.reading=!1,t.ended=t.readable===!1,t.endEmitted=t.readable===!1),e&&(e.constructed=!0,e.destroyed=!1,e.closed=!1,e.closeEmitted=!1,e.errored=null,e.errorEmitted=!1,e.finalCalled=!1,e.prefinished=!1,e.ended=e.writable===!1,e.ending=e.writable===!1,e.finished=e.writable===!1)}function Cf(t,e,r){const n=t._readableState,i=t._writableState;if(i!=null&&i.destroyed||n!=null&&n.destroyed)return this;n!=null&&n.autoDestroy||i!=null&&i.autoDestroy?t.destroy(e):e&&(e.stack,i&&!i.errored&&(i.errored=e),n&&!n.errored&&(n.errored=e),r?ur.nextTick(Mf,t,e):Mf(t,e))}function ZC(t,e){if(typeof t._construct!="function")return;const r=t._readableState,n=t._writableState;r&&(r.constructed=!1),n&&(n.constructed=!1),t.once(Af,e),!(t.listenerCount(Af)>1)&&ur.nextTick(eI,t)}function eI(t){let e=!1;function r(n){if(e){Cf(t,n??new WC);return}e=!0;const i=t._readableState,s=t._writableState,o=s||i;i&&(i.constructed=!0),s&&(s.constructed=!0),o.destroyed?t.emit(Sb,n):n?Cf(t,n,!0):ur.nextTick(tI,t)}try{t._construct(n=>{ur.nextTick(r,n)})}catch(n){ur.nextTick(r,n)}}function tI(t){t.emit(Af)}function Mg(t){return(t==null?void 0:t.setHeader)&&typeof t.abort=="function"}function Ab(t){t.emit("close")}function rI(t,e){t.emit("error",e),ur.nextTick(Ab,t)}function nI(t,e){!t||YC(t)||(!e&&!KC(t)&&(e=new VC),GC(t)?(t.socket=null,t.destroy(e)):Mg(t)?t.abort():Mg(t.req)?t.req.abort():typeof t.destroy=="function"?t.destroy(e):typeof t.close=="function"?t.close():e?ur.nextTick(rI,t,e):ur.nextTick(Ab,t),t.destroyed||(t[qC]=!0))}var ls={construct:ZC,destroyer:nI,destroy:XC,undestroy:JC,errorOrDestroy:Cf};const{ArrayIsArray:iI,ObjectSetPrototypeOf:Mb}=Ve,{EventEmitter:Xl}=gn;function Ql(t){Xl.call(this,t)}Mb(Ql.prototype,Xl.prototype);Mb(Ql,Xl);Ql.prototype.pipe=function(t,e){const r=this;function n(c){t.writable&&t.write(c)===!1&&r.pause&&r.pause()}r.on("data",n);function i(){r.readable&&r.resume&&r.resume()}t.on("drain",i),!t._isStdio&&(!e||e.end!==!1)&&(r.on("end",o),r.on("close",a));let s=!1;function o(){s||(s=!0,t.end())}function a(){s||(s=!0,typeof t.destroy=="function"&&t.destroy())}function l(c){u(),Xl.listenerCount(this,"error")===0&&this.emit("error",c)}If(r,"error",l),If(t,"error",l);function u(){r.removeListener("data",n),t.removeListener("drain",i),r.removeListener("end",o),r.removeListener("close",a),r.removeListener("error",l),t.removeListener("error",l),r.removeListener("end",u),r.removeListener("close",u),t.removeListener("close",u)}return r.on("end",u),r.on("close",u),t.on("close",u),t.emit("pipe",r),t};function If(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):iI(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}var Jd={Stream:Ql,prependListener:If},Cb={exports:{}};(function(t){const{AbortError:e,codes:r}=bt,{isNodeStream:n,isWebStream:i,kControllerErrorFunction:s}=Yr,o=wn,{ERR_INVALID_ARG_TYPE:a}=r,l=(u,c)=>{if(typeof u!="object"||!("aborted"in u))throw new a(c,"AbortSignal",u)};t.exports.addAbortSignal=function(c,f){if(l(c,"signal"),!n(f)&&!i(f))throw new a("stream",["ReadableStream","WritableStream","Stream"],f);return t.exports.addAbortSignalNoValidate(c,f)},t.exports.addAbortSignalNoValidate=function(u,c){if(typeof u!="object"||!("aborted"in u))return c;const f=n(c)?()=>{c.destroy(new e(void 0,{cause:u.reason}))}:()=>{c[s](new e(void 0,{cause:u.reason}))};return u.aborted?f():(u.addEventListener("abort",f),o(c,()=>u.removeEventListener("abort",f))),c}})(Cb);var Jl=Cb.exports;const{StringPrototypeSlice:Cg,SymbolIterator:sI,TypedArrayPrototypeSet:Wo,Uint8Array:oI}=Ve,{Buffer:Zu}=He,{inspect:aI}=qr;var lI=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const r={data:e,next:null};this.length>0?this.tail.next=r:this.head=r,this.tail=r,++this.length}unshift(e){const r={data:e,next:this.head};this.length===0&&(this.tail=r),this.head=r,++this.length}shift(){if(this.length===0)return;const e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(this.length===0)return"";let r=this.head,n=""+r.data;for(;(r=r.next)!==null;)n+=e+r.data;return n}concat(e){if(this.length===0)return Zu.alloc(0);const r=Zu.allocUnsafe(e>>>0);let n=this.head,i=0;for(;n;)Wo(r,n.data,i),i+=n.data.length,n=n.next;return r}consume(e,r){const n=this.head.data;if(e<n.length){const i=n.slice(0,e);return this.head.data=n.slice(e),i}return e===n.length?this.shift():r?this._getString(e):this._getBuffer(e)}first(){return this.head.data}*[sI](){for(let e=this.head;e;e=e.next)yield e.data}_getString(e){let r="",n=this.head,i=0;do{const s=n.data;if(e>s.length)r+=s,e-=s.length;else{e===s.length?(r+=s,++i,n.next?this.head=n.next:this.head=this.tail=null):(r+=Cg(s,0,e),this.head=n,n.data=Cg(s,e));break}++i}while((n=n.next)!==null);return this.length-=i,r}_getBuffer(e){const r=Zu.allocUnsafe(e),n=e;let i=this.head,s=0;do{const o=i.data;if(e>o.length)Wo(r,o,n-e),e-=o.length;else{e===o.length?(Wo(r,o,n-e),++s,i.next?this.head=i.next:this.head=this.tail=null):(Wo(r,new oI(o.buffer,o.byteOffset,e),n-e),this.head=i,i.data=o.slice(e));break}++s}while((i=i.next)!==null);return this.length-=s,r}[Symbol.for("nodejs.util.inspect.custom")](e,r){return aI(this,{...r,depth:0,customInspect:!1})}};const{MathFloor:uI,NumberIsInteger:cI}=Ve,{ERR_INVALID_ARG_VALUE:fI}=bt.codes;function dI(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function Ib(t){return t?16:16*1024}function hI(t,e,r,n){const i=dI(e,n,r);if(i!=null){if(!cI(i)||i<0){const s=n?`options.${r}`:"options.highWaterMark";throw new fI(s,i)}return uI(i)}return Ib(t.objectMode)}var Zd={getHighWaterMark:hI,getDefaultHighWaterMark:Ib};const Ig=mn,{PromisePrototypeThen:pI,SymbolAsyncIterator:Og,SymbolIterator:Pg}=Ve,{Buffer:gI}=He,{ERR_INVALID_ARG_TYPE:mI,ERR_STREAM_NULL_VALUES:yI}=bt.codes;function wI(t,e,r){let n;if(typeof e=="string"||e instanceof gI)return new t({objectMode:!0,...r,read(){this.push(e),this.push(null)}});let i;if(e&&e[Og])i=!0,n=e[Og]();else if(e&&e[Pg])i=!1,n=e[Pg]();else throw new mI("iterable",["Iterable"],e);const s=new t({objectMode:!0,highWaterMark:1,...r});let o=!1;s._read=function(){o||(o=!0,l())},s._destroy=function(u,c){pI(a(u),()=>Ig.nextTick(c,u),f=>Ig.nextTick(c,f||u))};async function a(u){const c=u!=null,f=typeof n.throw=="function";if(c&&f){const{value:d,done:h}=await n.throw(u);if(await d,h)return}if(typeof n.return=="function"){const{value:d}=await n.return();await d}}async function l(){for(;;){try{const{value:u,done:c}=i?await n.next():n.next();if(c)s.push(null);else{const f=u&&typeof u.then=="function"?await u:u;if(f===null)throw o=!1,new yI;if(s.push(f))continue;o=!1}}catch(u){s.destroy(u)}break}}return s}var Ob=wI,ec,Rg;function Zl(){if(Rg)return ec;Rg=1;const t=mn,{ArrayPrototypeIndexOf:e,NumberIsInteger:r,NumberIsNaN:n,NumberParseInt:i,ObjectDefineProperties:s,ObjectKeys:o,ObjectSetPrototypeOf:a,Promise:l,SafeSet:u,SymbolAsyncIterator:c,Symbol:f}=Ve;ec=Z,Z.ReadableState=X;const{EventEmitter:d}=gn,{Stream:h,prependListener:g}=Jd,{Buffer:y}=He,{addAbortSignal:b}=Jl,E=wn;let _=qr.debuglog("stream",M=>{_=M});const v=lI,T=ls,{getHighWaterMark:C,getDefaultHighWaterMark:O}=Zd,{aggregateTwoErrors:D,codes:{ERR_INVALID_ARG_TYPE:F,ERR_METHOD_NOT_IMPLEMENTED:L,ERR_OUT_OF_RANGE:U,ERR_STREAM_PUSH_AFTER_EOF:k,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:W}}=bt,{validateObject:$}=Vl,I=f("kPaused"),{StringDecoder:j}=Va,Q=Ob;a(Z.prototype,h.prototype),a(Z,h);const H=()=>{},{errorOrDestroy:K}=T;function X(M,N,x){typeof x!="boolean"&&(x=N instanceof $r()),this.objectMode=!!(M&&M.objectMode),x&&(this.objectMode=this.objectMode||!!(M&&M.readableObjectMode)),this.highWaterMark=M?C(this,M,"readableHighWaterMark",x):O(!1),this.buffer=new v,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[I]=null,this.errorEmitted=!1,this.emitClose=!M||M.emitClose!==!1,this.autoDestroy=!M||M.autoDestroy!==!1,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=M&&M.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,M&&M.encoding&&(this.decoder=new j(M.encoding),this.encoding=M.encoding)}function Z(M){if(!(this instanceof Z))return new Z(M);const N=this instanceof $r();this._readableState=new X(M,this,N),M&&(typeof M.read=="function"&&(this._read=M.read),typeof M.destroy=="function"&&(this._destroy=M.destroy),typeof M.construct=="function"&&(this._construct=M.construct),M.signal&&!N&&b(M.signal,this)),h.call(this,M),T.construct(this,()=>{this._readableState.needReadable&&ee(this,this._readableState)})}Z.prototype.destroy=T.destroy,Z.prototype._undestroy=T.undestroy,Z.prototype._destroy=function(M,N){N(M)},Z.prototype[d.captureRejectionSymbol]=function(M){this.destroy(M)},Z.prototype.push=function(M,N){return ce(this,M,N,!1)},Z.prototype.unshift=function(M,N){return ce(this,M,N,!0)};function ce(M,N,x,p){_("readableAddChunk",N);const m=M._readableState;let R;if(m.objectMode||(typeof N=="string"?(x=x||m.defaultEncoding,m.encoding!==x&&(p&&m.encoding?N=y.from(N,x).toString(m.encoding):(N=y.from(N,x),x=""))):N instanceof y?x="":h._isUint8Array(N)?(N=h._uint8ArrayToBuffer(N),x=""):N!=null&&(R=new F("chunk",["string","Buffer","Uint8Array"],N))),R)K(M,R);else if(N===null)m.reading=!1,G(M,m);else if(m.objectMode||N&&N.length>0)if(p)if(m.endEmitted)K(M,new W);else{if(m.destroyed||m.errored)return!1;pe(M,m,N,!0)}else if(m.ended)K(M,new k);else{if(m.destroyed||m.errored)return!1;m.reading=!1,m.decoder&&!x?(N=m.decoder.write(N),m.objectMode||N.length!==0?pe(M,m,N,!1):ee(M,m)):pe(M,m,N,!1)}else p||(m.reading=!1,ee(M,m));return!m.ended&&(m.length<m.highWaterMark||m.length===0)}function pe(M,N,x,p){N.flowing&&N.length===0&&!N.sync&&M.listenerCount("data")>0?(N.multiAwaitDrain?N.awaitDrainWriters.clear():N.awaitDrainWriters=null,N.dataEmitted=!0,M.emit("data",x)):(N.length+=N.objectMode?1:x.length,p?N.buffer.unshift(x):N.buffer.push(x),N.needReadable&&Y(M)),ee(M,N)}Z.prototype.isPaused=function(){const M=this._readableState;return M[I]===!0||M.flowing===!1},Z.prototype.setEncoding=function(M){const N=new j(M);this._readableState.decoder=N,this._readableState.encoding=this._readableState.decoder.encoding;const x=this._readableState.buffer;let p="";for(const m of x)p+=N.write(m);return x.clear(),p!==""&&x.push(p),this._readableState.length=p.length,this};const de=1073741824;function me(M){if(M>de)throw new U("size","<= 1GiB",M);return M--,M|=M>>>1,M|=M>>>2,M|=M>>>4,M|=M>>>8,M|=M>>>16,M++,M}function be(M,N){return M<=0||N.length===0&&N.ended?0:N.objectMode?1:n(M)?N.flowing&&N.length?N.buffer.first().length:N.length:M<=N.length?M:N.ended?N.length:0}Z.prototype.read=function(M){_("read",M),M===void 0?M=NaN:r(M)||(M=i(M,10));const N=this._readableState,x=M;if(M>N.highWaterMark&&(N.highWaterMark=me(M)),M!==0&&(N.emittedReadable=!1),M===0&&N.needReadable&&((N.highWaterMark!==0?N.length>=N.highWaterMark:N.length>0)||N.ended))return _("read: emitReadable",N.length,N.ended),N.length===0&&N.ended?ae(this):Y(this),null;if(M=be(M,N),M===0&&N.ended)return N.length===0&&ae(this),null;let p=N.needReadable;if(_("need readable",p),(N.length===0||N.length-M<N.highWaterMark)&&(p=!0,_("length less than watermark",p)),N.ended||N.reading||N.destroyed||N.errored||!N.constructed)p=!1,_("reading, ended or constructing",p);else if(p){_("do read"),N.reading=!0,N.sync=!0,N.length===0&&(N.needReadable=!0);try{this._read(N.highWaterMark)}catch(R){K(this,R)}N.sync=!1,N.reading||(M=be(x,N))}let m;return M>0?m=re(M,N):m=null,m===null?(N.needReadable=N.length<=N.highWaterMark,M=0):(N.length-=M,N.multiAwaitDrain?N.awaitDrainWriters.clear():N.awaitDrainWriters=null),N.length===0&&(N.ended||(N.needReadable=!0),x!==M&&N.ended&&ae(this)),m!==null&&!N.errorEmitted&&!N.closeEmitted&&(N.dataEmitted=!0,this.emit("data",m)),m};function G(M,N){if(_("onEofChunk"),!N.ended){if(N.decoder){const x=N.decoder.end();x&&x.length&&(N.buffer.push(x),N.length+=N.objectMode?1:x.length)}N.ended=!0,N.sync?Y(M):(N.needReadable=!1,N.emittedReadable=!0,ne(M))}}function Y(M){const N=M._readableState;_("emitReadable",N.needReadable,N.emittedReadable),N.needReadable=!1,N.emittedReadable||(_("emitReadable",N.flowing),N.emittedReadable=!0,t.nextTick(ne,M))}function ne(M){const N=M._readableState;_("emitReadable_",N.destroyed,N.length,N.ended),!N.destroyed&&!N.errored&&(N.length||N.ended)&&(M.emit("readable"),N.emittedReadable=!1),N.needReadable=!N.flowing&&!N.ended&&N.length<=N.highWaterMark,z(M)}function ee(M,N){!N.readingMore&&N.constructed&&(N.readingMore=!0,t.nextTick(ue,M,N))}function ue(M,N){for(;!N.reading&&!N.ended&&(N.length<N.highWaterMark||N.flowing&&N.length===0);){const x=N.length;if(_("maybeReadMore read 0"),M.read(0),x===N.length)break}N.readingMore=!1}Z.prototype._read=function(M){throw new L("_read()")},Z.prototype.pipe=function(M,N){const x=this,p=this._readableState;p.pipes.length===1&&(p.multiAwaitDrain||(p.multiAwaitDrain=!0,p.awaitDrainWriters=new u(p.awaitDrainWriters?[p.awaitDrainWriters]:[]))),p.pipes.push(M),_("pipe count=%d opts=%j",p.pipes.length,N);const R=(!N||N.end!==!1)&&M!==t.stdout&&M!==t.stderr?J:ps;p.endEmitted?t.nextTick(R):x.once("end",R),M.on("unpipe",V);function V(Sn,_r){_("onunpipe"),Sn===x&&_r&&_r.hasUnpiped===!1&&(_r.hasUnpiped=!0,Me())}function J(){_("onend"),M.end()}let te,Te=!1;function Me(){_("cleanup"),M.removeListener("close",Mu),M.removeListener("finish",Cu),te&&M.removeListener("drain",te),M.removeListener("error",Le),M.removeListener("unpipe",V),x.removeListener("end",J),x.removeListener("end",ps),x.removeListener("data",$e),Te=!0,te&&p.awaitDrainWriters&&(!M._writableState||M._writableState.needDrain)&&te()}function Ce(){Te||(p.pipes.length===1&&p.pipes[0]===M?(_("false write response, pause",0),p.awaitDrainWriters=M,p.multiAwaitDrain=!1):p.pipes.length>1&&p.pipes.includes(M)&&(_("false write response, pause",p.awaitDrainWriters.size),p.awaitDrainWriters.add(M)),x.pause()),te||(te=P(x,M),M.on("drain",te))}x.on("data",$e);function $e(Sn){_("ondata");const _r=M.write(Sn);_("dest.write",_r),_r===!1&&Ce()}function Le(Sn){if(_("onerror",Sn),ps(),M.removeListener("error",Le),M.listenerCount("error")===0){const _r=M._writableState||M._readableState;_r&&!_r.errorEmitted?K(M,Sn):M.emit("error",Sn)}}g(M,"error",Le);function Mu(){M.removeListener("finish",Cu),ps()}M.once("close",Mu);function Cu(){_("onfinish"),M.removeListener("close",Mu),ps()}M.once("finish",Cu);function ps(){_("unpipe"),x.unpipe(M)}return M.emit("pipe",x),M.writableNeedDrain===!0?p.flowing&&Ce():p.flowing||(_("pipe resume"),x.resume()),M};function P(M,N){return function(){const p=M._readableState;p.awaitDrainWriters===N?(_("pipeOnDrain",1),p.awaitDrainWriters=null):p.multiAwaitDrain&&(_("pipeOnDrain",p.awaitDrainWriters.size),p.awaitDrainWriters.delete(N)),(!p.awaitDrainWriters||p.awaitDrainWriters.size===0)&&M.listenerCount("data")&&M.resume()}}Z.prototype.unpipe=function(M){const N=this._readableState,x={hasUnpiped:!1};if(N.pipes.length===0)return this;if(!M){const m=N.pipes;N.pipes=[],this.pause();for(let R=0;R<m.length;R++)m[R].emit("unpipe",this,{hasUnpiped:!1});return this}const p=e(N.pipes,M);return p===-1?this:(N.pipes.splice(p,1),N.pipes.length===0&&this.pause(),M.emit("unpipe",this,x),this)},Z.prototype.on=function(M,N){const x=h.prototype.on.call(this,M,N),p=this._readableState;return M==="data"?(p.readableListening=this.listenerCount("readable")>0,p.flowing!==!1&&this.resume()):M==="readable"&&!p.endEmitted&&!p.readableListening&&(p.readableListening=p.needReadable=!0,p.flowing=!1,p.emittedReadable=!1,_("on readable",p.length,p.reading),p.length?Y(this):p.reading||t.nextTick(S,this)),x},Z.prototype.addListener=Z.prototype.on,Z.prototype.removeListener=function(M,N){const x=h.prototype.removeListener.call(this,M,N);return M==="readable"&&t.nextTick(w,this),x},Z.prototype.off=Z.prototype.removeListener,Z.prototype.removeAllListeners=function(M){const N=h.prototype.removeAllListeners.apply(this,arguments);return(M==="readable"||M===void 0)&&t.nextTick(w,this),N};function w(M){const N=M._readableState;N.readableListening=M.listenerCount("readable")>0,N.resumeScheduled&&N[I]===!1?N.flowing=!0:M.listenerCount("data")>0?M.resume():N.readableListening||(N.flowing=null)}function S(M){_("readable nexttick read 0"),M.read(0)}Z.prototype.resume=function(){const M=this._readableState;return M.flowing||(_("resume"),M.flowing=!M.readableListening,A(this,M)),M[I]=!1,this};function A(M,N){N.resumeScheduled||(N.resumeScheduled=!0,t.nextTick(B,M,N))}function B(M,N){_("resume",N.reading),N.reading||M.read(0),N.resumeScheduled=!1,M.emit("resume"),z(M),N.flowing&&!N.reading&&M.read(0)}Z.prototype.pause=function(){return _("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(_("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[I]=!0,this};function z(M){const N=M._readableState;for(_("flow",N.flowing);N.flowing&&M.read()!==null;);}Z.prototype.wrap=function(M){let N=!1;M.on("data",p=>{!this.push(p)&&M.pause&&(N=!0,M.pause())}),M.on("end",()=>{this.push(null)}),M.on("error",p=>{K(this,p)}),M.on("close",()=>{this.destroy()}),M.on("destroy",()=>{this.destroy()}),this._read=()=>{N&&M.resume&&(N=!1,M.resume())};const x=o(M);for(let p=1;p<x.length;p++){const m=x[p];this[m]===void 0&&typeof M[m]=="function"&&(this[m]=M[m].bind(M))}return this},Z.prototype[c]=function(){return q(this)},Z.prototype.iterator=function(M){return M!==void 0&&$(M,"options"),q(this,M)};function q(M,N){typeof M.read!="function"&&(M=Z.wrap(M,{objectMode:!0}));const x=ie(M,N);return x.stream=M,x}async function*ie(M,N){let x=H;function p(V){this===M?(x(),x=H):x=V}M.on("readable",p);let m;const R=E(M,{writable:!1},V=>{m=V?D(m,V):null,x(),x=H});try{for(;;){const V=M.destroyed?null:M.read();if(V!==null)yield V;else{if(m)throw m;if(m===null)return;await new l(p)}}}catch(V){throw m=D(m,V),m}finally{(m||(N==null?void 0:N.destroyOnReturn)!==!1)&&(m===void 0||M._readableState.autoDestroy)?T.destroyer(M,null):(M.off("readable",p),R())}}s(Z.prototype,{readable:{__proto__:null,get(){const M=this._readableState;return!!M&&M.readable!==!1&&!M.destroyed&&!M.errorEmitted&&!M.endEmitted},set(M){this._readableState&&(this._readableState.readable=!!M)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(M){this._readableState&&(this._readableState.flowing=M)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(M){this._readableState&&(this._readableState.destroyed=M)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),s(X.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[I]!==!1},set(M){this[I]=!!M}}}),Z._fromList=re;function re(M,N){if(N.length===0)return null;let x;return N.objectMode?x=N.buffer.shift():!M||M>=N.length?(N.decoder?x=N.buffer.join(""):N.buffer.length===1?x=N.buffer.first():x=N.buffer.concat(N.length),N.buffer.clear()):x=N.buffer.consume(M,N.decoder),x}function ae(M){const N=M._readableState;_("endReadable",N.endEmitted),N.endEmitted||(N.ended=!0,t.nextTick(se,N,M))}function se(M,N){if(_("endReadableNT",M.endEmitted,M.length),!M.errored&&!M.closeEmitted&&!M.endEmitted&&M.length===0){if(M.endEmitted=!0,N.emit("end"),N.writable&&N.allowHalfOpen===!1)t.nextTick(he,N);else if(M.autoDestroy){const x=N._writableState;(!x||x.autoDestroy&&(x.finished||x.writable===!1))&&N.destroy()}}}function he(M){M.writable&&!M.writableEnded&&!M.destroyed&&M.end()}Z.from=function(M,N){return Q(Z,M,N)};let fe;function ge(){return fe===void 0&&(fe={}),fe}return Z.fromWeb=function(M,N){return ge().newStreamReadableFromReadableStream(M,N)},Z.toWeb=function(M,N){return ge().newReadableStreamFromStreamReadable(M,N)},Z.wrap=function(M,N){var x,p;return new Z({objectMode:(x=(p=M.readableObjectMode)!==null&&p!==void 0?p:M.objectMode)!==null&&x!==void 0?x:!0,...N,destroy(m,R){T.destroyer(M,m),R(m)}}).wrap(M)},ec}var tc,Lg;function Pb(){if(Lg)return tc;Lg=1;const t=mn,{ArrayPrototypeSlice:e,Error:r,FunctionPrototypeSymbolHasInstance:n,ObjectDefineProperty:i,ObjectDefineProperties:s,ObjectSetPrototypeOf:o,StringPrototypeToLowerCase:a,Symbol:l,SymbolHasInstance:u}=Ve;tc=j,j.WritableState=$;const{EventEmitter:c}=gn,f=Jd.Stream,{Buffer:d}=He,h=ls,{addAbortSignal:g}=Jl,{getHighWaterMark:y,getDefaultHighWaterMark:b}=Zd,{ERR_INVALID_ARG_TYPE:E,ERR_METHOD_NOT_IMPLEMENTED:_,ERR_MULTIPLE_CALLBACK:v,ERR_STREAM_CANNOT_PIPE:T,ERR_STREAM_DESTROYED:C,ERR_STREAM_ALREADY_FINISHED:O,ERR_STREAM_NULL_VALUES:D,ERR_STREAM_WRITE_AFTER_END:F,ERR_UNKNOWN_ENCODING:L}=bt.codes,{errorOrDestroy:U}=h;o(j.prototype,f.prototype),o(j,f);function k(){}const W=l("kOnFinished");function $(S,A,B){typeof B!="boolean"&&(B=A instanceof $r()),this.objectMode=!!(S&&S.objectMode),B&&(this.objectMode=this.objectMode||!!(S&&S.writableObjectMode)),this.highWaterMark=S?y(this,S,"writableHighWaterMark",B):b(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const z=!!(S&&S.decodeStrings===!1);this.decodeStrings=!z,this.defaultEncoding=S&&S.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=Z.bind(void 0,A),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,I(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!S||S.emitClose!==!1,this.autoDestroy=!S||S.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[W]=[]}function I(S){S.buffered=[],S.bufferedIndex=0,S.allBuffers=!0,S.allNoop=!0}$.prototype.getBuffer=function(){return e(this.buffered,this.bufferedIndex)},i($.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function j(S){const A=this instanceof $r();if(!A&&!n(j,this))return new j(S);this._writableState=new $(S,this,A),S&&(typeof S.write=="function"&&(this._write=S.write),typeof S.writev=="function"&&(this._writev=S.writev),typeof S.destroy=="function"&&(this._destroy=S.destroy),typeof S.final=="function"&&(this._final=S.final),typeof S.construct=="function"&&(this._construct=S.construct),S.signal&&g(S.signal,this)),f.call(this,S),h.construct(this,()=>{const B=this._writableState;B.writing||me(this,B),ne(this,B)})}i(j,u,{__proto__:null,value:function(S){return n(this,S)?!0:this!==j?!1:S&&S._writableState instanceof $}}),j.prototype.pipe=function(){U(this,new T)};function Q(S,A,B,z){const q=S._writableState;if(typeof B=="function")z=B,B=q.defaultEncoding;else{if(!B)B=q.defaultEncoding;else if(B!=="buffer"&&!d.isEncoding(B))throw new L(B);typeof z!="function"&&(z=k)}if(A===null)throw new D;if(!q.objectMode)if(typeof A=="string")q.decodeStrings!==!1&&(A=d.from(A,B),B="buffer");else if(A instanceof d)B="buffer";else if(f._isUint8Array(A))A=f._uint8ArrayToBuffer(A),B="buffer";else throw new E("chunk",["string","Buffer","Uint8Array"],A);let ie;return q.ending?ie=new F:q.destroyed&&(ie=new C("write")),ie?(t.nextTick(z,ie),U(S,ie,!0),ie):(q.pendingcb++,H(S,q,A,B,z))}j.prototype.write=function(S,A,B){return Q(this,S,A,B)===!0},j.prototype.cork=function(){this._writableState.corked++},j.prototype.uncork=function(){const S=this._writableState;S.corked&&(S.corked--,S.writing||me(this,S))},j.prototype.setDefaultEncoding=function(A){if(typeof A=="string"&&(A=a(A)),!d.isEncoding(A))throw new L(A);return this._writableState.defaultEncoding=A,this};function H(S,A,B,z,q){const ie=A.objectMode?1:B.length;A.length+=ie;const re=A.length<A.highWaterMark;return re||(A.needDrain=!0),A.writing||A.corked||A.errored||!A.constructed?(A.buffered.push({chunk:B,encoding:z,callback:q}),A.allBuffers&&z!=="buffer"&&(A.allBuffers=!1),A.allNoop&&q!==k&&(A.allNoop=!1)):(A.writelen=ie,A.writecb=q,A.writing=!0,A.sync=!0,S._write(B,z,A.onwrite),A.sync=!1),re&&!A.errored&&!A.destroyed}function K(S,A,B,z,q,ie,re){A.writelen=z,A.writecb=re,A.writing=!0,A.sync=!0,A.destroyed?A.onwrite(new C("write")):B?S._writev(q,A.onwrite):S._write(q,ie,A.onwrite),A.sync=!1}function X(S,A,B,z){--A.pendingcb,z(B),de(A),U(S,B)}function Z(S,A){const B=S._writableState,z=B.sync,q=B.writecb;if(typeof q!="function"){U(S,new v);return}B.writing=!1,B.writecb=null,B.length-=B.writelen,B.writelen=0,A?(A.stack,B.errored||(B.errored=A),S._readableState&&!S._readableState.errored&&(S._readableState.errored=A),z?t.nextTick(X,S,B,A,q):X(S,B,A,q)):(B.buffered.length>B.bufferedIndex&&me(S,B),z?B.afterWriteTickInfo!==null&&B.afterWriteTickInfo.cb===q?B.afterWriteTickInfo.count++:(B.afterWriteTickInfo={count:1,cb:q,stream:S,state:B},t.nextTick(ce,B.afterWriteTickInfo)):pe(S,B,1,q))}function ce({stream:S,state:A,count:B,cb:z}){return A.afterWriteTickInfo=null,pe(S,A,B,z)}function pe(S,A,B,z){for(!A.ending&&!S.destroyed&&A.length===0&&A.needDrain&&(A.needDrain=!1,S.emit("drain"));B-- >0;)A.pendingcb--,z();A.destroyed&&de(A),ne(S,A)}function de(S){if(S.writing)return;for(let q=S.bufferedIndex;q<S.buffered.length;++q){var A;const{chunk:ie,callback:re}=S.buffered[q],ae=S.objectMode?1:ie.length;S.length-=ae,re((A=S.errored)!==null&&A!==void 0?A:new C("write"))}const B=S[W].splice(0);for(let q=0;q<B.length;q++){var z;B[q]((z=S.errored)!==null&&z!==void 0?z:new C("end"))}I(S)}function me(S,A){if(A.corked||A.bufferProcessing||A.destroyed||!A.constructed)return;const{buffered:B,bufferedIndex:z,objectMode:q}=A,ie=B.length-z;if(!ie)return;let re=z;if(A.bufferProcessing=!0,ie>1&&S._writev){A.pendingcb-=ie-1;const ae=A.allNoop?k:he=>{for(let fe=re;fe<B.length;++fe)B[fe].callback(he)},se=A.allNoop&&re===0?B:e(B,re);se.allBuffers=A.allBuffers,K(S,A,!0,A.length,se,"",ae),I(A)}else{do{const{chunk:ae,encoding:se,callback:he}=B[re];B[re++]=null;const fe=q?1:ae.length;K(S,A,!1,fe,ae,se,he)}while(re<B.length&&!A.writing);re===B.length?I(A):re>256?(B.splice(0,re),A.bufferedIndex=0):A.bufferedIndex=re}A.bufferProcessing=!1}j.prototype._write=function(S,A,B){if(this._writev)this._writev([{chunk:S,encoding:A}],B);else throw new _("_write()")},j.prototype._writev=null,j.prototype.end=function(S,A,B){const z=this._writableState;typeof S=="function"?(B=S,S=null,A=null):typeof A=="function"&&(B=A,A=null);let q;if(S!=null){const ie=Q(this,S,A);ie instanceof r&&(q=ie)}return z.corked&&(z.corked=1,this.uncork()),q||(!z.errored&&!z.ending?(z.ending=!0,ne(this,z,!0),z.ended=!0):z.finished?q=new O("end"):z.destroyed&&(q=new C("end"))),typeof B=="function"&&(q||z.finished?t.nextTick(B,q):z[W].push(B)),this};function be(S){return S.ending&&!S.destroyed&&S.constructed&&S.length===0&&!S.errored&&S.buffered.length===0&&!S.finished&&!S.writing&&!S.errorEmitted&&!S.closeEmitted}function G(S,A){let B=!1;function z(q){if(B){U(S,q??v());return}if(B=!0,A.pendingcb--,q){const ie=A[W].splice(0);for(let re=0;re<ie.length;re++)ie[re](q);U(S,q,A.sync)}else be(A)&&(A.prefinished=!0,S.emit("prefinish"),A.pendingcb++,t.nextTick(ee,S,A))}A.sync=!0,A.pendingcb++;try{S._final(z)}catch(q){z(q)}A.sync=!1}function Y(S,A){!A.prefinished&&!A.finalCalled&&(typeof S._final=="function"&&!A.destroyed?(A.finalCalled=!0,G(S,A)):(A.prefinished=!0,S.emit("prefinish")))}function ne(S,A,B){be(A)&&(Y(S,A),A.pendingcb===0&&(B?(A.pendingcb++,t.nextTick((z,q)=>{be(q)?ee(z,q):q.pendingcb--},S,A)):be(A)&&(A.pendingcb++,ee(S,A))))}function ee(S,A){A.pendingcb--,A.finished=!0;const B=A[W].splice(0);for(let z=0;z<B.length;z++)B[z]();if(S.emit("finish"),A.autoDestroy){const z=S._readableState;(!z||z.autoDestroy&&(z.endEmitted||z.readable===!1))&&S.destroy()}}s(j.prototype,{closed:{__proto__:null,get(){return this._writableState?this._writableState.closed:!1}},destroyed:{__proto__:null,get(){return this._writableState?this._writableState.destroyed:!1},set(S){this._writableState&&(this._writableState.destroyed=S)}},writable:{__proto__:null,get(){const S=this._writableState;return!!S&&S.writable!==!1&&!S.destroyed&&!S.errored&&!S.ending&&!S.ended},set(S){this._writableState&&(this._writableState.writable=!!S)}},writableFinished:{__proto__:null,get(){return this._writableState?this._writableState.finished:!1}},writableObjectMode:{__proto__:null,get(){return this._writableState?this._writableState.objectMode:!1}},writableBuffer:{__proto__:null,get(){return this._writableState&&this._writableState.getBuffer()}},writableEnded:{__proto__:null,get(){return this._writableState?this._writableState.ending:!1}},writableNeedDrain:{__proto__:null,get(){const S=this._writableState;return S?!S.destroyed&&!S.ending&&S.needDrain:!1}},writableHighWaterMark:{__proto__:null,get(){return this._writableState&&this._writableState.highWaterMark}},writableCorked:{__proto__:null,get(){return this._writableState?this._writableState.corked:0}},writableLength:{__proto__:null,get(){return this._writableState&&this._writableState.length}},errored:{__proto__:null,enumerable:!1,get(){return this._writableState?this._writableState.errored:null}},writableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._writableState.writable!==!1&&(this._writableState.destroyed||this._writableState.errored)&&!this._writableState.finished)}}});const ue=h.destroy;j.prototype.destroy=function(S,A){const B=this._writableState;return!B.destroyed&&(B.bufferedIndex<B.buffered.length||B[W].length)&&t.nextTick(de,B),ue.call(this,S,A),this},j.prototype._undestroy=h.undestroy,j.prototype._destroy=function(S,A){A(S)},j.prototype[c.captureRejectionSymbol]=function(S){this.destroy(S)};let P;function w(){return P===void 0&&(P={}),P}return j.fromWeb=function(S,A){return w().newStreamWritableFromWritableStream(S,A)},j.toWeb=function(S){return w().newWritableStreamFromStreamWritable(S)},tc}var rc,Ng;function bI(){if(Ng)return rc;Ng=1;const t=mn,e=He,{isReadable:r,isWritable:n,isIterable:i,isNodeStream:s,isReadableNodeStream:o,isWritableNodeStream:a,isDuplexNodeStream:l}=Yr,u=wn,{AbortError:c,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:d}}=bt,{destroyer:h}=ls,g=$r(),y=Zl(),{createDeferredPromise:b}=qr,E=Ob,_=globalThis.Blob||e.Blob,v=typeof _<"u"?function(U){return U instanceof _}:function(U){return!1},T=globalThis.AbortController||qd().AbortController,{FunctionPrototypeCall:C}=Ve;class O extends g{constructor(U){super(U),(U==null?void 0:U.readable)===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),(U==null?void 0:U.writable)===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}}rc=function L(U,k){if(l(U))return U;if(o(U))return F({readable:U});if(a(U))return F({writable:U});if(s(U))return F({writable:!1,readable:!1});if(typeof U=="function"){const{value:$,write:I,final:j,destroy:Q}=D(U);if(i($))return E(O,$,{objectMode:!0,write:I,final:j,destroy:Q});const H=$==null?void 0:$.then;if(typeof H=="function"){let K;const X=C(H,$,Z=>{if(Z!=null)throw new d("nully","body",Z)},Z=>{h(K,Z)});return K=new O({objectMode:!0,readable:!1,write:I,final(Z){j(async()=>{try{await X,t.nextTick(Z,null)}catch(ce){t.nextTick(Z,ce)}})},destroy:Q})}throw new d("Iterable, AsyncIterable or AsyncFunction",k,$)}if(v(U))return L(U.arrayBuffer());if(i(U))return E(O,U,{objectMode:!0,writable:!1});if(typeof(U==null?void 0:U.writable)=="object"||typeof(U==null?void 0:U.readable)=="object"){const $=U!=null&&U.readable?o(U==null?void 0:U.readable)?U==null?void 0:U.readable:L(U.readable):void 0,I=U!=null&&U.writable?a(U==null?void 0:U.writable)?U==null?void 0:U.writable:L(U.writable):void 0;return F({readable:$,writable:I})}const W=U==null?void 0:U.then;if(typeof W=="function"){let $;return C(W,U,I=>{I!=null&&$.push(I),$.push(null)},I=>{h($,I)}),$=new O({objectMode:!0,writable:!1,read(){}})}throw new f(k,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],U)};function D(L){let{promise:U,resolve:k}=b();const W=new T,$=W.signal;return{value:L(async function*(){for(;;){const j=U;U=null;const{chunk:Q,done:H,cb:K}=await j;if(t.nextTick(K),H)return;if($.aborted)throw new c(void 0,{cause:$.reason});({promise:U,resolve:k}=b()),yield Q}}(),{signal:$}),write(j,Q,H){const K=k;k=null,K({chunk:j,done:!1,cb:H})},final(j){const Q=k;k=null,Q({done:!0,cb:j})},destroy(j,Q){W.abort(),Q(j)}}}function F(L){const U=L.readable&&typeof L.readable.read!="function"?y.wrap(L.readable):L.readable,k=L.writable;let W=!!r(U),$=!!n(k),I,j,Q,H,K;function X(Z){const ce=H;H=null,ce?ce(Z):Z&&K.destroy(Z)}return K=new O({readableObjectMode:!!(U!=null&&U.readableObjectMode),writableObjectMode:!!(k!=null&&k.writableObjectMode),readable:W,writable:$}),$&&(u(k,Z=>{$=!1,Z&&h(U,Z),X(Z)}),K._write=function(Z,ce,pe){k.write(Z,ce)?pe():I=pe},K._final=function(Z){k.end(),j=Z},k.on("drain",function(){if(I){const Z=I;I=null,Z()}}),k.on("finish",function(){if(j){const Z=j;j=null,Z()}})),W&&(u(U,Z=>{W=!1,Z&&h(U,Z),X(Z)}),U.on("readable",function(){if(Q){const Z=Q;Q=null,Z()}}),U.on("end",function(){K.push(null)}),K._read=function(){for(;;){const Z=U.read();if(Z===null){Q=K._read;return}if(!K.push(Z))return}}),K._destroy=function(Z,ce){!Z&&H!==null&&(Z=new c),Q=null,I=null,j=null,H===null?ce(Z):(H=ce,h(k,Z),h(U,Z))},K}return rc}var nc,$g;function $r(){if($g)return nc;$g=1;const{ObjectDefineProperties:t,ObjectGetOwnPropertyDescriptor:e,ObjectKeys:r,ObjectSetPrototypeOf:n}=Ve;nc=o;const i=Zl(),s=Pb();n(o.prototype,i.prototype),n(o,i);{const c=r(s.prototype);for(let f=0;f<c.length;f++){const d=c[f];o.prototype[d]||(o.prototype[d]=s.prototype[d])}}function o(c){if(!(this instanceof o))return new o(c);i.call(this,c),s.call(this,c),c?(this.allowHalfOpen=c.allowHalfOpen!==!1,c.readable===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),c.writable===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)):this.allowHalfOpen=!0}t(o.prototype,{writable:{__proto__:null,...e(s.prototype,"writable")},writableHighWaterMark:{__proto__:null,...e(s.prototype,"writableHighWaterMark")},writableObjectMode:{__proto__:null,...e(s.prototype,"writableObjectMode")},writableBuffer:{__proto__:null,...e(s.prototype,"writableBuffer")},writableLength:{__proto__:null,...e(s.prototype,"writableLength")},writableFinished:{__proto__:null,...e(s.prototype,"writableFinished")},writableCorked:{__proto__:null,...e(s.prototype,"writableCorked")},writableEnded:{__proto__:null,...e(s.prototype,"writableEnded")},writableNeedDrain:{__proto__:null,...e(s.prototype,"writableNeedDrain")},destroyed:{__proto__:null,get(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set(c){this._readableState&&this._writableState&&(this._readableState.destroyed=c,this._writableState.destroyed=c)}}});let a;function l(){return a===void 0&&(a={}),a}o.fromWeb=function(c,f){return l().newStreamDuplexFromReadableWritablePair(c,f)},o.toWeb=function(c){return l().newReadableWritablePairFromDuplex(c)};let u;return o.from=function(c){return u||(u=bI()),u(c,"body")},nc}const{ObjectSetPrototypeOf:Rb,Symbol:_I}=Ve;var Lb=kr;const{ERR_METHOD_NOT_IMPLEMENTED:vI}=bt.codes,eh=$r(),{getHighWaterMark:EI}=Zd;Rb(kr.prototype,eh.prototype);Rb(kr,eh);const qs=_I("kCallback");function kr(t){if(!(this instanceof kr))return new kr(t);const e=t?EI(this,t,"readableHighWaterMark",!0):null;e===0&&(t={...t,highWaterMark:null,readableHighWaterMark:e,writableHighWaterMark:t.writableHighWaterMark||0}),eh.call(this,t),this._readableState.sync=!1,this[qs]=null,t&&(typeof t.transform=="function"&&(this._transform=t.transform),typeof t.flush=="function"&&(this._flush=t.flush)),this.on("prefinish",SI)}function Of(t){typeof this._flush=="function"&&!this.destroyed?this._flush((e,r)=>{if(e){t?t(e):this.destroy(e);return}r!=null&&this.push(r),this.push(null),t&&t()}):(this.push(null),t&&t())}function SI(){this._final!==Of&&Of.call(this)}kr.prototype._final=Of;kr.prototype._transform=function(t,e,r){throw new vI("_transform()")};kr.prototype._write=function(t,e,r){const n=this._readableState,i=this._writableState,s=n.length;this._transform(t,e,(o,a)=>{if(o){r(o);return}a!=null&&this.push(a),i.ended||s===n.length||n.length<n.highWaterMark?r():this[qs]=r})};kr.prototype._read=function(){if(this[qs]){const t=this[qs];this[qs]=null,t()}};const{ObjectSetPrototypeOf:Nb}=Ve;var $b=ji;const th=Lb;Nb(ji.prototype,th.prototype);Nb(ji,th);function ji(t){if(!(this instanceof ji))return new ji(t);th.call(this,t)}ji.prototype._transform=function(t,e,r){r(null,t)};const Ls=mn,{ArrayIsArray:xI,Promise:TI,SymbolAsyncIterator:AI}=Ve,Xa=wn,{once:MI}=qr,CI=ls,kg=$r(),{aggregateTwoErrors:II,codes:{ERR_INVALID_ARG_TYPE:Pf,ERR_INVALID_RETURN_VALUE:ic,ERR_MISSING_ARGS:OI,ERR_STREAM_DESTROYED:PI,ERR_STREAM_PREMATURE_CLOSE:RI},AbortError:LI}=bt,{validateFunction:NI,validateAbortSignal:$I}=Vl,{isIterable:Cn,isReadable:sc,isReadableNodeStream:_a,isNodeStream:Dg,isTransformStream:yi,isWebStream:kI,isReadableStream:oc,isReadableEnded:DI}=Yr,BI=globalThis.AbortController||qd().AbortController;let ac,lc;function Bg(t,e,r){let n=!1;t.on("close",()=>{n=!0});const i=Xa(t,{readable:e,writable:r},s=>{n=!s});return{destroy:s=>{n||(n=!0,CI.destroyer(t,s||new PI("pipe")))},cleanup:i}}function FI(t){return NI(t[t.length-1],"streams[stream.length - 1]"),t.pop()}function uc(t){if(Cn(t))return t;if(_a(t))return UI(t);throw new Pf("val",["Readable","Iterable","AsyncIterable"],t)}async function*UI(t){lc||(lc=Zl()),yield*lc.prototype[AI].call(t)}async function Vo(t,e,r,{end:n}){let i,s=null;const o=u=>{if(u&&(i=u),s){const c=s;s=null,c()}},a=()=>new TI((u,c)=>{i?c(i):s=()=>{i?c(i):u()}});e.on("drain",o);const l=Xa(e,{readable:!1},o);try{e.writableNeedDrain&&await a();for await(const u of t)e.write(u)||await a();n&&e.end(),await a(),r()}catch(u){r(i!==u?II(i,u):u)}finally{l(),e.off("drain",o)}}async function cc(t,e,r,{end:n}){yi(e)&&(e=e.writable);const i=e.getWriter();try{for await(const s of t)await i.ready,i.write(s).catch(()=>{});await i.ready,n&&await i.close(),r()}catch(s){try{await i.abort(s),r(s)}catch(o){r(o)}}}function jI(...t){return kb(t,MI(FI(t)))}function kb(t,e,r){if(t.length===1&&xI(t[0])&&(t=t[0]),t.length<2)throw new OI("streams");const n=new BI,i=n.signal,s=r==null?void 0:r.signal,o=[];$I(s,"options.signal");function a(){h(new LI)}s==null||s.addEventListener("abort",a);let l,u;const c=[];let f=0;function d(E){h(E,--f===0)}function h(E,_){if(E&&(!l||l.code==="ERR_STREAM_PREMATURE_CLOSE")&&(l=E),!(!l&&!_)){for(;c.length;)c.shift()(l);s==null||s.removeEventListener("abort",a),n.abort(),_&&(l||o.forEach(v=>v()),Ls.nextTick(e,l,u))}}let g;for(let E=0;E<t.length;E++){const _=t[E],v=E<t.length-1,T=E>0,C=v||(r==null?void 0:r.end)!==!1,O=E===t.length-1;if(Dg(_)){let D=function(F){F&&F.name!=="AbortError"&&F.code!=="ERR_STREAM_PREMATURE_CLOSE"&&d(F)};if(C){const{destroy:F,cleanup:L}=Bg(_,v,T);c.push(F),sc(_)&&O&&o.push(L)}_.on("error",D),sc(_)&&O&&o.push(()=>{_.removeListener("error",D)})}if(E===0)if(typeof _=="function"){if(g=_({signal:i}),!Cn(g))throw new ic("Iterable, AsyncIterable or Stream","source",g)}else Cn(_)||_a(_)||yi(_)?g=_:g=kg.from(_);else if(typeof _=="function"){if(yi(g)){var y;g=uc((y=g)===null||y===void 0?void 0:y.readable)}else g=uc(g);if(g=_(g,{signal:i}),v){if(!Cn(g,!0))throw new ic("AsyncIterable",`transform[${E-1}]`,g)}else{var b;ac||(ac=$b);const D=new ac({objectMode:!0}),F=(b=g)===null||b===void 0?void 0:b.then;if(typeof F=="function")f++,F.call(g,k=>{u=k,k!=null&&D.write(k),C&&D.end(),Ls.nextTick(d)},k=>{D.destroy(k),Ls.nextTick(d,k)});else if(Cn(g,!0))f++,Vo(g,D,d,{end:C});else if(oc(g)||yi(g)){const k=g.readable||g;f++,Vo(k,D,d,{end:C})}else throw new ic("AsyncIterable or Promise","destination",g);g=D;const{destroy:L,cleanup:U}=Bg(g,!1,!0);c.push(L),O&&o.push(U)}}else if(Dg(_)){if(_a(g)){f+=2;const D=zI(g,_,d,{end:C});sc(_)&&O&&o.push(D)}else if(yi(g)||oc(g)){const D=g.readable||g;f++,Vo(D,_,d,{end:C})}else if(Cn(g))f++,Vo(g,_,d,{end:C});else throw new Pf("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],g);g=_}else if(kI(_)){if(_a(g))f++,cc(uc(g),_,d,{end:C});else if(oc(g)||Cn(g))f++,cc(g,_,d,{end:C});else if(yi(g))f++,cc(g.readable,_,d,{end:C});else throw new Pf("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],g);g=_}else g=kg.from(_)}return(i!=null&&i.aborted||s!=null&&s.aborted)&&Ls.nextTick(a),g}function zI(t,e,r,{end:n}){let i=!1;if(e.on("close",()=>{i||r(new RI)}),t.pipe(e,{end:!1}),n){let s=function(){i=!0,e.end()};DI(t)?Ls.nextTick(s):t.once("end",s)}else r();return Xa(t,{readable:!0,writable:!1},s=>{const o=t._readableState;s&&s.code==="ERR_STREAM_PREMATURE_CLOSE"&&o&&o.ended&&!o.errored&&!o.errorEmitted?t.once("end",r).once("error",r):r(s)}),Xa(e,{readable:!1,writable:!0},r)}var rh={pipelineImpl:kb,pipeline:jI};const{pipeline:HI}=rh,qo=$r(),{destroyer:WI}=ls,{isNodeStream:Yo,isReadable:Fg,isWritable:Ug,isWebStream:fc,isTransformStream:An,isWritableStream:jg,isReadableStream:zg}=Yr,{AbortError:VI,codes:{ERR_INVALID_ARG_VALUE:Hg,ERR_MISSING_ARGS:qI}}=bt,YI=wn;var Db=function(...e){if(e.length===0)throw new qI("streams");if(e.length===1)return qo.from(e[0]);const r=[...e];if(typeof e[0]=="function"&&(e[0]=qo.from(e[0])),typeof e[e.length-1]=="function"){const h=e.length-1;e[h]=qo.from(e[h])}for(let h=0;h<e.length;++h)if(!(!Yo(e[h])&&!fc(e[h]))){if(h<e.length-1&&!(Fg(e[h])||zg(e[h])||An(e[h])))throw new Hg(`streams[${h}]`,r[h],"must be readable");if(h>0&&!(Ug(e[h])||jg(e[h])||An(e[h])))throw new Hg(`streams[${h}]`,r[h],"must be writable")}let n,i,s,o,a;function l(h){const g=o;o=null,g?g(h):h?a.destroy(h):!d&&!f&&a.destroy()}const u=e[0],c=HI(e,l),f=!!(Ug(u)||jg(u)||An(u)),d=!!(Fg(c)||zg(c)||An(c));if(a=new qo({writableObjectMode:!!(u!=null&&u.writableObjectMode),readableObjectMode:!!(c!=null&&c.writableObjectMode),writable:f,readable:d}),f){if(Yo(u))a._write=function(g,y,b){u.write(g,y)?b():n=b},a._final=function(g){u.end(),i=g},u.on("drain",function(){if(n){const g=n;n=null,g()}});else if(fc(u)){const y=(An(u)?u.writable:u).getWriter();a._write=async function(b,E,_){try{await y.ready,y.write(b).catch(()=>{}),_()}catch(v){_(v)}},a._final=async function(b){try{await y.ready,y.close().catch(()=>{}),i=b}catch(E){b(E)}}}const h=An(c)?c.readable:c;YI(h,()=>{if(i){const g=i;i=null,g()}})}if(d){if(Yo(c))c.on("readable",function(){if(s){const h=s;s=null,h()}}),c.on("end",function(){a.push(null)}),a._read=function(){for(;;){const h=c.read();if(h===null){s=a._read;return}if(!a.push(h))return}};else if(fc(c)){const g=(An(c)?c.readable:c).getReader();a._read=async function(){for(;;)try{const{value:y,done:b}=await g.read();if(!a.push(y))return;if(b){a.push(null);return}}catch{return}}}}return a._destroy=function(h,g){!h&&o!==null&&(h=new VI),s=null,n=null,i=null,o===null?g(h):(o=g,Yo(c)&&WI(c,h))},a};const Bb=globalThis.AbortController||qd().AbortController,{codes:{ERR_INVALID_ARG_VALUE:KI,ERR_INVALID_ARG_TYPE:Eo,ERR_MISSING_ARGS:GI,ERR_OUT_OF_RANGE:XI},AbortError:gr}=bt,{validateAbortSignal:ni,validateInteger:QI,validateObject:ii}=Vl,JI=Ve.Symbol("kWeak"),{finished:ZI}=wn,eO=Db,{addAbortSignalNoValidate:tO}=Jl,{isWritable:rO,isNodeStream:nO}=Yr,{ArrayPrototypePush:iO,MathFloor:sO,Number:oO,NumberIsNaN:aO,Promise:Wg,PromiseReject:Vg,PromisePrototypeThen:lO,Symbol:Fb}=Ve,Qa=Fb("kEmpty"),qg=Fb("kEof");function uO(t,e){if(e!=null&&ii(e,"options"),(e==null?void 0:e.signal)!=null&&ni(e.signal,"options.signal"),nO(t)&&!rO(t))throw new KI("stream",t,"must be writable");const r=eO(this,t);return e!=null&&e.signal&&tO(e.signal,r),r}function eu(t,e){if(typeof t!="function")throw new Eo("fn",["Function","AsyncFunction"],t);e!=null&&ii(e,"options"),(e==null?void 0:e.signal)!=null&&ni(e.signal,"options.signal");let r=1;return(e==null?void 0:e.concurrency)!=null&&(r=sO(e.concurrency)),QI(r,"concurrency",1),(async function*(){var i,s;const o=new Bb,a=this,l=[],u=o.signal,c={signal:u},f=()=>o.abort();e!=null&&(i=e.signal)!==null&&i!==void 0&&i.aborted&&f(),e==null||(s=e.signal)===null||s===void 0||s.addEventListener("abort",f);let d,h,g=!1;function y(){g=!0}async function b(){try{for await(let v of a){var E;if(g)return;if(u.aborted)throw new gr;try{v=t(v,c)}catch(T){v=Vg(T)}v!==Qa&&(typeof((E=v)===null||E===void 0?void 0:E.catch)=="function"&&v.catch(y),l.push(v),d&&(d(),d=null),!g&&l.length&&l.length>=r&&await new Wg(T=>{h=T}))}l.push(qg)}catch(v){const T=Vg(v);lO(T,void 0,y),l.push(T)}finally{var _;g=!0,d&&(d(),d=null),e==null||(_=e.signal)===null||_===void 0||_.removeEventListener("abort",f)}}b();try{for(;;){for(;l.length>0;){const E=await l[0];if(E===qg)return;if(u.aborted)throw new gr;E!==Qa&&(yield E),l.shift(),h&&(h(),h=null)}await new Wg(E=>{d=E})}}finally{o.abort(),g=!0,h&&(h(),h=null)}}).call(this)}function cO(t=void 0){return t!=null&&ii(t,"options"),(t==null?void 0:t.signal)!=null&&ni(t.signal,"options.signal"),(async function*(){let r=0;for await(const i of this){var n;if(t!=null&&(n=t.signal)!==null&&n!==void 0&&n.aborted)throw new gr({cause:t.signal.reason});yield[r++,i]}}).call(this)}async function Ub(t,e=void 0){for await(const r of nh.call(this,t,e))return!0;return!1}async function fO(t,e=void 0){if(typeof t!="function")throw new Eo("fn",["Function","AsyncFunction"],t);return!await Ub.call(this,async(...r)=>!await t(...r),e)}async function dO(t,e){for await(const r of nh.call(this,t,e))return r}async function hO(t,e){if(typeof t!="function")throw new Eo("fn",["Function","AsyncFunction"],t);async function r(n,i){return await t(n,i),Qa}for await(const n of eu.call(this,r,e));}function nh(t,e){if(typeof t!="function")throw new Eo("fn",["Function","AsyncFunction"],t);async function r(n,i){return await t(n,i)?n:Qa}return eu.call(this,r,e)}class pO extends GI{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function gO(t,e,r){var n;if(typeof t!="function")throw new Eo("reducer",["Function","AsyncFunction"],t);r!=null&&ii(r,"options"),(r==null?void 0:r.signal)!=null&&ni(r.signal,"options.signal");let i=arguments.length>1;if(r!=null&&(n=r.signal)!==null&&n!==void 0&&n.aborted){const u=new gr(void 0,{cause:r.signal.reason});throw this.once("error",()=>{}),await ZI(this.destroy(u)),u}const s=new Bb,o=s.signal;if(r!=null&&r.signal){const u={once:!0,[JI]:this};r.signal.addEventListener("abort",()=>s.abort(),u)}let a=!1;try{for await(const u of this){var l;if(a=!0,r!=null&&(l=r.signal)!==null&&l!==void 0&&l.aborted)throw new gr;i?e=await t(e,u,{signal:o}):(e=u,i=!0)}if(!a&&!i)throw new pO}finally{s.abort()}return e}async function mO(t){t!=null&&ii(t,"options"),(t==null?void 0:t.signal)!=null&&ni(t.signal,"options.signal");const e=[];for await(const n of this){var r;if(t!=null&&(r=t.signal)!==null&&r!==void 0&&r.aborted)throw new gr(void 0,{cause:t.signal.reason});iO(e,n)}return e}function yO(t,e){const r=eu.call(this,t,e);return(async function*(){for await(const i of r)yield*i}).call(this)}function jb(t){if(t=oO(t),aO(t))return 0;if(t<0)throw new XI("number",">= 0",t);return t}function wO(t,e=void 0){return e!=null&&ii(e,"options"),(e==null?void 0:e.signal)!=null&&ni(e.signal,"options.signal"),t=jb(t),(async function*(){var n;if(e!=null&&(n=e.signal)!==null&&n!==void 0&&n.aborted)throw new gr;for await(const s of this){var i;if(e!=null&&(i=e.signal)!==null&&i!==void 0&&i.aborted)throw new gr;t--<=0&&(yield s)}}).call(this)}function bO(t,e=void 0){return e!=null&&ii(e,"options"),(e==null?void 0:e.signal)!=null&&ni(e.signal,"options.signal"),t=jb(t),(async function*(){var n;if(e!=null&&(n=e.signal)!==null&&n!==void 0&&n.aborted)throw new gr;for await(const s of this){var i;if(e!=null&&(i=e.signal)!==null&&i!==void 0&&i.aborted)throw new gr;if(t-- >0)yield s;else return}}).call(this)}Vd.streamReturningOperators={asIndexedPairs:cO,drop:wO,filter:nh,flatMap:yO,map:eu,take:bO,compose:uO};Vd.promiseReturningOperators={every:fO,forEach:hO,reduce:gO,toArray:mO,some:Ub,find:dO};var dc,Yg;function zb(){if(Yg)return dc;Yg=1;const{ArrayPrototypePop:t,Promise:e}=Ve,{isIterable:r,isNodeStream:n,isWebStream:i}=Yr,{pipelineImpl:s}=rh,{finished:o}=wn;Hb();function a(...l){return new e((u,c)=>{let f,d;const h=l[l.length-1];if(h&&typeof h=="object"&&!n(h)&&!r(h)&&!i(h)){const g=t(l);f=g.signal,d=g.end}s(l,(g,y)=>{g?c(g):u(y)},{signal:f,end:d})})}return dc={finished:o,pipeline:a},dc}var Kg;function Hb(){if(Kg)return Xu.exports;Kg=1;const{Buffer:t}=He,{ObjectDefineProperty:e,ObjectKeys:r,ReflectApply:n}=Ve,{promisify:{custom:i}}=qr,{streamReturningOperators:s,promiseReturningOperators:o}=Vd,{codes:{ERR_ILLEGAL_CONSTRUCTOR:a}}=bt,l=Db,{pipeline:u}=rh,{destroyer:c}=ls,f=wn,d=zb(),h=Yr,g=Xu.exports=Jd.Stream;g.isDisturbed=h.isDisturbed,g.isErrored=h.isErrored,g.isReadable=h.isReadable,g.Readable=Zl();for(const b of r(s)){let _=function(...v){if(new.target)throw a();return g.Readable.from(n(E,this,v))};const E=s[b];e(_,"name",{__proto__:null,value:E.name}),e(_,"length",{__proto__:null,value:E.length}),e(g.Readable.prototype,b,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}for(const b of r(o)){let _=function(...v){if(new.target)throw a();return n(E,this,v)};const E=o[b];e(_,"name",{__proto__:null,value:E.name}),e(_,"length",{__proto__:null,value:E.length}),e(g.Readable.prototype,b,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}g.Writable=Pb(),g.Duplex=$r(),g.Transform=Lb,g.PassThrough=$b,g.pipeline=u;const{addAbortSignal:y}=Jl;return g.addAbortSignal=y,g.finished=f,g.destroy=c,g.compose=l,e(g,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return d}}),e(u,i,{__proto__:null,enumerable:!0,get(){return d.pipeline}}),e(f,i,{__proto__:null,enumerable:!0,get(){return d.finished}}),g.Stream=g,g._isUint8Array=function(E){return E instanceof Uint8Array},g._uint8ArrayToBuffer=function(E){return t.from(E.buffer,E.byteOffset,E.byteLength)},Xu.exports}(function(t){const e=Hb(),r=zb(),n=e.Readable.destroy;t.exports=e.Readable,t.exports._uint8ArrayToBuffer=e._uint8ArrayToBuffer,t.exports._isUint8Array=e._isUint8Array,t.exports.isDisturbed=e.isDisturbed,t.exports.isErrored=e.isErrored,t.exports.isReadable=e.isReadable,t.exports.Readable=e.Readable,t.exports.Writable=e.Writable,t.exports.Duplex=e.Duplex,t.exports.Transform=e.Transform,t.exports.PassThrough=e.PassThrough,t.exports.addAbortSignal=e.addAbortSignal,t.exports.finished=e.finished,t.exports.destroy=e.destroy,t.exports.destroy=n,t.exports.pipeline=e.pipeline,t.exports.compose=e.compose,Object.defineProperty(e,"promises",{configurable:!0,enumerable:!0,get(){return r}}),t.exports.Stream=e.Stream,t.exports.default=t.exports})(eb);var So=eb.exports;function _O(t,e,r){var n=this;this._callback=t,this._args=r,this._interval=setInterval(t,e,this._args),this.reschedule=function(i){i||(i=n._interval),n._interval&&clearInterval(n._interval),n._interval=setInterval(n._callback,i,n._args)},this.clear=function(){n._interval&&(clearInterval(n._interval),n._interval=void 0)},this.destroy=function(){n._interval&&clearInterval(n._interval),n._callback=void 0,n._interval=void 0,n._args=void 0}}function vO(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("interval needed");var t;if(arguments.length>0){t=new Array(arguments.length-2);for(var e=0;e<t.length;e++)t[e]=arguments[e+2]}return new _O(arguments[0],arguments[1],t)}var EO=vO,SO=xO;function Li(t){return t instanceof oe?oe.from(t):new t.constructor(t.buffer.slice(),t.byteOffset,t.length)}function xO(t){if(t=t||{},t.circles)return TO(t);return t.proto?n:r;function e(i,s){for(var o=Object.keys(i),a=new Array(o.length),l=0;l<o.length;l++){var u=o[l],c=i[u];typeof c!="object"||c===null?a[u]=c:c instanceof Date?a[u]=new Date(c):ArrayBuffer.isView(c)?a[u]=Li(c):a[u]=s(c)}return a}function r(i){if(typeof i!="object"||i===null)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return e(i,r);if(i instanceof Map)return new Map(e(Array.from(i),r));if(i instanceof Set)return new Set(e(Array.from(i),r));var s={};for(var o in i)if(Object.hasOwnProperty.call(i,o)!==!1){var a=i[o];typeof a!="object"||a===null?s[o]=a:a instanceof Date?s[o]=new Date(a):a instanceof Map?s[o]=new Map(e(Array.from(a),r)):a instanceof Set?s[o]=new Set(e(Array.from(a),r)):ArrayBuffer.isView(a)?s[o]=Li(a):s[o]=r(a)}return s}function n(i){if(typeof i!="object"||i===null)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return e(i,n);if(i instanceof Map)return new Map(e(Array.from(i),n));if(i instanceof Set)return new Set(e(Array.from(i),n));var s={};for(var o in i){var a=i[o];typeof a!="object"||a===null?s[o]=a:a instanceof Date?s[o]=new Date(a):a instanceof Map?s[o]=new Map(e(Array.from(a),n)):a instanceof Set?s[o]=new Set(e(Array.from(a),n)):ArrayBuffer.isView(a)?s[o]=Li(a):s[o]=n(a)}return s}}function TO(t){var e=[],r=[];return t.proto?s:i;function n(o,a){for(var l=Object.keys(o),u=new Array(l.length),c=0;c<l.length;c++){var f=l[c],d=o[f];if(typeof d!="object"||d===null)u[f]=d;else if(d instanceof Date)u[f]=new Date(d);else if(ArrayBuffer.isView(d))u[f]=Li(d);else{var h=e.indexOf(d);h!==-1?u[f]=r[h]:u[f]=a(d)}}return u}function i(o){if(typeof o!="object"||o===null)return o;if(o instanceof Date)return new Date(o);if(Array.isArray(o))return n(o,i);if(o instanceof Map)return new Map(n(Array.from(o),i));if(o instanceof Set)return new Set(n(Array.from(o),i));var a={};e.push(o),r.push(a);for(var l in o)if(Object.hasOwnProperty.call(o,l)!==!1){var u=o[l];if(typeof u!="object"||u===null)a[l]=u;else if(u instanceof Date)a[l]=new Date(u);else if(u instanceof Map)a[l]=new Map(n(Array.from(u),i));else if(u instanceof Set)a[l]=new Set(n(Array.from(u),i));else if(ArrayBuffer.isView(u))a[l]=Li(u);else{var c=e.indexOf(u);c!==-1?a[l]=r[c]:a[l]=i(u)}}return e.pop(),r.pop(),a}function s(o){if(typeof o!="object"||o===null)return o;if(o instanceof Date)return new Date(o);if(Array.isArray(o))return n(o,s);if(o instanceof Map)return new Map(n(Array.from(o),s));if(o instanceof Set)return new Set(n(Array.from(o),s));var a={};e.push(o),r.push(a);for(var l in o){var u=o[l];if(typeof u!="object"||u===null)a[l]=u;else if(u instanceof Date)a[l]=new Date(u);else if(u instanceof Map)a[l]=new Map(n(Array.from(u),s));else if(u instanceof Set)a[l]=new Set(n(Array.from(u),s));else if(ArrayBuffer.isView(u))a[l]=Li(u);else{var c=e.indexOf(u);c!==-1?a[l]=r[c]:a[l]=s(u)}}return e.pop(),r.pop(),a}}var AO=SO(),zi={};Object.defineProperty(zi,"__esModule",{value:!0});zi.validateTopics=zi.validateTopic=void 0;function Wb(t){const e=t.split("/");for(let r=0;r<e.length;r++)if(e[r]!=="+"){if(e[r]==="#")return r===e.length-1;if(e[r].indexOf("+")!==-1||e[r].indexOf("#")!==-1)return!1}return!0}zi.validateTopic=Wb;function MO(t){if(t.length===0)return"empty_topic_list";for(let e=0;e<t.length;e++)if(!Wb(t[e]))return t[e];return null}zi.validateTopics=MO;var tu={};Object.defineProperty(tu,"__esModule",{value:!0});const CO=So,IO={objectMode:!0},OO={clean:!0};class PO{constructor(e){this.options=e||{},this.options=Object.assign(Object.assign({},OO),e),this._inflights=new Map}put(e,r){return this._inflights.set(e.messageId,e),r&&r(),this}createStream(){const e=new CO.Readable(IO),r=[];let n=!1,i=0;return this._inflights.forEach((s,o)=>{r.push(s)}),e._read=()=>{!n&&i<r.length?e.push(r[i++]):e.push(null)},e.destroy=s=>{if(!n)return n=!0,setTimeout(()=>{e.emit("close")},0),e},e}del(e,r){const n=this._inflights.get(e.messageId);return n?(this._inflights.delete(e.messageId),r(null,n)):r&&r(new Error("missing packet")),this}get(e,r){const n=this._inflights.get(e.messageId);return n?r(null,n):r&&r(new Error("missing packet")),this}close(e){this.options.clean&&(this._inflights=null),e&&e()}}tu.default=PO;var ih={},sh={};Object.defineProperty(sh,"__esModule",{value:!0});const Gg=[0,16,128,131,135,144,145,151,153],RO=(t,e,r)=>{t.log("handlePublish: packet %o",e),r=typeof r<"u"?r:t.noop;let n=e.topic.toString();const i=e.payload,{qos:s}=e,{messageId:o}=e,{options:a}=t;if(t.options.protocolVersion===5){let l;if(e.properties&&(l=e.properties.topicAlias),typeof l<"u")if(n.length===0)if(l>0&&l<=65535){const u=t.topicAliasRecv.getTopicByAlias(l);if(u)n=u,t.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",n,l);else{t.log("handlePublish :: unregistered topic alias. alias: %d",l),t.emit("error",new Error("Received unregistered Topic Alias"));return}}else{t.log("handlePublish :: topic alias out of range. alias: %d",l),t.emit("error",new Error("Received Topic Alias is out of range"));return}else if(t.topicAliasRecv.put(n,l))t.log("handlePublish :: registered topic: %s - alias: %d",n,l);else{t.log("handlePublish :: topic alias out of range. alias: %d",l),t.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(t.log("handlePublish: qos %d",s),s){case 2:{a.customHandleAcks(n,i,e,(l,u)=>{if(typeof l=="number"&&(u=l,l=null),l)return t.emit("error",l);if(Gg.indexOf(u)===-1)return t.emit("error",new Error("Wrong reason code for pubrec"));u?t._sendPacket({cmd:"pubrec",messageId:o,reasonCode:u},r):t.incomingStore.put(e,()=>{t._sendPacket({cmd:"pubrec",messageId:o},r)})});break}case 1:{a.customHandleAcks(n,i,e,(l,u)=>{if(typeof l=="number"&&(u=l,l=null),l)return t.emit("error",l);if(Gg.indexOf(u)===-1)return t.emit("error",new Error("Wrong reason code for puback"));u||t.emit("message",n,i,e),t.handleMessage(e,c=>{if(c)return r&&r(c);t._sendPacket({cmd:"puback",messageId:o,reasonCode:u},r)})});break}case 0:t.emit("message",n,i,e),t.handleMessage(e,r);break;default:t.log("handlePublish: unknown QoS. Doing nothing.");break}};sh.default=RO;var oh={},Dr={};Object.defineProperty(Dr,"__esModule",{value:!0});Dr.applyMixin=Dr.ErrorWithReasonCode=void 0;class ah extends Error{constructor(e,r){super(e),this.code=r,Object.setPrototypeOf(this,ah.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}}Dr.ErrorWithReasonCode=ah;function LO(t,e,r=!1){var n;const i=[e];for(;;){const s=i[0],o=Object.getPrototypeOf(s);if(o!=null&&o.prototype)i.unshift(o);else break}for(const s of i)for(const o of Object.getOwnPropertyNames(s.prototype))(r||o!=="constructor")&&Object.defineProperty(t.prototype,o,(n=Object.getOwnPropertyDescriptor(s.prototype,o))!==null&&n!==void 0?n:Object.create(null))}Dr.applyMixin=LO;var xo={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=void 0,t.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};const e=(r,n)=>{const{messageId:i}=n,s=n.cmd;let o=null;const a=r.outgoing[i]?r.outgoing[i].cb:null;let l;if(!a){r.log("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(r.log("_handleAck :: packet type",s),s){case"pubcomp":case"puback":{const u=n.reasonCode;u&&u>0&&u!==16?(l=new Error(`Publish error: ${t.ReasonCodes[u]}`),l.code=u,r._removeOutgoingAndStoreMessage(i,()=>{a(l,n)})):r._removeOutgoingAndStoreMessage(i,a);break}case"pubrec":{o={cmd:"pubrel",qos:2,messageId:i};const u=n.reasonCode;u&&u>0&&u!==16?(l=new Error(`Publish error: ${t.ReasonCodes[u]}`),l.code=u,r._removeOutgoingAndStoreMessage(i,()=>{a(l,n)})):r._sendPacket(o);break}case"suback":{delete r.outgoing[i],r.messageIdProvider.deallocate(i);const u=n.granted;for(let c=0;c<u.length;c++)if(u[c]&128){const f=r.messageIdToTopic[i];f&&f.forEach(d=>{delete r._resubscribeTopics[d]})}delete r.messageIdToTopic[i],r._invokeStoreProcessingQueue(),a(null,n);break}case"unsuback":{delete r.outgoing[i],r.messageIdProvider.deallocate(i),r._invokeStoreProcessingQueue(),a(null);break}default:r.emit("error",new Error("unrecognized packet type"))}r.disconnecting&&Object.keys(r.outgoing).length===0&&r.emit("outgoingEmpty")};t.default=e})(xo);Object.defineProperty(oh,"__esModule",{value:!0});const Xg=Dr,NO=xo,$O=(t,e)=>{const{options:r}=t,n=r.protocolVersion,i=n===5?e.reasonCode:e.returnCode;if(n!==5){const s=new Xg.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${n}`,i);t.emit("error",s);return}t.handleAuth(e,(s,o)=>{if(s){t.emit("error",s);return}if(i===24)t.reconnecting=!1,t._sendPacket(o);else{const a=new Xg.ErrorWithReasonCode(`Connection refused: ${NO.ReasonCodes[i]}`,i);t.emit("error",a)}})};oh.default=$O;var lh={},uh={};const ys=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,kO=typeof AbortController=="function",Ja=kO?AbortController:class{constructor(){this.signal=new Vb}abort(e=new Error("This operation was aborted")){this.signal.reason=this.signal.reason||e,this.signal.aborted=!0,this.signal.dispatchEvent({type:"abort",target:this.signal})}},DO=typeof AbortSignal=="function",BO=typeof Ja.AbortSignal=="function",Vb=DO?AbortSignal:BO?Ja.AbortController:class{constructor(){this.reason=void 0,this.aborted=!1,this._listeners=[]}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,this.onabort(e),this._listeners.forEach(r=>r(e),this))}onabort(){}addEventListener(e,r){e==="abort"&&this._listeners.push(r)}removeEventListener(e,r){e==="abort"&&(this._listeners=this._listeners.filter(n=>n!==r))}},ch=new Set,hc=(t,e)=>{const r=`LRU_CACHE_OPTION_${t}`;ru(r)&&fh(r,`${t} option`,`options.${e}`,Yn)},pc=(t,e)=>{const r=`LRU_CACHE_METHOD_${t}`;if(ru(r)){const{prototype:n}=Yn,{get:i}=Object.getOwnPropertyDescriptor(n,t);fh(r,`${t} method`,`cache.${e}()`,i)}},FO=(t,e)=>{const r=`LRU_CACHE_PROPERTY_${t}`;if(ru(r)){const{prototype:n}=Yn,{get:i}=Object.getOwnPropertyDescriptor(n,t);fh(r,`${t} property`,`cache.${e}`,i)}},qb=(...t)=>{typeof _e=="object"&&_e&&typeof _e.emitWarning=="function"?_e.emitWarning(...t):console.error(...t)},ru=t=>!ch.has(t),fh=(t,e,r,n)=>{ch.add(t);const i=`The ${e} is deprecated. Please use ${r} instead.`;qb(i,"DeprecationWarning",t,n)},Zr=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),Yb=t=>Zr(t)?t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?va:null:null;class va extends Array{constructor(e){super(e),this.fill(0)}}let UO=class{constructor(e){if(e===0)return[];const r=Yb(e);this.heap=new r(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};class Yn{constructor(e={}){const{max:r=0,ttl:n,ttlResolution:i=1,ttlAutopurge:s,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:l,dispose:u,disposeAfter:c,noDisposeOnSet:f,noUpdateTTL:d,maxSize:h=0,maxEntrySize:g=0,sizeCalculation:y,fetchMethod:b,fetchContext:E,noDeleteOnFetchRejection:_,noDeleteOnStaleGet:v,allowStaleOnFetchRejection:T,allowStaleOnFetchAbort:C,ignoreFetchAbort:O}=e,{length:D,maxAge:F,stale:L}=e instanceof Yn?{}:e;if(r!==0&&!Zr(r))throw new TypeError("max option must be a nonnegative integer");const U=r?Yb(r):Array;if(!U)throw new Error("invalid max value: "+r);if(this.max=r,this.maxSize=h,this.maxEntrySize=g||this.maxSize,this.sizeCalculation=y||D,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=b||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=E,!this.fetchMethod&&E!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(r).fill(null),this.valList=new Array(r).fill(null),this.next=new U(r),this.prev=new U(r),this.head=0,this.tail=0,this.free=new UO(r),this.initialFill=1,this.size=0,typeof u=="function"&&(this.dispose=u),typeof c=="function"?(this.disposeAfter=c,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!d,this.noDeleteOnFetchRejection=!!_,this.allowStaleOnFetchRejection=!!T,this.allowStaleOnFetchAbort=!!C,this.ignoreFetchAbort=!!O,this.maxEntrySize!==0){if(this.maxSize!==0&&!Zr(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!Zr(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!l||!!L,this.noDeleteOnStaleGet=!!v,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=Zr(i)||i===0?i:1,this.ttlAutopurge=!!s,this.ttl=n||F||0,this.ttl){if(!Zr(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const k="LRU_CACHE_UNBOUNDED";ru(k)&&(ch.add(k),qb("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",k,Yn))}L&&hc("stale","allowStale"),F&&hc("maxAge","ttl"),D&&hc("length","sizeCalculation")}getRemainingTTL(e){return this.has(e,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new va(this.max),this.starts=new va(this.max),this.setItemTTL=(n,i,s=ys.now())=>{if(this.starts[n]=i!==0?s:0,this.ttls[n]=i,i!==0&&this.ttlAutopurge){const o=setTimeout(()=>{this.isStale(n)&&this.delete(this.keyList[n])},i+1);o.unref&&o.unref()}},this.updateItemAge=n=>{this.starts[n]=this.ttls[n]!==0?ys.now():0},this.statusTTL=(n,i)=>{n&&(n.ttl=this.ttls[i],n.start=this.starts[i],n.now=e||r(),n.remainingTTL=n.now+n.ttl-n.start)};let e=0;const r=()=>{const n=ys.now();if(this.ttlResolution>0){e=n;const i=setTimeout(()=>e=0,this.ttlResolution);i.unref&&i.unref()}return n};this.getRemainingTTL=n=>{const i=this.keyMap.get(n);return i===void 0?0:this.ttls[i]===0||this.starts[i]===0?1/0:this.starts[i]+this.ttls[i]-(e||r())},this.isStale=n=>this.ttls[n]!==0&&this.starts[n]!==0&&(e||r())-this.starts[n]>this.ttls[n]}updateItemAge(e){}statusTTL(e,r){}setItemTTL(e,r,n){}isStale(e){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new va(this.max),this.removeItemSize=e=>{this.calculatedSize-=this.sizes[e],this.sizes[e]=0},this.requireSize=(e,r,n,i)=>{if(this.isBackgroundFetch(r))return 0;if(!Zr(n))if(i){if(typeof i!="function")throw new TypeError("sizeCalculation must be a function");if(n=i(r,e),!Zr(n))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return n},this.addItemSize=(e,r,n)=>{if(this.sizes[e]=r,this.maxSize){const i=this.maxSize-this.sizes[e];for(;this.calculatedSize>i;)this.evict(!0)}this.calculatedSize+=this.sizes[e],n&&(n.entrySize=r,n.totalCalculatedSize=this.calculatedSize)}}removeItemSize(e){}addItemSize(e,r){}requireSize(e,r,n,i){if(n||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:e=this.allowStale}={}){if(this.size)for(let r=this.tail;!(!this.isValidIndex(r)||((e||!this.isStale(r))&&(yield r),r===this.head));)r=this.prev[r]}*rindexes({allowStale:e=this.allowStale}={}){if(this.size)for(let r=this.head;!(!this.isValidIndex(r)||((e||!this.isStale(r))&&(yield r),r===this.tail));)r=this.next[r]}isValidIndex(e){return e!==void 0&&this.keyMap.get(this.keyList[e])===e}*entries(){for(const e of this.indexes())this.valList[e]!==void 0&&this.keyList[e]!==void 0&&!this.isBackgroundFetch(this.valList[e])&&(yield[this.keyList[e],this.valList[e]])}*rentries(){for(const e of this.rindexes())this.valList[e]!==void 0&&this.keyList[e]!==void 0&&!this.isBackgroundFetch(this.valList[e])&&(yield[this.keyList[e],this.valList[e]])}*keys(){for(const e of this.indexes())this.keyList[e]!==void 0&&!this.isBackgroundFetch(this.valList[e])&&(yield this.keyList[e])}*rkeys(){for(const e of this.rindexes())this.keyList[e]!==void 0&&!this.isBackgroundFetch(this.valList[e])&&(yield this.keyList[e])}*values(){for(const e of this.indexes())this.valList[e]!==void 0&&!this.isBackgroundFetch(this.valList[e])&&(yield this.valList[e])}*rvalues(){for(const e of this.rindexes())this.valList[e]!==void 0&&!this.isBackgroundFetch(this.valList[e])&&(yield this.valList[e])}[Symbol.iterator](){return this.entries()}find(e,r){for(const n of this.indexes()){const i=this.valList[n],s=this.isBackgroundFetch(i)?i.__staleWhileFetching:i;if(s!==void 0&&e(s,this.keyList[n],this))return this.get(this.keyList[n],r)}}forEach(e,r=this){for(const n of this.indexes()){const i=this.valList[n],s=this.isBackgroundFetch(i)?i.__staleWhileFetching:i;s!==void 0&&e.call(r,s,this.keyList[n],this)}}rforEach(e,r=this){for(const n of this.rindexes()){const i=this.valList[n],s=this.isBackgroundFetch(i)?i.__staleWhileFetching:i;s!==void 0&&e.call(r,s,this.keyList[n],this)}}get prune(){return pc("prune","purgeStale"),this.purgeStale}purgeStale(){let e=!1;for(const r of this.rindexes({allowStale:!0}))this.isStale(r)&&(this.delete(this.keyList[r]),e=!0);return e}dump(){const e=[];for(const r of this.indexes({allowStale:!0})){const n=this.keyList[r],i=this.valList[r],s=this.isBackgroundFetch(i)?i.__staleWhileFetching:i;if(s===void 0)continue;const o={value:s};if(this.ttls){o.ttl=this.ttls[r];const a=ys.now()-this.starts[r];o.start=Math.floor(Date.now()-a)}this.sizes&&(o.size=this.sizes[r]),e.unshift([n,o])}return e}load(e){this.clear();for(const[r,n]of e){if(n.start){const i=Date.now()-n.start;n.start=ys.now()-i}this.set(r,n.value,n)}}dispose(e,r,n){}set(e,r,{ttl:n=this.ttl,start:i,noDisposeOnSet:s=this.noDisposeOnSet,size:o=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:l=this.noUpdateTTL,status:u}={}){if(o=this.requireSize(e,r,o,a),this.maxEntrySize&&o>this.maxEntrySize)return u&&(u.set="miss",u.maxEntrySizeExceeded=!0),this.delete(e),this;let c=this.size===0?void 0:this.keyMap.get(e);if(c===void 0)c=this.newIndex(),this.keyList[c]=e,this.valList[c]=r,this.keyMap.set(e,c),this.next[this.tail]=c,this.prev[c]=this.tail,this.tail=c,this.size++,this.addItemSize(c,o,u),u&&(u.set="add"),l=!1;else{this.moveToTail(c);const f=this.valList[c];if(r!==f){if(this.isBackgroundFetch(f)?f.__abortController.abort(new Error("replaced")):s||(this.dispose(f,e,"set"),this.disposeAfter&&this.disposed.push([f,e,"set"])),this.removeItemSize(c),this.valList[c]=r,this.addItemSize(c,o,u),u){u.set="replace";const d=f&&this.isBackgroundFetch(f)?f.__staleWhileFetching:f;d!==void 0&&(u.oldValue=d)}}else u&&(u.set="update")}if(n!==0&&this.ttl===0&&!this.ttls&&this.initializeTTLTracking(),l||this.setItemTTL(c,n,i),this.statusTTL(u,c),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const e=this.valList[this.head];return this.evict(!0),e}}evict(e){const r=this.head,n=this.keyList[r],i=this.valList[r];return this.isBackgroundFetch(i)?i.__abortController.abort(new Error("evicted")):(this.dispose(i,n,"evict"),this.disposeAfter&&this.disposed.push([i,n,"evict"])),this.removeItemSize(r),e&&(this.keyList[r]=null,this.valList[r]=null,this.free.push(r)),this.head=this.next[r],this.keyMap.delete(n),this.size--,r}has(e,{updateAgeOnHas:r=this.updateAgeOnHas,status:n}={}){const i=this.keyMap.get(e);if(i!==void 0)if(this.isStale(i))n&&(n.has="stale",this.statusTTL(n,i));else return r&&this.updateItemAge(i),n&&(n.has="hit"),this.statusTTL(n,i),!0;else n&&(n.has="miss");return!1}peek(e,{allowStale:r=this.allowStale}={}){const n=this.keyMap.get(e);if(n!==void 0&&(r||!this.isStale(n))){const i=this.valList[n];return this.isBackgroundFetch(i)?i.__staleWhileFetching:i}}backgroundFetch(e,r,n,i){const s=r===void 0?void 0:this.valList[r];if(this.isBackgroundFetch(s))return s;const o=new Ja;n.signal&&n.signal.addEventListener("abort",()=>o.abort(n.signal.reason));const a={signal:o.signal,options:n,context:i},l=(h,g=!1)=>{const{aborted:y}=o.signal,b=n.ignoreFetchAbort&&h!==void 0;return n.status&&(y&&!g?(n.status.fetchAborted=!0,n.status.fetchError=o.signal.reason,b&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),y&&!b&&!g?c(o.signal.reason):(this.valList[r]===d&&(h===void 0?d.__staleWhileFetching?this.valList[r]=d.__staleWhileFetching:this.delete(e):(n.status&&(n.status.fetchUpdated=!0),this.set(e,h,a.options))),h)},u=h=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=h),c(h)),c=h=>{const{aborted:g}=o.signal,y=g&&n.allowStaleOnFetchAbort,b=y||n.allowStaleOnFetchRejection,E=b||n.noDeleteOnFetchRejection;if(this.valList[r]===d&&(!E||d.__staleWhileFetching===void 0?this.delete(e):y||(this.valList[r]=d.__staleWhileFetching)),b)return n.status&&d.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),d.__staleWhileFetching;if(d.__returned===d)throw h},f=(h,g)=>{this.fetchMethod(e,s,a).then(y=>h(y),g),o.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(h(),n.allowStaleOnFetchAbort&&(h=y=>l(y,!0)))})};n.status&&(n.status.fetchDispatched=!0);const d=new Promise(f).then(l,u);return d.__abortController=o,d.__staleWhileFetching=s,d.__returned=null,r===void 0?(this.set(e,d,{...a.options,status:void 0}),r=this.keyMap.get(e)):this.valList[r]=d,d}isBackgroundFetch(e){return e&&typeof e=="object"&&typeof e.then=="function"&&Object.prototype.hasOwnProperty.call(e,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(e,"__returned")&&(e.__returned===e||e.__returned===null)}async fetch(e,{allowStale:r=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:c=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:f=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:h=this.allowStaleOnFetchAbort,fetchContext:g=this.fetchContext,forceRefresh:y=!1,status:b,signal:E}={}){if(!this.fetchMethod)return b&&(b.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:n,noDeleteOnStaleGet:i,status:b});const _={allowStale:r,updateAgeOnGet:n,noDeleteOnStaleGet:i,ttl:s,noDisposeOnSet:o,size:a,sizeCalculation:l,noUpdateTTL:u,noDeleteOnFetchRejection:c,allowStaleOnFetchRejection:f,allowStaleOnFetchAbort:h,ignoreFetchAbort:d,status:b,signal:E};let v=this.keyMap.get(e);if(v===void 0){b&&(b.fetch="miss");const T=this.backgroundFetch(e,v,_,g);return T.__returned=T}else{const T=this.valList[v];if(this.isBackgroundFetch(T)){const L=r&&T.__staleWhileFetching!==void 0;return b&&(b.fetch="inflight",L&&(b.returnedStale=!0)),L?T.__staleWhileFetching:T.__returned=T}const C=this.isStale(v);if(!y&&!C)return b&&(b.fetch="hit"),this.moveToTail(v),n&&this.updateItemAge(v),this.statusTTL(b,v),T;const O=this.backgroundFetch(e,v,_,g),D=O.__staleWhileFetching!==void 0,F=D&&r;return b&&(b.fetch=D&&C?"stale":"refresh",F&&C&&(b.returnedStale=!0)),F?O.__staleWhileFetching:O.__returned=O}}get(e,{allowStale:r=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,status:s}={}){const o=this.keyMap.get(e);if(o!==void 0){const a=this.valList[o],l=this.isBackgroundFetch(a);return this.statusTTL(s,o),this.isStale(o)?(s&&(s.get="stale"),l?(s&&(s.returnedStale=r&&a.__staleWhileFetching!==void 0),r?a.__staleWhileFetching:void 0):(i||this.delete(e),s&&(s.returnedStale=r),r?a:void 0)):(s&&(s.get="hit"),l?a.__staleWhileFetching:(this.moveToTail(o),n&&this.updateItemAge(o),a))}else s&&(s.get="miss")}connect(e,r){this.prev[r]=e,this.next[e]=r}moveToTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.connect(this.prev[e],this.next[e]),this.connect(this.tail,e),this.tail=e)}get del(){return pc("del","delete"),this.delete}delete(e){let r=!1;if(this.size!==0){const n=this.keyMap.get(e);if(n!==void 0)if(r=!0,this.size===1)this.clear();else{this.removeItemSize(n);const i=this.valList[n];this.isBackgroundFetch(i)?i.__abortController.abort(new Error("deleted")):(this.dispose(i,e,"delete"),this.disposeAfter&&this.disposed.push([i,e,"delete"])),this.keyMap.delete(e),this.keyList[n]=null,this.valList[n]=null,n===this.tail?this.tail=this.prev[n]:n===this.head?this.head=this.next[n]:(this.next[this.prev[n]]=this.next[n],this.prev[this.next[n]]=this.prev[n]),this.size--,this.free.push(n)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return r}clear(){for(const e of this.rindexes({allowStale:!0})){const r=this.valList[e];if(this.isBackgroundFetch(r))r.__abortController.abort(new Error("deleted"));else{const n=this.keyList[e];this.dispose(r,n,"delete"),this.disposeAfter&&this.disposed.push([r,n,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return pc("reset","clear"),this.clear}get length(){return FO("length","size"),this.size}static get AbortController(){return Ja}static get AbortSignal(){return Vb}}var jO=Yn,dh={},zO=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),nu=function(){function t(e){e===void 0&&(e=0),this.iteratorType=e}return t.prototype.equals=function(e){return this.o===e.o},t}(),iu=function(){function t(){this.M=0}return Object.defineProperty(t.prototype,"length",{get:function(){return this.M},enumerable:!1,configurable:!0}),t.prototype.size=function(){return this.M},t.prototype.empty=function(){return this.M===0},t}(),hh=function(t){zO(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(iu),HO=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),WO=function(t){HO(e,t);function e(r){r===void 0&&(r=[]);var n=t.call(this)||this;n.nt=[];var i=n;return r.forEach(function(s){i.push(s)}),n}return e.prototype.clear=function(){this.M=0,this.nt=[]},e.prototype.push=function(r){return this.nt.push(r),this.M+=1,this.M},e.prototype.pop=function(){if(this.M!==0)return this.M-=1,this.nt.pop()},e.prototype.top=function(){return this.nt[this.M-1]},e}(iu);const VO=WO;var qO=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),YO=function(t){qO(e,t);function e(r){r===void 0&&(r=[]);var n=t.call(this)||this;n.A=0,n.tt=[];var i=n;return r.forEach(function(s){i.push(s)}),n}return e.prototype.clear=function(){this.tt=[],this.M=this.A=0},e.prototype.push=function(r){var n=this.tt.length;if(this.A/n>.5&&this.A+this.M>=n&&n>4096){for(var i=this.M,s=0;s<i;++s)this.tt[s]=this.tt[this.A+s];this.A=0,this.tt[this.M]=r}else this.tt[this.A+this.M]=r;return++this.M},e.prototype.pop=function(){if(this.M!==0){var r=this.tt[this.A++];return this.M-=1,r}},e.prototype.front=function(){if(this.M!==0)return this.tt[this.A]},e}(iu);const KO=YO;var GO=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),Qg=globalThis&&globalThis.q||function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},Jg=globalThis&&globalThis.D||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},XO=function(t){GO(e,t);function e(r,n,i){r===void 0&&(r=[]),n===void 0&&(n=function(u,c){return u>c?-1:u<c?1:0}),i===void 0&&(i=!0);var s=t.call(this)||this;if(s.$=n,Array.isArray(r))s.ii=i?Jg([],Qg(r),!1):r;else{s.ii=[];var o=s;r.forEach(function(u){o.ii.push(u)})}s.M=s.ii.length;for(var a=s.M>>1,l=s.M-1>>1;l>=0;--l)s.ri(l,a);return s}return e.prototype.ti=function(r){for(var n=this.ii[r];r>0;){var i=r-1>>1,s=this.ii[i];if(this.$(s,n)<=0)break;this.ii[r]=s,r=i}this.ii[r]=n},e.prototype.ri=function(r,n){for(var i=this.ii[r];r<n;){var s=r<<1|1,o=s+1,a=this.ii[s];if(o<this.M&&this.$(a,this.ii[o])>0&&(s=o,a=this.ii[o]),this.$(a,i)>=0)break;this.ii[r]=a,r=s}this.ii[r]=i},e.prototype.clear=function(){this.M=0,this.ii.length=0},e.prototype.push=function(r){this.ii.push(r),this.ti(this.M),this.M+=1},e.prototype.pop=function(){if(this.M!==0){var r=this.ii[0],n=this.ii.pop();return this.M-=1,this.M&&(this.ii[0]=n,this.ri(0,this.M>>1)),r}},e.prototype.top=function(){return this.ii[0]},e.prototype.find=function(r){return this.ii.indexOf(r)>=0},e.prototype.remove=function(r){var n=this.ii.indexOf(r);return n<0?!1:(n===0?this.pop():n===this.M-1?(this.ii.pop(),this.M-=1):(this.ii.splice(n,1,this.ii.pop()),this.M-=1,this.ti(n),this.ri(n,this.M>>1)),!0)},e.prototype.updateItem=function(r){var n=this.ii.indexOf(r);return n<0?!1:(this.ti(n),this.ri(n,this.M>>1),!0)},e.prototype.toArray=function(){return Jg([],Qg(this.ii),!1)},e}(iu);const QO=XO;var JO=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),ZO=function(t){JO(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(hh);const ph=ZO;function De(){throw new RangeError("Iterator access denied!")}var eP=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),Kb=function(t){eP(e,t);function e(r,n){var i=t.call(this,n)||this;return i.o=r,i.iteratorType===0?(i.pre=function(){return this.o===0&&De(),this.o-=1,this},i.next=function(){return this.o===this.container.size()&&De(),this.o+=1,this}):(i.pre=function(){return this.o===this.container.size()-1&&De(),this.o+=1,this},i.next=function(){return this.o===-1&&De(),this.o-=1,this}),i}return Object.defineProperty(e.prototype,"pointer",{get:function(){return this.container.getElementByPos(this.o)},set:function(r){this.container.setElementByPos(this.o,r)},enumerable:!1,configurable:!0}),e}(nu),Gb=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),tP=globalThis&&globalThis.i||function(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(c){return l([u,c])}}function l(u){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){r.label=u[1];break}if(u[0]===6&&r.label<s[1]){r.label=s[1],s=u;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(u);break}s[2]&&r.ops.pop(),r.trys.pop();continue}u=e.call(t,r)}catch(c){u=[6,c],i=0}finally{n=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},Zg=globalThis&&globalThis.q||function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},em=globalThis&&globalThis.D||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},rP=globalThis&&globalThis.V||function(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},ws=function(t){Gb(e,t);function e(r,n,i){var s=t.call(this,r,i)||this;return s.container=n,s}return e.prototype.copy=function(){return new e(this.o,this.container,this.iteratorType)},e}(Kb),nP=function(t){Gb(e,t);function e(r,n){r===void 0&&(r=[]),n===void 0&&(n=!0);var i=t.call(this)||this;if(Array.isArray(r))i.J=n?em([],Zg(r),!1):r,i.M=r.length;else{i.J=[];var s=i;r.forEach(function(o){s.pushBack(o)})}return i}return e.prototype.clear=function(){this.M=0,this.J.length=0},e.prototype.begin=function(){return new ws(0,this)},e.prototype.end=function(){return new ws(this.M,this)},e.prototype.rBegin=function(){return new ws(this.M-1,this,1)},e.prototype.rEnd=function(){return new ws(-1,this,1)},e.prototype.front=function(){return this.J[0]},e.prototype.back=function(){return this.J[this.M-1]},e.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;return this.J[r]},e.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;return this.J.splice(r,1),this.M-=1,this.M},e.prototype.eraseElementByValue=function(r){for(var n=0,i=0;i<this.M;++i)this.J[i]!==r&&(this.J[n++]=this.J[i]);return this.M=this.J.length=n,this.M},e.prototype.eraseElementByIterator=function(r){var n=r.o;return r=r.next(),this.eraseElementByPos(n),r},e.prototype.pushBack=function(r){return this.J.push(r),this.M+=1,this.M},e.prototype.popBack=function(){if(this.M!==0)return this.M-=1,this.J.pop()},e.prototype.setElementByPos=function(r,n){if(r<0||r>this.M-1)throw new RangeError;this.J[r]=n},e.prototype.insert=function(r,n,i){var s;if(i===void 0&&(i=1),r<0||r>this.M)throw new RangeError;return(s=this.J).splice.apply(s,em([r,0],Zg(new Array(i).fill(n)),!1)),this.M+=i,this.M},e.prototype.find=function(r){for(var n=0;n<this.M;++n)if(this.J[n]===r)return new ws(n,this);return this.end()},e.prototype.reverse=function(){this.J.reverse()},e.prototype.unique=function(){for(var r=1,n=1;n<this.M;++n)this.J[n]!==this.J[n-1]&&(this.J[r++]=this.J[n]);return this.M=this.J.length=r,this.M},e.prototype.sort=function(r){this.J.sort(r)},e.prototype.forEach=function(r){for(var n=0;n<this.M;++n)r(this.J[n],n,this)},e.prototype[Symbol.iterator]=function(){return(function(){return tP(this,function(r){switch(r.label){case 0:return[5,rP(this.J)];case 1:return r.sent(),[2]}})}).bind(this)()},e}(ph);const iP=nP;var Xb=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),sP=globalThis&&globalThis.i||function(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(c){return l([u,c])}}function l(u){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){r.label=u[1];break}if(u[0]===6&&r.label<s[1]){r.label=s[1],s=u;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(u);break}s[2]&&r.ops.pop(),r.trys.pop();continue}u=e.call(t,r)}catch(c){u=[6,c],i=0}finally{n=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},bs=function(t){Xb(e,t);function e(r,n,i,s){var o=t.call(this,s)||this;return o.o=r,o.h=n,o.container=i,o.iteratorType===0?(o.pre=function(){return this.o.L===this.h&&De(),this.o=this.o.L,this},o.next=function(){return this.o===this.h&&De(),this.o=this.o.m,this}):(o.pre=function(){return this.o.m===this.h&&De(),this.o=this.o.m,this},o.next=function(){return this.o===this.h&&De(),this.o=this.o.L,this}),o}return Object.defineProperty(e.prototype,"pointer",{get:function(){return this.o===this.h&&De(),this.o.p},set:function(r){this.o===this.h&&De(),this.o.p=r},enumerable:!1,configurable:!0}),e.prototype.copy=function(){return new e(this.o,this.h,this.container,this.iteratorType)},e}(nu),oP=function(t){Xb(e,t);function e(r){r===void 0&&(r=[]);var n=t.call(this)||this;n.h={},n.H=n.l=n.h.L=n.h.m=n.h;var i=n;return r.forEach(function(s){i.pushBack(s)}),n}return e.prototype.G=function(r){var n=r.L,i=r.m;n.m=i,i.L=n,r===this.H&&(this.H=i),r===this.l&&(this.l=n),this.M-=1},e.prototype.F=function(r,n){var i=n.m,s={p:r,L:n,m:i};n.m=s,i.L=s,n===this.h&&(this.H=s),i===this.h&&(this.l=s),this.M+=1},e.prototype.clear=function(){this.M=0,this.H=this.l=this.h.L=this.h.m=this.h},e.prototype.begin=function(){return new bs(this.H,this.h,this)},e.prototype.end=function(){return new bs(this.h,this.h,this)},e.prototype.rBegin=function(){return new bs(this.l,this.h,this,1)},e.prototype.rEnd=function(){return new bs(this.h,this.h,this,1)},e.prototype.front=function(){return this.H.p},e.prototype.back=function(){return this.l.p},e.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var n=this.H;r--;)n=n.m;return n.p},e.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var n=this.H;r--;)n=n.m;return this.G(n),this.M},e.prototype.eraseElementByValue=function(r){for(var n=this.H;n!==this.h;)n.p===r&&this.G(n),n=n.m;return this.M},e.prototype.eraseElementByIterator=function(r){var n=r.o;return n===this.h&&De(),r=r.next(),this.G(n),r},e.prototype.pushBack=function(r){return this.F(r,this.l),this.M},e.prototype.popBack=function(){if(this.M!==0){var r=this.l.p;return this.G(this.l),r}},e.prototype.pushFront=function(r){return this.F(r,this.h),this.M},e.prototype.popFront=function(){if(this.M!==0){var r=this.H.p;return this.G(this.H),r}},e.prototype.setElementByPos=function(r,n){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;i.p=n},e.prototype.insert=function(r,n,i){if(i===void 0&&(i=1),r<0||r>this.M)throw new RangeError;if(i<=0)return this.M;if(r===0)for(;i--;)this.pushFront(n);else if(r===this.M)for(;i--;)this.pushBack(n);else{for(var s=this.H,o=1;o<r;++o)s=s.m;var a=s.m;for(this.M+=i;i--;)s.m={p:n,L:s},s.m.L=s,s=s.m;s.m=a,a.L=s}return this.M},e.prototype.find=function(r){for(var n=this.H;n!==this.h;){if(n.p===r)return new bs(n,this.h,this);n=n.m}return this.end()},e.prototype.reverse=function(){if(!(this.M<=1))for(var r=this.H,n=this.l,i=0;i<<1<this.M;){var s=r.p;r.p=n.p,n.p=s,r=r.m,n=n.L,i+=1}},e.prototype.unique=function(){if(this.M<=1)return this.M;for(var r=this.H;r!==this.h;){for(var n=r;n.m!==this.h&&n.p===n.m.p;)n=n.m,this.M-=1;r.m=n.m,r.m.L=r,r=r.m}return this.M},e.prototype.sort=function(r){if(!(this.M<=1)){var n=[];this.forEach(function(s){n.push(s)}),n.sort(r);var i=this.H;n.forEach(function(s){i.p=s,i=i.m})}},e.prototype.merge=function(r){var n=this;if(this.M===0)r.forEach(function(s){n.pushBack(s)});else{var i=this.H;r.forEach(function(s){for(;i!==n.h&&i.p<=s;)i=i.m;n.F(s,i.L)})}return this.M},e.prototype.forEach=function(r){for(var n=this.H,i=0;n!==this.h;)r(n.p,i++,this),n=n.m},e.prototype[Symbol.iterator]=function(){return(function(){var r;return sP(this,function(n){switch(n.label){case 0:if(this.M===0)return[2];r=this.H,n.label=1;case 1:return r===this.h?[3,3]:[4,r.p];case 2:return n.sent(),r=r.m,[3,1];case 3:return[2]}})}).bind(this)()},e}(ph);const aP=oP;var Qb=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),lP=globalThis&&globalThis.i||function(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(c){return l([u,c])}}function l(u){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){r.label=u[1];break}if(u[0]===6&&r.label<s[1]){r.label=s[1],s=u;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(u);break}s[2]&&r.ops.pop(),r.trys.pop();continue}u=e.call(t,r)}catch(c){u=[6,c],i=0}finally{n=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},uP=globalThis&&globalThis.q||function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},cP=globalThis&&globalThis.D||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},_s=function(t){Qb(e,t);function e(r,n,i){var s=t.call(this,r,i)||this;return s.container=n,s}return e.prototype.copy=function(){return new e(this.o,this.container,this.iteratorType)},e}(Kb),fP=function(t){Qb(e,t);function e(r,n){r===void 0&&(r=[]),n===void 0&&(n=4096);var i=t.call(this)||this;i.A=0,i.S=0,i.R=0,i.k=0,i.C=0,i.j=[];var s=function(){if(typeof r.length=="number")return r.length;if(typeof r.size=="number")return r.size;if(typeof r.size=="function")return r.size();throw new TypeError("Cannot get the length or size of the container")}();i.B=n,i.C=Math.max(Math.ceil(s/i.B),1);for(var o=0;o<i.C;++o)i.j.push(new Array(i.B));var a=Math.ceil(s/i.B);i.A=i.R=(i.C>>1)-(a>>1),i.S=i.k=i.B-s%i.B>>1;var l=i;return r.forEach(function(u){l.pushBack(u)}),i}return e.prototype.O=function(){for(var r=[],n=Math.max(this.C>>1,1),i=0;i<n;++i)r[i]=new Array(this.B);for(var i=this.A;i<this.C;++i)r[r.length]=this.j[i];for(var i=0;i<this.R;++i)r[r.length]=this.j[i];r[r.length]=cP([],uP(this.j[this.R]),!1),this.A=n,this.R=r.length-1;for(var i=0;i<n;++i)r[r.length]=new Array(this.B);this.j=r,this.C=r.length},e.prototype.T=function(r){var n=this.S+r+1,i=n%this.B,s=i-1,o=this.A+(n-i)/this.B;return i===0&&(o-=1),o%=this.C,s<0&&(s+=this.B),{curNodeBucketIndex:o,curNodePointerIndex:s}},e.prototype.clear=function(){this.j=[new Array(this.B)],this.C=1,this.A=this.R=this.M=0,this.S=this.k=this.B>>1},e.prototype.begin=function(){return new _s(0,this)},e.prototype.end=function(){return new _s(this.M,this)},e.prototype.rBegin=function(){return new _s(this.M-1,this,1)},e.prototype.rEnd=function(){return new _s(-1,this,1)},e.prototype.front=function(){if(this.M!==0)return this.j[this.A][this.S]},e.prototype.back=function(){if(this.M!==0)return this.j[this.R][this.k]},e.prototype.pushBack=function(r){return this.M&&(this.k<this.B-1?this.k+=1:this.R<this.C-1?(this.R+=1,this.k=0):(this.R=0,this.k=0),this.R===this.A&&this.k===this.S&&this.O()),this.M+=1,this.j[this.R][this.k]=r,this.M},e.prototype.popBack=function(){if(this.M!==0){var r=this.j[this.R][this.k];return this.M!==1&&(this.k>0?this.k-=1:this.R>0?(this.R-=1,this.k=this.B-1):(this.R=this.C-1,this.k=this.B-1)),this.M-=1,r}},e.prototype.pushFront=function(r){return this.M&&(this.S>0?this.S-=1:this.A>0?(this.A-=1,this.S=this.B-1):(this.A=this.C-1,this.S=this.B-1),this.A===this.R&&this.S===this.k&&this.O()),this.M+=1,this.j[this.A][this.S]=r,this.M},e.prototype.popFront=function(){if(this.M!==0){var r=this.j[this.A][this.S];return this.M!==1&&(this.S<this.B-1?this.S+=1:this.A<this.C-1?(this.A+=1,this.S=0):(this.A=0,this.S=0)),this.M-=1,r}},e.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;var n=this.T(r),i=n.curNodeBucketIndex,s=n.curNodePointerIndex;return this.j[i][s]},e.prototype.setElementByPos=function(r,n){if(r<0||r>this.M-1)throw new RangeError;var i=this.T(r),s=i.curNodeBucketIndex,o=i.curNodePointerIndex;this.j[s][o]=n},e.prototype.insert=function(r,n,i){if(i===void 0&&(i=1),r<0||r>this.M)throw new RangeError;if(r===0)for(;i--;)this.pushFront(n);else if(r===this.M)for(;i--;)this.pushBack(n);else{for(var s=[],o=r;o<this.M;++o)s.push(this.getElementByPos(o));this.cut(r-1);for(var o=0;o<i;++o)this.pushBack(n);for(var o=0;o<s.length;++o)this.pushBack(s[o])}return this.M},e.prototype.cut=function(r){if(r<0)return this.clear(),0;var n=this.T(r),i=n.curNodeBucketIndex,s=n.curNodePointerIndex;return this.R=i,this.k=s,this.M=r+1,this.M},e.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;if(r===0)this.popFront();else if(r===this.M-1)this.popBack();else{for(var n=[],i=r+1;i<this.M;++i)n.push(this.getElementByPos(i));this.cut(r),this.popBack();var s=this;n.forEach(function(o){s.pushBack(o)})}return this.M},e.prototype.eraseElementByValue=function(r){if(this.M===0)return 0;for(var n=[],i=0;i<this.M;++i){var s=this.getElementByPos(i);s!==r&&n.push(s)}for(var o=n.length,i=0;i<o;++i)this.setElementByPos(i,n[i]);return this.cut(o-1)},e.prototype.eraseElementByIterator=function(r){var n=r.o;return this.eraseElementByPos(n),r=r.next(),r},e.prototype.find=function(r){for(var n=0;n<this.M;++n)if(this.getElementByPos(n)===r)return new _s(n,this);return this.end()},e.prototype.reverse=function(){for(var r=0,n=this.M-1;r<n;){var i=this.getElementByPos(r);this.setElementByPos(r,this.getElementByPos(n)),this.setElementByPos(n,i),r+=1,n-=1}},e.prototype.unique=function(){if(this.M<=1)return this.M;for(var r=1,n=this.getElementByPos(0),i=1;i<this.M;++i){var s=this.getElementByPos(i);s!==n&&(n=s,this.setElementByPos(r++,s))}for(;this.M>r;)this.popBack();return this.M},e.prototype.sort=function(r){for(var n=[],i=0;i<this.M;++i)n.push(this.getElementByPos(i));n.sort(r);for(var i=0;i<this.M;++i)this.setElementByPos(i,n[i])},e.prototype.shrinkToFit=function(){if(this.M!==0){var r=[];this.forEach(function(i){r.push(i)}),this.C=Math.max(Math.ceil(this.M/this.B),1),this.M=this.A=this.R=this.S=this.k=0,this.j=[];for(var n=0;n<this.C;++n)this.j.push(new Array(this.B));for(var n=0;n<r.length;++n)this.pushBack(r[n])}},e.prototype.forEach=function(r){for(var n=0;n<this.M;++n)r(this.getElementByPos(n),n,this)},e.prototype[Symbol.iterator]=function(){return(function(){var r;return lP(this,function(n){switch(n.label){case 0:r=0,n.label=1;case 1:return r<this.M?[4,this.getElementByPos(r)]:[3,4];case 2:n.sent(),n.label=3;case 3:return++r,[3,1];case 4:return[2]}})}).bind(this)()},e}(ph);const dP=fP;var hP=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),Jb=function(){function t(e,r){this.ee=1,this.u=void 0,this.p=void 0,this.K=void 0,this.N=void 0,this.rr=void 0,this.u=e,this.p=r}return t.prototype.L=function(){var e=this;if(e.ee===1&&e.rr.rr===e)e=e.N;else if(e.K)for(e=e.K;e.N;)e=e.N;else{for(var r=e.rr;r.K===e;)e=r,r=e.rr;e=r}return e},t.prototype.m=function(){var e=this;if(e.N){for(e=e.N;e.K;)e=e.K;return e}else{for(var r=e.rr;r.N===e;)e=r,r=e.rr;return e.N!==r?r:e}},t.prototype.ne=function(){var e=this.rr,r=this.N,n=r.K;return e.rr===this?e.rr=r:e.K===this?e.K=r:e.N=r,r.rr=e,r.K=this,this.rr=r,this.N=n,n&&(n.rr=this),r},t.prototype.te=function(){var e=this.rr,r=this.K,n=r.N;return e.rr===this?e.rr=r:e.K===this?e.K=r:e.N=r,r.rr=e,r.N=this,this.rr=r,this.K=n,n&&(n.rr=this),r},t}(),pP=function(t){hP(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.tr=1,r}return e.prototype.ne=function(){var r=t.prototype.ne.call(this);return this.ie(),r.ie(),r},e.prototype.te=function(){var r=t.prototype.te.call(this);return this.ie(),r.ie(),r},e.prototype.ie=function(){this.tr=1,this.K&&(this.tr+=this.K.tr),this.N&&(this.tr+=this.N.tr)},e}(Jb),gP=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),tm=globalThis&&globalThis.q||function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},rm=globalThis&&globalThis.V||function(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},mP=function(t){gP(e,t);function e(r,n){r===void 0&&(r=function(s,o){return s<o?-1:s>o?1:0}),n===void 0&&(n=!1);var i=t.call(this)||this;return i.W=void 0,i.$=r,n?(i.re=pP,i.v=function(s,o,a){var l=this.se(s,o,a);if(l){for(var u=l.rr;u!==this.h;)u.tr+=1,u=u.rr;var c=this.fe(l);if(c){var f=c,d=f.parentNode,h=f.grandParent,g=f.curNode;d.ie(),h.ie(),g.ie()}}return this.M},i.G=function(s){for(var o=this.he(s);o!==this.h;)o.tr-=1,o=o.rr}):(i.re=Jb,i.v=function(s,o,a){var l=this.se(s,o,a);return l&&this.fe(l),this.M},i.G=i.he),i.h=new i.re,i}return e.prototype.U=function(r,n){for(var i=this.h;r;){var s=this.$(r.u,n);if(s<0)r=r.N;else if(s>0)i=r,r=r.K;else return r}return i},e.prototype.X=function(r,n){for(var i=this.h;r;){var s=this.$(r.u,n);s<=0?r=r.N:(i=r,r=r.K)}return i},e.prototype.Y=function(r,n){for(var i=this.h;r;){var s=this.$(r.u,n);if(s<0)i=r,r=r.N;else if(s>0)r=r.K;else return r}return i},e.prototype.Z=function(r,n){for(var i=this.h;r;){var s=this.$(r.u,n);s<0?(i=r,r=r.N):r=r.K}return i},e.prototype.ue=function(r){for(;;){var n=r.rr;if(n===this.h)return;if(r.ee===1){r.ee=0;return}if(r===n.K){var i=n.N;if(i.ee===1)i.ee=0,n.ee=1,n===this.W?this.W=n.ne():n.ne();else if(i.N&&i.N.ee===1){i.ee=n.ee,n.ee=0,i.N.ee=0,n===this.W?this.W=n.ne():n.ne();return}else i.K&&i.K.ee===1?(i.ee=1,i.K.ee=0,i.te()):(i.ee=1,r=n)}else{var i=n.K;if(i.ee===1)i.ee=0,n.ee=1,n===this.W?this.W=n.te():n.te();else if(i.K&&i.K.ee===1){i.ee=n.ee,n.ee=0,i.K.ee=0,n===this.W?this.W=n.te():n.te();return}else i.N&&i.N.ee===1?(i.ee=1,i.N.ee=0,i.ne()):(i.ee=1,r=n)}}},e.prototype.he=function(r){var n,i;if(this.M===1)return this.clear(),this.h;for(var s=r;s.K||s.N;){if(s.N)for(s=s.N;s.K;)s=s.K;else s=s.K;n=tm([s.u,r.u],2),r.u=n[0],s.u=n[1],i=tm([s.p,r.p],2),r.p=i[0],s.p=i[1],r=s}this.h.K===s?this.h.K=s.rr:this.h.N===s&&(this.h.N=s.rr),this.ue(s);var o=s.rr;return s===o.K?o.K=void 0:o.N=void 0,this.M-=1,this.W.ee=0,o},e.prototype.ae=function(r,n){if(r===void 0)return!1;var i=this.ae(r.K,n);return i||n(r)?!0:this.ae(r.N,n)},e.prototype.fe=function(r){for(;;){var n=r.rr;if(n.ee===0)return;var i=n.rr;if(n===i.K){var s=i.N;if(s&&s.ee===1){if(s.ee=n.ee=0,i===this.W)return;i.ee=1,r=i;continue}else if(r===n.N){if(r.ee=0,r.K&&(r.K.rr=n),r.N&&(r.N.rr=i),n.N=r.K,i.K=r.N,r.K=n,r.N=i,i===this.W)this.W=r,this.h.rr=r;else{var o=i.rr;o.K===i?o.K=r:o.N=r}return r.rr=i.rr,n.rr=r,i.rr=r,i.ee=1,{parentNode:n,grandParent:i,curNode:r}}else n.ee=0,i===this.W?this.W=i.te():i.te(),i.ee=1}else{var s=i.K;if(s&&s.ee===1){if(s.ee=n.ee=0,i===this.W)return;i.ee=1,r=i;continue}else if(r===n.K){if(r.ee=0,r.K&&(r.K.rr=i),r.N&&(r.N.rr=n),i.N=r.K,n.K=r.N,r.K=i,r.N=n,i===this.W)this.W=r,this.h.rr=r;else{var o=i.rr;o.K===i?o.K=r:o.N=r}return r.rr=i.rr,n.rr=r,i.rr=r,i.ee=1,{parentNode:n,grandParent:i,curNode:r}}else n.ee=0,i===this.W?this.W=i.ne():i.ne(),i.ee=1}return}},e.prototype.se=function(r,n,i){if(this.W===void 0){this.M+=1,this.W=new this.re(r,n),this.W.ee=0,this.W.rr=this.h,this.h.rr=this.W,this.h.K=this.W,this.h.N=this.W;return}var s,o=this.h.K,a=this.$(o.u,r);if(a===0){o.p=n;return}else if(a>0)o.K=new this.re(r,n),o.K.rr=o,s=o.K,this.h.K=s;else{var l=this.h.N,u=this.$(l.u,r);if(u===0){l.p=n;return}else if(u<0)l.N=new this.re(r,n),l.N.rr=l,s=l.N,this.h.N=s;else{if(i!==void 0){var c=i.o;if(c!==this.h){var f=this.$(c.u,r);if(f===0){c.p=n;return}else if(f>0){var d=c.L(),h=this.$(d.u,r);if(h===0){d.p=n;return}else h<0&&(s=new this.re(r,n),d.N===void 0?(d.N=s,s.rr=d):(c.K=s,s.rr=c))}}}if(s===void 0)for(s=this.W;;){var g=this.$(s.u,r);if(g>0){if(s.K===void 0){s.K=new this.re(r,n),s.K.rr=s,s=s.K;break}s=s.K}else if(g<0){if(s.N===void 0){s.N=new this.re(r,n),s.N.rr=s,s=s.N;break}s=s.N}else{s.p=n;return}}}}return this.M+=1,s},e.prototype.g=function(r,n){for(;r;){var i=this.$(r.u,n);if(i<0)r=r.N;else if(i>0)r=r.K;else return r}return r||this.h},e.prototype.clear=function(){this.M=0,this.W=void 0,this.h.rr=void 0,this.h.K=this.h.N=void 0},e.prototype.updateKeyByIterator=function(r,n){var i=r.o;if(i===this.h&&De(),this.M===1)return i.u=n,!0;if(i===this.h.K)return this.$(i.m().u,n)>0?(i.u=n,!0):!1;if(i===this.h.N)return this.$(i.L().u,n)<0?(i.u=n,!0):!1;var s=i.L().u;if(this.$(s,n)>=0)return!1;var o=i.m().u;return this.$(o,n)<=0?!1:(i.u=n,!0)},e.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;var n=0,i=this;return this.ae(this.W,function(s){return r===n?(i.G(s),!0):(n+=1,!1)}),this.M},e.prototype.eraseElementByKey=function(r){if(this.M===0)return!1;var n=this.g(this.W,r);return n===this.h?!1:(this.G(n),!0)},e.prototype.eraseElementByIterator=function(r){var n=r.o;n===this.h&&De();var i=n.N===void 0,s=r.iteratorType===0;return s?i&&r.next():(!i||n.K===void 0)&&r.next(),this.G(n),r},e.prototype.forEach=function(r){var n,i,s=0;try{for(var o=rm(this),a=o.next();!a.done;a=o.next()){var l=a.value;r(l,s++,this)}}catch(u){n={error:u}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}},e.prototype.getElementByPos=function(r){var n,i;if(r<0||r>this.M-1)throw new RangeError;var s,o=0;try{for(var a=rm(this),l=a.next();!l.done;l=a.next()){var u=l.value;if(o===r){s=u;break}o+=1}}catch(c){n={error:c}}finally{try{l&&!l.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return s},e.prototype.getHeight=function(){if(this.M===0)return 0;var r=function(n){return n?Math.max(r(n.K),r(n.N))+1:0};return r(this.W)},e}(hh);const Zb=mP;var yP=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),wP=function(t){yP(e,t);function e(r,n,i){var s=t.call(this,i)||this;return s.o=r,s.h=n,s.iteratorType===0?(s.pre=function(){return this.o===this.h.K&&De(),this.o=this.o.L(),this},s.next=function(){return this.o===this.h&&De(),this.o=this.o.m(),this}):(s.pre=function(){return this.o===this.h.N&&De(),this.o=this.o.m(),this},s.next=function(){return this.o===this.h&&De(),this.o=this.o.L(),this}),s}return Object.defineProperty(e.prototype,"index",{get:function(){var r=this.o,n=this.h.rr;if(r===this.h)return n?n.tr-1:0;var i=0;for(r.K&&(i+=r.K.tr);r!==n;){var s=r.rr;r===s.N&&(i+=1,s.K&&(i+=s.K.tr)),r=s}return i},enumerable:!1,configurable:!0}),e}(nu);const e_=wP;var t_=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),bP=globalThis&&globalThis.i||function(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(c){return l([u,c])}}function l(u){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){r.label=u[1];break}if(u[0]===6&&r.label<s[1]){r.label=s[1],s=u;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(u);break}s[2]&&r.ops.pop(),r.trys.pop();continue}u=e.call(t,r)}catch(c){u=[6,c],i=0}finally{n=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},nm=globalThis&&globalThis.V||function(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},vr=function(t){t_(e,t);function e(r,n,i,s){var o=t.call(this,r,n,s)||this;return o.container=i,o}return Object.defineProperty(e.prototype,"pointer",{get:function(){return this.o===this.h&&De(),this.o.u},enumerable:!1,configurable:!0}),e.prototype.copy=function(){return new e(this.o,this.h,this.container,this.iteratorType)},e}(e_),_P=function(t){t_(e,t);function e(r,n,i){r===void 0&&(r=[]);var s=t.call(this,n,i)||this,o=s;return r.forEach(function(a){o.insert(a)}),s}return e.prototype.P=function(r){return bP(this,function(n){switch(n.label){case 0:return r===void 0?[2]:[5,nm(this.P(r.K))];case 1:return n.sent(),[4,r.u];case 2:return n.sent(),[5,nm(this.P(r.N))];case 3:return n.sent(),[2]}})},e.prototype.begin=function(){return new vr(this.h.K||this.h,this.h,this)},e.prototype.end=function(){return new vr(this.h,this.h,this)},e.prototype.rBegin=function(){return new vr(this.h.N||this.h,this.h,this,1)},e.prototype.rEnd=function(){return new vr(this.h,this.h,this,1)},e.prototype.front=function(){return this.h.K?this.h.K.u:void 0},e.prototype.back=function(){return this.h.N?this.h.N.u:void 0},e.prototype.insert=function(r,n){return this.v(r,void 0,n)},e.prototype.find=function(r){var n=this.g(this.W,r);return new vr(n,this.h,this)},e.prototype.lowerBound=function(r){var n=this.U(this.W,r);return new vr(n,this.h,this)},e.prototype.upperBound=function(r){var n=this.X(this.W,r);return new vr(n,this.h,this)},e.prototype.reverseLowerBound=function(r){var n=this.Y(this.W,r);return new vr(n,this.h,this)},e.prototype.reverseUpperBound=function(r){var n=this.Z(this.W,r);return new vr(n,this.h,this)},e.prototype.union=function(r){var n=this;return r.forEach(function(i){n.insert(i)}),this.M},e.prototype[Symbol.iterator]=function(){return this.P(this.W)},e}(Zb);const vP=_P;var r_=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),EP=globalThis&&globalThis.i||function(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(c){return l([u,c])}}function l(u){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){r.label=u[1];break}if(u[0]===6&&r.label<s[1]){r.label=s[1],s=u;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(u);break}s[2]&&r.ops.pop(),r.trys.pop();continue}u=e.call(t,r)}catch(c){u=[6,c],i=0}finally{n=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},im=globalThis&&globalThis.V||function(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},Er=function(t){r_(e,t);function e(r,n,i,s){var o=t.call(this,r,n,s)||this;return o.container=i,o}return Object.defineProperty(e.prototype,"pointer",{get:function(){this.o===this.h&&De();var r=this;return new Proxy([],{get:function(n,i){if(i==="0")return r.o.u;if(i==="1")return r.o.p},set:function(n,i,s){if(i!=="1")throw new TypeError("props must be 1");return r.o.p=s,!0}})},enumerable:!1,configurable:!0}),e.prototype.copy=function(){return new e(this.o,this.h,this.container,this.iteratorType)},e}(e_),SP=function(t){r_(e,t);function e(r,n,i){r===void 0&&(r=[]);var s=t.call(this,n,i)||this,o=s;return r.forEach(function(a){o.setElement(a[0],a[1])}),s}return e.prototype.P=function(r){return EP(this,function(n){switch(n.label){case 0:return r===void 0?[2]:[5,im(this.P(r.K))];case 1:return n.sent(),[4,[r.u,r.p]];case 2:return n.sent(),[5,im(this.P(r.N))];case 3:return n.sent(),[2]}})},e.prototype.begin=function(){return new Er(this.h.K||this.h,this.h,this)},e.prototype.end=function(){return new Er(this.h,this.h,this)},e.prototype.rBegin=function(){return new Er(this.h.N||this.h,this.h,this,1)},e.prototype.rEnd=function(){return new Er(this.h,this.h,this,1)},e.prototype.front=function(){if(this.M!==0){var r=this.h.K;return[r.u,r.p]}},e.prototype.back=function(){if(this.M!==0){var r=this.h.N;return[r.u,r.p]}},e.prototype.lowerBound=function(r){var n=this.U(this.W,r);return new Er(n,this.h,this)},e.prototype.upperBound=function(r){var n=this.X(this.W,r);return new Er(n,this.h,this)},e.prototype.reverseLowerBound=function(r){var n=this.Y(this.W,r);return new Er(n,this.h,this)},e.prototype.reverseUpperBound=function(r){var n=this.Z(this.W,r);return new Er(n,this.h,this)},e.prototype.setElement=function(r,n,i){return this.v(r,n,i)},e.prototype.find=function(r){var n=this.g(this.W,r);return new Er(n,this.h,this)},e.prototype.getElementByKey=function(r){var n=this.g(this.W,r);return n.p},e.prototype.union=function(r){var n=this;return r.forEach(function(i){n.setElement(i[0],i[1])}),this.M},e.prototype[Symbol.iterator]=function(){return this.P(this.W)},e}(Zb);const xP=SP;function Ea(t){var e=typeof t;return e==="object"&&t!==null||e==="function"}var n_=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),i_=function(t){n_(e,t);function e(r,n,i){var s=t.call(this,i)||this;return s.o=r,s.h=n,s.iteratorType===0?(s.pre=function(){return this.o.L===this.h&&De(),this.o=this.o.L,this},s.next=function(){return this.o===this.h&&De(),this.o=this.o.m,this}):(s.pre=function(){return this.o.m===this.h&&De(),this.o=this.o.m,this},s.next=function(){return this.o===this.h&&De(),this.o=this.o.L,this}),s}return e}(nu),s_=function(t){n_(e,t);function e(){var r=t.call(this)||this;return r._=[],r.I={},r.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(r.I,null),r.h={},r.h.L=r.h.m=r.H=r.l=r.h,r}return e.prototype.G=function(r){var n=r.L,i=r.m;n.m=i,i.L=n,r===this.H&&(this.H=i),r===this.l&&(this.l=n),this.M-=1},e.prototype.v=function(r,n,i){i===void 0&&(i=Ea(r));var s;if(i){var o=r[this.HASH_TAG];if(o!==void 0)return this._[o].p=n,this.M;Object.defineProperty(r,this.HASH_TAG,{value:this._.length,configurable:!0}),s={u:r,p:n,L:this.l,m:this.h},this._.push(s)}else{var a=this.I[r];if(a)return a.p=n,this.M;s={u:r,p:n,L:this.l,m:this.h},this.I[r]=s}return this.M===0?(this.H=s,this.h.m=s):this.l.m=s,this.l=s,this.h.L=s,++this.M},e.prototype.g=function(r,n){if(n===void 0&&(n=Ea(r)),n){var i=r[this.HASH_TAG];return i===void 0?this.h:this._[i]}else return this.I[r]||this.h},e.prototype.clear=function(){var r=this.HASH_TAG;this._.forEach(function(n){delete n.u[r]}),this._=[],this.I={},Object.setPrototypeOf(this.I,null),this.M=0,this.H=this.l=this.h.L=this.h.m=this.h},e.prototype.eraseElementByKey=function(r,n){var i;if(n===void 0&&(n=Ea(r)),n){var s=r[this.HASH_TAG];if(s===void 0)return!1;delete r[this.HASH_TAG],i=this._[s],delete this._[s]}else{if(i=this.I[r],i===void 0)return!1;delete this.I[r]}return this.G(i),!0},e.prototype.eraseElementByIterator=function(r){var n=r.o;return n===this.h&&De(),this.G(n),r.next()},e.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var n=this.H;r--;)n=n.m;return this.G(n),this.M},e}(hh),o_=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),TP=globalThis&&globalThis.i||function(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(c){return l([u,c])}}function l(u){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){r.label=u[1];break}if(u[0]===6&&r.label<s[1]){r.label=s[1],s=u;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(u);break}s[2]&&r.ops.pop(),r.trys.pop();continue}u=e.call(t,r)}catch(c){u=[6,c],i=0}finally{n=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},vs=function(t){o_(e,t);function e(r,n,i,s){var o=t.call(this,r,n,s)||this;return o.container=i,o}return Object.defineProperty(e.prototype,"pointer",{get:function(){return this.o===this.h&&De(),this.o.u},enumerable:!1,configurable:!0}),e.prototype.copy=function(){return new e(this.o,this.h,this.container,this.iteratorType)},e}(i_),AP=function(t){o_(e,t);function e(r){r===void 0&&(r=[]);var n=t.call(this)||this,i=n;return r.forEach(function(s){i.insert(s)}),n}return e.prototype.begin=function(){return new vs(this.H,this.h,this)},e.prototype.end=function(){return new vs(this.h,this.h,this)},e.prototype.rBegin=function(){return new vs(this.l,this.h,this,1)},e.prototype.rEnd=function(){return new vs(this.h,this.h,this,1)},e.prototype.front=function(){return this.H.u},e.prototype.back=function(){return this.l.u},e.prototype.insert=function(r,n){return this.v(r,void 0,n)},e.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var n=this.H;r--;)n=n.m;return n.u},e.prototype.find=function(r,n){var i=this.g(r,n);return new vs(i,this.h,this)},e.prototype.forEach=function(r){for(var n=0,i=this.H;i!==this.h;)r(i.u,n++,this),i=i.m},e.prototype[Symbol.iterator]=function(){return(function(){var r;return TP(this,function(n){switch(n.label){case 0:r=this.H,n.label=1;case 1:return r===this.h?[3,3]:[4,r.u];case 2:return n.sent(),r=r.m,[3,1];case 3:return[2]}})}).bind(this)()},e}(s_);const MP=AP;var a_=globalThis&&globalThis.t||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),CP=globalThis&&globalThis.i||function(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(c){return l([u,c])}}function l(u){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){r.label=u[1];break}if(u[0]===6&&r.label<s[1]){r.label=s[1],s=u;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(u);break}s[2]&&r.ops.pop(),r.trys.pop();continue}u=e.call(t,r)}catch(c){u=[6,c],i=0}finally{n=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},Es=function(t){a_(e,t);function e(r,n,i,s){var o=t.call(this,r,n,s)||this;return o.container=i,o}return Object.defineProperty(e.prototype,"pointer",{get:function(){this.o===this.h&&De();var r=this;return new Proxy([],{get:function(n,i){if(i==="0")return r.o.u;if(i==="1")return r.o.p},set:function(n,i,s){if(i!=="1")throw new TypeError("props must be 1");return r.o.p=s,!0}})},enumerable:!1,configurable:!0}),e.prototype.copy=function(){return new e(this.o,this.h,this.container,this.iteratorType)},e}(i_),IP=function(t){a_(e,t);function e(r){r===void 0&&(r=[]);var n=t.call(this)||this,i=n;return r.forEach(function(s){i.setElement(s[0],s[1])}),n}return e.prototype.begin=function(){return new Es(this.H,this.h,this)},e.prototype.end=function(){return new Es(this.h,this.h,this)},e.prototype.rBegin=function(){return new Es(this.l,this.h,this,1)},e.prototype.rEnd=function(){return new Es(this.h,this.h,this,1)},e.prototype.front=function(){if(this.M!==0)return[this.H.u,this.H.p]},e.prototype.back=function(){if(this.M!==0)return[this.l.u,this.l.p]},e.prototype.setElement=function(r,n,i){return this.v(r,n,i)},e.prototype.getElementByKey=function(r,n){if(n===void 0&&(n=Ea(r)),n){var i=r[this.HASH_TAG];return i!==void 0?this._[i].p:void 0}var s=this.I[r];return s?s.p:void 0},e.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var n=this.H;r--;)n=n.m;return[n.u,n.p]},e.prototype.find=function(r,n){var i=this.g(r,n);return new Es(i,this.h,this)},e.prototype.forEach=function(r){for(var n=0,i=this.H;i!==this.h;)r([i.u,i.p],n++,this),i=i.m},e.prototype[Symbol.iterator]=function(){return(function(){var r;return CP(this,function(n){switch(n.label){case 0:r=this.H,n.label=1;case 1:return r===this.h?[3,3]:[4,[r.u,r.p]];case 2:return n.sent(),r=r.m,[3,1];case 3:return[2]}})}).bind(this)()},e}(s_);const OP=IP,PP=Object.freeze(Object.defineProperty({__proto__:null,Deque:dP,HashMap:OP,HashSet:MP,LinkList:aP,OrderedMap:xP,OrderedSet:vP,PriorityQueue:QO,Queue:KO,Stack:VO,Vector:iP},Symbol.toStringTag,{value:"Module"})),RP=Ol(PP),LP=RP.OrderedSet,or=Vr("number-allocator:trace"),NP=Vr("number-allocator:error");function lt(t,e){this.low=t,this.high=e}lt.prototype.equals=function(t){return this.low===t.low&&this.high===t.high};lt.prototype.compare=function(t){return this.low<t.low&&this.high<t.low?-1:t.low<this.low&&t.high<this.low?1:0};function mr(t,e){if(!(this instanceof mr))return new mr(t,e);this.min=t,this.max=e,this.ss=new LP([],(r,n)=>r.compare(n)),or("Create"),this.clear()}mr.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low};mr.prototype.alloc=function(){if(this.ss.size()===0)return or("alloc():empty"),null;const t=this.ss.begin(),e=t.pointer.low,r=t.pointer.high,n=e;return n+1<=r?this.ss.updateKeyByIterator(t,new lt(e+1,r)):this.ss.eraseElementByPos(0),or("alloc():"+n),n};mr.prototype.use=function(t){const e=new lt(t,t),r=this.ss.lowerBound(e);if(!r.equals(this.ss.end())){const n=r.pointer.low,i=r.pointer.high;return r.pointer.equals(e)?(this.ss.eraseElementByIterator(r),or("use():"+t),!0):n>t?!1:n===t?(this.ss.updateKeyByIterator(r,new lt(n+1,i)),or("use():"+t),!0):i===t?(this.ss.updateKeyByIterator(r,new lt(n,i-1)),or("use():"+t),!0):(this.ss.updateKeyByIterator(r,new lt(t+1,i)),this.ss.insert(new lt(n,t-1)),or("use():"+t),!0)}return or("use():failed"),!1};mr.prototype.free=function(t){if(t<this.min||t>this.max){NP("free():"+t+" is out of range");return}const e=new lt(t,t),r=this.ss.upperBound(e);if(r.equals(this.ss.end())){if(r.equals(this.ss.begin())){this.ss.insert(e);return}r.pre();const n=r.pointer.high;r.pointer.high+1===t?this.ss.updateKeyByIterator(r,new lt(n,t)):this.ss.insert(e)}else if(r.equals(this.ss.begin()))if(t+1===r.pointer.low){const n=r.pointer.high;this.ss.updateKeyByIterator(r,new lt(t,n))}else this.ss.insert(e);else{const n=r.pointer.low,i=r.pointer.high;r.pre();const s=r.pointer.low;r.pointer.high+1===t?t+1===n?(this.ss.eraseElementByIterator(r),this.ss.updateKeyByIterator(r,new lt(s,i))):this.ss.updateKeyByIterator(r,new lt(s,t)):t+1===n?(this.ss.eraseElementByIterator(r.next()),this.ss.insert(new lt(t,i))):this.ss.insert(e)}or("free():"+t)};mr.prototype.clear=function(){or("clear()"),this.ss.clear(),this.ss.insert(new lt(this.min,this.max))};mr.prototype.intervalCount=function(){return this.ss.size()};mr.prototype.dump=function(){console.log("length:"+this.ss.size());for(const t of this.ss)console.log(t)};var $P=mr;const kP=$P;dh.NumberAllocator=kP;var DP=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uh,"__esModule",{value:!0});const BP=DP(jO),FP=dh;class UP{constructor(e){e>0&&(this.aliasToTopic=new BP.default({max:e}),this.topicToAlias={},this.numberAllocator=new FP.NumberAllocator(1,e),this.max=e,this.length=0)}put(e,r){if(r===0||r>this.max)return!1;const n=this.aliasToTopic.get(r);return n&&delete this.topicToAlias[n],this.aliasToTopic.set(r,e),this.topicToAlias[e]=r,this.numberAllocator.use(r),this.length=this.aliasToTopic.size,!0}getTopicByAlias(e){return this.aliasToTopic.get(e)}getAliasByTopic(e){const r=this.topicToAlias[e];return typeof r<"u"&&this.aliasToTopic.get(r),r}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){const e=this.numberAllocator.firstVacant();return e||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}}uh.default=UP;var jP=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lh,"__esModule",{value:!0});const zP=xo,HP=jP(uh),WP=Dr,VP=(t,e)=>{t.log("_handleConnack");const{options:r}=t,i=r.protocolVersion===5?e.reasonCode:e.returnCode;if(clearTimeout(t.connackTimer),delete t.topicAliasSend,e.properties){if(e.properties.topicAliasMaximum){if(e.properties.topicAliasMaximum>65535){t.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}e.properties.topicAliasMaximum>0&&(t.topicAliasSend=new HP.default(e.properties.topicAliasMaximum))}e.properties.serverKeepAlive&&r.keepalive&&(r.keepalive=e.properties.serverKeepAlive,t._shiftPingInterval()),e.properties.maximumPacketSize&&(r.properties||(r.properties={}),r.properties.maximumPacketSize=e.properties.maximumPacketSize)}if(i===0)t.reconnecting=!1,t._onConnect(e);else if(i>0){const s=new WP.ErrorWithReasonCode(`Connection refused: ${zP.ReasonCodes[i]}`,i);t.emit("error",s)}};lh.default=VP;var gh={};Object.defineProperty(gh,"__esModule",{value:!0});const qP=(t,e,r)=>{t.log("handling pubrel packet");const n=typeof r<"u"?r:t.noop,{messageId:i}=e,s={cmd:"pubcomp",messageId:i};t.incomingStore.get(e,(o,a)=>{o?t._sendPacket(s,n):(t.emit("message",a.topic,a.payload,a),t.handleMessage(a,l=>{if(l)return n(l);t.incomingStore.del(a,t.noop),t._sendPacket(s,n)}))})};gh.default=qP;var To=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ih,"__esModule",{value:!0});const YP=To(sh),KP=To(oh),GP=To(lh),XP=To(xo),QP=To(gh),JP=(t,e,r)=>{const{options:n}=t;if(n.protocolVersion===5&&n.properties&&n.properties.maximumPacketSize&&n.properties.maximumPacketSize<e.length)return t.emit("error",new Error(`exceeding packets size ${e.cmd}`)),t.end({reasonCode:149,properties:{reasonString:"Maximum packet size was exceeded"}}),t;switch(t.log("_handlePacket :: emitting packetreceive"),t.emit("packetreceive",e),e.cmd){case"publish":(0,YP.default)(t,e,r);break;case"puback":case"pubrec":case"pubcomp":case"suback":case"unsuback":(0,XP.default)(t,e),r();break;case"pubrel":(0,QP.default)(t,e,r);break;case"connack":(0,GP.default)(t,e),r();break;case"auth":(0,KP.default)(t,e),r();break;case"pingresp":t.pingResp=!0,r();break;case"disconnect":t.emit("disconnect",e),r();break;default:t.log("_handlePacket :: unknown command"),r();break}};ih.default=JP;var su={},ZP=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(su,"__esModule",{value:!0});su.TypedEventEmitter=void 0;const eR=ZP(gn),tR=Dr;class l_{}su.TypedEventEmitter=l_;(0,tR.applyMixin)(l_,eR.default);var rR=xe&&xe.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),nR=xe&&xe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),iR=xe&&xe.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&rR(e,t,r);return nR(e,t),e},bn=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oo,"__esModule",{value:!0});const sR=bn(Od),gc=bn(Pl),oR=bn(Hl),aR=So,lR=bn(EO),sm=bn(AO),om=iR(zi),uR=bn(Vr),Ko=bn(tu),cR=bn(ih),fR=su,Rf=_e?_e.nextTick:t=>{setTimeout(t,0)},mc=xe.setImmediate||((...t)=>{const e=t.shift();Rf(()=>{e(...t)})}),am={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0,writeCache:!0},dR=["ECONNREFUSED","EADDRINUSE","ECONNRESET","ENOTFOUND","ETIMEDOUT"];class mh extends fR.TypedEventEmitter{static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(e,r){super(),this.options=r||{};for(const n in am)typeof this.options[n]>"u"?this.options[n]=am[n]:this.options[n]=r[n];this.log=this.options.log||(0,uR.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: options.protocol",r.protocol),this.log("MqttClient :: options.protocolVersion",r.protocolVersion),this.log("MqttClient :: options.username",r.username),this.log("MqttClient :: options.keepalive",r.keepalive),this.log("MqttClient :: options.reconnectPeriod",r.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",r.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",r.properties?r.properties.topicAliasMaximum:void 0),this.options.clientId=typeof r.clientId=="string"?r.clientId:mh.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=r.protocolVersion===5&&r.customHandleAcks?r.customHandleAcks:(...n)=>{n[3](null,0)},this.options.writeCache||(gc.default.writeToStream.cacheNumbers=!1),this.streamBuilder=e,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new oR.default:this.options.messageIdProvider,this.outgoingStore=r.outgoingStore||new Ko.default,this.incomingStore=r.incomingStore||new Ko.default,this.queueQoSZero=r.queueQoSZero===void 0?!0:r.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.pingTimer=null,this.connected=!1,this.disconnecting=!1,this.reconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,r.properties&&r.properties.topicAliasMaximum>0&&(r.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new sR.default(r.properties.topicAliasMaximum)),this.on("connect",()=>{const{queue:n}=this,i=()=>{const s=n.shift();this.log("deliver :: entry %o",s);let o=null;if(!s){this._resubscribe();return}o=s.packet,this.log("deliver :: call _sendPacket for %o",o);let a=!0;o.messageId&&o.messageId!==0&&(this.messageIdProvider.register(o.messageId)||(a=!1)),a?this._sendPacket(o,l=>{s.cb&&s.cb(l),i()}):(this.log("messageId: %d has already used. The message is skipped and removed.",o.messageId),i())};this.log("connect :: sending queued packets"),i()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this.log("close :: clearing ping timer"),this.pingTimer!==null&&(this.pingTimer.clear(),this.pingTimer=null),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(e,r){r()}handleMessage(e,r){r()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){var e;const r=new aR.Writable,n=gc.default.parser(this.options);let i=null;const s=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),n.on("packet",c=>{this.log("parser :: on packet push to packets array."),s.push(c)});const o=()=>{this.log("work :: getting next packet in queue");const c=s.shift();if(c)this.log("work :: packet pulled from queue"),(0,cR.default)(this,c,a);else{this.log("work :: no packets in queue");const f=i;i=null,this.log("work :: done flag is %s",!!f),f&&f()}},a=()=>{if(s.length)Rf(o);else{const c=i;i=null,c()}};r._write=(c,f,d)=>{i=d,this.log("writable stream :: parsing buffer"),n.parse(c),o()};const l=c=>{this.log("streamErrorHandler :: error",c.message),dR.includes(c.code)?(this.log("streamErrorHandler :: emitting error"),this.emit("error",c)):this.noop(c)};this.log("connect :: pipe stream to writable stream"),this.stream.pipe(r),this.stream.on("error",l),this.stream.on("close",()=>{this.log("(%s)stream :: on close",this.options.clientId),this._flushVolatile(),this.log("stream: emit close to MqttClient"),this.emit("close")}),this.log("connect: sending packet `connect`");const u={cmd:"connect",protocolId:this.options.protocolId,protocolVersion:this.options.protocolVersion,clean:this.options.clean,clientId:this.options.clientId,keepalive:this.options.keepalive,username:this.options.username,password:this.options.password,properties:this.options.properties};if(this.options.will&&(u.will=Object.assign(Object.assign({},this.options.will),{payload:(e=this.options.will)===null||e===void 0?void 0:e.payload})),this.topicAliasRecv&&(u.properties||(u.properties={}),this.topicAliasRecv&&(u.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(u),n.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){const c=Object.assign({cmd:"auth",reasonCode:0},this.options.authPacket);this._writePacket(c)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this._cleanUp(!0)},this.options.connectTimeout),this}publish(e,r,n,i){this.log("publish :: message `%s` to topic `%s`",r,e);const{options:s}=this;typeof n=="function"&&(i=n,n=null),n=n||{},n=Object.assign(Object.assign({},{qos:0,retain:!1,dup:!1}),n);const{qos:a,retain:l,dup:u,properties:c,cbStorePut:f}=n;if(this._checkDisconnecting(i))return this;const d=()=>{let h=0;if((a===1||a===2)&&(h=this._nextId(),h===null))return this.log("No messageId left"),!1;const g={cmd:"publish",topic:e,payload:r,qos:a,retain:l,messageId:h,dup:u};switch(s.protocolVersion===5&&(g.properties=c),this.log("publish :: qos",a),a){case 1:case 2:this.outgoing[g.messageId]={volatile:!1,cb:i||this.noop},this.log("MqttClient:publish: packet cmd: %s",g.cmd),this._sendPacket(g,void 0,f);break;default:this.log("MqttClient:publish: packet cmd: %s",g.cmd),this._sendPacket(g,i,f);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!d())&&this._storeProcessingQueue.push({invoke:d,cbStorePut:n.cbStorePut,callback:i}),this}publishAsync(e,r,n){return new Promise((i,s)=>{this.publish(e,r,n,(o,a)=>{o?s(o):i(a)})})}subscribe(e,r,n){const i=this.options.protocolVersion;typeof r=="function"&&(n=r),n=n||this.noop;let s=!1,o=[];typeof e=="string"?(e=[e],o=e):Array.isArray(e)?o=e:typeof e=="object"&&(s=e.resubscribe,delete e.resubscribe,o=Object.keys(e));const a=om.validateTopics(o);if(a!==null)return mc(n,new Error(`Invalid topic ${a}`)),this;if(this._checkDisconnecting(n))return this.log("subscribe: discconecting true"),this;const l={qos:0};i===5&&(l.nl=!1,l.rap=!1,l.rh=0),r=Object.assign(Object.assign({},l),r);const u=r.properties,c=[],f=(h,g)=>{if(g=g||r,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,h)||this._resubscribeTopics[h].qos<g.qos||s){const y={topic:h,qos:g.qos};i===5&&(y.nl=g.nl,y.rap=g.rap,y.rh=g.rh,y.properties=u),this.log("subscribe: pushing topic `%s` and qos `%s` to subs list",y.topic,y.qos),c.push(y)}};if(Array.isArray(e)?e.forEach(h=>{this.log("subscribe: array topic %s",h),f(h)}):Object.keys(e).forEach(h=>{this.log("subscribe: object topic %s, %o",h,e[h]),f(h,e[h])}),!c.length)return n(null,[]),this;const d=()=>{const h=this._nextId();if(h===null)return this.log("No messageId left"),!1;const g={cmd:"subscribe",subscriptions:c,messageId:h};if(u&&(g.properties=u),this.options.resubscribe){this.log("subscribe :: resubscribe true");const y=[];c.forEach(b=>{if(this.options.reconnectPeriod>0){const E={qos:b.qos};i===5&&(E.nl=b.nl||!1,E.rap=b.rap||!1,E.rh=b.rh||0,E.properties=b.properties),this._resubscribeTopics[b.topic]=E,y.push(b.topic)}}),this.messageIdToTopic[g.messageId]=y}return this.outgoing[g.messageId]={volatile:!0,cb(y,b){if(!y){const{granted:E}=b;for(let _=0;_<E.length;_+=1)c[_].qos=E[_]}n(y,c)}},this.log("subscribe :: call _sendPacket"),this._sendPacket(g),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!d())&&this._storeProcessingQueue.push({invoke:d,callback:n}),this}subscribeAsync(e,r){return new Promise((n,i)=>{this.subscribe(e,r,(s,o)=>{s?i(s):n(o)})})}unsubscribe(e,r,n){typeof e=="string"&&(e=[e]),typeof r=="function"&&(n=r),n=n||this.noop;const i=om.validateTopics(e);if(i!==null)return mc(n,new Error(`Invalid topic ${i}`)),this;if(this._checkDisconnecting(n))return this;const s=()=>{const o=this._nextId();if(o===null)return this.log("No messageId left"),!1;const a={cmd:"unsubscribe",messageId:o,unsubscriptions:[]};return typeof e=="string"?a.unsubscriptions=[e]:Array.isArray(e)&&(a.unsubscriptions=e),this.options.resubscribe&&a.unsubscriptions.forEach(l=>{delete this._resubscribeTopics[l]}),typeof r=="object"&&r.properties&&(a.properties=r.properties),this.outgoing[a.messageId]={volatile:!0,cb:n},this.log("unsubscribe: call _sendPacket"),this._sendPacket(a),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!s())&&this._storeProcessingQueue.push({invoke:s,callback:n}),this}unsubscribeAsync(e,r){return new Promise((n,i)=>{this.unsubscribe(e,r,(s,o)=>{s?i(s):n(o)})})}end(e,r,n){this.log("end :: (%s)",this.options.clientId),(e==null||typeof e!="boolean")&&(n=n||r,r=e,e=!1),typeof r!="object"&&(n=n||r,r=null),this.log("end :: cb? %s",!!n),(!n||typeof n!="function")&&(n=this.noop);const i=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(o=>{this.outgoingStore.close(a=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),n){const l=o||a;this.log("end :: closeStores: invoking callback with args"),n(l)}})}),this._deferredReconnect&&this._deferredReconnect()},s=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,e),this._cleanUp(e,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),Rf(i)},r)};return this.disconnecting?(n(),this):(this._clearReconnect(),this.disconnecting=!0,!e&&Object.keys(this.outgoing).length>0?(this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty",this.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,s,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),s()),this)}endAsync(e,r){return new Promise((n,i)=>{this.end(e,r,s=>{s?i(s):n()})})}removeOutgoingMessage(e){if(this.outgoing[e]){const{cb:r}=this.outgoing[e];this._removeOutgoingAndStoreMessage(e,()=>{r(new Error("Message removed"))})}return this}reconnect(e){this.log("client reconnect");const r=()=>{e?(this.options.incomingStore=e.incomingStore,this.options.outgoingStore=e.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new Ko.default,this.outgoingStore=this.options.outgoingStore||new Ko.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=r:r(),this}_flushVolatile(){this.outgoing&&(this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(this.outgoing).forEach(e=>{this.outgoing[e].volatile&&typeof this.outgoing[e].cb=="function"&&(this.outgoing[e].cb(new Error("Connection closed")),delete this.outgoing[e])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(e=>{typeof this.outgoing[e].cb=="function"&&(this.outgoing[e].cb(new Error("Connection closed")),delete this.outgoing[e])}))}_removeTopicAliasAndRecoverTopicName(e){let r;e.properties&&(r=e.properties.topicAlias);let n=e.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",r,n),n.length===0){if(typeof r>"u")return new Error("Unregistered Topic Alias");if(n=this.topicAliasSend.getTopicByAlias(r),typeof n>"u")return new Error("Unregistered Topic Alias");e.topic=n}r&&delete e.properties.topicAlias}_checkDisconnecting(e){return this.disconnecting&&(e&&e!==this.noop?e(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting}_reconnect(){this.log("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this.connect()}),this.log("client already connected. disconnecting first.")):(this.log("_reconnect: calling connect"),this.connect())}_setupReconnect(){!this.disconnecting&&!this.reconnectTimer&&this.options.reconnectPeriod>0?(this.reconnecting||(this.log("_setupReconnect :: emit `offline` state"),this.emit("offline"),this.log("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),this.log("_setupReconnect :: setting reconnectTimer for %d ms",this.options.reconnectPeriod),this.reconnectTimer=setInterval(()=>{this.log("reconnectTimer :: reconnect triggered!"),this._reconnect()},this.options.reconnectPeriod)):this.log("_setupReconnect :: doing nothing...")}_clearReconnect(){this.log("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)}_cleanUp(e,r,n={}){if(r&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",r)),this.log("_cleanUp :: forced? %s",e),e)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{const i=Object.assign({cmd:"disconnect"},n);this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(i,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),mc(()=>{this.stream.end(()=>{this.log("_cleanUp :: (%s) :: stream destroyed",this.options.clientId)})})})}this.disconnecting||(this.log("_cleanUp :: client not disconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this.pingTimer!==null&&(this.log("_cleanUp :: clearing pingTimer"),this.pingTimer.clear(),this.pingTimer=null),r&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",r),r())}_storeAndSend(e,r,n){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",e.cmd);let i=e,s;if(i.cmd==="publish"&&(i=(0,sm.default)(e),s=this._removeTopicAliasAndRecoverTopicName(i),s))return r&&r(s);this.outgoingStore.put(i,o=>{if(o)return r&&r(o);n(),this._writePacket(e,r)})}_applyTopicAlias(e){if(this.options.protocolVersion===5&&e.cmd==="publish"){let r;e.properties&&(r=e.properties.topicAlias);const n=e.topic.toString();if(this.topicAliasSend)if(r){if(n.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",n,r),!this.topicAliasSend.put(n,r)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",n,r),new Error("Sending Topic Alias out of range")}else n.length!==0&&(this.options.autoAssignTopicAlias?(r=this.topicAliasSend.getAliasByTopic(n),r?(e.topic="",e.properties=Object.assign(Object.assign({},e.properties),{topicAlias:r}),this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",n,r)):(r=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(n,r),e.properties=Object.assign(Object.assign({},e.properties),{topicAlias:r}),this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",n,r))):this.options.autoUseTopicAlias&&(r=this.topicAliasSend.getAliasByTopic(n),r&&(e.topic="",e.properties=Object.assign(Object.assign({},e.properties),{topicAlias:r}),this.log("applyTopicAlias :: auto use topic: %s - alias: %d",n,r))));else if(r)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",n,r),new Error("Sending Topic Alias out of range")}}_noop(e){this.log("noop ::",e)}_writePacket(e,r){this.log("_writePacket :: packet: %O",e),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",e),this._shiftPingInterval(),this.log("_writePacket :: writing to stream");const n=gc.default.writeToStream(e,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",n),!n&&r&&r!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",r)):r&&(this.log("_writePacket :: invoking cb"),r())}_sendPacket(e,r,n,i){this.log("_sendPacket :: (%s) ::  start",this.options.clientId),n=n||this.noop,r=r||this.noop;const s=this._applyTopicAlias(e);if(s){r(s);return}if(!this.connected){if(e.cmd==="auth"){this._writePacket(e,r);return}this.log("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(e,r,n);return}if(i){this._writePacket(e,r);return}switch(e.cmd){case"publish":break;case"pubrel":this._storeAndSend(e,r,n);return;default:this._writePacket(e,r);return}switch(e.qos){case 2:case 1:this._storeAndSend(e,r,n);break;case 0:default:this._writePacket(e,r);break}this.log("_sendPacket :: (%s) ::  end",this.options.clientId)}_storePacket(e,r,n){this.log("_storePacket :: packet: %o",e),this.log("_storePacket :: cb? %s",!!r),n=n||this.noop;let i=e;if(i.cmd==="publish"){i=(0,sm.default)(e);const o=this._removeTopicAliasAndRecoverTopicName(i);if(o)return r&&r(o)}const s=i.qos||0;s===0&&this.queueQoSZero||i.cmd!=="publish"?this.queue.push({packet:i,cb:r}):s>0?(r=this.outgoing[i.messageId]?this.outgoing[i.messageId].cb:null,this.outgoingStore.put(i,o=>{if(o)return r&&r(o);n()})):r&&r(new Error("No connection to broker"))}_setupPingTimer(){this.log("_setupPingTimer :: keepalive %d (seconds)",this.options.keepalive),!this.pingTimer&&this.options.keepalive&&(this.pingResp=!0,this.pingTimer=(0,lR.default)(()=>{this._checkPing()},this.options.keepalive*1e3))}_shiftPingInterval(){this.pingTimer&&this.options.keepalive&&this.options.reschedulePings&&this.pingTimer.reschedule(this.options.keepalive*1e3)}_checkPing(){this.log("_checkPing :: checking ping..."),this.pingResp?(this.log("_checkPing :: ping response received. Clearing flag and sending `pingreq`"),this.pingResp=!1,this._sendPacket({cmd:"pingreq"})):(this.log("_checkPing :: calling _cleanUp with force true"),this._cleanUp(!0))}_resubscribe(){this.log("_resubscribe");const e=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&e.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let r=0;r<e.length;r++){const n={};n[e[r]]=this._resubscribeTopics[e[r]],n.resubscribe=!0,this.subscribe(n,{properties:n[e[r]].properties})}}else this._resubscribeTopics.resubscribe=!0,this.subscribe(this._resubscribeTopics);else this._resubscribeTopics={};this._firstConnection=!1}_onConnect(e){if(this.disconnected){this.emit("connect",e);return}this.connackPacket=e,this.messageIdProvider.clear(),this._setupPingTimer(),this.connected=!0;const r=()=>{let n=this.outgoingStore.createStream();const i=()=>{n.destroy(),n=null,this._flushStoreProcessingQueue(),s()},s=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",i),n.on("error",a=>{s(),this._flushStoreProcessingQueue(),this.removeListener("close",i),this.emit("error",a)});const o=()=>{if(!n)return;const a=n.read(1);let l;if(!a){n.once("readable",o);return}if(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[a.messageId]){o();return}!this.disconnecting&&!this.reconnectTimer?(l=this.outgoing[a.messageId]?this.outgoing[a.messageId].cb:null,this.outgoing[a.messageId]={volatile:!1,cb(u,c){l&&l(u,c),o()}},this._packetIdsDuringStoreProcessing[a.messageId]=!0,this.messageIdProvider.register(a.messageId)?this._sendPacket(a,void 0,void 0,!0):this.log("messageId: %d has already used.",a.messageId)):n.destroy&&n.destroy()};n.on("end",()=>{let a=!0;for(const l in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[l]){a=!1;break}a?(s(),this.removeListener("close",i),this._invokeAllStoreProcessingQueue(),this.emit("connect",e)):r()}),o()};r()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){const e=this._storeProcessingQueue[0];if(e&&e.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(const e of this._storeProcessingQueue)e.cbStorePut&&e.cbStorePut(new Error("Connection closed")),e.callback&&e.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(e,r){delete this.outgoing[e],this.outgoingStore.del({messageId:e},(n,i)=>{r(n,i),this.messageIdProvider.deallocate(e),this._invokeStoreProcessingQueue()})}}oo.default=mh;var yh={};Object.defineProperty(yh,"__esModule",{value:!0});const hR=dh;class pR{constructor(){this.numberAllocator=new hR.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(e){return this.numberAllocator.use(e)}deallocate(e){this.numberAllocator.free(e)}clear(){this.numberAllocator.clear()}}yh.default=pR;var Ao={};const yc=2147483647,Ys=36,u_=1,Lf=26,gR=38,mR=700,yR=72,wR=128,bR="-",_R=/[^\0-\x7F]/,vR=/[\x2E\u3002\uFF0E\uFF61]/g,ER={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},wc=Ys-u_,vi=Math.floor,bc=String.fromCharCode;function lm(t){throw new RangeError(ER[t])}function SR(t,e){const r=[];let n=t.length;for(;n--;)r[n]=e(t[n]);return r}function xR(t,e){const r=t.split("@");let n="";r.length>1&&(n=r[0]+"@",t=r[1]),t=t.replace(vR,".");const i=t.split("."),s=SR(i,e).join(".");return n+s}function TR(t){const e=[];let r=0;const n=t.length;for(;r<n;){const i=t.charCodeAt(r++);if(i>=55296&&i<=56319&&r<n){const s=t.charCodeAt(r++);(s&64512)==56320?e.push(((i&1023)<<10)+(s&1023)+65536):(e.push(i),r--)}else e.push(i)}return e}const um=function(t,e){return t+22+75*(t<26)-((e!=0)<<5)},AR=function(t,e,r){let n=0;for(t=r?vi(t/mR):t>>1,t+=vi(t/e);t>wc*Lf>>1;n+=Ys)t=vi(t/wc);return vi(n+(wc+1)*t/(t+gR))},MR=function(t){const e=[];t=TR(t);const r=t.length;let n=wR,i=0,s=yR;for(const l of t)l<128&&e.push(bc(l));const o=e.length;let a=o;for(o&&e.push(bR);a<r;){let l=yc;for(const c of t)c>=n&&c<l&&(l=c);const u=a+1;l-n>vi((yc-i)/u)&&lm("overflow"),i+=(l-n)*u,n=l;for(const c of t)if(c<n&&++i>yc&&lm("overflow"),c===n){let f=i;for(let d=Ys;;d+=Ys){const h=d<=s?u_:d>=s+Lf?Lf:d-s;if(f<h)break;const g=f-h,y=Ys-h;e.push(bc(um(h+g%y,0))),f=vi(g/y)}e.push(bc(um(f,0))),s=AR(i,u,a===o),i=0,++a}++i,++n}return e.join("")},CR=function(t){return xR(t,function(e){return _R.test(e)?"xn--"+MR(e):e})};function IR(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var c_=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};function Ss(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}}function OR(t,e,r,n){return e=e||"&",r=r||"=",t===null&&(t=void 0),typeof t=="object"?cm(PR(t),function(i){var s=encodeURIComponent(Ss(i))+r;return c_(t[i])?cm(t[i],function(o){return s+encodeURIComponent(Ss(o))}).join(e):s+encodeURIComponent(Ss(t[i]))}).join(e):n?encodeURIComponent(Ss(n))+r+encodeURIComponent(Ss(t)):""}function cm(t,e){if(t.map)return t.map(e);for(var r=[],n=0;n<t.length;n++)r.push(e(t[n],n));return r}var PR=Object.keys||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.push(r);return e};function fm(t,e,r,n){e=e||"&",r=r||"=";var i={};if(typeof t!="string"||t.length===0)return i;var s=/\+/g;t=t.split(e);var o=1e3;n&&typeof n.maxKeys=="number"&&(o=n.maxKeys);var a=t.length;o>0&&a>o&&(a=o);for(var l=0;l<a;++l){var u=t[l].replace(s,"%20"),c=u.indexOf(r),f,d,h,g;c>=0?(f=u.substr(0,c),d=u.substr(c+1)):(f=u,d=""),h=decodeURIComponent(f),g=decodeURIComponent(d),IR(i,h)?c_(i[h])?i[h].push(g):i[h]=[i[h],g]:i[h]=g}return i}const RR={parse:Mo,resolve:h_,resolveObject:p_,format:d_,Url:Gt};function Gt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var LR=/^([a-z0-9.+-]+:)/i,NR=/:[0-9]*$/,$R=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,kR=["<",">",'"',"`"," ","\r",`
+`,"	"],DR=["{","}","|","\\","^","`"].concat(kR),Nf=["'"].concat(DR),dm=["%","/","?",";","#"].concat(Nf),hm=["/","?","#"],BR=255,pm=/^[+a-z0-9A-Z_-]{0,63}$/,FR=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,UR={javascript:!0,"javascript:":!0},$f={javascript:!0,"javascript:":!0},Ni={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Mo(t,e,r){if(t&&Wr(t)&&t instanceof Gt)return t;var n=new Gt;return n.parse(t,e,r),n}Gt.prototype.parse=function(t,e,r){return f_(this,t,e,r)};function f_(t,e,r,n){if(!yn(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),s=i!==-1&&i<e.indexOf("#")?"?":"#",o=e.split(s),a=/\\/g;o[0]=o[0].replace(a,"/"),e=o.join(s);var l=e;if(l=l.trim(),!n&&e.split("#").length===1){var u=$R.exec(l);if(u)return t.path=l,t.href=l,t.pathname=u[1],u[2]?(t.search=u[2],r?t.query=fm(t.search.substr(1)):t.query=t.search.substr(1)):r&&(t.search="",t.query={}),t}var c=LR.exec(l);if(c){c=c[0];var f=c.toLowerCase();t.protocol=f,l=l.substr(c.length)}if(n||c||l.match(/^\/\/[^@\/]+@[^@\/]+/)){var d=l.substr(0,2)==="//";d&&!(c&&$f[c])&&(l=l.substr(2),t.slashes=!0)}var h,g,y,b;if(!$f[c]&&(d||c&&!Ni[c])){var E=-1;for(h=0;h<hm.length;h++)g=l.indexOf(hm[h]),g!==-1&&(E===-1||g<E)&&(E=g);var _,v;for(E===-1?v=l.lastIndexOf("@"):v=l.lastIndexOf("@",E),v!==-1&&(_=l.slice(0,v),l=l.slice(v+1),t.auth=decodeURIComponent(_)),E=-1,h=0;h<dm.length;h++)g=l.indexOf(dm[h]),g!==-1&&(E===-1||g<E)&&(E=g);E===-1&&(E=l.length),t.host=l.slice(0,E),l=l.slice(E),g_(t),t.hostname=t.hostname||"";var T=t.hostname[0]==="["&&t.hostname[t.hostname.length-1]==="]";if(!T){var C=t.hostname.split(/\./);for(h=0,y=C.length;h<y;h++){var O=C[h];if(O&&!O.match(pm)){for(var D="",F=0,L=O.length;F<L;F++)O.charCodeAt(F)>127?D+="x":D+=O[F];if(!D.match(pm)){var U=C.slice(0,h),k=C.slice(h+1),W=O.match(FR);W&&(U.push(W[1]),k.unshift(W[2])),k.length&&(l="/"+k.join(".")+l),t.hostname=U.join(".");break}}}}t.hostname.length>BR?t.hostname="":t.hostname=t.hostname.toLowerCase(),T||(t.hostname=CR(t.hostname)),b=t.port?":"+t.port:"";var $=t.hostname||"";t.host=$+b,t.href+=t.host,T&&(t.hostname=t.hostname.substr(1,t.hostname.length-2),l[0]!=="/"&&(l="/"+l))}if(!UR[f])for(h=0,y=Nf.length;h<y;h++){var I=Nf[h];if(l.indexOf(I)!==-1){var j=encodeURIComponent(I);j===I&&(j=escape(I)),l=l.split(I).join(j)}}var Q=l.indexOf("#");Q!==-1&&(t.hash=l.substr(Q),l=l.slice(0,Q));var H=l.indexOf("?");if(H!==-1?(t.search=l.substr(H),t.query=l.substr(H+1),r&&(t.query=fm(t.query)),l=l.slice(0,H)):r&&(t.search="",t.query={}),l&&(t.pathname=l),Ni[f]&&t.hostname&&!t.pathname&&(t.pathname="/"),t.pathname||t.search){b=t.pathname||"";var K=t.search||"";t.path=b+K}return t.href=wh(t),t}function d_(t){return yn(t)&&(t=f_({},t)),wh(t)}function wh(t){var e=t.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var r=t.protocol||"",n=t.pathname||"",i=t.hash||"",s=!1,o="";t.host?s=e+t.host:t.hostname&&(s=e+(t.hostname.indexOf(":")===-1?t.hostname:"["+this.hostname+"]"),t.port&&(s+=":"+t.port)),t.query&&Wr(t.query)&&Object.keys(t.query).length&&(o=OR(t.query));var a=t.search||o&&"?"+o||"";return r&&r.substr(-1)!==":"&&(r+=":"),t.slashes||(!r||Ni[r])&&s!==!1?(s="//"+(s||""),n&&n.charAt(0)!=="/"&&(n="/"+n)):s||(s=""),i&&i.charAt(0)!=="#"&&(i="#"+i),a&&a.charAt(0)!=="?"&&(a="?"+a),n=n.replace(/[?#]/g,function(l){return encodeURIComponent(l)}),a=a.replace("#","%23"),r+s+n+a+i}Gt.prototype.format=function(){return wh(this)};function h_(t,e){return Mo(t,!1,!0).resolve(e)}Gt.prototype.resolve=function(t){return this.resolveObject(Mo(t,!1,!0)).format()};function p_(t,e){return t?Mo(t,!1,!0).resolveObject(e):e}Gt.prototype.resolveObject=function(t){if(yn(t)){var e=new Gt;e.parse(t,!1,!0),t=e}for(var r=new Gt,n=Object.keys(this),i=0;i<n.length;i++){var s=n[i];r[s]=this[s]}if(r.hash=t.hash,t.href==="")return r.href=r.format(),r;if(t.slashes&&!t.protocol){for(var o=Object.keys(t),a=0;a<o.length;a++){var l=o[a];l!=="protocol"&&(r[l]=t[l])}return Ni[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}var u;if(t.protocol&&t.protocol!==r.protocol){if(!Ni[t.protocol]){for(var c=Object.keys(t),f=0;f<c.length;f++){var d=c[f];r[d]=t[d]}return r.href=r.format(),r}if(r.protocol=t.protocol,!t.host&&!$f[t.protocol]){for(u=(t.pathname||"").split("/");u.length&&!(t.host=u.shift()););t.host||(t.host=""),t.hostname||(t.hostname=""),u[0]!==""&&u.unshift(""),u.length<2&&u.unshift(""),r.pathname=u.join("/")}else r.pathname=t.pathname;if(r.search=t.search,r.query=t.query,r.host=t.host||"",r.auth=t.auth,r.hostname=t.hostname||t.host,r.port=t.port,r.pathname||r.search){var h=r.pathname||"",g=r.search||"";r.path=h+g}return r.slashes=r.slashes||t.slashes,r.href=r.format(),r}var y=r.pathname&&r.pathname.charAt(0)==="/",b=t.host||t.pathname&&t.pathname.charAt(0)==="/",E=b||y||r.host&&t.pathname,_=E,v=r.pathname&&r.pathname.split("/")||[],T=r.protocol&&!Ni[r.protocol];u=t.pathname&&t.pathname.split("/")||[],T&&(r.hostname="",r.port=null,r.host&&(v[0]===""?v[0]=r.host:v.unshift(r.host)),r.host="",t.protocol&&(t.hostname=null,t.port=null,t.host&&(u[0]===""?u[0]=t.host:u.unshift(t.host)),t.host=null),E=E&&(u[0]===""||v[0]===""));var C;if(b)r.host=t.host||t.host===""?t.host:r.host,r.hostname=t.hostname||t.hostname===""?t.hostname:r.hostname,r.search=t.search,r.query=t.query,v=u;else if(u.length)v||(v=[]),v.pop(),v=v.concat(u),r.search=t.search,r.query=t.query;else if(!Bd(t.search))return T&&(r.hostname=r.host=v.shift(),C=r.host&&r.host.indexOf("@")>0?r.host.split("@"):!1,C&&(r.auth=C.shift(),r.host=r.hostname=C.shift())),r.search=t.search,r.query=t.query,(!Cr(r.pathname)||!Cr(r.search))&&(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!v.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var O=v.slice(-1)[0],D=(r.host||t.host||v.length>1)&&(O==="."||O==="..")||O==="",F=0,L=v.length;L>=0;L--)O=v[L],O==="."?v.splice(L,1):O===".."?(v.splice(L,1),F++):F&&(v.splice(L,1),F--);if(!E&&!_)for(;F--;F)v.unshift("..");E&&v[0]!==""&&(!v[0]||v[0].charAt(0)!=="/")&&v.unshift(""),D&&v.join("/").substr(-1)!=="/"&&v.push("");var U=v[0]===""||v[0]&&v[0].charAt(0)==="/";return T&&(r.hostname=r.host=U?"":v.length?v.shift():"",C=r.host&&r.host.indexOf("@")>0?r.host.split("@"):!1,C&&(r.auth=C.shift(),r.host=r.hostname=C.shift())),E=E||r.host&&v.length,E&&!U&&v.unshift(""),v.length?r.pathname=v.join("/"):(r.pathname=null,r.path=null),(!Cr(r.pathname)||!Cr(r.search))&&(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r};Gt.prototype.parseHost=function(){return g_(this)};function g_(t){var e=t.host,r=NR.exec(e);r&&(r=r[0],r!==":"&&(t.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(t.hostname=e)}const jR=Object.freeze(Object.defineProperty({__proto__:null,Url:Gt,default:RR,format:d_,parse:Mo,resolve:h_,resolveObject:p_},Symbol.toStringTag,{value:"Module"})),zR=Ol(jR);var ou={};Object.defineProperty(ou,"__esModule",{value:!0});const HR=typeof window<"u"&&typeof window.document<"u";ou.default=HR;var Go={};const WR={},VR=Object.freeze(Object.defineProperty({__proto__:null,default:WR},Symbol.toStringTag,{value:"Module"})),kf=Ol(VR);var gm;function mm(){if(gm)return Go;gm=1;var t=xe&&xe.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Go,"__esModule",{value:!0});const e=t(kf),n=(0,t(Vr).default)("mqttjs:tcp"),i=(s,o)=>{o.port=o.port||1883,o.hostname=o.hostname||o.host||"localhost";const{port:a}=o,l=o.hostname;return n("port %d and host %s",a,l),e.default.createConnection(a,l)};return Go.default=i,Go}var Xo={},ym;function wm(){if(ym)return Xo;ym=1;var t=xe&&xe.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(Xo,"__esModule",{value:!0});const e=t(kf),r=t(kf),i=(0,t(Vr).default)("mqttjs:tls"),s=(o,a)=>{a.port=a.port||8883,a.host=a.hostname||a.host||"localhost",r.default.isIP(a.host)===0&&(a.servername=a.host),a.rejectUnauthorized=a.rejectUnauthorized!==!1,delete a.path,i("port %d host %s rejectUnauthorized %b",a.port,a.host,a.rejectUnauthorized);const l=e.default.connect(a);l.on("secureConnect",()=>{a.rejectUnauthorized&&!l.authorized?l.emit("error",new Error("TLS not authorized")):l.removeListener("error",u)});function u(c){a.rejectUnauthorized&&o.emit("error",c),l.end()}return l.on("error",u),l};return Xo.default=s,Xo}var Qo={},bh={exports:{}},qR=m_;function m_(t,e){if(t&&e)return m_(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(n){r[n]=t[n]}),r;function r(){for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];var s=t.apply(this,n),o=n[n.length-1];return typeof s=="function"&&s!==o&&Object.keys(o).forEach(function(a){s[a]=o[a]}),s}}var y_=qR;bh.exports=y_(Sa);bh.exports.strict=y_(w_);Sa.proto=Sa(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Sa(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return w_(this)},configurable:!0})});function Sa(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function w_(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}var YR=bh.exports,KR=YR,GR=function(){},XR=function(t){return t.setHeader&&typeof t.abort=="function"},QR=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},b_=function(t,e,r){if(typeof e=="function")return b_(t,null,e);e||(e={}),r=KR(r||GR);var n=t._writableState,i=t._readableState,s=e.readable||e.readable!==!1&&t.readable,o=e.writable||e.writable!==!1&&t.writable,a=!1,l=function(){t.writable||u()},u=function(){o=!1,s||r.call(t)},c=function(){s=!1,o||r.call(t)},f=function(b){r.call(t,b?new Error("exited with error code: "+b):null)},d=function(b){r.call(t,b)},h=function(){_e.nextTick(g)},g=function(){if(!a){if(s&&!(i&&i.ended&&!i.destroyed))return r.call(t,new Error("premature close"));if(o&&!(n&&n.ended&&!n.destroyed))return r.call(t,new Error("premature close"))}},y=function(){t.req.on("finish",u)};return XR(t)?(t.on("complete",u),t.on("abort",h),t.req?y():t.on("request",y)):o&&!n&&(t.on("end",l),t.on("close",l)),QR(t)&&t.on("exit",f),t.on("end",c),t.on("finish",u),e.error!==!1&&t.on("error",d),t.on("close",h),function(){a=!0,t.removeListener("complete",u),t.removeListener("abort",h),t.removeListener("request",y),t.req&&t.req.removeListener("finish",u),t.removeListener("end",l),t.removeListener("close",l),t.removeListener("finish",u),t.removeListener("exit",f),t.removeListener("end",c),t.removeListener("error",d),t.removeListener("close",h)}},JR=b_,ZR=eL;function eL(t){var e=t._readableState;return e?e.objectMode||typeof t._duplexState=="number"?t.read():t.read(tL(e)):null}function tL(t){return t.buffer.length?t.buffer.head?t.buffer.head.data.length:t.buffer[0].length:t.length}var au=V0,__=JR,rL=ri,nL=ZR,v_=oe.from&&oe.from!==Uint8Array.from?oe.from([0]):new oe([0]),Df=function(t,e){t._corked?t.once("uncork",e):e()},iL=function(t,e){t._autoDestroy&&t.destroy(e)},E_=function(t,e){return function(r){r?iL(t,r.message==="premature close"?null:r):e&&!t._ended&&t.end()}},sL=function(t,e){if(!t||t._writableState&&t._writableState.finished)return e();if(t._writableState)return t.end(e);t.end(),e()},oL=function(){},aL=function(t){return new au.Readable({objectMode:!0,highWaterMark:16}).wrap(t)},Je=function(t,e,r){if(!(this instanceof Je))return new Je(t,e,r);au.Duplex.call(this,r),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!r||r.autoDestroy!==!1,this._forwardDestroy=!r||r.destroy!==!1,this._forwardEnd=!r||r.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,t&&this.setWritable(t),e&&this.setReadable(e)};rL(Je,au.Duplex);Je.obj=function(t,e,r){return r||(r={}),r.objectMode=!0,r.highWaterMark=16,new Je(t,e,r)};Je.prototype.cork=function(){++this._corked===1&&this.emit("cork")};Je.prototype.uncork=function(){this._corked&&--this._corked===0&&this.emit("uncork")};Je.prototype.setWritable=function(t){if(this._unwrite&&this._unwrite(),this.destroyed){t&&t.destroy&&t.destroy();return}if(t===null||t===!1){this.end();return}var e=this,r=__(t,{writable:!0,readable:!1},E_(this,this._forwardEnd)),n=function(){var s=e._ondrain;e._ondrain=null,s&&s()},i=function(){e._writable.removeListener("drain",n),r()};this._unwrite&&_e.nextTick(n),this._writable=t,this._writable.on("drain",n),this._unwrite=i,this.uncork()};Je.prototype.setReadable=function(t){if(this._unread&&this._unread(),this.destroyed){t&&t.destroy&&t.destroy();return}if(t===null||t===!1){this.push(null),this.resume();return}var e=this,r=__(t,{writable:!1,readable:!0},E_(this)),n=function(){e._forward()},i=function(){e.push(null)},s=function(){e._readable2.removeListener("readable",n),e._readable2.removeListener("end",i),r()};this._drained=!0,this._readable=t,this._readable2=t._readableState?t:aL(t),this._readable2.on("readable",n),this._readable2.on("end",i),this._unread=s,this._forward()};Je.prototype._read=function(){this._drained=!0,this._forward()};Je.prototype._forward=function(){if(!(this._forwarding||!this._readable2||!this._drained)){this._forwarding=!0;for(var t;this._drained&&(t=nL(this._readable2))!==null;)this.destroyed||(this._drained=this.push(t));this._forwarding=!1}};Je.prototype.destroy=function(t,e){if(e||(e=oL),this.destroyed)return e(null);this.destroyed=!0;var r=this;_e.nextTick(function(){r._destroy(t),e(null)})};Je.prototype._destroy=function(t){if(t){var e=this._ondrain;this._ondrain=null,e?e(t):this.emit("error",t)}this._forwardDestroy&&(this._readable&&this._readable.destroy&&this._readable.destroy(),this._writable&&this._writable.destroy&&this._writable.destroy()),this.emit("close")};Je.prototype._write=function(t,e,r){if(!this.destroyed){if(this._corked)return Df(this,this._write.bind(this,t,e,r));if(t===v_)return this._finish(r);if(!this._writable)return r();this._writable.write(t)===!1?this._ondrain=r:this.destroyed||r()}};Je.prototype._finish=function(t){var e=this;this.emit("preend"),Df(this,function(){sL(e._forwardEnd&&e._writable,function(){e._writableState.prefinished===!1&&(e._writableState.prefinished=!0),e.emit("prefinish"),Df(e,t)})})};Je.prototype.end=function(t,e,r){return typeof t=="function"?this.end(null,null,t):typeof e=="function"?this.end(t,null,e):(this._ended=!0,t&&this.write(t),!this._writableState.ending&&!this._writableState.destroyed&&this.write(v_),au.Writable.prototype.end.call(this,r))};var _h=Je,bm;function _m(){if(bm)return Qo;bm=1;var t=xe&&xe.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(Qo,"__esModule",{value:!0});const e=He,r=So,n=t(_h);let i,s,o;function a(){const d=new r.Transform;return d._write=(h,g,y)=>{i.send({data:h.buffer,success(){y()},fail(b){y(new Error(b))}})},d._flush=h=>{i.close({success(){h()}})},d}function l(d){d.hostname||(d.hostname="localhost"),d.path||(d.path="/"),d.wsOptions||(d.wsOptions={})}function u(d,h){const g=d.protocol==="wxs"?"wss":"ws";let y=`${g}://${d.hostname}${d.path}`;return d.port&&d.port!==80&&d.port!==443&&(y=`${g}://${d.hostname}:${d.port}${d.path}`),typeof d.transformWsUrl=="function"&&(y=d.transformWsUrl(y,d,h)),y}function c(){i.onOpen(()=>{o.setReadable(s),o.setWritable(s),o.emit("connect")}),i.onMessage(d=>{let{data:h}=d;h instanceof ArrayBuffer?h=e.Buffer.from(h):h=e.Buffer.from(h,"utf8"),s.push(h)}),i.onClose(()=>{o.emit("close"),o.end(),o.destroy()}),i.onError(d=>{o.destroy(new Error(d.errMsg))})}const f=(d,h)=>{if(h.hostname=h.hostname||h.host,!h.hostname)throw new Error("Could not determine host. Specify host manually.");const g=h.protocolId==="MQIsdp"&&h.protocolVersion===3?"mqttv3.1":"mqtt";l(h);const y=u(h,d);i=wx.connectSocket({url:y,protocols:[g]}),s=a(),o=n.default.obj(),o._destroy=(E,_)=>{i.close({success(){_&&_(E)}})};const b=o.destroy;return o.destroy=()=>{o.destroy=b,setTimeout(()=>{i.close({fail(){o._destroy(new Error)}})},0)},c(),o};return Qo.default=f,Qo}var Jo={},vm;function Em(){if(vm)return Jo;vm=1;var t=xe&&xe.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(Jo,"__esModule",{value:!0});const e=He,r=So,n=t(_h);let i,s,o,a=!1;function l(){const h=new r.Transform;return h._write=(g,y,b)=>{i.sendSocketMessage({data:g.buffer,success(){b()},fail(){b(new Error)}})},h._flush=g=>{i.closeSocket({success(){g()}})},h}function u(h){h.hostname||(h.hostname="localhost"),h.path||(h.path="/"),h.wsOptions||(h.wsOptions={})}function c(h,g){const y=h.protocol==="alis"?"wss":"ws";let b=`${y}://${h.hostname}${h.path}`;return h.port&&h.port!==80&&h.port!==443&&(b=`${y}://${h.hostname}:${h.port}${h.path}`),typeof h.transformWsUrl=="function"&&(b=h.transformWsUrl(b,h,g)),b}function f(){a||(a=!0,i.onSocketOpen(()=>{o.setReadable(s),o.setWritable(s),o.emit("connect")}),i.onSocketMessage(h=>{if(typeof h.data=="string"){const g=e.Buffer.from(h.data,"base64");s.push(g)}else{const g=new FileReader;g.addEventListener("load",()=>{let y=g.result;y instanceof ArrayBuffer?y=e.Buffer.from(y):y=e.Buffer.from(y,"utf8"),s.push(y)}),g.readAsArrayBuffer(h.data)}}),i.onSocketClose(()=>{o.end(),o.destroy()}),i.onSocketError(h=>{o.destroy(h)}))}const d=(h,g)=>{if(g.hostname=g.hostname||g.host,!g.hostname)throw new Error("Could not determine host. Specify host manually.");const y=g.protocolId==="MQIsdp"&&g.protocolVersion===3?"mqttv3.1":"mqtt";u(g);const b=c(g,h);return i=g.my,i.connectSocket({url:b,protocols:y}),s=l(),o=n.default.obj(),f(),o};return Jo.default=d,Jo}var lu={},lL=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")},uu=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lu,"__esModule",{value:!0});const xs=He,S_=uu(lL),uL=uu(Vr),cL=uu(_h),fL=So,x_=uu(ou),Ks=(0,uL.default)("mqttjs:ws"),dL=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function T_(t,e){let r=`${t.protocol}://${t.hostname}:${t.port}${t.path}`;return typeof t.transformWsUrl=="function"&&(r=t.transformWsUrl(r,t,e)),r}function A_(t){const e=t;return t.hostname||(e.hostname="localhost"),t.port||(t.protocol==="wss"?e.port=443:e.port=80),t.path||(e.path="/"),t.wsOptions||(e.wsOptions={}),!x_.default&&t.protocol==="wss"&&dL.forEach(r=>{Object.prototype.hasOwnProperty.call(t,r)&&!Object.prototype.hasOwnProperty.call(t.wsOptions,r)&&(e.wsOptions[r]=t[r])}),e}function hL(t){const e=A_(t);if(e.hostname||(e.hostname=e.host),!e.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");const r=new URL(document.URL);e.hostname=r.hostname,e.port||(e.port=Number(r.port))}return e.objectMode===void 0&&(e.objectMode=!(e.binary===!0||e.binary===void 0)),e}function pL(t,e,r){Ks("createWebSocket"),Ks(`protocol: ${r.protocolId} ${r.protocolVersion}`);const n=r.protocolId==="MQIsdp"&&r.protocolVersion===3?"mqttv3.1":"mqtt";Ks(`creating new Websocket for url: ${e} and protocol: ${n}`);let i;return r.createWebsocket?i=r.createWebsocket(e,[n],r):i=new S_.default(e,[n],r.wsOptions),i}function gL(t,e){const r=e.protocolId==="MQIsdp"&&e.protocolVersion===3?"mqttv3.1":"mqtt",n=T_(e,t);let i;return e.createWebsocket?i=e.createWebsocket(n,[r],e):i=new WebSocket(n,[r]),i.binaryType="arraybuffer",i}const mL=(t,e)=>{Ks("streamBuilder");const r=A_(e),n=T_(r,t),i=pL(t,n,r),s=S_.default.createWebSocketStream(i,r.wsOptions);return s.url=n,i.on("close",()=>{s.destroy()}),s},yL=(t,e)=>{Ks("browserStreamBuilder");let r;const i=hL(e).browserBufferSize||1024*512,s=e.browserBufferTimeout||1e3,o=!e.objectMode,a=gL(t,e),l=c(e,b,E);e.objectMode||(l._writev=y),l.on("close",()=>{a.close()});const u=typeof a.addEventListener<"u";a.readyState===a.OPEN?r=l:(r=(0,cL.default)(void 0,void 0,e),e.objectMode||(r._writev=y),u?a.addEventListener("open",f):a.onopen=f),r.socket=a,u?(a.addEventListener("close",d),a.addEventListener("error",h),a.addEventListener("message",g)):(a.onclose=d,a.onerror=h,a.onmessage=g);function c(_,v,T){const C=new fL.Transform({objectMode:_.objectMode});return C._write=v,C._flush=T,C}function f(){r.setReadable(l),r.setWritable(l),r.emit("connect")}function d(){r.end(),r.destroy()}function h(_){r.destroy(_)}function g(_){let{data:v}=_;v instanceof ArrayBuffer?v=xs.Buffer.from(v):v=xs.Buffer.from(v,"utf8"),l.push(v)}function y(_,v){const T=new Array(_.length);for(let C=0;C<_.length;C++)typeof _[C].chunk=="string"?T[C]=xs.Buffer.from(_[C],"utf8"):T[C]=_[C].chunk;this._write(xs.Buffer.concat(T),"binary",v)}function b(_,v,T){a.bufferedAmount>i&&setTimeout(b,s,_,v,T),o&&typeof _=="string"&&(_=xs.Buffer.from(_,"utf8"));try{a.send(_)}catch(C){return T(C)}T()}function E(_){a.close(),_()}return r};lu.default=x_.default?yL:mL;var cu=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ao,"__esModule",{value:!0});Ao.connectAsync=void 0;const wL=cu(Vr),bL=cu(zR),_L=cu(oo),vL=cu(ou),Sm=(0,wL.default)("mqttjs"),at={};vL.default?(at.wx=_m().default,at.wxs=_m().default,at.ali=Em().default,at.alis=Em().default):(at.mqtt=mm().default,at.tcp=mm().default,at.ssl=wm().default,at.tls=at.ssl,at.mqtts=wm().default);at.ws=lu.default;at.wss=lu.default;function EL(t){let e;t.auth&&(e=t.auth.match(/^(.+):(.+)$/),e?(t.username=e[1],t.password=e[2]):t.username=t.auth)}function M_(t,e){if(Sm("connecting to an MQTT broker..."),typeof t=="object"&&!e&&(e=t,t=""),e=e||{},t&&typeof t=="string"){const i=bL.default.parse(t,!0);if(i.port!=null&&(i.port=Number(i.port)),e=Object.assign(Object.assign({},i),e),e.protocol===null)throw new Error("Missing protocol");e.protocol=e.protocol.replace(/:$/,"")}if(EL(e),e.query&&typeof e.query.clientId=="string"&&(e.clientId=e.query.clientId),e.cert&&e.key)if(e.protocol){if(["mqtts","wss","wxs","alis"].indexOf(e.protocol)===-1)switch(e.protocol){case"mqtt":e.protocol="mqtts";break;case"ws":e.protocol="wss";break;case"wx":e.protocol="wxs";break;case"ali":e.protocol="alis";break;default:throw new Error(`Unknown protocol for secure connection: "${e.protocol}"!`)}}else throw new Error("Missing secure protocol key");if(!at[e.protocol]){const i=["mqtts","wss"].indexOf(e.protocol)!==-1;e.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((s,o)=>i&&o%2===0?!1:typeof at[s]=="function")[0]}if(e.clean===!1&&!e.clientId)throw new Error("Missing clientId for unclean clients");e.protocol&&(e.defaultProtocol=e.protocol);function r(i){return e.servers&&((!i._reconnectCount||i._reconnectCount===e.servers.length)&&(i._reconnectCount=0),e.host=e.servers[i._reconnectCount].host,e.port=e.servers[i._reconnectCount].port,e.protocol=e.servers[i._reconnectCount].protocol?e.servers[i._reconnectCount].protocol:e.defaultProtocol,e.hostname=e.host,i._reconnectCount++),Sm("calling streambuilder for",e.protocol),at[e.protocol](i,e)}const n=new _L.default(r,e);return n.on("error",()=>{}),n}function SL(t,e,r=!0){return new Promise((n,i)=>{const s=M_(t,e),o={connect:l=>{a(),n(s)},end:()=>{a(),n(s)},error:l=>{a(),s.end(),i(l)}};r===!1&&(o.close=()=>{o.error(new Error("Couldn't connect to server"))});function a(){Object.keys(o).forEach(l=>{s.off(l,o[l])})}Object.keys(o).forEach(l=>{s.on(l,o[l])})})}Ao.connectAsync=SL;Ao.default=M_;(function(t){var e=xe&&xe.__createBinding||(Object.create?function(d,h,g,y){y===void 0&&(y=g);var b=Object.getOwnPropertyDescriptor(h,g);(!b||("get"in b?!h.__esModule:b.writable||b.configurable))&&(b={enumerable:!0,get:function(){return h[g]}}),Object.defineProperty(d,y,b)}:function(d,h,g,y){y===void 0&&(y=g),d[y]=h[g]}),r=xe&&xe.__setModuleDefault||(Object.create?function(d,h){Object.defineProperty(d,"default",{enumerable:!0,value:h})}:function(d,h){d.default=h}),n=xe&&xe.__importStar||function(d){if(d&&d.__esModule)return d;var h={};if(d!=null)for(var g in d)g!=="default"&&Object.prototype.hasOwnProperty.call(d,g)&&e(h,d,g);return r(h,d),h},i=xe&&xe.__exportStar||function(d,h){for(var g in d)g!=="default"&&!Object.prototype.hasOwnProperty.call(h,g)&&e(h,d,g)},s=xe&&xe.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=t.UniqueMessageIdProvider=t.DefaultMessageIdProvider=t.Store=t.MqttClient=t.connectAsync=t.connect=t.Client=void 0;const o=s(oo);t.MqttClient=o.default;const a=s(Hl);t.DefaultMessageIdProvider=a.default;const l=s(yh);t.UniqueMessageIdProvider=l.default;const u=s(tu);t.Store=u.default;const c=n(Ao);t.connect=c.default,Object.defineProperty(t,"connectAsync",{enumerable:!0,get:function(){return c.connectAsync}}),t.Client=o.default,i(oo,t),i(Dr,t);var f=xo;Object.defineProperty(t,"ReasonCodes",{enumerable:!0,get:function(){return f.ReasonCodes}})})(Z1);function xa(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function xL(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function vh(t){let e,r,n;t.length!==2?(e=xa,r=(a,l)=>xa(t(a),l),n=(a,l)=>t(a)-l):(e=t===xa||t===xL?t:TL,r=t,n=t);function i(a,l,u=0,c=a.length){if(u<c){if(e(l,l)!==0)return c;do{const f=u+c>>>1;r(a[f],l)<0?u=f+1:c=f}while(u<c)}return u}function s(a,l,u=0,c=a.length){if(u<c){if(e(l,l)!==0)return c;do{const f=u+c>>>1;r(a[f],l)<=0?u=f+1:c=f}while(u<c)}return u}function o(a,l,u=0,c=a.length){const f=i(a,l,u,c-1);return f>u&&n(a[f-1],l)>-n(a[f],l)?f-1:f}return{left:i,center:o,right:s}}function TL(){return 0}function AL(t){return t===null?NaN:+t}const ML=vh(xa),CL=ML.right;vh(AL).center;const IL=CL;function DW(t,e){let r,n;if(e===void 0)for(const i of t)i!=null&&(r===void 0?i>=i&&(r=n=i):(r>i&&(r=i),n<i&&(n=i)));else{let i=-1;for(let s of t)(s=e(s,++i,t))!=null&&(r===void 0?s>=s&&(r=n=s):(r>s&&(r=s),n<s&&(n=s)))}return[r,n]}class xm extends Map{constructor(e,r=RL){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(const[n,i]of e)this.set(n,i)}get(e){return super.get(Tm(this,e))}has(e){return super.has(Tm(this,e))}set(e,r){return super.set(OL(this,e),r)}delete(e){return super.delete(PL(this,e))}}function Tm({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):r}function OL({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function PL({_intern:t,_key:e},r){const n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function RL(t){return t!==null&&typeof t=="object"?t.valueOf():t}const LL=Math.sqrt(50),NL=Math.sqrt(10),$L=Math.sqrt(2);function Za(t,e,r){const n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),s=n/Math.pow(10,i),o=s>=LL?10:s>=NL?5:s>=$L?2:1;let a,l,u;return i<0?(u=Math.pow(10,-i)/o,a=Math.round(t*u),l=Math.round(e*u),a/u<t&&++a,l/u>e&&--l,u=-u):(u=Math.pow(10,i)*o,a=Math.round(t/u),l=Math.round(e/u),a*u<t&&++a,l*u>e&&--l),l<a&&.5<=r&&r<2?Za(t,e,r*2):[a,l,u]}function kL(t,e,r){if(e=+e,t=+t,r=+r,!(r>0))return[];if(t===e)return[t];const n=e<t,[i,s,o]=n?Za(e,t,r):Za(t,e,r);if(!(s>=i))return[];const a=s-i+1,l=new Array(a);if(n)if(o<0)for(let u=0;u<a;++u)l[u]=(s-u)/-o;else for(let u=0;u<a;++u)l[u]=(s-u)*o;else if(o<0)for(let u=0;u<a;++u)l[u]=(i+u)/-o;else for(let u=0;u<a;++u)l[u]=(i+u)*o;return l}function Bf(t,e,r){return e=+e,t=+t,r=+r,Za(t,e,r)[2]}function Ff(t,e,r){e=+e,t=+t,r=+r;const n=e<t,i=n?Bf(e,t,r):Bf(t,e,r);return(n?-1:1)*(i<0?1/-i:i)}function BW(t,e){let r;if(e===void 0)for(const n of t)n!=null&&(r<n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r<i||r===void 0&&i>=i)&&(r=i)}return r}function DL(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,s=new Array(i);++n<i;)s[n]=t+n*r;return s}function BL(t){return t}var _c=1,Ta=2,Uf=3,Ns=4,Am=1e-6;function FL(t){return"translate("+t+",0)"}function UL(t){return"translate(0,"+t+")"}function jL(t){return e=>+t(e)}function zL(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function HL(){return!this.__axis}function Eh(t,e){var r=[],n=null,i=null,s=6,o=6,a=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=t===_c||t===Ns?-1:1,c=t===Ns||t===Ta?"x":"y",f=t===_c||t===Uf?FL:UL;function d(h){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,r):BL),b=Math.max(s,0)+a,E=e.range(),_=+E[0]+l,v=+E[E.length-1]+l,T=(e.bandwidth?zL:jL)(e.copy(),l),C=h.selection?h.selection():h,O=C.selectAll(".domain").data([null]),D=C.selectAll(".tick").data(g,e).order(),F=D.exit(),L=D.enter().append("g").attr("class","tick"),U=D.select("line"),k=D.select("text");O=O.merge(O.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),D=D.merge(L),U=U.merge(L.append("line").attr("stroke","currentColor").attr(c+"2",u*s)),k=k.merge(L.append("text").attr("fill","currentColor").attr(c,u*b).attr("dy",t===_c?"0em":t===Uf?"0.71em":"0.32em")),h!==C&&(O=O.transition(h),D=D.transition(h),U=U.transition(h),k=k.transition(h),F=F.transition(h).attr("opacity",Am).attr("transform",function(W){return isFinite(W=T(W))?f(W+l):this.getAttribute("transform")}),L.attr("opacity",Am).attr("transform",function(W){var $=this.parentNode.__axis;return f(($&&isFinite($=$(W))?$:T(W))+l)})),F.remove(),O.attr("d",t===Ns||t===Ta?o?"M"+u*o+","+_+"H"+l+"V"+v+"H"+u*o:"M"+l+","+_+"V"+v:o?"M"+_+","+u*o+"V"+l+"H"+v+"V"+u*o:"M"+_+","+l+"H"+v),D.attr("opacity",1).attr("transform",function(W){return f(T(W)+l)}),U.attr(c+"2",u*s),k.attr(c,u*b).text(y),C.filter(HL).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Ta?"start":t===Ns?"end":"middle"),C.each(function(){this.__axis=T})}return d.scale=function(h){return arguments.length?(e=h,d):e},d.ticks=function(){return r=Array.from(arguments),d},d.tickArguments=function(h){return arguments.length?(r=h==null?[]:Array.from(h),d):r.slice()},d.tickValues=function(h){return arguments.length?(n=h==null?null:Array.from(h),d):n&&n.slice()},d.tickFormat=function(h){return arguments.length?(i=h,d):i},d.tickSize=function(h){return arguments.length?(s=o=+h,d):s},d.tickSizeInner=function(h){return arguments.length?(s=+h,d):s},d.tickSizeOuter=function(h){return arguments.length?(o=+h,d):o},d.tickPadding=function(h){return arguments.length?(a=+h,d):a},d.offset=function(h){return arguments.length?(l=+h,d):l},d}function FW(t){return Eh(Ta,t)}function UW(t){return Eh(Uf,t)}function jW(t){return Eh(Ns,t)}var WL={value:()=>{}};function C_(){for(var t=0,e=arguments.length,r={},n;t<e;++t){if(!(n=arguments[t]+"")||n in r||/[\s.]/.test(n))throw new Error("illegal type: "+n);r[n]=[]}return new Aa(r)}function Aa(t){this._=t}function VL(t,e){return t.trim().split(/^|\s+/).map(function(r){var n="",i=r.indexOf(".");if(i>=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}Aa.prototype=C_.prototype={constructor:Aa,on:function(t,e){var r=this._,n=VL(t+"",r),i,s=-1,o=n.length;if(arguments.length<2){for(;++s<o;)if((i=(t=n[s]).type)&&(i=qL(r[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++s<o;)if(i=(t=n[s]).type)r[i]=Mm(r[i],t.name,e);else if(e==null)for(i in r)r[i]=Mm(r[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new Aa(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var r=new Array(i),n=0,i,s;n<i;++n)r[n]=arguments[n+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=this._[t],n=0,i=s.length;n<i;++n)s[n].value.apply(e,r)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var n=this._[t],i=0,s=n.length;i<s;++i)n[i].value.apply(e,r)}};function qL(t,e){for(var r=0,n=t.length,i;r<n;++r)if((i=t[r]).name===e)return i.value}function Mm(t,e,r){for(var n=0,i=t.length;n<i;++n)if(t[n].name===e){t[n]=WL,t=t.slice(0,n).concat(t.slice(n+1));break}return r!=null&&t.push({name:e,value:r}),t}var jf="http://www.w3.org/1999/xhtml";const Cm={svg:"http://www.w3.org/2000/svg",xhtml:jf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function fu(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),Cm.hasOwnProperty(e)?{space:Cm[e],local:t}:t}function YL(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===jf&&e.documentElement.namespaceURI===jf?e.createElement(t):e.createElementNS(r,t)}}function KL(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function I_(t){var e=fu(t);return(e.local?KL:YL)(e)}function GL(){}function Sh(t){return t==null?GL:function(){return this.querySelector(t)}}function XL(t){typeof t!="function"&&(t=Sh(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s=e[i],o=s.length,a=n[i]=new Array(o),l,u,c=0;c<o;++c)(l=s[c])&&(u=t.call(l,l.__data__,c,s))&&("__data__"in l&&(u.__data__=l.__data__),a[c]=u);return new Et(n,this._parents)}function QL(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function JL(){return[]}function O_(t){return t==null?JL:function(){return this.querySelectorAll(t)}}function ZL(t){return function(){return QL(t.apply(this,arguments))}}function eN(t){typeof t=="function"?t=ZL(t):t=O_(t);for(var e=this._groups,r=e.length,n=[],i=[],s=0;s<r;++s)for(var o=e[s],a=o.length,l,u=0;u<a;++u)(l=o[u])&&(n.push(t.call(l,l.__data__,u,o)),i.push(l));return new Et(n,i)}function P_(t){return function(){return this.matches(t)}}function R_(t){return function(e){return e.matches(t)}}var tN=Array.prototype.find;function rN(t){return function(){return tN.call(this.children,t)}}function nN(){return this.firstElementChild}function iN(t){return this.select(t==null?nN:rN(typeof t=="function"?t:R_(t)))}var sN=Array.prototype.filter;function oN(){return Array.from(this.children)}function aN(t){return function(){return sN.call(this.children,t)}}function lN(t){return this.selectAll(t==null?oN:aN(typeof t=="function"?t:R_(t)))}function uN(t){typeof t!="function"&&(t=P_(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s=e[i],o=s.length,a=n[i]=[],l,u=0;u<o;++u)(l=s[u])&&t.call(l,l.__data__,u,s)&&a.push(l);return new Et(n,this._parents)}function L_(t){return new Array(t.length)}function cN(){return new Et(this._enter||this._groups.map(L_),this._parents)}function el(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}el.prototype={constructor:el,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function fN(t){return function(){return t}}function dN(t,e,r,n,i,s){for(var o=0,a,l=e.length,u=s.length;o<u;++o)(a=e[o])?(a.__data__=s[o],n[o]=a):r[o]=new el(t,s[o]);for(;o<l;++o)(a=e[o])&&(i[o]=a)}function hN(t,e,r,n,i,s,o){var a,l,u=new Map,c=e.length,f=s.length,d=new Array(c),h;for(a=0;a<c;++a)(l=e[a])&&(d[a]=h=o.call(l,l.__data__,a,e)+"",u.has(h)?i[a]=l:u.set(h,l));for(a=0;a<f;++a)h=o.call(t,s[a],a,s)+"",(l=u.get(h))?(n[a]=l,l.__data__=s[a],u.delete(h)):r[a]=new el(t,s[a]);for(a=0;a<c;++a)(l=e[a])&&u.get(d[a])===l&&(i[a]=l)}function pN(t){return t.__data__}function gN(t,e){if(!arguments.length)return Array.from(this,pN);var r=e?hN:dN,n=this._parents,i=this._groups;typeof t!="function"&&(t=fN(t));for(var s=i.length,o=new Array(s),a=new Array(s),l=new Array(s),u=0;u<s;++u){var c=n[u],f=i[u],d=f.length,h=mN(t.call(c,c&&c.__data__,u,n)),g=h.length,y=a[u]=new Array(g),b=o[u]=new Array(g),E=l[u]=new Array(d);r(c,f,y,b,E,h,e);for(var _=0,v=0,T,C;_<g;++_)if(T=y[_]){for(_>=v&&(v=_+1);!(C=b[v])&&++v<g;);T._next=C||null}}return o=new Et(o,n),o._enter=a,o._exit=l,o}function mN(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function yN(){return new Et(this._exit||this._groups.map(L_),this._parents)}function wN(t,e,r){var n=this.enter(),i=this,s=this.exit();return typeof t=="function"?(n=t(n),n&&(n=n.selection())):n=n.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?s.remove():r(s),n&&i?n.merge(i).order():i}function bN(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,s=n.length,o=Math.min(i,s),a=new Array(i),l=0;l<o;++l)for(var u=r[l],c=n[l],f=u.length,d=a[l]=new Array(f),h,g=0;g<f;++g)(h=u[g]||c[g])&&(d[g]=h);for(;l<i;++l)a[l]=r[l];return new Et(a,this._parents)}function _N(){for(var t=this._groups,e=-1,r=t.length;++e<r;)for(var n=t[e],i=n.length-1,s=n[i],o;--i>=0;)(o=n[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function vN(t){t||(t=EN);function e(f,d){return f&&d?t(f.__data__,d.__data__):!f-!d}for(var r=this._groups,n=r.length,i=new Array(n),s=0;s<n;++s){for(var o=r[s],a=o.length,l=i[s]=new Array(a),u,c=0;c<a;++c)(u=o[c])&&(l[c]=u);l.sort(e)}return new Et(i,this._parents).order()}function EN(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function SN(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function xN(){return Array.from(this)}function TN(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,s=n.length;i<s;++i){var o=n[i];if(o)return o}return null}function AN(){let t=0;for(const e of this)++t;return t}function MN(){return!this.node()}function CN(t){for(var e=this._groups,r=0,n=e.length;r<n;++r)for(var i=e[r],s=0,o=i.length,a;s<o;++s)(a=i[s])&&t.call(a,a.__data__,s,i);return this}function IN(t){return function(){this.removeAttribute(t)}}function ON(t){return function(){this.removeAttributeNS(t.space,t.local)}}function PN(t,e){return function(){this.setAttribute(t,e)}}function RN(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function LN(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function NN(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function $N(t,e){var r=fu(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?ON:IN:typeof e=="function"?r.local?NN:LN:r.local?RN:PN)(r,e))}function N_(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function kN(t){return function(){this.style.removeProperty(t)}}function DN(t,e,r){return function(){this.style.setProperty(t,e,r)}}function BN(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function FN(t,e,r){return arguments.length>1?this.each((e==null?kN:typeof e=="function"?BN:DN)(t,e,r??"")):Hi(this.node(),t)}function Hi(t,e){return t.style.getPropertyValue(e)||N_(t).getComputedStyle(t,null).getPropertyValue(e)}function UN(t){return function(){delete this[t]}}function jN(t,e){return function(){this[t]=e}}function zN(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function HN(t,e){return arguments.length>1?this.each((e==null?UN:typeof e=="function"?zN:jN)(t,e)):this.node()[t]}function $_(t){return t.trim().split(/^|\s+/)}function xh(t){return t.classList||new k_(t)}function k_(t){this._node=t,this._names=$_(t.getAttribute("class")||"")}k_.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function D_(t,e){for(var r=xh(t),n=-1,i=e.length;++n<i;)r.add(e[n])}function B_(t,e){for(var r=xh(t),n=-1,i=e.length;++n<i;)r.remove(e[n])}function WN(t){return function(){D_(this,t)}}function VN(t){return function(){B_(this,t)}}function qN(t,e){return function(){(e.apply(this,arguments)?D_:B_)(this,t)}}function YN(t,e){var r=$_(t+"");if(arguments.length<2){for(var n=xh(this.node()),i=-1,s=r.length;++i<s;)if(!n.contains(r[i]))return!1;return!0}return this.each((typeof e=="function"?qN:e?WN:VN)(r,e))}function KN(){this.textContent=""}function GN(t){return function(){this.textContent=t}}function XN(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function QN(t){return arguments.length?this.each(t==null?KN:(typeof t=="function"?XN:GN)(t)):this.node().textContent}function JN(){this.innerHTML=""}function ZN(t){return function(){this.innerHTML=t}}function e$(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function t$(t){return arguments.length?this.each(t==null?JN:(typeof t=="function"?e$:ZN)(t)):this.node().innerHTML}function r$(){this.nextSibling&&this.parentNode.appendChild(this)}function n$(){return this.each(r$)}function i$(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function s$(){return this.each(i$)}function o$(t){var e=typeof t=="function"?t:I_(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function a$(){return null}function l$(t,e){var r=typeof t=="function"?t:I_(t),n=e==null?a$:typeof e=="function"?e:Sh(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}function u$(){var t=this.parentNode;t&&t.removeChild(this)}function c$(){return this.each(u$)}function f$(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function d$(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function h$(t){return this.select(t?d$:f$)}function p$(t){return arguments.length?this.property("__data__",t):this.node().__data__}function g$(t){return function(e){t.call(this,e,this.__data__)}}function m$(t){return t.trim().split(/^|\s+/).map(function(e){var r="",n=e.indexOf(".");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function y$(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,i=e.length,s;r<i;++r)s=e[r],(!t.type||s.type===t.type)&&s.name===t.name?this.removeEventListener(s.type,s.listener,s.options):e[++n]=s;++n?e.length=n:delete this.__on}}}function w$(t,e,r){return function(){var n=this.__on,i,s=g$(e);if(n){for(var o=0,a=n.length;o<a;++o)if((i=n[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=s,i.options=r),i.value=e;return}}this.addEventListener(t.type,s,r),i={type:t.type,name:t.name,value:e,listener:s,options:r},n?n.push(i):this.__on=[i]}}function b$(t,e,r){var n=m$(t+""),i,s=n.length,o;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,u=a.length,c;l<u;++l)for(i=0,c=a[l];i<s;++i)if((o=n[i]).type===c.type&&o.name===c.name)return c.value}return}for(a=e?w$:y$,i=0;i<s;++i)this.each(a(n[i],e,r));return this}function F_(t,e,r){var n=N_(t),i=n.CustomEvent;typeof i=="function"?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function _$(t,e){return function(){return F_(this,t,e)}}function v$(t,e){return function(){return F_(this,t,e.apply(this,arguments))}}function E$(t,e){return this.each((typeof e=="function"?v$:_$)(t,e))}function*S$(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,s=n.length,o;i<s;++i)(o=n[i])&&(yield o)}var U_=[null];function Et(t,e){this._groups=t,this._parents=e}function Co(){return new Et([[document.documentElement]],U_)}function x$(){return this}Et.prototype=Co.prototype={constructor:Et,select:XL,selectAll:eN,selectChild:iN,selectChildren:lN,filter:uN,data:gN,enter:cN,exit:yN,join:wN,merge:bN,selection:x$,order:_N,sort:vN,call:SN,nodes:xN,node:TN,size:AN,empty:MN,each:CN,attr:$N,style:FN,property:HN,classed:YN,text:QN,html:t$,raise:n$,lower:s$,append:o$,insert:l$,remove:c$,clone:h$,datum:p$,on:b$,dispatch:E$,[Symbol.iterator]:S$};function zW(t){return typeof t=="string"?new Et([[document.querySelector(t)]],[document.documentElement]):new Et([[t]],U_)}function Th(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function j_(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function Io(){}var uo=.7,tl=1/uo,$i="\\s*([+-]?\\d+)\\s*",co="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",cr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",T$=/^#([0-9a-f]{3,8})$/,A$=new RegExp(`^rgb\\(${$i},${$i},${$i}\\)$`),M$=new RegExp(`^rgb\\(${cr},${cr},${cr}\\)$`),C$=new RegExp(`^rgba\\(${$i},${$i},${$i},${co}\\)$`),I$=new RegExp(`^rgba\\(${cr},${cr},${cr},${co}\\)$`),O$=new RegExp(`^hsl\\(${co},${cr},${cr}\\)$`),P$=new RegExp(`^hsla\\(${co},${cr},${cr},${co}\\)$`),Im={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};Th(Io,Kn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Om,formatHex:Om,formatHex8:R$,formatHsl:L$,formatRgb:Pm,toString:Pm});function Om(){return this.rgb().formatHex()}function R$(){return this.rgb().formatHex8()}function L$(){return z_(this).formatHsl()}function Pm(){return this.rgb().formatRgb()}function Kn(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=T$.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?Rm(e):r===3?new mt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Zo(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Zo(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=A$.exec(t))?new mt(e[1],e[2],e[3],1):(e=M$.exec(t))?new mt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=C$.exec(t))?Zo(e[1],e[2],e[3],e[4]):(e=I$.exec(t))?Zo(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=O$.exec(t))?$m(e[1],e[2]/100,e[3]/100,1):(e=P$.exec(t))?$m(e[1],e[2]/100,e[3]/100,e[4]):Im.hasOwnProperty(t)?Rm(Im[t]):t==="transparent"?new mt(NaN,NaN,NaN,0):null}function Rm(t){return new mt(t>>16&255,t>>8&255,t&255,1)}function Zo(t,e,r,n){return n<=0&&(t=e=r=NaN),new mt(t,e,r,n)}function N$(t){return t instanceof Io||(t=Kn(t)),t?(t=t.rgb(),new mt(t.r,t.g,t.b,t.opacity)):new mt}function zf(t,e,r,n){return arguments.length===1?N$(t):new mt(t,e,r,n??1)}function mt(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}Th(mt,zf,j_(Io,{brighter(t){return t=t==null?tl:Math.pow(tl,t),new mt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?uo:Math.pow(uo,t),new mt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new mt(zn(this.r),zn(this.g),zn(this.b),rl(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:Lm,formatHex:Lm,formatHex8:$$,formatRgb:Nm,toString:Nm}));function Lm(){return`#${kn(this.r)}${kn(this.g)}${kn(this.b)}`}function $$(){return`#${kn(this.r)}${kn(this.g)}${kn(this.b)}${kn((isNaN(this.opacity)?1:this.opacity)*255)}`}function Nm(){const t=rl(this.opacity);return`${t===1?"rgb(":"rgba("}${zn(this.r)}, ${zn(this.g)}, ${zn(this.b)}${t===1?")":`, ${t})`}`}function rl(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function zn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function kn(t){return t=zn(t),(t<16?"0":"")+t.toString(16)}function $m(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new Ht(t,e,r,n)}function z_(t){if(t instanceof Ht)return new Ht(t.h,t.s,t.l,t.opacity);if(t instanceof Io||(t=Kn(t)),!t)return new Ht;if(t instanceof Ht)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),s=Math.max(e,r,n),o=NaN,a=s-i,l=(s+i)/2;return a?(e===s?o=(r-n)/a+(r<n)*6:r===s?o=(n-e)/a+2:o=(e-r)/a+4,a/=l<.5?s+i:2-s-i,o*=60):a=l>0&&l<1?0:o,new Ht(o,a,l,t.opacity)}function k$(t,e,r,n){return arguments.length===1?z_(t):new Ht(t,e,r,n??1)}function Ht(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}Th(Ht,k$,j_(Io,{brighter(t){return t=t==null?tl:Math.pow(tl,t),new Ht(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?uo:Math.pow(uo,t),new Ht(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new mt(vc(t>=240?t-240:t+120,i,n),vc(t,i,n),vc(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new Ht(km(this.h),ea(this.s),ea(this.l),rl(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(){const t=rl(this.opacity);return`${t===1?"hsl(":"hsla("}${km(this.h)}, ${ea(this.s)*100}%, ${ea(this.l)*100}%${t===1?")":`, ${t})`}`}}));function km(t){return t=(t||0)%360,t<0?t+360:t}function ea(t){return Math.max(0,Math.min(1,t||0))}function vc(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}const Ah=t=>()=>t;function D$(t,e){return function(r){return t+r*e}}function B$(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function F$(t){return(t=+t)==1?H_:function(e,r){return r-e?B$(e,r,t):Ah(isNaN(e)?r:e)}}function H_(t,e){var r=e-t;return r?D$(t,r):Ah(isNaN(t)?e:t)}const nl=function t(e){var r=F$(e);function n(i,s){var o=r((i=zf(i)).r,(s=zf(s)).r),a=r(i.g,s.g),l=r(i.b,s.b),u=H_(i.opacity,s.opacity);return function(c){return i.r=o(c),i.g=a(c),i.b=l(c),i.opacity=u(c),i+""}}return n.gamma=t,n}(1);function U$(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(s){for(i=0;i<r;++i)n[i]=t[i]*(1-s)+e[i]*s;return n}}function j$(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function z$(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),s=new Array(r),o;for(o=0;o<n;++o)i[o]=Mh(t[o],e[o]);for(;o<r;++o)s[o]=e[o];return function(a){for(o=0;o<n;++o)s[o]=i[o](a);return s}}function H$(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}function Ut(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function W$(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=Mh(t[i],e[i]):n[i]=e[i];return function(s){for(i in r)n[i]=r[i](s);return n}}var Hf=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ec=new RegExp(Hf.source,"g");function V$(t){return function(){return t}}function q$(t){return function(e){return t(e)+""}}function W_(t,e){var r=Hf.lastIndex=Ec.lastIndex=0,n,i,s,o=-1,a=[],l=[];for(t=t+"",e=e+"";(n=Hf.exec(t))&&(i=Ec.exec(e));)(s=i.index)>r&&(s=e.slice(r,s),a[o]?a[o]+=s:a[++o]=s),(n=n[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,l.push({i:o,x:Ut(n,i)})),r=Ec.lastIndex;return r<e.length&&(s=e.slice(r),a[o]?a[o]+=s:a[++o]=s),a.length<2?l[0]?q$(l[0].x):V$(e):(e=l.length,function(u){for(var c=0,f;c<e;++c)a[(f=l[c]).i]=f.x(u);return a.join("")})}function Mh(t,e){var r=typeof e,n;return e==null||r==="boolean"?Ah(e):(r==="number"?Ut:r==="string"?(n=Kn(e))?(e=n,nl):W_:e instanceof Kn?nl:e instanceof Date?H$:j$(e)?U$:Array.isArray(e)?z$:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?W$:Ut)(t,e)}function Y$(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var Dm=180/Math.PI,Wf={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function V_(t,e,r,n,i,s){var o,a,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(a=Math.sqrt(r*r+n*n))&&(r/=a,n/=a,l/=a),t*n<e*r&&(t=-t,e=-e,l=-l,o=-o),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*Dm,skewX:Math.atan(l)*Dm,scaleX:o,scaleY:a}}var ta;function K$(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Wf:V_(e.a,e.b,e.c,e.d,e.e,e.f)}function G$(t){return t==null||(ta||(ta=document.createElementNS("http://www.w3.org/2000/svg","g")),ta.setAttribute("transform",t),!(t=ta.transform.baseVal.consolidate()))?Wf:(t=t.matrix,V_(t.a,t.b,t.c,t.d,t.e,t.f))}function q_(t,e,r,n){function i(u){return u.length?u.pop()+" ":""}function s(u,c,f,d,h,g){if(u!==f||c!==d){var y=h.push("translate(",null,e,null,r);g.push({i:y-4,x:Ut(u,f)},{i:y-2,x:Ut(c,d)})}else(f||d)&&h.push("translate("+f+e+d+r)}function o(u,c,f,d){u!==c?(u-c>180?c+=360:c-u>180&&(u+=360),d.push({i:f.push(i(f)+"rotate(",null,n)-2,x:Ut(u,c)})):c&&f.push(i(f)+"rotate("+c+n)}function a(u,c,f,d){u!==c?d.push({i:f.push(i(f)+"skewX(",null,n)-2,x:Ut(u,c)}):c&&f.push(i(f)+"skewX("+c+n)}function l(u,c,f,d,h,g){if(u!==f||c!==d){var y=h.push(i(h)+"scale(",null,",",null,")");g.push({i:y-4,x:Ut(u,f)},{i:y-2,x:Ut(c,d)})}else(f!==1||d!==1)&&h.push(i(h)+"scale("+f+","+d+")")}return function(u,c){var f=[],d=[];return u=t(u),c=t(c),s(u.translateX,u.translateY,c.translateX,c.translateY,f,d),o(u.rotate,c.rotate,f,d),a(u.skewX,c.skewX,f,d),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,f,d),u=c=null,function(h){for(var g=-1,y=d.length,b;++g<y;)f[(b=d[g]).i]=b.x(h);return f.join("")}}}var X$=q_(K$,"px, ","px)","deg)"),Q$=q_(G$,", ",")",")"),Wi=0,$s=0,Ts=0,Y_=1e3,il,ks,sl=0,Gn=0,du=0,fo=typeof performance=="object"&&performance.now?performance:Date,K_=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ch(){return Gn||(K_(J$),Gn=fo.now()+du)}function J$(){Gn=0}function ol(){this._call=this._time=this._next=null}ol.prototype=G_.prototype={constructor:ol,restart:function(t,e,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?Ch():+r)+(e==null?0:+e),!this._next&&ks!==this&&(ks?ks._next=this:il=this,ks=this),this._call=t,this._time=r,Vf()},stop:function(){this._call&&(this._call=null,this._time=1/0,Vf())}};function G_(t,e,r){var n=new ol;return n.restart(t,e,r),n}function Z$(){Ch(),++Wi;for(var t=il,e;t;)(e=Gn-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Wi}function Bm(){Gn=(sl=fo.now())+du,Wi=$s=0;try{Z$()}finally{Wi=0,tk(),Gn=0}}function ek(){var t=fo.now(),e=t-sl;e>Y_&&(du-=e,sl=t)}function tk(){for(var t,e=il,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:il=r);ks=t,Vf(n)}function Vf(t){if(!Wi){$s&&($s=clearTimeout($s));var e=t-Gn;e>24?(t<1/0&&($s=setTimeout(Bm,t-fo.now()-du)),Ts&&(Ts=clearInterval(Ts))):(Ts||(sl=fo.now(),Ts=setInterval(ek,Y_)),Wi=1,K_(Bm))}}function Fm(t,e,r){var n=new ol;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var rk=C_("start","end","cancel","interrupt"),nk=[],X_=0,Um=1,qf=2,Ma=3,jm=4,Yf=5,Ca=6;function hu(t,e,r,n,i,s){var o=t.__transition;if(!o)t.__transition={};else if(r in o)return;ik(t,r,{name:e,index:n,group:i,on:rk,tween:nk,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:X_})}function Ih(t,e){var r=Xt(t,e);if(r.state>X_)throw new Error("too late; already scheduled");return r}function br(t,e){var r=Xt(t,e);if(r.state>Ma)throw new Error("too late; already running");return r}function Xt(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function ik(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=G_(s,0,r.time);function s(u){r.state=Um,r.timer.restart(o,r.delay,r.time),r.delay<=u&&o(u-r.delay)}function o(u){var c,f,d,h;if(r.state!==Um)return l();for(c in n)if(h=n[c],h.name===r.name){if(h.state===Ma)return Fm(o);h.state===jm?(h.state=Ca,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete n[c]):+c<e&&(h.state=Ca,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete n[c])}if(Fm(function(){r.state===Ma&&(r.state=jm,r.timer.restart(a,r.delay,r.time),a(u))}),r.state=qf,r.on.call("start",t,t.__data__,r.index,r.group),r.state===qf){for(r.state=Ma,i=new Array(d=r.tween.length),c=0,f=-1;c<d;++c)(h=r.tween[c].value.call(t,t.__data__,r.index,r.group))&&(i[++f]=h);i.length=f+1}}function a(u){for(var c=u<r.duration?r.ease.call(null,u/r.duration):(r.timer.restart(l),r.state=Yf,1),f=-1,d=i.length;++f<d;)i[f].call(t,c);r.state===Yf&&(r.on.call("end",t,t.__data__,r.index,r.group),l())}function l(){r.state=Ca,r.timer.stop(),delete n[e];for(var u in n)return;delete t.__transition}}function sk(t,e){var r=t.__transition,n,i,s=!0,o;if(r){e=e==null?null:e+"";for(o in r){if((n=r[o]).name!==e){s=!1;continue}i=n.state>qf&&n.state<Yf,n.state=Ca,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete r[o]}s&&delete t.__transition}}function ok(t){return this.each(function(){sk(this,t)})}function ak(t,e){var r,n;return function(){var i=br(this,t),s=i.tween;if(s!==r){n=r=s;for(var o=0,a=n.length;o<a;++o)if(n[o].name===e){n=n.slice(),n.splice(o,1);break}}i.tween=n}}function lk(t,e,r){var n,i;if(typeof r!="function")throw new Error;return function(){var s=br(this,t),o=s.tween;if(o!==n){i=(n=o).slice();for(var a={name:e,value:r},l=0,u=i.length;l<u;++l)if(i[l].name===e){i[l]=a;break}l===u&&i.push(a)}s.tween=i}}function uk(t,e){var r=this._id;if(t+="",arguments.length<2){for(var n=Xt(this.node(),r).tween,i=0,s=n.length,o;i<s;++i)if((o=n[i]).name===t)return o.value;return null}return this.each((e==null?ak:lk)(r,t,e))}function Oh(t,e,r){var n=t._id;return t.each(function(){var i=br(this,n);(i.value||(i.value={}))[e]=r.apply(this,arguments)}),function(i){return Xt(i,n).value[e]}}function Q_(t,e){var r;return(typeof e=="number"?Ut:e instanceof Kn?nl:(r=Kn(e))?(e=r,nl):W_)(t,e)}function ck(t){return function(){this.removeAttribute(t)}}function fk(t){return function(){this.removeAttributeNS(t.space,t.local)}}function dk(t,e,r){var n,i=r+"",s;return function(){var o=this.getAttribute(t);return o===i?null:o===n?s:s=e(n=o,r)}}function hk(t,e,r){var n,i=r+"",s;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===n?s:s=e(n=o,r)}}function pk(t,e,r){var n,i,s;return function(){var o,a=r(this),l;return a==null?void this.removeAttribute(t):(o=this.getAttribute(t),l=a+"",o===l?null:o===n&&l===i?s:(i=l,s=e(n=o,a)))}}function gk(t,e,r){var n,i,s;return function(){var o,a=r(this),l;return a==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),l=a+"",o===l?null:o===n&&l===i?s:(i=l,s=e(n=o,a)))}}function mk(t,e){var r=fu(t),n=r==="transform"?Q$:Q_;return this.attrTween(t,typeof e=="function"?(r.local?gk:pk)(r,n,Oh(this,"attr."+t,e)):e==null?(r.local?fk:ck)(r):(r.local?hk:dk)(r,n,e))}function yk(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function wk(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function bk(t,e){var r,n;function i(){var s=e.apply(this,arguments);return s!==n&&(r=(n=s)&&wk(t,s)),r}return i._value=e,i}function _k(t,e){var r,n;function i(){var s=e.apply(this,arguments);return s!==n&&(r=(n=s)&&yk(t,s)),r}return i._value=e,i}function vk(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;var n=fu(t);return this.tween(r,(n.local?bk:_k)(n,e))}function Ek(t,e){return function(){Ih(this,t).delay=+e.apply(this,arguments)}}function Sk(t,e){return e=+e,function(){Ih(this,t).delay=e}}function xk(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?Ek:Sk)(e,t)):Xt(this.node(),e).delay}function Tk(t,e){return function(){br(this,t).duration=+e.apply(this,arguments)}}function Ak(t,e){return e=+e,function(){br(this,t).duration=e}}function Mk(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?Tk:Ak)(e,t)):Xt(this.node(),e).duration}function Ck(t,e){if(typeof e!="function")throw new Error;return function(){br(this,t).ease=e}}function Ik(t){var e=this._id;return arguments.length?this.each(Ck(e,t)):Xt(this.node(),e).ease}function Ok(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!="function")throw new Error;br(this,t).ease=r}}function Pk(t){if(typeof t!="function")throw new Error;return this.each(Ok(this._id,t))}function Rk(t){typeof t!="function"&&(t=P_(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s=e[i],o=s.length,a=n[i]=[],l,u=0;u<o;++u)(l=s[u])&&t.call(l,l.__data__,u,s)&&a.push(l);return new Br(n,this._parents,this._name,this._id)}function Lk(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,s=Math.min(n,i),o=new Array(n),a=0;a<s;++a)for(var l=e[a],u=r[a],c=l.length,f=o[a]=new Array(c),d,h=0;h<c;++h)(d=l[h]||u[h])&&(f[h]=d);for(;a<n;++a)o[a]=e[a];return new Br(o,this._parents,this._name,this._id)}function Nk(t){return(t+"").trim().split(/^|\s+/).every(function(e){var r=e.indexOf(".");return r>=0&&(e=e.slice(0,r)),!e||e==="start"})}function $k(t,e,r){var n,i,s=Nk(e)?Ih:br;return function(){var o=s(this,t),a=o.on;a!==n&&(i=(n=a).copy()).on(e,r),o.on=i}}function kk(t,e){var r=this._id;return arguments.length<2?Xt(this.node(),r).on.on(t):this.each($k(r,t,e))}function Dk(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function Bk(){return this.on("end.remove",Dk(this._id))}function Fk(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Sh(t));for(var n=this._groups,i=n.length,s=new Array(i),o=0;o<i;++o)for(var a=n[o],l=a.length,u=s[o]=new Array(l),c,f,d=0;d<l;++d)(c=a[d])&&(f=t.call(c,c.__data__,d,a))&&("__data__"in c&&(f.__data__=c.__data__),u[d]=f,hu(u[d],e,r,d,u,Xt(c,r)));return new Br(s,this._parents,e,r)}function Uk(t){var e=this._name,r=this._id;typeof t!="function"&&(t=O_(t));for(var n=this._groups,i=n.length,s=[],o=[],a=0;a<i;++a)for(var l=n[a],u=l.length,c,f=0;f<u;++f)if(c=l[f]){for(var d=t.call(c,c.__data__,f,l),h,g=Xt(c,r),y=0,b=d.length;y<b;++y)(h=d[y])&&hu(h,e,r,y,d,g);s.push(d),o.push(c)}return new Br(s,o,e,r)}var jk=Co.prototype.constructor;function zk(){return new jk(this._groups,this._parents)}function Hk(t,e){var r,n,i;return function(){var s=Hi(this,t),o=(this.style.removeProperty(t),Hi(this,t));return s===o?null:s===r&&o===n?i:i=e(r=s,n=o)}}function J_(t){return function(){this.style.removeProperty(t)}}function Wk(t,e,r){var n,i=r+"",s;return function(){var o=Hi(this,t);return o===i?null:o===n?s:s=e(n=o,r)}}function Vk(t,e,r){var n,i,s;return function(){var o=Hi(this,t),a=r(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(t),Hi(this,t))),o===l?null:o===n&&l===i?s:(i=l,s=e(n=o,a))}}function qk(t,e){var r,n,i,s="style."+e,o="end."+s,a;return function(){var l=br(this,t),u=l.on,c=l.value[s]==null?a||(a=J_(e)):void 0;(u!==r||i!==c)&&(n=(r=u).copy()).on(o,i=c),l.on=n}}function Yk(t,e,r){var n=(t+="")=="transform"?X$:Q_;return e==null?this.styleTween(t,Hk(t,n)).on("end.style."+t,J_(t)):typeof e=="function"?this.styleTween(t,Vk(t,n,Oh(this,"style."+t,e))).each(qk(this._id,t)):this.styleTween(t,Wk(t,n,e),r).on("end.style."+t,null)}function Kk(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function Gk(t,e,r){var n,i;function s(){var o=e.apply(this,arguments);return o!==i&&(n=(i=o)&&Kk(t,o,r)),n}return s._value=e,s}function Xk(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,Gk(t,e,r??""))}function Qk(t){return function(){this.textContent=t}}function Jk(t){return function(){var e=t(this);this.textContent=e??""}}function Zk(t){return this.tween("text",typeof t=="function"?Jk(Oh(this,"text",t)):Qk(t==null?"":t+""))}function eD(t){return function(e){this.textContent=t.call(this,e)}}function tD(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&eD(i)),e}return n._value=t,n}function rD(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,tD(t))}function nD(){for(var t=this._name,e=this._id,r=Z_(),n=this._groups,i=n.length,s=0;s<i;++s)for(var o=n[s],a=o.length,l,u=0;u<a;++u)if(l=o[u]){var c=Xt(l,e);hu(l,t,r,u,o,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new Br(n,this._parents,t,r)}function iD(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(s,o){var a={value:o},l={value:function(){--i===0&&s()}};r.each(function(){var u=br(this,n),c=u.on;c!==t&&(e=(t=c).copy(),e._.cancel.push(a),e._.interrupt.push(a),e._.end.push(l)),u.on=e}),i===0&&s()})}var sD=0;function Br(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function Z_(){return++sD}var Sr=Co.prototype;Br.prototype={constructor:Br,select:Fk,selectAll:Uk,selectChild:Sr.selectChild,selectChildren:Sr.selectChildren,filter:Rk,merge:Lk,selection:zk,transition:nD,call:Sr.call,nodes:Sr.nodes,node:Sr.node,size:Sr.size,empty:Sr.empty,each:Sr.each,on:kk,attr:mk,attrTween:vk,style:Yk,styleTween:Xk,text:Zk,textTween:rD,remove:Bk,tween:uk,delay:xk,duration:Mk,ease:Ik,easeVarying:Pk,end:iD,[Symbol.iterator]:Sr[Symbol.iterator]};const HW=t=>+t;function oD(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var aD={time:null,delay:0,duration:250,ease:oD};function lD(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function uD(t){var e,r;t instanceof Br?(e=t._id,t=t._name):(e=Z_(),(r=aD).time=Ch(),t=t==null?null:t+"");for(var n=this._groups,i=n.length,s=0;s<i;++s)for(var o=n[s],a=o.length,l,u=0;u<a;++u)(l=o[u])&&hu(l,t,e,u,o,r||lD(l,e));return new Br(n,this._parents,t,e)}Co.prototype.interrupt=ok;Co.prototype.transition=uD;const Kf=Math.PI,Gf=2*Kf,In=1e-6,cD=Gf-In;function ev(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=arguments[e]+t[e]}function fD(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return ev;const r=10**e;return function(n){this._+=n[0];for(let i=1,s=n.length;i<s;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}class dD{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?ev:fD(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,s,o){this._append`C${+e},${+r},${+n},${+i},${this._x1=+s},${this._y1=+o}`}arcTo(e,r,n,i,s){if(e=+e,r=+r,n=+n,i=+i,s=+s,s<0)throw new Error(`negative radius: ${s}`);let o=this._x1,a=this._y1,l=n-e,u=i-r,c=o-e,f=a-r,d=c*c+f*f;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(d>In)if(!(Math.abs(f*l-u*c)>In)||!s)this._append`L${this._x1=e},${this._y1=r}`;else{let h=n-o,g=i-a,y=l*l+u*u,b=h*h+g*g,E=Math.sqrt(y),_=Math.sqrt(d),v=s*Math.tan((Kf-Math.acos((y+d-b)/(2*E*_)))/2),T=v/_,C=v/E;Math.abs(T-1)>In&&this._append`L${e+T*c},${r+T*f}`,this._append`A${s},${s},0,0,${+(f*h>c*g)},${this._x1=e+C*l},${this._y1=r+C*u}`}}arc(e,r,n,i,s,o){if(e=+e,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(i),l=n*Math.sin(i),u=e+a,c=r+l,f=1^o,d=o?i-s:s-i;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>In||Math.abs(this._y1-c)>In)&&this._append`L${u},${c}`,n&&(d<0&&(d=d%Gf+Gf),d>cD?this._append`A${n},${n},0,1,${f},${e-a},${r-l}A${n},${n},0,1,${f},${this._x1=u},${this._y1=c}`:d>In&&this._append`A${n},${n},0,${+(d>=Kf)},${f},${this._x1=e+n*Math.cos(s)},${this._y1=r+n*Math.sin(s)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function hD(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function al(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Vi(t){return t=al(Math.abs(t)),t?t[1]:NaN}function pD(t,e){return function(r,n){for(var i=r.length,s=[],o=0,a=t[0],l=0;i>0&&a>0&&(l+a+1>n&&(a=Math.max(1,n-l)),s.push(r.substring(i-=a,i+a)),!((l+=a+1)>n));)a=t[o=(o+1)%t.length];return s.reverse().join(e)}}function gD(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var mD=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ll(t){if(!(e=mD.exec(t)))throw new Error("invalid format: "+t);var e;return new Ph({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}ll.prototype=Ph.prototype;function Ph(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Ph.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function yD(t){e:for(var e=t.length,r=1,n=-1,i;r<e;++r)switch(t[r]){case".":n=i=r;break;case"0":n===0&&(n=r),i=r;break;default:if(!+t[r])break e;n>0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var tv;function wD(t,e){var r=al(t,e);if(!r)return t+"";var n=r[0],i=r[1],s=i-(tv=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=n.length;return s===o?n:s>o?n+new Array(s-o+1).join("0"):s>0?n.slice(0,s)+"."+n.slice(s):"0."+new Array(1-s).join("0")+al(t,Math.max(0,e+s-1))[0]}function zm(t,e){var r=al(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const Hm={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:hD,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>zm(t*100,e),r:zm,s:wD,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Wm(t){return t}var Vm=Array.prototype.map,qm=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function bD(t){var e=t.grouping===void 0||t.thousands===void 0?Wm:pD(Vm.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?Wm:gD(Vm.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",a=t.minus===void 0?"−":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function u(f){f=ll(f);var d=f.fill,h=f.align,g=f.sign,y=f.symbol,b=f.zero,E=f.width,_=f.comma,v=f.precision,T=f.trim,C=f.type;C==="n"?(_=!0,C="g"):Hm[C]||(v===void 0&&(v=12),T=!0,C="g"),(b||d==="0"&&h==="=")&&(b=!0,d="0",h="=");var O=y==="$"?r:y==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",D=y==="$"?n:/[%p]/.test(C)?o:"",F=Hm[C],L=/[defgprs%]/.test(C);v=v===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v));function U(k){var W=O,$=D,I,j,Q;if(C==="c")$=F(k)+$,k="";else{k=+k;var H=k<0||1/k<0;if(k=isNaN(k)?l:F(Math.abs(k),v),T&&(k=yD(k)),H&&+k==0&&g!=="+"&&(H=!1),W=(H?g==="("?g:a:g==="-"||g==="("?"":g)+W,$=(C==="s"?qm[8+tv/3]:"")+$+(H&&g==="("?")":""),L){for(I=-1,j=k.length;++I<j;)if(Q=k.charCodeAt(I),48>Q||Q>57){$=(Q===46?i+k.slice(I+1):k.slice(I))+$,k=k.slice(0,I);break}}}_&&!b&&(k=e(k,1/0));var K=W.length+k.length+$.length,X=K<E?new Array(E-K+1).join(d):"";switch(_&&b&&(k=e(X+k,X.length?E-$.length:1/0),X=""),h){case"<":k=W+k+$+X;break;case"=":k=W+X+k+$;break;case"^":k=X.slice(0,K=X.length>>1)+W+k+$+X.slice(K);break;default:k=X+W+k+$;break}return s(k)}return U.toString=function(){return f+""},U}function c(f,d){var h=u((f=ll(f),f.type="f",f)),g=Math.max(-8,Math.min(8,Math.floor(Vi(d)/3)))*3,y=Math.pow(10,-g),b=qm[8+g/3];return function(E){return h(y*E)+b}}return{format:u,formatPrefix:c}}var ra,rv,nv;_D({thousands:",",grouping:[3],currency:["$",""]});function _D(t){return ra=bD(t),rv=ra.format,nv=ra.formatPrefix,ra}function vD(t){return Math.max(0,-Vi(Math.abs(t)))}function ED(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Vi(e)/3)))*3-Vi(Math.abs(t)))}function SD(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Vi(e)-Vi(t))+1}function pu(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}const Ym=Symbol("implicit");function iv(){var t=new xm,e=[],r=[],n=Ym;function i(s){let o=t.get(s);if(o===void 0){if(n!==Ym)return n;t.set(s,o=e.push(s)-1)}return r[o%r.length]}return i.domain=function(s){if(!arguments.length)return e.slice();e=[],t=new xm;for(const o of s)t.has(o)||t.set(o,e.push(o)-1);return i},i.range=function(s){return arguments.length?(r=Array.from(s),i):r.slice()},i.unknown=function(s){return arguments.length?(n=s,i):n},i.copy=function(){return iv(e,r).unknown(n)},pu.apply(i,arguments),i}function xD(){var t=iv().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,s,o,a=!1,l=0,u=0,c=.5;delete t.unknown;function f(){var d=e().length,h=i<n,g=h?i:n,y=h?n:i;s=(y-g)/Math.max(1,d-l+u*2),a&&(s=Math.floor(s)),g+=(y-g-s*(d-l))*c,o=s*(1-l),a&&(g=Math.round(g),o=Math.round(o));var b=DL(d).map(function(E){return g+s*E});return r(h?b.reverse():b)}return t.domain=function(d){return arguments.length?(e(d),f()):e()},t.range=function(d){return arguments.length?([n,i]=d,n=+n,i=+i,f()):[n,i]},t.rangeRound=function(d){return[n,i]=d,n=+n,i=+i,a=!0,f()},t.bandwidth=function(){return o},t.step=function(){return s},t.round=function(d){return arguments.length?(a=!!d,f()):a},t.padding=function(d){return arguments.length?(l=Math.min(1,u=+d),f()):l},t.paddingInner=function(d){return arguments.length?(l=Math.min(1,d),f()):l},t.paddingOuter=function(d){return arguments.length?(u=+d,f()):u},t.align=function(d){return arguments.length?(c=Math.max(0,Math.min(1,d)),f()):c},t.copy=function(){return xD(e(),[n,i]).round(a).paddingInner(l).paddingOuter(u).align(c)},pu.apply(f(),arguments)}function TD(t){return function(){return t}}function AD(t){return+t}var Km=[0,1];function Ei(t){return t}function Xf(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:TD(isNaN(e)?NaN:.5)}function MD(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function CD(t,e,r){var n=t[0],i=t[1],s=e[0],o=e[1];return i<n?(n=Xf(i,n),s=r(o,s)):(n=Xf(n,i),s=r(s,o)),function(a){return s(n(a))}}function ID(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),s=new Array(n),o=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<n;)i[o]=Xf(t[o],t[o+1]),s[o]=r(e[o],e[o+1]);return function(a){var l=IL(t,a,1,n)-1;return s[l](i[l](a))}}function sv(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function OD(){var t=Km,e=Km,r=Mh,n,i,s,o=Ei,a,l,u;function c(){var d=Math.min(t.length,e.length);return o!==Ei&&(o=MD(t[0],t[d-1])),a=d>2?ID:CD,l=u=null,f}function f(d){return d==null||isNaN(d=+d)?s:(l||(l=a(t.map(n),e,r)))(n(o(d)))}return f.invert=function(d){return o(i((u||(u=a(e,t.map(n),Ut)))(d)))},f.domain=function(d){return arguments.length?(t=Array.from(d,AD),c()):t.slice()},f.range=function(d){return arguments.length?(e=Array.from(d),c()):e.slice()},f.rangeRound=function(d){return e=Array.from(d),r=Y$,c()},f.clamp=function(d){return arguments.length?(o=d?!0:Ei,c()):o!==Ei},f.interpolate=function(d){return arguments.length?(r=d,c()):r},f.unknown=function(d){return arguments.length?(s=d,f):s},function(d,h){return n=d,i=h,c()}}function ov(){return OD()(Ei,Ei)}function PD(t,e,r,n){var i=Ff(t,e,r),s;switch(n=ll(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(s=ED(i,o))&&(n.precision=s),nv(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(s=SD(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=s-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(s=vD(i))&&(n.precision=s-(n.type==="%")*2);break}}return rv(n)}function RD(t){var e=t.domain;return t.ticks=function(r){var n=e();return kL(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return PD(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,s=n.length-1,o=n[i],a=n[s],l,u,c=10;for(a<o&&(u=o,o=a,a=u,u=i,i=s,s=u);c-- >0;){if(u=Bf(o,a,r),u===l)return n[i]=o,n[s]=a,e(n);if(u>0)o=Math.floor(o/u)*u,a=Math.ceil(a/u)*u;else if(u<0)o=Math.ceil(o*u)/u,a=Math.floor(a*u)/u;else break;l=u}return t},t}function LD(){var t=ov();return t.copy=function(){return sv(t,LD())},pu.apply(t,arguments),RD(t)}function ND(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],s=t[n],o;return s<i&&(o=r,r=n,n=o,o=i,i=s,s=o),t[r]=e.floor(i),t[n]=e.ceil(s),t}const Sc=new Date,xc=new Date;function qe(t,e,r,n){function i(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return i.floor=s=>(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const o=i(s),a=i.ceil(s);return s-o<a-s?o:a},i.offset=(s,o)=>(e(s=new Date(+s),o==null?1:Math.floor(o)),s),i.range=(s,o,a)=>{const l=[];if(s=i.ceil(s),a=a==null?1:Math.floor(a),!(s<o)||!(a>0))return l;let u;do l.push(u=new Date(+s)),e(s,a),t(s);while(u<s&&s<o);return l},i.filter=s=>qe(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,a)=>{if(o>=o)if(a<0)for(;++a<=0;)for(;e(o,-1),!s(o););else for(;--a>=0;)for(;e(o,1),!s(o););}),r&&(i.count=(s,o)=>(Sc.setTime(+s),xc.setTime(+o),t(Sc),t(xc),Math.floor(r(Sc,xc))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(n?o=>n(o)%s===0:o=>i.count(0,o)%s===0):i)),i}const ul=qe(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ul.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?qe(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):ul);ul.range;const Ir=1e3,It=Ir*60,Or=It*60,Fr=Or*24,Rh=Fr*7,Gm=Fr*30,Tc=Fr*365,Si=qe(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Ir)},(t,e)=>(e-t)/Ir,t=>t.getUTCSeconds());Si.range;const Lh=qe(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ir)},(t,e)=>{t.setTime(+t+e*It)},(t,e)=>(e-t)/It,t=>t.getMinutes());Lh.range;const $D=qe(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*It)},(t,e)=>(e-t)/It,t=>t.getUTCMinutes());$D.range;const Nh=qe(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ir-t.getMinutes()*It)},(t,e)=>{t.setTime(+t+e*Or)},(t,e)=>(e-t)/Or,t=>t.getHours());Nh.range;const kD=qe(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Or)},(t,e)=>(e-t)/Or,t=>t.getUTCHours());kD.range;const Oo=qe(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*It)/Fr,t=>t.getDate()-1);Oo.range;const $h=qe(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Fr,t=>t.getUTCDate()-1);$h.range;const DD=qe(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Fr,t=>Math.floor(t/Fr));DD.range;function si(t){return qe(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*It)/Rh)}const gu=si(0),cl=si(1),BD=si(2),FD=si(3),qi=si(4),UD=si(5),jD=si(6);gu.range;cl.range;BD.range;FD.range;qi.range;UD.range;jD.range;function oi(t){return qe(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/Rh)}const av=oi(0),fl=oi(1),zD=oi(2),HD=oi(3),Yi=oi(4),WD=oi(5),VD=oi(6);av.range;fl.range;zD.range;HD.range;Yi.range;WD.range;VD.range;const kh=qe(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());kh.range;const qD=qe(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());qD.range;const Ur=qe(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Ur.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:qe(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});Ur.range;const Xn=qe(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Xn.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:qe(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});Xn.range;function YD(t,e,r,n,i,s){const o=[[Si,1,Ir],[Si,5,5*Ir],[Si,15,15*Ir],[Si,30,30*Ir],[s,1,It],[s,5,5*It],[s,15,15*It],[s,30,30*It],[i,1,Or],[i,3,3*Or],[i,6,6*Or],[i,12,12*Or],[n,1,Fr],[n,2,2*Fr],[r,1,Rh],[e,1,Gm],[e,3,3*Gm],[t,1,Tc]];function a(u,c,f){const d=c<u;d&&([u,c]=[c,u]);const h=f&&typeof f.range=="function"?f:l(u,c,f),g=h?h.range(u,+c+1):[];return d?g.reverse():g}function l(u,c,f){const d=Math.abs(c-u)/f,h=vh(([,,b])=>b).right(o,d);if(h===o.length)return t.every(Ff(u/Tc,c/Tc,f));if(h===0)return ul.every(Math.max(Ff(u,c,f),1));const[g,y]=o[d/o[h-1][2]<o[h][2]/d?h-1:h];return g.every(y)}return[a,l]}const[KD,GD]=YD(Ur,kh,gu,Oo,Nh,Lh);function Ac(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Mc(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function As(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function XD(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,s=t.days,o=t.shortDays,a=t.months,l=t.shortMonths,u=Ms(i),c=Cs(i),f=Ms(s),d=Cs(s),h=Ms(o),g=Cs(o),y=Ms(a),b=Cs(a),E=Ms(l),_=Cs(l),v={a:H,A:K,b:X,B:Z,c:null,d:ty,e:ty,f:bB,g:IB,G:PB,H:mB,I:yB,j:wB,L:lv,m:_B,M:vB,p:ce,q:pe,Q:iy,s:sy,S:EB,u:SB,U:xB,V:TB,w:AB,W:MB,x:null,X:null,y:CB,Y:OB,Z:RB,"%":ny},T={a:de,A:me,b:be,B:G,c:null,d:ry,e:ry,f:kB,g:qB,G:KB,H:LB,I:NB,j:$B,L:cv,m:DB,M:BB,p:Y,q:ne,Q:iy,s:sy,S:FB,u:UB,U:jB,V:zB,w:HB,W:WB,x:null,X:null,y:VB,Y:YB,Z:GB,"%":ny},C={a:U,A:k,b:W,B:$,c:I,d:Zm,e:Zm,f:dB,g:Jm,G:Qm,H:ey,I:ey,j:lB,L:fB,m:aB,M:uB,p:L,q:oB,Q:pB,s:gB,S:cB,u:tB,U:rB,V:nB,w:eB,W:iB,x:j,X:Q,y:Jm,Y:Qm,Z:sB,"%":hB};v.x=O(r,v),v.X=O(n,v),v.c=O(e,v),T.x=O(r,T),T.X=O(n,T),T.c=O(e,T);function O(ee,ue){return function(P){var w=[],S=-1,A=0,B=ee.length,z,q,ie;for(P instanceof Date||(P=new Date(+P));++S<B;)ee.charCodeAt(S)===37&&(w.push(ee.slice(A,S)),(q=Xm[z=ee.charAt(++S)])!=null?z=ee.charAt(++S):q=z==="e"?" ":"0",(ie=ue[z])&&(z=ie(P,q)),w.push(z),A=S+1);return w.push(ee.slice(A,S)),w.join("")}}function D(ee,ue){return function(P){var w=As(1900,void 0,1),S=F(w,ee,P+="",0),A,B;if(S!=P.length)return null;if("Q"in w)return new Date(w.Q);if("s"in w)return new Date(w.s*1e3+("L"in w?w.L:0));if(ue&&!("Z"in w)&&(w.Z=0),"p"in w&&(w.H=w.H%12+w.p*12),w.m===void 0&&(w.m="q"in w?w.q:0),"V"in w){if(w.V<1||w.V>53)return null;"w"in w||(w.w=1),"Z"in w?(A=Mc(As(w.y,0,1)),B=A.getUTCDay(),A=B>4||B===0?fl.ceil(A):fl(A),A=$h.offset(A,(w.V-1)*7),w.y=A.getUTCFullYear(),w.m=A.getUTCMonth(),w.d=A.getUTCDate()+(w.w+6)%7):(A=Ac(As(w.y,0,1)),B=A.getDay(),A=B>4||B===0?cl.ceil(A):cl(A),A=Oo.offset(A,(w.V-1)*7),w.y=A.getFullYear(),w.m=A.getMonth(),w.d=A.getDate()+(w.w+6)%7)}else("W"in w||"U"in w)&&("w"in w||(w.w="u"in w?w.u%7:"W"in w?1:0),B="Z"in w?Mc(As(w.y,0,1)).getUTCDay():Ac(As(w.y,0,1)).getDay(),w.m=0,w.d="W"in w?(w.w+6)%7+w.W*7-(B+5)%7:w.w+w.U*7-(B+6)%7);return"Z"in w?(w.H+=w.Z/100|0,w.M+=w.Z%100,Mc(w)):Ac(w)}}function F(ee,ue,P,w){for(var S=0,A=ue.length,B=P.length,z,q;S<A;){if(w>=B)return-1;if(z=ue.charCodeAt(S++),z===37){if(z=ue.charAt(S++),q=C[z in Xm?ue.charAt(S++):z],!q||(w=q(ee,P,w))<0)return-1}else if(z!=P.charCodeAt(w++))return-1}return w}function L(ee,ue,P){var w=u.exec(ue.slice(P));return w?(ee.p=c.get(w[0].toLowerCase()),P+w[0].length):-1}function U(ee,ue,P){var w=h.exec(ue.slice(P));return w?(ee.w=g.get(w[0].toLowerCase()),P+w[0].length):-1}function k(ee,ue,P){var w=f.exec(ue.slice(P));return w?(ee.w=d.get(w[0].toLowerCase()),P+w[0].length):-1}function W(ee,ue,P){var w=E.exec(ue.slice(P));return w?(ee.m=_.get(w[0].toLowerCase()),P+w[0].length):-1}function $(ee,ue,P){var w=y.exec(ue.slice(P));return w?(ee.m=b.get(w[0].toLowerCase()),P+w[0].length):-1}function I(ee,ue,P){return F(ee,e,ue,P)}function j(ee,ue,P){return F(ee,r,ue,P)}function Q(ee,ue,P){return F(ee,n,ue,P)}function H(ee){return o[ee.getDay()]}function K(ee){return s[ee.getDay()]}function X(ee){return l[ee.getMonth()]}function Z(ee){return a[ee.getMonth()]}function ce(ee){return i[+(ee.getHours()>=12)]}function pe(ee){return 1+~~(ee.getMonth()/3)}function de(ee){return o[ee.getUTCDay()]}function me(ee){return s[ee.getUTCDay()]}function be(ee){return l[ee.getUTCMonth()]}function G(ee){return a[ee.getUTCMonth()]}function Y(ee){return i[+(ee.getUTCHours()>=12)]}function ne(ee){return 1+~~(ee.getUTCMonth()/3)}return{format:function(ee){var ue=O(ee+="",v);return ue.toString=function(){return ee},ue},parse:function(ee){var ue=D(ee+="",!1);return ue.toString=function(){return ee},ue},utcFormat:function(ee){var ue=O(ee+="",T);return ue.toString=function(){return ee},ue},utcParse:function(ee){var ue=D(ee+="",!0);return ue.toString=function(){return ee},ue}}}var Xm={"-":"",_:" ",0:"0"},Ge=/^\s*\d+/,QD=/^%/,JD=/[\\^$*+?|[\]().{}]/g;function Re(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",s=i.length;return n+(s<r?new Array(r-s+1).join(e)+i:i)}function ZD(t){return t.replace(JD,"\\$&")}function Ms(t){return new RegExp("^(?:"+t.map(ZD).join("|")+")","i")}function Cs(t){return new Map(t.map((e,r)=>[e.toLowerCase(),r]))}function eB(t,e,r){var n=Ge.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function tB(t,e,r){var n=Ge.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function rB(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function nB(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function iB(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function Qm(t,e,r){var n=Ge.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function Jm(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function sB(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function oB(t,e,r){var n=Ge.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function aB(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Zm(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function lB(t,e,r){var n=Ge.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function ey(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function uB(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function cB(t,e,r){var n=Ge.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function fB(t,e,r){var n=Ge.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function dB(t,e,r){var n=Ge.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function hB(t,e,r){var n=QD.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function pB(t,e,r){var n=Ge.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function gB(t,e,r){var n=Ge.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function ty(t,e){return Re(t.getDate(),e,2)}function mB(t,e){return Re(t.getHours(),e,2)}function yB(t,e){return Re(t.getHours()%12||12,e,2)}function wB(t,e){return Re(1+Oo.count(Ur(t),t),e,3)}function lv(t,e){return Re(t.getMilliseconds(),e,3)}function bB(t,e){return lv(t,e)+"000"}function _B(t,e){return Re(t.getMonth()+1,e,2)}function vB(t,e){return Re(t.getMinutes(),e,2)}function EB(t,e){return Re(t.getSeconds(),e,2)}function SB(t){var e=t.getDay();return e===0?7:e}function xB(t,e){return Re(gu.count(Ur(t)-1,t),e,2)}function uv(t){var e=t.getDay();return e>=4||e===0?qi(t):qi.ceil(t)}function TB(t,e){return t=uv(t),Re(qi.count(Ur(t),t)+(Ur(t).getDay()===4),e,2)}function AB(t){return t.getDay()}function MB(t,e){return Re(cl.count(Ur(t)-1,t),e,2)}function CB(t,e){return Re(t.getFullYear()%100,e,2)}function IB(t,e){return t=uv(t),Re(t.getFullYear()%100,e,2)}function OB(t,e){return Re(t.getFullYear()%1e4,e,4)}function PB(t,e){var r=t.getDay();return t=r>=4||r===0?qi(t):qi.ceil(t),Re(t.getFullYear()%1e4,e,4)}function RB(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Re(e/60|0,"0",2)+Re(e%60,"0",2)}function ry(t,e){return Re(t.getUTCDate(),e,2)}function LB(t,e){return Re(t.getUTCHours(),e,2)}function NB(t,e){return Re(t.getUTCHours()%12||12,e,2)}function $B(t,e){return Re(1+$h.count(Xn(t),t),e,3)}function cv(t,e){return Re(t.getUTCMilliseconds(),e,3)}function kB(t,e){return cv(t,e)+"000"}function DB(t,e){return Re(t.getUTCMonth()+1,e,2)}function BB(t,e){return Re(t.getUTCMinutes(),e,2)}function FB(t,e){return Re(t.getUTCSeconds(),e,2)}function UB(t){var e=t.getUTCDay();return e===0?7:e}function jB(t,e){return Re(av.count(Xn(t)-1,t),e,2)}function fv(t){var e=t.getUTCDay();return e>=4||e===0?Yi(t):Yi.ceil(t)}function zB(t,e){return t=fv(t),Re(Yi.count(Xn(t),t)+(Xn(t).getUTCDay()===4),e,2)}function HB(t){return t.getUTCDay()}function WB(t,e){return Re(fl.count(Xn(t)-1,t),e,2)}function VB(t,e){return Re(t.getUTCFullYear()%100,e,2)}function qB(t,e){return t=fv(t),Re(t.getUTCFullYear()%100,e,2)}function YB(t,e){return Re(t.getUTCFullYear()%1e4,e,4)}function KB(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Yi(t):Yi.ceil(t),Re(t.getUTCFullYear()%1e4,e,4)}function GB(){return"+0000"}function ny(){return"%"}function iy(t){return+t}function sy(t){return Math.floor(+t/1e3)}var di,dv,XB;QB({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function QB(t){return di=XD(t),dv=di.format,XB=di.parse,di.utcFormat,di.utcParse,di}function JB(t){return new Date(t)}function ZB(t){return t instanceof Date?+t:+new Date(+t)}function hv(t,e,r,n,i,s,o,a,l,u){var c=ov(),f=c.invert,d=c.domain,h=u(".%L"),g=u(":%S"),y=u("%I:%M"),b=u("%I %p"),E=u("%a %d"),_=u("%b %d"),v=u("%B"),T=u("%Y");function C(O){return(l(O)<O?h:a(O)<O?g:o(O)<O?y:s(O)<O?b:n(O)<O?i(O)<O?E:_:r(O)<O?v:T)(O)}return c.invert=function(O){return new Date(f(O))},c.domain=function(O){return arguments.length?d(Array.from(O,ZB)):d().map(JB)},c.ticks=function(O){var D=d();return t(D[0],D[D.length-1],O??10)},c.tickFormat=function(O,D){return D==null?C:u(D)},c.nice=function(O){var D=d();return(!O||typeof O.range!="function")&&(O=e(D[0],D[D.length-1],O??10)),O?d(ND(D,O)):c},c.copy=function(){return sv(c,hv(t,e,r,n,i,s,o,a,l,u))},c}function WW(){return pu.apply(hv(KD,GD,Ur,kh,gu,Oo,Nh,Lh,Si,dv).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Ie(t){return function(){return t}}const oy=Math.abs,et=Math.atan2,Mn=Math.cos,e2=Math.max,Cc=Math.min,Zt=Math.sin,xi=Math.sqrt,ht=1e-12,ho=Math.PI,dl=ho/2,Ia=2*ho;function t2(t){return t>1?0:t<-1?ho:Math.acos(t)}function ay(t){return t>=1?dl:t<=-1?-dl:Math.asin(t)}function Dh(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new dD(e)}function r2(t){return t.innerRadius}function n2(t){return t.outerRadius}function i2(t){return t.startAngle}function s2(t){return t.endAngle}function o2(t){return t&&t.padAngle}function a2(t,e,r,n,i,s,o,a){var l=r-t,u=n-e,c=o-i,f=a-s,d=f*l-c*u;if(!(d*d<ht))return d=(c*(e-s)-f*(t-i))/d,[t+d*l,e+d*u]}function na(t,e,r,n,i,s,o){var a=t-r,l=e-n,u=(o?s:-s)/xi(a*a+l*l),c=u*l,f=-u*a,d=t+c,h=e+f,g=r+c,y=n+f,b=(d+g)/2,E=(h+y)/2,_=g-d,v=y-h,T=_*_+v*v,C=i-s,O=d*y-g*h,D=(v<0?-1:1)*xi(e2(0,C*C*T-O*O)),F=(O*v-_*D)/T,L=(-O*_-v*D)/T,U=(O*v+_*D)/T,k=(-O*_+v*D)/T,W=F-b,$=L-E,I=U-b,j=k-E;return W*W+$*$>I*I+j*j&&(F=U,L=k),{cx:F,cy:L,x01:-c,y01:-f,x11:F*(i/C-1),y11:L*(i/C-1)}}function VW(){var t=r2,e=n2,r=Ie(0),n=null,i=i2,s=s2,o=o2,a=null,l=Dh(u);function u(){var c,f,d=+t.apply(this,arguments),h=+e.apply(this,arguments),g=i.apply(this,arguments)-dl,y=s.apply(this,arguments)-dl,b=oy(y-g),E=y>g;if(a||(a=c=l()),h<d&&(f=h,h=d,d=f),!(h>ht))a.moveTo(0,0);else if(b>Ia-ht)a.moveTo(h*Mn(g),h*Zt(g)),a.arc(0,0,h,g,y,!E),d>ht&&(a.moveTo(d*Mn(y),d*Zt(y)),a.arc(0,0,d,y,g,E));else{var _=g,v=y,T=g,C=y,O=b,D=b,F=o.apply(this,arguments)/2,L=F>ht&&(n?+n.apply(this,arguments):xi(d*d+h*h)),U=Cc(oy(h-d)/2,+r.apply(this,arguments)),k=U,W=U,$,I;if(L>ht){var j=ay(L/d*Zt(F)),Q=ay(L/h*Zt(F));(O-=j*2)>ht?(j*=E?1:-1,T+=j,C-=j):(O=0,T=C=(g+y)/2),(D-=Q*2)>ht?(Q*=E?1:-1,_+=Q,v-=Q):(D=0,_=v=(g+y)/2)}var H=h*Mn(_),K=h*Zt(_),X=d*Mn(C),Z=d*Zt(C);if(U>ht){var ce=h*Mn(v),pe=h*Zt(v),de=d*Mn(T),me=d*Zt(T),be;if(b<ho)if(be=a2(H,K,de,me,ce,pe,X,Z)){var G=H-be[0],Y=K-be[1],ne=ce-be[0],ee=pe-be[1],ue=1/Zt(t2((G*ne+Y*ee)/(xi(G*G+Y*Y)*xi(ne*ne+ee*ee)))/2),P=xi(be[0]*be[0]+be[1]*be[1]);k=Cc(U,(d-P)/(ue-1)),W=Cc(U,(h-P)/(ue+1))}else k=W=0}D>ht?W>ht?($=na(de,me,H,K,h,W,E),I=na(ce,pe,X,Z,h,W,E),a.moveTo($.cx+$.x01,$.cy+$.y01),W<U?a.arc($.cx,$.cy,W,et($.y01,$.x01),et(I.y01,I.x01),!E):(a.arc($.cx,$.cy,W,et($.y01,$.x01),et($.y11,$.x11),!E),a.arc(0,0,h,et($.cy+$.y11,$.cx+$.x11),et(I.cy+I.y11,I.cx+I.x11),!E),a.arc(I.cx,I.cy,W,et(I.y11,I.x11),et(I.y01,I.x01),!E))):(a.moveTo(H,K),a.arc(0,0,h,_,v,!E)):a.moveTo(H,K),!(d>ht)||!(O>ht)?a.lineTo(X,Z):k>ht?($=na(X,Z,ce,pe,d,-k,E),I=na(H,K,de,me,d,-k,E),a.lineTo($.cx+$.x01,$.cy+$.y01),k<U?a.arc($.cx,$.cy,k,et($.y01,$.x01),et(I.y01,I.x01),!E):(a.arc($.cx,$.cy,k,et($.y01,$.x01),et($.y11,$.x11),!E),a.arc(0,0,d,et($.cy+$.y11,$.cx+$.x11),et(I.cy+I.y11,I.cx+I.x11),E),a.arc(I.cx,I.cy,k,et(I.y11,I.x11),et(I.y01,I.x01),!E))):a.arc(0,0,d,C,T,E)}if(a.closePath(),c)return a=null,c+""||null}return u.centroid=function(){var c=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,f=(+i.apply(this,arguments)+ +s.apply(this,arguments))/2-ho/2;return[Mn(f)*c,Zt(f)*c]},u.innerRadius=function(c){return arguments.length?(t=typeof c=="function"?c:Ie(+c),u):t},u.outerRadius=function(c){return arguments.length?(e=typeof c=="function"?c:Ie(+c),u):e},u.cornerRadius=function(c){return arguments.length?(r=typeof c=="function"?c:Ie(+c),u):r},u.padRadius=function(c){return arguments.length?(n=c==null?null:typeof c=="function"?c:Ie(+c),u):n},u.startAngle=function(c){return arguments.length?(i=typeof c=="function"?c:Ie(+c),u):i},u.endAngle=function(c){return arguments.length?(s=typeof c=="function"?c:Ie(+c),u):s},u.padAngle=function(c){return arguments.length?(o=typeof c=="function"?c:Ie(+c),u):o},u.context=function(c){return arguments.length?(a=c??null,u):a},u}function mu(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function pv(t){this._context=t}pv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function gv(t){return new pv(t)}function mv(t){return t[0]}function yv(t){return t[1]}function l2(t,e){var r=Ie(!0),n=null,i=gv,s=null,o=Dh(a);t=typeof t=="function"?t:t===void 0?mv:Ie(t),e=typeof e=="function"?e:e===void 0?yv:Ie(e);function a(l){var u,c=(l=mu(l)).length,f,d=!1,h;for(n==null&&(s=i(h=o())),u=0;u<=c;++u)!(u<c&&r(f=l[u],u,l))===d&&((d=!d)?s.lineStart():s.lineEnd()),d&&s.point(+t(f,u,l),+e(f,u,l));if(h)return s=null,h+""||null}return a.x=function(l){return arguments.length?(t=typeof l=="function"?l:Ie(+l),a):t},a.y=function(l){return arguments.length?(e=typeof l=="function"?l:Ie(+l),a):e},a.defined=function(l){return arguments.length?(r=typeof l=="function"?l:Ie(!!l),a):r},a.curve=function(l){return arguments.length?(i=l,n!=null&&(s=i(n)),a):i},a.context=function(l){return arguments.length?(l==null?n=s=null:s=i(n=l),a):n},a}function qW(t,e,r){var n=null,i=Ie(!0),s=null,o=gv,a=null,l=Dh(u);t=typeof t=="function"?t:t===void 0?mv:Ie(+t),e=typeof e=="function"?e:Ie(e===void 0?0:+e),r=typeof r=="function"?r:r===void 0?yv:Ie(+r);function u(f){var d,h,g,y=(f=mu(f)).length,b,E=!1,_,v=new Array(y),T=new Array(y);for(s==null&&(a=o(_=l())),d=0;d<=y;++d){if(!(d<y&&i(b=f[d],d,f))===E)if(E=!E)h=d,a.areaStart(),a.lineStart();else{for(a.lineEnd(),a.lineStart(),g=d-1;g>=h;--g)a.point(v[g],T[g]);a.lineEnd(),a.areaEnd()}E&&(v[d]=+t(b,d,f),T[d]=+e(b,d,f),a.point(n?+n(b,d,f):v[d],r?+r(b,d,f):T[d]))}if(_)return a=null,_+""||null}function c(){return l2().defined(i).curve(o).context(s)}return u.x=function(f){return arguments.length?(t=typeof f=="function"?f:Ie(+f),n=null,u):t},u.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Ie(+f),u):t},u.x1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Ie(+f),u):n},u.y=function(f){return arguments.length?(e=typeof f=="function"?f:Ie(+f),r=null,u):e},u.y0=function(f){return arguments.length?(e=typeof f=="function"?f:Ie(+f),u):e},u.y1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Ie(+f),u):r},u.lineX0=u.lineY0=function(){return c().x(t).y(e)},u.lineY1=function(){return c().x(t).y(r)},u.lineX1=function(){return c().x(n).y(e)},u.defined=function(f){return arguments.length?(i=typeof f=="function"?f:Ie(!!f),u):i},u.curve=function(f){return arguments.length?(o=f,s!=null&&(a=o(s)),u):o},u.context=function(f){return arguments.length?(f==null?s=a=null:a=o(s=f),u):s},u}function u2(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function c2(t){return t}function YW(){var t=c2,e=u2,r=null,n=Ie(0),i=Ie(Ia),s=Ie(0);function o(a){var l,u=(a=mu(a)).length,c,f,d=0,h=new Array(u),g=new Array(u),y=+n.apply(this,arguments),b=Math.min(Ia,Math.max(-Ia,i.apply(this,arguments)-y)),E,_=Math.min(Math.abs(b)/u,s.apply(this,arguments)),v=_*(b<0?-1:1),T;for(l=0;l<u;++l)(T=g[h[l]=l]=+t(a[l],l,a))>0&&(d+=T);for(e!=null?h.sort(function(C,O){return e(g[C],g[O])}):r!=null&&h.sort(function(C,O){return r(a[C],a[O])}),l=0,f=d?(b-u*v)/d:0;l<u;++l,y=E)c=h[l],T=g[c],E=y+(T>0?T*f:0)+v,g[c]={data:a[c],index:l,value:T,startAngle:y,endAngle:E,padAngle:_};return g}return o.value=function(a){return arguments.length?(t=typeof a=="function"?a:Ie(+a),o):t},o.sortValues=function(a){return arguments.length?(e=a,r=null,o):e},o.sort=function(a){return arguments.length?(r=a,e=null,o):r},o.startAngle=function(a){return arguments.length?(n=typeof a=="function"?a:Ie(+a),o):n},o.endAngle=function(a){return arguments.length?(i=typeof a=="function"?a:Ie(+a),o):i},o.padAngle=function(a){return arguments.length?(s=typeof a=="function"?a:Ie(+a),o):s},o}function ly(t,e){if((o=t.length)>1)for(var r=1,n,i,s=t[e[0]],o,a=s.length;r<o;++r)for(i=s,s=t[e[r]],n=0;n<a;++n)s[n][1]+=s[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}function uy(t){for(var e=t.length,r=new Array(e);--e>=0;)r[e]=e;return r}function f2(t,e){return t[e]}function d2(t){const e=[];return e.key=t,e}function KW(){var t=Ie([]),e=uy,r=ly,n=f2;function i(s){var o=Array.from(t.apply(this,arguments),d2),a,l=o.length,u=-1,c;for(const f of s)for(a=0,++u;a<l;++a)(o[a][u]=[0,+n(f,o[a].key,u,s)]).data=f;for(a=0,c=mu(e(o));a<l;++a)o[c[a]].index=a;return r(o,c),o}return i.keys=function(s){return arguments.length?(t=typeof s=="function"?s:Ie(Array.from(s)),i):t},i.value=function(s){return arguments.length?(n=typeof s=="function"?s:Ie(+s),i):n},i.order=function(s){return arguments.length?(e=s==null?uy:typeof s=="function"?s:Ie(Array.from(s)),i):e},i.offset=function(s){return arguments.length?(r=s??ly,i):r},i}function Ds(t,e,r){this.k=t,this.x=e,this.y=r}Ds.prototype={constructor:Ds,scale:function(t){return t===1?this:new Ds(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Ds(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};Ds.prototype;var ct="top",St="bottom",xt="right",ft="left",yu="auto",us=[ct,St,xt,ft],Qn="start",Ki="end",wv="clippingParents",Bh="viewport",wi="popper",bv="reference",Qf=us.reduce(function(t,e){return t.concat([e+"-"+Qn,e+"-"+Ki])},[]),Fh=[].concat(us,[yu]).reduce(function(t,e){return t.concat([e,e+"-"+Qn,e+"-"+Ki])},[]),_v="beforeRead",vv="read",Ev="afterRead",Sv="beforeMain",xv="main",Tv="afterMain",Av="beforeWrite",Mv="write",Cv="afterWrite",Iv=[_v,vv,Ev,Sv,xv,Tv,Av,Mv,Cv];function yr(t){return t?(t.nodeName||"").toLowerCase():null}function Tt(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Jn(t){var e=Tt(t).Element;return t instanceof e||t instanceof Element}function Ot(t){var e=Tt(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function Uh(t){if(typeof ShadowRoot>"u")return!1;var e=Tt(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function h2(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var n=e.styles[r]||{},i=e.attributes[r]||{},s=e.elements[r];!Ot(s)||!yr(s)||(Object.assign(s.style,n),Object.keys(i).forEach(function(o){var a=i[o];a===!1?s.removeAttribute(o):s.setAttribute(o,a===!0?"":a)}))})}function p2(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(n){var i=e.elements[n],s=e.attributes[n]||{},o=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:r[n]),a=o.reduce(function(l,u){return l[u]="",l},{});!Ot(i)||!yr(i)||(Object.assign(i.style,a),Object.keys(s).forEach(function(l){i.removeAttribute(l)}))})}}const jh={name:"applyStyles",enabled:!0,phase:"write",fn:h2,effect:p2,requires:["computeStyles"]};function fr(t){return t.split("-")[0]}var Hn=Math.max,hl=Math.min,Gi=Math.round;function Jf(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Ov(){return!/^((?!chrome|android).)*safari/i.test(Jf())}function Xi(t,e,r){e===void 0&&(e=!1),r===void 0&&(r=!1);var n=t.getBoundingClientRect(),i=1,s=1;e&&Ot(t)&&(i=t.offsetWidth>0&&Gi(n.width)/t.offsetWidth||1,s=t.offsetHeight>0&&Gi(n.height)/t.offsetHeight||1);var o=Jn(t)?Tt(t):window,a=o.visualViewport,l=!Ov()&&r,u=(n.left+(l&&a?a.offsetLeft:0))/i,c=(n.top+(l&&a?a.offsetTop:0))/s,f=n.width/i,d=n.height/s;return{width:f,height:d,top:c,right:u+f,bottom:c+d,left:u,x:u,y:c}}function zh(t){var e=Xi(t),r=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:n}}function Pv(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&Uh(r)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function jr(t){return Tt(t).getComputedStyle(t)}function g2(t){return["table","td","th"].indexOf(yr(t))>=0}function _n(t){return((Jn(t)?t.ownerDocument:t.document)||window.document).documentElement}function wu(t){return yr(t)==="html"?t:t.assignedSlot||t.parentNode||(Uh(t)?t.host:null)||_n(t)}function cy(t){return!Ot(t)||jr(t).position==="fixed"?null:t.offsetParent}function m2(t){var e=/firefox/i.test(Jf()),r=/Trident/i.test(Jf());if(r&&Ot(t)){var n=jr(t);if(n.position==="fixed")return null}var i=wu(t);for(Uh(i)&&(i=i.host);Ot(i)&&["html","body"].indexOf(yr(i))<0;){var s=jr(i);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return i;i=i.parentNode}return null}function Po(t){for(var e=Tt(t),r=cy(t);r&&g2(r)&&jr(r).position==="static";)r=cy(r);return r&&(yr(r)==="html"||yr(r)==="body"&&jr(r).position==="static")?e:r||m2(t)||e}function Hh(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Gs(t,e,r){return Hn(t,hl(e,r))}function y2(t,e,r){var n=Gs(t,e,r);return n>r?r:n}function Rv(){return{top:0,right:0,bottom:0,left:0}}function Lv(t){return Object.assign({},Rv(),t)}function Nv(t,e){return e.reduce(function(r,n){return r[n]=t,r},{})}var w2=function(e,r){return e=typeof e=="function"?e(Object.assign({},r.rects,{placement:r.placement})):e,Lv(typeof e!="number"?e:Nv(e,us))};function b2(t){var e,r=t.state,n=t.name,i=t.options,s=r.elements.arrow,o=r.modifiersData.popperOffsets,a=fr(r.placement),l=Hh(a),u=[ft,xt].indexOf(a)>=0,c=u?"height":"width";if(!(!s||!o)){var f=w2(i.padding,r),d=zh(s),h=l==="y"?ct:ft,g=l==="y"?St:xt,y=r.rects.reference[c]+r.rects.reference[l]-o[l]-r.rects.popper[c],b=o[l]-r.rects.reference[l],E=Po(s),_=E?l==="y"?E.clientHeight||0:E.clientWidth||0:0,v=y/2-b/2,T=f[h],C=_-d[c]-f[g],O=_/2-d[c]/2+v,D=Gs(T,O,C),F=l;r.modifiersData[n]=(e={},e[F]=D,e.centerOffset=D-O,e)}}function _2(t){var e=t.state,r=t.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=e.elements.popper.querySelector(i),!i)||Pv(e.elements.popper,i)&&(e.elements.arrow=i))}const $v={name:"arrow",enabled:!0,phase:"main",fn:b2,effect:_2,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Qi(t){return t.split("-")[1]}var v2={top:"auto",right:"auto",bottom:"auto",left:"auto"};function E2(t,e){var r=t.x,n=t.y,i=e.devicePixelRatio||1;return{x:Gi(r*i)/i||0,y:Gi(n*i)/i||0}}function fy(t){var e,r=t.popper,n=t.popperRect,i=t.placement,s=t.variation,o=t.offsets,a=t.position,l=t.gpuAcceleration,u=t.adaptive,c=t.roundOffsets,f=t.isFixed,d=o.x,h=d===void 0?0:d,g=o.y,y=g===void 0?0:g,b=typeof c=="function"?c({x:h,y}):{x:h,y};h=b.x,y=b.y;var E=o.hasOwnProperty("x"),_=o.hasOwnProperty("y"),v=ft,T=ct,C=window;if(u){var O=Po(r),D="clientHeight",F="clientWidth";if(O===Tt(r)&&(O=_n(r),jr(O).position!=="static"&&a==="absolute"&&(D="scrollHeight",F="scrollWidth")),O=O,i===ct||(i===ft||i===xt)&&s===Ki){T=St;var L=f&&O===C&&C.visualViewport?C.visualViewport.height:O[D];y-=L-n.height,y*=l?1:-1}if(i===ft||(i===ct||i===St)&&s===Ki){v=xt;var U=f&&O===C&&C.visualViewport?C.visualViewport.width:O[F];h-=U-n.width,h*=l?1:-1}}var k=Object.assign({position:a},u&&v2),W=c===!0?E2({x:h,y},Tt(r)):{x:h,y};if(h=W.x,y=W.y,l){var $;return Object.assign({},k,($={},$[T]=_?"0":"",$[v]=E?"0":"",$.transform=(C.devicePixelRatio||1)<=1?"translate("+h+"px, "+y+"px)":"translate3d("+h+"px, "+y+"px, 0)",$))}return Object.assign({},k,(e={},e[T]=_?y+"px":"",e[v]=E?h+"px":"",e.transform="",e))}function S2(t){var e=t.state,r=t.options,n=r.gpuAcceleration,i=n===void 0?!0:n,s=r.adaptive,o=s===void 0?!0:s,a=r.roundOffsets,l=a===void 0?!0:a,u={placement:fr(e.placement),variation:Qi(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:i,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,fy(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:o,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,fy(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Wh={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:S2,data:{}};var ia={passive:!0};function x2(t){var e=t.state,r=t.instance,n=t.options,i=n.scroll,s=i===void 0?!0:i,o=n.resize,a=o===void 0?!0:o,l=Tt(e.elements.popper),u=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",r.update,ia)}),a&&l.addEventListener("resize",r.update,ia),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",r.update,ia)}),a&&l.removeEventListener("resize",r.update,ia)}}const Vh={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:x2,data:{}};var T2={left:"right",right:"left",bottom:"top",top:"bottom"};function Oa(t){return t.replace(/left|right|bottom|top/g,function(e){return T2[e]})}var A2={start:"end",end:"start"};function dy(t){return t.replace(/start|end/g,function(e){return A2[e]})}function qh(t){var e=Tt(t),r=e.pageXOffset,n=e.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Yh(t){return Xi(_n(t)).left+qh(t).scrollLeft}function M2(t,e){var r=Tt(t),n=_n(t),i=r.visualViewport,s=n.clientWidth,o=n.clientHeight,a=0,l=0;if(i){s=i.width,o=i.height;var u=Ov();(u||!u&&e==="fixed")&&(a=i.offsetLeft,l=i.offsetTop)}return{width:s,height:o,x:a+Yh(t),y:l}}function C2(t){var e,r=_n(t),n=qh(t),i=(e=t.ownerDocument)==null?void 0:e.body,s=Hn(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=Hn(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),a=-n.scrollLeft+Yh(t),l=-n.scrollTop;return jr(i||r).direction==="rtl"&&(a+=Hn(r.clientWidth,i?i.clientWidth:0)-s),{width:s,height:o,x:a,y:l}}function Kh(t){var e=jr(t),r=e.overflow,n=e.overflowX,i=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function kv(t){return["html","body","#document"].indexOf(yr(t))>=0?t.ownerDocument.body:Ot(t)&&Kh(t)?t:kv(wu(t))}function Xs(t,e){var r;e===void 0&&(e=[]);var n=kv(t),i=n===((r=t.ownerDocument)==null?void 0:r.body),s=Tt(n),o=i?[s].concat(s.visualViewport||[],Kh(n)?n:[]):n,a=e.concat(o);return i?a:a.concat(Xs(wu(o)))}function Zf(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function I2(t,e){var r=Xi(t,!1,e==="fixed");return r.top=r.top+t.clientTop,r.left=r.left+t.clientLeft,r.bottom=r.top+t.clientHeight,r.right=r.left+t.clientWidth,r.width=t.clientWidth,r.height=t.clientHeight,r.x=r.left,r.y=r.top,r}function hy(t,e,r){return e===Bh?Zf(M2(t,r)):Jn(e)?I2(e,r):Zf(C2(_n(t)))}function O2(t){var e=Xs(wu(t)),r=["absolute","fixed"].indexOf(jr(t).position)>=0,n=r&&Ot(t)?Po(t):t;return Jn(n)?e.filter(function(i){return Jn(i)&&Pv(i,n)&&yr(i)!=="body"}):[]}function P2(t,e,r,n){var i=e==="clippingParents"?O2(t):[].concat(e),s=[].concat(i,[r]),o=s[0],a=s.reduce(function(l,u){var c=hy(t,u,n);return l.top=Hn(c.top,l.top),l.right=hl(c.right,l.right),l.bottom=hl(c.bottom,l.bottom),l.left=Hn(c.left,l.left),l},hy(t,o,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Dv(t){var e=t.reference,r=t.element,n=t.placement,i=n?fr(n):null,s=n?Qi(n):null,o=e.x+e.width/2-r.width/2,a=e.y+e.height/2-r.height/2,l;switch(i){case ct:l={x:o,y:e.y-r.height};break;case St:l={x:o,y:e.y+e.height};break;case xt:l={x:e.x+e.width,y:a};break;case ft:l={x:e.x-r.width,y:a};break;default:l={x:e.x,y:e.y}}var u=i?Hh(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Qn:l[u]=l[u]-(e[c]/2-r[c]/2);break;case Ki:l[u]=l[u]+(e[c]/2-r[c]/2);break}}return l}function Ji(t,e){e===void 0&&(e={});var r=e,n=r.placement,i=n===void 0?t.placement:n,s=r.strategy,o=s===void 0?t.strategy:s,a=r.boundary,l=a===void 0?wv:a,u=r.rootBoundary,c=u===void 0?Bh:u,f=r.elementContext,d=f===void 0?wi:f,h=r.altBoundary,g=h===void 0?!1:h,y=r.padding,b=y===void 0?0:y,E=Lv(typeof b!="number"?b:Nv(b,us)),_=d===wi?bv:wi,v=t.rects.popper,T=t.elements[g?_:d],C=P2(Jn(T)?T:T.contextElement||_n(t.elements.popper),l,c,o),O=Xi(t.elements.reference),D=Dv({reference:O,element:v,strategy:"absolute",placement:i}),F=Zf(Object.assign({},v,D)),L=d===wi?F:O,U={top:C.top-L.top+E.top,bottom:L.bottom-C.bottom+E.bottom,left:C.left-L.left+E.left,right:L.right-C.right+E.right},k=t.modifiersData.offset;if(d===wi&&k){var W=k[i];Object.keys(U).forEach(function($){var I=[xt,St].indexOf($)>=0?1:-1,j=[ct,St].indexOf($)>=0?"y":"x";U[$]+=W[j]*I})}return U}function R2(t,e){e===void 0&&(e={});var r=e,n=r.placement,i=r.boundary,s=r.rootBoundary,o=r.padding,a=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?Fh:l,c=Qi(n),f=c?a?Qf:Qf.filter(function(g){return Qi(g)===c}):us,d=f.filter(function(g){return u.indexOf(g)>=0});d.length===0&&(d=f);var h=d.reduce(function(g,y){return g[y]=Ji(t,{placement:y,boundary:i,rootBoundary:s,padding:o})[fr(y)],g},{});return Object.keys(h).sort(function(g,y){return h[g]-h[y]})}function L2(t){if(fr(t)===yu)return[];var e=Oa(t);return[dy(t),e,dy(e)]}function N2(t){var e=t.state,r=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var i=r.mainAxis,s=i===void 0?!0:i,o=r.altAxis,a=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,g=h===void 0?!0:h,y=r.allowedAutoPlacements,b=e.options.placement,E=fr(b),_=E===b,v=l||(_||!g?[Oa(b)]:L2(b)),T=[b].concat(v).reduce(function(me,be){return me.concat(fr(be)===yu?R2(e,{placement:be,boundary:c,rootBoundary:f,padding:u,flipVariations:g,allowedAutoPlacements:y}):be)},[]),C=e.rects.reference,O=e.rects.popper,D=new Map,F=!0,L=T[0],U=0;U<T.length;U++){var k=T[U],W=fr(k),$=Qi(k)===Qn,I=[ct,St].indexOf(W)>=0,j=I?"width":"height",Q=Ji(e,{placement:k,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),H=I?$?xt:ft:$?St:ct;C[j]>O[j]&&(H=Oa(H));var K=Oa(H),X=[];if(s&&X.push(Q[W]<=0),a&&X.push(Q[H]<=0,Q[K]<=0),X.every(function(me){return me})){L=k,F=!1;break}D.set(k,X)}if(F)for(var Z=g?3:1,ce=function(be){var G=T.find(function(Y){var ne=D.get(Y);if(ne)return ne.slice(0,be).every(function(ee){return ee})});if(G)return L=G,"break"},pe=Z;pe>0;pe--){var de=ce(pe);if(de==="break")break}e.placement!==L&&(e.modifiersData[n]._skip=!0,e.placement=L,e.reset=!0)}}const Bv={name:"flip",enabled:!0,phase:"main",fn:N2,requiresIfExists:["offset"],data:{_skip:!1}};function py(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function gy(t){return[ct,xt,St,ft].some(function(e){return t[e]>=0})}function $2(t){var e=t.state,r=t.name,n=e.rects.reference,i=e.rects.popper,s=e.modifiersData.preventOverflow,o=Ji(e,{elementContext:"reference"}),a=Ji(e,{altBoundary:!0}),l=py(o,n),u=py(a,i,s),c=gy(l),f=gy(u);e.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}const Fv={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:$2};function k2(t,e,r){var n=fr(t),i=[ft,ct].indexOf(n)>=0?-1:1,s=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,o=s[0],a=s[1];return o=o||0,a=(a||0)*i,[ft,xt].indexOf(n)>=0?{x:a,y:o}:{x:o,y:a}}function D2(t){var e=t.state,r=t.options,n=t.name,i=r.offset,s=i===void 0?[0,0]:i,o=Fh.reduce(function(c,f){return c[f]=k2(f,e.rects,s),c},{}),a=o[e.placement],l=a.x,u=a.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=u),e.modifiersData[n]=o}const Uv={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:D2};function B2(t){var e=t.state,r=t.name;e.modifiersData[r]=Dv({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const Gh={name:"popperOffsets",enabled:!0,phase:"read",fn:B2,data:{}};function F2(t){return t==="x"?"y":"x"}function U2(t){var e=t.state,r=t.options,n=t.name,i=r.mainAxis,s=i===void 0?!0:i,o=r.altAxis,a=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,h=d===void 0?!0:d,g=r.tetherOffset,y=g===void 0?0:g,b=Ji(e,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),E=fr(e.placement),_=Qi(e.placement),v=!_,T=Hh(E),C=F2(T),O=e.modifiersData.popperOffsets,D=e.rects.reference,F=e.rects.popper,L=typeof y=="function"?y(Object.assign({},e.rects,{placement:e.placement})):y,U=typeof L=="number"?{mainAxis:L,altAxis:L}:Object.assign({mainAxis:0,altAxis:0},L),k=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,W={x:0,y:0};if(O){if(s){var $,I=T==="y"?ct:ft,j=T==="y"?St:xt,Q=T==="y"?"height":"width",H=O[T],K=H+b[I],X=H-b[j],Z=h?-F[Q]/2:0,ce=_===Qn?D[Q]:F[Q],pe=_===Qn?-F[Q]:-D[Q],de=e.elements.arrow,me=h&&de?zh(de):{width:0,height:0},be=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Rv(),G=be[I],Y=be[j],ne=Gs(0,D[Q],me[Q]),ee=v?D[Q]/2-Z-ne-G-U.mainAxis:ce-ne-G-U.mainAxis,ue=v?-D[Q]/2+Z+ne+Y+U.mainAxis:pe+ne+Y+U.mainAxis,P=e.elements.arrow&&Po(e.elements.arrow),w=P?T==="y"?P.clientTop||0:P.clientLeft||0:0,S=($=k==null?void 0:k[T])!=null?$:0,A=H+ee-S-w,B=H+ue-S,z=Gs(h?hl(K,A):K,H,h?Hn(X,B):X);O[T]=z,W[T]=z-H}if(a){var q,ie=T==="x"?ct:ft,re=T==="x"?St:xt,ae=O[C],se=C==="y"?"height":"width",he=ae+b[ie],fe=ae-b[re],ge=[ct,ft].indexOf(E)!==-1,M=(q=k==null?void 0:k[C])!=null?q:0,N=ge?he:ae-D[se]-F[se]-M+U.altAxis,x=ge?ae+D[se]+F[se]-M-U.altAxis:fe,p=h&&ge?y2(N,ae,x):Gs(h?N:he,ae,h?x:fe);O[C]=p,W[C]=p-ae}e.modifiersData[n]=W}}const jv={name:"preventOverflow",enabled:!0,phase:"main",fn:U2,requiresIfExists:["offset"]};function j2(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function z2(t){return t===Tt(t)||!Ot(t)?qh(t):j2(t)}function H2(t){var e=t.getBoundingClientRect(),r=Gi(e.width)/t.offsetWidth||1,n=Gi(e.height)/t.offsetHeight||1;return r!==1||n!==1}function W2(t,e,r){r===void 0&&(r=!1);var n=Ot(e),i=Ot(e)&&H2(e),s=_n(e),o=Xi(t,i,r),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((yr(e)!=="body"||Kh(s))&&(a=z2(e)),Ot(e)?(l=Xi(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=Yh(s))),{x:o.left+a.scrollLeft-l.x,y:o.top+a.scrollTop-l.y,width:o.width,height:o.height}}function V2(t){var e=new Map,r=new Set,n=[];t.forEach(function(s){e.set(s.name,s)});function i(s){r.add(s.name);var o=[].concat(s.requires||[],s.requiresIfExists||[]);o.forEach(function(a){if(!r.has(a)){var l=e.get(a);l&&i(l)}}),n.push(s)}return t.forEach(function(s){r.has(s.name)||i(s)}),n}function q2(t){var e=V2(t);return Iv.reduce(function(r,n){return r.concat(e.filter(function(i){return i.phase===n}))},[])}function Y2(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function K2(t){var e=t.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(e).map(function(r){return e[r]})}var my={placement:"bottom",modifiers:[],strategy:"absolute"};function yy(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return!e.some(function(n){return!(n&&typeof n.getBoundingClientRect=="function")})}function bu(t){t===void 0&&(t={});var e=t,r=e.defaultModifiers,n=r===void 0?[]:r,i=e.defaultOptions,s=i===void 0?my:i;return function(a,l,u){u===void 0&&(u=s);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},my,s),modifiersData:{},elements:{reference:a,popper:l},attributes:{},styles:{}},f=[],d=!1,h={state:c,setOptions:function(E){var _=typeof E=="function"?E(c.options):E;y(),c.options=Object.assign({},s,c.options,_),c.scrollParents={reference:Jn(a)?Xs(a):a.contextElement?Xs(a.contextElement):[],popper:Xs(l)};var v=q2(K2([].concat(n,c.options.modifiers)));return c.orderedModifiers=v.filter(function(T){return T.enabled}),g(),h.update()},forceUpdate:function(){if(!d){var E=c.elements,_=E.reference,v=E.popper;if(yy(_,v)){c.rects={reference:W2(_,Po(v),c.options.strategy==="fixed"),popper:zh(v)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(U){return c.modifiersData[U.name]=Object.assign({},U.data)});for(var T=0;T<c.orderedModifiers.length;T++){if(c.reset===!0){c.reset=!1,T=-1;continue}var C=c.orderedModifiers[T],O=C.fn,D=C.options,F=D===void 0?{}:D,L=C.name;typeof O=="function"&&(c=O({state:c,options:F,name:L,instance:h})||c)}}}},update:Y2(function(){return new Promise(function(b){h.forceUpdate(),b(c)})}),destroy:function(){y(),d=!0}};if(!yy(a,l))return h;h.setOptions(u).then(function(b){!d&&u.onFirstUpdate&&u.onFirstUpdate(b)});function g(){c.orderedModifiers.forEach(function(b){var E=b.name,_=b.options,v=_===void 0?{}:_,T=b.effect;if(typeof T=="function"){var C=T({state:c,name:E,instance:h,options:v}),O=function(){};f.push(C||O)}})}function y(){f.forEach(function(b){return b()}),f=[]}return h}}var G2=bu(),X2=[Vh,Gh,Wh,jh],Q2=bu({defaultModifiers:X2}),J2=[Vh,Gh,Wh,jh,Uv,Bv,jv,$v,Fv],Xh=bu({defaultModifiers:J2});const zv=Object.freeze(Object.defineProperty({__proto__:null,afterMain:Tv,afterRead:Ev,afterWrite:Cv,applyStyles:jh,arrow:$v,auto:yu,basePlacements:us,beforeMain:Sv,beforeRead:_v,beforeWrite:Av,bottom:St,clippingParents:wv,computeStyles:Wh,createPopper:Xh,createPopperBase:G2,createPopperLite:Q2,detectOverflow:Ji,end:Ki,eventListeners:Vh,flip:Bv,hide:Fv,left:ft,main:xv,modifierPhases:Iv,offset:Uv,placements:Fh,popper:wi,popperGenerator:bu,popperOffsets:Gh,preventOverflow:jv,read:vv,reference:bv,right:xt,start:Qn,top:ct,variationPlacements:Qf,viewport:Bh,write:Mv},Symbol.toStringTag,{value:"Module"}));/*!
+  * Bootstrap v5.3.2 (https://getbootstrap.com/)
+  * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+  */const Xr=new Map,Ic={set(t,e,r){Xr.has(t)||Xr.set(t,new Map);const n=Xr.get(t);if(!n.has(e)&&n.size!==0){console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`);return}n.set(e,r)},get(t,e){return Xr.has(t)&&Xr.get(t).get(e)||null},remove(t,e){if(!Xr.has(t))return;const r=Xr.get(t);r.delete(e),r.size===0&&Xr.delete(t)}},Z2=1e6,eF=1e3,ed="transitionend",Hv=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,(e,r)=>`#${CSS.escape(r)}`)),t),tF=t=>t==null?`${t}`:Object.prototype.toString.call(t).match(/\s([a-z]+)/i)[1].toLowerCase(),rF=t=>{do t+=Math.floor(Math.random()*Z2);while(document.getElementById(t));return t},nF=t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:r}=window.getComputedStyle(t);const n=Number.parseFloat(e),i=Number.parseFloat(r);return!n&&!i?0:(e=e.split(",")[0],r=r.split(",")[0],(Number.parseFloat(e)+Number.parseFloat(r))*eF)},Wv=t=>{t.dispatchEvent(new Event(ed))},Pr=t=>!t||typeof t!="object"?!1:(typeof t.jquery<"u"&&(t=t[0]),typeof t.nodeType<"u"),dn=t=>Pr(t)?t.jquery?t[0]:t:typeof t=="string"&&t.length>0?document.querySelector(Hv(t)):null,cs=t=>{if(!Pr(t)||t.getClientRects().length===0)return!1;const e=getComputedStyle(t).getPropertyValue("visibility")==="visible",r=t.closest("details:not([open])");if(!r)return e;if(r!==t){const n=t.closest("summary");if(n&&n.parentNode!==r||n===null)return!1}return e},hn=t=>!t||t.nodeType!==Node.ELEMENT_NODE||t.classList.contains("disabled")?!0:typeof t.disabled<"u"?t.disabled:t.hasAttribute("disabled")&&t.getAttribute("disabled")!=="false",Vv=t=>{if(!document.documentElement.attachShadow)return null;if(typeof t.getRootNode=="function"){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?Vv(t.parentNode):null},pl=()=>{},Ro=t=>{t.offsetHeight},qv=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Oc=[],iF=t=>{document.readyState==="loading"?(Oc.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of Oc)e()}),Oc.push(t)):t()},Rt=()=>document.documentElement.dir==="rtl",Dt=t=>{iF(()=>{const e=qv();if(e){const r=t.NAME,n=e.fn[r];e.fn[r]=t.jQueryInterface,e.fn[r].Constructor=t,e.fn[r].noConflict=()=>(e.fn[r]=n,t.jQueryInterface)}})},gt=(t,e=[],r=t)=>typeof t=="function"?t(...e):r,Yv=(t,e,r=!0)=>{if(!r){gt(t);return}const n=5,i=nF(e)+n;let s=!1;const o=({target:a})=>{a===e&&(s=!0,e.removeEventListener(ed,o),gt(t))};e.addEventListener(ed,o),setTimeout(()=>{s||Wv(e)},i)},Qh=(t,e,r,n)=>{const i=t.length;let s=t.indexOf(e);return s===-1?!r&&n?t[i-1]:t[0]:(s+=r?1:-1,n&&(s=(s+i)%i),t[Math.max(0,Math.min(s,i-1))])},sF=/[^.]*(?=\..*)\.|.*/,oF=/\..*/,aF=/::\d+$/,Pc={};let wy=1;const Kv={mouseenter:"mouseover",mouseleave:"mouseout"},lF=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function Gv(t,e){return e&&`${e}::${wy++}`||t.uidEvent||wy++}function Xv(t){const e=Gv(t);return t.uidEvent=e,Pc[e]=Pc[e]||{},Pc[e]}function uF(t,e){return function r(n){return Jh(n,{delegateTarget:t}),r.oneOff&&le.off(t,n.type,e),e.apply(t,[n])}}function cF(t,e,r){return function n(i){const s=t.querySelectorAll(e);for(let{target:o}=i;o&&o!==this;o=o.parentNode)for(const a of s)if(a===o)return Jh(i,{delegateTarget:o}),n.oneOff&&le.off(t,i.type,e,r),r.apply(o,[i])}}function Qv(t,e,r=null){return Object.values(t).find(n=>n.callable===e&&n.delegationSelector===r)}function Jv(t,e,r){const n=typeof e=="string",i=n?r:e||r;let s=Zv(t);return lF.has(s)||(s=t),[n,i,s]}function by(t,e,r,n,i){if(typeof e!="string"||!t)return;let[s,o,a]=Jv(e,r,n);e in Kv&&(o=(g=>function(y){if(!y.relatedTarget||y.relatedTarget!==y.delegateTarget&&!y.delegateTarget.contains(y.relatedTarget))return g.call(this,y)})(o));const l=Xv(t),u=l[a]||(l[a]={}),c=Qv(u,o,s?r:null);if(c){c.oneOff=c.oneOff&&i;return}const f=Gv(o,e.replace(sF,"")),d=s?cF(t,r,o):uF(t,o);d.delegationSelector=s?r:null,d.callable=o,d.oneOff=i,d.uidEvent=f,u[f]=d,t.addEventListener(a,d,s)}function td(t,e,r,n,i){const s=Qv(e[r],n,i);s&&(t.removeEventListener(r,s,!!i),delete e[r][s.uidEvent])}function fF(t,e,r,n){const i=e[r]||{};for(const[s,o]of Object.entries(i))s.includes(n)&&td(t,e,r,o.callable,o.delegationSelector)}function Zv(t){return t=t.replace(oF,""),Kv[t]||t}const le={on(t,e,r,n){by(t,e,r,n,!1)},one(t,e,r,n){by(t,e,r,n,!0)},off(t,e,r,n){if(typeof e!="string"||!t)return;const[i,s,o]=Jv(e,r,n),a=o!==e,l=Xv(t),u=l[o]||{},c=e.startsWith(".");if(typeof s<"u"){if(!Object.keys(u).length)return;td(t,l,o,s,i?r:null);return}if(c)for(const f of Object.keys(l))fF(t,l,f,e.slice(1));for(const[f,d]of Object.entries(u)){const h=f.replace(aF,"");(!a||e.includes(h))&&td(t,l,o,d.callable,d.delegationSelector)}},trigger(t,e,r){if(typeof e!="string"||!t)return null;const n=qv(),i=Zv(e),s=e!==i;let o=null,a=!0,l=!0,u=!1;s&&n&&(o=n.Event(e,r),n(t).trigger(o),a=!o.isPropagationStopped(),l=!o.isImmediatePropagationStopped(),u=o.isDefaultPrevented());const c=Jh(new Event(e,{bubbles:a,cancelable:!0}),r);return u&&c.preventDefault(),l&&t.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function Jh(t,e={}){for(const[r,n]of Object.entries(e))try{t[r]=n}catch{Object.defineProperty(t,r,{configurable:!0,get(){return n}})}return t}function _y(t){if(t==="true")return!0;if(t==="false")return!1;if(t===Number(t).toString())return Number(t);if(t===""||t==="null")return null;if(typeof t!="string")return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}}function Rc(t){return t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const Rr={setDataAttribute(t,e,r){t.setAttribute(`data-bs-${Rc(e)}`,r)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${Rc(e)}`)},getDataAttributes(t){if(!t)return{};const e={},r=Object.keys(t.dataset).filter(n=>n.startsWith("bs")&&!n.startsWith("bsConfig"));for(const n of r){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=_y(t.dataset[n])}return e},getDataAttribute(t,e){return _y(t.getAttribute(`data-bs-${Rc(e)}`))}};class Lo{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,r){const n=Pr(r)?Rr.getDataAttribute(r,"config"):{};return{...this.constructor.Default,...typeof n=="object"?n:{},...Pr(r)?Rr.getDataAttributes(r):{},...typeof e=="object"?e:{}}}_typeCheckConfig(e,r=this.constructor.DefaultType){for(const[n,i]of Object.entries(r)){const s=e[n],o=Pr(s)?"element":tF(s);if(!new RegExp(i).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${o}" but expected type "${i}".`)}}}const dF="5.3.2";class Qt extends Lo{constructor(e,r){super(),e=dn(e),e&&(this._element=e,this._config=this._getConfig(r),Ic.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Ic.remove(this._element,this.constructor.DATA_KEY),le.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,r,n=!0){Yv(e,r,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Ic.get(dn(e),this.DATA_KEY)}static getOrCreateInstance(e,r={}){return this.getInstance(e)||new this(e,typeof r=="object"?r:null)}static get VERSION(){return dF}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const Lc=t=>{let e=t.getAttribute("data-bs-target");if(!e||e==="#"){let r=t.getAttribute("href");if(!r||!r.includes("#")&&!r.startsWith("."))return null;r.includes("#")&&!r.startsWith("#")&&(r=`#${r.split("#")[1]}`),e=r&&r!=="#"?Hv(r.trim()):null}return e},ye={find(t,e=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(e,t))},findOne(t,e=document.documentElement){return Element.prototype.querySelector.call(e,t)},children(t,e){return[].concat(...t.children).filter(r=>r.matches(e))},parents(t,e){const r=[];let n=t.parentNode.closest(e);for(;n;)r.push(n),n=n.parentNode.closest(e);return r},prev(t,e){let r=t.previousElementSibling;for(;r;){if(r.matches(e))return[r];r=r.previousElementSibling}return[]},next(t,e){let r=t.nextElementSibling;for(;r;){if(r.matches(e))return[r];r=r.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(r=>`${r}:not([tabindex^="-"])`).join(",");return this.find(e,t).filter(r=>!hn(r)&&cs(r))},getSelectorFromElement(t){const e=Lc(t);return e&&ye.findOne(e)?e:null},getElementFromSelector(t){const e=Lc(t);return e?ye.findOne(e):null},getMultipleElementsFromSelector(t){const e=Lc(t);return e?ye.find(e):[]}},_u=(t,e="hide")=>{const r=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;le.on(document,r,`[data-bs-dismiss="${n}"]`,function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),hn(this))return;const s=ye.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()})},hF="alert",pF="bs.alert",eE=`.${pF}`,gF=`close${eE}`,mF=`closed${eE}`,yF="fade",wF="show";class vu extends Qt{static get NAME(){return hF}close(){if(le.trigger(this._element,gF).defaultPrevented)return;this._element.classList.remove(wF);const r=this._element.classList.contains(yF);this._queueCallback(()=>this._destroyElement(),this._element,r)}_destroyElement(){this._element.remove(),le.trigger(this._element,mF),this.dispose()}static jQueryInterface(e){return this.each(function(){const r=vu.getOrCreateInstance(this);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}_u(vu,"close");Dt(vu);const bF="button",_F="bs.button",vF=`.${_F}`,EF=".data-api",SF="active",vy='[data-bs-toggle="button"]',xF=`click${vF}${EF}`;class Eu extends Qt{static get NAME(){return bF}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(SF))}static jQueryInterface(e){return this.each(function(){const r=Eu.getOrCreateInstance(this);e==="toggle"&&r[e]()})}}le.on(document,xF,vy,t=>{t.preventDefault();const e=t.target.closest(vy);Eu.getOrCreateInstance(e).toggle()});Dt(Eu);const TF="swipe",fs=".bs.swipe",AF=`touchstart${fs}`,MF=`touchmove${fs}`,CF=`touchend${fs}`,IF=`pointerdown${fs}`,OF=`pointerup${fs}`,PF="touch",RF="pen",LF="pointer-event",NF=40,$F={endCallback:null,leftCallback:null,rightCallback:null},kF={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class gl extends Lo{constructor(e,r){super(),this._element=e,!(!e||!gl.isSupported())&&(this._config=this._getConfig(r),this._deltaX=0,this._supportPointerEvents=!!window.PointerEvent,this._initEvents())}static get Default(){return $F}static get DefaultType(){return kF}static get NAME(){return TF}dispose(){le.off(this._element,fs)}_start(e){if(!this._supportPointerEvents){this._deltaX=e.touches[0].clientX;return}this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX)}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),gt(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){const e=Math.abs(this._deltaX);if(e<=NF)return;const r=e/this._deltaX;this._deltaX=0,r&&gt(r>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(le.on(this._element,IF,e=>this._start(e)),le.on(this._element,OF,e=>this._end(e)),this._element.classList.add(LF)):(le.on(this._element,AF,e=>this._start(e)),le.on(this._element,MF,e=>this._move(e)),le.on(this._element,CF,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&(e.pointerType===RF||e.pointerType===PF)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const DF="carousel",BF="bs.carousel",vn=`.${BF}`,tE=".data-api",FF="ArrowLeft",UF="ArrowRight",jF=500,Is="next",hi="prev",bi="left",Pa="right",zF=`slide${vn}`,Nc=`slid${vn}`,HF=`keydown${vn}`,WF=`mouseenter${vn}`,VF=`mouseleave${vn}`,qF=`dragstart${vn}`,YF=`load${vn}${tE}`,KF=`click${vn}${tE}`,rE="carousel",sa="active",GF="slide",XF="carousel-item-end",QF="carousel-item-start",JF="carousel-item-next",ZF="carousel-item-prev",nE=".active",iE=".carousel-item",eU=nE+iE,tU=".carousel-item img",rU=".carousel-indicators",nU="[data-bs-slide], [data-bs-slide-to]",iU='[data-bs-ride="carousel"]',sU={[FF]:Pa,[UF]:bi},oU={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},aU={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class No extends Qt{constructor(e,r){super(e,r),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=ye.findOne(rU,this._element),this._addEventListeners(),this._config.ride===rE&&this.cycle()}static get Default(){return oU}static get DefaultType(){return aU}static get NAME(){return DF}next(){this._slide(Is)}nextWhenVisible(){!document.hidden&&cs(this._element)&&this.next()}prev(){this._slide(hi)}pause(){this._isSliding&&Wv(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding){le.one(this._element,Nc,()=>this.cycle());return}this.cycle()}}to(e){const r=this._getItems();if(e>r.length-1||e<0)return;if(this._isSliding){le.one(this._element,Nc,()=>this.to(e));return}const n=this._getItemIndex(this._getActive());if(n===e)return;const i=e>n?Is:hi;this._slide(i,r[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&le.on(this._element,HF,e=>this._keydown(e)),this._config.pause==="hover"&&(le.on(this._element,WF,()=>this.pause()),le.on(this._element,VF,()=>this._maybeEnableCycle())),this._config.touch&&gl.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const n of ye.find(tU,this._element))le.on(n,qF,i=>i.preventDefault());const r={leftCallback:()=>this._slide(this._directionToOrder(bi)),rightCallback:()=>this._slide(this._directionToOrder(Pa)),endCallback:()=>{this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),jF+this._config.interval))}};this._swipeHelper=new gl(this._element,r)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const r=sU[e.key];r&&(e.preventDefault(),this._slide(this._directionToOrder(r)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const r=ye.findOne(nE,this._indicatorsElement);r.classList.remove(sa),r.removeAttribute("aria-current");const n=ye.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(sa),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const r=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=r||this._config.defaultInterval}_slide(e,r=null){if(this._isSliding)return;const n=this._getActive(),i=e===Is,s=r||Qh(this._getItems(),n,i,this._config.wrap);if(s===n)return;const o=this._getItemIndex(s),a=h=>le.trigger(this._element,h,{relatedTarget:s,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:o});if(a(zF).defaultPrevented||!n||!s)return;const u=!!this._interval;this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const c=i?QF:XF,f=i?JF:ZF;s.classList.add(f),Ro(s),n.classList.add(c),s.classList.add(c);const d=()=>{s.classList.remove(c,f),s.classList.add(sa),n.classList.remove(sa,f,c),this._isSliding=!1,a(Nc)};this._queueCallback(d,n,this._isAnimated()),u&&this.cycle()}_isAnimated(){return this._element.classList.contains(GF)}_getActive(){return ye.findOne(eU,this._element)}_getItems(){return ye.find(iE,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return Rt()?e===bi?hi:Is:e===bi?Is:hi}_orderToDirection(e){return Rt()?e===hi?bi:Pa:e===hi?Pa:bi}static jQueryInterface(e){return this.each(function(){const r=No.getOrCreateInstance(this,e);if(typeof e=="number"){r.to(e);return}if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}le.on(document,KF,nU,function(t){const e=ye.getElementFromSelector(this);if(!e||!e.classList.contains(rE))return;t.preventDefault();const r=No.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");if(n){r.to(n),r._maybeEnableCycle();return}if(Rr.getDataAttribute(this,"slide")==="next"){r.next(),r._maybeEnableCycle();return}r.prev(),r._maybeEnableCycle()});le.on(window,YF,()=>{const t=ye.find(iU);for(const e of t)No.getOrCreateInstance(e)});Dt(No);const lU="collapse",uU="bs.collapse",$o=`.${uU}`,cU=".data-api",fU=`show${$o}`,dU=`shown${$o}`,hU=`hide${$o}`,pU=`hidden${$o}`,gU=`click${$o}${cU}`,$c="show",Ti="collapse",oa="collapsing",mU="collapsed",yU=`:scope .${Ti} .${Ti}`,wU="collapse-horizontal",bU="width",_U="height",vU=".collapse.show, .collapse.collapsing",rd='[data-bs-toggle="collapse"]',EU={parent:null,toggle:!0},SU={parent:"(null|element)",toggle:"boolean"};class po extends Qt{constructor(e,r){super(e,r),this._isTransitioning=!1,this._triggerArray=[];const n=ye.find(rd);for(const i of n){const s=ye.getSelectorFromElement(i),o=ye.find(s).filter(a=>a===this._element);s!==null&&o.length&&this._triggerArray.push(i)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return EU}static get DefaultType(){return SU}static get NAME(){return lU}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(vU).filter(a=>a!==this._element).map(a=>po.getOrCreateInstance(a,{toggle:!1}))),e.length&&e[0]._isTransitioning||le.trigger(this._element,fU).defaultPrevented)return;for(const a of e)a.hide();const n=this._getDimension();this._element.classList.remove(Ti),this._element.classList.add(oa),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=()=>{this._isTransitioning=!1,this._element.classList.remove(oa),this._element.classList.add(Ti,$c),this._element.style[n]="",le.trigger(this._element,dU)},o=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback(i,this._element,!0),this._element.style[n]=`${this._element[o]}px`}hide(){if(this._isTransitioning||!this._isShown()||le.trigger(this._element,hU).defaultPrevented)return;const r=this._getDimension();this._element.style[r]=`${this._element.getBoundingClientRect()[r]}px`,Ro(this._element),this._element.classList.add(oa),this._element.classList.remove(Ti,$c);for(const i of this._triggerArray){const s=ye.getElementFromSelector(i);s&&!this._isShown(s)&&this._addAriaAndCollapsedClass([i],!1)}this._isTransitioning=!0;const n=()=>{this._isTransitioning=!1,this._element.classList.remove(oa),this._element.classList.add(Ti),le.trigger(this._element,pU)};this._element.style[r]="",this._queueCallback(n,this._element,!0)}_isShown(e=this._element){return e.classList.contains($c)}_configAfterMerge(e){return e.toggle=!!e.toggle,e.parent=dn(e.parent),e}_getDimension(){return this._element.classList.contains(wU)?bU:_U}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(rd);for(const r of e){const n=ye.getElementFromSelector(r);n&&this._addAriaAndCollapsedClass([r],this._isShown(n))}}_getFirstLevelChildren(e){const r=ye.find(yU,this._config.parent);return ye.find(e,this._config.parent).filter(n=>!r.includes(n))}_addAriaAndCollapsedClass(e,r){if(e.length)for(const n of e)n.classList.toggle(mU,!r),n.setAttribute("aria-expanded",r)}static jQueryInterface(e){const r={};return typeof e=="string"&&/show|hide/.test(e)&&(r.toggle=!1),this.each(function(){const n=po.getOrCreateInstance(this,r);if(typeof e=="string"){if(typeof n[e]>"u")throw new TypeError(`No method named "${e}"`);n[e]()}})}}le.on(document,gU,rd,function(t){(t.target.tagName==="A"||t.delegateTarget&&t.delegateTarget.tagName==="A")&&t.preventDefault();for(const e of ye.getMultipleElementsFromSelector(this))po.getOrCreateInstance(e,{toggle:!1}).toggle()});Dt(po);const Ey="dropdown",xU="bs.dropdown",ai=`.${xU}`,Zh=".data-api",TU="Escape",Sy="Tab",AU="ArrowUp",xy="ArrowDown",MU=2,CU=`hide${ai}`,IU=`hidden${ai}`,OU=`show${ai}`,PU=`shown${ai}`,sE=`click${ai}${Zh}`,oE=`keydown${ai}${Zh}`,RU=`keyup${ai}${Zh}`,_i="show",LU="dropup",NU="dropend",$U="dropstart",kU="dropup-center",DU="dropdown-center",Dn='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',BU=`${Dn}.${_i}`,Ra=".dropdown-menu",FU=".navbar",UU=".navbar-nav",jU=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",zU=Rt()?"top-end":"top-start",HU=Rt()?"top-start":"top-end",WU=Rt()?"bottom-end":"bottom-start",VU=Rt()?"bottom-start":"bottom-end",qU=Rt()?"left-start":"right-start",YU=Rt()?"right-start":"left-start",KU="top",GU="bottom",XU={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},QU={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class dr extends Qt{constructor(e,r){super(e,r),this._popper=null,this._parent=this._element.parentNode,this._menu=ye.next(this._element,Ra)[0]||ye.prev(this._element,Ra)[0]||ye.findOne(Ra,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return XU}static get DefaultType(){return QU}static get NAME(){return Ey}toggle(){return this._isShown()?this.hide():this.show()}show(){if(hn(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!le.trigger(this._element,OU,e).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(UU))for(const n of[].concat(...document.body.children))le.on(n,"mouseover",pl);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(_i),this._element.classList.add(_i),le.trigger(this._element,PU,e)}}hide(){if(hn(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!le.trigger(this._element,CU,e).defaultPrevented){if("ontouchstart"in document.documentElement)for(const n of[].concat(...document.body.children))le.off(n,"mouseover",pl);this._popper&&this._popper.destroy(),this._menu.classList.remove(_i),this._element.classList.remove(_i),this._element.setAttribute("aria-expanded","false"),Rr.removeDataAttribute(this._menu,"popper"),le.trigger(this._element,IU,e)}}_getConfig(e){if(e=super._getConfig(e),typeof e.reference=="object"&&!Pr(e.reference)&&typeof e.reference.getBoundingClientRect!="function")throw new TypeError(`${Ey.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(){if(typeof zv>"u")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;this._config.reference==="parent"?e=this._parent:Pr(this._config.reference)?e=dn(this._config.reference):typeof this._config.reference=="object"&&(e=this._config.reference);const r=this._getPopperConfig();this._popper=Xh(e,this._menu,r)}_isShown(){return this._menu.classList.contains(_i)}_getPlacement(){const e=this._parent;if(e.classList.contains(NU))return qU;if(e.classList.contains($U))return YU;if(e.classList.contains(kU))return KU;if(e.classList.contains(DU))return GU;const r=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return e.classList.contains(LU)?r?HU:zU:r?VU:WU}_detectNavbar(){return this._element.closest(FU)!==null}_getOffset(){const{offset:e}=this._config;return typeof e=="string"?e.split(",").map(r=>Number.parseInt(r,10)):typeof e=="function"?r=>e(r,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||this._config.display==="static")&&(Rr.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...gt(this._config.popperConfig,[e])}}_selectMenuItem({key:e,target:r}){const n=ye.find(jU,this._menu).filter(i=>cs(i));n.length&&Qh(n,r,e===xy,!n.includes(r)).focus()}static jQueryInterface(e){return this.each(function(){const r=dr.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}static clearMenus(e){if(e.button===MU||e.type==="keyup"&&e.key!==Sy)return;const r=ye.find(BU);for(const n of r){const i=dr.getInstance(n);if(!i||i._config.autoClose===!1)continue;const s=e.composedPath(),o=s.includes(i._menu);if(s.includes(i._element)||i._config.autoClose==="inside"&&!o||i._config.autoClose==="outside"&&o||i._menu.contains(e.target)&&(e.type==="keyup"&&e.key===Sy||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const a={relatedTarget:i._element};e.type==="click"&&(a.clickEvent=e),i._completeHide(a)}}static dataApiKeydownHandler(e){const r=/input|textarea/i.test(e.target.tagName),n=e.key===TU,i=[AU,xy].includes(e.key);if(!i&&!n||r&&!n)return;e.preventDefault();const s=this.matches(Dn)?this:ye.prev(this,Dn)[0]||ye.next(this,Dn)[0]||ye.findOne(Dn,e.delegateTarget.parentNode),o=dr.getOrCreateInstance(s);if(i){e.stopPropagation(),o.show(),o._selectMenuItem(e);return}o._isShown()&&(e.stopPropagation(),o.hide(),s.focus())}}le.on(document,oE,Dn,dr.dataApiKeydownHandler);le.on(document,oE,Ra,dr.dataApiKeydownHandler);le.on(document,sE,dr.clearMenus);le.on(document,RU,dr.clearMenus);le.on(document,sE,Dn,function(t){t.preventDefault(),dr.getOrCreateInstance(this).toggle()});Dt(dr);const aE="backdrop",JU="fade",Ty="show",Ay=`mousedown.bs.${aE}`,ZU={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},e3={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class lE extends Lo{constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return ZU}static get DefaultType(){return e3}static get NAME(){return aE}show(e){if(!this._config.isVisible){gt(e);return}this._append();const r=this._getElement();this._config.isAnimated&&Ro(r),r.classList.add(Ty),this._emulateAnimation(()=>{gt(e)})}hide(e){if(!this._config.isVisible){gt(e);return}this._getElement().classList.remove(Ty),this._emulateAnimation(()=>{this.dispose(),gt(e)})}dispose(){this._isAppended&&(le.off(this._element,Ay),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add(JU),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=dn(e.rootElement),e}_append(){if(this._isAppended)return;const e=this._getElement();this._config.rootElement.append(e),le.on(e,Ay,()=>{gt(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){Yv(e,this._getElement(),this._config.isAnimated)}}const t3="focustrap",r3="bs.focustrap",ml=`.${r3}`,n3=`focusin${ml}`,i3=`keydown.tab${ml}`,s3="Tab",o3="forward",My="backward",a3={autofocus:!0,trapElement:null},l3={autofocus:"boolean",trapElement:"element"};class uE extends Lo{constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return a3}static get DefaultType(){return l3}static get NAME(){return t3}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),le.off(document,ml),le.on(document,n3,e=>this._handleFocusin(e)),le.on(document,i3,e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,le.off(document,ml))}_handleFocusin(e){const{trapElement:r}=this._config;if(e.target===document||e.target===r||r.contains(e.target))return;const n=ye.focusableChildren(r);n.length===0?r.focus():this._lastTabNavDirection===My?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){e.key===s3&&(this._lastTabNavDirection=e.shiftKey?My:o3)}}const Cy=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Iy=".sticky-top",aa="padding-right",Oy="margin-right";class nd{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,aa,r=>r+e),this._setElementAttributes(Cy,aa,r=>r+e),this._setElementAttributes(Iy,Oy,r=>r-e)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,aa),this._resetElementAttributes(Cy,aa),this._resetElementAttributes(Iy,Oy)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,r,n){const i=this.getWidth(),s=o=>{if(o!==this._element&&window.innerWidth>o.clientWidth+i)return;this._saveInitialAttribute(o,r);const a=window.getComputedStyle(o).getPropertyValue(r);o.style.setProperty(r,`${n(Number.parseFloat(a))}px`)};this._applyManipulationCallback(e,s)}_saveInitialAttribute(e,r){const n=e.style.getPropertyValue(r);n&&Rr.setDataAttribute(e,r,n)}_resetElementAttributes(e,r){const n=i=>{const s=Rr.getDataAttribute(i,r);if(s===null){i.style.removeProperty(r);return}Rr.removeDataAttribute(i,r),i.style.setProperty(r,s)};this._applyManipulationCallback(e,n)}_applyManipulationCallback(e,r){if(Pr(e)){r(e);return}for(const n of ye.find(e,this._element))r(n)}}const u3="modal",c3="bs.modal",Lt=`.${c3}`,f3=".data-api",d3="Escape",h3=`hide${Lt}`,p3=`hidePrevented${Lt}`,cE=`hidden${Lt}`,fE=`show${Lt}`,g3=`shown${Lt}`,m3=`resize${Lt}`,y3=`click.dismiss${Lt}`,w3=`mousedown.dismiss${Lt}`,b3=`keydown.dismiss${Lt}`,_3=`click${Lt}${f3}`,Py="modal-open",v3="fade",Ry="show",kc="modal-static",E3=".modal.show",S3=".modal-dialog",x3=".modal-body",T3='[data-bs-toggle="modal"]',A3={backdrop:!0,focus:!0,keyboard:!0},M3={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Zi extends Qt{constructor(e,r){super(e,r),this._dialog=ye.findOne(S3,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new nd,this._addEventListeners()}static get Default(){return A3}static get DefaultType(){return M3}static get NAME(){return u3}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||le.trigger(this._element,fE,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Py),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){!this._isShown||this._isTransitioning||le.trigger(this._element,h3).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Ry),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){le.off(window,Lt),le.off(this._dialog,Lt),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new lE({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new uE({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const r=ye.findOne(x3,this._dialog);r&&(r.scrollTop=0),Ro(this._element),this._element.classList.add(Ry);const n=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,le.trigger(this._element,g3,{relatedTarget:e})};this._queueCallback(n,this._dialog,this._isAnimated())}_addEventListeners(){le.on(this._element,b3,e=>{if(e.key===d3){if(this._config.keyboard){this.hide();return}this._triggerBackdropTransition()}}),le.on(window,m3,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),le.on(this._element,w3,e=>{le.one(this._element,y3,r=>{if(!(this._element!==e.target||this._element!==r.target)){if(this._config.backdrop==="static"){this._triggerBackdropTransition();return}this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Py),this._resetAdjustments(),this._scrollBar.reset(),le.trigger(this._element,cE)})}_isAnimated(){return this._element.classList.contains(v3)}_triggerBackdropTransition(){if(le.trigger(this._element,p3).defaultPrevented)return;const r=this._element.scrollHeight>document.documentElement.clientHeight,n=this._element.style.overflowY;n==="hidden"||this._element.classList.contains(kc)||(r||(this._element.style.overflowY="hidden"),this._element.classList.add(kc),this._queueCallback(()=>{this._element.classList.remove(kc),this._queueCallback(()=>{this._element.style.overflowY=n},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,r=this._scrollBar.getWidth(),n=r>0;if(n&&!e){const i=Rt()?"paddingLeft":"paddingRight";this._element.style[i]=`${r}px`}if(!n&&e){const i=Rt()?"paddingRight":"paddingLeft";this._element.style[i]=`${r}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,r){return this.each(function(){const n=Zi.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof n[e]>"u")throw new TypeError(`No method named "${e}"`);n[e](r)}})}}le.on(document,_3,T3,function(t){const e=ye.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),le.one(e,fE,i=>{i.defaultPrevented||le.one(e,cE,()=>{cs(this)&&this.focus()})});const r=ye.findOne(E3);r&&Zi.getInstance(r).hide(),Zi.getOrCreateInstance(e).toggle(this)});_u(Zi);Dt(Zi);const C3="offcanvas",I3="bs.offcanvas",Kr=`.${I3}`,dE=".data-api",O3=`load${Kr}${dE}`,P3="Escape",Ly="show",Ny="showing",$y="hiding",R3="offcanvas-backdrop",hE=".offcanvas.show",L3=`show${Kr}`,N3=`shown${Kr}`,$3=`hide${Kr}`,ky=`hidePrevented${Kr}`,pE=`hidden${Kr}`,k3=`resize${Kr}`,D3=`click${Kr}${dE}`,B3=`keydown.dismiss${Kr}`,F3='[data-bs-toggle="offcanvas"]',U3={backdrop:!0,keyboard:!0,scroll:!1},j3={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class pn extends Qt{constructor(e,r){super(e,r),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return U3}static get DefaultType(){return j3}static get NAME(){return C3}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown||le.trigger(this._element,L3,{relatedTarget:e}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||new nd().hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Ny);const n=()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add(Ly),this._element.classList.remove(Ny),le.trigger(this._element,N3,{relatedTarget:e})};this._queueCallback(n,this._element,!0)}hide(){if(!this._isShown||le.trigger(this._element,$3).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($y),this._backdrop.hide();const r=()=>{this._element.classList.remove(Ly,$y),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||new nd().reset(),le.trigger(this._element,pE)};this._queueCallback(r,this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=()=>{if(this._config.backdrop==="static"){le.trigger(this._element,ky);return}this.hide()},r=!!this._config.backdrop;return new lE({className:R3,isVisible:r,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:r?e:null})}_initializeFocusTrap(){return new uE({trapElement:this._element})}_addEventListeners(){le.on(this._element,B3,e=>{if(e.key===P3){if(this._config.keyboard){this.hide();return}le.trigger(this._element,ky)}})}static jQueryInterface(e){return this.each(function(){const r=pn.getOrCreateInstance(this,e);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}le.on(document,D3,F3,function(t){const e=ye.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),hn(this))return;le.one(e,pE,()=>{cs(this)&&this.focus()});const r=ye.findOne(hE);r&&r!==e&&pn.getInstance(r).hide(),pn.getOrCreateInstance(e).toggle(this)});le.on(window,O3,()=>{for(const t of ye.find(hE))pn.getOrCreateInstance(t).show()});le.on(window,k3,()=>{for(const t of ye.find("[aria-modal][class*=show][class*=offcanvas-]"))getComputedStyle(t).position!=="fixed"&&pn.getOrCreateInstance(t).hide()});_u(pn);Dt(pn);const z3=/^aria-[\w-]*$/i,gE={"*":["class","dir","id","lang","role",z3],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},H3=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),W3=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,V3=(t,e)=>{const r=t.nodeName.toLowerCase();return e.includes(r)?H3.has(r)?!!W3.test(t.nodeValue):!0:e.filter(n=>n instanceof RegExp).some(n=>n.test(r))};function q3(t,e,r){if(!t.length)return t;if(r&&typeof r=="function")return r(t);const i=new window.DOMParser().parseFromString(t,"text/html"),s=[].concat(...i.body.querySelectorAll("*"));for(const o of s){const a=o.nodeName.toLowerCase();if(!Object.keys(e).includes(a)){o.remove();continue}const l=[].concat(...o.attributes),u=[].concat(e["*"]||[],e[a]||[]);for(const c of l)V3(c,u)||o.removeAttribute(c.nodeName)}return i.body.innerHTML}const Y3="TemplateFactory",K3={allowList:gE,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},G3={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},X3={entry:"(string|element|function|null)",selector:"(string|element)"};class Q3 extends Lo{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return K3}static get DefaultType(){return G3}static get NAME(){return Y3}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[i,s]of Object.entries(this._config.content))this._setContent(e,s,i);const r=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&r.classList.add(...n.split(" ")),r}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[r,n]of Object.entries(e))super._typeCheckConfig({selector:r,entry:n},X3)}_setContent(e,r,n){const i=ye.findOne(n,e);if(i){if(r=this._resolvePossibleFunction(r),!r){i.remove();return}if(Pr(r)){this._putElementInTemplate(dn(r),i);return}if(this._config.html){i.innerHTML=this._maybeSanitize(r);return}i.textContent=r}}_maybeSanitize(e){return this._config.sanitize?q3(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return gt(e,[this])}_putElementInTemplate(e,r){if(this._config.html){r.innerHTML="",r.append(e);return}r.textContent=e.textContent}}const J3="tooltip",Z3=new Set(["sanitize","allowList","sanitizeFn"]),Dc="fade",ej="modal",la="show",tj=".tooltip-inner",Dy=`.${ej}`,By="hide.bs.modal",Os="hover",Bc="focus",rj="click",nj="manual",ij="hide",sj="hidden",oj="show",aj="shown",lj="inserted",uj="click",cj="focusin",fj="focusout",dj="mouseenter",hj="mouseleave",pj={AUTO:"auto",TOP:"top",RIGHT:Rt()?"left":"right",BOTTOM:"bottom",LEFT:Rt()?"right":"left"},gj={allowList:gE,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},mj={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class ds extends Qt{constructor(e,r){if(typeof zv>"u")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,r),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return gj}static get DefaultType(){return mj}static get NAME(){return J3}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()){this._leave();return}this._enter()}}dispose(){clearTimeout(this._timeout),le.off(this._element.closest(Dy),By,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(!(this._isWithContent()&&this._isEnabled))return;const e=le.trigger(this._element,this.constructor.eventName(oj)),n=(Vv(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!n)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:s}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(i),le.trigger(this._element,this.constructor.eventName(lj))),this._popper=this._createPopper(i),i.classList.add(la),"ontouchstart"in document.documentElement)for(const a of[].concat(...document.body.children))le.on(a,"mouseover",pl);const o=()=>{le.trigger(this._element,this.constructor.eventName(aj)),this._isHovered===!1&&this._leave(),this._isHovered=!1};this._queueCallback(o,this.tip,this._isAnimated())}hide(){if(!this._isShown()||le.trigger(this._element,this.constructor.eventName(ij)).defaultPrevented)return;if(this._getTipElement().classList.remove(la),"ontouchstart"in document.documentElement)for(const i of[].concat(...document.body.children))le.off(i,"mouseover",pl);this._activeTrigger[rj]=!1,this._activeTrigger[Bc]=!1,this._activeTrigger[Os]=!1,this._isHovered=null;const n=()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),le.trigger(this._element,this.constructor.eventName(sj)))};this._queueCallback(n,this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return!!this._getTitle()}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const r=this._getTemplateFactory(e).toHtml();if(!r)return null;r.classList.remove(Dc,la),r.classList.add(`bs-${this.constructor.NAME}-auto`);const n=rF(this.constructor.NAME).toString();return r.setAttribute("id",n),this._isAnimated()&&r.classList.add(Dc),r}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Q3({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[tj]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Dc)}_isShown(){return this.tip&&this.tip.classList.contains(la)}_createPopper(e){const r=gt(this._config.placement,[this,e,this._element]),n=pj[r.toUpperCase()];return Xh(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return typeof e=="string"?e.split(",").map(r=>Number.parseInt(r,10)):typeof e=="function"?r=>e(r,this._element):e}_resolvePossibleFunction(e){return gt(e,[this._element])}_getPopperConfig(e){const r={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:n=>{this._getTipElement().setAttribute("data-popper-placement",n.state.placement)}}]};return{...r,...gt(this._config.popperConfig,[r])}}_setListeners(){const e=this._config.trigger.split(" ");for(const r of e)if(r==="click")le.on(this._element,this.constructor.eventName(uj),this._config.selector,n=>{this._initializeOnDelegatedTarget(n).toggle()});else if(r!==nj){const n=r===Os?this.constructor.eventName(dj):this.constructor.eventName(cj),i=r===Os?this.constructor.eventName(hj):this.constructor.eventName(fj);le.on(this._element,n,this._config.selector,s=>{const o=this._initializeOnDelegatedTarget(s);o._activeTrigger[s.type==="focusin"?Bc:Os]=!0,o._enter()}),le.on(this._element,i,this._config.selector,s=>{const o=this._initializeOnDelegatedTarget(s);o._activeTrigger[s.type==="focusout"?Bc:Os]=o._element.contains(s.relatedTarget),o._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},le.on(this._element.closest(Dy),By,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(!this._element.getAttribute("aria-label")&&!this._element.textContent.trim()&&this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){if(this._isShown()||this._isHovered){this._isHovered=!0;return}this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show)}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,r){clearTimeout(this._timeout),this._timeout=setTimeout(e,r)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const r=Rr.getDataAttributes(this._element);for(const n of Object.keys(r))Z3.has(n)&&delete r[n];return e={...r,...typeof e=="object"&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=e.container===!1?document.body:dn(e.container),typeof e.delay=="number"&&(e.delay={show:e.delay,hide:e.delay}),typeof e.title=="number"&&(e.title=e.title.toString()),typeof e.content=="number"&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[r,n]of Object.entries(this._config))this.constructor.Default[r]!==n&&(e[r]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each(function(){const r=ds.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}}Dt(ds);const yj="popover",wj=".popover-header",bj=".popover-body",_j={...ds.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},vj={...ds.DefaultType,content:"(null|string|element|function)"};class ep extends ds{static get Default(){return _j}static get DefaultType(){return vj}static get NAME(){return yj}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[wj]:this._getTitle(),[bj]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each(function(){const r=ep.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e]()}})}}Dt(ep);const Ej="scrollspy",Sj="bs.scrollspy",tp=`.${Sj}`,xj=".data-api",Tj=`activate${tp}`,Fy=`click${tp}`,Aj=`load${tp}${xj}`,Mj="dropdown-item",pi="active",Cj='[data-bs-spy="scroll"]',Fc="[href]",Ij=".nav, .list-group",Uy=".nav-link",Oj=".nav-item",Pj=".list-group-item",Rj=`${Uy}, ${Oj} > ${Uy}, ${Pj}`,Lj=".dropdown",Nj=".dropdown-toggle",$j={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},kj={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Su extends Qt{constructor(e,r){super(e,r),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=getComputedStyle(this._element).overflowY==="visible"?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return $j}static get DefaultType(){return kj}static get NAME(){return Ej}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=dn(e.target)||document.body,e.rootMargin=e.offset?`${e.offset}px 0px -30%`:e.rootMargin,typeof e.threshold=="string"&&(e.threshold=e.threshold.split(",").map(r=>Number.parseFloat(r))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(le.off(this._config.target,Fy),le.on(this._config.target,Fy,Fc,e=>{const r=this._observableSections.get(e.target.hash);if(r){e.preventDefault();const n=this._rootElement||window,i=r.offsetTop-this._element.offsetTop;if(n.scrollTo){n.scrollTo({top:i,behavior:"smooth"});return}n.scrollTop=i}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(r=>this._observerCallback(r),e)}_observerCallback(e){const r=o=>this._targetLinks.get(`#${o.target.id}`),n=o=>{this._previousScrollData.visibleEntryTop=o.target.offsetTop,this._process(r(o))},i=(this._rootElement||document.documentElement).scrollTop,s=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const o of e){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(r(o));continue}const a=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&a){if(n(o),!i)return;continue}!s&&!a&&n(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=ye.find(Fc,this._config.target);for(const r of e){if(!r.hash||hn(r))continue;const n=ye.findOne(decodeURI(r.hash),this._element);cs(n)&&(this._targetLinks.set(decodeURI(r.hash),r),this._observableSections.set(r.hash,n))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(pi),this._activateParents(e),le.trigger(this._element,Tj,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains(Mj)){ye.findOne(Nj,e.closest(Lj)).classList.add(pi);return}for(const r of ye.parents(e,Ij))for(const n of ye.prev(r,Rj))n.classList.add(pi)}_clearActiveClass(e){e.classList.remove(pi);const r=ye.find(`${Fc}.${pi}`,e);for(const n of r)n.classList.remove(pi)}static jQueryInterface(e){return this.each(function(){const r=Su.getOrCreateInstance(this,e);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}le.on(window,Aj,()=>{for(const t of ye.find(Cj))Su.getOrCreateInstance(t)});Dt(Su);const Dj="tab",Bj="bs.tab",li=`.${Bj}`,Fj=`hide${li}`,Uj=`hidden${li}`,jj=`show${li}`,zj=`shown${li}`,Hj=`click${li}`,Wj=`keydown${li}`,Vj=`load${li}`,qj="ArrowLeft",jy="ArrowRight",Yj="ArrowUp",zy="ArrowDown",Uc="Home",Hy="End",Bn="active",Wy="fade",jc="show",Kj="dropdown",mE=".dropdown-toggle",Gj=".dropdown-menu",zc=`:not(${mE})`,Xj='.list-group, .nav, [role="tablist"]',Qj=".nav-item, .list-group-item",Jj=`.nav-link${zc}, .list-group-item${zc}, [role="tab"]${zc}`,yE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Hc=`${Jj}, ${yE}`,Zj=`.${Bn}[data-bs-toggle="tab"], .${Bn}[data-bs-toggle="pill"], .${Bn}[data-bs-toggle="list"]`;class es extends Qt{constructor(e){super(e),this._parent=this._element.closest(Xj),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),le.on(this._element,Wj,r=>this._keydown(r)))}static get NAME(){return Dj}show(){const e=this._element;if(this._elemIsActive(e))return;const r=this._getActiveElem(),n=r?le.trigger(r,Fj,{relatedTarget:e}):null;le.trigger(e,jj,{relatedTarget:r}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(r,e),this._activate(e,r))}_activate(e,r){if(!e)return;e.classList.add(Bn),this._activate(ye.getElementFromSelector(e));const n=()=>{if(e.getAttribute("role")!=="tab"){e.classList.add(jc);return}e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleDropDown(e,!0),le.trigger(e,zj,{relatedTarget:r})};this._queueCallback(n,e,e.classList.contains(Wy))}_deactivate(e,r){if(!e)return;e.classList.remove(Bn),e.blur(),this._deactivate(ye.getElementFromSelector(e));const n=()=>{if(e.getAttribute("role")!=="tab"){e.classList.remove(jc);return}e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleDropDown(e,!1),le.trigger(e,Uj,{relatedTarget:r})};this._queueCallback(n,e,e.classList.contains(Wy))}_keydown(e){if(![qj,jy,Yj,zy,Uc,Hy].includes(e.key))return;e.stopPropagation(),e.preventDefault();const r=this._getChildren().filter(i=>!hn(i));let n;if([Uc,Hy].includes(e.key))n=r[e.key===Uc?0:r.length-1];else{const i=[jy,zy].includes(e.key);n=Qh(r,e.target,i,!0)}n&&(n.focus({preventScroll:!0}),es.getOrCreateInstance(n).show())}_getChildren(){return ye.find(Hc,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,r){this._setAttributeIfNotExists(e,"role","tablist");for(const n of r)this._setInitialAttributesOnChild(n)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const r=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",r),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),r||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const r=ye.getElementFromSelector(e);r&&(this._setAttributeIfNotExists(r,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(r,"aria-labelledby",`${e.id}`))}_toggleDropDown(e,r){const n=this._getOuterElement(e);if(!n.classList.contains(Kj))return;const i=(s,o)=>{const a=ye.findOne(s,n);a&&a.classList.toggle(o,r)};i(mE,Bn),i(Gj,jc),n.setAttribute("aria-expanded",r)}_setAttributeIfNotExists(e,r,n){e.hasAttribute(r)||e.setAttribute(r,n)}_elemIsActive(e){return e.classList.contains(Bn)}_getInnerElement(e){return e.matches(Hc)?e:ye.findOne(Hc,e)}_getOuterElement(e){return e.closest(Qj)||e}static jQueryInterface(e){return this.each(function(){const r=es.getOrCreateInstance(this);if(typeof e=="string"){if(r[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);r[e]()}})}}le.on(document,Hj,yE,function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),!hn(this)&&es.getOrCreateInstance(this).show()});le.on(window,Vj,()=>{for(const t of ye.find(Zj))es.getOrCreateInstance(t)});Dt(es);const ez="toast",tz="bs.toast",En=`.${tz}`,rz=`mouseover${En}`,nz=`mouseout${En}`,iz=`focusin${En}`,sz=`focusout${En}`,oz=`hide${En}`,az=`hidden${En}`,lz=`show${En}`,uz=`shown${En}`,cz="fade",Vy="hide",ua="show",ca="showing",fz={animation:"boolean",autohide:"boolean",delay:"number"},dz={animation:!0,autohide:!0,delay:5e3};class xu extends Qt{constructor(e,r){super(e,r),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return dz}static get DefaultType(){return fz}static get NAME(){return ez}show(){if(le.trigger(this._element,lz).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(cz);const r=()=>{this._element.classList.remove(ca),le.trigger(this._element,uz),this._maybeScheduleHide()};this._element.classList.remove(Vy),Ro(this._element),this._element.classList.add(ua,ca),this._queueCallback(r,this._element,this._config.animation)}hide(){if(!this.isShown()||le.trigger(this._element,oz).defaultPrevented)return;const r=()=>{this._element.classList.add(Vy),this._element.classList.remove(ca,ua),le.trigger(this._element,az)};this._element.classList.add(ca),this._queueCallback(r,this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ua),super.dispose()}isShown(){return this._element.classList.contains(ua)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,r){switch(e.type){case"mouseover":case"mouseout":{this._hasMouseInteraction=r;break}case"focusin":case"focusout":{this._hasKeyboardInteraction=r;break}}if(r){this._clearTimeout();return}const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){le.on(this._element,rz,e=>this._onInteraction(e,!0)),le.on(this._element,nz,e=>this._onInteraction(e,!1)),le.on(this._element,iz,e=>this._onInteraction(e,!0)),le.on(this._element,sz,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const r=xu.getOrCreateInstance(this,e);if(typeof e=="string"){if(typeof r[e]>"u")throw new TypeError(`No method named "${e}"`);r[e](this)}})}}_u(xu);Dt(xu);function qy(t){return t!==null&&typeof t=="object"&&"constructor"in t&&t.constructor===Object}function rp(t,e){t===void 0&&(t={}),e===void 0&&(e={}),Object.keys(e).forEach(r=>{typeof t[r]>"u"?t[r]=e[r]:qy(e[r])&&qy(t[r])&&Object.keys(e[r]).length>0&&rp(t[r],e[r])})}const wE={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function st(){const t=typeof document<"u"?document:{};return rp(t,wE),t}const hz={document:wE,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return""}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(t){return typeof setTimeout>"u"?(t(),null):setTimeout(t,0)},cancelAnimationFrame(t){typeof setTimeout>"u"||clearTimeout(t)}};function je(){const t=typeof window<"u"?window:{};return rp(t,hz),t}function pz(t){const e=t;Object.keys(e).forEach(r=>{try{e[r]=null}catch{}try{delete e[r]}catch{}})}function Zn(t,e){return e===void 0&&(e=0),setTimeout(t,e)}function Ct(){return Date.now()}function gz(t){const e=je();let r;return e.getComputedStyle&&(r=e.getComputedStyle(t,null)),!r&&t.currentStyle&&(r=t.currentStyle),r||(r=t.style),r}function id(t,e){e===void 0&&(e="x");const r=je();let n,i,s;const o=gz(t);return r.WebKitCSSMatrix?(i=o.transform||o.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map(a=>a.replace(",",".")).join(", ")),s=new r.WebKitCSSMatrix(i==="none"?"":i)):(s=o.MozTransform||o.OTransform||o.MsTransform||o.msTransform||o.transform||o.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),n=s.toString().split(",")),e==="x"&&(r.WebKitCSSMatrix?i=s.m41:n.length===16?i=parseFloat(n[12]):i=parseFloat(n[4])),e==="y"&&(r.WebKitCSSMatrix?i=s.m42:n.length===16?i=parseFloat(n[13]):i=parseFloat(n[5])),i||0}function Bs(t){return typeof t=="object"&&t!==null&&t.constructor&&Object.prototype.toString.call(t).slice(8,-1)==="Object"}function mz(t){return typeof window<"u"&&typeof window.HTMLElement<"u"?t instanceof HTMLElement:t&&(t.nodeType===1||t.nodeType===11)}function vt(){const t=Object(arguments.length<=0?void 0:arguments[0]),e=["__proto__","constructor","prototype"];for(let r=1;r<arguments.length;r+=1){const n=r<0||arguments.length<=r?void 0:arguments[r];if(n!=null&&!mz(n)){const i=Object.keys(Object(n)).filter(s=>e.indexOf(s)<0);for(let s=0,o=i.length;s<o;s+=1){const a=i[s],l=Object.getOwnPropertyDescriptor(n,a);l!==void 0&&l.enumerable&&(Bs(t[a])&&Bs(n[a])?n[a].__swiper__?t[a]=n[a]:vt(t[a],n[a]):!Bs(t[a])&&Bs(n[a])?(t[a]={},n[a].__swiper__?t[a]=n[a]:vt(t[a],n[a])):t[a]=n[a])}}}return t}function Fs(t,e,r){t.style.setProperty(e,r)}function bE(t){let{swiper:e,targetPosition:r,side:n}=t;const i=je(),s=-e.translate;let o=null,a;const l=e.params.speed;e.wrapperEl.style.scrollSnapType="none",i.cancelAnimationFrame(e.cssModeFrameID);const u=r>s?"next":"prev",c=(d,h)=>u==="next"&&d>=h||u==="prev"&&d<=h,f=()=>{a=new Date().getTime(),o===null&&(o=a);const d=Math.max(Math.min((a-o)/l,1),0),h=.5-Math.cos(d*Math.PI)/2;let g=s+h*(r-s);if(c(g,r)&&(g=r),e.wrapperEl.scrollTo({[n]:g}),c(g,r)){e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout(()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[n]:g})}),i.cancelAnimationFrame(e.cssModeFrameID);return}e.cssModeFrameID=i.requestAnimationFrame(f)};f()}function ui(t){return t.querySelector(".swiper-slide-transform")||t.shadowRoot&&t.shadowRoot.querySelector(".swiper-slide-transform")||t}function Qe(t,e){return e===void 0&&(e=""),[...t.children].filter(r=>r.matches(e))}function Vt(t,e){e===void 0&&(e=[]);const r=document.createElement(t);return r.classList.add(...Array.isArray(e)?e:[e]),r}function yl(t){const e=je(),r=st(),n=t.getBoundingClientRect(),i=r.body,s=t.clientTop||i.clientTop||0,o=t.clientLeft||i.clientLeft||0,a=t===e?e.scrollY:t.scrollTop,l=t===e?e.scrollX:t.scrollLeft;return{top:n.top+a-s,left:n.left+l-o}}function yz(t,e){const r=[];for(;t.previousElementSibling;){const n=t.previousElementSibling;e?n.matches(e)&&r.push(n):r.push(n),t=n}return r}function wz(t,e){const r=[];for(;t.nextElementSibling;){const n=t.nextElementSibling;e?n.matches(e)&&r.push(n):r.push(n),t=n}return r}function sn(t,e){return je().getComputedStyle(t,null).getPropertyValue(e)}function go(t){let e=t,r;if(e){for(r=0;(e=e.previousSibling)!==null;)e.nodeType===1&&(r+=1);return r}}function Wn(t,e){const r=[];let n=t.parentElement;for(;n;)e?n.matches(e)&&r.push(n):r.push(n),n=n.parentElement;return r}function Qs(t,e){function r(n){n.target===t&&(e.call(t,n),t.removeEventListener("transitionend",r))}e&&t.addEventListener("transitionend",r)}function sd(t,e,r){const n=je();return r?t[e==="width"?"offsetWidth":"offsetHeight"]+parseFloat(n.getComputedStyle(t,null).getPropertyValue(e==="width"?"margin-right":"margin-top"))+parseFloat(n.getComputedStyle(t,null).getPropertyValue(e==="width"?"margin-left":"margin-bottom")):t.offsetWidth}let Wc;function bz(){const t=je(),e=st();return{smoothScroll:e.documentElement&&e.documentElement.style&&"scrollBehavior"in e.documentElement.style,touch:!!("ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch)}}function _E(){return Wc||(Wc=bz()),Wc}let Vc;function _z(t){let{userAgent:e}=t===void 0?{}:t;const r=_E(),n=je(),i=n.navigator.platform,s=e||n.navigator.userAgent,o={ios:!1,android:!1},a=n.screen.width,l=n.screen.height,u=s.match(/(Android);?[\s\/]+([\d.]+)?/);let c=s.match(/(iPad).*OS\s([\d_]+)/);const f=s.match(/(iPod)(.*OS\s([\d_]+))?/),d=!c&&s.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h=i==="Win32";let g=i==="MacIntel";const y=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!c&&g&&r.touch&&y.indexOf(`${a}x${l}`)>=0&&(c=s.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),g=!1),u&&!h&&(o.os="android",o.android=!0),(c||d||f)&&(o.os="ios",o.ios=!0),o}function vz(t){return t===void 0&&(t={}),Vc||(Vc=_z(t)),Vc}let qc;function Ez(){const t=je();let e=!1;function r(){const n=t.navigator.userAgent.toLowerCase();return n.indexOf("safari")>=0&&n.indexOf("chrome")<0&&n.indexOf("android")<0}if(r()){const n=String(t.navigator.userAgent);if(n.includes("Version/")){const[i,s]=n.split("Version/")[1].split(" ")[0].split(".").map(o=>Number(o));e=i<16||i===16&&s<2}}return{isSafari:e||r(),needPerspectiveFix:e,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)}}function Sz(){return qc||(qc=Ez()),qc}function xz(t){let{swiper:e,on:r,emit:n}=t;const i=je();let s=null,o=null;const a=()=>{!e||e.destroyed||!e.initialized||(n("beforeResize"),n("resize"))},l=()=>{!e||e.destroyed||!e.initialized||(s=new ResizeObserver(f=>{o=i.requestAnimationFrame(()=>{const{width:d,height:h}=e;let g=d,y=h;f.forEach(b=>{let{contentBoxSize:E,contentRect:_,target:v}=b;v&&v!==e.el||(g=_?_.width:(E[0]||E).inlineSize,y=_?_.height:(E[0]||E).blockSize)}),(g!==d||y!==h)&&a()})}),s.observe(e.el))},u=()=>{o&&i.cancelAnimationFrame(o),s&&s.unobserve&&e.el&&(s.unobserve(e.el),s=null)},c=()=>{!e||e.destroyed||!e.initialized||n("orientationchange")};r("init",()=>{if(e.params.resizeObserver&&typeof i.ResizeObserver<"u"){l();return}i.addEventListener("resize",a),i.addEventListener("orientationchange",c)}),r("destroy",()=>{u(),i.removeEventListener("resize",a),i.removeEventListener("orientationchange",c)})}function Tz(t){let{swiper:e,extendParams:r,on:n,emit:i}=t;const s=[],o=je(),a=function(c,f){f===void 0&&(f={});const d=o.MutationObserver||o.WebkitMutationObserver,h=new d(g=>{if(e.__preventObserver__)return;if(g.length===1){i("observerUpdate",g[0]);return}const y=function(){i("observerUpdate",g[0])};o.requestAnimationFrame?o.requestAnimationFrame(y):o.setTimeout(y,0)});h.observe(c,{attributes:typeof f.attributes>"u"?!0:f.attributes,childList:typeof f.childList>"u"?!0:f.childList,characterData:typeof f.characterData>"u"?!0:f.characterData}),s.push(h)},l=()=>{if(e.params.observer){if(e.params.observeParents){const c=Wn(e.hostEl);for(let f=0;f<c.length;f+=1)a(c[f])}a(e.hostEl,{childList:e.params.observeSlideChildren}),a(e.wrapperEl,{attributes:!1})}},u=()=>{s.forEach(c=>{c.disconnect()}),s.splice(0,s.length)};r({observer:!1,observeParents:!1,observeSlideChildren:!1}),n("init",l),n("destroy",u)}var Az={on(t,e,r){const n=this;if(!n.eventsListeners||n.destroyed||typeof e!="function")return n;const i=r?"unshift":"push";return t.split(" ").forEach(s=>{n.eventsListeners[s]||(n.eventsListeners[s]=[]),n.eventsListeners[s][i](e)}),n},once(t,e,r){const n=this;if(!n.eventsListeners||n.destroyed||typeof e!="function")return n;function i(){n.off(t,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,o=new Array(s),a=0;a<s;a++)o[a]=arguments[a];e.apply(n,o)}return i.__emitterProxy=e,n.on(t,i,r)},onAny(t,e){const r=this;if(!r.eventsListeners||r.destroyed||typeof t!="function")return r;const n=e?"unshift":"push";return r.eventsAnyListeners.indexOf(t)<0&&r.eventsAnyListeners[n](t),r},offAny(t){const e=this;if(!e.eventsListeners||e.destroyed||!e.eventsAnyListeners)return e;const r=e.eventsAnyListeners.indexOf(t);return r>=0&&e.eventsAnyListeners.splice(r,1),e},off(t,e){const r=this;return!r.eventsListeners||r.destroyed||!r.eventsListeners||t.split(" ").forEach(n=>{typeof e>"u"?r.eventsListeners[n]=[]:r.eventsListeners[n]&&r.eventsListeners[n].forEach((i,s)=>{(i===e||i.__emitterProxy&&i.__emitterProxy===e)&&r.eventsListeners[n].splice(s,1)})}),r},emit(){const t=this;if(!t.eventsListeners||t.destroyed||!t.eventsListeners)return t;let e,r,n;for(var i=arguments.length,s=new Array(i),o=0;o<i;o++)s[o]=arguments[o];return typeof s[0]=="string"||Array.isArray(s[0])?(e=s[0],r=s.slice(1,s.length),n=t):(e=s[0].events,r=s[0].data,n=s[0].context||t),r.unshift(n),(Array.isArray(e)?e:e.split(" ")).forEach(l=>{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach(u=>{u.apply(n,[l,...r])}),t.eventsListeners&&t.eventsListeners[l]&&t.eventsListeners[l].forEach(u=>{u.apply(n,r)})}),t}};function Mz(){const t=this;let e,r;const n=t.el;typeof t.params.width<"u"&&t.params.width!==null?e=t.params.width:e=n.clientWidth,typeof t.params.height<"u"&&t.params.height!==null?r=t.params.height:r=n.clientHeight,!(e===0&&t.isHorizontal()||r===0&&t.isVertical())&&(e=e-parseInt(sn(n,"padding-left")||0,10)-parseInt(sn(n,"padding-right")||0,10),r=r-parseInt(sn(n,"padding-top")||0,10)-parseInt(sn(n,"padding-bottom")||0,10),Number.isNaN(e)&&(e=0),Number.isNaN(r)&&(r=0),Object.assign(t,{width:e,height:r,size:t.isHorizontal()?e:r}))}function Cz(){const t=this;function e(k){return t.isHorizontal()?k:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[k]}function r(k,W){return parseFloat(k.getPropertyValue(e(W))||0)}const n=t.params,{wrapperEl:i,slidesEl:s,size:o,rtlTranslate:a,wrongRTL:l}=t,u=t.virtual&&n.virtual.enabled,c=u?t.virtual.slides.length:t.slides.length,f=Qe(s,`.${t.params.slideClass}, swiper-slide`),d=u?t.virtual.slides.length:f.length;let h=[];const g=[],y=[];let b=n.slidesOffsetBefore;typeof b=="function"&&(b=n.slidesOffsetBefore.call(t));let E=n.slidesOffsetAfter;typeof E=="function"&&(E=n.slidesOffsetAfter.call(t));const _=t.snapGrid.length,v=t.slidesGrid.length;let T=n.spaceBetween,C=-b,O=0,D=0;if(typeof o>"u")return;typeof T=="string"&&T.indexOf("%")>=0?T=parseFloat(T.replace("%",""))/100*o:typeof T=="string"&&(T=parseFloat(T)),t.virtualSize=-T,f.forEach(k=>{a?k.style.marginLeft="":k.style.marginRight="",k.style.marginBottom="",k.style.marginTop=""}),n.centeredSlides&&n.cssMode&&(Fs(i,"--swiper-centered-offset-before",""),Fs(i,"--swiper-centered-offset-after",""));const F=n.grid&&n.grid.rows>1&&t.grid;F&&t.grid.initSlides(d);let L;const U=n.slidesPerView==="auto"&&n.breakpoints&&Object.keys(n.breakpoints).filter(k=>typeof n.breakpoints[k].slidesPerView<"u").length>0;for(let k=0;k<d;k+=1){L=0;let W;if(f[k]&&(W=f[k]),F&&t.grid.updateSlide(k,W,d,e),!(f[k]&&sn(W,"display")==="none")){if(n.slidesPerView==="auto"){U&&(f[k].style[e("width")]="");const $=getComputedStyle(W),I=W.style.transform,j=W.style.webkitTransform;if(I&&(W.style.transform="none"),j&&(W.style.webkitTransform="none"),n.roundLengths)L=t.isHorizontal()?sd(W,"width",!0):sd(W,"height",!0);else{const Q=r($,"width"),H=r($,"padding-left"),K=r($,"padding-right"),X=r($,"margin-left"),Z=r($,"margin-right"),ce=$.getPropertyValue("box-sizing");if(ce&&ce==="border-box")L=Q+X+Z;else{const{clientWidth:pe,offsetWidth:de}=W;L=Q+H+K+X+Z+(de-pe)}}I&&(W.style.transform=I),j&&(W.style.webkitTransform=j),n.roundLengths&&(L=Math.floor(L))}else L=(o-(n.slidesPerView-1)*T)/n.slidesPerView,n.roundLengths&&(L=Math.floor(L)),f[k]&&(f[k].style[e("width")]=`${L}px`);f[k]&&(f[k].swiperSlideSize=L),y.push(L),n.centeredSlides?(C=C+L/2+O/2+T,O===0&&k!==0&&(C=C-o/2-T),k===0&&(C=C-o/2-T),Math.abs(C)<1/1e3&&(C=0),n.roundLengths&&(C=Math.floor(C)),D%n.slidesPerGroup===0&&h.push(C),g.push(C)):(n.roundLengths&&(C=Math.floor(C)),(D-Math.min(t.params.slidesPerGroupSkip,D))%t.params.slidesPerGroup===0&&h.push(C),g.push(C),C=C+L+T),t.virtualSize+=L+T,O=L,D+=1}}if(t.virtualSize=Math.max(t.virtualSize,o)+E,a&&l&&(n.effect==="slide"||n.effect==="coverflow")&&(i.style.width=`${t.virtualSize+T}px`),n.setWrapperSize&&(i.style[e("width")]=`${t.virtualSize+T}px`),F&&t.grid.updateWrapperSize(L,h,e),!n.centeredSlides){const k=[];for(let W=0;W<h.length;W+=1){let $=h[W];n.roundLengths&&($=Math.floor($)),h[W]<=t.virtualSize-o&&k.push($)}h=k,Math.floor(t.virtualSize-o)-Math.floor(h[h.length-1])>1&&h.push(t.virtualSize-o)}if(u&&n.loop){const k=y[0]+T;if(n.slidesPerGroup>1){const W=Math.ceil((t.virtual.slidesBefore+t.virtual.slidesAfter)/n.slidesPerGroup),$=k*n.slidesPerGroup;for(let I=0;I<W;I+=1)h.push(h[h.length-1]+$)}for(let W=0;W<t.virtual.slidesBefore+t.virtual.slidesAfter;W+=1)n.slidesPerGroup===1&&h.push(h[h.length-1]+k),g.push(g[g.length-1]+k),t.virtualSize+=k}if(h.length===0&&(h=[0]),T!==0){const k=t.isHorizontal()&&a?"marginLeft":e("marginRight");f.filter((W,$)=>!n.cssMode||n.loop?!0:$!==f.length-1).forEach(W=>{W.style[k]=`${T}px`})}if(n.centeredSlides&&n.centeredSlidesBounds){let k=0;y.forEach($=>{k+=$+(T||0)}),k-=T;const W=k-o;h=h.map($=>$<=0?-b:$>W?W+E:$)}if(n.centerInsufficientSlides){let k=0;if(y.forEach(W=>{k+=W+(T||0)}),k-=T,k<o){const W=(o-k)/2;h.forEach(($,I)=>{h[I]=$-W}),g.forEach(($,I)=>{g[I]=$+W})}}if(Object.assign(t,{slides:f,snapGrid:h,slidesGrid:g,slidesSizesGrid:y}),n.centeredSlides&&n.cssMode&&!n.centeredSlidesBounds){Fs(i,"--swiper-centered-offset-before",`${-h[0]}px`),Fs(i,"--swiper-centered-offset-after",`${t.size/2-y[y.length-1]/2}px`);const k=-t.snapGrid[0],W=-t.slidesGrid[0];t.snapGrid=t.snapGrid.map($=>$+k),t.slidesGrid=t.slidesGrid.map($=>$+W)}if(d!==c&&t.emit("slidesLengthChange"),h.length!==_&&(t.params.watchOverflow&&t.checkOverflow(),t.emit("snapGridLengthChange")),g.length!==v&&t.emit("slidesGridLengthChange"),n.watchSlidesProgress&&t.updateSlidesOffset(),!u&&!n.cssMode&&(n.effect==="slide"||n.effect==="fade")){const k=`${n.containerModifierClass}backface-hidden`,W=t.el.classList.contains(k);d<=n.maxBackfaceHiddenSlides?W||t.el.classList.add(k):W&&t.el.classList.remove(k)}}function Iz(t){const e=this,r=[],n=e.virtual&&e.params.virtual.enabled;let i=0,s;typeof t=="number"?e.setTransition(t):t===!0&&e.setTransition(e.params.speed);const o=a=>n?e.slides[e.getSlideIndexByData(a)]:e.slides[a];if(e.params.slidesPerView!=="auto"&&e.params.slidesPerView>1)if(e.params.centeredSlides)(e.visibleSlides||[]).forEach(a=>{r.push(a)});else for(s=0;s<Math.ceil(e.params.slidesPerView);s+=1){const a=e.activeIndex+s;if(a>e.slides.length&&!n)break;r.push(o(a))}else r.push(o(e.activeIndex));for(s=0;s<r.length;s+=1)if(typeof r[s]<"u"){const a=r[s].offsetHeight;i=a>i?a:i}(i||i===0)&&(e.wrapperEl.style.height=`${i}px`)}function Oz(){const t=this,e=t.slides,r=t.isElement?t.isHorizontal()?t.wrapperEl.offsetLeft:t.wrapperEl.offsetTop:0;for(let n=0;n<e.length;n+=1)e[n].swiperSlideOffset=(t.isHorizontal()?e[n].offsetLeft:e[n].offsetTop)-r-t.cssOverflowAdjustment()}function Pz(t){t===void 0&&(t=this&&this.translate||0);const e=this,r=e.params,{slides:n,rtlTranslate:i,snapGrid:s}=e;if(n.length===0)return;typeof n[0].swiperSlideOffset>"u"&&e.updateSlidesOffset();let o=-t;i&&(o=t),n.forEach(l=>{l.classList.remove(r.slideVisibleClass)}),e.visibleSlidesIndexes=[],e.visibleSlides=[];let a=r.spaceBetween;typeof a=="string"&&a.indexOf("%")>=0?a=parseFloat(a.replace("%",""))/100*e.size:typeof a=="string"&&(a=parseFloat(a));for(let l=0;l<n.length;l+=1){const u=n[l];let c=u.swiperSlideOffset;r.cssMode&&r.centeredSlides&&(c-=n[0].swiperSlideOffset);const f=(o+(r.centeredSlides?e.minTranslate():0)-c)/(u.swiperSlideSize+a),d=(o-s[0]+(r.centeredSlides?e.minTranslate():0)-c)/(u.swiperSlideSize+a),h=-(o-c),g=h+e.slidesSizesGrid[l];(h>=0&&h<e.size-1||g>1&&g<=e.size||h<=0&&g>=e.size)&&(e.visibleSlides.push(u),e.visibleSlidesIndexes.push(l),n[l].classList.add(r.slideVisibleClass)),u.progress=i?-f:f,u.originalProgress=i?-d:d}}function Rz(t){const e=this;if(typeof t>"u"){const c=e.rtlTranslate?-1:1;t=e&&e.translate&&e.translate*c||0}const r=e.params,n=e.maxTranslate()-e.minTranslate();let{progress:i,isBeginning:s,isEnd:o,progressLoop:a}=e;const l=s,u=o;if(n===0)i=0,s=!0,o=!0;else{i=(t-e.minTranslate())/n;const c=Math.abs(t-e.minTranslate())<1,f=Math.abs(t-e.maxTranslate())<1;s=c||i<=0,o=f||i>=1,c&&(i=0),f&&(i=1)}if(r.loop){const c=e.getSlideIndexByData(0),f=e.getSlideIndexByData(e.slides.length-1),d=e.slidesGrid[c],h=e.slidesGrid[f],g=e.slidesGrid[e.slidesGrid.length-1],y=Math.abs(t);y>=d?a=(y-d)/g:a=(y+g-h)/g,a>1&&(a-=1)}Object.assign(e,{progress:i,progressLoop:a,isBeginning:s,isEnd:o}),(r.watchSlidesProgress||r.centeredSlides&&r.autoHeight)&&e.updateSlidesProgress(t),s&&!l&&e.emit("reachBeginning toEdge"),o&&!u&&e.emit("reachEnd toEdge"),(l&&!s||u&&!o)&&e.emit("fromEdge"),e.emit("progress",i)}function Lz(){const t=this,{slides:e,params:r,slidesEl:n,activeIndex:i}=t,s=t.virtual&&r.virtual.enabled,o=l=>Qe(n,`.${r.slideClass}${l}, swiper-slide${l}`)[0];e.forEach(l=>{l.classList.remove(r.slideActiveClass,r.slideNextClass,r.slidePrevClass)});let a;if(s)if(r.loop){let l=i-t.virtual.slidesBefore;l<0&&(l=t.virtual.slides.length+l),l>=t.virtual.slides.length&&(l-=t.virtual.slides.length),a=o(`[data-swiper-slide-index="${l}"]`)}else a=o(`[data-swiper-slide-index="${i}"]`);else a=e[i];if(a){a.classList.add(r.slideActiveClass);let l=wz(a,`.${r.slideClass}, swiper-slide`)[0];r.loop&&!l&&(l=e[0]),l&&l.classList.add(r.slideNextClass);let u=yz(a,`.${r.slideClass}, swiper-slide`)[0];r.loop&&!u===0&&(u=e[e.length-1]),u&&u.classList.add(r.slidePrevClass)}t.emitSlidesClasses()}const La=(t,e)=>{if(!t||t.destroyed||!t.params)return;const r=()=>t.isElement?"swiper-slide":`.${t.params.slideClass}`,n=e.closest(r());if(n){let i=n.querySelector(`.${t.params.lazyPreloaderClass}`);!i&&t.isElement&&(n.shadowRoot?i=n.shadowRoot.querySelector(`.${t.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{n.shadowRoot&&(i=n.shadowRoot.querySelector(`.${t.params.lazyPreloaderClass}`),i&&i.remove())})),i&&i.remove()}},Yc=(t,e)=>{if(!t.slides[e])return;const r=t.slides[e].querySelector('[loading="lazy"]');r&&r.removeAttribute("loading")},od=t=>{if(!t||t.destroyed||!t.params)return;let e=t.params.lazyPreloadPrevNext;const r=t.slides.length;if(!r||!e||e<0)return;e=Math.min(e,r);const n=t.params.slidesPerView==="auto"?t.slidesPerViewDynamic():Math.ceil(t.params.slidesPerView),i=t.activeIndex;if(t.params.grid&&t.params.grid.rows>1){const o=i,a=[o-e];a.push(...Array.from({length:e}).map((l,u)=>o+n+u)),t.slides.forEach((l,u)=>{a.includes(l.column)&&Yc(t,u)});return}const s=i+n-1;if(t.params.rewind||t.params.loop)for(let o=i-e;o<=s+e;o+=1){const a=(o%r+r)%r;(a<i||a>s)&&Yc(t,a)}else for(let o=Math.max(i-e,0);o<=Math.min(s+e,r-1);o+=1)o!==i&&(o>s||o<i)&&Yc(t,o)};function Nz(t){const{slidesGrid:e,params:r}=t,n=t.rtlTranslate?t.translate:-t.translate;let i;for(let s=0;s<e.length;s+=1)typeof e[s+1]<"u"?n>=e[s]&&n<e[s+1]-(e[s+1]-e[s])/2?i=s:n>=e[s]&&n<e[s+1]&&(i=s+1):n>=e[s]&&(i=s);return r.normalizeSlideIndex&&(i<0||typeof i>"u")&&(i=0),i}function $z(t){const e=this,r=e.rtlTranslate?e.translate:-e.translate,{snapGrid:n,params:i,activeIndex:s,realIndex:o,snapIndex:a}=e;let l=t,u;const c=d=>{let h=d-e.virtual.slidesBefore;return h<0&&(h=e.virtual.slides.length+h),h>=e.virtual.slides.length&&(h-=e.virtual.slides.length),h};if(typeof l>"u"&&(l=Nz(e)),n.indexOf(r)>=0)u=n.indexOf(r);else{const d=Math.min(i.slidesPerGroupSkip,l);u=d+Math.floor((l-d)/i.slidesPerGroup)}if(u>=n.length&&(u=n.length-1),l===s){u!==a&&(e.snapIndex=u,e.emit("snapIndexChange")),e.params.loop&&e.virtual&&e.params.virtual.enabled&&(e.realIndex=c(l));return}let f;e.virtual&&i.virtual.enabled&&i.loop?f=c(l):e.slides[l]?f=parseInt(e.slides[l].getAttribute("data-swiper-slide-index")||l,10):f=l,Object.assign(e,{previousSnapIndex:a,snapIndex:u,previousRealIndex:o,realIndex:f,previousIndex:s,activeIndex:l}),e.initialized&&od(e),e.emit("activeIndexChange"),e.emit("snapIndexChange"),(e.initialized||e.params.runCallbacksOnInit)&&(o!==f&&e.emit("realIndexChange"),e.emit("slideChange"))}function kz(t,e){const r=this,n=r.params;let i=t.closest(`.${n.slideClass}, swiper-slide`);!i&&r.isElement&&e&&e.length>1&&e.includes(t)&&[...e.slice(e.indexOf(t)+1,e.length)].forEach(a=>{!i&&a.matches&&a.matches(`.${n.slideClass}, swiper-slide`)&&(i=a)});let s=!1,o;if(i){for(let a=0;a<r.slides.length;a+=1)if(r.slides[a]===i){s=!0,o=a;break}}if(i&&s)r.clickedSlide=i,r.virtual&&r.params.virtual.enabled?r.clickedIndex=parseInt(i.getAttribute("data-swiper-slide-index"),10):r.clickedIndex=o;else{r.clickedSlide=void 0,r.clickedIndex=void 0;return}n.slideToClickedSlide&&r.clickedIndex!==void 0&&r.clickedIndex!==r.activeIndex&&r.slideToClickedSlide()}var Dz={updateSize:Mz,updateSlides:Cz,updateAutoHeight:Iz,updateSlidesOffset:Oz,updateSlidesProgress:Pz,updateProgress:Rz,updateSlidesClasses:Lz,updateActiveIndex:$z,updateClickedSlide:kz};function Bz(t){t===void 0&&(t=this.isHorizontal()?"x":"y");const e=this,{params:r,rtlTranslate:n,translate:i,wrapperEl:s}=e;if(r.virtualTranslate)return n?-i:i;if(r.cssMode)return i;let o=id(s,t);return o+=e.cssOverflowAdjustment(),n&&(o=-o),o||0}function Fz(t,e){const r=this,{rtlTranslate:n,params:i,wrapperEl:s,progress:o}=r;let a=0,l=0;const u=0;r.isHorizontal()?a=n?-t:t:l=t,i.roundLengths&&(a=Math.floor(a),l=Math.floor(l)),r.previousTranslate=r.translate,r.translate=r.isHorizontal()?a:l,i.cssMode?s[r.isHorizontal()?"scrollLeft":"scrollTop"]=r.isHorizontal()?-a:-l:i.virtualTranslate||(r.isHorizontal()?a-=r.cssOverflowAdjustment():l-=r.cssOverflowAdjustment(),s.style.transform=`translate3d(${a}px, ${l}px, ${u}px)`);let c;const f=r.maxTranslate()-r.minTranslate();f===0?c=0:c=(t-r.minTranslate())/f,c!==o&&r.updateProgress(t),r.emit("setTranslate",r.translate,e)}function Uz(){return-this.snapGrid[0]}function jz(){return-this.snapGrid[this.snapGrid.length-1]}function zz(t,e,r,n,i){t===void 0&&(t=0),e===void 0&&(e=this.params.speed),r===void 0&&(r=!0),n===void 0&&(n=!0);const s=this,{params:o,wrapperEl:a}=s;if(s.animating&&o.preventInteractionOnTransition)return!1;const l=s.minTranslate(),u=s.maxTranslate();let c;if(n&&t>l?c=l:n&&t<u?c=u:c=t,s.updateProgress(c),o.cssMode){const f=s.isHorizontal();if(e===0)a[f?"scrollLeft":"scrollTop"]=-c;else{if(!s.support.smoothScroll)return bE({swiper:s,targetPosition:-c,side:f?"left":"top"}),!0;a.scrollTo({[f?"left":"top"]:-c,behavior:"smooth"})}return!0}return e===0?(s.setTransition(0),s.setTranslate(c),r&&(s.emit("beforeTransitionStart",e,i),s.emit("transitionEnd"))):(s.setTransition(e),s.setTranslate(c),r&&(s.emit("beforeTransitionStart",e,i),s.emit("transitionStart")),s.animating||(s.animating=!0,s.onTranslateToWrapperTransitionEnd||(s.onTranslateToWrapperTransitionEnd=function(d){!s||s.destroyed||d.target===this&&(s.wrapperEl.removeEventListener("transitionend",s.onTranslateToWrapperTransitionEnd),s.onTranslateToWrapperTransitionEnd=null,delete s.onTranslateToWrapperTransitionEnd,r&&s.emit("transitionEnd"))}),s.wrapperEl.addEventListener("transitionend",s.onTranslateToWrapperTransitionEnd))),!0}var Hz={getTranslate:Bz,setTranslate:Fz,minTranslate:Uz,maxTranslate:jz,translateTo:zz};function Wz(t,e){const r=this;r.params.cssMode||(r.wrapperEl.style.transitionDuration=`${t}ms`,r.wrapperEl.style.transitionDelay=t===0?"0ms":""),r.emit("setTransition",t,e)}function vE(t){let{swiper:e,runCallbacks:r,direction:n,step:i}=t;const{activeIndex:s,previousIndex:o}=e;let a=n;if(a||(s>o?a="next":s<o?a="prev":a="reset"),e.emit(`transition${i}`),r&&s!==o){if(a==="reset"){e.emit(`slideResetTransition${i}`);return}e.emit(`slideChangeTransition${i}`),a==="next"?e.emit(`slideNextTransition${i}`):e.emit(`slidePrevTransition${i}`)}}function Vz(t,e){t===void 0&&(t=!0);const r=this,{params:n}=r;n.cssMode||(n.autoHeight&&r.updateAutoHeight(),vE({swiper:r,runCallbacks:t,direction:e,step:"Start"}))}function qz(t,e){t===void 0&&(t=!0);const r=this,{params:n}=r;r.animating=!1,!n.cssMode&&(r.setTransition(0),vE({swiper:r,runCallbacks:t,direction:e,step:"End"}))}var Yz={setTransition:Wz,transitionStart:Vz,transitionEnd:qz};function Kz(t,e,r,n,i){t===void 0&&(t=0),e===void 0&&(e=this.params.speed),r===void 0&&(r=!0),typeof t=="string"&&(t=parseInt(t,10));const s=this;let o=t;o<0&&(o=0);const{params:a,snapGrid:l,slidesGrid:u,previousIndex:c,activeIndex:f,rtlTranslate:d,wrapperEl:h,enabled:g}=s;if(s.animating&&a.preventInteractionOnTransition||!g&&!n&&!i)return!1;const y=Math.min(s.params.slidesPerGroupSkip,o);let b=y+Math.floor((o-y)/s.params.slidesPerGroup);b>=l.length&&(b=l.length-1);const E=-l[b];if(a.normalizeSlideIndex)for(let v=0;v<u.length;v+=1){const T=-Math.floor(E*100),C=Math.floor(u[v]*100),O=Math.floor(u[v+1]*100);typeof u[v+1]<"u"?T>=C&&T<O-(O-C)/2?o=v:T>=C&&T<O&&(o=v+1):T>=C&&(o=v)}if(s.initialized&&o!==f&&(!s.allowSlideNext&&(d?E>s.translate&&E>s.minTranslate():E<s.translate&&E<s.minTranslate())||!s.allowSlidePrev&&E>s.translate&&E>s.maxTranslate()&&(f||0)!==o))return!1;o!==(c||0)&&r&&s.emit("beforeSlideChangeStart"),s.updateProgress(E);let _;if(o>f?_="next":o<f?_="prev":_="reset",d&&-E===s.translate||!d&&E===s.translate)return s.updateActiveIndex(o),a.autoHeight&&s.updateAutoHeight(),s.updateSlidesClasses(),a.effect!=="slide"&&s.setTranslate(E),_!=="reset"&&(s.transitionStart(r,_),s.transitionEnd(r,_)),!1;if(a.cssMode){const v=s.isHorizontal(),T=d?E:-E;if(e===0){const C=s.virtual&&s.params.virtual.enabled;C&&(s.wrapperEl.style.scrollSnapType="none",s._immediateVirtual=!0),C&&!s._cssModeVirtualInitialSet&&s.params.initialSlide>0?(s._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{h[v?"scrollLeft":"scrollTop"]=T})):h[v?"scrollLeft":"scrollTop"]=T,C&&requestAnimationFrame(()=>{s.wrapperEl.style.scrollSnapType="",s._immediateVirtual=!1})}else{if(!s.support.smoothScroll)return bE({swiper:s,targetPosition:T,side:v?"left":"top"}),!0;h.scrollTo({[v?"left":"top"]:T,behavior:"smooth"})}return!0}return s.setTransition(e),s.setTranslate(E),s.updateActiveIndex(o),s.updateSlidesClasses(),s.emit("beforeTransitionStart",e,n),s.transitionStart(r,_),e===0?s.transitionEnd(r,_):s.animating||(s.animating=!0,s.onSlideToWrapperTransitionEnd||(s.onSlideToWrapperTransitionEnd=function(T){!s||s.destroyed||T.target===this&&(s.wrapperEl.removeEventListener("transitionend",s.onSlideToWrapperTransitionEnd),s.onSlideToWrapperTransitionEnd=null,delete s.onSlideToWrapperTransitionEnd,s.transitionEnd(r,_))}),s.wrapperEl.addEventListener("transitionend",s.onSlideToWrapperTransitionEnd)),!0}function Gz(t,e,r,n){t===void 0&&(t=0),e===void 0&&(e=this.params.speed),r===void 0&&(r=!0),typeof t=="string"&&(t=parseInt(t,10));const i=this;let s=t;return i.params.loop&&(i.virtual&&i.params.virtual.enabled?s=s+i.virtual.slidesBefore:s=i.getSlideIndexByData(s)),i.slideTo(s,e,r,n)}function Xz(t,e,r){t===void 0&&(t=this.params.speed),e===void 0&&(e=!0);const n=this,{enabled:i,params:s,animating:o}=n;if(!i)return n;let a=s.slidesPerGroup;s.slidesPerView==="auto"&&s.slidesPerGroup===1&&s.slidesPerGroupAuto&&(a=Math.max(n.slidesPerViewDynamic("current",!0),1));const l=n.activeIndex<s.slidesPerGroupSkip?1:a,u=n.virtual&&s.virtual.enabled;if(s.loop){if(o&&!u&&s.loopPreventsSliding)return!1;if(n.loopFix({direction:"next"}),n._clientLeft=n.wrapperEl.clientLeft,n.activeIndex===n.slides.length-1&&s.cssMode)return requestAnimationFrame(()=>{n.slideTo(n.activeIndex+l,t,e,r)}),!0}return s.rewind&&n.isEnd?n.slideTo(0,t,e,r):n.slideTo(n.activeIndex+l,t,e,r)}function Qz(t,e,r){t===void 0&&(t=this.params.speed),e===void 0&&(e=!0);const n=this,{params:i,snapGrid:s,slidesGrid:o,rtlTranslate:a,enabled:l,animating:u}=n;if(!l)return n;const c=n.virtual&&i.virtual.enabled;if(i.loop){if(u&&!c&&i.loopPreventsSliding)return!1;n.loopFix({direction:"prev"}),n._clientLeft=n.wrapperEl.clientLeft}const f=a?n.translate:-n.translate;function d(E){return E<0?-Math.floor(Math.abs(E)):Math.floor(E)}const h=d(f),g=s.map(E=>d(E));let y=s[g.indexOf(h)-1];if(typeof y>"u"&&i.cssMode){let E;s.forEach((_,v)=>{h>=_&&(E=v)}),typeof E<"u"&&(y=s[E>0?E-1:E])}let b=0;if(typeof y<"u"&&(b=o.indexOf(y),b<0&&(b=n.activeIndex-1),i.slidesPerView==="auto"&&i.slidesPerGroup===1&&i.slidesPerGroupAuto&&(b=b-n.slidesPerViewDynamic("previous",!0)+1,b=Math.max(b,0))),i.rewind&&n.isBeginning){const E=n.params.virtual&&n.params.virtual.enabled&&n.virtual?n.virtual.slides.length-1:n.slides.length-1;return n.slideTo(E,t,e,r)}else if(i.loop&&n.activeIndex===0&&i.cssMode)return requestAnimationFrame(()=>{n.slideTo(b,t,e,r)}),!0;return n.slideTo(b,t,e,r)}function Jz(t,e,r){t===void 0&&(t=this.params.speed),e===void 0&&(e=!0);const n=this;return n.slideTo(n.activeIndex,t,e,r)}function Zz(t,e,r,n){t===void 0&&(t=this.params.speed),e===void 0&&(e=!0),n===void 0&&(n=.5);const i=this;let s=i.activeIndex;const o=Math.min(i.params.slidesPerGroupSkip,s),a=o+Math.floor((s-o)/i.params.slidesPerGroup),l=i.rtlTranslate?i.translate:-i.translate;if(l>=i.snapGrid[a]){const u=i.snapGrid[a],c=i.snapGrid[a+1];l-u>(c-u)*n&&(s+=i.params.slidesPerGroup)}else{const u=i.snapGrid[a-1],c=i.snapGrid[a];l-u<=(c-u)*n&&(s-=i.params.slidesPerGroup)}return s=Math.max(s,0),s=Math.min(s,i.slidesGrid.length-1),i.slideTo(s,t,e,r)}function eH(){const t=this,{params:e,slidesEl:r}=t,n=e.slidesPerView==="auto"?t.slidesPerViewDynamic():e.slidesPerView;let i=t.clickedIndex,s;const o=t.isElement?"swiper-slide":`.${e.slideClass}`;if(e.loop){if(t.animating)return;s=parseInt(t.clickedSlide.getAttribute("data-swiper-slide-index"),10),e.centeredSlides?i<t.loopedSlides-n/2||i>t.slides.length-t.loopedSlides+n/2?(t.loopFix(),i=t.getSlideIndex(Qe(r,`${o}[data-swiper-slide-index="${s}"]`)[0]),Zn(()=>{t.slideTo(i)})):t.slideTo(i):i>t.slides.length-n?(t.loopFix(),i=t.getSlideIndex(Qe(r,`${o}[data-swiper-slide-index="${s}"]`)[0]),Zn(()=>{t.slideTo(i)})):t.slideTo(i)}else t.slideTo(i)}var tH={slideTo:Kz,slideToLoop:Gz,slideNext:Xz,slidePrev:Qz,slideReset:Jz,slideToClosest:Zz,slideToClickedSlide:eH};function rH(t){const e=this,{params:r,slidesEl:n}=e;if(!r.loop||e.virtual&&e.params.virtual.enabled)return;Qe(n,`.${r.slideClass}, swiper-slide`).forEach((s,o)=>{s.setAttribute("data-swiper-slide-index",o)}),e.loopFix({slideRealIndex:t,direction:r.centeredSlides?void 0:"next"})}function nH(t){let{slideRealIndex:e,slideTo:r=!0,direction:n,setTranslate:i,activeSlideIndex:s,byController:o,byMousewheel:a}=t===void 0?{}:t;const l=this;if(!l.params.loop)return;l.emit("beforeLoopFix");const{slides:u,allowSlidePrev:c,allowSlideNext:f,slidesEl:d,params:h}=l;if(l.allowSlidePrev=!0,l.allowSlideNext=!0,l.virtual&&h.virtual.enabled){r&&(!h.centeredSlides&&l.snapIndex===0?l.slideTo(l.virtual.slides.length,0,!1,!0):h.centeredSlides&&l.snapIndex<h.slidesPerView?l.slideTo(l.virtual.slides.length+l.snapIndex,0,!1,!0):l.snapIndex===l.snapGrid.length-1&&l.slideTo(l.virtual.slidesBefore,0,!1,!0)),l.allowSlidePrev=c,l.allowSlideNext=f,l.emit("loopFix");return}const g=h.slidesPerView==="auto"?l.slidesPerViewDynamic():Math.ceil(parseFloat(h.slidesPerView,10));let y=h.loopedSlides||g;y%h.slidesPerGroup!==0&&(y+=h.slidesPerGroup-y%h.slidesPerGroup),l.loopedSlides=y;const b=[],E=[];let _=l.activeIndex;typeof s>"u"?s=l.getSlideIndex(l.slides.filter(D=>D.classList.contains(h.slideActiveClass))[0]):_=s;const v=n==="next"||!n,T=n==="prev"||!n;let C=0,O=0;if(s<y){C=Math.max(y-s,h.slidesPerGroup);for(let D=0;D<y-s;D+=1){const F=D-Math.floor(D/u.length)*u.length;b.push(u.length-F-1)}}else if(s>l.slides.length-y*2){O=Math.max(s-(l.slides.length-y*2),h.slidesPerGroup);for(let D=0;D<O;D+=1){const F=D-Math.floor(D/u.length)*u.length;E.push(F)}}if(T&&b.forEach(D=>{l.slides[D].swiperLoopMoveDOM=!0,d.prepend(l.slides[D]),l.slides[D].swiperLoopMoveDOM=!1}),v&&E.forEach(D=>{l.slides[D].swiperLoopMoveDOM=!0,d.append(l.slides[D]),l.slides[D].swiperLoopMoveDOM=!1}),l.recalcSlides(),h.slidesPerView==="auto"&&l.updateSlides(),h.watchSlidesProgress&&l.updateSlidesOffset(),r){if(b.length>0&&T)if(typeof e>"u"){const D=l.slidesGrid[_],L=l.slidesGrid[_+C]-D;a?l.setTranslate(l.translate-L):(l.slideTo(_+C,0,!1,!0),i&&(l.touches[l.isHorizontal()?"startX":"startY"]+=L,l.touchEventsData.currentTranslate=l.translate))}else i&&(l.slideToLoop(e,0,!1,!0),l.touchEventsData.currentTranslate=l.translate);else if(E.length>0&&v)if(typeof e>"u"){const D=l.slidesGrid[_],L=l.slidesGrid[_-O]-D;a?l.setTranslate(l.translate-L):(l.slideTo(_-O,0,!1,!0),i&&(l.touches[l.isHorizontal()?"startX":"startY"]+=L,l.touchEventsData.currentTranslate=l.translate))}else l.slideToLoop(e,0,!1,!0)}if(l.allowSlidePrev=c,l.allowSlideNext=f,l.controller&&l.controller.control&&!o){const D={slideRealIndex:e,direction:n,setTranslate:i,activeSlideIndex:s,byController:!0};Array.isArray(l.controller.control)?l.controller.control.forEach(F=>{!F.destroyed&&F.params.loop&&F.loopFix({...D,slideTo:F.params.slidesPerView===h.slidesPerView?r:!1})}):l.controller.control instanceof l.constructor&&l.controller.control.params.loop&&l.controller.control.loopFix({...D,slideTo:l.controller.control.params.slidesPerView===h.slidesPerView?r:!1})}l.emit("loopFix")}function iH(){const t=this,{params:e,slidesEl:r}=t;if(!e.loop||t.virtual&&t.params.virtual.enabled)return;t.recalcSlides();const n=[];t.slides.forEach(i=>{const s=typeof i.swiperSlideIndex>"u"?i.getAttribute("data-swiper-slide-index")*1:i.swiperSlideIndex;n[s]=i}),t.slides.forEach(i=>{i.removeAttribute("data-swiper-slide-index")}),n.forEach(i=>{r.append(i)}),t.recalcSlides(),t.slideTo(t.realIndex,0)}var sH={loopCreate:rH,loopFix:nH,loopDestroy:iH};function oH(t){const e=this;if(!e.params.simulateTouch||e.params.watchOverflow&&e.isLocked||e.params.cssMode)return;const r=e.params.touchEventsTarget==="container"?e.el:e.wrapperEl;e.isElement&&(e.__preventObserver__=!0),r.style.cursor="move",r.style.cursor=t?"grabbing":"grab",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1})}function aH(){const t=this;t.params.watchOverflow&&t.isLocked||t.params.cssMode||(t.isElement&&(t.__preventObserver__=!0),t[t.params.touchEventsTarget==="container"?"el":"wrapperEl"].style.cursor="",t.isElement&&requestAnimationFrame(()=>{t.__preventObserver__=!1}))}var lH={setGrabCursor:oH,unsetGrabCursor:aH};function uH(t,e){e===void 0&&(e=this);function r(n){if(!n||n===st()||n===je())return null;n.assignedSlot&&(n=n.assignedSlot);const i=n.closest(t);return!i&&!n.getRootNode?null:i||r(n.getRootNode().host)}return r(e)}function cH(t){const e=this,r=st(),n=je(),i=e.touchEventsData;i.evCache.push(t);const{params:s,touches:o,enabled:a}=e;if(!a||!s.simulateTouch&&t.pointerType==="mouse"||e.animating&&s.preventInteractionOnTransition)return;!e.animating&&s.cssMode&&s.loop&&e.loopFix();let l=t;l.originalEvent&&(l=l.originalEvent);let u=l.target;if(s.touchEventsTarget==="wrapper"&&!e.wrapperEl.contains(u)||"which"in l&&l.which===3||"button"in l&&l.button>0||i.isTouched&&i.isMoved)return;const c=!!s.noSwipingClass&&s.noSwipingClass!=="",f=t.composedPath?t.composedPath():t.path;c&&l.target&&l.target.shadowRoot&&f&&(u=f[0]);const d=s.noSwipingSelector?s.noSwipingSelector:`.${s.noSwipingClass}`,h=!!(l.target&&l.target.shadowRoot);if(s.noSwiping&&(h?uH(d,u):u.closest(d))){e.allowClick=!0;return}if(s.swipeHandler&&!u.closest(s.swipeHandler))return;o.currentX=l.pageX,o.currentY=l.pageY;const g=o.currentX,y=o.currentY,b=s.edgeSwipeDetection||s.iOSEdgeSwipeDetection,E=s.edgeSwipeThreshold||s.iOSEdgeSwipeThreshold;if(b&&(g<=E||g>=n.innerWidth-E))if(b==="prevent")t.preventDefault();else return;Object.assign(i,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=g,o.startY=y,i.touchStartTime=Ct(),e.allowClick=!0,e.updateSize(),e.swipeDirection=void 0,s.threshold>0&&(i.allowThresholdMove=!1);let _=!0;u.matches(i.focusableElements)&&(_=!1,u.nodeName==="SELECT"&&(i.isTouched=!1)),r.activeElement&&r.activeElement.matches(i.focusableElements)&&r.activeElement!==u&&r.activeElement.blur();const v=_&&e.allowTouchMove&&s.touchStartPreventDefault;(s.touchStartForcePreventDefault||v)&&!u.isContentEditable&&l.preventDefault(),s.freeMode&&s.freeMode.enabled&&e.freeMode&&e.animating&&!s.cssMode&&e.freeMode.onTouchStart(),e.emit("touchStart",l)}function fH(t){const e=st(),r=this,n=r.touchEventsData,{params:i,touches:s,rtlTranslate:o,enabled:a}=r;if(!a||!i.simulateTouch&&t.pointerType==="mouse")return;let l=t;if(l.originalEvent&&(l=l.originalEvent),!n.isTouched){n.startMoving&&n.isScrolling&&r.emit("touchMoveOpposite",l);return}const u=n.evCache.findIndex(D=>D.pointerId===l.pointerId);u>=0&&(n.evCache[u]=l);const c=n.evCache.length>1?n.evCache[0]:l,f=c.pageX,d=c.pageY;if(l.preventedByNestedSwiper){s.startX=f,s.startY=d;return}if(!r.allowTouchMove){l.target.matches(n.focusableElements)||(r.allowClick=!1),n.isTouched&&(Object.assign(s,{startX:f,startY:d,prevX:r.touches.currentX,prevY:r.touches.currentY,currentX:f,currentY:d}),n.touchStartTime=Ct());return}if(i.touchReleaseOnEdges&&!i.loop){if(r.isVertical()){if(d<s.startY&&r.translate<=r.maxTranslate()||d>s.startY&&r.translate>=r.minTranslate()){n.isTouched=!1,n.isMoved=!1;return}}else if(f<s.startX&&r.translate<=r.maxTranslate()||f>s.startX&&r.translate>=r.minTranslate())return}if(e.activeElement&&l.target===e.activeElement&&l.target.matches(n.focusableElements)){n.isMoved=!0,r.allowClick=!1;return}if(n.allowTouchCallbacks&&r.emit("touchMove",l),l.targetTouches&&l.targetTouches.length>1)return;s.currentX=f,s.currentY=d;const h=s.currentX-s.startX,g=s.currentY-s.startY;if(r.params.threshold&&Math.sqrt(h**2+g**2)<r.params.threshold)return;if(typeof n.isScrolling>"u"){let D;r.isHorizontal()&&s.currentY===s.startY||r.isVertical()&&s.currentX===s.startX?n.isScrolling=!1:h*h+g*g>=25&&(D=Math.atan2(Math.abs(g),Math.abs(h))*180/Math.PI,n.isScrolling=r.isHorizontal()?D>i.touchAngle:90-D>i.touchAngle)}if(n.isScrolling&&r.emit("touchMoveOpposite",l),typeof n.startMoving>"u"&&(s.currentX!==s.startX||s.currentY!==s.startY)&&(n.startMoving=!0),n.isScrolling||r.zoom&&r.params.zoom&&r.params.zoom.enabled&&n.evCache.length>1){n.isTouched=!1;return}if(!n.startMoving)return;r.allowClick=!1,!i.cssMode&&l.cancelable&&l.preventDefault(),i.touchMoveStopPropagation&&!i.nested&&l.stopPropagation();let y=r.isHorizontal()?h:g,b=r.isHorizontal()?s.currentX-s.previousX:s.currentY-s.previousY;i.oneWayMovement&&(y=Math.abs(y)*(o?1:-1),b=Math.abs(b)*(o?1:-1)),s.diff=y,y*=i.touchRatio,o&&(y=-y,b=-b);const E=r.touchesDirection;r.swipeDirection=y>0?"prev":"next",r.touchesDirection=b>0?"prev":"next";const _=r.params.loop&&!i.cssMode,v=r.swipeDirection==="next"&&r.allowSlideNext||r.swipeDirection==="prev"&&r.allowSlidePrev;if(!n.isMoved){if(_&&v&&r.loopFix({direction:r.swipeDirection}),n.startTranslate=r.getTranslate(),r.setTransition(0),r.animating){const D=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});r.wrapperEl.dispatchEvent(D)}n.allowMomentumBounce=!1,i.grabCursor&&(r.allowSlideNext===!0||r.allowSlidePrev===!0)&&r.setGrabCursor(!0),r.emit("sliderFirstMove",l)}let T;n.isMoved&&E!==r.touchesDirection&&_&&v&&Math.abs(y)>=1&&(r.loopFix({direction:r.swipeDirection,setTranslate:!0}),T=!0),r.emit("sliderMove",l),n.isMoved=!0,n.currentTranslate=y+n.startTranslate;let C=!0,O=i.resistanceRatio;if(i.touchReleaseOnEdges&&(O=0),y>0?(_&&v&&!T&&n.currentTranslate>(i.centeredSlides?r.minTranslate()-r.size/2:r.minTranslate())&&r.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),n.currentTranslate>r.minTranslate()&&(C=!1,i.resistance&&(n.currentTranslate=r.minTranslate()-1+(-r.minTranslate()+n.startTranslate+y)**O))):y<0&&(_&&v&&!T&&n.currentTranslate<(i.centeredSlides?r.maxTranslate()+r.size/2:r.maxTranslate())&&r.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:r.slides.length-(i.slidesPerView==="auto"?r.slidesPerViewDynamic():Math.ceil(parseFloat(i.slidesPerView,10)))}),n.currentTranslate<r.maxTranslate()&&(C=!1,i.resistance&&(n.currentTranslate=r.maxTranslate()+1-(r.maxTranslate()-n.startTranslate-y)**O))),C&&(l.preventedByNestedSwiper=!0),!r.allowSlideNext&&r.swipeDirection==="next"&&n.currentTranslate<n.startTranslate&&(n.currentTranslate=n.startTranslate),!r.allowSlidePrev&&r.swipeDirection==="prev"&&n.currentTranslate>n.startTranslate&&(n.currentTranslate=n.startTranslate),!r.allowSlidePrev&&!r.allowSlideNext&&(n.currentTranslate=n.startTranslate),i.threshold>0)if(Math.abs(y)>i.threshold||n.allowThresholdMove){if(!n.allowThresholdMove){n.allowThresholdMove=!0,s.startX=s.currentX,s.startY=s.currentY,n.currentTranslate=n.startTranslate,s.diff=r.isHorizontal()?s.currentX-s.startX:s.currentY-s.startY;return}}else{n.currentTranslate=n.startTranslate;return}!i.followFinger||i.cssMode||((i.freeMode&&i.freeMode.enabled&&r.freeMode||i.watchSlidesProgress)&&(r.updateActiveIndex(),r.updateSlidesClasses()),i.freeMode&&i.freeMode.enabled&&r.freeMode&&r.freeMode.onTouchMove(),r.updateProgress(n.currentTranslate),r.setTranslate(n.currentTranslate))}function dH(t){const e=this,r=e.touchEventsData,n=r.evCache.findIndex(v=>v.pointerId===t.pointerId);if(n>=0&&r.evCache.splice(n,1),["pointercancel","pointerout","pointerleave","contextmenu"].includes(t.type)&&!(["pointercancel","contextmenu"].includes(t.type)&&(e.browser.isSafari||e.browser.isWebView)))return;const{params:i,touches:s,rtlTranslate:o,slidesGrid:a,enabled:l}=e;if(!l||!i.simulateTouch&&t.pointerType==="mouse")return;let u=t;if(u.originalEvent&&(u=u.originalEvent),r.allowTouchCallbacks&&e.emit("touchEnd",u),r.allowTouchCallbacks=!1,!r.isTouched){r.isMoved&&i.grabCursor&&e.setGrabCursor(!1),r.isMoved=!1,r.startMoving=!1;return}i.grabCursor&&r.isMoved&&r.isTouched&&(e.allowSlideNext===!0||e.allowSlidePrev===!0)&&e.setGrabCursor(!1);const c=Ct(),f=c-r.touchStartTime;if(e.allowClick){const v=u.path||u.composedPath&&u.composedPath();e.updateClickedSlide(v&&v[0]||u.target,v),e.emit("tap click",u),f<300&&c-r.lastClickTime<300&&e.emit("doubleTap doubleClick",u)}if(r.lastClickTime=Ct(),Zn(()=>{e.destroyed||(e.allowClick=!0)}),!r.isTouched||!r.isMoved||!e.swipeDirection||s.diff===0||r.currentTranslate===r.startTranslate){r.isTouched=!1,r.isMoved=!1,r.startMoving=!1;return}r.isTouched=!1,r.isMoved=!1,r.startMoving=!1;let d;if(i.followFinger?d=o?e.translate:-e.translate:d=-r.currentTranslate,i.cssMode)return;if(i.freeMode&&i.freeMode.enabled){e.freeMode.onTouchEnd({currentPos:d});return}let h=0,g=e.slidesSizesGrid[0];for(let v=0;v<a.length;v+=v<i.slidesPerGroupSkip?1:i.slidesPerGroup){const T=v<i.slidesPerGroupSkip-1?1:i.slidesPerGroup;typeof a[v+T]<"u"?d>=a[v]&&d<a[v+T]&&(h=v,g=a[v+T]-a[v]):d>=a[v]&&(h=v,g=a[a.length-1]-a[a.length-2])}let y=null,b=null;i.rewind&&(e.isBeginning?b=i.virtual&&i.virtual.enabled&&e.virtual?e.virtual.slides.length-1:e.slides.length-1:e.isEnd&&(y=0));const E=(d-a[h])/g,_=h<i.slidesPerGroupSkip-1?1:i.slidesPerGroup;if(f>i.longSwipesMs){if(!i.longSwipes){e.slideTo(e.activeIndex);return}e.swipeDirection==="next"&&(E>=i.longSwipesRatio?e.slideTo(i.rewind&&e.isEnd?y:h+_):e.slideTo(h)),e.swipeDirection==="prev"&&(E>1-i.longSwipesRatio?e.slideTo(h+_):b!==null&&E<0&&Math.abs(E)>i.longSwipesRatio?e.slideTo(b):e.slideTo(h))}else{if(!i.shortSwipes){e.slideTo(e.activeIndex);return}e.navigation&&(u.target===e.navigation.nextEl||u.target===e.navigation.prevEl)?u.target===e.navigation.nextEl?e.slideTo(h+_):e.slideTo(h):(e.swipeDirection==="next"&&e.slideTo(y!==null?y:h+_),e.swipeDirection==="prev"&&e.slideTo(b!==null?b:h))}}function Yy(){const t=this,{params:e,el:r}=t;if(r&&r.offsetWidth===0)return;e.breakpoints&&t.setBreakpoint();const{allowSlideNext:n,allowSlidePrev:i,snapGrid:s}=t,o=t.virtual&&t.params.virtual.enabled;t.allowSlideNext=!0,t.allowSlidePrev=!0,t.updateSize(),t.updateSlides(),t.updateSlidesClasses();const a=o&&e.loop;(e.slidesPerView==="auto"||e.slidesPerView>1)&&t.isEnd&&!t.isBeginning&&!t.params.centeredSlides&&!a?t.slideTo(t.slides.length-1,0,!1,!0):t.params.loop&&!o?t.slideToLoop(t.realIndex,0,!1,!0):t.slideTo(t.activeIndex,0,!1,!0),t.autoplay&&t.autoplay.running&&t.autoplay.paused&&(clearTimeout(t.autoplay.resizeTimeout),t.autoplay.resizeTimeout=setTimeout(()=>{t.autoplay&&t.autoplay.running&&t.autoplay.paused&&t.autoplay.resume()},500)),t.allowSlidePrev=i,t.allowSlideNext=n,t.params.watchOverflow&&s!==t.snapGrid&&t.checkOverflow()}function hH(t){const e=this;e.enabled&&(e.allowClick||(e.params.preventClicks&&t.preventDefault(),e.params.preventClicksPropagation&&e.animating&&(t.stopPropagation(),t.stopImmediatePropagation())))}function pH(){const t=this,{wrapperEl:e,rtlTranslate:r,enabled:n}=t;if(!n)return;t.previousTranslate=t.translate,t.isHorizontal()?t.translate=-e.scrollLeft:t.translate=-e.scrollTop,t.translate===0&&(t.translate=0),t.updateActiveIndex(),t.updateSlidesClasses();let i;const s=t.maxTranslate()-t.minTranslate();s===0?i=0:i=(t.translate-t.minTranslate())/s,i!==t.progress&&t.updateProgress(r?-t.translate:t.translate),t.emit("setTranslate",t.translate,!1)}function gH(t){const e=this;La(e,t.target),!(e.params.cssMode||e.params.slidesPerView!=="auto"&&!e.params.autoHeight)&&e.update()}let Ky=!1;function mH(){}const EE=(t,e)=>{const r=st(),{params:n,el:i,wrapperEl:s,device:o}=t,a=!!n.nested,l=e==="on"?"addEventListener":"removeEventListener",u=e;i[l]("pointerdown",t.onTouchStart,{passive:!1}),r[l]("pointermove",t.onTouchMove,{passive:!1,capture:a}),r[l]("pointerup",t.onTouchEnd,{passive:!0}),r[l]("pointercancel",t.onTouchEnd,{passive:!0}),r[l]("pointerout",t.onTouchEnd,{passive:!0}),r[l]("pointerleave",t.onTouchEnd,{passive:!0}),r[l]("contextmenu",t.onTouchEnd,{passive:!0}),(n.preventClicks||n.preventClicksPropagation)&&i[l]("click",t.onClick,!0),n.cssMode&&s[l]("scroll",t.onScroll),n.updateOnWindowResize?t[u](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",Yy,!0):t[u]("observerUpdate",Yy,!0),i[l]("load",t.onLoad,{capture:!0})};function yH(){const t=this,e=st(),{params:r}=t;t.onTouchStart=cH.bind(t),t.onTouchMove=fH.bind(t),t.onTouchEnd=dH.bind(t),r.cssMode&&(t.onScroll=pH.bind(t)),t.onClick=hH.bind(t),t.onLoad=gH.bind(t),Ky||(e.addEventListener("touchstart",mH),Ky=!0),EE(t,"on")}function wH(){EE(this,"off")}var bH={attachEvents:yH,detachEvents:wH};const Gy=(t,e)=>t.grid&&e.grid&&e.grid.rows>1;function _H(){const t=this,{realIndex:e,initialized:r,params:n,el:i}=t,s=n.breakpoints;if(!s||s&&Object.keys(s).length===0)return;const o=t.getBreakpoint(s,t.params.breakpointsBase,t.el);if(!o||t.currentBreakpoint===o)return;const l=(o in s?s[o]:void 0)||t.originalParams,u=Gy(t,n),c=Gy(t,l),f=n.enabled;u&&!c?(i.classList.remove(`${n.containerModifierClass}grid`,`${n.containerModifierClass}grid-column`),t.emitContainerClasses()):!u&&c&&(i.classList.add(`${n.containerModifierClass}grid`),(l.grid.fill&&l.grid.fill==="column"||!l.grid.fill&&n.grid.fill==="column")&&i.classList.add(`${n.containerModifierClass}grid-column`),t.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach(E=>{if(typeof l[E]>"u")return;const _=n[E]&&n[E].enabled,v=l[E]&&l[E].enabled;_&&!v&&t[E].disable(),!_&&v&&t[E].enable()});const d=l.direction&&l.direction!==n.direction,h=n.loop&&(l.slidesPerView!==n.slidesPerView||d),g=n.loop;d&&r&&t.changeDirection(),vt(t.params,l);const y=t.params.enabled,b=t.params.loop;Object.assign(t,{allowTouchMove:t.params.allowTouchMove,allowSlideNext:t.params.allowSlideNext,allowSlidePrev:t.params.allowSlidePrev}),f&&!y?t.disable():!f&&y&&t.enable(),t.currentBreakpoint=o,t.emit("_beforeBreakpoint",l),r&&(h?(t.loopDestroy(),t.loopCreate(e),t.updateSlides()):!g&&b?(t.loopCreate(e),t.updateSlides()):g&&!b&&t.loopDestroy()),t.emit("breakpoint",l)}function vH(t,e,r){if(e===void 0&&(e="window"),!t||e==="container"&&!r)return;let n=!1;const i=je(),s=e==="window"?i.innerHeight:r.clientHeight,o=Object.keys(t).map(a=>{if(typeof a=="string"&&a.indexOf("@")===0){const l=parseFloat(a.substr(1));return{value:s*l,point:a}}return{value:a,point:a}});o.sort((a,l)=>parseInt(a.value,10)-parseInt(l.value,10));for(let a=0;a<o.length;a+=1){const{point:l,value:u}=o[a];e==="window"?i.matchMedia(`(min-width: ${u}px)`).matches&&(n=l):u<=r.clientWidth&&(n=l)}return n||"max"}var EH={setBreakpoint:_H,getBreakpoint:vH};function SH(t,e){const r=[];return t.forEach(n=>{typeof n=="object"?Object.keys(n).forEach(i=>{n[i]&&r.push(e+i)}):typeof n=="string"&&r.push(e+n)}),r}function xH(){const t=this,{classNames:e,params:r,rtl:n,el:i,device:s}=t,o=SH(["initialized",r.direction,{"free-mode":t.params.freeMode&&r.freeMode.enabled},{autoheight:r.autoHeight},{rtl:n},{grid:r.grid&&r.grid.rows>1},{"grid-column":r.grid&&r.grid.rows>1&&r.grid.fill==="column"},{android:s.android},{ios:s.ios},{"css-mode":r.cssMode},{centered:r.cssMode&&r.centeredSlides},{"watch-progress":r.watchSlidesProgress}],r.containerModifierClass);e.push(...o),i.classList.add(...e),t.emitContainerClasses()}function TH(){const t=this,{el:e,classNames:r}=t;e.classList.remove(...r),t.emitContainerClasses()}var AH={addClasses:xH,removeClasses:TH};function MH(){const t=this,{isLocked:e,params:r}=t,{slidesOffsetBefore:n}=r;if(n){const i=t.slides.length-1,s=t.slidesGrid[i]+t.slidesSizesGrid[i]+n*2;t.isLocked=t.size>s}else t.isLocked=t.snapGrid.length===1;r.allowSlideNext===!0&&(t.allowSlideNext=!t.isLocked),r.allowSlidePrev===!0&&(t.allowSlidePrev=!t.isLocked),e&&e!==t.isLocked&&(t.isEnd=!1),e!==t.isLocked&&t.emit(t.isLocked?"lock":"unlock")}var CH={checkOverflow:MH},ad={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopedSlides:null,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function IH(t,e){return function(n){n===void 0&&(n={});const i=Object.keys(n)[0],s=n[i];if(typeof s!="object"||s===null){vt(e,n);return}if(t[i]===!0&&(t[i]={enabled:!0}),i==="navigation"&&t[i]&&t[i].enabled&&!t[i].prevEl&&!t[i].nextEl&&(t[i].auto=!0),["pagination","scrollbar"].indexOf(i)>=0&&t[i]&&t[i].enabled&&!t[i].el&&(t[i].auto=!0),!(i in t&&"enabled"in s)){vt(e,n);return}typeof t[i]=="object"&&!("enabled"in t[i])&&(t[i].enabled=!0),t[i]||(t[i]={enabled:!1}),vt(e,n)}}const Kc={eventsEmitter:Az,update:Dz,translate:Hz,transition:Yz,slide:tH,loop:sH,grabCursor:lH,events:bH,breakpoints:EH,checkOverflow:CH,classes:AH},Gc={};class _t{constructor(){let e,r;for(var n=arguments.length,i=new Array(n),s=0;s<n;s++)i[s]=arguments[s];i.length===1&&i[0].constructor&&Object.prototype.toString.call(i[0]).slice(8,-1)==="Object"?r=i[0]:[e,r]=i,r||(r={}),r=vt({},r),e&&!r.el&&(r.el=e);const o=st();if(r.el&&typeof r.el=="string"&&o.querySelectorAll(r.el).length>1){const c=[];return o.querySelectorAll(r.el).forEach(f=>{const d=vt({},r,{el:f});c.push(new _t(d))}),c}const a=this;a.__swiper__=!0,a.support=_E(),a.device=vz({userAgent:r.userAgent}),a.browser=Sz(),a.eventsListeners={},a.eventsAnyListeners=[],a.modules=[...a.__modules__],r.modules&&Array.isArray(r.modules)&&a.modules.push(...r.modules);const l={};a.modules.forEach(c=>{c({params:r,swiper:a,extendParams:IH(r,l),on:a.on.bind(a),once:a.once.bind(a),off:a.off.bind(a),emit:a.emit.bind(a)})});const u=vt({},ad,l);return a.params=vt({},u,Gc,r),a.originalParams=vt({},a.params),a.passedParams=vt({},r),a.params&&a.params.on&&Object.keys(a.params.on).forEach(c=>{a.on(c,a.params.on[c])}),a.params&&a.params.onAny&&a.onAny(a.params.onAny),Object.assign(a,{enabled:a.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return a.params.direction==="horizontal"},isVertical(){return a.params.direction==="vertical"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:a.params.allowSlideNext,allowSlidePrev:a.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:a.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,evCache:[]},allowClick:!0,allowTouchMove:a.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),a.emit("_swiper"),a.params.init&&a.init(),a}getSlideIndex(e){const{slidesEl:r,params:n}=this,i=Qe(r,`.${n.slideClass}, swiper-slide`),s=go(i[0]);return go(e)-s}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter(r=>r.getAttribute("data-swiper-slide-index")*1===e)[0])}recalcSlides(){const e=this,{slidesEl:r,params:n}=e;e.slides=Qe(r,`.${n.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,r){const n=this;e=Math.min(Math.max(e,0),1);const i=n.minTranslate(),o=(n.maxTranslate()-i)*e+i;n.translateTo(o,typeof r>"u"?0:r),n.updateActiveIndex(),n.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const r=e.el.className.split(" ").filter(n=>n.indexOf("swiper")===0||n.indexOf(e.params.containerModifierClass)===0);e.emit("_containerClasses",r.join(" "))}getSlideClasses(e){const r=this;return r.destroyed?"":e.className.split(" ").filter(n=>n.indexOf("swiper-slide")===0||n.indexOf(r.params.slideClass)===0).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const r=[];e.slides.forEach(n=>{const i=e.getSlideClasses(n);r.push({slideEl:n,classNames:i}),e.emit("_slideClass",n,i)}),e.emit("_slideClasses",r)}slidesPerViewDynamic(e,r){e===void 0&&(e="current"),r===void 0&&(r=!1);const n=this,{params:i,slides:s,slidesGrid:o,slidesSizesGrid:a,size:l,activeIndex:u}=n;let c=1;if(typeof i.slidesPerView=="number")return i.slidesPerView;if(i.centeredSlides){let f=s[u]?s[u].swiperSlideSize:0,d;for(let h=u+1;h<s.length;h+=1)s[h]&&!d&&(f+=s[h].swiperSlideSize,c+=1,f>l&&(d=!0));for(let h=u-1;h>=0;h-=1)s[h]&&!d&&(f+=s[h].swiperSlideSize,c+=1,f>l&&(d=!0))}else if(e==="current")for(let f=u+1;f<s.length;f+=1)(r?o[f]+a[f]-o[u]<l:o[f]-o[u]<l)&&(c+=1);else for(let f=u-1;f>=0;f-=1)o[u]-o[f]<l&&(c+=1);return c}update(){const e=this;if(!e||e.destroyed)return;const{snapGrid:r,params:n}=e;n.breakpoints&&e.setBreakpoint(),[...e.el.querySelectorAll('[loading="lazy"]')].forEach(o=>{o.complete&&La(e,o)}),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses();function i(){const o=e.rtlTranslate?e.translate*-1:e.translate,a=Math.min(Math.max(o,e.maxTranslate()),e.minTranslate());e.setTranslate(a),e.updateActiveIndex(),e.updateSlidesClasses()}let s;if(n.freeMode&&n.freeMode.enabled&&!n.cssMode)i(),n.autoHeight&&e.updateAutoHeight();else{if((n.slidesPerView==="auto"||n.slidesPerView>1)&&e.isEnd&&!n.centeredSlides){const o=e.virtual&&n.virtual.enabled?e.virtual.slides:e.slides;s=e.slideTo(o.length-1,0,!1,!0)}else s=e.slideTo(e.activeIndex,0,!1,!0);s||i()}n.watchOverflow&&r!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,r){r===void 0&&(r=!0);const n=this,i=n.params.direction;return e||(e=i==="horizontal"?"vertical":"horizontal"),e===i||e!=="horizontal"&&e!=="vertical"||(n.el.classList.remove(`${n.params.containerModifierClass}${i}`),n.el.classList.add(`${n.params.containerModifierClass}${e}`),n.emitContainerClasses(),n.params.direction=e,n.slides.forEach(s=>{e==="vertical"?s.style.width="":s.style.height=""}),n.emit("changeDirection"),r&&n.update()),n}changeLanguageDirection(e){const r=this;r.rtl&&e==="rtl"||!r.rtl&&e==="ltr"||(r.rtl=e==="rtl",r.rtlTranslate=r.params.direction==="horizontal"&&r.rtl,r.rtl?(r.el.classList.add(`${r.params.containerModifierClass}rtl`),r.el.dir="rtl"):(r.el.classList.remove(`${r.params.containerModifierClass}rtl`),r.el.dir="ltr"),r.update())}mount(e){const r=this;if(r.mounted)return!0;let n=e||r.params.el;if(typeof n=="string"&&(n=document.querySelector(n)),!n)return!1;n.swiper=r,n.parentNode&&n.parentNode.host&&n.parentNode.host.nodeName==="SWIPER-CONTAINER"&&(r.isElement=!0);const i=()=>`.${(r.params.wrapperClass||"").trim().split(" ").join(".")}`;let o=(()=>n&&n.shadowRoot&&n.shadowRoot.querySelector?n.shadowRoot.querySelector(i()):Qe(n,i())[0])();return!o&&r.params.createElements&&(o=Vt("div",r.params.wrapperClass),n.append(o),Qe(n,`.${r.params.slideClass}`).forEach(a=>{o.append(a)})),Object.assign(r,{el:n,wrapperEl:o,slidesEl:r.isElement&&!n.parentNode.host.slideSlots?n.parentNode.host:o,hostEl:r.isElement?n.parentNode.host:n,mounted:!0,rtl:n.dir.toLowerCase()==="rtl"||sn(n,"direction")==="rtl",rtlTranslate:r.params.direction==="horizontal"&&(n.dir.toLowerCase()==="rtl"||sn(n,"direction")==="rtl"),wrongRTL:sn(o,"display")==="-webkit-box"}),!0}init(e){const r=this;if(r.initialized||r.mount(e)===!1)return r;r.emit("beforeInit"),r.params.breakpoints&&r.setBreakpoint(),r.addClasses(),r.updateSize(),r.updateSlides(),r.params.watchOverflow&&r.checkOverflow(),r.params.grabCursor&&r.enabled&&r.setGrabCursor(),r.params.loop&&r.virtual&&r.params.virtual.enabled?r.slideTo(r.params.initialSlide+r.virtual.slidesBefore,0,r.params.runCallbacksOnInit,!1,!0):r.slideTo(r.params.initialSlide,0,r.params.runCallbacksOnInit,!1,!0),r.params.loop&&r.loopCreate(),r.attachEvents();const i=[...r.el.querySelectorAll('[loading="lazy"]')];return r.isElement&&i.push(...r.hostEl.querySelectorAll('[loading="lazy"]')),i.forEach(s=>{s.complete?La(r,s):s.addEventListener("load",o=>{La(r,o.target)})}),od(r),r.initialized=!0,od(r),r.emit("init"),r.emit("afterInit"),r}destroy(e,r){e===void 0&&(e=!0),r===void 0&&(r=!0);const n=this,{params:i,el:s,wrapperEl:o,slides:a}=n;return typeof n.params>"u"||n.destroyed||(n.emit("beforeDestroy"),n.initialized=!1,n.detachEvents(),i.loop&&n.loopDestroy(),r&&(n.removeClasses(),s.removeAttribute("style"),o.removeAttribute("style"),a&&a.length&&a.forEach(l=>{l.classList.remove(i.slideVisibleClass,i.slideActiveClass,i.slideNextClass,i.slidePrevClass),l.removeAttribute("style"),l.removeAttribute("data-swiper-slide-index")})),n.emit("destroy"),Object.keys(n.eventsListeners).forEach(l=>{n.off(l)}),e!==!1&&(n.el.swiper=null,pz(n)),n.destroyed=!0),null}static extendDefaults(e){vt(Gc,e)}static get extendedDefaults(){return Gc}static get defaults(){return ad}static installModule(e){_t.prototype.__modules__||(_t.prototype.__modules__=[]);const r=_t.prototype.__modules__;typeof e=="function"&&r.indexOf(e)<0&&r.push(e)}static use(e){return Array.isArray(e)?(e.forEach(r=>_t.installModule(r)),_t):(_t.installModule(e),_t)}}Object.keys(Kc).forEach(t=>{Object.keys(Kc[t]).forEach(e=>{_t.prototype[e]=Kc[t][e]})});_t.use([xz,Tz]);function OH(t){let{swiper:e,extendParams:r,on:n,emit:i}=t;r({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});let s;const o=st();e.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const a=o.createElement("div");function l(g,y){const b=e.params.virtual;if(b.cache&&e.virtual.cache[y])return e.virtual.cache[y];let E;return b.renderSlide?(E=b.renderSlide.call(e,g,y),typeof E=="string"&&(a.innerHTML=E,E=a.children[0])):e.isElement?E=Vt("swiper-slide"):E=Vt("div",e.params.slideClass),E.setAttribute("data-swiper-slide-index",y),b.renderSlide||(E.innerHTML=g),b.cache&&(e.virtual.cache[y]=E),E}function u(g){const{slidesPerView:y,slidesPerGroup:b,centeredSlides:E,loop:_}=e.params,{addSlidesBefore:v,addSlidesAfter:T}=e.params.virtual,{from:C,to:O,slides:D,slidesGrid:F,offset:L}=e.virtual;e.params.cssMode||e.updateActiveIndex();const U=e.activeIndex||0;let k;e.rtlTranslate?k="right":k=e.isHorizontal()?"left":"top";let W,$;E?(W=Math.floor(y/2)+b+T,$=Math.floor(y/2)+b+v):(W=y+(b-1)+T,$=(_?y:b)+v);let I=U-$,j=U+W;_||(I=Math.max(I,0),j=Math.min(j,D.length-1));let Q=(e.slidesGrid[I]||0)-(e.slidesGrid[0]||0);_&&U>=$?(I-=$,E||(Q+=e.slidesGrid[0])):_&&U<$&&(I=-$,E&&(Q+=e.slidesGrid[0])),Object.assign(e.virtual,{from:I,to:j,offset:Q,slidesGrid:e.slidesGrid,slidesBefore:$,slidesAfter:W});function H(){e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),i("virtualUpdate")}if(C===I&&O===j&&!g){e.slidesGrid!==F&&Q!==L&&e.slides.forEach(de=>{de.style[k]=`${Q-Math.abs(e.cssOverflowAdjustment())}px`}),e.updateProgress(),i("virtualUpdate");return}if(e.params.virtual.renderExternal){e.params.virtual.renderExternal.call(e,{offset:Q,from:I,to:j,slides:function(){const me=[];for(let be=I;be<=j;be+=1)me.push(D[be]);return me}()}),e.params.virtual.renderExternalUpdate?H():i("virtualUpdate");return}const K=[],X=[],Z=de=>{let me=de;return de<0?me=D.length+de:me>=D.length&&(me=me-D.length),me};if(g)e.slides.filter(de=>de.matches(`.${e.params.slideClass}, swiper-slide`)).forEach(de=>{de.remove()});else for(let de=C;de<=O;de+=1)if(de<I||de>j){const me=Z(de);e.slides.filter(be=>be.matches(`.${e.params.slideClass}[data-swiper-slide-index="${me}"], swiper-slide[data-swiper-slide-index="${me}"]`)).forEach(be=>{be.remove()})}const ce=_?-D.length:0,pe=_?D.length*2:D.length;for(let de=ce;de<pe;de+=1)if(de>=I&&de<=j){const me=Z(de);typeof O>"u"||g?X.push(me):(de>O&&X.push(me),de<C&&K.push(me))}if(X.forEach(de=>{e.slidesEl.append(l(D[de],de))}),_)for(let de=K.length-1;de>=0;de-=1){const me=K[de];e.slidesEl.prepend(l(D[me],me))}else K.sort((de,me)=>me-de),K.forEach(de=>{e.slidesEl.prepend(l(D[de],de))});Qe(e.slidesEl,".swiper-slide, swiper-slide").forEach(de=>{de.style[k]=`${Q-Math.abs(e.cssOverflowAdjustment())}px`}),H()}function c(g){if(typeof g=="object"&&"length"in g)for(let y=0;y<g.length;y+=1)g[y]&&e.virtual.slides.push(g[y]);else e.virtual.slides.push(g);u(!0)}function f(g){const y=e.activeIndex;let b=y+1,E=1;if(Array.isArray(g)){for(let _=0;_<g.length;_+=1)g[_]&&e.virtual.slides.unshift(g[_]);b=y+g.length,E=g.length}else e.virtual.slides.unshift(g);if(e.params.virtual.cache){const _=e.virtual.cache,v={};Object.keys(_).forEach(T=>{const C=_[T],O=C.getAttribute("data-swiper-slide-index");O&&C.setAttribute("data-swiper-slide-index",parseInt(O,10)+E),v[parseInt(T,10)+E]=C}),e.virtual.cache=v}u(!0),e.slideTo(b,0)}function d(g){if(typeof g>"u"||g===null)return;let y=e.activeIndex;if(Array.isArray(g))for(let b=g.length-1;b>=0;b-=1)e.params.virtual.cache&&(delete e.virtual.cache[g[b]],Object.keys(e.virtual.cache).forEach(E=>{E>g&&(e.virtual.cache[E-1]=e.virtual.cache[E],e.virtual.cache[E-1].setAttribute("data-swiper-slide-index",E-1),delete e.virtual.cache[E])})),e.virtual.slides.splice(g[b],1),g[b]<y&&(y-=1),y=Math.max(y,0);else e.params.virtual.cache&&(delete e.virtual.cache[g],Object.keys(e.virtual.cache).forEach(b=>{b>g&&(e.virtual.cache[b-1]=e.virtual.cache[b],e.virtual.cache[b-1].setAttribute("data-swiper-slide-index",b-1),delete e.virtual.cache[b])})),e.virtual.slides.splice(g,1),g<y&&(y-=1),y=Math.max(y,0);u(!0),e.slideTo(y,0)}function h(){e.virtual.slides=[],e.params.virtual.cache&&(e.virtual.cache={}),u(!0),e.slideTo(0,0)}n("beforeInit",()=>{if(!e.params.virtual.enabled)return;let g;if(typeof e.passedParams.virtual.slides>"u"){const y=[...e.slidesEl.children].filter(b=>b.matches(`.${e.params.slideClass}, swiper-slide`));y&&y.length&&(e.virtual.slides=[...y],g=!0,y.forEach((b,E)=>{b.setAttribute("data-swiper-slide-index",E),e.virtual.cache[E]=b,b.remove()}))}g||(e.virtual.slides=e.params.virtual.slides),e.classNames.push(`${e.params.containerModifierClass}virtual`),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0,u()}),n("setTranslate",()=>{e.params.virtual.enabled&&(e.params.cssMode&&!e._immediateVirtual?(clearTimeout(s),s=setTimeout(()=>{u()},100)):u())}),n("init update resize",()=>{e.params.virtual.enabled&&e.params.cssMode&&Fs(e.wrapperEl,"--swiper-virtual-size",`${e.virtualSize}px`)}),Object.assign(e.virtual,{appendSlide:c,prependSlide:f,removeSlide:d,removeAllSlides:h,update:u})}function PH(t){let{swiper:e,extendParams:r,on:n,emit:i}=t;const s=st(),o=je();e.keyboard={enabled:!1},r({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}});function a(c){if(!e.enabled)return;const{rtlTranslate:f}=e;let d=c;d.originalEvent&&(d=d.originalEvent);const h=d.keyCode||d.charCode,g=e.params.keyboard.pageUpDown,y=g&&h===33,b=g&&h===34,E=h===37,_=h===39,v=h===38,T=h===40;if(!e.allowSlideNext&&(e.isHorizontal()&&_||e.isVertical()&&T||b)||!e.allowSlidePrev&&(e.isHorizontal()&&E||e.isVertical()&&v||y))return!1;if(!(d.shiftKey||d.altKey||d.ctrlKey||d.metaKey)&&!(s.activeElement&&s.activeElement.nodeName&&(s.activeElement.nodeName.toLowerCase()==="input"||s.activeElement.nodeName.toLowerCase()==="textarea"))){if(e.params.keyboard.onlyInViewport&&(y||b||E||_||v||T)){let C=!1;if(Wn(e.el,`.${e.params.slideClass}, swiper-slide`).length>0&&Wn(e.el,`.${e.params.slideActiveClass}`).length===0)return;const O=e.el,D=O.clientWidth,F=O.clientHeight,L=o.innerWidth,U=o.innerHeight,k=yl(O);f&&(k.left-=O.scrollLeft);const W=[[k.left,k.top],[k.left+D,k.top],[k.left,k.top+F],[k.left+D,k.top+F]];for(let $=0;$<W.length;$+=1){const I=W[$];if(I[0]>=0&&I[0]<=L&&I[1]>=0&&I[1]<=U){if(I[0]===0&&I[1]===0)continue;C=!0}}if(!C)return}e.isHorizontal()?((y||b||E||_)&&(d.preventDefault?d.preventDefault():d.returnValue=!1),((b||_)&&!f||(y||E)&&f)&&e.slideNext(),((y||E)&&!f||(b||_)&&f)&&e.slidePrev()):((y||b||v||T)&&(d.preventDefault?d.preventDefault():d.returnValue=!1),(b||T)&&e.slideNext(),(y||v)&&e.slidePrev()),i("keyPress",h)}}function l(){e.keyboard.enabled||(s.addEventListener("keydown",a),e.keyboard.enabled=!0)}function u(){e.keyboard.enabled&&(s.removeEventListener("keydown",a),e.keyboard.enabled=!1)}n("init",()=>{e.params.keyboard.enabled&&l()}),n("destroy",()=>{e.keyboard.enabled&&u()}),Object.assign(e.keyboard,{enable:l,disable:u})}function RH(t){let{swiper:e,extendParams:r,on:n,emit:i}=t;const s=je();r({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),e.mousewheel={enabled:!1};let o,a=Ct(),l;const u=[];function c(v){let D=0,F=0,L=0,U=0;return"detail"in v&&(F=v.detail),"wheelDelta"in v&&(F=-v.wheelDelta/120),"wheelDeltaY"in v&&(F=-v.wheelDeltaY/120),"wheelDeltaX"in v&&(D=-v.wheelDeltaX/120),"axis"in v&&v.axis===v.HORIZONTAL_AXIS&&(D=F,F=0),L=D*10,U=F*10,"deltaY"in v&&(U=v.deltaY),"deltaX"in v&&(L=v.deltaX),v.shiftKey&&!L&&(L=U,U=0),(L||U)&&v.deltaMode&&(v.deltaMode===1?(L*=40,U*=40):(L*=800,U*=800)),L&&!D&&(D=L<1?-1:1),U&&!F&&(F=U<1?-1:1),{spinX:D,spinY:F,pixelX:L,pixelY:U}}function f(){e.enabled&&(e.mouseEntered=!0)}function d(){e.enabled&&(e.mouseEntered=!1)}function h(v){return e.params.mousewheel.thresholdDelta&&v.delta<e.params.mousewheel.thresholdDelta||e.params.mousewheel.thresholdTime&&Ct()-a<e.params.mousewheel.thresholdTime?!1:v.delta>=6&&Ct()-a<60?!0:(v.direction<0?(!e.isEnd||e.params.loop)&&!e.animating&&(e.slideNext(),i("scroll",v.raw)):(!e.isBeginning||e.params.loop)&&!e.animating&&(e.slidePrev(),i("scroll",v.raw)),a=new s.Date().getTime(),!1)}function g(v){const T=e.params.mousewheel;if(v.direction<0){if(e.isEnd&&!e.params.loop&&T.releaseOnEdges)return!0}else if(e.isBeginning&&!e.params.loop&&T.releaseOnEdges)return!0;return!1}function y(v){let T=v,C=!0;if(!e.enabled||v.target.closest(`.${e.params.mousewheel.noMousewheelClass}`))return;const O=e.params.mousewheel;e.params.cssMode&&T.preventDefault();let D=e.el;e.params.mousewheel.eventsTarget!=="container"&&(D=document.querySelector(e.params.mousewheel.eventsTarget));const F=D&&D.contains(T.target);if(!e.mouseEntered&&!F&&!O.releaseOnEdges)return!0;T.originalEvent&&(T=T.originalEvent);let L=0;const U=e.rtlTranslate?-1:1,k=c(T);if(O.forceToAxis)if(e.isHorizontal())if(Math.abs(k.pixelX)>Math.abs(k.pixelY))L=-k.pixelX*U;else return!0;else if(Math.abs(k.pixelY)>Math.abs(k.pixelX))L=-k.pixelY;else return!0;else L=Math.abs(k.pixelX)>Math.abs(k.pixelY)?-k.pixelX*U:-k.pixelY;if(L===0)return!0;O.invert&&(L=-L);let W=e.getTranslate()+L*O.sensitivity;if(W>=e.minTranslate()&&(W=e.minTranslate()),W<=e.maxTranslate()&&(W=e.maxTranslate()),C=e.params.loop?!0:!(W===e.minTranslate()||W===e.maxTranslate()),C&&e.params.nested&&T.stopPropagation(),!e.params.freeMode||!e.params.freeMode.enabled){const $={time:Ct(),delta:Math.abs(L),direction:Math.sign(L),raw:v};u.length>=2&&u.shift();const I=u.length?u[u.length-1]:void 0;if(u.push($),I?($.direction!==I.direction||$.delta>I.delta||$.time>I.time+150)&&h($):h($),g($))return!0}else{const $={time:Ct(),delta:Math.abs(L),direction:Math.sign(L)},I=l&&$.time<l.time+500&&$.delta<=l.delta&&$.direction===l.direction;if(!I){l=void 0;let j=e.getTranslate()+L*O.sensitivity;const Q=e.isBeginning,H=e.isEnd;if(j>=e.minTranslate()&&(j=e.minTranslate()),j<=e.maxTranslate()&&(j=e.maxTranslate()),e.setTransition(0),e.setTranslate(j),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses(),(!Q&&e.isBeginning||!H&&e.isEnd)&&e.updateSlidesClasses(),e.params.loop&&e.loopFix({direction:$.direction<0?"next":"prev",byMousewheel:!0}),e.params.freeMode.sticky){clearTimeout(o),o=void 0,u.length>=15&&u.shift();const K=u.length?u[u.length-1]:void 0,X=u[0];if(u.push($),K&&($.delta>K.delta||$.direction!==K.direction))u.splice(0);else if(u.length>=15&&$.time-X.time<500&&X.delta-$.delta>=1&&$.delta<=6){const Z=L>0?.8:.2;l=$,u.splice(0),o=Zn(()=>{e.slideToClosest(e.params.speed,!0,void 0,Z)},0)}o||(o=Zn(()=>{l=$,u.splice(0),e.slideToClosest(e.params.speed,!0,void 0,.5)},500))}if(I||i("scroll",T),e.params.autoplay&&e.params.autoplayDisableOnInteraction&&e.autoplay.stop(),O.releaseOnEdges&&(j===e.minTranslate()||j===e.maxTranslate()))return!0}}return T.preventDefault?T.preventDefault():T.returnValue=!1,!1}function b(v){let T=e.el;e.params.mousewheel.eventsTarget!=="container"&&(T=document.querySelector(e.params.mousewheel.eventsTarget)),T[v]("mouseenter",f),T[v]("mouseleave",d),T[v]("wheel",y)}function E(){return e.params.cssMode?(e.wrapperEl.removeEventListener("wheel",y),!0):e.mousewheel.enabled?!1:(b("addEventListener"),e.mousewheel.enabled=!0,!0)}function _(){return e.params.cssMode?(e.wrapperEl.addEventListener(event,y),!0):e.mousewheel.enabled?(b("removeEventListener"),e.mousewheel.enabled=!1,!0):!1}n("init",()=>{!e.params.mousewheel.enabled&&e.params.cssMode&&_(),e.params.mousewheel.enabled&&E()}),n("destroy",()=>{e.params.cssMode&&E(),e.mousewheel.enabled&&_()}),Object.assign(e.mousewheel,{enable:E,disable:_})}function np(t,e,r,n){return t.params.createElements&&Object.keys(n).forEach(i=>{if(!r[i]&&r.auto===!0){let s=Qe(t.el,`.${n[i]}`)[0];s||(s=Vt("div",n[i]),s.className=n[i],t.el.append(s)),r[i]=s,e[i]=s}}),r}function LH(t){let{swiper:e,extendParams:r,on:n,emit:i}=t;r({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),e.navigation={nextEl:null,prevEl:null};const s=y=>(Array.isArray(y)?y:[y]).filter(b=>!!b);function o(y){let b;return y&&typeof y=="string"&&e.isElement&&(b=e.el.querySelector(y),b)?b:(y&&(typeof y=="string"&&(b=[...document.querySelectorAll(y)]),e.params.uniqueNavElements&&typeof y=="string"&&b.length>1&&e.el.querySelectorAll(y).length===1&&(b=e.el.querySelector(y))),y&&!b?y:b)}function a(y,b){const E=e.params.navigation;y=s(y),y.forEach(_=>{_&&(_.classList[b?"add":"remove"](...E.disabledClass.split(" ")),_.tagName==="BUTTON"&&(_.disabled=b),e.params.watchOverflow&&e.enabled&&_.classList[e.isLocked?"add":"remove"](E.lockClass))})}function l(){const{nextEl:y,prevEl:b}=e.navigation;if(e.params.loop){a(b,!1),a(y,!1);return}a(b,e.isBeginning&&!e.params.rewind),a(y,e.isEnd&&!e.params.rewind)}function u(y){y.preventDefault(),!(e.isBeginning&&!e.params.loop&&!e.params.rewind)&&(e.slidePrev(),i("navigationPrev"))}function c(y){y.preventDefault(),!(e.isEnd&&!e.params.loop&&!e.params.rewind)&&(e.slideNext(),i("navigationNext"))}function f(){const y=e.params.navigation;if(e.params.navigation=np(e,e.originalParams.navigation,e.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!(y.nextEl||y.prevEl))return;let b=o(y.nextEl),E=o(y.prevEl);Object.assign(e.navigation,{nextEl:b,prevEl:E}),b=s(b),E=s(E);const _=(v,T)=>{v&&v.addEventListener("click",T==="next"?c:u),!e.enabled&&v&&v.classList.add(...y.lockClass.split(" "))};b.forEach(v=>_(v,"next")),E.forEach(v=>_(v,"prev"))}function d(){let{nextEl:y,prevEl:b}=e.navigation;y=s(y),b=s(b);const E=(_,v)=>{_.removeEventListener("click",v==="next"?c:u),_.classList.remove(...e.params.navigation.disabledClass.split(" "))};y.forEach(_=>E(_,"next")),b.forEach(_=>E(_,"prev"))}n("init",()=>{e.params.navigation.enabled===!1?g():(f(),l())}),n("toEdge fromEdge lock unlock",()=>{l()}),n("destroy",()=>{d()}),n("enable disable",()=>{let{nextEl:y,prevEl:b}=e.navigation;if(y=s(y),b=s(b),e.enabled){l();return}[...y,...b].filter(E=>!!E).forEach(E=>E.classList.add(e.params.navigation.lockClass))}),n("click",(y,b)=>{let{nextEl:E,prevEl:_}=e.navigation;E=s(E),_=s(_);const v=b.target;if(e.params.navigation.hideOnClick&&!_.includes(v)&&!E.includes(v)){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===v||e.pagination.el.contains(v)))return;let T;E.length?T=E[0].classList.contains(e.params.navigation.hiddenClass):_.length&&(T=_[0].classList.contains(e.params.navigation.hiddenClass)),i(T===!0?"navigationShow":"navigationHide"),[...E,..._].filter(C=>!!C).forEach(C=>C.classList.toggle(e.params.navigation.hiddenClass))}});const h=()=>{e.el.classList.remove(...e.params.navigation.navigationDisabledClass.split(" ")),f(),l()},g=()=>{e.el.classList.add(...e.params.navigation.navigationDisabledClass.split(" ")),d()};Object.assign(e.navigation,{enable:h,disable:g,update:l,init:f,destroy:d})}function nn(t){return t===void 0&&(t=""),`.${t.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function NH(t){let{swiper:e,extendParams:r,on:n,emit:i}=t;const s="swiper-pagination";r({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:_=>_,formatFractionTotal:_=>_,bulletClass:`${s}-bullet`,bulletActiveClass:`${s}-bullet-active`,modifierClass:`${s}-`,currentClass:`${s}-current`,totalClass:`${s}-total`,hiddenClass:`${s}-hidden`,progressbarFillClass:`${s}-progressbar-fill`,progressbarOppositeClass:`${s}-progressbar-opposite`,clickableClass:`${s}-clickable`,lockClass:`${s}-lock`,horizontalClass:`${s}-horizontal`,verticalClass:`${s}-vertical`,paginationDisabledClass:`${s}-disabled`}}),e.pagination={el:null,bullets:[]};let o,a=0;const l=_=>(Array.isArray(_)?_:[_]).filter(v=>!!v);function u(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&e.pagination.el.length===0}function c(_,v){const{bulletActiveClass:T}=e.params.pagination;_&&(_=_[`${v==="prev"?"previous":"next"}ElementSibling`],_&&(_.classList.add(`${T}-${v}`),_=_[`${v==="prev"?"previous":"next"}ElementSibling`],_&&_.classList.add(`${T}-${v}-${v}`)))}function f(_){const v=_.target.closest(nn(e.params.pagination.bulletClass));if(!v)return;_.preventDefault();const T=go(v)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===T)return;const C=e.realIndex,O=e.getSlideIndexByData(T),D=e.getSlideIndexByData(e.realIndex),F=L=>{const U=e.activeIndex;e.loopFix({direction:L,activeSlideIndex:O,slideTo:!1});const k=e.activeIndex;U===k&&e.slideToLoop(C,0,!1,!0)};if(O>e.slides.length-e.loopedSlides)F(O>D?"next":"prev");else if(e.params.centeredSlides){const L=e.params.slidesPerView==="auto"?e.slidesPerViewDynamic():Math.ceil(parseFloat(e.params.slidesPerView,10));O<Math.floor(L/2)&&F("prev")}e.slideToLoop(T)}else e.slideTo(T)}function d(){const _=e.rtl,v=e.params.pagination;if(u())return;let T=e.pagination.el;T=l(T);let C,O;const D=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,F=e.params.loop?Math.ceil(D/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(O=e.previousRealIndex||0,C=e.params.slidesPerGroup>1?Math.floor(e.realIndex/e.params.slidesPerGroup):e.realIndex):typeof e.snapIndex<"u"?(C=e.snapIndex,O=e.previousSnapIndex):(O=e.previousIndex||0,C=e.activeIndex||0),v.type==="bullets"&&e.pagination.bullets&&e.pagination.bullets.length>0){const L=e.pagination.bullets;let U,k,W;if(v.dynamicBullets&&(o=sd(L[0],e.isHorizontal()?"width":"height",!0),T.forEach($=>{$.style[e.isHorizontal()?"width":"height"]=`${o*(v.dynamicMainBullets+4)}px`}),v.dynamicMainBullets>1&&O!==void 0&&(a+=C-(O||0),a>v.dynamicMainBullets-1?a=v.dynamicMainBullets-1:a<0&&(a=0)),U=Math.max(C-a,0),k=U+(Math.min(L.length,v.dynamicMainBullets)-1),W=(k+U)/2),L.forEach($=>{const I=[...["","-next","-next-next","-prev","-prev-prev","-main"].map(j=>`${v.bulletActiveClass}${j}`)].map(j=>typeof j=="string"&&j.includes(" ")?j.split(" "):j).flat();$.classList.remove(...I)}),T.length>1)L.forEach($=>{const I=go($);I===C?$.classList.add(...v.bulletActiveClass.split(" ")):e.isElement&&$.setAttribute("part","bullet"),v.dynamicBullets&&(I>=U&&I<=k&&$.classList.add(...`${v.bulletActiveClass}-main`.split(" ")),I===U&&c($,"prev"),I===k&&c($,"next"))});else{const $=L[C];if($&&$.classList.add(...v.bulletActiveClass.split(" ")),e.isElement&&L.forEach((I,j)=>{I.setAttribute("part",j===C?"bullet-active":"bullet")}),v.dynamicBullets){const I=L[U],j=L[k];for(let Q=U;Q<=k;Q+=1)L[Q]&&L[Q].classList.add(...`${v.bulletActiveClass}-main`.split(" "));c(I,"prev"),c(j,"next")}}if(v.dynamicBullets){const $=Math.min(L.length,v.dynamicMainBullets+4),I=(o*$-o)/2-W*o,j=_?"right":"left";L.forEach(Q=>{Q.style[e.isHorizontal()?j:"top"]=`${I}px`})}}T.forEach((L,U)=>{if(v.type==="fraction"&&(L.querySelectorAll(nn(v.currentClass)).forEach(k=>{k.textContent=v.formatFractionCurrent(C+1)}),L.querySelectorAll(nn(v.totalClass)).forEach(k=>{k.textContent=v.formatFractionTotal(F)})),v.type==="progressbar"){let k;v.progressbarOpposite?k=e.isHorizontal()?"vertical":"horizontal":k=e.isHorizontal()?"horizontal":"vertical";const W=(C+1)/F;let $=1,I=1;k==="horizontal"?$=W:I=W,L.querySelectorAll(nn(v.progressbarFillClass)).forEach(j=>{j.style.transform=`translate3d(0,0,0) scaleX(${$}) scaleY(${I})`,j.style.transitionDuration=`${e.params.speed}ms`})}v.type==="custom"&&v.renderCustom?(L.innerHTML=v.renderCustom(e,C+1,F),U===0&&i("paginationRender",L)):(U===0&&i("paginationRender",L),i("paginationUpdate",L)),e.params.watchOverflow&&e.enabled&&L.classList[e.isLocked?"add":"remove"](v.lockClass)})}function h(){const _=e.params.pagination;if(u())return;const v=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length;let T=e.pagination.el;T=l(T);let C="";if(_.type==="bullets"){let O=e.params.loop?Math.ceil(v/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&O>v&&(O=v);for(let D=0;D<O;D+=1)_.renderBullet?C+=_.renderBullet.call(e,D,_.bulletClass):C+=`<${_.bulletElement} ${e.isElement?'part="bullet"':""} class="${_.bulletClass}"></${_.bulletElement}>`}_.type==="fraction"&&(_.renderFraction?C=_.renderFraction.call(e,_.currentClass,_.totalClass):C=`<span class="${_.currentClass}"></span> / <span class="${_.totalClass}"></span>`),_.type==="progressbar"&&(_.renderProgressbar?C=_.renderProgressbar.call(e,_.progressbarFillClass):C=`<span class="${_.progressbarFillClass}"></span>`),e.pagination.bullets=[],T.forEach(O=>{_.type!=="custom"&&(O.innerHTML=C||""),_.type==="bullets"&&e.pagination.bullets.push(...O.querySelectorAll(nn(_.bulletClass)))}),_.type!=="custom"&&i("paginationRender",T[0])}function g(){e.params.pagination=np(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const _=e.params.pagination;if(!_.el)return;let v;typeof _.el=="string"&&e.isElement&&(v=e.el.querySelector(_.el)),!v&&typeof _.el=="string"&&(v=[...document.querySelectorAll(_.el)]),v||(v=_.el),!(!v||v.length===0)&&(e.params.uniqueNavElements&&typeof _.el=="string"&&Array.isArray(v)&&v.length>1&&(v=[...e.el.querySelectorAll(_.el)],v.length>1&&(v=v.filter(T=>Wn(T,".swiper")[0]===e.el)[0])),Array.isArray(v)&&v.length===1&&(v=v[0]),Object.assign(e.pagination,{el:v}),v=l(v),v.forEach(T=>{_.type==="bullets"&&_.clickable&&T.classList.add(...(_.clickableClass||"").split(" ")),T.classList.add(_.modifierClass+_.type),T.classList.add(e.isHorizontal()?_.horizontalClass:_.verticalClass),_.type==="bullets"&&_.dynamicBullets&&(T.classList.add(`${_.modifierClass}${_.type}-dynamic`),a=0,_.dynamicMainBullets<1&&(_.dynamicMainBullets=1)),_.type==="progressbar"&&_.progressbarOpposite&&T.classList.add(_.progressbarOppositeClass),_.clickable&&T.addEventListener("click",f),e.enabled||T.classList.add(_.lockClass)}))}function y(){const _=e.params.pagination;if(u())return;let v=e.pagination.el;v&&(v=l(v),v.forEach(T=>{T.classList.remove(_.hiddenClass),T.classList.remove(_.modifierClass+_.type),T.classList.remove(e.isHorizontal()?_.horizontalClass:_.verticalClass),_.clickable&&(T.classList.remove(...(_.clickableClass||"").split(" ")),T.removeEventListener("click",f))})),e.pagination.bullets&&e.pagination.bullets.forEach(T=>T.classList.remove(..._.bulletActiveClass.split(" ")))}n("changeDirection",()=>{if(!e.pagination||!e.pagination.el)return;const _=e.params.pagination;let{el:v}=e.pagination;v=l(v),v.forEach(T=>{T.classList.remove(_.horizontalClass,_.verticalClass),T.classList.add(e.isHorizontal()?_.horizontalClass:_.verticalClass)})}),n("init",()=>{e.params.pagination.enabled===!1?E():(g(),h(),d())}),n("activeIndexChange",()=>{typeof e.snapIndex>"u"&&d()}),n("snapIndexChange",()=>{d()}),n("snapGridLengthChange",()=>{h(),d()}),n("destroy",()=>{y()}),n("enable disable",()=>{let{el:_}=e.pagination;_&&(_=l(_),_.forEach(v=>v.classList[e.enabled?"remove":"add"](e.params.pagination.lockClass)))}),n("lock unlock",()=>{d()}),n("click",(_,v)=>{const T=v.target,C=l(e.pagination.el);if(e.params.pagination.el&&e.params.pagination.hideOnClick&&C&&C.length>0&&!T.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&T===e.navigation.nextEl||e.navigation.prevEl&&T===e.navigation.prevEl))return;const O=C[0].classList.contains(e.params.pagination.hiddenClass);i(O===!0?"paginationShow":"paginationHide"),C.forEach(D=>D.classList.toggle(e.params.pagination.hiddenClass))}});const b=()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:_}=e.pagination;_&&(_=l(_),_.forEach(v=>v.classList.remove(e.params.pagination.paginationDisabledClass))),g(),h(),d()},E=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:_}=e.pagination;_&&(_=l(_),_.forEach(v=>v.classList.add(e.params.pagination.paginationDisabledClass))),y()};Object.assign(e.pagination,{enable:b,disable:E,render:h,update:d,init:g,destroy:y})}function $H(t){let{swiper:e,extendParams:r,on:n,emit:i}=t;const s=st();let o=!1,a=null,l=null,u,c,f,d;r({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),e.scrollbar={el:null,dragEl:null};function h(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:W,rtlTranslate:$}=e,{dragEl:I,el:j}=W,Q=e.params.scrollbar,H=e.params.loop?e.progressLoop:e.progress;let K=c,X=(f-c)*H;$?(X=-X,X>0?(K=c-X,X=0):-X+c>f&&(K=f+X)):X<0?(K=c+X,X=0):X+c>f&&(K=f-X),e.isHorizontal()?(I.style.transform=`translate3d(${X}px, 0, 0)`,I.style.width=`${K}px`):(I.style.transform=`translate3d(0px, ${X}px, 0)`,I.style.height=`${K}px`),Q.hide&&(clearTimeout(a),j.style.opacity=1,a=setTimeout(()=>{j.style.opacity=0,j.style.transitionDuration="400ms"},1e3))}function g(W){!e.params.scrollbar.el||!e.scrollbar.el||(e.scrollbar.dragEl.style.transitionDuration=`${W}ms`)}function y(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:W}=e,{dragEl:$,el:I}=W;$.style.width="",$.style.height="",f=e.isHorizontal()?I.offsetWidth:I.offsetHeight,d=e.size/(e.virtualSize+e.params.slidesOffsetBefore-(e.params.centeredSlides?e.snapGrid[0]:0)),e.params.scrollbar.dragSize==="auto"?c=f*d:c=parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?$.style.width=`${c}px`:$.style.height=`${c}px`,d>=1?I.style.display="none":I.style.display="",e.params.scrollbar.hide&&(I.style.opacity=0),e.params.watchOverflow&&e.enabled&&W.el.classList[e.isLocked?"add":"remove"](e.params.scrollbar.lockClass)}function b(W){return e.isHorizontal()?W.clientX:W.clientY}function E(W){const{scrollbar:$,rtlTranslate:I}=e,{el:j}=$;let Q;Q=(b(W)-yl(j)[e.isHorizontal()?"left":"top"]-(u!==null?u:c/2))/(f-c),Q=Math.max(Math.min(Q,1),0),I&&(Q=1-Q);const H=e.minTranslate()+(e.maxTranslate()-e.minTranslate())*Q;e.updateProgress(H),e.setTranslate(H),e.updateActiveIndex(),e.updateSlidesClasses()}function _(W){const $=e.params.scrollbar,{scrollbar:I,wrapperEl:j}=e,{el:Q,dragEl:H}=I;o=!0,u=W.target===H?b(W)-W.target.getBoundingClientRect()[e.isHorizontal()?"left":"top"]:null,W.preventDefault(),W.stopPropagation(),j.style.transitionDuration="100ms",H.style.transitionDuration="100ms",E(W),clearTimeout(l),Q.style.transitionDuration="0ms",$.hide&&(Q.style.opacity=1),e.params.cssMode&&(e.wrapperEl.style["scroll-snap-type"]="none"),i("scrollbarDragStart",W)}function v(W){const{scrollbar:$,wrapperEl:I}=e,{el:j,dragEl:Q}=$;o&&(W.preventDefault?W.preventDefault():W.returnValue=!1,E(W),I.style.transitionDuration="0ms",j.style.transitionDuration="0ms",Q.style.transitionDuration="0ms",i("scrollbarDragMove",W))}function T(W){const $=e.params.scrollbar,{scrollbar:I,wrapperEl:j}=e,{el:Q}=I;o&&(o=!1,e.params.cssMode&&(e.wrapperEl.style["scroll-snap-type"]="",j.style.transitionDuration=""),$.hide&&(clearTimeout(l),l=Zn(()=>{Q.style.opacity=0,Q.style.transitionDuration="400ms"},1e3)),i("scrollbarDragEnd",W),$.snapOnRelease&&e.slideToClosest())}function C(W){const{scrollbar:$,params:I}=e,j=$.el;if(!j)return;const Q=j,H=I.passiveListeners?{passive:!1,capture:!1}:!1,K=I.passiveListeners?{passive:!0,capture:!1}:!1;if(!Q)return;const X=W==="on"?"addEventListener":"removeEventListener";Q[X]("pointerdown",_,H),s[X]("pointermove",v,H),s[X]("pointerup",T,K)}function O(){!e.params.scrollbar.el||!e.scrollbar.el||C("on")}function D(){!e.params.scrollbar.el||!e.scrollbar.el||C("off")}function F(){const{scrollbar:W,el:$}=e;e.params.scrollbar=np(e,e.originalParams.scrollbar,e.params.scrollbar,{el:"swiper-scrollbar"});const I=e.params.scrollbar;if(!I.el)return;let j;typeof I.el=="string"&&e.isElement&&(j=e.el.querySelector(I.el)),!j&&typeof I.el=="string"?j=s.querySelectorAll(I.el):j||(j=I.el),e.params.uniqueNavElements&&typeof I.el=="string"&&j.length>1&&$.querySelectorAll(I.el).length===1&&(j=$.querySelector(I.el)),j.length>0&&(j=j[0]),j.classList.add(e.isHorizontal()?I.horizontalClass:I.verticalClass);let Q;j&&(Q=j.querySelector(`.${e.params.scrollbar.dragClass}`),Q||(Q=Vt("div",e.params.scrollbar.dragClass),j.append(Q))),Object.assign(W,{el:j,dragEl:Q}),I.draggable&&O(),j&&j.classList[e.enabled?"remove":"add"](e.params.scrollbar.lockClass)}function L(){const W=e.params.scrollbar,$=e.scrollbar.el;$&&$.classList.remove(e.isHorizontal()?W.horizontalClass:W.verticalClass),D()}n("init",()=>{e.params.scrollbar.enabled===!1?k():(F(),y(),h())}),n("update resize observerUpdate lock unlock",()=>{y()}),n("setTranslate",()=>{h()}),n("setTransition",(W,$)=>{g($)}),n("enable disable",()=>{const{el:W}=e.scrollbar;W&&W.classList[e.enabled?"remove":"add"](e.params.scrollbar.lockClass)}),n("destroy",()=>{L()});const U=()=>{e.el.classList.remove(e.params.scrollbar.scrollbarDisabledClass),e.scrollbar.el&&e.scrollbar.el.classList.remove(e.params.scrollbar.scrollbarDisabledClass),F(),y(),h()},k=()=>{e.el.classList.add(e.params.scrollbar.scrollbarDisabledClass),e.scrollbar.el&&e.scrollbar.el.classList.add(e.params.scrollbar.scrollbarDisabledClass),L()};Object.assign(e.scrollbar,{enable:U,disable:k,updateSize:y,setTranslate:h,init:F,destroy:L})}function kH(t){let{swiper:e,extendParams:r,on:n}=t;r({parallax:{enabled:!1}});const i="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",s=(l,u)=>{const{rtl:c}=e,f=c?-1:1,d=l.getAttribute("data-swiper-parallax")||"0";let h=l.getAttribute("data-swiper-parallax-x"),g=l.getAttribute("data-swiper-parallax-y");const y=l.getAttribute("data-swiper-parallax-scale"),b=l.getAttribute("data-swiper-parallax-opacity"),E=l.getAttribute("data-swiper-parallax-rotate");if(h||g?(h=h||"0",g=g||"0"):e.isHorizontal()?(h=d,g="0"):(g=d,h="0"),h.indexOf("%")>=0?h=`${parseInt(h,10)*u*f}%`:h=`${h*u*f}px`,g.indexOf("%")>=0?g=`${parseInt(g,10)*u}%`:g=`${g*u}px`,typeof b<"u"&&b!==null){const v=b-(b-1)*(1-Math.abs(u));l.style.opacity=v}let _=`translate3d(${h}, ${g}, 0px)`;if(typeof y<"u"&&y!==null){const v=y-(y-1)*(1-Math.abs(u));_+=` scale(${v})`}if(E&&typeof E<"u"&&E!==null){const v=E*u*-1;_+=` rotate(${v}deg)`}l.style.transform=_},o=()=>{const{el:l,slides:u,progress:c,snapGrid:f,isElement:d}=e,h=Qe(l,i);e.isElement&&h.push(...Qe(e.hostEl,i)),h.forEach(g=>{s(g,c)}),u.forEach((g,y)=>{let b=g.progress;e.params.slidesPerGroup>1&&e.params.slidesPerView!=="auto"&&(b+=Math.ceil(y/2)-c*(f.length-1)),b=Math.min(Math.max(b,-1),1),g.querySelectorAll(`${i}, [data-swiper-parallax-rotate]`).forEach(E=>{s(E,b)})})},a=function(l){l===void 0&&(l=e.params.speed);const{el:u,hostEl:c}=e,f=[...u.querySelectorAll(i)];e.isElement&&f.push(...c.querySelectorAll(i)),f.forEach(d=>{let h=parseInt(d.getAttribute("data-swiper-parallax-duration"),10)||l;l===0&&(h=0),d.style.transitionDuration=`${h}ms`})};n("beforeInit",()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)}),n("init",()=>{e.params.parallax.enabled&&o()}),n("setTranslate",()=>{e.params.parallax.enabled&&o()}),n("setTransition",(l,u)=>{e.params.parallax.enabled&&a(u)})}function DH(t){let{swiper:e,extendParams:r,on:n,emit:i}=t;const s=je();r({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),e.zoom={enabled:!1};let o=1,a=!1,l,u;const c=[],f={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},d={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},h={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let g=1;Object.defineProperty(e.zoom,"scale",{get(){return g},set(H){if(g!==H){const K=f.imageEl,X=f.slideEl;i("zoomChange",H,K,X)}g=H}});function y(){if(c.length<2)return 1;const H=c[0].pageX,K=c[0].pageY,X=c[1].pageX,Z=c[1].pageY;return Math.sqrt((X-H)**2+(Z-K)**2)}function b(){if(c.length<2)return{x:null,y:null};const H=f.imageEl.getBoundingClientRect();return[(c[0].pageX+(c[1].pageX-c[0].pageX)/2-H.x-s.scrollX)/o,(c[0].pageY+(c[1].pageY-c[0].pageY)/2-H.y-s.scrollY)/o]}function E(){return e.isElement?"swiper-slide":`.${e.params.slideClass}`}function _(H){const K=E();return!!(H.target.matches(K)||e.slides.filter(X=>X.contains(H.target)).length>0)}function v(H){const K=`.${e.params.zoom.containerClass}`;return!!(H.target.matches(K)||[...e.hostEl.querySelectorAll(K)].filter(X=>X.contains(H.target)).length>0)}function T(H){if(H.pointerType==="mouse"&&c.splice(0,c.length),!_(H))return;const K=e.params.zoom;if(l=!1,u=!1,c.push(H),!(c.length<2)){if(l=!0,f.scaleStart=y(),!f.slideEl){f.slideEl=H.target.closest(`.${e.params.slideClass}, swiper-slide`),f.slideEl||(f.slideEl=e.slides[e.activeIndex]);let X=f.slideEl.querySelector(`.${K.containerClass}`);if(X&&(X=X.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),f.imageEl=X,X?f.imageWrapEl=Wn(f.imageEl,`.${K.containerClass}`)[0]:f.imageWrapEl=void 0,!f.imageWrapEl){f.imageEl=void 0;return}f.maxRatio=f.imageWrapEl.getAttribute("data-swiper-zoom")||K.maxRatio}if(f.imageEl){const[X,Z]=b();f.originX=X,f.originY=Z,f.imageEl.style.transitionDuration="0ms"}a=!0}}function C(H){if(!_(H))return;const K=e.params.zoom,X=e.zoom,Z=c.findIndex(ce=>ce.pointerId===H.pointerId);Z>=0&&(c[Z]=H),!(c.length<2)&&(u=!0,f.scaleMove=y(),f.imageEl&&(X.scale=f.scaleMove/f.scaleStart*o,X.scale>f.maxRatio&&(X.scale=f.maxRatio-1+(X.scale-f.maxRatio+1)**.5),X.scale<K.minRatio&&(X.scale=K.minRatio+1-(K.minRatio-X.scale+1)**.5),f.imageEl.style.transform=`translate3d(0,0,0) scale(${X.scale})`))}function O(H){if(!_(H)||H.pointerType==="mouse"&&H.type==="pointerout")return;const K=e.params.zoom,X=e.zoom,Z=c.findIndex(ce=>ce.pointerId===H.pointerId);Z>=0&&c.splice(Z,1),!(!l||!u)&&(l=!1,u=!1,f.imageEl&&(X.scale=Math.max(Math.min(X.scale,f.maxRatio),K.minRatio),f.imageEl.style.transitionDuration=`${e.params.speed}ms`,f.imageEl.style.transform=`translate3d(0,0,0) scale(${X.scale})`,o=X.scale,a=!1,X.scale>1&&f.slideEl?f.slideEl.classList.add(`${K.zoomedSlideClass}`):X.scale<=1&&f.slideEl&&f.slideEl.classList.remove(`${K.zoomedSlideClass}`),X.scale===1&&(f.originX=0,f.originY=0,f.slideEl=void 0)))}function D(H){const K=e.device;if(!f.imageEl||d.isTouched)return;K.android&&H.cancelable&&H.preventDefault(),d.isTouched=!0;const X=c.length>0?c[0]:H;d.touchesStart.x=X.pageX,d.touchesStart.y=X.pageY}function F(H){if(!_(H)||!v(H))return;const K=e.zoom;if(!f.imageEl||!d.isTouched||!f.slideEl)return;d.isMoved||(d.width=f.imageEl.offsetWidth,d.height=f.imageEl.offsetHeight,d.startX=id(f.imageWrapEl,"x")||0,d.startY=id(f.imageWrapEl,"y")||0,f.slideWidth=f.slideEl.offsetWidth,f.slideHeight=f.slideEl.offsetHeight,f.imageWrapEl.style.transitionDuration="0ms");const X=d.width*K.scale,Z=d.height*K.scale;if(X<f.slideWidth&&Z<f.slideHeight)return;if(d.minX=Math.min(f.slideWidth/2-X/2,0),d.maxX=-d.minX,d.minY=Math.min(f.slideHeight/2-Z/2,0),d.maxY=-d.minY,d.touchesCurrent.x=c.length>0?c[0].pageX:H.pageX,d.touchesCurrent.y=c.length>0?c[0].pageY:H.pageY,Math.max(Math.abs(d.touchesCurrent.x-d.touchesStart.x),Math.abs(d.touchesCurrent.y-d.touchesStart.y))>5&&(e.allowClick=!1),!d.isMoved&&!a){if(e.isHorizontal()&&(Math.floor(d.minX)===Math.floor(d.startX)&&d.touchesCurrent.x<d.touchesStart.x||Math.floor(d.maxX)===Math.floor(d.startX)&&d.touchesCurrent.x>d.touchesStart.x)){d.isTouched=!1;return}if(!e.isHorizontal()&&(Math.floor(d.minY)===Math.floor(d.startY)&&d.touchesCurrent.y<d.touchesStart.y||Math.floor(d.maxY)===Math.floor(d.startY)&&d.touchesCurrent.y>d.touchesStart.y)){d.isTouched=!1;return}}H.cancelable&&H.preventDefault(),H.stopPropagation(),d.isMoved=!0;const pe=(K.scale-o)/(f.maxRatio-e.params.zoom.minRatio),{originX:de,originY:me}=f;d.currentX=d.touchesCurrent.x-d.touchesStart.x+d.startX+pe*(d.width-de*2),d.currentY=d.touchesCurrent.y-d.touchesStart.y+d.startY+pe*(d.height-me*2),d.currentX<d.minX&&(d.currentX=d.minX+1-(d.minX-d.currentX+1)**.8),d.currentX>d.maxX&&(d.currentX=d.maxX-1+(d.currentX-d.maxX+1)**.8),d.currentY<d.minY&&(d.currentY=d.minY+1-(d.minY-d.currentY+1)**.8),d.currentY>d.maxY&&(d.currentY=d.maxY-1+(d.currentY-d.maxY+1)**.8),h.prevPositionX||(h.prevPositionX=d.touchesCurrent.x),h.prevPositionY||(h.prevPositionY=d.touchesCurrent.y),h.prevTime||(h.prevTime=Date.now()),h.x=(d.touchesCurrent.x-h.prevPositionX)/(Date.now()-h.prevTime)/2,h.y=(d.touchesCurrent.y-h.prevPositionY)/(Date.now()-h.prevTime)/2,Math.abs(d.touchesCurrent.x-h.prevPositionX)<2&&(h.x=0),Math.abs(d.touchesCurrent.y-h.prevPositionY)<2&&(h.y=0),h.prevPositionX=d.touchesCurrent.x,h.prevPositionY=d.touchesCurrent.y,h.prevTime=Date.now(),f.imageWrapEl.style.transform=`translate3d(${d.currentX}px, ${d.currentY}px,0)`}function L(){const H=e.zoom;if(!f.imageEl)return;if(!d.isTouched||!d.isMoved){d.isTouched=!1,d.isMoved=!1;return}d.isTouched=!1,d.isMoved=!1;let K=300,X=300;const Z=h.x*K,ce=d.currentX+Z,pe=h.y*X,de=d.currentY+pe;h.x!==0&&(K=Math.abs((ce-d.currentX)/h.x)),h.y!==0&&(X=Math.abs((de-d.currentY)/h.y));const me=Math.max(K,X);d.currentX=ce,d.currentY=de;const be=d.width*H.scale,G=d.height*H.scale;d.minX=Math.min(f.slideWidth/2-be/2,0),d.maxX=-d.minX,d.minY=Math.min(f.slideHeight/2-G/2,0),d.maxY=-d.minY,d.currentX=Math.max(Math.min(d.currentX,d.maxX),d.minX),d.currentY=Math.max(Math.min(d.currentY,d.maxY),d.minY),f.imageWrapEl.style.transitionDuration=`${me}ms`,f.imageWrapEl.style.transform=`translate3d(${d.currentX}px, ${d.currentY}px,0)`}function U(){const H=e.zoom;f.slideEl&&e.activeIndex!==e.slides.indexOf(f.slideEl)&&(f.imageEl&&(f.imageEl.style.transform="translate3d(0,0,0) scale(1)"),f.imageWrapEl&&(f.imageWrapEl.style.transform="translate3d(0,0,0)"),f.slideEl.classList.remove(`${e.params.zoom.zoomedSlideClass}`),H.scale=1,o=1,f.slideEl=void 0,f.imageEl=void 0,f.imageWrapEl=void 0,f.originX=0,f.originY=0)}function k(H){const K=e.zoom,X=e.params.zoom;if(!f.slideEl){H&&H.target&&(f.slideEl=H.target.closest(`.${e.params.slideClass}, swiper-slide`)),f.slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?f.slideEl=Qe(e.slidesEl,`.${e.params.slideActiveClass}`)[0]:f.slideEl=e.slides[e.activeIndex]);let re=f.slideEl.querySelector(`.${X.containerClass}`);re&&(re=re.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),f.imageEl=re,re?f.imageWrapEl=Wn(f.imageEl,`.${X.containerClass}`)[0]:f.imageWrapEl=void 0}if(!f.imageEl||!f.imageWrapEl)return;e.params.cssMode&&(e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.touchAction="none"),f.slideEl.classList.add(`${X.zoomedSlideClass}`);let Z,ce,pe,de,me,be,G,Y,ne,ee,ue,P,w,S,A,B,z,q;typeof d.touchesStart.x>"u"&&H?(Z=H.pageX,ce=H.pageY):(Z=d.touchesStart.x,ce=d.touchesStart.y);const ie=typeof H=="number"?H:null;o===1&&ie&&(Z=void 0,ce=void 0),K.scale=ie||f.imageWrapEl.getAttribute("data-swiper-zoom")||X.maxRatio,o=ie||f.imageWrapEl.getAttribute("data-swiper-zoom")||X.maxRatio,H&&!(o===1&&ie)?(z=f.slideEl.offsetWidth,q=f.slideEl.offsetHeight,pe=yl(f.slideEl).left+s.scrollX,de=yl(f.slideEl).top+s.scrollY,me=pe+z/2-Z,be=de+q/2-ce,ne=f.imageEl.offsetWidth,ee=f.imageEl.offsetHeight,ue=ne*K.scale,P=ee*K.scale,w=Math.min(z/2-ue/2,0),S=Math.min(q/2-P/2,0),A=-w,B=-S,G=me*K.scale,Y=be*K.scale,G<w&&(G=w),G>A&&(G=A),Y<S&&(Y=S),Y>B&&(Y=B)):(G=0,Y=0),ie&&K.scale===1&&(f.originX=0,f.originY=0),f.imageWrapEl.style.transitionDuration="300ms",f.imageWrapEl.style.transform=`translate3d(${G}px, ${Y}px,0)`,f.imageEl.style.transitionDuration="300ms",f.imageEl.style.transform=`translate3d(0,0,0) scale(${K.scale})`}function W(){const H=e.zoom,K=e.params.zoom;if(!f.slideEl){e.params.virtual&&e.params.virtual.enabled&&e.virtual?f.slideEl=Qe(e.slidesEl,`.${e.params.slideActiveClass}`)[0]:f.slideEl=e.slides[e.activeIndex];let X=f.slideEl.querySelector(`.${K.containerClass}`);X&&(X=X.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),f.imageEl=X,X?f.imageWrapEl=Wn(f.imageEl,`.${K.containerClass}`)[0]:f.imageWrapEl=void 0}!f.imageEl||!f.imageWrapEl||(e.params.cssMode&&(e.wrapperEl.style.overflow="",e.wrapperEl.style.touchAction=""),H.scale=1,o=1,f.imageWrapEl.style.transitionDuration="300ms",f.imageWrapEl.style.transform="translate3d(0,0,0)",f.imageEl.style.transitionDuration="300ms",f.imageEl.style.transform="translate3d(0,0,0) scale(1)",f.slideEl.classList.remove(`${K.zoomedSlideClass}`),f.slideEl=void 0,f.originX=0,f.originY=0)}function $(H){const K=e.zoom;K.scale&&K.scale!==1?W():k(H)}function I(){const H=e.params.passiveListeners?{passive:!0,capture:!1}:!1,K=e.params.passiveListeners?{passive:!1,capture:!0}:!0;return{passiveListener:H,activeListenerWithCapture:K}}function j(){const H=e.zoom;if(H.enabled)return;H.enabled=!0;const{passiveListener:K,activeListenerWithCapture:X}=I();e.wrapperEl.addEventListener("pointerdown",T,K),e.wrapperEl.addEventListener("pointermove",C,X),["pointerup","pointercancel","pointerout"].forEach(Z=>{e.wrapperEl.addEventListener(Z,O,K)}),e.wrapperEl.addEventListener("pointermove",F,X)}function Q(){const H=e.zoom;if(!H.enabled)return;H.enabled=!1;const{passiveListener:K,activeListenerWithCapture:X}=I();e.wrapperEl.removeEventListener("pointerdown",T,K),e.wrapperEl.removeEventListener("pointermove",C,X),["pointerup","pointercancel","pointerout"].forEach(Z=>{e.wrapperEl.removeEventListener(Z,O,K)}),e.wrapperEl.removeEventListener("pointermove",F,X)}n("init",()=>{e.params.zoom.enabled&&j()}),n("destroy",()=>{Q()}),n("touchStart",(H,K)=>{e.zoom.enabled&&D(K)}),n("touchEnd",(H,K)=>{e.zoom.enabled&&L()}),n("doubleTap",(H,K)=>{!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&$(K)}),n("transitionEnd",()=>{e.zoom.enabled&&e.params.zoom.enabled&&U()}),n("slideChange",()=>{e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&U()}),Object.assign(e.zoom,{enable:j,disable:Q,in:k,out:W,toggle:$})}function BH(t){let{swiper:e,extendParams:r,on:n}=t;r({controller:{control:void 0,inverse:!1,by:"slide"}}),e.controller={control:void 0};function i(u,c){const f=function(){let y,b,E;return(_,v)=>{for(b=-1,y=_.length;y-b>1;)E=y+b>>1,_[E]<=v?b=E:y=E;return y}}();this.x=u,this.y=c,this.lastIndex=u.length-1;let d,h;return this.interpolate=function(y){return y?(h=f(this.x,y),d=h-1,(y-this.x[d])*(this.y[h]-this.y[d])/(this.x[h]-this.x[d])+this.y[d]):0},this}function s(u){e.controller.spline=e.params.loop?new i(e.slidesGrid,u.slidesGrid):new i(e.snapGrid,u.snapGrid)}function o(u,c){const f=e.controller.control;let d,h;const g=e.constructor;function y(b){if(b.destroyed)return;const E=e.rtlTranslate?-e.translate:e.translate;e.params.controller.by==="slide"&&(s(b),h=-e.controller.spline.interpolate(-E)),(!h||e.params.controller.by==="container")&&(d=(b.maxTranslate()-b.minTranslate())/(e.maxTranslate()-e.minTranslate()),(Number.isNaN(d)||!Number.isFinite(d))&&(d=1),h=(E-e.minTranslate())*d+b.minTranslate()),e.params.controller.inverse&&(h=b.maxTranslate()-h),b.updateProgress(h),b.setTranslate(h,e),b.updateActiveIndex(),b.updateSlidesClasses()}if(Array.isArray(f))for(let b=0;b<f.length;b+=1)f[b]!==c&&f[b]instanceof g&&y(f[b]);else f instanceof g&&c!==f&&y(f)}function a(u,c){const f=e.constructor,d=e.controller.control;let h;function g(y){y.destroyed||(y.setTransition(u,e),u!==0&&(y.transitionStart(),y.params.autoHeight&&Zn(()=>{y.updateAutoHeight()}),Qs(y.wrapperEl,()=>{d&&y.transitionEnd()})))}if(Array.isArray(d))for(h=0;h<d.length;h+=1)d[h]!==c&&d[h]instanceof f&&g(d[h]);else d instanceof f&&c!==d&&g(d)}function l(){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)}n("beforeInit",()=>{if(typeof window<"u"&&(typeof e.params.controller.control=="string"||e.params.controller.control instanceof HTMLElement)){const u=document.querySelector(e.params.controller.control);if(u&&u.swiper)e.controller.control=u.swiper;else if(u){const c=f=>{e.controller.control=f.detail[0],e.update(),u.removeEventListener("init",c)};u.addEventListener("init",c)}return}e.controller.control=e.params.controller.control}),n("update",()=>{l()}),n("resize",()=>{l()}),n("observerUpdate",()=>{l()}),n("setTranslate",(u,c,f)=>{!e.controller.control||e.controller.control.destroyed||e.controller.setTranslate(c,f)}),n("setTransition",(u,c,f)=>{!e.controller.control||e.controller.control.destroyed||e.controller.setTransition(c,f)}),Object.assign(e.controller,{setTranslate:o,setTransition:a})}function FH(t){let{swiper:e,extendParams:r,on:n}=t;r({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null}}),e.a11y={clicked:!1};let i=null;function s(I){const j=i;j.length!==0&&(j.innerHTML="",j.innerHTML=I)}const o=I=>(Array.isArray(I)?I:[I]).filter(j=>!!j);function a(I){I===void 0&&(I=16);const j=()=>Math.round(16*Math.random()).toString(16);return"x".repeat(I).replace(/x/g,j)}function l(I){I=o(I),I.forEach(j=>{j.setAttribute("tabIndex","0")})}function u(I){I=o(I),I.forEach(j=>{j.setAttribute("tabIndex","-1")})}function c(I,j){I=o(I),I.forEach(Q=>{Q.setAttribute("role",j)})}function f(I,j){I=o(I),I.forEach(Q=>{Q.setAttribute("aria-roledescription",j)})}function d(I,j){I=o(I),I.forEach(Q=>{Q.setAttribute("aria-controls",j)})}function h(I,j){I=o(I),I.forEach(Q=>{Q.setAttribute("aria-label",j)})}function g(I,j){I=o(I),I.forEach(Q=>{Q.setAttribute("id",j)})}function y(I,j){I=o(I),I.forEach(Q=>{Q.setAttribute("aria-live",j)})}function b(I){I=o(I),I.forEach(j=>{j.setAttribute("aria-disabled",!0)})}function E(I){I=o(I),I.forEach(j=>{j.setAttribute("aria-disabled",!1)})}function _(I){if(I.keyCode!==13&&I.keyCode!==32)return;const j=e.params.a11y,Q=I.target;e.pagination&&e.pagination.el&&(Q===e.pagination.el||e.pagination.el.contains(I.target))&&!I.target.matches(nn(e.params.pagination.bulletClass))||(e.navigation&&e.navigation.nextEl&&Q===e.navigation.nextEl&&(e.isEnd&&!e.params.loop||e.slideNext(),e.isEnd?s(j.lastSlideMessage):s(j.nextSlideMessage)),e.navigation&&e.navigation.prevEl&&Q===e.navigation.prevEl&&(e.isBeginning&&!e.params.loop||e.slidePrev(),e.isBeginning?s(j.firstSlideMessage):s(j.prevSlideMessage)),e.pagination&&Q.matches(nn(e.params.pagination.bulletClass))&&Q.click())}function v(){if(e.params.loop||e.params.rewind||!e.navigation)return;const{nextEl:I,prevEl:j}=e.navigation;j&&(e.isBeginning?(b(j),u(j)):(E(j),l(j))),I&&(e.isEnd?(b(I),u(I)):(E(I),l(I)))}function T(){return e.pagination&&e.pagination.bullets&&e.pagination.bullets.length}function C(){return T()&&e.params.pagination.clickable}function O(){const I=e.params.a11y;T()&&e.pagination.bullets.forEach(j=>{e.params.pagination.clickable&&(l(j),e.params.pagination.renderBullet||(c(j,"button"),h(j,I.paginationBulletMessage.replace(/\{\{index\}\}/,go(j)+1)))),j.matches(nn(e.params.pagination.bulletActiveClass))?j.setAttribute("aria-current","true"):j.removeAttribute("aria-current")})}const D=(I,j,Q)=>{l(I),I.tagName!=="BUTTON"&&(c(I,"button"),I.addEventListener("keydown",_)),h(I,Q),d(I,j)},F=()=>{e.a11y.clicked=!0},L=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.destroyed||(e.a11y.clicked=!1)})})},U=I=>{if(e.a11y.clicked)return;const j=I.target.closest(`.${e.params.slideClass}, swiper-slide`);if(!j||!e.slides.includes(j))return;const Q=e.slides.indexOf(j)===e.activeIndex,H=e.params.watchSlidesProgress&&e.visibleSlides&&e.visibleSlides.includes(j);Q||H||I.sourceCapabilities&&I.sourceCapabilities.firesTouchEvents||(e.isHorizontal()?e.el.scrollLeft=0:e.el.scrollTop=0,e.slideTo(e.slides.indexOf(j),0))},k=()=>{const I=e.params.a11y;I.itemRoleDescriptionMessage&&f(e.slides,I.itemRoleDescriptionMessage),I.slideRole&&c(e.slides,I.slideRole);const j=e.slides.length;I.slideLabelMessage&&e.slides.forEach((Q,H)=>{const K=e.params.loop?parseInt(Q.getAttribute("data-swiper-slide-index"),10):H,X=I.slideLabelMessage.replace(/\{\{index\}\}/,K+1).replace(/\{\{slidesLength\}\}/,j);h(Q,X)})},W=()=>{const I=e.params.a11y;e.el.append(i);const j=e.el;I.containerRoleDescriptionMessage&&f(j,I.containerRoleDescriptionMessage),I.containerMessage&&h(j,I.containerMessage);const Q=e.wrapperEl,H=I.id||Q.getAttribute("id")||`swiper-wrapper-${a(16)}`,K=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";g(Q,H),y(Q,K),k();let{nextEl:X,prevEl:Z}=e.navigation?e.navigation:{};X=o(X),Z=o(Z),X&&X.forEach(ce=>D(ce,H,I.nextSlideMessage)),Z&&Z.forEach(ce=>D(ce,H,I.prevSlideMessage)),C()&&(Array.isArray(e.pagination.el)?e.pagination.el:[e.pagination.el]).forEach(pe=>{pe.addEventListener("keydown",_)}),e.el.addEventListener("focus",U,!0),e.el.addEventListener("pointerdown",F,!0),e.el.addEventListener("pointerup",L,!0)};function $(){i&&i.remove();let{nextEl:I,prevEl:j}=e.navigation?e.navigation:{};I=o(I),j=o(j),I&&I.forEach(Q=>Q.removeEventListener("keydown",_)),j&&j.forEach(Q=>Q.removeEventListener("keydown",_)),C()&&(Array.isArray(e.pagination.el)?e.pagination.el:[e.pagination.el]).forEach(H=>{H.removeEventListener("keydown",_)}),e.el.removeEventListener("focus",U,!0),e.el.removeEventListener("pointerdown",F,!0),e.el.removeEventListener("pointerup",L,!0)}n("beforeInit",()=>{i=Vt("span",e.params.a11y.notificationClass),i.setAttribute("aria-live","assertive"),i.setAttribute("aria-atomic","true")}),n("afterInit",()=>{e.params.a11y.enabled&&W()}),n("slidesLengthChange snapGridLengthChange slidesGridLengthChange",()=>{e.params.a11y.enabled&&k()}),n("fromEdge toEdge afterInit lock unlock",()=>{e.params.a11y.enabled&&v()}),n("paginationUpdate",()=>{e.params.a11y.enabled&&O()}),n("destroy",()=>{e.params.a11y.enabled&&$()})}function UH(t){let{swiper:e,extendParams:r,on:n}=t;r({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,s={};const o=h=>h.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),a=h=>{const g=je();let y;h?y=new URL(h):y=g.location;const b=y.pathname.slice(1).split("/").filter(T=>T!==""),E=b.length,_=b[E-2],v=b[E-1];return{key:_,value:v}},l=(h,g)=>{const y=je();if(!i||!e.params.history.enabled)return;let b;e.params.url?b=new URL(e.params.url):b=y.location;const E=e.slides[g];let _=o(E.getAttribute("data-history"));if(e.params.history.root.length>0){let T=e.params.history.root;T[T.length-1]==="/"&&(T=T.slice(0,T.length-1)),_=`${T}/${h?`${h}/`:""}${_}`}else b.pathname.includes(h)||(_=`${h?`${h}/`:""}${_}`);e.params.history.keepQuery&&(_+=b.search);const v=y.history.state;v&&v.value===_||(e.params.history.replaceState?y.history.replaceState({value:_},null,_):y.history.pushState({value:_},null,_))},u=(h,g,y)=>{if(g)for(let b=0,E=e.slides.length;b<E;b+=1){const _=e.slides[b];if(o(_.getAttribute("data-history"))===g){const T=e.getSlideIndex(_);e.slideTo(T,h,y)}}else e.slideTo(0,h,y)},c=()=>{s=a(e.params.url),u(e.params.speed,s.value,!1)},f=()=>{const h=je();if(e.params.history){if(!h.history||!h.history.pushState){e.params.history.enabled=!1,e.params.hashNavigation.enabled=!0;return}if(i=!0,s=a(e.params.url),!s.key&&!s.value){e.params.history.replaceState||h.addEventListener("popstate",c);return}u(0,s.value,e.params.runCallbacksOnInit),e.params.history.replaceState||h.addEventListener("popstate",c)}},d=()=>{const h=je();e.params.history.replaceState||h.removeEventListener("popstate",c)};n("init",()=>{e.params.history.enabled&&f()}),n("destroy",()=>{e.params.history.enabled&&d()}),n("transitionEnd _freeModeNoMomentumRelease",()=>{i&&l(e.params.history.key,e.activeIndex)}),n("slideChange",()=>{i&&e.params.cssMode&&l(e.params.history.key,e.activeIndex)})}function jH(t){let{swiper:e,extendParams:r,emit:n,on:i}=t,s=!1;const o=st(),a=je();r({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(d,h){if(e.virtual&&e.params.virtual.enabled){const g=e.slides.filter(b=>b.getAttribute("data-hash")===h)[0];return g?parseInt(g.getAttribute("data-swiper-slide-index"),10):0}return e.getSlideIndex(Qe(e.slidesEl,`.${e.params.slideClass}[data-hash="${h}"], swiper-slide[data-hash="${h}"]`)[0])}}});const l=()=>{n("hashChange");const d=o.location.hash.replace("#",""),h=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex],g=h?h.getAttribute("data-hash"):"";if(d!==g){const y=e.params.hashNavigation.getSlideIndex(e,d);if(typeof y>"u"||Number.isNaN(y))return;e.slideTo(y)}},u=()=>{if(!s||!e.params.hashNavigation.enabled)return;const d=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex],h=d?d.getAttribute("data-hash")||d.getAttribute("data-history"):"";e.params.hashNavigation.replaceState&&a.history&&a.history.replaceState?(a.history.replaceState(null,null,`#${h}`||""),n("hashSet")):(o.location.hash=h||"",n("hashSet"))},c=()=>{if(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)return;s=!0;const d=o.location.hash.replace("#","");if(d){const g=e.params.hashNavigation.getSlideIndex(e,d);e.slideTo(g||0,0,e.params.runCallbacksOnInit,!0)}e.params.hashNavigation.watchState&&a.addEventListener("hashchange",l)},f=()=>{e.params.hashNavigation.watchState&&a.removeEventListener("hashchange",l)};i("init",()=>{e.params.hashNavigation.enabled&&c()}),i("destroy",()=>{e.params.hashNavigation.enabled&&f()}),i("transitionEnd _freeModeNoMomentumRelease",()=>{s&&u()}),i("slideChange",()=>{s&&e.params.cssMode&&u()})}function zH(t){let{swiper:e,extendParams:r,on:n,emit:i,params:s}=t;e.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let o,a,l=s&&s.autoplay?s.autoplay.delay:3e3,u=s&&s.autoplay?s.autoplay.delay:3e3,c,f=new Date().getTime,d,h,g,y,b,E;function _(H){!e||e.destroyed||!e.wrapperEl||H.target===e.wrapperEl&&(e.wrapperEl.removeEventListener("transitionend",_),L())}const v=()=>{if(e.destroyed||!e.autoplay.running)return;e.autoplay.paused?d=!0:d&&(u=c,d=!1);const H=e.autoplay.paused?c:f+u-new Date().getTime();e.autoplay.timeLeft=H,i("autoplayTimeLeft",H,H/l),a=requestAnimationFrame(()=>{v()})},T=()=>{let H;return e.virtual&&e.params.virtual.enabled?H=e.slides.filter(X=>X.classList.contains("swiper-slide-active"))[0]:H=e.slides[e.activeIndex],H?parseInt(H.getAttribute("data-swiper-autoplay"),10):void 0},C=H=>{if(e.destroyed||!e.autoplay.running)return;cancelAnimationFrame(a),v();let K=typeof H>"u"?e.params.autoplay.delay:H;l=e.params.autoplay.delay,u=e.params.autoplay.delay;const X=T();!Number.isNaN(X)&&X>0&&typeof H>"u"&&(K=X,l=X,u=X),c=K;const Z=e.params.speed,ce=()=>{!e||e.destroyed||(e.params.autoplay.reverseDirection?!e.isBeginning||e.params.loop||e.params.rewind?(e.slidePrev(Z,!0,!0),i("autoplay")):e.params.autoplay.stopOnLastSlide||(e.slideTo(e.slides.length-1,Z,!0,!0),i("autoplay")):!e.isEnd||e.params.loop||e.params.rewind?(e.slideNext(Z,!0,!0),i("autoplay")):e.params.autoplay.stopOnLastSlide||(e.slideTo(0,Z,!0,!0),i("autoplay")),e.params.cssMode&&(f=new Date().getTime(),requestAnimationFrame(()=>{C()})))};return K>0?(clearTimeout(o),o=setTimeout(()=>{ce()},K)):requestAnimationFrame(()=>{ce()}),K},O=()=>{e.autoplay.running=!0,C(),i("autoplayStart")},D=()=>{e.autoplay.running=!1,clearTimeout(o),cancelAnimationFrame(a),i("autoplayStop")},F=(H,K)=>{if(e.destroyed||!e.autoplay.running)return;clearTimeout(o),H||(E=!0);const X=()=>{i("autoplayPause"),e.params.autoplay.waitForTransition?e.wrapperEl.addEventListener("transitionend",_):L()};if(e.autoplay.paused=!0,K){b&&(c=e.params.autoplay.delay),b=!1,X();return}c=(c||e.params.autoplay.delay)-(new Date().getTime()-f),!(e.isEnd&&c<0&&!e.params.loop)&&(c<0&&(c=0),X())},L=()=>{e.isEnd&&c<0&&!e.params.loop||e.destroyed||!e.autoplay.running||(f=new Date().getTime(),E?(E=!1,C(c)):C(),e.autoplay.paused=!1,i("autoplayResume"))},U=()=>{if(e.destroyed||!e.autoplay.running)return;const H=st();H.visibilityState==="hidden"&&(E=!0,F(!0)),H.visibilityState==="visible"&&L()},k=H=>{H.pointerType==="mouse"&&(E=!0,!(e.animating||e.autoplay.paused)&&F(!0))},W=H=>{H.pointerType==="mouse"&&e.autoplay.paused&&L()},$=()=>{e.params.autoplay.pauseOnMouseEnter&&(e.el.addEventListener("pointerenter",k),e.el.addEventListener("pointerleave",W))},I=()=>{e.el.removeEventListener("pointerenter",k),e.el.removeEventListener("pointerleave",W)},j=()=>{st().addEventListener("visibilitychange",U)},Q=()=>{st().removeEventListener("visibilitychange",U)};n("init",()=>{e.params.autoplay.enabled&&($(),j(),f=new Date().getTime(),O())}),n("destroy",()=>{I(),Q(),e.autoplay.running&&D()}),n("beforeTransitionStart",(H,K,X)=>{e.destroyed||!e.autoplay.running||(X||!e.params.autoplay.disableOnInteraction?F(!0,!0):D())}),n("sliderFirstMove",()=>{if(!(e.destroyed||!e.autoplay.running)){if(e.params.autoplay.disableOnInteraction){D();return}h=!0,g=!1,E=!1,y=setTimeout(()=>{E=!0,g=!0,F(!0)},200)}}),n("touchEnd",()=>{if(!(e.destroyed||!e.autoplay.running||!h)){if(clearTimeout(y),clearTimeout(o),e.params.autoplay.disableOnInteraction){g=!1,h=!1;return}g&&e.params.cssMode&&L(),g=!1,h=!1}}),n("slideChange",()=>{e.destroyed||!e.autoplay.running||(b=!0)}),Object.assign(e.autoplay,{start:O,stop:D,pause:F,resume:L})}function HH(t){let{swiper:e,extendParams:r,on:n}=t;r({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,s=!1;e.thumbs={swiper:null};function o(){const u=e.thumbs.swiper;if(!u||u.destroyed)return;const c=u.clickedIndex,f=u.clickedSlide;if(f&&f.classList.contains(e.params.thumbs.slideThumbActiveClass)||typeof c>"u"||c===null)return;let d;u.params.loop?d=parseInt(u.clickedSlide.getAttribute("data-swiper-slide-index"),10):d=c,e.params.loop?e.slideToLoop(d):e.slideTo(d)}function a(){const{thumbs:u}=e.params;if(i)return!1;i=!0;const c=e.constructor;if(u.swiper instanceof c)e.thumbs.swiper=u.swiper,Object.assign(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper.update();else if(Bs(u.swiper)){const f=Object.assign({},u.swiper);Object.assign(f,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper=new c(f),s=!0}return e.thumbs.swiper.el.classList.add(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",o),!0}function l(u){const c=e.thumbs.swiper;if(!c||c.destroyed)return;const f=c.params.slidesPerView==="auto"?c.slidesPerViewDynamic():c.params.slidesPerView;let d=1;const h=e.params.thumbs.slideThumbActiveClass;if(e.params.slidesPerView>1&&!e.params.centeredSlides&&(d=e.params.slidesPerView),e.params.thumbs.multipleActiveThumbs||(d=1),d=Math.floor(d),c.slides.forEach(b=>b.classList.remove(h)),c.params.loop||c.params.virtual&&c.params.virtual.enabled)for(let b=0;b<d;b+=1)Qe(c.slidesEl,`[data-swiper-slide-index="${e.realIndex+b}"]`).forEach(E=>{E.classList.add(h)});else for(let b=0;b<d;b+=1)c.slides[e.realIndex+b]&&c.slides[e.realIndex+b].classList.add(h);const g=e.params.thumbs.autoScrollOffset,y=g&&!c.params.loop;if(e.realIndex!==c.realIndex||y){const b=c.activeIndex;let E,_;if(c.params.loop){const v=c.slides.filter(T=>T.getAttribute("data-swiper-slide-index")===`${e.realIndex}`)[0];E=c.slides.indexOf(v),_=e.activeIndex>e.previousIndex?"next":"prev"}else E=e.realIndex,_=E>e.previousIndex?"next":"prev";y&&(E+=_==="next"?g:-1*g),c.visibleSlidesIndexes&&c.visibleSlidesIndexes.indexOf(E)<0&&(c.params.centeredSlides?E>b?E=E-Math.floor(f/2)+1:E=E+Math.floor(f/2)-1:E>b&&c.params.slidesPerGroup,c.slideTo(E,u?0:void 0))}}n("beforeInit",()=>{const{thumbs:u}=e.params;if(!(!u||!u.swiper))if(typeof u.swiper=="string"||u.swiper instanceof HTMLElement){const c=st(),f=()=>{const h=typeof u.swiper=="string"?c.querySelector(u.swiper):u.swiper;if(h&&h.swiper)u.swiper=h.swiper,a(),l(!0);else if(h){const g=y=>{u.swiper=y.detail[0],h.removeEventListener("init",g),a(),l(!0),u.swiper.update(),e.update()};h.addEventListener("init",g)}return h},d=()=>{if(e.destroyed)return;f()||requestAnimationFrame(d)};requestAnimationFrame(d)}else a(),l(!0)}),n("slideChange update resize observerUpdate",()=>{l()}),n("setTransition",(u,c)=>{const f=e.thumbs.swiper;!f||f.destroyed||f.setTransition(c)}),n("beforeDestroy",()=>{const u=e.thumbs.swiper;!u||u.destroyed||s&&u.destroy()}),Object.assign(e.thumbs,{init:a,update:l})}function WH(t){let{swiper:e,extendParams:r,emit:n,once:i}=t;r({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}});function s(){if(e.params.cssMode)return;const l=e.getTranslate();e.setTranslate(l),e.setTransition(0),e.touchEventsData.velocities.length=0,e.freeMode.onTouchEnd({currentPos:e.rtl?e.translate:-e.translate})}function o(){if(e.params.cssMode)return;const{touchEventsData:l,touches:u}=e;l.velocities.length===0&&l.velocities.push({position:u[e.isHorizontal()?"startX":"startY"],time:l.touchStartTime}),l.velocities.push({position:u[e.isHorizontal()?"currentX":"currentY"],time:Ct()})}function a(l){let{currentPos:u}=l;if(e.params.cssMode)return;const{params:c,wrapperEl:f,rtlTranslate:d,snapGrid:h,touchEventsData:g}=e,b=Ct()-g.touchStartTime;if(u<-e.minTranslate()){e.slideTo(e.activeIndex);return}if(u>-e.maxTranslate()){e.slides.length<h.length?e.slideTo(h.length-1):e.slideTo(e.slides.length-1);return}if(c.freeMode.momentum){if(g.velocities.length>1){const F=g.velocities.pop(),L=g.velocities.pop(),U=F.position-L.position,k=F.time-L.time;e.velocity=U/k,e.velocity/=2,Math.abs(e.velocity)<c.freeMode.minimumVelocity&&(e.velocity=0),(k>150||Ct()-F.time>300)&&(e.velocity=0)}else e.velocity=0;e.velocity*=c.freeMode.momentumVelocityRatio,g.velocities.length=0;let E=1e3*c.freeMode.momentumRatio;const _=e.velocity*E;let v=e.translate+_;d&&(v=-v);let T=!1,C;const O=Math.abs(e.velocity)*20*c.freeMode.momentumBounceRatio;let D;if(v<e.maxTranslate())c.freeMode.momentumBounce?(v+e.maxTranslate()<-O&&(v=e.maxTranslate()-O),C=e.maxTranslate(),T=!0,g.allowMomentumBounce=!0):v=e.maxTranslate(),c.loop&&c.centeredSlides&&(D=!0);else if(v>e.minTranslate())c.freeMode.momentumBounce?(v-e.minTranslate()>O&&(v=e.minTranslate()+O),C=e.minTranslate(),T=!0,g.allowMomentumBounce=!0):v=e.minTranslate(),c.loop&&c.centeredSlides&&(D=!0);else if(c.freeMode.sticky){let F;for(let L=0;L<h.length;L+=1)if(h[L]>-v){F=L;break}Math.abs(h[F]-v)<Math.abs(h[F-1]-v)||e.swipeDirection==="next"?v=h[F]:v=h[F-1],v=-v}if(D&&i("transitionEnd",()=>{e.loopFix()}),e.velocity!==0){if(d?E=Math.abs((-v-e.translate)/e.velocity):E=Math.abs((v-e.translate)/e.velocity),c.freeMode.sticky){const F=Math.abs((d?-v:v)-e.translate),L=e.slidesSizesGrid[e.activeIndex];F<L?E=c.speed:F<2*L?E=c.speed*1.5:E=c.speed*2.5}}else if(c.freeMode.sticky){e.slideToClosest();return}c.freeMode.momentumBounce&&T?(e.updateProgress(C),e.setTransition(E),e.setTranslate(v),e.transitionStart(!0,e.swipeDirection),e.animating=!0,Qs(f,()=>{!e||e.destroyed||!g.allowMomentumBounce||(n("momentumBounce"),e.setTransition(c.speed),setTimeout(()=>{e.setTranslate(C),Qs(f,()=>{!e||e.destroyed||e.transitionEnd()})},0))})):e.velocity?(n("_freeModeNoMomentumRelease"),e.updateProgress(v),e.setTransition(E),e.setTranslate(v),e.transitionStart(!0,e.swipeDirection),e.animating||(e.animating=!0,Qs(f,()=>{!e||e.destroyed||e.transitionEnd()}))):e.updateProgress(v),e.updateActiveIndex(),e.updateSlidesClasses()}else if(c.freeMode.sticky){e.slideToClosest();return}else c.freeMode&&n("_freeModeNoMomentumRelease");(!c.freeMode.momentum||b>=c.longSwipesMs)&&(e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses())}Object.assign(e,{freeMode:{onTouchStart:s,onTouchMove:o,onTouchEnd:a}})}function VH(t){let{swiper:e,extendParams:r,on:n}=t;r({grid:{rows:1,fill:"column"}});let i,s,o,a;const l=()=>{let g=e.params.spaceBetween;return typeof g=="string"&&g.indexOf("%")>=0?g=parseFloat(g.replace("%",""))/100*e.size:typeof g=="string"&&(g=parseFloat(g)),g},u=g=>{const{slidesPerView:y}=e.params,{rows:b,fill:E}=e.params.grid;o=Math.floor(g/b),Math.floor(g/b)===g/b?i=g:i=Math.ceil(g/b)*b,y!=="auto"&&E==="row"&&(i=Math.max(i,y*b)),s=i/b},c=(g,y,b,E)=>{const{slidesPerGroup:_}=e.params,v=l(),{rows:T,fill:C}=e.params.grid;let O,D,F;if(C==="row"&&_>1){const L=Math.floor(g/(_*T)),U=g-T*_*L,k=L===0?_:Math.min(Math.ceil((b-L*T*_)/T),_);F=Math.floor(U/k),D=U-F*k+L*_,O=D+F*i/T,y.style.order=O}else C==="column"?(D=Math.floor(g/T),F=g-D*T,(D>o||D===o&&F===T-1)&&(F+=1,F>=T&&(F=0,D+=1))):(F=Math.floor(g/s),D=g-F*s);y.row=F,y.column=D,y.style[E("margin-top")]=F!==0?v&&`${v}px`:""},f=(g,y,b)=>{const{centeredSlides:E,roundLengths:_}=e.params,v=l(),{rows:T}=e.params.grid;if(e.virtualSize=(g+v)*i,e.virtualSize=Math.ceil(e.virtualSize/T)-v,e.wrapperEl.style[b("width")]=`${e.virtualSize+v}px`,E){const C=[];for(let O=0;O<y.length;O+=1){let D=y[O];_&&(D=Math.floor(D)),y[O]<e.virtualSize+y[0]&&C.push(D)}y.splice(0,y.length),y.push(...C)}},d=()=>{a=e.params.grid&&e.params.grid.rows>1},h=()=>{const{params:g,el:y}=e,b=g.grid&&g.grid.rows>1;a&&!b?(y.classList.remove(`${g.containerModifierClass}grid`,`${g.containerModifierClass}grid-column`),o=1,e.emitContainerClasses()):!a&&b&&(y.classList.add(`${g.containerModifierClass}grid`),g.grid.fill==="column"&&y.classList.add(`${g.containerModifierClass}grid-column`),e.emitContainerClasses()),a=b};n("init",d),n("update",h),e.grid={initSlides:u,updateSlide:c,updateWrapperSize:f}}function qH(t){const e=this,{params:r,slidesEl:n}=e;r.loop&&e.loopDestroy();const i=s=>{if(typeof s=="string"){const o=document.createElement("div");o.innerHTML=s,n.append(o.children[0]),o.innerHTML=""}else n.append(s)};if(typeof t=="object"&&"length"in t)for(let s=0;s<t.length;s+=1)t[s]&&i(t[s]);else i(t);e.recalcSlides(),r.loop&&e.loopCreate(),(!r.observer||e.isElement)&&e.update()}function YH(t){const e=this,{params:r,activeIndex:n,slidesEl:i}=e;r.loop&&e.loopDestroy();let s=n+1;const o=a=>{if(typeof a=="string"){const l=document.createElement("div");l.innerHTML=a,i.prepend(l.children[0]),l.innerHTML=""}else i.prepend(a)};if(typeof t=="object"&&"length"in t){for(let a=0;a<t.length;a+=1)t[a]&&o(t[a]);s=n+t.length}else o(t);e.recalcSlides(),r.loop&&e.loopCreate(),(!r.observer||e.isElement)&&e.update(),e.slideTo(s,0,!1)}function KH(t,e){const r=this,{params:n,activeIndex:i,slidesEl:s}=r;let o=i;n.loop&&(o-=r.loopedSlides,r.loopDestroy(),r.recalcSlides());const a=r.slides.length;if(t<=0){r.prependSlide(e);return}if(t>=a){r.appendSlide(e);return}let l=o>t?o+1:o;const u=[];for(let c=a-1;c>=t;c-=1){const f=r.slides[c];f.remove(),u.unshift(f)}if(typeof e=="object"&&"length"in e){for(let c=0;c<e.length;c+=1)e[c]&&s.append(e[c]);l=o>t?o+e.length:o}else s.append(e);for(let c=0;c<u.length;c+=1)s.append(u[c]);r.recalcSlides(),n.loop&&r.loopCreate(),(!n.observer||r.isElement)&&r.update(),n.loop?r.slideTo(l+r.loopedSlides,0,!1):r.slideTo(l,0,!1)}function GH(t){const e=this,{params:r,activeIndex:n}=e;let i=n;r.loop&&(i-=e.loopedSlides,e.loopDestroy());let s=i,o;if(typeof t=="object"&&"length"in t){for(let a=0;a<t.length;a+=1)o=t[a],e.slides[o]&&e.slides[o].remove(),o<s&&(s-=1);s=Math.max(s,0)}else o=t,e.slides[o]&&e.slides[o].remove(),o<s&&(s-=1),s=Math.max(s,0);e.recalcSlides(),r.loop&&e.loopCreate(),(!r.observer||e.isElement)&&e.update(),r.loop?e.slideTo(s+e.loopedSlides,0,!1):e.slideTo(s,0,!1)}function XH(){const t=this,e=[];for(let r=0;r<t.slides.length;r+=1)e.push(r);t.removeSlide(e)}function QH(t){let{swiper:e}=t;Object.assign(e,{appendSlide:qH.bind(e),prependSlide:YH.bind(e),addSlide:KH.bind(e),removeSlide:GH.bind(e),removeAllSlides:XH.bind(e)})}function hs(t){const{effect:e,swiper:r,on:n,setTranslate:i,setTransition:s,overwriteParams:o,perspective:a,recreateShadows:l,getEffectParams:u}=t;n("beforeInit",()=>{if(r.params.effect!==e)return;r.classNames.push(`${r.params.containerModifierClass}${e}`),a&&a()&&r.classNames.push(`${r.params.containerModifierClass}3d`);const f=o?o():{};Object.assign(r.params,f),Object.assign(r.originalParams,f)}),n("setTranslate",()=>{r.params.effect===e&&i()}),n("setTransition",(f,d)=>{r.params.effect===e&&s(d)}),n("transitionEnd",()=>{if(r.params.effect===e&&l){if(!u||!u().slideShadows)return;r.slides.forEach(f=>{f.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(d=>d.remove())}),l()}});let c;n("virtualUpdate",()=>{r.params.effect===e&&(r.slides.length||(c=!0),requestAnimationFrame(()=>{c&&r.slides&&r.slides.length&&(i(),c=!1)}))})}function ko(t,e){const r=ui(e);return r!==e&&(r.style.backfaceVisibility="hidden",r.style["-webkit-backface-visibility"]="hidden"),r}function Tu(t){let{swiper:e,duration:r,transformElements:n,allSlides:i}=t;const{activeIndex:s}=e,o=a=>a.parentElement?a.parentElement:e.slides.filter(u=>u.shadowRoot&&u.shadowRoot===a.parentNode)[0];if(e.params.virtualTranslate&&r!==0){let a=!1,l;i?l=n:l=n.filter(u=>{const c=u.classList.contains("swiper-slide-transform")?o(u):u;return e.getSlideIndex(c)===s}),l.forEach(u=>{Qs(u,()=>{if(a||!e||e.destroyed)return;a=!0,e.animating=!1;const c=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});e.wrapperEl.dispatchEvent(c)})})}}function JH(t){let{swiper:e,extendParams:r,on:n}=t;r({fadeEffect:{crossFade:!1}}),hs({effect:"fade",swiper:e,on:n,setTranslate:()=>{const{slides:o}=e,a=e.params.fadeEffect;for(let l=0;l<o.length;l+=1){const u=e.slides[l];let f=-u.swiperSlideOffset;e.params.virtualTranslate||(f-=e.translate);let d=0;e.isHorizontal()||(d=f,f=0);const h=e.params.fadeEffect.crossFade?Math.max(1-Math.abs(u.progress),0):1+Math.min(Math.max(u.progress,-1),0),g=ko(a,u);g.style.opacity=h,g.style.transform=`translate3d(${f}px, ${d}px, 0px)`}},setTransition:o=>{const a=e.slides.map(l=>ui(l));a.forEach(l=>{l.style.transitionDuration=`${o}ms`}),Tu({swiper:e,duration:o,transformElements:a,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}function ZH(t){let{swiper:e,extendParams:r,on:n}=t;r({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(l,u,c)=>{let f=c?l.querySelector(".swiper-slide-shadow-left"):l.querySelector(".swiper-slide-shadow-top"),d=c?l.querySelector(".swiper-slide-shadow-right"):l.querySelector(".swiper-slide-shadow-bottom");f||(f=Vt("div",`swiper-slide-shadow-cube swiper-slide-shadow-${c?"left":"top"}`.split(" ")),l.append(f)),d||(d=Vt("div",`swiper-slide-shadow-cube swiper-slide-shadow-${c?"right":"bottom"}`.split(" ")),l.append(d)),f&&(f.style.opacity=Math.max(-u,0)),d&&(d.style.opacity=Math.max(u,0))};hs({effect:"cube",swiper:e,on:n,setTranslate:()=>{const{el:l,wrapperEl:u,slides:c,width:f,height:d,rtlTranslate:h,size:g,browser:y}=e,b=e.params.cubeEffect,E=e.isHorizontal(),_=e.virtual&&e.params.virtual.enabled;let v=0,T;b.shadow&&(E?(T=e.wrapperEl.querySelector(".swiper-cube-shadow"),T||(T=Vt("div","swiper-cube-shadow"),e.wrapperEl.append(T)),T.style.height=`${f}px`):(T=l.querySelector(".swiper-cube-shadow"),T||(T=Vt("div","swiper-cube-shadow"),l.append(T))));for(let O=0;O<c.length;O+=1){const D=c[O];let F=O;_&&(F=parseInt(D.getAttribute("data-swiper-slide-index"),10));let L=F*90,U=Math.floor(L/360);h&&(L=-L,U=Math.floor(-L/360));const k=Math.max(Math.min(D.progress,1),-1);let W=0,$=0,I=0;F%4===0?(W=-U*4*g,I=0):(F-1)%4===0?(W=0,I=-U*4*g):(F-2)%4===0?(W=g+U*4*g,I=g):(F-3)%4===0&&(W=-g,I=3*g+g*4*U),h&&(W=-W),E||($=W,W=0);const j=`rotateX(${E?0:-L}deg) rotateY(${E?L:0}deg) translate3d(${W}px, ${$}px, ${I}px)`;k<=1&&k>-1&&(v=F*90+k*90,h&&(v=-F*90-k*90)),D.style.transform=j,b.slideShadows&&i(D,k,E)}if(u.style.transformOrigin=`50% 50% -${g/2}px`,u.style["-webkit-transform-origin"]=`50% 50% -${g/2}px`,b.shadow)if(E)T.style.transform=`translate3d(0px, ${f/2+b.shadowOffset}px, ${-f/2}px) rotateX(90deg) rotateZ(0deg) scale(${b.shadowScale})`;else{const O=Math.abs(v)-Math.floor(Math.abs(v)/90)*90,D=1.5-(Math.sin(O*2*Math.PI/360)/2+Math.cos(O*2*Math.PI/360)/2),F=b.shadowScale,L=b.shadowScale/D,U=b.shadowOffset;T.style.transform=`scale3d(${F}, 1, ${L}) translate3d(0px, ${d/2+U}px, ${-d/2/L}px) rotateX(-90deg)`}const C=(y.isSafari||y.isWebView)&&y.needPerspectiveFix?-g/2:0;u.style.transform=`translate3d(0px,0,${C}px) rotateX(${e.isHorizontal()?0:v}deg) rotateY(${e.isHorizontal()?-v:0}deg)`,u.style.setProperty("--swiper-cube-translate-z",`${C}px`)},setTransition:l=>{const{el:u,slides:c}=e;if(c.forEach(f=>{f.style.transitionDuration=`${l}ms`,f.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(d=>{d.style.transitionDuration=`${l}ms`})}),e.params.cubeEffect.shadow&&!e.isHorizontal()){const f=u.querySelector(".swiper-cube-shadow");f&&(f.style.transitionDuration=`${l}ms`)}},recreateShadows:()=>{const l=e.isHorizontal();e.slides.forEach(u=>{const c=Math.max(Math.min(u.progress,1),-1);i(u,c,l)})},getEffectParams:()=>e.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})}function ts(t,e,r){const n=`swiper-slide-shadow${r?`-${r}`:""}${t?` swiper-slide-shadow-${t}`:""}`,i=ui(e);let s=i.querySelector(`.${n.split(" ").join(".")}`);return s||(s=Vt("div",n.split(" ")),i.append(s)),s}function eW(t){let{swiper:e,extendParams:r,on:n}=t;r({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(l,u)=>{let c=e.isHorizontal()?l.querySelector(".swiper-slide-shadow-left"):l.querySelector(".swiper-slide-shadow-top"),f=e.isHorizontal()?l.querySelector(".swiper-slide-shadow-right"):l.querySelector(".swiper-slide-shadow-bottom");c||(c=ts("flip",l,e.isHorizontal()?"left":"top")),f||(f=ts("flip",l,e.isHorizontal()?"right":"bottom")),c&&(c.style.opacity=Math.max(-u,0)),f&&(f.style.opacity=Math.max(u,0))};hs({effect:"flip",swiper:e,on:n,setTranslate:()=>{const{slides:l,rtlTranslate:u}=e,c=e.params.flipEffect;for(let f=0;f<l.length;f+=1){const d=l[f];let h=d.progress;e.params.flipEffect.limitRotation&&(h=Math.max(Math.min(d.progress,1),-1));const g=d.swiperSlideOffset;let b=-180*h,E=0,_=e.params.cssMode?-g-e.translate:-g,v=0;e.isHorizontal()?u&&(b=-b):(v=_,_=0,E=-b,b=0),d.style.zIndex=-Math.abs(Math.round(h))+l.length,c.slideShadows&&i(d,h);const T=`translate3d(${_}px, ${v}px, 0px) rotateX(${E}deg) rotateY(${b}deg)`,C=ko(c,d);C.style.transform=T}},setTransition:l=>{const u=e.slides.map(c=>ui(c));u.forEach(c=>{c.style.transitionDuration=`${l}ms`,c.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(f=>{f.style.transitionDuration=`${l}ms`})}),Tu({swiper:e,duration:l,transformElements:u})},recreateShadows:()=>{e.params.flipEffect,e.slides.forEach(l=>{let u=l.progress;e.params.flipEffect.limitRotation&&(u=Math.max(Math.min(l.progress,1),-1)),i(l,u)})},getEffectParams:()=>e.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}function tW(t){let{swiper:e,extendParams:r,on:n}=t;r({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),hs({effect:"coverflow",swiper:e,on:n,setTranslate:()=>{const{width:o,height:a,slides:l,slidesSizesGrid:u}=e,c=e.params.coverflowEffect,f=e.isHorizontal(),d=e.translate,h=f?-d+o/2:-d+a/2,g=f?c.rotate:-c.rotate,y=c.depth;for(let b=0,E=l.length;b<E;b+=1){const _=l[b],v=u[b],T=_.swiperSlideOffset,C=(h-T-v/2)/v,O=typeof c.modifier=="function"?c.modifier(C):C*c.modifier;let D=f?g*O:0,F=f?0:g*O,L=-y*Math.abs(O),U=c.stretch;typeof U=="string"&&U.indexOf("%")!==-1&&(U=parseFloat(c.stretch)/100*v);let k=f?0:U*O,W=f?U*O:0,$=1-(1-c.scale)*Math.abs(O);Math.abs(W)<.001&&(W=0),Math.abs(k)<.001&&(k=0),Math.abs(L)<.001&&(L=0),Math.abs(D)<.001&&(D=0),Math.abs(F)<.001&&(F=0),Math.abs($)<.001&&($=0);const I=`translate3d(${W}px,${k}px,${L}px)  rotateX(${F}deg) rotateY(${D}deg) scale(${$})`,j=ko(c,_);if(j.style.transform=I,_.style.zIndex=-Math.abs(Math.round(O))+1,c.slideShadows){let Q=f?_.querySelector(".swiper-slide-shadow-left"):_.querySelector(".swiper-slide-shadow-top"),H=f?_.querySelector(".swiper-slide-shadow-right"):_.querySelector(".swiper-slide-shadow-bottom");Q||(Q=ts("coverflow",_,f?"left":"top")),H||(H=ts("coverflow",_,f?"right":"bottom")),Q&&(Q.style.opacity=O>0?O:0),H&&(H.style.opacity=-O>0?-O:0)}}},setTransition:o=>{e.slides.map(l=>ui(l)).forEach(l=>{l.style.transitionDuration=`${o}ms`,l.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(u=>{u.style.transitionDuration=`${o}ms`})})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})}function rW(t){let{swiper:e,extendParams:r,on:n}=t;r({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=a=>typeof a=="string"?a:`${a}px`;hs({effect:"creative",swiper:e,on:n,setTranslate:()=>{const{slides:a,wrapperEl:l,slidesSizesGrid:u}=e,c=e.params.creativeEffect,{progressMultiplier:f}=c,d=e.params.centeredSlides;if(d){const h=u[0]/2-e.params.slidesOffsetBefore||0;l.style.transform=`translateX(calc(50% - ${h}px))`}for(let h=0;h<a.length;h+=1){const g=a[h],y=g.progress,b=Math.min(Math.max(g.progress,-c.limitProgress),c.limitProgress);let E=b;d||(E=Math.min(Math.max(g.originalProgress,-c.limitProgress),c.limitProgress));const _=g.swiperSlideOffset,v=[e.params.cssMode?-_-e.translate:-_,0,0],T=[0,0,0];let C=!1;e.isHorizontal()||(v[1]=v[0],v[0]=0);let O={translate:[0,0,0],rotate:[0,0,0],scale:1,opacity:1};b<0?(O=c.next,C=!0):b>0&&(O=c.prev,C=!0),v.forEach(($,I)=>{v[I]=`calc(${$}px + (${i(O.translate[I])} * ${Math.abs(b*f)}))`}),T.forEach(($,I)=>{T[I]=O.rotate[I]*Math.abs(b*f)}),g.style.zIndex=-Math.abs(Math.round(y))+a.length;const D=v.join(", "),F=`rotateX(${T[0]}deg) rotateY(${T[1]}deg) rotateZ(${T[2]}deg)`,L=E<0?`scale(${1+(1-O.scale)*E*f})`:`scale(${1-(1-O.scale)*E*f})`,U=E<0?1+(1-O.opacity)*E*f:1-(1-O.opacity)*E*f,k=`translate3d(${D}) ${F} ${L}`;if(C&&O.shadow||!C){let $=g.querySelector(".swiper-slide-shadow");if(!$&&O.shadow&&($=ts("creative",g)),$){const I=c.shadowPerProgress?b*(1/c.limitProgress):b;$.style.opacity=Math.min(Math.max(Math.abs(I),0),1)}}const W=ko(c,g);W.style.transform=k,W.style.opacity=U,O.origin&&(W.style.transformOrigin=O.origin)}},setTransition:a=>{const l=e.slides.map(u=>ui(u));l.forEach(u=>{u.style.transitionDuration=`${a}ms`,u.querySelectorAll(".swiper-slide-shadow").forEach(c=>{c.style.transitionDuration=`${a}ms`})}),Tu({swiper:e,duration:a,transformElements:l,allSlides:!0})},perspective:()=>e.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})}function nW(t){let{swiper:e,extendParams:r,on:n}=t;r({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),hs({effect:"cards",swiper:e,on:n,setTranslate:()=>{const{slides:o,activeIndex:a,rtlTranslate:l}=e,u=e.params.cardsEffect,{startTranslate:c,isTouched:f}=e.touchEventsData,d=l?-e.translate:e.translate;for(let h=0;h<o.length;h+=1){const g=o[h],y=g.progress,b=Math.min(Math.max(y,-4),4);let E=g.swiperSlideOffset;e.params.centeredSlides&&!e.params.cssMode&&(e.wrapperEl.style.transform=`translateX(${e.minTranslate()}px)`),e.params.centeredSlides&&e.params.cssMode&&(E-=o[0].swiperSlideOffset);let _=e.params.cssMode?-E-e.translate:-E,v=0;const T=-100*Math.abs(b);let C=1,O=-u.perSlideRotate*b,D=u.perSlideOffset-Math.abs(b)*.75;const F=e.virtual&&e.params.virtual.enabled?e.virtual.from+h:h,L=(F===a||F===a-1)&&b>0&&b<1&&(f||e.params.cssMode)&&d<c,U=(F===a||F===a+1)&&b<0&&b>-1&&(f||e.params.cssMode)&&d>c;if(L||U){const I=(1-Math.abs((Math.abs(b)-.5)/.5))**.5;O+=-28*b*I,C+=-.5*I,D+=96*I,v=`${-25*I*Math.abs(b)}%`}if(b<0?_=`calc(${_}px ${l?"-":"+"} (${D*Math.abs(b)}%))`:b>0?_=`calc(${_}px ${l?"-":"+"} (-${D*Math.abs(b)}%))`:_=`${_}px`,!e.isHorizontal()){const I=v;v=_,_=I}const k=b<0?`${1+(1-C)*b}`:`${1-(1-C)*b}`,W=`
+        translate3d(${_}, ${v}, ${T}px)
+        rotateZ(${u.rotate?l?-O:O:0}deg)
+        scale(${k})
+      `;if(u.slideShadows){let I=g.querySelector(".swiper-slide-shadow");I||(I=ts("cards",g)),I&&(I.style.opacity=Math.min(Math.max((Math.abs(b)-.5)/.5,0),1))}g.style.zIndex=-Math.abs(Math.round(y))+o.length;const $=ko(u,g);$.style.transform=W}},setTransition:o=>{const a=e.slides.map(l=>ui(l));a.forEach(l=>{l.style.transitionDuration=`${o}ms`,l.querySelectorAll(".swiper-slide-shadow").forEach(u=>{u.style.transitionDuration=`${o}ms`})}),Tu({swiper:e,duration:o,transformElements:a})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})}const iW=[OH,PH,RH,LH,NH,$H,kH,DH,BH,FH,UH,jH,zH,HH,WH,VH,QH,JH,ZH,eW,tW,rW,nW];_t.use(iW);const Au=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopedSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideNextClass","slidePrevClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function rs(t){return typeof t=="object"&&t!==null&&t.constructor&&Object.prototype.toString.call(t).slice(8,-1)==="Object"&&!t.__swiper__}function wl(t,e){const r=["__proto__","constructor","prototype"];Object.keys(e).filter(n=>r.indexOf(n)<0).forEach(n=>{typeof t[n]>"u"?t[n]=e[n]:rs(e[n])&&rs(t[n])&&Object.keys(e[n]).length>0?e[n].__swiper__?t[n]=e[n]:wl(t[n],e[n]):t[n]=e[n]})}function sW(t){return t===void 0&&(t={}),t.navigation&&typeof t.navigation.nextEl>"u"&&typeof t.navigation.prevEl>"u"}function oW(t){return t===void 0&&(t={}),t.pagination&&typeof t.pagination.el>"u"}function aW(t){return t===void 0&&(t={}),t.scrollbar&&typeof t.scrollbar.el>"u"}function Na(t){return t===void 0&&(t=""),t.replace(/-[a-z]/g,e=>e.toUpperCase().replace("-",""))}function lW(t){let{swiper:e,slides:r,passedParams:n,changedParams:i,nextEl:s,prevEl:o,scrollbarEl:a,paginationEl:l}=t;const u=i.filter(L=>L!=="children"&&L!=="direction"&&L!=="wrapperClass"),{params:c,pagination:f,navigation:d,scrollbar:h,virtual:g,thumbs:y}=e;let b,E,_,v,T,C,O,D;i.includes("thumbs")&&n.thumbs&&n.thumbs.swiper&&c.thumbs&&!c.thumbs.swiper&&(b=!0),i.includes("controller")&&n.controller&&n.controller.control&&c.controller&&!c.controller.control&&(E=!0),i.includes("pagination")&&n.pagination&&(n.pagination.el||l)&&(c.pagination||c.pagination===!1)&&f&&!f.el&&(_=!0),i.includes("scrollbar")&&n.scrollbar&&(n.scrollbar.el||a)&&(c.scrollbar||c.scrollbar===!1)&&h&&!h.el&&(v=!0),i.includes("navigation")&&n.navigation&&(n.navigation.prevEl||o)&&(n.navigation.nextEl||s)&&(c.navigation||c.navigation===!1)&&d&&!d.prevEl&&!d.nextEl&&(T=!0);const F=L=>{e[L]&&(e[L].destroy(),L==="navigation"?(e.isElement&&(e[L].prevEl.remove(),e[L].nextEl.remove()),c[L].prevEl=void 0,c[L].nextEl=void 0,e[L].prevEl=void 0,e[L].nextEl=void 0):(e.isElement&&e[L].el.remove(),c[L].el=void 0,e[L].el=void 0))};i.includes("loop")&&e.isElement&&(c.loop&&!n.loop?C=!0:!c.loop&&n.loop?O=!0:D=!0),u.forEach(L=>{if(rs(c[L])&&rs(n[L]))wl(c[L],n[L]),(L==="navigation"||L==="pagination"||L==="scrollbar")&&"enabled"in n[L]&&!n[L].enabled&&F(L);else{const U=n[L];(U===!0||U===!1)&&(L==="navigation"||L==="pagination"||L==="scrollbar")?U===!1&&F(L):c[L]=n[L]}}),u.includes("controller")&&!E&&e.controller&&e.controller.control&&c.controller&&c.controller.control&&(e.controller.control=c.controller.control),i.includes("children")&&r&&g&&c.virtual.enabled&&(g.slides=r,g.update(!0)),i.includes("children")&&r&&c.loop&&(D=!0),b&&y.init()&&y.update(!0),E&&(e.controller.control=c.controller.control),_&&(e.isElement&&(!l||typeof l=="string")&&(l=document.createElement("div"),l.classList.add("swiper-pagination"),l.part.add("pagination"),e.el.appendChild(l)),l&&(c.pagination.el=l),f.init(),f.render(),f.update()),v&&(e.isElement&&(!a||typeof a=="string")&&(a=document.createElement("div"),a.classList.add("swiper-scrollbar"),a.part.add("scrollbar"),e.el.appendChild(a)),a&&(c.scrollbar.el=a),h.init(),h.updateSize(),h.setTranslate()),T&&(e.isElement&&((!s||typeof s=="string")&&(s=document.createElement("div"),s.classList.add("swiper-button-next"),s.innerHTML=e.hostEl.constructor.nextButtonSvg,s.part.add("button-next"),e.el.appendChild(s)),(!o||typeof o=="string")&&(o=document.createElement("div"),o.classList.add("swiper-button-prev"),o.innerHTML=e.hostEl.constructor.prevButtonSvg,o.part.add("button-prev"),e.el.appendChild(o))),s&&(c.navigation.nextEl=s),o&&(c.navigation.prevEl=o),d.init(),d.update()),i.includes("allowSlideNext")&&(e.allowSlideNext=n.allowSlideNext),i.includes("allowSlidePrev")&&(e.allowSlidePrev=n.allowSlidePrev),i.includes("direction")&&e.changeDirection(n.direction,!1),(C||D)&&e.loopDestroy(),(O||D)&&e.loopCreate(),e.update()}const Xy=t=>{if(parseFloat(t)===Number(t))return Number(t);if(t==="true"||t==="")return!0;if(t==="false")return!1;if(t==="null")return null;if(t!=="undefined"){if(typeof t=="string"&&t.includes("{")&&t.includes("}")&&t.includes('"')){let e;try{e=JSON.parse(t)}catch{e=t}return e}return t}},Qy=["a11y","autoplay","controller","cards-effect","coverflow-effect","creative-effect","cube-effect","fade-effect","flip-effect","free-mode","grid","hash-navigation","history","keyboard","mousewheel","navigation","pagination","parallax","scrollbar","thumbs","virtual","zoom"];function Jy(t,e,r){const n={},i={};wl(n,ad);const s=[...Au,"on"],o=s.map(l=>l.replace(/_/,""));s.forEach(l=>{l=l.replace("_",""),typeof t[l]<"u"&&(i[l]=t[l])});const a=[...t.attributes];return typeof e=="string"&&typeof r<"u"&&a.push({name:e,value:rs(r)?{...r}:r}),a.forEach(l=>{const u=Qy.filter(c=>l.name.indexOf(`${c}-`)===0)[0];if(u){const c=Na(u),f=Na(l.name.split(`${u}-`)[1]);typeof i[c]>"u"&&(i[c]={}),i[c]===!0&&(i[c]={enabled:!0}),i[c][f]=Xy(l.value)}else{const c=Na(l.name);if(!o.includes(c))return;const f=Xy(l.value);i[c]&&Qy.includes(l.name)&&!rs(f)?(i[c].constructor!==Object&&(i[c]={}),i[c].enabled=!!f):i[c]=f}}),wl(n,i),n.navigation?n.navigation={prevEl:".swiper-button-prev",nextEl:".swiper-button-next",...n.navigation!==!0?n.navigation:{}}:n.navigation===!1&&delete n.navigation,n.scrollbar?n.scrollbar={el:".swiper-scrollbar",...n.scrollbar!==!0?n.scrollbar:{}}:n.scrollbar===!1&&delete n.scrollbar,n.pagination?n.pagination={el:".swiper-pagination",...n.pagination!==!0?n.pagination:{}}:n.pagination===!1&&delete n.pagination,{params:n,passedParams:i}}const uW=":host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;overflow:clip;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}",cW="::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}";class fW{}const SE=typeof window>"u"||typeof HTMLElement>"u"?fW:HTMLElement,Zy=`<svg width="11" height="20" viewBox="0 0 11 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.38296 20.0762C0.111788 19.805 0.111788 19.3654 0.38296 19.0942L9.19758 10.2796L0.38296 1.46497C0.111788 1.19379 0.111788 0.754138 0.38296 0.482966C0.654131 0.211794 1.09379 0.211794 1.36496 0.482966L10.4341 9.55214C10.8359 9.9539 10.8359 10.6053 10.4341 11.007L1.36496 20.0762C1.09379 20.3474 0.654131 20.3474 0.38296 20.0762Z" fill="currentColor"/></svg>
+    `,xE=(t,e)=>{if(typeof CSSStyleSheet<"u"&&t.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(e),t.adoptedStyleSheets=[r]}else{const r=document.createElement("style");r.rel="stylesheet",r.textContent=e,t.appendChild(r)}};class TE extends SE{constructor(){super(),this.attachShadow({mode:"open"})}static get nextButtonSvg(){return Zy}static get prevButtonSvg(){return Zy.replace("/></svg>",' transform-origin="center" transform="rotate(180)"/></svg>')}cssStyles(){return[uW,...this.injectStyles&&Array.isArray(this.injectStyles)?this.injectStyles:[]].join(`
+`)}cssLinks(){return this.injectStylesUrls||[]}calcSlideSlots(){const e=this.slideSlots||0,r=[...this.querySelectorAll("[slot^=slide-]")].map(n=>parseInt(n.getAttribute("slot").split("slide-")[1],10));if(this.slideSlots=r.length?Math.max(...r)+1:0,!!this.rendered){if(this.slideSlots>e)for(let n=e;n<this.slideSlots;n+=1){const i=document.createElement("swiper-slide");i.setAttribute("part",`slide slide-${n+1}`);const s=document.createElement("slot");s.setAttribute("name",`slide-${n+1}`),i.appendChild(s),this.shadowRoot.querySelector(".swiper-wrapper").appendChild(i)}else if(this.slideSlots<e){const n=this.swiper.slides;for(let i=n.length-1;i>=0;i-=1)i>this.slideSlots&&n[i].remove()}}}render(){if(this.rendered)return;this.calcSlideSlots();let e=this.cssStyles();this.slideSlots>0&&(e=e.replace(/::slotted\(([a-z-0-9.]*)\)/g,"$1")),e.length&&xE(this.shadowRoot,e),this.cssLinks().forEach(n=>{if(this.shadowRoot.querySelector(`link[href="${n}"]`))return;const s=document.createElement("link");s.rel="stylesheet",s.href=n,this.shadowRoot.appendChild(s)});const r=document.createElement("div");r.classList.add("swiper"),r.part="container",r.innerHTML=`
+      <slot name="container-start"></slot>
+      <div class="swiper-wrapper" part="wrapper">
+        <slot></slot>
+        ${Array.from({length:this.slideSlots}).map((n,i)=>`
+        <swiper-slide part="slide slide-${i}">
+          <slot name="slide-${i}"></slot>
+        </swiper-slide>
+        `).join("")}
+      </div>
+      <slot name="container-end"></slot>
+      ${sW(this.passedParams)?`
+        <div part="button-prev" class="swiper-button-prev">${this.constructor.prevButtonSvg}</div>
+        <div part="button-next" class="swiper-button-next">${this.constructor.nextButtonSvg}</div>
+      `:""}
+      ${oW(this.passedParams)?`
+        <div part="pagination" class="swiper-pagination"></div>
+      `:""}
+      ${aW(this.passedParams)?`
+        <div part="scrollbar" class="swiper-scrollbar"></div>
+      `:""}
+    `,this.shadowRoot.appendChild(r),this.rendered=!0}initialize(){var e=this;if(this.initialized)return;this.initialized=!0;const{params:r,passedParams:n}=Jy(this);this.swiperParams=r,this.passedParams=n,delete this.swiperParams.init,this.render(),this.swiper=new _t(this.shadowRoot.querySelector(".swiper"),{...r.virtual?{}:{observer:!0,observeSlideChildren:this.slideSlots>0},...r,touchEventsTarget:"container",onAny:function(i){i==="observerUpdate"&&e.calcSlideSlots();const s=r.eventsPrefix?`${r.eventsPrefix}${i.toLowerCase()}`:i.toLowerCase();for(var o=arguments.length,a=new Array(o>1?o-1:0),l=1;l<o;l++)a[l-1]=arguments[l];const u=new CustomEvent(s,{detail:a,bubbles:i!=="hashChange",cancelable:!0});e.dispatchEvent(u)}})}connectedCallback(){this.initialized&&this.nested&&this.closest("swiper-slide")&&this.closest("swiper-slide").swiperLoopMoveDOM||this.init===!1||this.getAttribute("init")==="false"||this.initialize()}disconnectedCallback(){this.nested&&this.closest("swiper-slide")&&this.closest("swiper-slide").swiperLoopMoveDOM||(this.swiper&&this.swiper.destroy&&this.swiper.destroy(),this.initialized=!1)}updateSwiperOnPropChange(e,r){const{params:n,passedParams:i}=Jy(this,e,r);this.passedParams=i,this.swiperParams=n,lW({swiper:this.swiper,passedParams:this.passedParams,changedParams:[Na(e)],...e==="navigation"&&i[e]?{prevEl:".swiper-button-prev",nextEl:".swiper-button-next"}:{},...e==="pagination"&&i[e]?{paginationEl:".swiper-pagination"}:{},...e==="scrollbar"&&i[e]?{scrollbarEl:".swiper-scrollbar"}:{}})}attributeChangedCallback(e,r,n){this.initialized&&(r==="true"&&n===null&&(n=!1),this.updateSwiperOnPropChange(e,n))}static get observedAttributes(){return Au.filter(r=>r.includes("_")).map(r=>r.replace(/[A-Z]/g,n=>`-${n}`).replace("_","").toLowerCase())}}Au.forEach(t=>{t!=="init"&&(t=t.replace("_",""),Object.defineProperty(TE.prototype,t,{configurable:!0,get(){return(this.passedParams||{})[t]},set(e){this.passedParams||(this.passedParams={}),this.passedParams[t]=e,this.initialized&&this.updateSwiperOnPropChange(t,e)}}))});class dW extends SE{constructor(){super(),this.attachShadow({mode:"open"})}render(){const e=this.lazy||this.getAttribute("lazy")===""||this.getAttribute("lazy")==="true";if(xE(this.shadowRoot,cW),this.shadowRoot.appendChild(document.createElement("slot")),e){const r=document.createElement("div");r.classList.add("swiper-lazy-preloader"),r.part.add("preloader"),this.shadowRoot.appendChild(r)}}initialize(){this.render()}connectedCallback(){this.initialize()}}const GW=()=>{typeof window>"u"||(window.customElements.get("swiper-container")||window.customElements.define("swiper-container",TE),window.customElements.get("swiper-slide")||window.customElements.define("swiper-slide",dW))};typeof window<"u"&&(window.SwiperElementRegisterParams=t=>{Au.push(...t)});export{jW as A,qW as B,HW as C,UW as D,dv as E,Ft as F,WW as G,l2 as H,dd as I,FW as J,US as K,gW as L,mW as M,BW as N,wW as O,AW as P,MW as Q,CW as R,Zi as S,XB as T,_W as U,xW as V,IW as W,GW as X,pW as a,VW as b,C1 as c,bW as d,SW as e,Vw as f,zw as g,TW as h,EW as i,CS as j,y1 as k,Kt as l,Z1 as m,hd as n,Uw as o,YW as p,vW as q,_d as r,zW as s,hW as t,yS as u,LD as v,yW as w,xD as x,KW as y,DW as z};
diff --git a/packages/modules/web_themes/colors/web/favicon.ico b/packages/modules/web_themes/colors/web/favicon.ico
new file mode 100644
index 0000000000..df36fcfb72
Binary files /dev/null and b/packages/modules/web_themes/colors/web/favicon.ico differ
diff --git a/packages/modules/web_themes/colors/web/index.html b/packages/modules/web_themes/colors/web/index.html
new file mode 100644
index 0000000000..c098eb2c42
--- /dev/null
+++ b/packages/modules/web_themes/colors/web/index.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html lang="en" class="theme-gray shcolors-normal">
+	<head>
+		<meta charset="UTF-8" />
+		<link rel="icon" href="/openWB/web/themes/colors/favicon.ico" />
+		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+		<title>WBColortheme 2</title>
+		<script type="module" crossorigin src="/openWB/web/themes/colors/assets/index-96f26804.js"></script>
+		<link rel="modulepreload" crossorigin href="/openWB/web/themes/colors/assets/vendor-73164592.js">
+		<link rel="stylesheet" href="/openWB/web/themes/colors/assets/index-061c8b93.css">
+	</head>
+	<body>
+		<div id="app"></div>
+		
+	</body>
+</html>
diff --git a/packages/modules/web_themes/standard_legacy/__init__.py b/packages/modules/web_themes/standard_legacy/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/modules/web_themes/standard_legacy/config.py b/packages/modules/web_themes/standard_legacy/config.py
new file mode 100644
index 0000000000..96b22dabba
--- /dev/null
+++ b/packages/modules/web_themes/standard_legacy/config.py
@@ -0,0 +1,23 @@
+from helpermodules.auto_str import auto_str
+
+from modules.common.abstract_device import DeviceDescriptor
+
+
+@auto_str
+class StandardLegacyWebThemeConfiguration:
+    def __init__(self) -> None:
+        pass
+
+
+@auto_str
+class StandardLegacyWebTheme:
+    def __init__(self,
+                 name: str = "Standard (alt)",
+                 type: str = "standard_legacy",
+                 configuration: StandardLegacyWebThemeConfiguration = None) -> None:
+        self.name = name
+        self.type = type
+        self.configuration = configuration or StandardLegacyWebThemeConfiguration()
+
+
+theme_descriptor = DeviceDescriptor(configuration_factory=StandardLegacyWebTheme)
diff --git a/packages/modules/web_themes/standard_legacy/preview.png b/packages/modules/web_themes/standard_legacy/preview.png
new file mode 100644
index 0000000000..47ce94ef8d
Binary files /dev/null and b/packages/modules/web_themes/standard_legacy/preview.png differ
diff --git a/web/css/bootstrap-4.4.1/bootstrap.min.css b/packages/modules/web_themes/standard_legacy/web/css/bootstrap-4.4.1/bootstrap.min.css
similarity index 100%
rename from web/css/bootstrap-4.4.1/bootstrap.min.css
rename to packages/modules/web_themes/standard_legacy/web/css/bootstrap-4.4.1/bootstrap.min.css
diff --git a/web/css/bootstrap-4.4.1/bootstrap.min.css.map b/packages/modules/web_themes/standard_legacy/web/css/bootstrap-4.4.1/bootstrap.min.css.map
similarity index 100%
rename from web/css/bootstrap-4.4.1/bootstrap.min.css.map
rename to packages/modules/web_themes/standard_legacy/web/css/bootstrap-4.4.1/bootstrap.min.css.map
diff --git a/web/css/bootstrap4-toggle/bootstrap4-toggle.min.css b/packages/modules/web_themes/standard_legacy/web/css/bootstrap4-toggle/bootstrap4-toggle.min.css
similarity index 100%
rename from web/css/bootstrap4-toggle/bootstrap4-toggle.min.css
rename to packages/modules/web_themes/standard_legacy/web/css/bootstrap4-toggle/bootstrap4-toggle.min.css
diff --git a/web/css/normalize-8.0.1.css b/packages/modules/web_themes/standard_legacy/web/css/normalize-8.0.1.css
similarity index 100%
rename from web/css/normalize-8.0.1.css
rename to packages/modules/web_themes/standard_legacy/web/css/normalize-8.0.1.css
diff --git a/web/fonts/font-awesome-5.8.2/LICENSE.txt b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/LICENSE.txt
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/LICENSE.txt
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/LICENSE.txt
diff --git a/web/fonts/font-awesome-5.8.2/css/all.css b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/css/all.css
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/css/all.css
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/css/all.css
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.eot b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.eot
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.eot
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.eot
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.svg b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.svg
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.svg
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.svg
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.ttf b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.ttf
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.ttf
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.ttf
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.woff b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.woff
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.woff
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.woff
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.woff2 b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.woff2
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.woff2
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-brands-400.woff2
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.eot b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.eot
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.eot
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.eot
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.svg b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.svg
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.svg
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.svg
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.ttf b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.ttf
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.ttf
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.ttf
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.woff b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.woff
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.woff
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.woff
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.woff2 b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.woff2
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.woff2
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-regular-400.woff2
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.eot b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.eot
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.eot
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.eot
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.svg b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.svg
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.svg
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.svg
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.ttf b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.ttf
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.ttf
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.ttf
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.woff b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.woff
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.woff
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.woff
diff --git a/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.woff2 b/packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.woff2
similarity index 100%
rename from web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.woff2
rename to packages/modules/web_themes/standard_legacy/web/fonts/font-awesome-5.8.2/webfonts/fa-solid-900.woff2
diff --git a/web/themes/dark/helperFunctions.js b/packages/modules/web_themes/standard_legacy/web/helperFunctions.js
similarity index 100%
rename from web/themes/dark/helperFunctions.js
rename to packages/modules/web_themes/standard_legacy/web/helperFunctions.js
diff --git a/web/img/favicons/android-chrome-36x36.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/android-chrome-36x36.png
similarity index 100%
rename from web/img/favicons/android-chrome-36x36.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/android-chrome-36x36.png
diff --git a/web/img/favicons/android-chrome-48x48.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/android-chrome-48x48.png
similarity index 100%
rename from web/img/favicons/android-chrome-48x48.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/android-chrome-48x48.png
diff --git a/web/img/favicons/android-icon-144x144.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-144x144.png
similarity index 100%
rename from web/img/favicons/android-icon-144x144.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-144x144.png
diff --git a/web/img/favicons/android-icon-192x192.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-192x192.png
similarity index 100%
rename from web/img/favicons/android-icon-192x192.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-192x192.png
diff --git a/web/img/favicons/android-icon-36x36.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-36x36.png
similarity index 100%
rename from web/img/favicons/android-icon-36x36.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-36x36.png
diff --git a/web/img/favicons/android-icon-48x48.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-48x48.png
similarity index 100%
rename from web/img/favicons/android-icon-48x48.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-48x48.png
diff --git a/web/img/favicons/android-icon-72x72.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-72x72.png
similarity index 100%
rename from web/img/favicons/android-icon-72x72.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-72x72.png
diff --git a/web/img/favicons/android-icon-96x96.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-96x96.png
similarity index 100%
rename from web/img/favicons/android-icon-96x96.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/android-icon-96x96.png
diff --git a/web/img/favicons/apple-icon-114x114.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-114x114.png
similarity index 100%
rename from web/img/favicons/apple-icon-114x114.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-114x114.png
diff --git a/web/img/favicons/apple-icon-120x120.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-120x120.png
similarity index 100%
rename from web/img/favicons/apple-icon-120x120.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-120x120.png
diff --git a/web/img/favicons/apple-icon-144x144.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-144x144.png
similarity index 100%
rename from web/img/favicons/apple-icon-144x144.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-144x144.png
diff --git a/web/img/favicons/apple-icon-152x152.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-152x152.png
similarity index 100%
rename from web/img/favicons/apple-icon-152x152.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-152x152.png
diff --git a/web/img/favicons/apple-icon-180x180.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-180x180.png
similarity index 100%
rename from web/img/favicons/apple-icon-180x180.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-180x180.png
diff --git a/web/img/favicons/apple-icon-57x57.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-57x57.png
similarity index 100%
rename from web/img/favicons/apple-icon-57x57.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-57x57.png
diff --git a/web/img/favicons/apple-icon-60x60.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-60x60.png
similarity index 100%
rename from web/img/favicons/apple-icon-60x60.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-60x60.png
diff --git a/web/img/favicons/apple-icon-72x72.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-72x72.png
similarity index 100%
rename from web/img/favicons/apple-icon-72x72.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-72x72.png
diff --git a/web/img/favicons/apple-icon-76x76.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-76x76.png
similarity index 100%
rename from web/img/favicons/apple-icon-76x76.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-76x76.png
diff --git a/web/img/favicons/apple-icon-precomposed.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-precomposed.png
similarity index 100%
rename from web/img/favicons/apple-icon-precomposed.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon-precomposed.png
diff --git a/web/img/favicons/apple-icon.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon.png
similarity index 100%
rename from web/img/favicons/apple-icon.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-icon.png
diff --git a/web/img/favicons/apple-touch-icon-57x57.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-touch-icon-57x57.png
similarity index 100%
rename from web/img/favicons/apple-touch-icon-57x57.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-touch-icon-57x57.png
diff --git a/web/img/favicons/apple-touch-icon-60x60.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-touch-icon-60x60.png
similarity index 100%
rename from web/img/favicons/apple-touch-icon-60x60.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-touch-icon-60x60.png
diff --git a/web/img/favicons/apple-touch-icon-precomposed.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-touch-icon-precomposed.png
similarity index 100%
rename from web/img/favicons/apple-touch-icon-precomposed.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-touch-icon-precomposed.png
diff --git a/web/img/favicons/apple-touch-icon.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/apple-touch-icon.png
similarity index 100%
rename from web/img/favicons/apple-touch-icon.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/apple-touch-icon.png
diff --git a/web/img/favicons/browserconfig.xml b/packages/modules/web_themes/standard_legacy/web/img/favicons/browserconfig.xml
similarity index 100%
rename from web/img/favicons/browserconfig.xml
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/browserconfig.xml
diff --git a/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-16x16.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-16x16.png
new file mode 100644
index 0000000000..b46393b945
Binary files /dev/null and b/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-16x16.png differ
diff --git a/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-32x32.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-32x32.png
new file mode 100644
index 0000000000..9855469c9f
Binary files /dev/null and b/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-32x32.png differ
diff --git a/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-96x96.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-96x96.png
new file mode 100644
index 0000000000..9a861a47b3
Binary files /dev/null and b/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon-96x96.png differ
diff --git a/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon.ico b/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon.ico
new file mode 100644
index 0000000000..56157fb682
Binary files /dev/null and b/packages/modules/web_themes/standard_legacy/web/img/favicons/favicon.ico differ
diff --git a/web/img/favicons/ms-icon-144x144.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/ms-icon-144x144.png
similarity index 100%
rename from web/img/favicons/ms-icon-144x144.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/ms-icon-144x144.png
diff --git a/web/img/favicons/ms-icon-150x150.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/ms-icon-150x150.png
similarity index 100%
rename from web/img/favicons/ms-icon-150x150.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/ms-icon-150x150.png
diff --git a/web/img/favicons/ms-icon-310x310.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/ms-icon-310x310.png
similarity index 100%
rename from web/img/favicons/ms-icon-310x310.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/ms-icon-310x310.png
diff --git a/web/img/favicons/ms-icon-70x70.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/ms-icon-70x70.png
similarity index 100%
rename from web/img/favicons/ms-icon-70x70.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/ms-icon-70x70.png
diff --git a/web/img/favicons/preloader-image-transparent.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/preloader-image-transparent.png
similarity index 100%
rename from web/img/favicons/preloader-image-transparent.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/preloader-image-transparent.png
diff --git a/web/img/favicons/preloader-image.png b/packages/modules/web_themes/standard_legacy/web/img/favicons/preloader-image.png
similarity index 100%
rename from web/img/favicons/preloader-image.png
rename to packages/modules/web_themes/standard_legacy/web/img/favicons/preloader-image.png
diff --git a/web/img/icons/electric-tower.svg b/packages/modules/web_themes/standard_legacy/web/img/icons/electric-tower.svg
similarity index 100%
rename from web/img/icons/electric-tower.svg
rename to packages/modules/web_themes/standard_legacy/web/img/icons/electric-tower.svg
diff --git a/packages/modules/web_themes/standard_legacy/web/img/openWB_logo_dark.png b/packages/modules/web_themes/standard_legacy/web/img/openWB_logo_dark.png
new file mode 100644
index 0000000000..a9af7f0eb0
Binary files /dev/null and b/packages/modules/web_themes/standard_legacy/web/img/openWB_logo_dark.png differ
diff --git a/packages/modules/web_themes/standard_legacy/web/img/openWB_logo_light.png b/packages/modules/web_themes/standard_legacy/web/img/openWB_logo_light.png
new file mode 100644
index 0000000000..751fdc2b39
Binary files /dev/null and b/packages/modules/web_themes/standard_legacy/web/img/openWB_logo_light.png differ
diff --git a/web/themes/dark/theme.html b/packages/modules/web_themes/standard_legacy/web/index.html
similarity index 98%
rename from web/themes/dark/theme.html
rename to packages/modules/web_themes/standard_legacy/web/index.html
index 301b79734d..f4adab9f7d 100644
--- a/web/themes/dark/theme.html
+++ b/packages/modules/web_themes/standard_legacy/web/index.html
@@ -13,7 +13,7 @@
 	<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
 	<meta name="apple-mobile-web-app-title" content="openWB">
 	<meta name="apple-mobile-web-app-status-bar-style" content="default">
-	<link rel="apple-touch-startup-image" href="/openWB/web/img/favicons/splash1125x2436w.png" />
+	<link rel="apple-touch-startup-image" href="/img/favicons/splash1125x2436w.png" />
 	<link rel="apple-touch-startup-image" media="(width: 375px) and (height: 812px) and (-webkit-device-pixel-ratio: 3)"
 		href="img/favicons/splash1125x2436w.png">
 	<meta name="apple-mobile-web-app-title" content="openWB">
@@ -96,7 +96,7 @@
 		}
 		var themeCookie = getCookie('openWBTheme');
 		// include special Theme style
-		$('head').append('<link rel="stylesheet" href="themes/' + themeCookie + '/style.css?v=20221122">');
+		$('head').append('<link rel="stylesheet" href="style.css?v=20221122">');
 	</script>
 </head>
 
@@ -918,7 +918,7 @@ <h4 class="modal-title text-dark">SoC-Eingabe - Fahrzeug <span
 
 		// load navbar, be careful: it loads asynchronous
 		$.get(
-			{ url: "themes/navbar.html", cache: false },
+			{ url: "navbar.html", cache: false },
 			function (data) {
 				$("#nav-placeholder").replaceWith(data);
 			}
@@ -1053,15 +1053,15 @@ <h4 class="modal-title text-dark">SoC-Eingabe - Fahrzeug <span
 				// load mqtt library
 				'js/mqttws31.js',
 				// some helper functions
-				'themes/dark/helperFunctions.js?ver=20221117',
+				'helperFunctions.js?ver=20221117',
 				// functions for processing messages
-				'themes/dark/processAllMqttMsg.js?ver=20221117',
+				'processAllMqttMsg.js?ver=20221117',
 				// respective Chart.js definition live
-				'themes/dark/livechart.js?ver=20221117',
+				'livechart.js?ver=20221117',
 				// respective Chart.js definition
 				// 'themes/dark/electricityPriceChart.js?ver=20221117',
 				// functions performing mqtt and start mqtt-service
-				'themes/dark/setupMqttServices.js?ver=20221117',
+				'setupMqttServices.js?ver=20221117',
 			];
 			scriptsToLoad.forEach(function (src) {
 				var script = document.createElement('script');
@@ -1158,14 +1158,14 @@ <h4 class="modal-title text-dark">SoC-Eingabe - Fahrzeug <span
 				event.stopPropagation();
 				var parentChargePoint = $(this).closest('[data-cp]');
 				var chargeTemplate = parseInt(parentChargePoint.data('charge-template'));
-				window.location.href = "settings/#/VehicleConfiguration/charge_template/" + chargeTemplate;
+				window.location.href = "../../settings/#/VehicleConfiguration/charge_template/" + chargeTemplate;
 			});
 
 			$('.container').on('click', '.time_charging-settings-link', function (event) {
 				event.stopPropagation();
 				var parentChargePoint = $(this).closest('[data-cp]');
 				var chargeTemplate = parseInt(parentChargePoint.data('charge-template'));
-				window.location.href = "settings/#/VehicleConfiguration/charge_template/" + chargeTemplate;
+				window.location.href = "../../settings/#/VehicleConfiguration/charge_template/" + chargeTemplate;
 			});
 
 			// $('.btn[value="Reset"]').click(function(event){
diff --git a/web/js/bootstrap-4.4.1/bootstrap.bundle.min.js b/packages/modules/web_themes/standard_legacy/web/js/bootstrap-4.4.1/bootstrap.bundle.min.js
similarity index 100%
rename from web/js/bootstrap-4.4.1/bootstrap.bundle.min.js
rename to packages/modules/web_themes/standard_legacy/web/js/bootstrap-4.4.1/bootstrap.bundle.min.js
diff --git a/web/js/bootstrap-4.4.1/bootstrap.bundle.min.js.map b/packages/modules/web_themes/standard_legacy/web/js/bootstrap-4.4.1/bootstrap.bundle.min.js.map
similarity index 100%
rename from web/js/bootstrap-4.4.1/bootstrap.bundle.min.js.map
rename to packages/modules/web_themes/standard_legacy/web/js/bootstrap-4.4.1/bootstrap.bundle.min.js.map
diff --git a/web/js/bootstrap4-toggle/bootstrap4-toggle.min.js b/packages/modules/web_themes/standard_legacy/web/js/bootstrap4-toggle/bootstrap4-toggle.min.js
similarity index 100%
rename from web/js/bootstrap4-toggle/bootstrap4-toggle.min.js
rename to packages/modules/web_themes/standard_legacy/web/js/bootstrap4-toggle/bootstrap4-toggle.min.js
diff --git a/web/js/bootstrap4-toggle/bootstrap4-toggle.min.js.map b/packages/modules/web_themes/standard_legacy/web/js/bootstrap4-toggle/bootstrap4-toggle.min.js.map
similarity index 100%
rename from web/js/bootstrap4-toggle/bootstrap4-toggle.min.js.map
rename to packages/modules/web_themes/standard_legacy/web/js/bootstrap4-toggle/bootstrap4-toggle.min.js.map
diff --git a/web/js/chart.js-3.2.1/chart.js b/packages/modules/web_themes/standard_legacy/web/js/chart.js-3.2.1/chart.js
similarity index 100%
rename from web/js/chart.js-3.2.1/chart.js
rename to packages/modules/web_themes/standard_legacy/web/js/chart.js-3.2.1/chart.js
diff --git a/web/js/chart.js-3.2.1/chart.min.js b/packages/modules/web_themes/standard_legacy/web/js/chart.js-3.2.1/chart.min.js
similarity index 100%
rename from web/js/chart.js-3.2.1/chart.min.js
rename to packages/modules/web_themes/standard_legacy/web/js/chart.js-3.2.1/chart.min.js
diff --git a/web/js/chartjs-adapter-luxon/chartjs-adapter-luxon.js b/packages/modules/web_themes/standard_legacy/web/js/chartjs-adapter-luxon/chartjs-adapter-luxon.js
similarity index 100%
rename from web/js/chartjs-adapter-luxon/chartjs-adapter-luxon.js
rename to packages/modules/web_themes/standard_legacy/web/js/chartjs-adapter-luxon/chartjs-adapter-luxon.js
diff --git a/web/js/chartjs-adapter-luxon/chartjs-adapter-luxon.min.js b/packages/modules/web_themes/standard_legacy/web/js/chartjs-adapter-luxon/chartjs-adapter-luxon.min.js
similarity index 100%
rename from web/js/chartjs-adapter-luxon/chartjs-adapter-luxon.min.js
rename to packages/modules/web_themes/standard_legacy/web/js/chartjs-adapter-luxon/chartjs-adapter-luxon.min.js
diff --git a/web/js/jquery-3.6.0.min.js b/packages/modules/web_themes/standard_legacy/web/js/jquery-3.6.0.min.js
similarity index 100%
rename from web/js/jquery-3.6.0.min.js
rename to packages/modules/web_themes/standard_legacy/web/js/jquery-3.6.0.min.js
diff --git a/web/js/jquery-3.6.0.min.map b/packages/modules/web_themes/standard_legacy/web/js/jquery-3.6.0.min.map
similarity index 100%
rename from web/js/jquery-3.6.0.min.map
rename to packages/modules/web_themes/standard_legacy/web/js/jquery-3.6.0.min.map
diff --git a/web/js/luxon/luxon.js b/packages/modules/web_themes/standard_legacy/web/js/luxon/luxon.js
similarity index 100%
rename from web/js/luxon/luxon.js
rename to packages/modules/web_themes/standard_legacy/web/js/luxon/luxon.js
diff --git a/web/js/luxon/luxon.min.js b/packages/modules/web_themes/standard_legacy/web/js/luxon/luxon.min.js
similarity index 100%
rename from web/js/luxon/luxon.min.js
rename to packages/modules/web_themes/standard_legacy/web/js/luxon/luxon.min.js
diff --git a/packages/modules/web_themes/standard_legacy/web/js/mqttws31.js b/packages/modules/web_themes/standard_legacy/web/js/mqttws31.js
new file mode 100644
index 0000000000..463f882004
--- /dev/null
+++ b/packages/modules/web_themes/standard_legacy/web/js/mqttws31.js
@@ -0,0 +1,1958 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corp.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v1.0 which accompany this distribution.
+ *
+ * The Eclipse Public License is available at
+ *    http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ *   http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *    Andrew Banks - initial API and implementation and initial documentation
+ *******************************************************************************/
+
+
+// Only expose a single object name in the global namespace.
+// Everything must go through this module. Global Messaging module
+// only has a single public function, client, which returns
+// a Messaging client object given connection details.
+
+/**
+ * @namespace Messaging
+ * Send and receive messages using web browsers.
+ * <p>
+ * This programming interface lets a JavaScript client application use the MQTT V3.1 protocol to
+ * connect to an MQTT-supporting messaging server.
+ *
+ * The function supported includes:
+ * <ol>
+ * <li>Connecting to and disconnecting from a server. The server is identified by its host name and port number.
+ * <li>Specifying options that relate to the communications link with the server,
+ * for example the frequency of keep-alive heartbeats, and whether SSL/TLS is required.
+ * <li>Subscribing to and receiving messages from MQTT Topics.
+ * <li>Publishing messages to MQTT Topics.
+ * </ol>
+ * <p>
+ * <h2>The API consists of two main objects:</h2>
+ * The <b>Messaging.Client</b> object. This contains methods that provide the functionality of the API,
+ * including provision of callbacks that notify the application when a message arrives from or is delivered to the messaging server,
+ * or when the status of its connection to the messaging server changes.
+ * <p>
+ * The <b>Messaging.Message</b> object. This encapsulates the payload of the message along with various attributes
+ * associated with its delivery, in particular the destination to which it has been (or is about to be) sent.
+ * <p>
+ * The programming interface validates parameters passed to it, and will throw an Error containing an error message
+ * intended for developer use, if it detects an error with any parameter.
+ * <p>
+ * Example:
+ *
+ * <code><pre>
+ client = new Messaging.Client(location.hostname, Number(location.port), "clientId");
+ client.onConnectionLost = onConnectionLost;
+ client.onMessageArrived = onMessageArrived;
+ client.connect({onSuccess:onConnect});
+
+ function onConnect() {
+  // Once a connection has been made, make a subscription and send a message.
+  console.log("onConnect");
+  client.subscribe("/World");
+  message = new Messaging.Message("Hello");
+  message.destinationName = "/World";
+  client.send(message); 
+};
+ function onConnectionLost(responseObject) {
+  if (responseObject.errorCode !== 0)
+    console.log("onConnectionLost:"+responseObject.errorMessage);
+};
+ function onMessageArrived(message) {
+  console.log("onMessageArrived:"+message.payloadString);
+  client.disconnect(); 
+};
+ * </pre></code>
+ * <p>
+ * Other programming languages,
+ * <a href="/clients/java/doc/javadoc/index.html"><big>Java</big></a>,
+ * <a href="/clients/c/doc/html/index.html"><big>C</big></a>.
+ */
+Messaging = (function (global) {
+
+    // Private variables below, these are only visible inside the function closure
+    // which is used to define the module. 
+
+    var version = "0.0.0.0";
+    var buildLevel = "@BUILDLEVEL@";
+
+    /**
+     * Unique message type identifiers, with associated
+     * associated integer values.
+     * @private
+     */
+    var MESSAGE_TYPE = {
+        CONNECT: 1,
+        CONNACK: 2,
+        PUBLISH: 3,
+        PUBACK: 4,
+        PUBREC: 5,
+        PUBREL: 6,
+        PUBCOMP: 7,
+        SUBSCRIBE: 8,
+        SUBACK: 9,
+        UNSUBSCRIBE: 10,
+        UNSUBACK: 11,
+        PINGREQ: 12,
+        PINGRESP: 13,
+        DISCONNECT: 14
+    };
+
+    // Collection of utility methods used to simplify module code 
+    // and promote the DRY pattern.  
+
+    /**
+     * Validate an object's parameter names to ensure they
+     * match a list of expected variables name for this option
+     * type. Used to ensure option object passed into the API don't
+     * contain erroneous parameters.
+     * @param {Object} obj User options object
+     * @param {key:type, key2:type, ...} valid keys and types that may exist in obj.
+     * @throws {Error} Invalid option parameter found.
+     * @private
+     */
+    var validate = function (obj, keys) {
+        for (key in obj) {
+            if (obj.hasOwnProperty(key)) {
+                if (keys.hasOwnProperty(key)) {
+                    if (typeof obj[key] !== keys[key])
+                        throw new Error(format(ERROR.INVALID_TYPE, [typeof obj[key], key]));
+                } else {
+                    var errorStr = "Unknown property, " + key + ". Valid properties are:";
+                    for (key in keys)
+                        if (keys.hasOwnProperty(key))
+                            errorStr = errorStr + " " + key;
+                    throw new Error(errorStr);
+                }
+            }
+        }
+    };
+
+    /**
+     * Return a new function which runs the user function bound
+     * to a fixed scope.
+     * @param {function} User function
+     * @param {object} Function scope
+     * @return {function} User function bound to another scope
+     * @private
+     */
+    var scope = function (f, scope) {
+        return function () {
+            return f.apply(scope, arguments);
+        };
+    };
+
+    /**
+     * Unique message type identifiers, with associated
+     * associated integer values.
+     * @private
+     */
+    var ERROR = {
+        OK: {code: 0, text: "AMQJSC0000I OK."},
+        CONNECT_TIMEOUT: {code: 1, text: "AMQJSC0001E Connect timed out."},
+        SUBSCRIBE_TIMEOUT: {code: 2, text: "AMQJS0002E Subscribe timed out."},
+        UNSUBSCRIBE_TIMEOUT: {code: 3, text: "AMQJS0003E Unsubscribe timed out."},
+        PING_TIMEOUT: {code: 4, text: "AMQJS0004E Ping timed out."},
+        INTERNAL_ERROR: {code: 5, text: "AMQJS0005E Internal error."},
+        CONNACK_RETURNCODE: {code: 6, text: "AMQJS0006E Bad Connack return code:{0} {1}."},
+        SOCKET_ERROR: {code: 7, text: "AMQJS0007E Socket error:{0}."},
+        SOCKET_CLOSE: {code: 8, text: "AMQJS0008I Socket closed."},
+        MALFORMED_UTF: {code: 9, text: "AMQJS0009E Malformed UTF data:{0} {1} {2}."},
+        UNSUPPORTED: {code: 10, text: "AMQJS0010E {0} is not supported by this browser."},
+        INVALID_STATE: {code: 11, text: "AMQJS0011E Invalid state {0}."},
+        INVALID_TYPE: {code: 12, text: "AMQJS0012E Invalid type {0} for {1}."},
+        INVALID_ARGUMENT: {code: 13, text: "AMQJS0013E Invalid argument {0} for {1}."},
+        UNSUPPORTED_OPERATION: {code: 14, text: "AMQJS0014E Unsupported operation."},
+        INVALID_STORED_DATA: {code: 15, text: "AMQJS0015E Invalid data in local storage key={0} value={1}."},
+        INVALID_MQTT_MESSAGE_TYPE: {code: 16, text: "AMQJS0016E Invalid MQTT message type {0}."},
+        MALFORMED_UNICODE: {code: 17, text: "AMQJS0017E Malformed Unicode string:{0} {1}."},
+    };
+
+    /** CONNACK RC Meaning. */
+    var CONNACK_RC = {
+        0: "Connection Accepted",
+        1: "Connection Refused: unacceptable protocol version",
+        2: "Connection Refused: identifier rejected",
+        3: "Connection Refused: server unavailable",
+        4: "Connection Refused: bad user name or password",
+        5: "Connection Refused: not authorized"
+    };
+
+    /**
+     * Format an error message text.
+     * @private
+     * @param {error} ERROR.KEY value above.
+     * @param {substitutions} [array] substituted into the text.
+     * @return the text with the substitutions made.
+     */
+    var format = function (error, substitutions) {
+        var text = error.text;
+        if (substitutions) {
+            for (var i = 0; i < substitutions.length; i++) {
+                field = "{" + i + "}";
+                start = text.indexOf(field);
+                if (start > 0) {
+                    var part1 = text.substring(0, start);
+                    var part2 = text.substring(start + field.length);
+                    text = part1 + substitutions[i] + part2;
+                }
+            }
+        }
+        return text;
+    };
+
+    //MQTT protocol and version        6    M    Q    I    s    d    p    3
+    var MqttProtoIdentifier = [0x00, 0x06, 0x4d, 0x51, 0x49, 0x73, 0x64, 0x70, 0x03];
+
+    /**
+     * @ignore
+     * Construct an MQTT wire protocol message.
+     * @param type MQTT packet type.
+     * @param options optional wire message attributes.
+     *
+     * Optional properties
+     *
+     * messageIdentifier: message ID in the range [0..65535]
+     * payloadMessage:    Application Message - PUBLISH only
+     * connectStrings:    array of 0 or more Strings to be put into the CONNECT payload
+     * topics:            array of strings (SUBSCRIBE, UNSUBSCRIBE)
+     * requestQoS:        array of QoS values [0..2]
+     *
+     * "Flag" properties
+     * cleanSession:    true if present / false if absent (CONNECT)
+     * willMessage:    true if present / false if absent (CONNECT)
+     * isRetained:        true if present / false if absent (CONNECT)
+     * userName:        true if present / false if absent (CONNECT)
+     * password:        true if present / false if absent (CONNECT)
+     * keepAliveInterval:    integer [0..65535]  (CONNECT)
+     *
+     * @private
+     */
+    var WireMessage = function (type, options) {
+        this.type = type;
+        for (name in options) {
+            if (options.hasOwnProperty(name)) {
+                this[name] = options[name];
+            }
+        }
+    };
+
+    WireMessage.prototype.encode = function () {
+        // Compute the first byte of the fixed header
+        var first = ((this.type & 0x0f) << 4);
+
+        /*
+         * Now calculate the length of the variable header + payload by adding up the lengths
+         * of all the component parts
+         */
+
+        remLength = 0;
+        topicStrLength = new Array();
+
+        // if the message contains a messageIdentifier then we need two bytes for that
+        if (this.messageIdentifier != undefined)
+            remLength += 2;
+
+        switch (this.type) {
+            // If this a Connect then we need to include 12 bytes for its header
+            case MESSAGE_TYPE.CONNECT:
+                remLength += MqttProtoIdentifier.length + 3;
+                remLength += UTF8Length(this.clientId) + 2;
+                if (this.willMessage != undefined) {
+                    remLength += UTF8Length(this.willMessage.destinationName) + 2;
+                    // Will message is always a string, sent as UTF-8 characters with a preceding length.
+                    var willMessagePayloadBytes = this.willMessage.payloadBytes;
+                    if (!(willMessagePayloadBytes instanceof Uint8Array))
+                        willMessagePayloadBytes = new Uint8Array(payloadBytes);
+                    remLength += willMessagePayloadBytes.byteLength + 2;
+                }
+                if (this.userName != undefined)
+                    remLength += UTF8Length(this.userName) + 2;
+                if (this.password != undefined)
+                    remLength += UTF8Length(this.password) + 2;
+                break;
+
+            // Subscribe, Unsubscribe can both contain topic strings
+            case MESSAGE_TYPE.SUBSCRIBE:
+                first |= 0x02; // Qos = 1;
+                for (var i = 0; i < this.topics.length; i++) {
+                    topicStrLength[i] = UTF8Length(this.topics[i]);
+                    remLength += topicStrLength[i] + 2;
+                }
+                remLength += this.requestedQos.length; // 1 byte for each topic's Qos
+                // QoS on Subscribe only
+                break;
+
+            case MESSAGE_TYPE.UNSUBSCRIBE:
+                first |= 0x02; // Qos = 1;
+                for (var i = 0; i < this.topics.length; i++) {
+                    topicStrLength[i] = UTF8Length(this.topics[i]);
+                    remLength += topicStrLength[i] + 2;
+                }
+                break;
+
+            case MESSAGE_TYPE.PUBLISH:
+                if (this.payloadMessage.duplicate) first |= 0x08;
+                first = first |= (this.payloadMessage.qos << 1);
+                if (this.payloadMessage.retained) first |= 0x01;
+                destinationNameLength = UTF8Length(this.payloadMessage.destinationName);
+                remLength += destinationNameLength + 2;
+                var payloadBytes = this.payloadMessage.payloadBytes;
+                remLength += payloadBytes.byteLength;
+                if (payloadBytes instanceof ArrayBuffer)
+                    payloadBytes = new Uint8Array(payloadBytes);
+                else if (!(payloadBytes instanceof Uint8Array))
+                    payloadBytes = new Uint8Array(payloadBytes.buffer);
+                break;
+
+            case MESSAGE_TYPE.DISCONNECT:
+                break;
+
+            default:
+                ;
+        }
+
+        // Now we can allocate a buffer for the message
+
+        var mbi = encodeMBI(remLength);  // Convert the length to MQTT MBI format
+        var pos = mbi.length + 1;        // Offset of start of variable header
+        var buffer = new ArrayBuffer(remLength + pos);
+        var byteStream = new Uint8Array(buffer);    // view it as a sequence of bytes
+
+        //Write the fixed header into the buffer
+        byteStream[0] = first;
+        byteStream.set(mbi, 1);
+
+        // If this is a PUBLISH then the variable header starts with a topic
+        if (this.type == MESSAGE_TYPE.PUBLISH)
+            pos = writeString(this.payloadMessage.destinationName, destinationNameLength, byteStream, pos);
+        // If this is a CONNECT then the variable header contains the protocol name/version, flags and keepalive time
+
+        else if (this.type == MESSAGE_TYPE.CONNECT) {
+            byteStream.set(MqttProtoIdentifier, pos);
+            pos += MqttProtoIdentifier.length;
+            var connectFlags = 0;
+            if (this.cleanSession)
+                connectFlags = 0x02;
+            if (this.willMessage != undefined) {
+                connectFlags |= 0x04;
+                connectFlags |= (this.willMessage.qos << 3);
+                if (this.willMessage.retained) {
+                    connectFlags |= 0x20;
+                }
+            }
+            if (this.userName != undefined)
+                connectFlags |= 0x80;
+            if (this.password != undefined)
+                connectFlags |= 0x40;
+            byteStream[pos++] = connectFlags;
+            pos = writeUint16(this.keepAliveInterval, byteStream, pos);
+        }
+
+        // Output the messageIdentifier - if there is one
+        if (this.messageIdentifier != undefined)
+            pos = writeUint16(this.messageIdentifier, byteStream, pos);
+
+        switch (this.type) {
+            case MESSAGE_TYPE.CONNECT:
+                pos = writeString(this.clientId, UTF8Length(this.clientId), byteStream, pos);
+                if (this.willMessage != undefined) {
+                    pos = writeString(this.willMessage.destinationName, UTF8Length(this.willMessage.destinationName), byteStream, pos);
+                    pos = writeUint16(willMessagePayloadBytes.byteLength, byteStream, pos);
+                    byteStream.set(willMessagePayloadBytes, pos);
+                    pos += willMessagePayloadBytes.byteLength;
+
+                }
+                if (this.userName != undefined)
+                    pos = writeString(this.userName, UTF8Length(this.userName), byteStream, pos);
+                if (this.password != undefined)
+                    pos = writeString(this.password, UTF8Length(this.password), byteStream, pos);
+                break;
+
+            case MESSAGE_TYPE.PUBLISH:
+                // PUBLISH has a text or binary payload, if text do not add a 2 byte length field, just the UTF characters.
+                byteStream.set(payloadBytes, pos);
+
+                break;
+
+//    	    case MESSAGE_TYPE.PUBREC:	
+//    	    case MESSAGE_TYPE.PUBREL:	
+//    	    case MESSAGE_TYPE.PUBCOMP:	
+//    	    	break;
+
+            case MESSAGE_TYPE.SUBSCRIBE:
+                // SUBSCRIBE has a list of topic strings and request QoS
+                for (var i = 0; i < this.topics.length; i++) {
+                    pos = writeString(this.topics[i], topicStrLength[i], byteStream, pos);
+                    byteStream[pos++] = this.requestedQos[i];
+                }
+                break;
+
+            case MESSAGE_TYPE.UNSUBSCRIBE:
+                // UNSUBSCRIBE has a list of topic strings
+                for (var i = 0; i < this.topics.length; i++)
+                    pos = writeString(this.topics[i], topicStrLength[i], byteStream, pos);
+                break;
+
+            default:
+            // Do nothing.
+        }
+
+        return buffer;
+    }
+
+    function decodeMessage(input) {
+        //var msg = new Object();  // message to be constructed
+        var first = input[0];
+        var type = first >> 4;
+        var messageInfo = first &= 0x0f;
+        var pos = 1;
+
+
+        // Decode the remaining length (MBI format)
+
+        var digit;
+        var remLength = 0;
+        var multiplier = 1;
+        do {
+            digit = input[pos++];
+            remLength += ((digit & 0x7F) * multiplier);
+            multiplier *= 128;
+        } while ((digit & 0x80) != 0);
+
+        var wireMessage = new WireMessage(type);
+        switch (type) {
+            case MESSAGE_TYPE.CONNACK:
+                wireMessage.topicNameCompressionResponse = input[pos++];
+                wireMessage.returnCode = input[pos++];
+                break;
+
+            case MESSAGE_TYPE.PUBLISH:
+                var qos = (messageInfo >> 1) & 0x03;
+
+                var len = readUint16(input, pos);
+                pos += 2;
+                var topicName = parseUTF8(input, pos, len);
+                pos += len;
+                // If QoS 1 or 2 there will be a messageIdentifier
+                if (qos > 0) {
+                    wireMessage.messageIdentifier = readUint16(input, pos);
+                    pos += 2;
+                }
+
+                var message = new Messaging.Message(input.subarray(pos));
+                if ((messageInfo & 0x01) == 0x01)
+                    message.retained = true;
+                if ((messageInfo & 0x08) == 0x08)
+                    message.duplicate = true;
+                message.qos = qos;
+                message.destinationName = topicName;
+                wireMessage.payloadMessage = message;
+                break;
+
+            case  MESSAGE_TYPE.PUBACK:
+            case  MESSAGE_TYPE.PUBREC:
+            case  MESSAGE_TYPE.PUBREL:
+            case  MESSAGE_TYPE.PUBCOMP:
+            case  MESSAGE_TYPE.UNSUBACK:
+                wireMessage.messageIdentifier = readUint16(input, pos);
+                break;
+
+            case  MESSAGE_TYPE.SUBACK:
+                wireMessage.messageIdentifier = readUint16(input, pos);
+                pos += 2;
+                wireMessage.grantedQos = input.subarray(pos);
+                break;
+
+            default:
+                ;
+        }
+
+        return wireMessage;
+    }
+
+    function writeUint16(input, buffer, offset) {
+        buffer[offset++] = input >> 8;      //MSB
+        buffer[offset++] = input % 256;     //LSB
+        return offset;
+    }
+
+    function writeString(input, utf8Length, buffer, offset) {
+        offset = writeUint16(utf8Length, buffer, offset);
+        stringToUTF8(input, buffer, offset);
+        return offset + utf8Length;
+    }
+
+    function readUint16(buffer, offset) {
+        return 256 * buffer[offset] + buffer[offset + 1];
+    }
+
+    /**
+     * Encodes an MQTT Multi-Byte Integer
+     * @private
+     */
+    function encodeMBI(number) {
+        var output = new Array(1);
+        var numBytes = 0;
+
+        do {
+            var digit = number % 128;
+            number = number >> 7;
+            if (number > 0) {
+                digit |= 0x80;
+            }
+            output[numBytes++] = digit;
+        } while ((number > 0) && (numBytes < 4));
+
+        return output;
+    }
+
+    /**
+     * Takes a String and calculates its length in bytes when encoded in UTF8.
+     * @private
+     */
+    function UTF8Length(input) {
+        var output = 0;
+        for (var i = 0; i < input.length; i++) {
+            var charCode = input.charCodeAt(i);
+            if (charCode > 0x7FF) {
+                // Surrogate pair means its a 4 byte character
+                if (0xD800 <= charCode && charCode <= 0xDBFF) {
+                    i++;
+                    output++;
+                }
+                output += 3;
+            }
+            else if (charCode > 0x7F)
+                output += 2;
+            else
+                output++;
+        }
+        return output;
+    }
+
+    /**
+     * Takes a String and writes it into an array as UTF8 encoded bytes.
+     * @private
+     */
+    function stringToUTF8(input, output, start) {
+        var pos = start;
+        for (var i = 0; i < input.length; i++) {
+            var charCode = input.charCodeAt(i);
+
+            // Check for a surrogate pair.
+            if (0xD800 <= charCode && charCode <= 0xDBFF) {
+                lowCharCode = input.charCodeAt(++i);
+                if (isNaN(lowCharCode)) {
+                    throw new Error(format(ERROR.MALFORMED_UNICODE, [charCode, lowCharCode]));
+                }
+                charCode = ((charCode - 0xD800) << 10) + (lowCharCode - 0xDC00) + 0x10000;
+
+            }
+
+            if (charCode <= 0x7F) {
+                output[pos++] = charCode;
+            } else if (charCode <= 0x7FF) {
+                output[pos++] = charCode >> 6 & 0x1F | 0xC0;
+                output[pos++] = charCode & 0x3F | 0x80;
+            } else if (charCode <= 0xFFFF) {
+                output[pos++] = charCode >> 12 & 0x0F | 0xE0;
+                output[pos++] = charCode >> 6 & 0x3F | 0x80;
+                output[pos++] = charCode & 0x3F | 0x80;
+            } else {
+                output[pos++] = charCode >> 18 & 0x07 | 0xF0;
+                output[pos++] = charCode >> 12 & 0x3F | 0x80;
+                output[pos++] = charCode >> 6 & 0x3F | 0x80;
+                output[pos++] = charCode & 0x3F | 0x80;
+            }
+            ;
+        }
+        return output;
+    }
+
+    function parseUTF8(input, offset, length) {
+        var output = "";
+        var utf16;
+        var pos = offset;
+
+        while (pos < offset + length) {
+            var byte1 = input[pos++];
+            if (byte1 < 128)
+                utf16 = byte1;
+            else {
+                var byte2 = input[pos++] - 128;
+                if (byte2 < 0)
+                    throw new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), ""]));
+                if (byte1 < 0xE0)             // 2 byte character
+                    utf16 = 64 * (byte1 - 0xC0) + byte2;
+                else {
+                    var byte3 = input[pos++] - 128;
+                    if (byte3 < 0)
+                        throw new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16)]));
+                    if (byte1 < 0xF0)        // 3 byte character
+                        utf16 = 4096 * (byte1 - 0xE0) + 64 * byte2 + byte3;
+                    else {
+                        var byte4 = input[pos++] - 128;
+                        if (byte4 < 0)
+                            throw new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));
+                        if (byte1 < 0xF8)        // 4 byte character
+                            utf16 = 262144 * (byte1 - 0xF0) + 4096 * byte2 + 64 * byte3 + byte4;
+                        else                     // longer encodings are not supported
+                            throw new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));
+                    }
+                }
+            }
+
+            if (utf16 > 0xFFFF)   // 4 byte character - express as a surrogate pair
+            {
+                utf16 -= 0x10000;
+                output += String.fromCharCode(0xD800 + (utf16 >> 10)); // lead character
+                utf16 = 0xDC00 + (utf16 & 0x3FF);  // trail character
+            }
+            output += String.fromCharCode(utf16);
+        }
+        return output;
+    }
+
+    /** @ignore Repeat keepalive requests, monitor responses.*/
+    var Pinger = function (client, window, keepAliveInterval) {
+        this._client = client;
+        this._window = window;
+        this._keepAliveInterval = keepAliveInterval * 1000;
+        this.isReset = false;
+
+        var pingReq = new WireMessage(MESSAGE_TYPE.PINGREQ).encode();
+
+        var doTimeout = function (pinger) {
+            return function () {
+                return doPing.apply(pinger);
+            };
+        };
+
+        /** @ignore */
+        var doPing = function () {
+            if (!this.isReset) {
+                this._client._trace("Pinger.doPing", "Timed out");
+                this._client._disconnected(ERROR.PING_TIMEOUT.code, format(ERROR.PING_TIMEOUT));
+            } else {
+                this.isReset = false;
+                this._client._trace("Pinger.doPing", "send PINGREQ");
+                this._client.socket.send(pingReq);
+                this.timeout = this._window.setTimeout(doTimeout(this), this._keepAliveInterval);
+            }
+        }
+
+        this.reset = function () {
+            this.isReset = true;
+            this._window.clearTimeout(this.timeout);
+            if (this._keepAliveInterval > 0)
+                this.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);
+        }
+
+        this.cancel = function () {
+            this._window.clearTimeout(this.timeout);
+        }
+    };
+
+    /** @ignore Monitor request completion. */
+    var Timeout = function (client, window, timeoutSeconds, action, args) {
+        this._window = window;
+        if (!timeoutSeconds)
+            timeoutSeconds = 30;
+
+        var doTimeout = function (action, client, args) {
+            return function () {
+                return action.apply(client, args);
+            };
+        };
+        this.timeout = setTimeout(doTimeout(action, client, args), timeoutSeconds * 1000);
+
+        this.cancel = function () {
+            this._window.clearTimeout(this.timeout);
+        }
+    };
+
+    /*
+     * Internal implementation of the Websockets MQTT V3.1 client.
+     *
+     * @name Messaging.ClientImpl @constructor
+     * @param {String} host the DNS nameof the webSocket host.
+     * @param {Number} port the port number for that host.
+     * @param {String} clientId the MQ client identifier.
+     */
+    var ClientImpl = function (host, port, clientId) {
+        // Check dependencies are satisfied in this browser.
+        if (!("WebSocket" in global && global["WebSocket"] !== null)) {
+            throw new Error(format(ERROR.UNSUPPORTED, ["WebSocket"]));
+        }
+        if (!("localStorage" in global && global["localStorage"] !== null)) {
+            throw new Error(format(ERROR.UNSUPPORTED, ["localStorage"]));
+        }
+        if (!("ArrayBuffer" in global && global["ArrayBuffer"] !== null)) {
+            throw new Error(format(ERROR.UNSUPPORTED, ["ArrayBuffer"]));
+        }
+
+        this._trace("Messaging.Client", host, port, clientId);
+
+        this.host = host;
+        this.port = port;
+        this.clientId = clientId;
+
+        // Local storagekeys are qualified with the following string.
+        this._localKey = host + ":" + port + ":" + clientId + ":";
+
+        // Create private instance-only message queue
+        // Internal queue of messages to be sent, in sending order. 
+        this._msg_queue = [];
+
+        // Messages we have sent and are expecting a response for, indexed by their respective message ids. 
+        this._sentMessages = {};
+
+        // Messages we have received and acknowleged and are expecting a confirm message for
+        // indexed by their respective message ids. 
+        this._receivedMessages = {};
+
+        // Internal list of callbacks to be executed when messages
+        // have been successfully sent over web socket, e.g. disconnect
+        // when it doesn't have to wait for ACK, just message is dispatched.
+        this._notify_msg_sent = {};
+
+        // Unique identifier for SEND messages, incrementing
+        // counter as messages are sent.
+        this._message_identifier = 1;
+
+        // Used to determine the transmission sequence of stored sent messages.
+        this._sequence = 0;
+
+
+        // Load the local state, if any, from the saved version, only restore state relevant to this client.   	
+        for (key in localStorage)
+            if (key.indexOf("Sent:" + this._localKey) == 0
+                || key.indexOf("Received:" + this._localKey) == 0)
+                this.restore(key);
+    };
+
+    // Messaging Client public instance members. 
+    ClientImpl.prototype.host;
+    ClientImpl.prototype.port;
+    ClientImpl.prototype.clientId;
+
+    // Messaging Client private instance members.
+    ClientImpl.prototype.socket;
+    /* true once we have received an acknowledgement to a CONNECT packet. */
+    ClientImpl.prototype.connected = false;
+    /* The largest message identifier allowed, may not be larger than 2**16 but 
+     * if set smaller reduces the maximum number of outbound messages allowed.
+     */
+    ClientImpl.prototype.maxMessageIdentifier = 65536;
+    ClientImpl.prototype.connectOptions;
+    ClientImpl.prototype.hostIndex;
+    ClientImpl.prototype.onConnectionLost;
+    ClientImpl.prototype.onMessageDelivered;
+    ClientImpl.prototype.onMessageArrived;
+    ClientImpl.prototype._msg_queue = null;
+    ClientImpl.prototype._connectTimeout;
+    /* The sendPinger monitors how long we allow before we send data to prove to the server that we are alive. */
+    ClientImpl.prototype.sendPinger = null;
+    /* The receivePinger monitors how long we allow before we require evidence that the server is alive. */
+    ClientImpl.prototype.receivePinger = null;
+
+    ClientImpl.prototype._traceBuffer = null;
+    ClientImpl.prototype._MAX_TRACE_ENTRIES = 100;
+
+    ClientImpl.prototype.connect = function (connectOptions) {
+        var connectOptionsMasked = this._traceMask(connectOptions, "password");
+        this._trace("Client.connect", connectOptionsMasked, this.socket, this.connected);
+
+        if (this.connected)
+            throw new Error(format(ERROR.INVALID_STATE, ["already connected"]));
+        if (this.socket)
+            throw new Error(format(ERROR.INVALID_STATE, ["already connected"]));
+
+        this.connectOptions = connectOptions;
+
+        if (connectOptions.hosts) {
+            this.hostIndex = 0;
+            this._doConnect(connectOptions.hosts[0], connectOptions.ports[0]);
+        } else {
+            this._doConnect(this.host, this.port);
+        }
+
+    };
+
+    ClientImpl.prototype.subscribe = function (filter, subscribeOptions) {
+        this._trace("Client.subscribe", filter, subscribeOptions);
+
+        if (!this.connected)
+            throw new Error(format(ERROR.INVALID_STATE, ["not connected"]));
+
+        var wireMessage = new WireMessage(MESSAGE_TYPE.SUBSCRIBE);
+        wireMessage.topics = [filter];
+        if (subscribeOptions.qos != undefined)
+            wireMessage.requestedQos = [subscribeOptions.qos];
+        else
+            wireMessage.requestedQos = [0];
+
+        if (subscribeOptions.onSuccess) {
+            wireMessage.callback = function () {
+                subscribeOptions.onSuccess({invocationContext: subscribeOptions.invocationContext});
+            };
+        }
+        if (subscribeOptions.timeout) {
+            wireMessage.timeOut = new Timeout(this, window, subscribeOptions.timeout, subscribeOptions.onFailure
+                , [
+                    {invocationContext: subscribeOptions.invocationContext,
+                        errorCode: ERROR.SUBSCRIBE_TIMEOUT.code,
+                        errorMessage: format(ERROR.SUBSCRIBE_TIMEOUT)}
+                ]);
+        }
+
+        // All subscriptions return a SUBACK. 
+        this._requires_ack(wireMessage);
+        this._schedule_message(wireMessage);
+    };
+
+    /** @ignore */
+    ClientImpl.prototype.unsubscribe = function (filter, unsubscribeOptions) {
+        this._trace("Client.unsubscribe", filter, unsubscribeOptions);
+
+        if (!this.connected)
+            throw new Error(format(ERROR.INVALID_STATE, ["not connected"]));
+
+        var wireMessage = new WireMessage(MESSAGE_TYPE.UNSUBSCRIBE);
+        wireMessage.topics = [filter];
+
+        if (unsubscribeOptions.onSuccess) {
+            wireMessage.callback = function () {
+                unsubscribeOptions.onSuccess({invocationContext: unsubscribeOptions.invocationContext});
+            };
+        }
+        if (unsubscribeOptions.timeout) {
+            wireMessage.timeOut = new Timeout(this, window, unsubscribeOptions.timeout, unsubscribeOptions.onFailure
+                , [
+                    {invocationContext: unsubscribeOptions.invocationContext,
+                        errorCode: ERROR.UNSUBSCRIBE_TIMEOUT.code,
+                        errorMessage: format(ERROR.UNSUBSCRIBE_TIMEOUT)}
+                ]);
+        }
+
+        // All unsubscribes return a SUBACK.         
+        this._requires_ack(wireMessage);
+        this._schedule_message(wireMessage);
+    };
+
+    ClientImpl.prototype.send = function (message) {
+        this._trace("Client.send", message);
+
+        if (!this.connected)
+            throw new Error(format(ERROR.INVALID_STATE, ["not connected"]));
+
+        wireMessage = new WireMessage(MESSAGE_TYPE.PUBLISH);
+        wireMessage.payloadMessage = message;
+
+        if (message.qos > 0)
+            this._requires_ack(wireMessage);
+        else if (this.onMessageDelivered)
+            this._notify_msg_sent[wireMessage] = this.onMessageDelivered(wireMessage.payloadMessage);
+        this._schedule_message(wireMessage);
+    };
+
+    ClientImpl.prototype.disconnect = function () {
+        this._trace("Client.disconnect");
+
+        if (!this.socket)
+            throw new Error(format(ERROR.INVALID_STATE, ["not connecting or connected"]));
+
+        wireMessage = new WireMessage(MESSAGE_TYPE.DISCONNECT);
+
+        // Run the disconnected call back as soon as the message has been sent,
+        // in case of a failure later on in the disconnect processing.
+        // as a consequence, the _disconected call back may be run several times.
+        this._notify_msg_sent[wireMessage] = scope(this._disconnected, this);
+
+        this._schedule_message(wireMessage);
+    };
+
+    ClientImpl.prototype.getTraceLog = function () {
+        if (this._traceBuffer !== null) {
+            this._trace("Client.getTraceLog", new Date());
+            this._trace("Client.getTraceLog in flight messages", this._sentMessages.length);
+            for (key in this._sentMessages)
+                this._trace("_sentMessages ", key, this._sentMessages[key]);
+            for (key in this._receivedMessages)
+                this._trace("_receivedMessages ", key, this._receivedMessages[key]);
+
+            return this._traceBuffer;
+        }
+    };
+
+    ClientImpl.prototype.startTrace = function () {
+        if (this._traceBuffer === null) {
+            this._traceBuffer = [];
+        }
+        this._trace("Client.startTrace", new Date(), version);
+    };
+
+    ClientImpl.prototype.stopTrace = function () {
+        delete this._traceBuffer;
+    };
+
+    ClientImpl.prototype._doConnect = function (host, port) {
+        // When the socket is open, this client will send the CONNECT WireMessage using the saved parameters. 
+        if (this.connectOptions.useSSL)
+            wsurl = ["wss://", host, ":", port, "/mqtt"].join("");
+        else
+            wsurl = ["ws://", host, ":", port, "/mqtt"].join("");
+        this.connected = false;
+        this.socket = new WebSocket(wsurl, 'mqttv3.1');
+        this.socket.binaryType = 'arraybuffer';
+        this.socket.onopen = scope(this._on_socket_open, this);
+        this.socket.onmessage = scope(this._on_socket_message, this);
+        this.socket.onerror = scope(this._on_socket_error, this);
+        this.socket.onclose = scope(this._on_socket_close, this);
+
+        this.sendPinger = new Pinger(this, window, this.connectOptions.keepAliveInterval);
+        this.receivePinger = new Pinger(this, window, this.connectOptions.keepAliveInterval);
+
+        this._connectTimeout = new Timeout(this, window, this.connectOptions.timeout, this._disconnected, [ERROR.CONNECT_TIMEOUT.code, format(ERROR.CONNECT_TIMEOUT)]);
+    };
+
+
+    // Schedule a new message to be sent over the WebSockets
+    // connection. CONNECT messages cause WebSocket connection
+    // to be started. All other messages are queued internally
+    // until this has happened. When WS connection starts, process
+    // all outstanding messages. 
+    ClientImpl.prototype._schedule_message = function (message) {
+        this._msg_queue.push(message);
+        // Process outstanding messages in the queue if we have an  open socket, and have received CONNACK. 
+        if (this.connected) {
+            this._process_queue();
+        }
+    };
+
+    ClientImpl.prototype.store = function (prefix, wireMessage) {
+        storedMessage = {type: wireMessage.type, messageIdentifier: wireMessage.messageIdentifier, version: 1};
+
+        switch (wireMessage.type) {
+            case MESSAGE_TYPE.PUBLISH:
+                if (wireMessage.pubRecReceived)
+                    storedMessage.pubRecReceived = true;
+
+                // Convert the payload to a hex string.
+                storedMessage.payloadMessage = {};
+                var hex = "";
+                var messageBytes = wireMessage.payloadMessage.payloadBytes;
+                for (var i = 0; i < messageBytes.length; i++) {
+                    if (messageBytes[i] <= 0xF)
+                        hex = hex + "0" + messageBytes[i].toString(16);
+                    else
+                        hex = hex + messageBytes[i].toString(16);
+                }
+                storedMessage.payloadMessage.payloadHex = hex;
+
+                storedMessage.payloadMessage.qos = wireMessage.payloadMessage.qos;
+                storedMessage.payloadMessage.destinationName = wireMessage.payloadMessage.destinationName;
+                if (wireMessage.payloadMessage.duplicate)
+                    storedMessage.payloadMessage.duplicate = true;
+                if (wireMessage.payloadMessage.retained)
+                    storedMessage.payloadMessage.retained = true;
+
+                // Add a sequence number to sent messages.
+                if (prefix.indexOf("Sent:") == 0) {
+                    if (wireMessage.sequence === undefined)
+                        wireMessage.sequence = ++this._sequence;
+                    storedMessage.sequence = wireMessage.sequence;
+                }
+                break;
+
+            default:
+                throw Error(format(ERROR.INVALID_STORED_DATA, [key, storedMessage]));
+        }
+        localStorage.setItem(prefix + this._localKey + wireMessage.messageIdentifier, JSON.stringify(storedMessage));
+    };
+
+    ClientImpl.prototype.restore = function (key) {
+        var value = localStorage.getItem(key);
+        var storedMessage = JSON.parse(value);
+
+        var wireMessage = new WireMessage(storedMessage.type, storedMessage);
+
+        switch (storedMessage.type) {
+            case MESSAGE_TYPE.PUBLISH:
+                // Replace the payload message with a Message object.
+                var hex = storedMessage.payloadMessage.payloadHex;
+                var buffer = new ArrayBuffer((hex.length) / 2);
+                var byteStream = new Uint8Array(buffer);
+                var i = 0;
+                while (hex.length >= 2) {
+                    var x = parseInt(hex.substring(0, 2), 16);
+                    hex = hex.substring(2, hex.length);
+                    byteStream[i++] = x;
+                }
+                var payloadMessage = new Messaging.Message(byteStream);
+
+                payloadMessage.qos = storedMessage.payloadMessage.qos;
+                payloadMessage.destinationName = storedMessage.payloadMessage.destinationName;
+                if (storedMessage.payloadMessage.duplicate)
+                    payloadMessage.duplicate = true;
+                if (storedMessage.payloadMessage.retained)
+                    payloadMessage.retained = true;
+                wireMessage.payloadMessage = payloadMessage;
+
+                break;
+
+            default:
+                throw Error(format(ERROR.INVALID_STORED_DATA, [key, value]));
+        }
+
+        if (key.indexOf("Sent:" + this._localKey) == 0) {
+            this._sentMessages[wireMessage.messageIdentifier] = wireMessage;
+        } else if (key.indexOf("Received:" + this._localKey) == 0) {
+            this._receivedMessages[wireMessage.messageIdentifier] = wireMessage;
+        }
+    };
+
+    ClientImpl.prototype._process_queue = function () {
+        var message = null;
+        // Process messages in order they were added
+        var fifo = this._msg_queue.reverse();
+
+        // Send all queued messages down socket connection
+        while ((message = fifo.pop())) {
+            this._socket_send(message);
+            // Notify listeners that message was successfully sent
+            if (this._notify_msg_sent[message]) {
+                this._notify_msg_sent[message]();
+                delete this._notify_msg_sent[message];
+            }
+        }
+    };
+
+    /**
+     * @ignore
+     * Expect an ACK response for this message. Add message to the set of in progress
+     * messages and set an unused identifier in this message.
+     */
+    ClientImpl.prototype._requires_ack = function (wireMessage) {
+        var messageCount = Object.keys(this._sentMessages).length;
+        if (messageCount > this.maxMessageIdentifier)
+            throw Error("Too many messages:" + messageCount);
+
+        while (this._sentMessages[this._message_identifier] !== undefined) {
+            this._message_identifier++;
+        }
+        wireMessage.messageIdentifier = this._message_identifier;
+        this._sentMessages[wireMessage.messageIdentifier] = wireMessage;
+        if (wireMessage.type === MESSAGE_TYPE.PUBLISH) {
+            this.store("Sent:", wireMessage);
+        }
+        if (this._message_identifier === this.maxMessagIdentifier) {
+            this._message_identifier = 1;
+        }
+    };
+
+    /**
+     * @ignore
+     * Called when the underlying websocket has been opened.
+     */
+    ClientImpl.prototype._on_socket_open = function () {
+        // Create the CONNECT message object.
+        var wireMessage = new WireMessage(MESSAGE_TYPE.CONNECT, this.connectOptions);
+        wireMessage.clientId = this.clientId;
+        this._socket_send(wireMessage);
+    };
+
+    /**
+     * @ignore
+     * Called when the underlying websocket has received a complete packet.
+     */
+    ClientImpl.prototype._on_socket_message = function (event) {
+        this._trace("Client._on_socket_message", event.data);
+
+        // Reset the receive ping timer, we now have evidence the server is alive.
+        this.receivePinger.reset();
+        var byteArray = new Uint8Array(event.data);
+        try {
+            var wireMessage = decodeMessage(byteArray);
+        } catch (error) {
+            this._disconnected(ERROR.INTERNAL_ERROR.code, format(ERROR.INTERNAL_ERROR, [error.message]));
+            return;
+        }
+        this._trace("Client._on_socket_message", wireMessage);
+
+        switch (wireMessage.type) {
+            case MESSAGE_TYPE.CONNACK:
+                this._connectTimeout.cancel();
+
+                // If we have started using clean session then clear up the local state.
+                if (this.connectOptions.cleanSession) {
+                    for (key in this._sentMessages) {
+                        var sentMessage = this._sentMessages[key];
+                        localStorage.removeItem("Sent:" + this._localKey + sentMessage.messageIdentifier);
+                    }
+                    this._sentMessages = {};
+
+                    for (key in this._receivedMessages) {
+                        var receivedMessage = this._receivedMessages[key];
+                        localStorage.removeItem("Received:" + this._localKey + receivedMessage.messageIdentifier);
+                    }
+                    this._receivedMessages = {};
+                }
+                // Client connected and ready for business.
+                if (wireMessage.returnCode === 0) {
+                    this.connected = true;
+                    // Jump to the end of the list of hosts and stop looking for a good host.
+                    if (this.connectOptions.hosts)
+                        this.hostIndex = this.connectOptions.hosts.length;
+                } else {
+                    this._disconnected(ERROR.CONNACK_RETURNCODE.code, format(ERROR.CONNACK_RETURNCODE, [wireMessage.returnCode, CONNACK_RC[wireMessage.returnCode]]));
+                    break;
+                }
+
+                // Resend messages.
+                var sequencedMessages = new Array();
+                for (var msgId in this._sentMessages) {
+                    if (this._sentMessages.hasOwnProperty(msgId))
+                        sequencedMessages.push(this._sentMessages[msgId]);
+                }
+
+                // Sort sentMessages into the original sent order.
+                var sequencedMessages = sequencedMessages.sort(function (a, b) {
+                    return a.sequence - b.sequence;
+                });
+                for (var i = 0, len = sequencedMessages.length; i < len; i++) {
+                    var sentMessage = sequencedMessages[i];
+                    if (sentMessage.type == MESSAGE_TYPE.PUBLISH && sentMessage.pubRecReceived) {
+                        var pubRelMessage = new WireMessage(MESSAGE_TYPE.PUBREL, {messageIdentifier: sentMessage.messageIdentifier});
+                        this._schedule_message(pubRelMessage);
+                    } else {
+                        this._schedule_message(sentMessage);
+                    }
+                    ;
+                }
+
+                // Execute the connectOptions.onSuccess callback if there is one.
+                if (this.connectOptions.onSuccess) {
+                    this.connectOptions.onSuccess({invocationContext: this.connectOptions.invocationContext});
+                }
+
+                // Process all queued messages now that the connection is established.
+                this._process_queue();
+                break;
+
+            case MESSAGE_TYPE.PUBLISH:
+                this._receivePublish(wireMessage);
+                break;
+
+            case MESSAGE_TYPE.PUBACK:
+                var sentMessage = this._sentMessages[wireMessage.messageIdentifier];
+                // If this is a re flow of a PUBACK after we have restarted receivedMessage will not exist.
+                if (sentMessage) {
+                    delete this._sentMessages[wireMessage.messageIdentifier];
+                    localStorage.removeItem("Sent:" + this._localKey + wireMessage.messageIdentifier);
+                    if (this.onMessageDelivered)
+                        this.onMessageDelivered(sentMessage.payloadMessage);
+                }
+                break;
+
+            case MESSAGE_TYPE.PUBREC:
+                var sentMessage = this._sentMessages[wireMessage.messageIdentifier];
+                // If this is a re flow of a PUBREC after we have restarted receivedMessage will not exist.
+                if (sentMessage) {
+                    sentMessage.pubRecReceived = true;
+                    var pubRelMessage = new WireMessage(MESSAGE_TYPE.PUBREL, {messageIdentifier: wireMessage.messageIdentifier});
+                    this.store("Sent:", sentMessage);
+                    this._schedule_message(pubRelMessage);
+                }
+                break;
+
+            case MESSAGE_TYPE.PUBREL:
+                var receivedMessage = this._receivedMessages[wireMessage.messageIdentifier];
+                localStorage.removeItem("Received:" + this._localKey + wireMessage.messageIdentifier);
+                // If this is a re flow of a PUBREL after we have restarted receivedMessage will not exist.
+                if (receivedMessage) {
+                    this._receiveMessage(receivedMessage);
+                    delete this._receivedMessages[wireMessage.messageIdentifier];
+                }
+                // Always flow PubComp, we may have previously flowed PubComp but the server lost it and restarted.
+                pubCompMessage = new WireMessage(MESSAGE_TYPE.PUBCOMP, {messageIdentifier: wireMessage.messageIdentifier});
+                this._schedule_message(pubCompMessage);
+
+
+                break;
+
+            case MESSAGE_TYPE.PUBCOMP:
+                var sentMessage = this._sentMessages[wireMessage.messageIdentifier];
+                delete this._sentMessages[wireMessage.messageIdentifier];
+                localStorage.removeItem("Sent:" + this._localKey + wireMessage.messageIdentifier);
+                if (this.onMessageDelivered)
+                    this.onMessageDelivered(sentMessage.payloadMessage);
+                break;
+
+            case MESSAGE_TYPE.SUBACK:
+                var sentMessage = this._sentMessages[wireMessage.messageIdentifier];
+                if (sentMessage) {
+                    if (sentMessage.timeOut)
+                        sentMessage.timeOut.cancel();
+                    if (sentMessage.callback) {
+                        sentMessage.callback();
+                    }
+                    delete this._sentMessages[wireMessage.messageIdentifier];
+                }
+                break;
+
+            case MESSAGE_TYPE.UNSUBACK:
+                var sentMessage = this._sentMessages[wireMessage.messageIdentifier];
+                if (sentMessage) {
+                    if (sentMessage.timeOut)
+                        sentMessage.timeOut.cancel();
+                    if (sentMessage.callback) {
+                        sentMessage.callback();
+                    }
+                    delete this._sentMessages[wireMessage.messageIdentifier];
+                }
+
+                break;
+
+            case MESSAGE_TYPE.PINGRESP:
+                /* The sendPinger or receivePinger may have sent a ping, the receivePinger has already been reset. */
+                this.sendPinger.reset();
+                break;
+
+            case MESSAGE_TYPE.DISCONNECT:
+                // Clients do not expect to receive disconnect packets.
+                this._disconnected(ERROR.INVALID_MQTT_MESSAGE_TYPE.code, format(ERROR.INVALID_MQTT_MESSAGE_TYPE, [wireMessage.type]));
+                break;
+
+            default:
+                this._disconnected(ERROR.INVALID_MQTT_MESSAGE_TYPE.code, format(ERROR.INVALID_MQTT_MESSAGE_TYPE, [wireMessage.type]));
+        }
+        ;
+    };
+
+    /** @ignore */
+    ClientImpl.prototype._on_socket_error = function (error) {
+        this._disconnected(ERROR.SOCKET_ERROR.code, format(ERROR.SOCKET_ERROR, [error.data]));
+    };
+
+    /** @ignore */
+    ClientImpl.prototype._on_socket_close = function () {
+        this._disconnected(ERROR.SOCKET_CLOSE.code, format(ERROR.SOCKET_CLOSE));
+    };
+
+    /** @ignore */
+    ClientImpl.prototype._socket_send = function (wireMessage) {
+        if (wireMessage.type == 1) {
+            var wireMessageMasked = this._traceMask(wireMessage, "password");
+            this._trace("Client._socket_send", wireMessageMasked);
+        }
+        else this._trace("Client._socket_send", wireMessage);
+
+        this.socket.send(wireMessage.encode());
+        /* We have proved to the server we are alive. */
+        this.sendPinger.reset();
+    };
+
+    /** @ignore */
+    ClientImpl.prototype._receivePublish = function (wireMessage) {
+        switch (wireMessage.payloadMessage.qos) {
+            case "undefined":
+            case 0:
+                this._receiveMessage(wireMessage);
+                break;
+
+            case 1:
+                var pubAckMessage = new WireMessage(MESSAGE_TYPE.PUBACK, {messageIdentifier: wireMessage.messageIdentifier});
+                this._schedule_message(pubAckMessage);
+                this._receiveMessage(wireMessage);
+                break;
+
+            case 2:
+                this._receivedMessages[wireMessage.messageIdentifier] = wireMessage;
+                this.store("Received:", wireMessage);
+                var pubRecMessage = new WireMessage(MESSAGE_TYPE.PUBREC, {messageIdentifier: wireMessage.messageIdentifier});
+                this._schedule_message(pubRecMessage);
+
+                break;
+
+            default:
+                throw Error("Invaild qos=" + wireMmessage.payloadMessage.qos);
+        }
+        ;
+    };
+
+    /** @ignore */
+    ClientImpl.prototype._receiveMessage = function (wireMessage) {
+        if (this.onMessageArrived) {
+            this.onMessageArrived(wireMessage.payloadMessage);
+        }
+    };
+
+    /**
+     * @ignore
+     * Client has disconnected either at its own request or because the server
+     * or network disconnected it. Remove all non-durable state.
+     * @param {errorCode} [number] the error number.
+     * @param {errorText} [string] the error text.
+     */
+    ClientImpl.prototype._disconnected = function (errorCode, errorText) {
+        this._trace("Client._disconnected", errorCode, errorText);
+
+        this.sendPinger.cancel();
+        this.receivePinger.cancel();
+        if (this._connectTimeout)
+            this._connectTimeout.cancel();
+        // Clear message buffers.
+        this._msg_queue = [];
+        this._notify_msg_sent = {};
+
+        if (this.socket) {
+            // Cancel all socket callbacks so that they cannot be driven again by this socket.
+            this.socket.onopen = null;
+            this.socket.onmessage = null;
+            this.socket.onerror = null;
+            this.socket.onclose = null;
+            if (this.socket.readyState === 1)
+                this.socket.close();
+            delete this.socket;
+        }
+
+        if (this.connectOptions.hosts && this.hostIndex < this.connectOptions.hosts.length - 1) {
+            // Try the next host.
+            this.hostIndex++;
+            this._doConnect(this.connectOptions.hosts[this.hostIndex], this.connectOptions.ports[this.hostIndex]);
+
+        } else {
+
+            if (errorCode === undefined) {
+                errorCode = ERROR.OK.code;
+                errorText = format(ERROR.OK);
+            }
+
+            // Run any application callbacks last as they may attempt to reconnect and hence create a new socket.
+            if (this.connected) {
+                this.connected = false;
+                // Execute the connectionLostCallback if there is one, and we were connected.       
+                if (this.onConnectionLost)
+                    this.onConnectionLost({errorCode: errorCode, errorMessage: errorText});
+            } else {
+                // Otherwise we never had a connection, so indicate that the connect has failed.
+                if (this.connectOptions.onFailure)
+                    this.connectOptions.onFailure({invocationContext: this.connectOptions.invocationContext, errorCode: errorCode, errorMessage: errorText});
+            }
+        }
+    };
+
+    /** @ignore */
+    ClientImpl.prototype._trace = function () {
+        if (this._traceBuffer !== null) {
+            for (var i = 0, max = arguments.length; i < max; i++) {
+                if (this._traceBuffer.length == this._MAX_TRACE_ENTRIES) {
+                    this._traceBuffer.shift();
+                }
+                if (i === 0) this._traceBuffer.push(arguments[i]);
+                else if (typeof arguments[i] === "undefined") this._traceBuffer.push(arguments[i]);
+                else this._traceBuffer.push("  " + JSON.stringify(arguments[i]));
+            }
+            ;
+        }
+        ;
+    };
+
+    /** @ignore */
+    ClientImpl.prototype._traceMask = function (traceObject, masked) {
+        var traceObjectMasked = {};
+        for (var attr in traceObject) {
+            if (traceObject.hasOwnProperty(attr)) {
+                if (attr == masked)
+                    traceObjectMasked[attr] = "******";
+                else
+                    traceObjectMasked[attr] = traceObject[attr];
+            }
+        }
+        return traceObjectMasked;
+    };
+
+    // ------------------------------------------------------------------------
+    // Public Programming interface.
+    // ------------------------------------------------------------------------
+
+    /**
+     * The JavaScript application communicates to the server using a Messaging.Client object.
+     * <p>
+     * Other programming languages,
+     * <a href="/clients/java/doc/javadoc/com/ibm/micro/client/mqttv3/MqttClient.html"><big>Java</big></a>,
+     * <a href="/clients/c/doc/html/index.html"><big>C</big></a>.
+     * <p>
+     * Most applications will create just one Client object and then call its connect() method,
+     * however applications can create more than one Client object if they wish.
+     * In this case the combination of host, port and clientId attributes must be different for each Client object.
+     * <p>
+     * The send, subscribe and unsubscribe methods are implemented as asynchronous JavaScript methods
+     * (even though the underlying protocol exchange might be synchronous in nature).
+     * This means they signal their completion by calling back to the application,
+     * via Success or Failure callback functions provided by the application on the method in question.
+     * Such callbacks are called at most once per method invocation and do not persist beyond the lifetime
+     * of the script that made the invocation.
+     * <p>
+     * In contrast there are some callback functions <i> most notably onMessageArrived</i>
+     * that are defined on the Messaging.Client object.
+     * These may get called multiple times, and aren't directly related to specific method invocations made by the client.
+     *
+     * @name Messaging.Client
+     *
+     * @constructor
+     * Creates a Messaging.Client object that can be used to communicate with a Messaging server.
+     *
+     * @param {string} host the address of the messaging server, as a DNS name or dotted decimal IP address.
+     * @param {number} port the port number in the host to connect to.
+     * @param {string} clientId the Messaging client identifier, between 1 and 23 characters in length.
+     *
+     * @property {string} host <i>read only</i> the server's DNS hostname or dotted decimal IP address.
+     * @property {number} port <i>read only</i> the server's port.
+     * @property {string} clientId <i>read only</i> used when connecting to the server.
+     * @property {function} onConnectionLost called when a connection has been lost,
+     * after a connect() method has succeeded.
+     * Establish the call back used when a connection has been lost. The connection may be
+     * lost because the client initiates a disconnect or because the server or network
+     * cause the client to be disconnected. The disconnect call back may be called without
+     * the connectionComplete call back being invoked if, for example the client fails to
+     * connect.
+     * A single response object parameter is passed to the onConnectionLost callback containing the following fields:
+     * <ol>
+     * <li>errorCode
+     * <li>errorMessage
+     * </ol>
+     * @property {function} onMessageDelivered called when a message has been delivered.
+     * All processing that this Client will ever do has been completed. So, for example,
+     * in the case of a Qos=2 message sent by this client, the PubComp flow has been received from the server
+     * and the message has been removed from persistent storage before this callback is invoked.
+     * Parameters passed to the onMessageDelivered callback are:
+     * <ol>
+     * <li>Messaging.Message that was delivered.
+     * </ol>
+     * @property {function} onMessageArrived called when a message has arrived in this Messaging.client.
+     * Parameters passed to the onMessageArrived callback are:
+     * <ol>
+     * <li>Messaging.Message that has arrived.
+     * </ol>
+     */
+    var Client = function (host, port, clientId) {
+        if (typeof host !== "string")
+            throw new Error(format(ERROR.INVALID_TYPE, [typeof host, "host"]));
+        if (typeof port !== "number" || port < 0)
+            throw new Error(format(ERROR.INVALID_TYPE, [typeof port, "port"]));
+
+        var clientIdLength = 0;
+        for (var i = 0; i < clientId.length; i++) {
+            var charCode = clientId.charCodeAt(i);
+            if (0xD800 <= charCode && charCode <= 0xDBFF) {
+                i++; // Surrogate pair.
+            }
+            clientIdLength++;
+        }
+        if (typeof clientId !== "string" || clientIdLength < 1 | clientIdLength > 23)
+            throw new Error(format(ERROR.INVALID_ARGUMENT, [clientId, "clientId"]));
+
+        var client = new ClientImpl(host, port, clientId);
+        this._getHost = function () {
+            return client.host;
+        };
+        this._setHost = function () {
+            throw new Error(format(ERROR.UNSUPPORTED_OPERATION));
+        };
+
+        this._getPort = function () {
+            return client.port;
+        };
+        this._setPort = function () {
+            throw new Error(format(ERROR.UNSUPPORTED_OPERATION));
+        };
+
+        this._getClientId = function () {
+            return client.clientId;
+        };
+        this._setClientId = function () {
+            throw new Error(format(ERROR.UNSUPPORTED_OPERATION));
+        };
+
+        this._getOnConnectionLost = function () {
+            return client.onConnectionLost;
+        };
+        this._setOnConnectionLost = function (newOnConnectionLost) {
+            if (typeof newOnConnectionLost === "function")
+                client.onConnectionLost = newOnConnectionLost;
+            else
+                throw new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnectionLost, "onConnectionLost"]));
+        };
+
+        this._getOnMessageDelivered = function () {
+            return client.onMessageDelivered;
+        };
+        this._setOnMessageDelivered = function (newOnMessageDelivered) {
+            if (typeof newOnMessageDelivered === "function")
+                client.onMessageDelivered = newOnMessageDelivered;
+            else
+                throw new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageDelivered, "onMessageDelivered"]));
+        };
+
+        this._getOnMessageArrived = function () {
+            return client.onMessageArrived;
+        };
+        this._setOnMessageArrived = function (newOnMessageArrived) {
+            if (typeof newOnMessageArrived === "function")
+                client.onMessageArrived = newOnMessageArrived;
+            else
+                throw new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageArrived, "onMessageArrived"]));
+        };
+
+        /**
+         * Connect this Messaging client to its server.
+         *
+         * @name Messaging.Client#connect
+         * @function
+         * @param {Object} [connectOptions] attributes used with the connection.
+         * <p>
+         * Properties of the connect options are:
+         * @config {number} [timeout] If the connect has not succeeded within this number of seconds, it is deemed to have failed.
+         *                            The default is 30 seconds.
+         * @config {string} [userName] Authentication username for this connection.
+         * @config {string} [password] Authentication password for this connection.
+         * @config {Messaging.Message} [willMessage] sent by the server when the client disconnects abnormally.
+         * @config {Number} [keepAliveInterval] the server disconnects this client if there is no activity for this
+         *                number of seconds. The default value of 60 seconds is assumed if not set.
+         * @config {boolean} [cleanSession] if true(default) the client and server persistent state is deleted on successful connect.
+         * @config {boolean} [useSSL] if present and true, use an SSL Websocket connection.
+         * @config {object} [invocationContext] passed to the onSuccess callback or onFailure callback.
+         * @config {function} [onSuccess] called when the connect acknowledgement has been received from the server.
+         * A single response object parameter is passed to the onSuccess callback containing the following fields:
+         * <ol>
+         * <li>invocationContext as passed in to the onSuccess method in the connectOptions.
+         * </ol>
+         * @config {function} [onFailure] called when the connect request has failed or timed out.
+         * A single response object parameter is passed to the onFailure callback containing the following fields:
+         * <ol>
+         * <li>invocationContext as passed in to the onFailure method in the connectOptions.
+         * <li>errorCode a number indicating the nature of the error.
+         * <li>errorMessage text describing the error.
+         * </ol>
+         * @config {Array} [hosts] If present this set of hostnames is tried in order in place
+         * of the host and port paramater on the construtor. The hosts and the matching ports are tried one at at time in order until
+         * one of then succeeds.
+         * @config {Array} [ports] If present this set of ports matching the hosts.
+         * @throws {InvalidState} if the client is not in disconnected state. The client must have received connectionLost
+         * or disconnected before calling connect for a second or subsequent time.
+         */
+        this.connect = function (connectOptions) {
+            connectOptions = connectOptions || {};
+            validate(connectOptions, {timeout: "number",
+                userName: "string",
+                password: "string",
+                willMessage: "object",
+                keepAliveInterval: "number",
+                cleanSession: "boolean",
+                useSSL: "boolean",
+                invocationContext: "object",
+                onSuccess: "function",
+                onFailure: "function",
+                hosts: "object",
+                ports: "object"});
+
+            // If no keep alive interval is set, assume 60 seconds.
+            if (connectOptions.keepAliveInterval === undefined)
+                connectOptions.keepAliveInterval = 60;
+
+            if (connectOptions.willMessage) {
+                if (!(connectOptions.willMessage instanceof Message))
+                    throw new Error(format(ERROR.INVALID_TYPE, [connectOptions.willMessage, "connectOptions.willMessage"]));
+                // The will message must have a payload that can be represented as a string.
+                // Cause the willMessage to throw an exception if this is not the case.
+                connectOptions.willMessage.stringPayload;
+
+                if (typeof connectOptions.willMessage.destinationName === "undefined")
+                    throw new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.willMessage.destinationName, "connectOptions.willMessage.destinationName"]));
+            }
+            if (typeof connectOptions.cleanSession === "undefined")
+                connectOptions.cleanSession = true;
+            if (connectOptions.hosts) {
+                if (!connectOptions.ports)
+                    throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.ports, "connectOptions.ports"]));
+                if (!(connectOptions.hosts instanceof Array))
+                    throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, "connectOptions.hosts"]));
+                if (!(connectOptions.ports instanceof Array))
+                    throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.ports, "connectOptions.ports"]));
+                if (connectOptions.hosts.length < 1)
+                    throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, "connectOptions.hosts"]));
+                if (connectOptions.hosts.length != connectOptions.ports.length)
+                    throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.ports, "connectOptions.ports"]));
+                for (var i = 0; i < connectOptions.hosts.length; i++) {
+                    if (typeof connectOptions.hosts[i] !== "string")
+                        throw new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.hosts[i], "connectOptions.hosts[" + i + "]"]));
+                    if (typeof connectOptions.ports[i] !== "number" || connectOptions.ports[i] < 0)
+                        throw new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.ports[i], "connectOptions.ports[" + i + "]"]));
+                }
+            }
+
+            client.connect(connectOptions);
+        };
+
+        /**
+         * Subscribe for messages, request receipt of a copy of messages sent to the destinations described by the filter.
+         *
+         * @name Messaging.Client#subscribe
+         * @function
+         * @param {string} filter describing the destinations to receive messages from.
+         * <br>
+         * @param {object} [subscribeOptions] used to control the subscription, as follows:
+         * <p>
+         * @config {number} [qos] the maiximum qos of any publications sent as a result of making this subscription.
+         * @config {object} [invocationContext] passed to the onSuccess callback or onFailure callback.
+         * @config {function} [onSuccess] called when the subscribe acknowledgement has been received from the server.
+         * A single response object parameter is passed to the onSuccess callback containing the following fields:
+         * <ol>
+         * <li>invocationContext if set in the subscribeOptions.
+         * </ol>
+         * @config {function} [onFailure] called when the subscribe request has failed or timed out.
+         * A single response object parameter is passed to the onFailure callback containing the following fields:
+         * <ol>
+         * <li>invocationContext if set in the subscribeOptions.
+         * <li>errorCode a number indicating the nature of the error.
+         * <li>errorMessage text describing the error.
+         * </ol>
+         * @config {number} [timeout] which if present determines the number of seconds after which the onFailure calback is called
+         * the presence of a timeout does not prevent the onSuccess callback from being called when the MQTT Suback is eventually received.
+         * @throws {InvalidState} if the client is not in connected state.
+         */
+        this.subscribe = function (filter, subscribeOptions) {
+            if (typeof filter !== "string")
+                throw new Error("Invalid argument:" + filter);
+            subscribeOptions = subscribeOptions || {};
+            validate(subscribeOptions, {qos: "number",
+                invocationContext: "object",
+                onSuccess: "function",
+                onFailure: "function",
+                timeout: "number"
+            });
+            if (subscribeOptions.timeout && !subscribeOptions.onFailure)
+                throw new Error("subscribeOptions.timeout specified with no onFailure callback.");
+            if (typeof subscribeOptions.qos !== "undefined"
+                && !(subscribeOptions.qos === 0 || subscribeOptions.qos === 1 || subscribeOptions.qos === 2 ))
+                throw new Error(format(ERROR.INVALID_ARGUMENT, [subscribeOptions.qos, "subscribeOptions.qos"]));
+            client.subscribe(filter, subscribeOptions);
+        };
+
+        /**
+         * Unsubscribe for messages, stop receiving messages sent to destinations described by the filter.
+         *
+         * @name Messaging.Client#unsubscribe
+         * @function
+         * @param {string} filter describing the destinations to receive messages from.
+         * @param {object} [unsubscribeOptions] used to control the subscription, as follows:
+         * <p>
+         * @config {object} [invocationContext] passed to the onSuccess callback or onFailure callback.
+         * @config {function} [onSuccess] called when the unsubscribe acknowledgement has been receive dfrom the server.
+         * A single response object parameter is passed to the onSuccess callback containing the following fields:
+         * <ol>
+         * <li>invocationContext if set in the unsubscribeOptions.
+         * </ol>
+         * @config {function} [onFailure] called when the unsubscribe request has failed or timed out.
+         * A single response object parameter is passed to the onFailure callback containing the following fields:
+         * <ol>
+         * <li>invocationContext if set in the unsubscribeOptions.
+         * <li>errorCode a number indicating the nature of the error.
+         * <li>errorMessage text describing the error.
+         * </ol>
+         * @config {number} [timeout] which if present determines the number of seconds after which the onFailure callback is called, the
+         * presence of a timeout does not prevent the onSuccess callback from being called when the MQTT UnSuback is eventually received.
+         * @throws {InvalidState} if the client is not in connected state.
+         */
+        this.unsubscribe = function (filter, unsubscribeOptions) {
+            if (typeof filter !== "string")
+                throw new Error("Invalid argument:" + filter);
+            unsubscribeOptions = unsubscribeOptions || {};
+            validate(unsubscribeOptions, {invocationContext: "object",
+                onSuccess: "function",
+                onFailure: "function",
+                timeout: "number"
+            });
+            if (unsubscribeOptions.timeout && !unsubscribeOptions.onFailure)
+                throw new Error("unsubscribeOptions.timeout specified with no onFailure callback.");
+            client.unsubscribe(filter, unsubscribeOptions);
+        };
+
+        /**
+         * Send a message to the consumers of the destination in the Message.
+         *
+         * @name Messaging.Client#send
+         * @function
+         * @param {Messaging.Message} message to send.
+
+         * @throws {InvalidState} if the client is not in connected state.
+         */
+        this.send = function (message) {
+            if (!(message instanceof Message))
+                throw new Error("Invalid argument:" + typeof message);
+            if (typeof message.destinationName === "undefined")
+                throw new Error("Invalid parameter Message.destinationName:" + message.destinationName);
+
+            client.send(message);
+        };
+
+        /**
+         * Normal disconnect of this Messaging client from its server.
+         *
+         * @name Messaging.Client#disconnect
+         * @function
+         * @throws {InvalidState} if the client is not in connected or connecting state.
+         */
+        this.disconnect = function () {
+            client.disconnect();
+        };
+
+        /**
+         * Get the contents of the trace log.
+         *
+         * @name Messaging.Client#getTraceLog
+         * @function
+         * @return {Object[]} tracebuffer containing the time ordered trace records.
+         */
+        this.getTraceLog = function () {
+            return client.getTraceLog();
+        }
+
+        /**
+         * Start tracing.
+         *
+         * @name Messaging.Client#startTrace
+         * @function
+         */
+        this.startTrace = function () {
+            client.startTrace();
+        };
+
+        /**
+         * Stop tracing.
+         *
+         * @name Messaging.Client#stopTrace
+         * @function
+         */
+        this.stopTrace = function () {
+            client.stopTrace();
+        };
+    };
+
+    Client.prototype = {
+        get host() {
+            return this._getHost();
+        },
+        set host(newHost) {
+            this._setHost(newHost);
+        },
+
+        get port() {
+            return this._getPort();
+        },
+        set port(newPort) {
+            this._setPort(newPort);
+        },
+
+        get clientId() {
+            return this._getClientId();
+        },
+        set clientId(newClientId) {
+            this._setClientId(newClientId);
+        },
+
+        get onConnectionLost() {
+            return this._getOnConnectionLost();
+        },
+        set onConnectionLost(newOnConnectionLost) {
+            this._setOnConnectionLost(newOnConnectionLost);
+        },
+
+        get onMessageDelivered() {
+            return this._getOnMessageDelivered();
+        },
+        set onMessageDelivered(newOnMessageDelivered) {
+            this._setOnMessageDelivered(newOnMessageDelivered);
+        },
+
+        get onMessageArrived() {
+            return this._getOnMessageArrived();
+        },
+        set onMessageArrived(newOnMessageArrived) {
+            this._setOnMessageArrived(newOnMessageArrived);
+        }
+    };
+
+    /**
+     * An application message, sent or received.
+     * <p>
+     * Other programming languages,
+     * <a href="/clients/java/doc/javadoc/com/ibm/micro/client/mqttv3/MqttMessage.html"><big>Java</big></a>,
+     * <a href="/clients/c/doc/html/struct_m_q_t_t_client__message.html"><big>C</big></a>.
+     * <p>
+     * All attributes may be null, which implies the default values.
+     *
+     * @name Messaging.Message
+     * @constructor
+     * @param {String|ArrayBuffer} payload The message data to be sent.
+     * <p>
+     * @property {string} payloadString <i>read only</i> The payload as a string if the payload consists of valid UTF-8 characters.
+     * @property {ArrayBuffer} payloadBytes <i>read only</i> The payload as an ArrayBuffer.
+     * <p>
+     * @property {string} destinationName <b>mandatory</b> The name of the destination to which the message is to be sent
+     *                    (for messages about to be sent) or the name of the destination from which the message has been received.
+     *                    (for messages received by the onMessage function).
+     * <p>
+     * @property {number} qos The Quality of Service used to deliver the message.
+     * <dl>
+     *     <dt>0 Best effort (default).
+     *     <dt>1 At least once.
+     *     <dt>2 Exactly once.
+     * </dl>
+     * <p>
+     * @property {Boolean} retained If true, the message is to be retained by the server and delivered
+     *                     to both current and future subscriptions.
+     *                     If false the server only delivers the message to current subscribers, this is the default for new Messages.
+     *                     A received message has the retained boolean set to true if the message was published
+     *                     with the retained boolean set to true
+     *                     and the subscrption was made after the message has been published.
+     * <p>
+     * @property {Boolean} duplicate <i>read only</i> If true, this message might be a duplicate of one which has already been received.
+     *                     This is only set on messages received from the server.
+     *
+     */
+    var Message = function (newPayload) {
+        var payload;
+        if (typeof newPayload === "string"
+            || newPayload instanceof ArrayBuffer
+            || newPayload instanceof Int8Array
+            || newPayload instanceof Uint8Array
+            || newPayload instanceof Int16Array
+            || newPayload instanceof Uint16Array
+            || newPayload instanceof Int32Array
+            || newPayload instanceof Uint32Array
+            || newPayload instanceof Float32Array
+            || newPayload instanceof Float64Array
+            ) {
+            payload = newPayload;
+        } else {
+            throw (format(ERROR.INVALID_ARGUMENT, [newPayload, "newPayload"]));
+        }
+
+        this._getPayloadString = function () {
+            if (typeof payload === "string")
+                return payload;
+            else
+                return parseUTF8(payload, 0, payload.length);
+        };
+
+        this._getPayloadBytes = function () {
+            if (typeof payload === "string") {
+                var buffer = new ArrayBuffer(UTF8Length(payload));
+                var byteStream = new Uint8Array(buffer);
+                stringToUTF8(payload, byteStream, 0);
+
+                return byteStream;
+            } else {
+                return payload;
+            }
+            ;
+        };
+
+        var destinationName = undefined;
+        this._getDestinationName = function () {
+            return destinationName;
+        };
+        this._setDestinationName = function (newDestinationName) {
+            if (typeof newDestinationName === "string")
+                destinationName = newDestinationName;
+            else
+                throw new Error(format(ERROR.INVALID_ARGUMENT, [newDestinationName, "newDestinationName"]));
+        };
+
+        var qos = 0;
+        this._getQos = function () {
+            return qos;
+        };
+        this._setQos = function (newQos) {
+            if (newQos === 0 || newQos === 1 || newQos === 2)
+                qos = newQos;
+            else
+                throw new Error("Invalid argument:" + newQos);
+        };
+
+        var retained = false;
+        this._getRetained = function () {
+            return retained;
+        };
+        this._setRetained = function (newRetained) {
+            if (typeof newRetained === "boolean")
+                retained = newRetained;
+            else
+                throw new Error(format(ERROR.INVALID_ARGUMENT, [newRetained, "newRetained"]));
+        };
+
+        var duplicate = false;
+        this._getDuplicate = function () {
+            return duplicate;
+        };
+        this._setDuplicate = function (newDuplicate) {
+            duplicate = newDuplicate;
+        };
+    };
+
+    Message.prototype = {
+        get payloadString() {
+            return this._getPayloadString();
+        },
+        get payloadBytes() {
+            return this._getPayloadBytes();
+        },
+
+        get destinationName() {
+            return this._getDestinationName();
+        },
+        set destinationName(newDestinationName) {
+            this._setDestinationName(newDestinationName);
+        },
+
+        get qos() {
+            return this._getQos();
+        },
+        set qos(newQos) {
+            this._setQos(newQos);
+        },
+
+        get retained() {
+            return this._getRetained();
+        },
+        set retained(newRetained) {
+            this._setRetained(newRetained);
+        },
+
+        get duplicate() {
+            return this._getDuplicate();
+        },
+        set duplicate(newDuplicate) {
+            this._setDuplicate(newDuplicate);
+        }
+    };
+
+    // Module contents.
+    return {
+        Client: Client,
+        Message: Message
+    };
+})(window);
diff --git a/packages/modules/web_themes/standard_legacy/web/js/mqttws31.min.js b/packages/modules/web_themes/standard_legacy/web/js/mqttws31.min.js
new file mode 100644
index 0000000000..1291061ed5
--- /dev/null
+++ b/packages/modules/web_themes/standard_legacy/web/js/mqttws31.min.js
@@ -0,0 +1,2 @@
+"undefined"==typeof Paho&&(Paho={}),Paho.MQTT=function(e){function t(e,t){var s=t,n=e[t],o=n>>4,r=n&=15;t+=1;var a,h=0,d=1;do{if(t==e.length)return[null,s];a=e[t++],h+=(127&a)*d,d*=128}while(0!=(128&a));var f=t+h;if(f>e.length)return[null,s];var l=new v(o);switch(o){case u.CONNACK:var _=e[t++];1&_&&(l.sessionPresent=!0),l.returnCode=e[t++];break;case u.PUBLISH:var g=r>>1&3,p=i(e,t);t+=2;var I=c(e,t,p);t+=p,g>0&&(l.messageIdentifier=i(e,t),t+=2);var w=new Paho.MQTT.Message(e.subarray(t,f));1==(1&r)&&(w.retained=!0),8==(8&r)&&(w.duplicate=!0),w.qos=g,w.destinationName=I,l.payloadMessage=w;break;case u.PUBACK:case u.PUBREC:case u.PUBREL:case u.PUBCOMP:case u.UNSUBACK:l.messageIdentifier=i(e,t);break;case u.SUBACK:l.messageIdentifier=i(e,t),t+=2,l.returnCode=e.subarray(t,f)}return[l,f]}function s(e,t,s){return t[s++]=e>>8,t[s++]=e%256,s}function n(e,t,n,i){return i=s(t,n,i),a(e,n,i),i+t}function i(e,t){return 256*e[t]+e[t+1]}function o(e){var t=new Array(1),s=0;do{var n=e%128;e>>=7,e>0&&(n|=128),t[s++]=n}while(e>0&&4>s);return t}function r(e){for(var t=0,s=0;s<e.length;s++){var n=e.charCodeAt(s);n>2047?(n>=55296&&56319>=n&&(s++,t++),t+=3):n>127?t+=2:t++}return t}function a(e,t,s){for(var n=s,i=0;i<e.length;i++){var o=e.charCodeAt(i);if(o>=55296&&56319>=o){var r=e.charCodeAt(++i);if(isNaN(r))throw new Error(g(l.MALFORMED_UNICODE,[o,r]));o=(o-55296<<10)+(r-56320)+65536}127>=o?t[n++]=o:2047>=o?(t[n++]=o>>6&31|192,t[n++]=63&o|128):65535>=o?(t[n++]=o>>12&15|224,t[n++]=o>>6&63|128,t[n++]=63&o|128):(t[n++]=o>>18&7|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128,t[n++]=63&o|128)}return t}function c(e,t,s){for(var n,i="",o=t;t+s>o;){var r=e[o++];if(128>r)n=r;else{var a=e[o++]-128;if(0>a)throw new Error(g(l.MALFORMED_UTF,[r.toString(16),a.toString(16),""]));if(224>r)n=64*(r-192)+a;else{var c=e[o++]-128;if(0>c)throw new Error(g(l.MALFORMED_UTF,[r.toString(16),a.toString(16),c.toString(16)]));if(240>r)n=4096*(r-224)+64*a+c;else{var h=e[o++]-128;if(0>h)throw new Error(g(l.MALFORMED_UTF,[r.toString(16),a.toString(16),c.toString(16),h.toString(16)]));if(!(248>r))throw new Error(g(l.MALFORMED_UTF,[r.toString(16),a.toString(16),c.toString(16),h.toString(16)]));n=262144*(r-240)+4096*a+64*c+h}}}n>65535&&(n-=65536,i+=String.fromCharCode(55296+(n>>10)),n=56320+(1023&n)),i+=String.fromCharCode(n)}return i}var h="@VERSION@",u={CONNECT:1,CONNACK:2,PUBLISH:3,PUBACK:4,PUBREC:5,PUBREL:6,PUBCOMP:7,SUBSCRIBE:8,SUBACK:9,UNSUBSCRIBE:10,UNSUBACK:11,PINGREQ:12,PINGRESP:13,DISCONNECT:14},d=function(e,t){for(var s in e)if(e.hasOwnProperty(s)){if(!t.hasOwnProperty(s)){var n="Unknown property, "+s+". Valid properties are:";for(var s in t)t.hasOwnProperty(s)&&(n=n+" "+s);throw new Error(n)}if(typeof e[s]!==t[s])throw new Error(g(l.INVALID_TYPE,[typeof e[s],s]))}},f=function(e,t){return function(){return e.apply(t,arguments)}},l={OK:{code:0,text:"AMQJSC0000I OK."},CONNECT_TIMEOUT:{code:1,text:"AMQJSC0001E Connect timed out."},SUBSCRIBE_TIMEOUT:{code:2,text:"AMQJS0002E Subscribe timed out."},UNSUBSCRIBE_TIMEOUT:{code:3,text:"AMQJS0003E Unsubscribe timed out."},PING_TIMEOUT:{code:4,text:"AMQJS0004E Ping timed out."},INTERNAL_ERROR:{code:5,text:"AMQJS0005E Internal error. Error Message: {0}, Stack trace: {1}"},CONNACK_RETURNCODE:{code:6,text:"AMQJS0006E Bad Connack return code:{0} {1}."},SOCKET_ERROR:{code:7,text:"AMQJS0007E Socket error:{0}."},SOCKET_CLOSE:{code:8,text:"AMQJS0008I Socket closed."},MALFORMED_UTF:{code:9,text:"AMQJS0009E Malformed UTF data:{0} {1} {2}."},UNSUPPORTED:{code:10,text:"AMQJS0010E {0} is not supported by this browser."},INVALID_STATE:{code:11,text:"AMQJS0011E Invalid state {0}."},INVALID_TYPE:{code:12,text:"AMQJS0012E Invalid type {0} for {1}."},INVALID_ARGUMENT:{code:13,text:"AMQJS0013E Invalid argument {0} for {1}."},UNSUPPORTED_OPERATION:{code:14,text:"AMQJS0014E Unsupported operation."},INVALID_STORED_DATA:{code:15,text:"AMQJS0015E Invalid data in local storage key={0} value={1}."},INVALID_MQTT_MESSAGE_TYPE:{code:16,text:"AMQJS0016E Invalid MQTT message type {0}."},MALFORMED_UNICODE:{code:17,text:"AMQJS0017E Malformed Unicode string:{0} {1}."}},_={0:"Connection Accepted",1:"Connection Refused: unacceptable protocol version",2:"Connection Refused: identifier rejected",3:"Connection Refused: server unavailable",4:"Connection Refused: bad user name or password",5:"Connection Refused: not authorized"},g=function(e,t){var s=e.text;if(t)for(var n,i,o=0;o<t.length;o++)if(n="{"+o+"}",i=s.indexOf(n),i>0){var r=s.substring(0,i),a=s.substring(i+n.length);s=r+t[o]+a}return s},p=[0,6,77,81,73,115,100,112,3],I=[0,4,77,81,84,84,4],v=function(e,t){this.type=e;for(var s in t)t.hasOwnProperty(s)&&(this[s]=t[s])};v.prototype.encode=function(){var e=(15&this.type)<<4,t=0,i=new Array,a=0;switch(void 0!=this.messageIdentifier&&(t+=2),this.type){case u.CONNECT:switch(this.mqttVersion){case 3:t+=p.length+3;break;case 4:t+=I.length+3}if(t+=r(this.clientId)+2,void 0!=this.willMessage){t+=r(this.willMessage.destinationName)+2;var c=this.willMessage.payloadBytes;c instanceof Uint8Array||(c=new Uint8Array(d)),t+=c.byteLength+2}void 0!=this.userName&&(t+=r(this.userName)+2),void 0!=this.password&&(t+=r(this.password)+2);break;case u.SUBSCRIBE:e|=2;for(var h=0;h<this.topics.length;h++)i[h]=r(this.topics[h]),t+=i[h]+2;t+=this.requestedQos.length;break;case u.UNSUBSCRIBE:e|=2;for(var h=0;h<this.topics.length;h++)i[h]=r(this.topics[h]),t+=i[h]+2;break;case u.PUBREL:e|=2;break;case u.PUBLISH:this.payloadMessage.duplicate&&(e|=8),e=e|=this.payloadMessage.qos<<1,this.payloadMessage.retained&&(e|=1),a=r(this.payloadMessage.destinationName),t+=a+2;var d=this.payloadMessage.payloadBytes;t+=d.byteLength,d instanceof ArrayBuffer?d=new Uint8Array(d):d instanceof Uint8Array||(d=new Uint8Array(d.buffer));break;case u.DISCONNECT:}var f=o(t),l=f.length+1,_=new ArrayBuffer(t+l),g=new Uint8Array(_);if(g[0]=e,g.set(f,1),this.type==u.PUBLISH)l=n(this.payloadMessage.destinationName,a,g,l);else if(this.type==u.CONNECT){switch(this.mqttVersion){case 3:g.set(p,l),l+=p.length;break;case 4:g.set(I,l),l+=I.length}var v=0;this.cleanSession&&(v=2),void 0!=this.willMessage&&(v|=4,v|=this.willMessage.qos<<3,this.willMessage.retained&&(v|=32)),void 0!=this.userName&&(v|=128),void 0!=this.password&&(v|=64),g[l++]=v,l=s(this.keepAliveInterval,g,l)}switch(void 0!=this.messageIdentifier&&(l=s(this.messageIdentifier,g,l)),this.type){case u.CONNECT:l=n(this.clientId,r(this.clientId),g,l),void 0!=this.willMessage&&(l=n(this.willMessage.destinationName,r(this.willMessage.destinationName),g,l),l=s(c.byteLength,g,l),g.set(c,l),l+=c.byteLength),void 0!=this.userName&&(l=n(this.userName,r(this.userName),g,l)),void 0!=this.password&&(l=n(this.password,r(this.password),g,l));break;case u.PUBLISH:g.set(d,l);break;case u.SUBSCRIBE:for(var h=0;h<this.topics.length;h++)l=n(this.topics[h],i[h],g,l),g[l++]=this.requestedQos[h];break;case u.UNSUBSCRIBE:for(var h=0;h<this.topics.length;h++)l=n(this.topics[h],i[h],g,l)}return _};var w=function(e,t,s){this._client=e,this._window=t,this._keepAliveInterval=1e3*s,this.isReset=!1;var n=new v(u.PINGREQ).encode(),i=function(e){return function(){return o.apply(e)}},o=function(){this.isReset?(this.isReset=!1,this._client._trace("Pinger.doPing","send PINGREQ"),this._client.socket.send(n),this.timeout=this._window.setTimeout(i(this),this._keepAliveInterval)):(this._client._trace("Pinger.doPing","Timed out"),this._client._disconnected(l.PING_TIMEOUT.code,g(l.PING_TIMEOUT)))};this.reset=function(){this.isReset=!0,this._window.clearTimeout(this.timeout),this._keepAliveInterval>0&&(this.timeout=setTimeout(i(this),this._keepAliveInterval))},this.cancel=function(){this._window.clearTimeout(this.timeout)}},E=function(e,t,s,n,i){this._window=t,s||(s=30);var o=function(e,t,s){return function(){return e.apply(t,s)}};this.timeout=setTimeout(o(n,e,i),1e3*s),this.cancel=function(){this._window.clearTimeout(this.timeout)}},y=function(t,s,n,i,o){if(!("WebSocket"in e&&null!==e.WebSocket))throw new Error(g(l.UNSUPPORTED,["WebSocket"]));if(!("localStorage"in e&&null!==e.localStorage))throw new Error(g(l.UNSUPPORTED,["localStorage"]));if(!("ArrayBuffer"in e&&null!==e.ArrayBuffer))throw new Error(g(l.UNSUPPORTED,["ArrayBuffer"]));this._trace("Paho.MQTT.Client",t,s,n,i,o),this.host=s,this.port=n,this.path=i,this.uri=t,this.clientId=o,this._localKey=s+":"+n+("/mqtt"!=i?":"+i:"")+":"+o+":",this._msg_queue=[],this._sentMessages={},this._receivedMessages={},this._notify_msg_sent={},this._message_identifier=1,this._sequence=0;for(var r in localStorage)0!=r.indexOf("Sent:"+this._localKey)&&0!=r.indexOf("Received:"+this._localKey)||this.restore(r)};y.prototype.host,y.prototype.port,y.prototype.path,y.prototype.uri,y.prototype.clientId,y.prototype.socket,y.prototype.connected=!1,y.prototype.maxMessageIdentifier=65536,y.prototype.connectOptions,y.prototype.hostIndex,y.prototype.onConnectionLost,y.prototype.onMessageDelivered,y.prototype.onMessageArrived,y.prototype.traceFunction,y.prototype._msg_queue=null,y.prototype._connectTimeout,y.prototype.sendPinger=null,y.prototype.receivePinger=null,y.prototype.receiveBuffer=null,y.prototype._traceBuffer=null,y.prototype._MAX_TRACE_ENTRIES=100,y.prototype.connect=function(e){var t=this._traceMask(e,"password");if(this._trace("Client.connect",t,this.socket,this.connected),this.connected)throw new Error(g(l.INVALID_STATE,["already connected"]));if(this.socket)throw new Error(g(l.INVALID_STATE,["already connected"]));this.connectOptions=e,e.uris?(this.hostIndex=0,this._doConnect(e.uris[0])):this._doConnect(this.uri)},y.prototype.subscribe=function(e,t){if(this._trace("Client.subscribe",e,t),!this.connected)throw new Error(g(l.INVALID_STATE,["not connected"]));var s=new v(u.SUBSCRIBE);s.topics=[e],void 0!=t.qos?s.requestedQos=[t.qos]:s.requestedQos=[0],t.onSuccess&&(s.onSuccess=function(e){t.onSuccess({invocationContext:t.invocationContext,grantedQos:e})}),t.onFailure&&(s.onFailure=function(e){t.onFailure({invocationContext:t.invocationContext,errorCode:e})}),t.timeout&&(s.timeOut=new E(this,window,t.timeout,t.onFailure,[{invocationContext:t.invocationContext,errorCode:l.SUBSCRIBE_TIMEOUT.code,errorMessage:g(l.SUBSCRIBE_TIMEOUT)}])),this._requires_ack(s),this._schedule_message(s)},y.prototype.unsubscribe=function(e,t){if(this._trace("Client.unsubscribe",e,t),!this.connected)throw new Error(g(l.INVALID_STATE,["not connected"]));var s=new v(u.UNSUBSCRIBE);s.topics=[e],t.onSuccess&&(s.callback=function(){t.onSuccess({invocationContext:t.invocationContext})}),t.timeout&&(s.timeOut=new E(this,window,t.timeout,t.onFailure,[{invocationContext:t.invocationContext,errorCode:l.UNSUBSCRIBE_TIMEOUT.code,errorMessage:g(l.UNSUBSCRIBE_TIMEOUT)}])),this._requires_ack(s),this._schedule_message(s)},y.prototype.send=function(e){if(this._trace("Client.send",e),!this.connected)throw new Error(g(l.INVALID_STATE,["not connected"]));wireMessage=new v(u.PUBLISH),wireMessage.payloadMessage=e,e.qos>0?this._requires_ack(wireMessage):this.onMessageDelivered&&(this._notify_msg_sent[wireMessage]=this.onMessageDelivered(wireMessage.payloadMessage)),this._schedule_message(wireMessage)},y.prototype.disconnect=function(){if(this._trace("Client.disconnect"),!this.socket)throw new Error(g(l.INVALID_STATE,["not connecting or connected"]));wireMessage=new v(u.DISCONNECT),this._notify_msg_sent[wireMessage]=f(this._disconnected,this),this._schedule_message(wireMessage)},y.prototype.getTraceLog=function(){if(null!==this._traceBuffer){this._trace("Client.getTraceLog",new Date),this._trace("Client.getTraceLog in flight messages",this._sentMessages.length);for(var e in this._sentMessages)this._trace("_sentMessages ",e,this._sentMessages[e]);for(var e in this._receivedMessages)this._trace("_receivedMessages ",e,this._receivedMessages[e]);return this._traceBuffer}},y.prototype.startTrace=function(){null===this._traceBuffer&&(this._traceBuffer=[]),this._trace("Client.startTrace",new Date,h)},y.prototype.stopTrace=function(){delete this._traceBuffer},y.prototype._doConnect=function(e){if(this.connectOptions.useSSL){var t=e.split(":");t[0]="wss",e=t.join(":")}this.connected=!1,this.connectOptions.mqttVersion<4?this.socket=new WebSocket(e,["mqttv3.1"]):this.socket=new WebSocket(e,["mqtt"]),this.socket.binaryType="arraybuffer",this.socket.onopen=f(this._on_socket_open,this),this.socket.onmessage=f(this._on_socket_message,this),this.socket.onerror=f(this._on_socket_error,this),this.socket.onclose=f(this._on_socket_close,this),this.sendPinger=new w(this,window,this.connectOptions.keepAliveInterval),this.receivePinger=new w(this,window,this.connectOptions.keepAliveInterval),this._connectTimeout=new E(this,window,this.connectOptions.timeout,this._disconnected,[l.CONNECT_TIMEOUT.code,g(l.CONNECT_TIMEOUT)])},y.prototype._schedule_message=function(e){this._msg_queue.push(e),this.connected&&this._process_queue()},y.prototype.store=function(e,t){var s={type:t.type,messageIdentifier:t.messageIdentifier,version:1};switch(t.type){case u.PUBLISH:t.pubRecReceived&&(s.pubRecReceived=!0),s.payloadMessage={};for(var n="",i=t.payloadMessage.payloadBytes,o=0;o<i.length;o++)i[o]<=15?n=n+"0"+i[o].toString(16):n+=i[o].toString(16);s.payloadMessage.payloadHex=n,s.payloadMessage.qos=t.payloadMessage.qos,s.payloadMessage.destinationName=t.payloadMessage.destinationName,t.payloadMessage.duplicate&&(s.payloadMessage.duplicate=!0),t.payloadMessage.retained&&(s.payloadMessage.retained=!0),0==e.indexOf("Sent:")&&(void 0===t.sequence&&(t.sequence=++this._sequence),s.sequence=t.sequence);break;default:throw Error(g(l.INVALID_STORED_DATA,[key,s]))}localStorage.setItem(e+this._localKey+t.messageIdentifier,JSON.stringify(s))},y.prototype.restore=function(e){var t=localStorage.getItem(e),s=JSON.parse(t),n=new v(s.type,s);switch(s.type){case u.PUBLISH:for(var i=s.payloadMessage.payloadHex,o=new ArrayBuffer(i.length/2),r=new Uint8Array(o),a=0;i.length>=2;){var c=parseInt(i.substring(0,2),16);i=i.substring(2,i.length),r[a++]=c}var h=new Paho.MQTT.Message(r);h.qos=s.payloadMessage.qos,h.destinationName=s.payloadMessage.destinationName,s.payloadMessage.duplicate&&(h.duplicate=!0),s.payloadMessage.retained&&(h.retained=!0),n.payloadMessage=h;break;default:throw Error(g(l.INVALID_STORED_DATA,[e,t]))}0==e.indexOf("Sent:"+this._localKey)?(n.payloadMessage.duplicate=!0,this._sentMessages[n.messageIdentifier]=n):0==e.indexOf("Received:"+this._localKey)&&(this._receivedMessages[n.messageIdentifier]=n)},y.prototype._process_queue=function(){for(var e=null,t=this._msg_queue.reverse();e=t.pop();)this._socket_send(e),this._notify_msg_sent[e]&&(this._notify_msg_sent[e](),delete this._notify_msg_sent[e])},y.prototype._requires_ack=function(e){var t=Object.keys(this._sentMessages).length;if(t>this.maxMessageIdentifier)throw Error("Too many messages:"+t);for(;void 0!==this._sentMessages[this._message_identifier];)this._message_identifier++;e.messageIdentifier=this._message_identifier,this._sentMessages[e.messageIdentifier]=e,e.type===u.PUBLISH&&this.store("Sent:",e),this._message_identifier===this.maxMessageIdentifier&&(this._message_identifier=1)},y.prototype._on_socket_open=function(){var e=new v(u.CONNECT,this.connectOptions);e.clientId=this.clientId,this._socket_send(e)},y.prototype._on_socket_message=function(e){this._trace("Client._on_socket_message",e.data);for(var t=this._deframeMessages(e.data),s=0;s<t.length;s+=1)this._handleMessage(t[s])},y.prototype._deframeMessages=function(e){var s=new Uint8Array(e);if(this.receiveBuffer){var n=new Uint8Array(this.receiveBuffer.length+s.length);n.set(this.receiveBuffer),n.set(s,this.receiveBuffer.length),s=n,delete this.receiveBuffer}try{for(var i=0,o=[];i<s.length;){var r=t(s,i),a=r[0];if(i=r[1],null===a)break;o.push(a)}i<s.length&&(this.receiveBuffer=s.subarray(i))}catch(c){return void this._disconnected(l.INTERNAL_ERROR.code,g(l.INTERNAL_ERROR,[c.message,c.stack.toString()]))}return o},y.prototype._handleMessage=function(e){this._trace("Client._handleMessage",e);try{switch(e.type){case u.CONNACK:if(this._connectTimeout.cancel(),this.connectOptions.cleanSession){for(var t in this._sentMessages){var s=this._sentMessages[t];localStorage.removeItem("Sent:"+this._localKey+s.messageIdentifier)}this._sentMessages={};for(var t in this._receivedMessages){var n=this._receivedMessages[t];localStorage.removeItem("Received:"+this._localKey+n.messageIdentifier)}this._receivedMessages={}}if(0!==e.returnCode){this._disconnected(l.CONNACK_RETURNCODE.code,g(l.CONNACK_RETURNCODE,[e.returnCode,_[e.returnCode]]));break}this.connected=!0,this.connectOptions.uris&&(this.hostIndex=this.connectOptions.uris.length);var i=new Array;for(var o in this._sentMessages)this._sentMessages.hasOwnProperty(o)&&i.push(this._sentMessages[o]);for(var i=i.sort(function(e,t){return e.sequence-t.sequence}),r=0,a=i.length;a>r;r++){var s=i[r];if(s.type==u.PUBLISH&&s.pubRecReceived){var c=new v(u.PUBREL,{messageIdentifier:s.messageIdentifier});this._schedule_message(c)}else this._schedule_message(s)}this.connectOptions.onSuccess&&this.connectOptions.onSuccess({invocationContext:this.connectOptions.invocationContext}),this._process_queue();break;case u.PUBLISH:this._receivePublish(e);break;case u.PUBACK:var s=this._sentMessages[e.messageIdentifier];s&&(delete this._sentMessages[e.messageIdentifier],localStorage.removeItem("Sent:"+this._localKey+e.messageIdentifier),this.onMessageDelivered&&this.onMessageDelivered(s.payloadMessage));break;case u.PUBREC:var s=this._sentMessages[e.messageIdentifier];if(s){s.pubRecReceived=!0;var c=new v(u.PUBREL,{messageIdentifier:e.messageIdentifier});this.store("Sent:",s),this._schedule_message(c)}break;case u.PUBREL:var n=this._receivedMessages[e.messageIdentifier];localStorage.removeItem("Received:"+this._localKey+e.messageIdentifier),n&&(this._receiveMessage(n),delete this._receivedMessages[e.messageIdentifier]);var h=new v(u.PUBCOMP,{messageIdentifier:e.messageIdentifier});this._schedule_message(h);break;case u.PUBCOMP:var s=this._sentMessages[e.messageIdentifier];delete this._sentMessages[e.messageIdentifier],localStorage.removeItem("Sent:"+this._localKey+e.messageIdentifier),this.onMessageDelivered&&this.onMessageDelivered(s.payloadMessage);break;case u.SUBACK:var s=this._sentMessages[e.messageIdentifier];s&&(s.timeOut&&s.timeOut.cancel(),128===e.returnCode[0]?s.onFailure&&s.onFailure(e.returnCode):s.onSuccess&&s.onSuccess(e.returnCode),delete this._sentMessages[e.messageIdentifier]);break;case u.UNSUBACK:var s=this._sentMessages[e.messageIdentifier];s&&(s.timeOut&&s.timeOut.cancel(),s.callback&&s.callback(),delete this._sentMessages[e.messageIdentifier]);break;case u.PINGRESP:this.sendPinger.reset();break;case u.DISCONNECT:this._disconnected(l.INVALID_MQTT_MESSAGE_TYPE.code,g(l.INVALID_MQTT_MESSAGE_TYPE,[e.type]));break;default:this._disconnected(l.INVALID_MQTT_MESSAGE_TYPE.code,g(l.INVALID_MQTT_MESSAGE_TYPE,[e.type]))}}catch(d){return void this._disconnected(l.INTERNAL_ERROR.code,g(l.INTERNAL_ERROR,[d.message,d.stack.toString()]))}},y.prototype._on_socket_error=function(e){this._disconnected(l.SOCKET_ERROR.code,g(l.SOCKET_ERROR,[e.data]))},y.prototype._on_socket_close=function(){this._disconnected(l.SOCKET_CLOSE.code,g(l.SOCKET_CLOSE))},y.prototype._socket_send=function(e){if(1==e.type){var t=this._traceMask(e,"password");this._trace("Client._socket_send",t)}else this._trace("Client._socket_send",e);this.socket.send(e.encode()),this.sendPinger.reset()},y.prototype._receivePublish=function(e){switch(e.payloadMessage.qos){case"undefined":case 0:this._receiveMessage(e);break;case 1:var t=new v(u.PUBACK,{messageIdentifier:e.messageIdentifier});this._schedule_message(t),this._receiveMessage(e);break;case 2:this._receivedMessages[e.messageIdentifier]=e,this.store("Received:",e);var s=new v(u.PUBREC,{messageIdentifier:e.messageIdentifier});this._schedule_message(s);break;default:throw Error("Invaild qos="+wireMmessage.payloadMessage.qos)}},y.prototype._receiveMessage=function(e){this.onMessageArrived&&this.onMessageArrived(e.payloadMessage)},y.prototype._disconnected=function(e,t){this._trace("Client._disconnected",e,t),this.sendPinger.cancel(),this.receivePinger.cancel(),this._connectTimeout&&this._connectTimeout.cancel(),this._msg_queue=[],this._notify_msg_sent={},this.socket&&(this.socket.onopen=null,this.socket.onmessage=null,this.socket.onerror=null,this.socket.onclose=null,1===this.socket.readyState&&this.socket.close(),delete this.socket),this.connectOptions.uris&&this.hostIndex<this.connectOptions.uris.length-1?(this.hostIndex++,this._doConnect(this.connectOptions.uris[this.hostIndex])):(void 0===e&&(e=l.OK.code,t=g(l.OK)),this.connected?(this.connected=!1,this.onConnectionLost&&this.onConnectionLost({errorCode:e,errorMessage:t})):4===this.connectOptions.mqttVersion&&this.connectOptions.mqttVersionExplicit===!1?(this._trace("Failed to connect V4, dropping back to V3"),this.connectOptions.mqttVersion=3,this.connectOptions.uris?(this.hostIndex=0,this._doConnect(this.connectOptions.uris[0])):this._doConnect(this.uri)):this.connectOptions.onFailure&&this.connectOptions.onFailure({invocationContext:this.connectOptions.invocationContext,errorCode:e,errorMessage:t}))},y.prototype._trace=function(){if(this.traceFunction){for(var e in arguments)"undefined"!=typeof arguments[e]&&(arguments[e]=JSON.stringify(arguments[e]));var t=Array.prototype.slice.call(arguments).join("");this.traceFunction({severity:"Debug",message:t})}if(null!==this._traceBuffer)for(var e=0,s=arguments.length;s>e;e++)this._traceBuffer.length==this._MAX_TRACE_ENTRIES&&this._traceBuffer.shift(),0===e?this._traceBuffer.push(arguments[e]):"undefined"==typeof arguments[e]?this._traceBuffer.push(arguments[e]):this._traceBuffer.push("  "+JSON.stringify(arguments[e]))},y.prototype._traceMask=function(e,t){var s={};for(var n in e)e.hasOwnProperty(n)&&(n==t?s[n]="******":s[n]=e[n]);return s};var M=function(e,t,s,n){var i;if("string"!=typeof e)throw new Error(g(l.INVALID_TYPE,[typeof e,"host"]));if(2==arguments.length){n=t,i=e;var o=i.match(/^(wss?):\/\/((\[(.+)\])|([^\/]+?))(:(\d+))?(\/.*)$/);if(!o)throw new Error(g(l.INVALID_ARGUMENT,[e,"host"]));e=o[4]||o[2],t=parseInt(o[7]),s=o[8]}else{if(3==arguments.length&&(n=s,s="/mqtt"),"number"!=typeof t||0>t)throw new Error(g(l.INVALID_TYPE,[typeof t,"port"]));if("string"!=typeof s)throw new Error(g(l.INVALID_TYPE,[typeof s,"path"]));var r=-1!=e.indexOf(":")&&"["!=e.slice(0,1)&&"]"!=e.slice(-1);i="ws://"+(r?"["+e+"]":e)+":"+t+s}for(var a=0,c=0;c<n.length;c++){var h=n.charCodeAt(c);h>=55296&&56319>=h&&c++,a++}if("string"!=typeof n||a>65535)throw new Error(g(l.INVALID_ARGUMENT,[n,"clientId"]));var u=new y(i,e,t,s,n);this._getHost=function(){return e},this._setHost=function(){throw new Error(g(l.UNSUPPORTED_OPERATION))},this._getPort=function(){return t},this._setPort=function(){throw new Error(g(l.UNSUPPORTED_OPERATION))},this._getPath=function(){return s},this._setPath=function(){throw new Error(g(l.UNSUPPORTED_OPERATION))},this._getURI=function(){return i},this._setURI=function(){throw new Error(g(l.UNSUPPORTED_OPERATION))},this._getClientId=function(){return u.clientId},this._setClientId=function(){throw new Error(g(l.UNSUPPORTED_OPERATION))},this._getOnConnectionLost=function(){return u.onConnectionLost},this._setOnConnectionLost=function(e){if("function"!=typeof e)throw new Error(g(l.INVALID_TYPE,[typeof e,"onConnectionLost"]));u.onConnectionLost=e},this._getOnMessageDelivered=function(){return u.onMessageDelivered},this._setOnMessageDelivered=function(e){if("function"!=typeof e)throw new Error(g(l.INVALID_TYPE,[typeof e,"onMessageDelivered"]));u.onMessageDelivered=e},this._getOnMessageArrived=function(){return u.onMessageArrived},this._setOnMessageArrived=function(e){if("function"!=typeof e)throw new Error(g(l.INVALID_TYPE,[typeof e,"onMessageArrived"]));u.onMessageArrived=e},this._getTrace=function(){return u.traceFunction},this._setTrace=function(e){if("function"!=typeof e)throw new Error(g(l.INVALID_TYPE,[typeof e,"onTrace"]));u.traceFunction=e},this.connect=function(e){if(e=e||{},d(e,{timeout:"number",userName:"string",password:"string",willMessage:"object",keepAliveInterval:"number",cleanSession:"boolean",useSSL:"boolean",invocationContext:"object",onSuccess:"function",onFailure:"function",hosts:"object",ports:"object",mqttVersion:"number",mqttVersionExplicit:"boolean",uris:"object"}),void 0===e.keepAliveInterval&&(e.keepAliveInterval=60),e.mqttVersion>4||e.mqttVersion<3)throw new Error(g(l.INVALID_ARGUMENT,[e.mqttVersion,"connectOptions.mqttVersion"]));if(void 0===e.mqttVersion?(e.mqttVersionExplicit=!1,e.mqttVersion=4):e.mqttVersionExplicit=!0,void 0!==e.password&&void 0===e.userName)throw new Error(g(l.INVALID_ARGUMENT,[e.password,"connectOptions.password"]));if(e.willMessage){if(!(e.willMessage instanceof m))throw new Error(g(l.INVALID_TYPE,[e.willMessage,"connectOptions.willMessage"]));if(e.willMessage.stringPayload,"undefined"==typeof e.willMessage.destinationName)throw new Error(g(l.INVALID_TYPE,[typeof e.willMessage.destinationName,"connectOptions.willMessage.destinationName"]))}if("undefined"==typeof e.cleanSession&&(e.cleanSession=!0),e.hosts){if(!(e.hosts instanceof Array))throw new Error(g(l.INVALID_ARGUMENT,[e.hosts,"connectOptions.hosts"]));if(e.hosts.length<1)throw new Error(g(l.INVALID_ARGUMENT,[e.hosts,"connectOptions.hosts"]));for(var t=!1,n=0;n<e.hosts.length;n++){if("string"!=typeof e.hosts[n])throw new Error(g(l.INVALID_TYPE,[typeof e.hosts[n],"connectOptions.hosts["+n+"]"]));if(/^(wss?):\/\/((\[(.+)\])|([^\/]+?))(:(\d+))?(\/.*)$/.test(e.hosts[n])){if(0==n)t=!0;else if(!t)throw new Error(g(l.INVALID_ARGUMENT,[e.hosts[n],"connectOptions.hosts["+n+"]"]))}else if(t)throw new Error(g(l.INVALID_ARGUMENT,[e.hosts[n],"connectOptions.hosts["+n+"]"]))}if(t)e.uris=e.hosts;else{if(!e.ports)throw new Error(g(l.INVALID_ARGUMENT,[e.ports,"connectOptions.ports"]));if(!(e.ports instanceof Array))throw new Error(g(l.INVALID_ARGUMENT,[e.ports,"connectOptions.ports"]));if(e.hosts.length!=e.ports.length)throw new Error(g(l.INVALID_ARGUMENT,[e.ports,"connectOptions.ports"]));e.uris=[];for(var n=0;n<e.hosts.length;n++){if("number"!=typeof e.ports[n]||e.ports[n]<0)throw new Error(g(l.INVALID_TYPE,[typeof e.ports[n],"connectOptions.ports["+n+"]"]));var o=e.hosts[n],r=e.ports[n],a=-1!=o.indexOf(":");i="ws://"+(a?"["+o+"]":o)+":"+r+s,e.uris.push(i)}}}u.connect(e)},this.subscribe=function(e,t){if("string"!=typeof e)throw new Error("Invalid argument:"+e);if(t=t||{},d(t,{qos:"number",invocationContext:"object",onSuccess:"function",onFailure:"function",timeout:"number"}),t.timeout&&!t.onFailure)throw new Error("subscribeOptions.timeout specified with no onFailure callback.");if("undefined"!=typeof t.qos&&0!==t.qos&&1!==t.qos&&2!==t.qos)throw new Error(g(l.INVALID_ARGUMENT,[t.qos,"subscribeOptions.qos"]));u.subscribe(e,t)},this.unsubscribe=function(e,t){if("string"!=typeof e)throw new Error("Invalid argument:"+e);if(t=t||{},d(t,{invocationContext:"object",onSuccess:"function",onFailure:"function",timeout:"number"}),t.timeout&&!t.onFailure)throw new Error("unsubscribeOptions.timeout specified with no onFailure callback.");u.unsubscribe(e,t)},this.send=function(e,t,s,n){var i;if(0==arguments.length)throw new Error("Invalid argument.length");if(1==arguments.length){if(!(e instanceof m)&&"string"!=typeof e)throw new Error("Invalid argument:"+typeof e);if(i=e,"undefined"==typeof i.destinationName)throw new Error(g(l.INVALID_ARGUMENT,[i.destinationName,"Message.destinationName"]));u.send(i)}else i=new m(t),i.destinationName=e,arguments.length>=3&&(i.qos=s),arguments.length>=4&&(i.retained=n),u.send(i)},this.disconnect=function(){u.disconnect()},this.getTraceLog=function(){return u.getTraceLog()},this.startTrace=function(){u.startTrace()},this.stopTrace=function(){u.stopTrace()},this.isConnected=function(){return u.connected}};M.prototype={get host(){return this._getHost()},set host(e){this._setHost(e)},get port(){return this._getPort()},set port(e){this._setPort(e)},get path(){return this._getPath()},set path(e){this._setPath(e)},get clientId(){return this._getClientId()},set clientId(e){this._setClientId(e)},get onConnectionLost(){return this._getOnConnectionLost()},set onConnectionLost(e){this._setOnConnectionLost(e)},get onMessageDelivered(){return this._getOnMessageDelivered()},set onMessageDelivered(e){this._setOnMessageDelivered(e)},get onMessageArrived(){return this._getOnMessageArrived()},set onMessageArrived(e){this._setOnMessageArrived(e)},get trace(){return this._getTrace()},set trace(e){this._setTrace(e)}};var m=function(e){var t;if(!("string"==typeof e||e instanceof ArrayBuffer||e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array))throw g(l.INVALID_ARGUMENT,[e,"newPayload"]);t=e,this._getPayloadString=function(){return"string"==typeof t?t:c(t,0,t.length)},this._getPayloadBytes=function(){if("string"==typeof t){var e=new ArrayBuffer(r(t)),s=new Uint8Array(e);return a(t,s,0),s}return t};var s=void 0;this._getDestinationName=function(){return s},this._setDestinationName=function(e){if("string"!=typeof e)throw new Error(g(l.INVALID_ARGUMENT,[e,"newDestinationName"]));s=e};var n=0;this._getQos=function(){return n},this._setQos=function(e){if(0!==e&&1!==e&&2!==e)throw new Error("Invalid argument:"+e);n=e};var i=!1;this._getRetained=function(){return i},this._setRetained=function(e){if("boolean"!=typeof e)throw new Error(g(l.INVALID_ARGUMENT,[e,"newRetained"]));i=e};var o=!1;this._getDuplicate=function(){return o},this._setDuplicate=function(e){o=e}};return m.prototype={get payloadString(){return this._getPayloadString()},get payloadBytes(){return this._getPayloadBytes()},get destinationName(){return this._getDestinationName()},set destinationName(e){this._setDestinationName(e)},get qos(){return this._getQos()},set qos(e){this._setQos(e)},get retained(){return this._getRetained()},set retained(e){this._setRetained(e)},get duplicate(){return this._getDuplicate()},set duplicate(e){this._setDuplicate(e)}},{Client:M,Message:m}}(window);
+//# sourceMappingURL=mqttws31.min.js.map
\ No newline at end of file
diff --git a/web/themes/dark/livechart.js b/packages/modules/web_themes/standard_legacy/web/livechart.js
similarity index 100%
rename from web/themes/dark/livechart.js
rename to packages/modules/web_themes/standard_legacy/web/livechart.js
diff --git a/web/manifest.json b/packages/modules/web_themes/standard_legacy/web/manifest.json
similarity index 97%
rename from web/manifest.json
rename to packages/modules/web_themes/standard_legacy/web/manifest.json
index 21aed5dcd4..08899a457c 100644
--- a/web/manifest.json
+++ b/packages/modules/web_themes/standard_legacy/web/manifest.json
@@ -40,7 +40,7 @@
 		}
 	],
 
-	"start_url": "index.php",
+	"start_url": "/",
 	"background_color": "#000000",
 	"display": "standalone",
 	"theme_color": "#000000",
diff --git a/web/themes/navbar.html b/packages/modules/web_themes/standard_legacy/web/navbar.html
similarity index 54%
rename from web/themes/navbar.html
rename to packages/modules/web_themes/standard_legacy/web/navbar.html
index 28c22501bc..4ba31d0916 100644
--- a/web/themes/navbar.html
+++ b/packages/modules/web_themes/standard_legacy/web/navbar.html
@@ -1,7 +1,7 @@
 <header>
 	<!-- Fixed navbar -->
 	<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
-		<a class="navbar-brand" href="./index.php">
+		<a class="navbar-brand" href=".">
 			<span>openWB</span>
 		</a>
 		<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
@@ -10,24 +10,20 @@
 		<div class="collapse navbar-collapse" id="collapsibleNavbar">
 			<ul class="navbar-nav">
 				<li class="nav-item">
-					<a class="nav-link" id="navStatus" href="settings/#/Status">Status</a>
-				</li>
-				<li class="nav-item hide" id="navStromtarifInfo">
-					<!-- link will be setup with mqtt topic -->
-					<a class="nav-link etproviderLink" href="#">Stromtarif-Info</a>
+					<a class="nav-link" id="navStatus" href="../../settings/#/Status" target="_parent">Status</a>
 				</li>
 				<li class="nav-item dropdown">
 					<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">Auswertungen</a>
 					<div class="dropdown-menu" aria-labelledby="navbarDropdown">
-						<a href="settings/#/Logging/ChargeLog" class="dropdown-item">Ladeprotokoll</a>
-						<a href="settings/#/Logging/Chart" class="dropdown-item">Diagramme</a>
+						<a href="../../settings/#/Logging/ChargeLog" class="dropdown-item" target="_parent">Ladeprotokoll</a>
+						<a href="../../settings/#/Logging/Chart" class="dropdown-item">Diagramme</a>
 					</div>
 				</li>
 				<li class="nav-item">
-					<a class="nav-link" id="navSettings" href="settings/">Einstellungen</a>
+					<a class="nav-link" id="navSettings" href="../../settings/" target="_parent">Einstellungen</a>
 				</li>
 				<li class="nav-item">
-					<a class="nav-link" id="navSmartHome" href="themes/standard/smartHome.html">SmartHome</a>
+					<a class="nav-link" id="navSmartHome" href="smartHome.html">SmartHome</a>
 				</li>
 			</ul>
 		</div>
diff --git a/web/themes/dark/processAllMqttMsg.js b/packages/modules/web_themes/standard_legacy/web/processAllMqttMsg.js
similarity index 100%
rename from web/themes/dark/processAllMqttMsg.js
rename to packages/modules/web_themes/standard_legacy/web/processAllMqttMsg.js
diff --git a/web/themes/standard/settings.css b/packages/modules/web_themes/standard_legacy/web/settings.css
similarity index 100%
rename from web/themes/standard/settings.css
rename to packages/modules/web_themes/standard_legacy/web/settings.css
diff --git a/web/themes/dark/setupMqttServices.js b/packages/modules/web_themes/standard_legacy/web/setupMqttServices.js
similarity index 100%
rename from web/themes/dark/setupMqttServices.js
rename to packages/modules/web_themes/standard_legacy/web/setupMqttServices.js
diff --git a/web/themes/dark/smartHome.html b/packages/modules/web_themes/standard_legacy/web/smartHome.html
similarity index 98%
rename from web/themes/dark/smartHome.html
rename to packages/modules/web_themes/standard_legacy/web/smartHome.html
index 9c7151583d..d783e10b9b 100644
--- a/web/themes/dark/smartHome.html
+++ b/packages/modules/web_themes/standard_legacy/web/smartHome.html
@@ -7,7 +7,6 @@
 
 	<title>openWB - SmartHome</title>
 	<meta charset="UTF-8">
-	<base href="/openWB/web/">
 	<meta name="viewport"
 		content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
 	<meta name="apple-mobile-web-app-capable" content="yes">
@@ -97,7 +96,7 @@
 		}
 		var themeCookie = getCookie('openWBTheme');
 		// include special Theme style
-		$('head').append('<link rel="stylesheet" href="themes/' + themeCookie + '/style.css?v=20221122">');
+		$('head').append('<link rel="stylesheet" href="style.css?v=20221122">');
 	</script>
 </head>
 
@@ -366,7 +365,7 @@
 
 		// load navbar, be careful: it loads asynchronous
 		$.get(
-			{ url: "themes/navbar.html", cache: false },
+			{ url: "navbar.html", cache: false },
 			function (data) {
 				$("#nav-placeholder").replaceWith(data);
 			}
@@ -457,11 +456,11 @@
 				// load mqtt library
 				'js/mqttws31.js',
 				// some helper functions
-				'themes/dark/helperFunctions.js?ver=20221117',
+				'helperFunctions.js?ver=20221117',
 				// functions for processing messages
-				'themes/dark/processAllMqttMsg.js?ver=20230606',
+				'processAllMqttMsg.js?ver=20230606',
 				// functions performing mqtt and start mqtt-service
-				'themes/dark/smartHomeMqttServices.js?ver=20230606',
+				'smartHomeMqttServices.js?ver=20230606',
 			];
 			scriptsToLoad.forEach(function (src) {
 				var script = document.createElement('script');
diff --git a/web/themes/dark/smartHomeMqttServices.js b/packages/modules/web_themes/standard_legacy/web/smartHomeMqttServices.js
similarity index 100%
rename from web/themes/dark/smartHomeMqttServices.js
rename to packages/modules/web_themes/standard_legacy/web/smartHomeMqttServices.js
diff --git a/web/themes/standard/style.css b/packages/modules/web_themes/standard_legacy/web/style.css
similarity index 100%
rename from web/themes/standard/style.css
rename to packages/modules/web_themes/standard_legacy/web/style.css
diff --git a/runs/send_debug.sh b/runs/send_debug.sh
index 715f768b63..cb4d258682 100755
--- a/runs/send_debug.sh
+++ b/runs/send_debug.sh
@@ -30,7 +30,7 @@ touch "$debugFile"
 	uptime
 	free
 	echo "############################ uuids ##############"
-	cat "${OPENWBBASEDIR}/data/log/uuid.log"
+	cat "${OPENWBBASEDIR}/data/log/uuid"
 	echo "############################ retained log ##############"
 	merge_log_files "main" 500
 	echo "############################ info log ##############"
diff --git a/web/css/animate.css b/web/css/animate.css
deleted file mode 100644
index 4ffd195e3a..0000000000
--- a/web/css/animate.css
+++ /dev/null
@@ -1,3391 +0,0 @@
-@charset "UTF-8";
-
-/*!
-Animate.css - http://daneden.me/animate
-Licensed under the MIT license - http://opensource.org/licenses/MIT
-
-Copyright (c) 2015 Daniel Eden
-*/
-
-.animated {
-  -webkit-animation-duration: .3s;
-  animation-duration: .3s;
-  -webkit-animation-fill-mode: both;
-  animation-fill-mode: both;
-}
-
-.animated.infinite {
-  -webkit-animation-iteration-count: infinite;
-  -webkit-animation-duration: 1s;
-  animation-duration: 1s;
-  animation-iteration-count: infinite;
-}
-
-.animated.hinge {
-  -webkit-animation-duration: 2s;
-  animation-duration: 2s;
-}
-
-@-webkit-keyframes bounce {
-  0%, 20%, 53%, 80%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    -webkit-transform: translate3d(0,0,0);
-    transform: translate3d(0,0,0);
-  }
-
-  40%, 43% {
-    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
-    transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
-    -webkit-transform: translate3d(0, -30px, 0);
-    transform: translate3d(0, -30px, 0);
-  }
-
-  70% {
-    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
-    transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
-    -webkit-transform: translate3d(0, -15px, 0);
-    transform: translate3d(0, -15px, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(0,-4px,0);
-    transform: translate3d(0,-4px,0);
-  }
-}
-
-@keyframes bounce {
-  0%, 20%, 53%, 80%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    -webkit-transform: translate3d(0,0,0);
-    -ms-transform: translate3d(0,0,0);
-    transform: translate3d(0,0,0);
-  }
-
-  40%, 43% {
-    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
-    transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
-    -webkit-transform: translate3d(0, -30px, 0);
-    -ms-transform: translate3d(0, -30px, 0);
-    transform: translate3d(0, -30px, 0);
-  }
-
-  70% {
-    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
-    transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
-    -webkit-transform: translate3d(0, -15px, 0);
-    -ms-transform: translate3d(0, -15px, 0);
-    transform: translate3d(0, -15px, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(0,-4px,0);
-    -ms-transform: translate3d(0,-4px,0);
-    transform: translate3d(0,-4px,0);
-  }
-}
-
-.bounce {
-  -webkit-animation-name: bounce;
-  animation-name: bounce;
-  -webkit-transform-origin: center bottom;
-  -ms-transform-origin: center bottom;
-  transform-origin: center bottom;
-}
-
-@-webkit-keyframes flash {
-  0%, 100% {
-    opacity: 1;
-  }
-
-  50% {
-    opacity: 0;
-  }
-}
-
-@keyframes flash {
-  0%, 100% {
-    opacity: 1;
-  }
-
-  50% {
-    opacity: 0;
-  }
-}
-
-.flash {
-  -webkit-animation-name: flash;
-  animation-name: flash;
-}
-
-/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
-
-@-webkit-keyframes pulse {
-  0% {
-    -webkit-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-
-  50% {
-    -webkit-transform: scale3d(1.05, 1.05, 1.05);
-    transform: scale3d(1.05, 1.05, 1.05);
-  }
-
-  100% {
-    -webkit-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-@keyframes pulse {
-  0% {
-    -webkit-transform: scale3d(1, 1, 1);
-    -ms-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-
-  50% {
-    -webkit-transform: scale3d(1.05, 1.05, 1.05);
-    -ms-transform: scale3d(1.05, 1.05, 1.05);
-    transform: scale3d(1.05, 1.05, 1.05);
-  }
-
-  100% {
-    -webkit-transform: scale3d(1, 1, 1);
-    -ms-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-.pulse {
-  -webkit-animation-name: pulse;
-  animation-name: pulse;
-}
-
-@-webkit-keyframes rubberBand {
-  0% {
-    -webkit-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-
-  30% {
-    -webkit-transform: scale3d(1.25, 0.75, 1);
-    transform: scale3d(1.25, 0.75, 1);
-  }
-
-  40% {
-    -webkit-transform: scale3d(0.75, 1.25, 1);
-    transform: scale3d(0.75, 1.25, 1);
-  }
-
-  50% {
-    -webkit-transform: scale3d(1.15, 0.85, 1);
-    transform: scale3d(1.15, 0.85, 1);
-  }
-
-  65% {
-    -webkit-transform: scale3d(.95, 1.05, 1);
-    transform: scale3d(.95, 1.05, 1);
-  }
-
-  75% {
-    -webkit-transform: scale3d(1.05, .95, 1);
-    transform: scale3d(1.05, .95, 1);
-  }
-
-  100% {
-    -webkit-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-@keyframes rubberBand {
-  0% {
-    -webkit-transform: scale3d(1, 1, 1);
-    -ms-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-
-  30% {
-    -webkit-transform: scale3d(1.25, 0.75, 1);
-    -ms-transform: scale3d(1.25, 0.75, 1);
-    transform: scale3d(1.25, 0.75, 1);
-  }
-
-  40% {
-    -webkit-transform: scale3d(0.75, 1.25, 1);
-    -ms-transform: scale3d(0.75, 1.25, 1);
-    transform: scale3d(0.75, 1.25, 1);
-  }
-
-  50% {
-    -webkit-transform: scale3d(1.15, 0.85, 1);
-    -ms-transform: scale3d(1.15, 0.85, 1);
-    transform: scale3d(1.15, 0.85, 1);
-  }
-
-  65% {
-    -webkit-transform: scale3d(.95, 1.05, 1);
-    -ms-transform: scale3d(.95, 1.05, 1);
-    transform: scale3d(.95, 1.05, 1);
-  }
-
-  75% {
-    -webkit-transform: scale3d(1.05, .95, 1);
-    -ms-transform: scale3d(1.05, .95, 1);
-    transform: scale3d(1.05, .95, 1);
-  }
-
-  100% {
-    -webkit-transform: scale3d(1, 1, 1);
-    -ms-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-.rubberBand {
-  -webkit-animation-name: rubberBand;
-  animation-name: rubberBand;
-}
-
-@-webkit-keyframes shake {
-  0%, 100% {
-    -webkit-transform: translate3d(0, 0, 0);
-    transform: translate3d(0, 0, 0);
-  }
-
-  10%, 30%, 50%, 70%, 90% {
-    -webkit-transform: translate3d(-10px, 0, 0);
-    transform: translate3d(-10px, 0, 0);
-  }
-
-  20%, 40%, 60%, 80% {
-    -webkit-transform: translate3d(10px, 0, 0);
-    transform: translate3d(10px, 0, 0);
-  }
-}
-
-@keyframes shake {
-  0%, 100% {
-    -webkit-transform: translate3d(0, 0, 0);
-    -ms-transform: translate3d(0, 0, 0);
-    transform: translate3d(0, 0, 0);
-  }
-
-  10%, 30%, 50%, 70%, 90% {
-    -webkit-transform: translate3d(-10px, 0, 0);
-    -ms-transform: translate3d(-10px, 0, 0);
-    transform: translate3d(-10px, 0, 0);
-  }
-
-  20%, 40%, 60%, 80% {
-    -webkit-transform: translate3d(10px, 0, 0);
-    -ms-transform: translate3d(10px, 0, 0);
-    transform: translate3d(10px, 0, 0);
-  }
-}
-
-.shake {
-  -webkit-animation-name: shake;
-  animation-name: shake;
-}
-
-@-webkit-keyframes swing {
-  20% {
-    -webkit-transform: rotate3d(0, 0, 1, 15deg);
-    transform: rotate3d(0, 0, 1, 15deg);
-  }
-
-  40% {
-    -webkit-transform: rotate3d(0, 0, 1, -10deg);
-    transform: rotate3d(0, 0, 1, -10deg);
-  }
-
-  60% {
-    -webkit-transform: rotate3d(0, 0, 1, 5deg);
-    transform: rotate3d(0, 0, 1, 5deg);
-  }
-
-  80% {
-    -webkit-transform: rotate3d(0, 0, 1, -5deg);
-    transform: rotate3d(0, 0, 1, -5deg);
-  }
-
-  100% {
-    -webkit-transform: rotate3d(0, 0, 1, 0deg);
-    transform: rotate3d(0, 0, 1, 0deg);
-  }
-}
-
-@keyframes swing {
-  20% {
-    -webkit-transform: rotate3d(0, 0, 1, 15deg);
-    -ms-transform: rotate3d(0, 0, 1, 15deg);
-    transform: rotate3d(0, 0, 1, 15deg);
-  }
-
-  40% {
-    -webkit-transform: rotate3d(0, 0, 1, -10deg);
-    -ms-transform: rotate3d(0, 0, 1, -10deg);
-    transform: rotate3d(0, 0, 1, -10deg);
-  }
-
-  60% {
-    -webkit-transform: rotate3d(0, 0, 1, 5deg);
-    -ms-transform: rotate3d(0, 0, 1, 5deg);
-    transform: rotate3d(0, 0, 1, 5deg);
-  }
-
-  80% {
-    -webkit-transform: rotate3d(0, 0, 1, -5deg);
-    -ms-transform: rotate3d(0, 0, 1, -5deg);
-    transform: rotate3d(0, 0, 1, -5deg);
-  }
-
-  100% {
-    -webkit-transform: rotate3d(0, 0, 1, 0deg);
-    -ms-transform: rotate3d(0, 0, 1, 0deg);
-    transform: rotate3d(0, 0, 1, 0deg);
-  }
-}
-
-.swing {
-  -webkit-transform-origin: top center;
-  -ms-transform-origin: top center;
-  transform-origin: top center;
-  -webkit-animation-name: swing;
-  animation-name: swing;
-}
-
-@-webkit-keyframes tada {
-  0% {
-    -webkit-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-
-  10%, 20% {
-    -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
-    transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
-  }
-
-  30%, 50%, 70%, 90% {
-    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
-    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
-  }
-
-  40%, 60%, 80% {
-    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
-    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
-  }
-
-  100% {
-    -webkit-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-@keyframes tada {
-  0% {
-    -webkit-transform: scale3d(1, 1, 1);
-    -ms-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-
-  10%, 20% {
-    -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
-    -ms-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
-    transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
-  }
-
-  30%, 50%, 70%, 90% {
-    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
-    -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
-    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
-  }
-
-  40%, 60%, 80% {
-    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
-    -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
-    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
-  }
-
-  100% {
-    -webkit-transform: scale3d(1, 1, 1);
-    -ms-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-.tada {
-  -webkit-animation-name: tada;
-  animation-name: tada;
-}
-
-/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
-
-@-webkit-keyframes wobble {
-  0% {
-    -webkit-transform: none;
-    transform: none;
-  }
-
-  15% {
-    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
-    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
-  }
-
-  30% {
-    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
-    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
-  }
-
-  45% {
-    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
-    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
-  }
-
-  60% {
-    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
-    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
-  }
-
-  75% {
-    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
-    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
-  }
-
-  100% {
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes wobble {
-  0% {
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-
-  15% {
-    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
-    -ms-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
-    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
-  }
-
-  30% {
-    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
-    -ms-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
-    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
-  }
-
-  45% {
-    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
-    -ms-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
-    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
-  }
-
-  60% {
-    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
-    -ms-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
-    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
-  }
-
-  75% {
-    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
-    -ms-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
-    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
-  }
-
-  100% {
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.wobble {
-  -webkit-animation-name: wobble;
-  animation-name: wobble;
-}
-
-@-webkit-keyframes bounceIn {
-  0%, 20%, 40%, 60%, 80%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.3, .3, .3);
-    transform: scale3d(.3, .3, .3);
-  }
-
-  20% {
-    -webkit-transform: scale3d(1.1, 1.1, 1.1);
-    transform: scale3d(1.1, 1.1, 1.1);
-  }
-
-  40% {
-    -webkit-transform: scale3d(.9, .9, .9);
-    transform: scale3d(.9, .9, .9);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(1.03, 1.03, 1.03);
-    transform: scale3d(1.03, 1.03, 1.03);
-  }
-
-  80% {
-    -webkit-transform: scale3d(.97, .97, .97);
-    transform: scale3d(.97, .97, .97);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-@keyframes bounceIn {
-  0%, 20%, 40%, 60%, 80%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.3, .3, .3);
-    -ms-transform: scale3d(.3, .3, .3);
-    transform: scale3d(.3, .3, .3);
-  }
-
-  20% {
-    -webkit-transform: scale3d(1.1, 1.1, 1.1);
-    -ms-transform: scale3d(1.1, 1.1, 1.1);
-    transform: scale3d(1.1, 1.1, 1.1);
-  }
-
-  40% {
-    -webkit-transform: scale3d(.9, .9, .9);
-    -ms-transform: scale3d(.9, .9, .9);
-    transform: scale3d(.9, .9, .9);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(1.03, 1.03, 1.03);
-    -ms-transform: scale3d(1.03, 1.03, 1.03);
-    transform: scale3d(1.03, 1.03, 1.03);
-  }
-
-  80% {
-    -webkit-transform: scale3d(.97, .97, .97);
-    -ms-transform: scale3d(.97, .97, .97);
-    transform: scale3d(.97, .97, .97);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: scale3d(1, 1, 1);
-    -ms-transform: scale3d(1, 1, 1);
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-.bounceIn {
-  -webkit-animation-name: bounceIn;
-  animation-name: bounceIn;
-  -webkit-animation-duration: .75s;
-  animation-duration: .75s;
-}
-
-@-webkit-keyframes bounceInDown {
-  0%, 60%, 75%, 90%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -3000px, 0);
-    transform: translate3d(0, -3000px, 0);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: translate3d(0, 25px, 0);
-    transform: translate3d(0, 25px, 0);
-  }
-
-  75% {
-    -webkit-transform: translate3d(0, -10px, 0);
-    transform: translate3d(0, -10px, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(0, 5px, 0);
-    transform: translate3d(0, 5px, 0);
-  }
-
-  100% {
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes bounceInDown {
-  0%, 60%, 75%, 90%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -3000px, 0);
-    -ms-transform: translate3d(0, -3000px, 0);
-    transform: translate3d(0, -3000px, 0);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: translate3d(0, 25px, 0);
-    -ms-transform: translate3d(0, 25px, 0);
-    transform: translate3d(0, 25px, 0);
-  }
-
-  75% {
-    -webkit-transform: translate3d(0, -10px, 0);
-    -ms-transform: translate3d(0, -10px, 0);
-    transform: translate3d(0, -10px, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(0, 5px, 0);
-    -ms-transform: translate3d(0, 5px, 0);
-    transform: translate3d(0, 5px, 0);
-  }
-
-  100% {
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.bounceInDown {
-  -webkit-animation-name: bounceInDown;
-  animation-name: bounceInDown;
-}
-
-@-webkit-keyframes bounceInLeft {
-  0%, 60%, 75%, 90%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(-3000px, 0, 0);
-    transform: translate3d(-3000px, 0, 0);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: translate3d(25px, 0, 0);
-    transform: translate3d(25px, 0, 0);
-  }
-
-  75% {
-    -webkit-transform: translate3d(-10px, 0, 0);
-    transform: translate3d(-10px, 0, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(5px, 0, 0);
-    transform: translate3d(5px, 0, 0);
-  }
-
-  100% {
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes bounceInLeft {
-  0%, 60%, 75%, 90%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(-3000px, 0, 0);
-    -ms-transform: translate3d(-3000px, 0, 0);
-    transform: translate3d(-3000px, 0, 0);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: translate3d(25px, 0, 0);
-    -ms-transform: translate3d(25px, 0, 0);
-    transform: translate3d(25px, 0, 0);
-  }
-
-  75% {
-    -webkit-transform: translate3d(-10px, 0, 0);
-    -ms-transform: translate3d(-10px, 0, 0);
-    transform: translate3d(-10px, 0, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(5px, 0, 0);
-    -ms-transform: translate3d(5px, 0, 0);
-    transform: translate3d(5px, 0, 0);
-  }
-
-  100% {
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.bounceInLeft {
-  -webkit-animation-name: bounceInLeft;
-  animation-name: bounceInLeft;
-}
-
-@-webkit-keyframes bounceInRight {
-  0%, 60%, 75%, 90%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(3000px, 0, 0);
-    transform: translate3d(3000px, 0, 0);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: translate3d(-25px, 0, 0);
-    transform: translate3d(-25px, 0, 0);
-  }
-
-  75% {
-    -webkit-transform: translate3d(10px, 0, 0);
-    transform: translate3d(10px, 0, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(-5px, 0, 0);
-    transform: translate3d(-5px, 0, 0);
-  }
-
-  100% {
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes bounceInRight {
-  0%, 60%, 75%, 90%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(3000px, 0, 0);
-    -ms-transform: translate3d(3000px, 0, 0);
-    transform: translate3d(3000px, 0, 0);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: translate3d(-25px, 0, 0);
-    -ms-transform: translate3d(-25px, 0, 0);
-    transform: translate3d(-25px, 0, 0);
-  }
-
-  75% {
-    -webkit-transform: translate3d(10px, 0, 0);
-    -ms-transform: translate3d(10px, 0, 0);
-    transform: translate3d(10px, 0, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(-5px, 0, 0);
-    -ms-transform: translate3d(-5px, 0, 0);
-    transform: translate3d(-5px, 0, 0);
-  }
-
-  100% {
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.bounceInRight {
-  -webkit-animation-name: bounceInRight;
-  animation-name: bounceInRight;
-}
-
-@-webkit-keyframes bounceInUp {
-  0%, 60%, 75%, 90%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 3000px, 0);
-    transform: translate3d(0, 3000px, 0);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: translate3d(0, -20px, 0);
-    transform: translate3d(0, -20px, 0);
-  }
-
-  75% {
-    -webkit-transform: translate3d(0, 10px, 0);
-    transform: translate3d(0, 10px, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(0, -5px, 0);
-    transform: translate3d(0, -5px, 0);
-  }
-
-  100% {
-    -webkit-transform: translate3d(0, 0, 0);
-    transform: translate3d(0, 0, 0);
-  }
-}
-
-@keyframes bounceInUp {
-  0%, 60%, 75%, 90%, 100% {
-    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-  }
-
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 3000px, 0);
-    -ms-transform: translate3d(0, 3000px, 0);
-    transform: translate3d(0, 3000px, 0);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: translate3d(0, -20px, 0);
-    -ms-transform: translate3d(0, -20px, 0);
-    transform: translate3d(0, -20px, 0);
-  }
-
-  75% {
-    -webkit-transform: translate3d(0, 10px, 0);
-    -ms-transform: translate3d(0, 10px, 0);
-    transform: translate3d(0, 10px, 0);
-  }
-
-  90% {
-    -webkit-transform: translate3d(0, -5px, 0);
-    -ms-transform: translate3d(0, -5px, 0);
-    transform: translate3d(0, -5px, 0);
-  }
-
-  100% {
-    -webkit-transform: translate3d(0, 0, 0);
-    -ms-transform: translate3d(0, 0, 0);
-    transform: translate3d(0, 0, 0);
-  }
-}
-
-.bounceInUp {
-  -webkit-animation-name: bounceInUp;
-  animation-name: bounceInUp;
-}
-
-@-webkit-keyframes bounceOut {
-  20% {
-    -webkit-transform: scale3d(.9, .9, .9);
-    transform: scale3d(.9, .9, .9);
-  }
-
-  50%, 55% {
-    opacity: 1;
-    -webkit-transform: scale3d(1.1, 1.1, 1.1);
-    transform: scale3d(1.1, 1.1, 1.1);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale3d(.3, .3, .3);
-    transform: scale3d(.3, .3, .3);
-  }
-}
-
-@keyframes bounceOut {
-  20% {
-    -webkit-transform: scale3d(.9, .9, .9);
-    -ms-transform: scale3d(.9, .9, .9);
-    transform: scale3d(.9, .9, .9);
-  }
-
-  50%, 55% {
-    opacity: 1;
-    -webkit-transform: scale3d(1.1, 1.1, 1.1);
-    -ms-transform: scale3d(1.1, 1.1, 1.1);
-    transform: scale3d(1.1, 1.1, 1.1);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale3d(.3, .3, .3);
-    -ms-transform: scale3d(.3, .3, .3);
-    transform: scale3d(.3, .3, .3);
-  }
-}
-
-.bounceOut {
-  -webkit-animation-name: bounceOut;
-  animation-name: bounceOut;
-  -webkit-animation-duration: .75s;
-  animation-duration: .75s;
-}
-
-@-webkit-keyframes bounceOutDown {
-  20% {
-    -webkit-transform: translate3d(0, 10px, 0);
-    transform: translate3d(0, 10px, 0);
-  }
-
-  40%, 45% {
-    opacity: 1;
-    -webkit-transform: translate3d(0, -20px, 0);
-    transform: translate3d(0, -20px, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 2000px, 0);
-    transform: translate3d(0, 2000px, 0);
-  }
-}
-
-@keyframes bounceOutDown {
-  20% {
-    -webkit-transform: translate3d(0, 10px, 0);
-    -ms-transform: translate3d(0, 10px, 0);
-    transform: translate3d(0, 10px, 0);
-  }
-
-  40%, 45% {
-    opacity: 1;
-    -webkit-transform: translate3d(0, -20px, 0);
-    -ms-transform: translate3d(0, -20px, 0);
-    transform: translate3d(0, -20px, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 2000px, 0);
-    -ms-transform: translate3d(0, 2000px, 0);
-    transform: translate3d(0, 2000px, 0);
-  }
-}
-
-.bounceOutDown {
-  -webkit-animation-name: bounceOutDown;
-  animation-name: bounceOutDown;
-}
-
-@-webkit-keyframes bounceOutLeft {
-  20% {
-    opacity: 1;
-    -webkit-transform: translate3d(20px, 0, 0);
-    transform: translate3d(20px, 0, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(-2000px, 0, 0);
-    transform: translate3d(-2000px, 0, 0);
-  }
-}
-
-@keyframes bounceOutLeft {
-  20% {
-    opacity: 1;
-    -webkit-transform: translate3d(20px, 0, 0);
-    -ms-transform: translate3d(20px, 0, 0);
-    transform: translate3d(20px, 0, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(-2000px, 0, 0);
-    -ms-transform: translate3d(-2000px, 0, 0);
-    transform: translate3d(-2000px, 0, 0);
-  }
-}
-
-.bounceOutLeft {
-  -webkit-animation-name: bounceOutLeft;
-  animation-name: bounceOutLeft;
-}
-
-@-webkit-keyframes bounceOutRight {
-  20% {
-    opacity: 1;
-    -webkit-transform: translate3d(-20px, 0, 0);
-    transform: translate3d(-20px, 0, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(2000px, 0, 0);
-    transform: translate3d(2000px, 0, 0);
-  }
-}
-
-@keyframes bounceOutRight {
-  20% {
-    opacity: 1;
-    -webkit-transform: translate3d(-20px, 0, 0);
-    -ms-transform: translate3d(-20px, 0, 0);
-    transform: translate3d(-20px, 0, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(2000px, 0, 0);
-    -ms-transform: translate3d(2000px, 0, 0);
-    transform: translate3d(2000px, 0, 0);
-  }
-}
-
-.bounceOutRight {
-  -webkit-animation-name: bounceOutRight;
-  animation-name: bounceOutRight;
-}
-
-@-webkit-keyframes bounceOutUp {
-  20% {
-    -webkit-transform: translate3d(0, -10px, 0);
-    transform: translate3d(0, -10px, 0);
-  }
-
-  40%, 45% {
-    opacity: 1;
-    -webkit-transform: translate3d(0, 20px, 0);
-    transform: translate3d(0, 20px, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -2000px, 0);
-    transform: translate3d(0, -2000px, 0);
-  }
-}
-
-@keyframes bounceOutUp {
-  20% {
-    -webkit-transform: translate3d(0, -10px, 0);
-    -ms-transform: translate3d(0, -10px, 0);
-    transform: translate3d(0, -10px, 0);
-  }
-
-  40%, 45% {
-    opacity: 1;
-    -webkit-transform: translate3d(0, 20px, 0);
-    -ms-transform: translate3d(0, 20px, 0);
-    transform: translate3d(0, 20px, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -2000px, 0);
-    -ms-transform: translate3d(0, -2000px, 0);
-    transform: translate3d(0, -2000px, 0);
-  }
-}
-
-.bounceOutUp {
-  -webkit-animation-name: bounceOutUp;
-  animation-name: bounceOutUp;
-}
-
-@-webkit-keyframes fadeIn {
-  0% {
-    opacity: 0;
-  }
-
-  100% {
-    opacity: 1;
-  }
-}
-
-@keyframes fadeIn {
-  0% {
-    opacity: 0;
-  }
-
-  100% {
-    opacity: 1;
-  }
-}
-
-.fadeIn {
-  -webkit-animation-name: fadeIn;
-  animation-name: fadeIn;
-}
-
-@-webkit-keyframes fadeInDown {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -10%, 0);
-    transform: translate3d(0, -10%, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes fadeInDown {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -10%, 0);
-    -ms-transform: translate3d(0, -10%, 0);
-    transform: translate3d(0, -10%, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.fadeInDown {
-  -webkit-animation-name: fadeInDown;
-  animation-name: fadeInDown;
-}
-
-@-webkit-keyframes fadeInDownBig {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -2000px, 0);
-    transform: translate3d(0, -2000px, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes fadeInDownBig {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -2000px, 0);
-    -ms-transform: translate3d(0, -2000px, 0);
-    transform: translate3d(0, -2000px, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.fadeInDownBig {
-  -webkit-animation-name: fadeInDownBig;
-  animation-name: fadeInDownBig;
-}
-
-@-webkit-keyframes fadeInLeft {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(-100%, 0, 0);
-    transform: translate3d(-100%, 0, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes fadeInLeft {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(-100%, 0, 0);
-    -ms-transform: translate3d(-100%, 0, 0);
-    transform: translate3d(-100%, 0, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.fadeInLeft {
-  -webkit-animation-name: fadeInLeft;
-  animation-name: fadeInLeft;
-}
-
-@-webkit-keyframes fadeInLeftBig {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(-2000px, 0, 0);
-    transform: translate3d(-2000px, 0, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes fadeInLeftBig {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(-2000px, 0, 0);
-    -ms-transform: translate3d(-2000px, 0, 0);
-    transform: translate3d(-2000px, 0, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.fadeInLeftBig {
-  -webkit-animation-name: fadeInLeftBig;
-  animation-name: fadeInLeftBig;
-}
-
-@-webkit-keyframes fadeInRight {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(100%, 0, 0);
-    transform: translate3d(100%, 0, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes fadeInRight {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(100%, 0, 0);
-    -ms-transform: translate3d(100%, 0, 0);
-    transform: translate3d(100%, 0, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.fadeInRight {
-  -webkit-animation-name: fadeInRight;
-  animation-name: fadeInRight;
-}
-
-@-webkit-keyframes fadeInRightBig {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(2000px, 0, 0);
-    transform: translate3d(2000px, 0, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes fadeInRightBig {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(2000px, 0, 0);
-    -ms-transform: translate3d(2000px, 0, 0);
-    transform: translate3d(2000px, 0, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.fadeInRightBig {
-  -webkit-animation-name: fadeInRightBig;
-  animation-name: fadeInRightBig;
-}
-
-@-webkit-keyframes fadeInUp {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 100%, 0);
-    transform: translate3d(0, 100%, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes fadeInUp {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 100%, 0);
-    -ms-transform: translate3d(0, 100%, 0);
-    transform: translate3d(0, 100%, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.fadeInUp {
-  -webkit-animation-name: fadeInUp;
-  animation-name: fadeInUp;
-}
-
-@-webkit-keyframes fadeInUpBig {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 2000px, 0);
-    transform: translate3d(0, 2000px, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes fadeInUpBig {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 2000px, 0);
-    -ms-transform: translate3d(0, 2000px, 0);
-    transform: translate3d(0, 2000px, 0);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.fadeInUpBig {
-  -webkit-animation-name: fadeInUpBig;
-  animation-name: fadeInUpBig;
-}
-
-@-webkit-keyframes fadeOut {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-  }
-}
-
-@keyframes fadeOut {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-  }
-}
-
-.fadeOut {
-  -webkit-animation-name: fadeOut;
-  animation-name: fadeOut;
-}
-
-@-webkit-keyframes fadeOutDown {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 100%, 0);
-    transform: translate3d(0, 100%, 0);
-  }
-}
-
-@keyframes fadeOutDown {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 100%, 0);
-    -ms-transform: translate3d(0, 100%, 0);
-    transform: translate3d(0, 100%, 0);
-  }
-}
-
-.fadeOutDown {
-  -webkit-animation-name: fadeOutDown;
-  animation-name: fadeOutDown;
-}
-
-@-webkit-keyframes fadeOutDownBig {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 2000px, 0);
-    transform: translate3d(0, 2000px, 0);
-  }
-}
-
-@keyframes fadeOutDownBig {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, 2000px, 0);
-    -ms-transform: translate3d(0, 2000px, 0);
-    transform: translate3d(0, 2000px, 0);
-  }
-}
-
-.fadeOutDownBig {
-  -webkit-animation-name: fadeOutDownBig;
-  animation-name: fadeOutDownBig;
-}
-
-@-webkit-keyframes fadeOutLeft {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(-100%, 0, 0);
-    transform: translate3d(-100%, 0, 0);
-  }
-}
-
-@keyframes fadeOutLeft {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(-100%, 0, 0);
-    -ms-transform: translate3d(-100%, 0, 0);
-    transform: translate3d(-100%, 0, 0);
-  }
-}
-
-.fadeOutLeft {
-  -webkit-animation-name: fadeOutLeft;
-  animation-name: fadeOutLeft;
-}
-
-@-webkit-keyframes fadeOutLeftBig {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(-2000px, 0, 0);
-    transform: translate3d(-2000px, 0, 0);
-  }
-}
-
-@keyframes fadeOutLeftBig {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(-2000px, 0, 0);
-    -ms-transform: translate3d(-2000px, 0, 0);
-    transform: translate3d(-2000px, 0, 0);
-  }
-}
-
-.fadeOutLeftBig {
-  -webkit-animation-name: fadeOutLeftBig;
-  animation-name: fadeOutLeftBig;
-}
-
-@-webkit-keyframes fadeOutRight {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(100%, 0, 0);
-    transform: translate3d(100%, 0, 0);
-  }
-}
-
-@keyframes fadeOutRight {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(100%, 0, 0);
-    -ms-transform: translate3d(100%, 0, 0);
-    transform: translate3d(100%, 0, 0);
-  }
-}
-
-.fadeOutRight {
-  -webkit-animation-name: fadeOutRight;
-  animation-name: fadeOutRight;
-}
-
-@-webkit-keyframes fadeOutRightBig {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(2000px, 0, 0);
-    transform: translate3d(2000px, 0, 0);
-  }
-}
-
-@keyframes fadeOutRightBig {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(2000px, 0, 0);
-    -ms-transform: translate3d(2000px, 0, 0);
-    transform: translate3d(2000px, 0, 0);
-  }
-}
-
-.fadeOutRightBig {
-  -webkit-animation-name: fadeOutRightBig;
-  animation-name: fadeOutRightBig;
-}
-
-@-webkit-keyframes fadeOutUp {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -100%, 0);
-    transform: translate3d(0, -100%, 0);
-  }
-}
-
-@keyframes fadeOutUp {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -100%, 0);
-    -ms-transform: translate3d(0, -100%, 0);
-    transform: translate3d(0, -100%, 0);
-  }
-}
-
-.fadeOutUp {
-  -webkit-animation-name: fadeOutUp;
-  animation-name: fadeOutUp;
-}
-
-@-webkit-keyframes fadeOutUpBig {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -2000px, 0);
-    transform: translate3d(0, -2000px, 0);
-  }
-}
-
-@keyframes fadeOutUpBig {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(0, -2000px, 0);
-    -ms-transform: translate3d(0, -2000px, 0);
-    transform: translate3d(0, -2000px, 0);
-  }
-}
-
-.fadeOutUpBig {
-  -webkit-animation-name: fadeOutUpBig;
-  animation-name: fadeOutUpBig;
-}
-
-@-webkit-keyframes flip {
-  0% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
-    -webkit-animation-timing-function: ease-out;
-    animation-timing-function: ease-out;
-  }
-
-  40% {
-    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
-    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
-    -webkit-animation-timing-function: ease-out;
-    animation-timing-function: ease-out;
-  }
-
-  50% {
-    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
-    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
-    -webkit-animation-timing-function: ease-in;
-    animation-timing-function: ease-in;
-  }
-
-  80% {
-    -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
-    transform: perspective(400px) scale3d(.95, .95, .95);
-    -webkit-animation-timing-function: ease-in;
-    animation-timing-function: ease-in;
-  }
-
-  100% {
-    -webkit-transform: perspective(400px);
-    transform: perspective(400px);
-    -webkit-animation-timing-function: ease-in;
-    animation-timing-function: ease-in;
-  }
-}
-
-@keyframes flip {
-  0% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
-    -ms-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
-    -webkit-animation-timing-function: ease-out;
-    animation-timing-function: ease-out;
-  }
-
-  40% {
-    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
-    -ms-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
-    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
-    -webkit-animation-timing-function: ease-out;
-    animation-timing-function: ease-out;
-  }
-
-  50% {
-    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
-    -ms-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
-    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
-    -webkit-animation-timing-function: ease-in;
-    animation-timing-function: ease-in;
-  }
-
-  80% {
-    -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
-    -ms-transform: perspective(400px) scale3d(.95, .95, .95);
-    transform: perspective(400px) scale3d(.95, .95, .95);
-    -webkit-animation-timing-function: ease-in;
-    animation-timing-function: ease-in;
-  }
-
-  100% {
-    -webkit-transform: perspective(400px);
-    -ms-transform: perspective(400px);
-    transform: perspective(400px);
-    -webkit-animation-timing-function: ease-in;
-    animation-timing-function: ease-in;
-  }
-}
-
-.animated.flip {
-  -webkit-backface-visibility: visible;
-  -ms-backface-visibility: visible;
-  backface-visibility: visible;
-  -webkit-animation-name: flip;
-  animation-name: flip;
-}
-
-@-webkit-keyframes flipInX {
-  0% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    -webkit-transition-timing-function: ease-in;
-    transition-timing-function: ease-in;
-    opacity: 0;
-  }
-
-  40% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    -webkit-transition-timing-function: ease-in;
-    transition-timing-function: ease-in;
-  }
-
-  60% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
-    opacity: 1;
-  }
-
-  80% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
-  }
-
-  100% {
-    -webkit-transform: perspective(400px);
-    transform: perspective(400px);
-  }
-}
-
-@keyframes flipInX {
-  0% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    -ms-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    -webkit-transition-timing-function: ease-in;
-    transition-timing-function: ease-in;
-    opacity: 0;
-  }
-
-  40% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    -ms-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    -webkit-transition-timing-function: ease-in;
-    transition-timing-function: ease-in;
-  }
-
-  60% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
-    -ms-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
-    opacity: 1;
-  }
-
-  80% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
-    -ms-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
-  }
-
-  100% {
-    -webkit-transform: perspective(400px);
-    -ms-transform: perspective(400px);
-    transform: perspective(400px);
-  }
-}
-
-.flipInX {
-  -webkit-backface-visibility: visible !important;
-  -ms-backface-visibility: visible !important;
-  backface-visibility: visible !important;
-  -webkit-animation-name: flipInX;
-  animation-name: flipInX;
-}
-
-@-webkit-keyframes flipInY {
-  0% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    -webkit-transition-timing-function: ease-in;
-    transition-timing-function: ease-in;
-    opacity: 0;
-  }
-
-  40% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
-    -webkit-transition-timing-function: ease-in;
-    transition-timing-function: ease-in;
-  }
-
-  60% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
-    opacity: 1;
-  }
-
-  80% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
-  }
-
-  100% {
-    -webkit-transform: perspective(400px);
-    transform: perspective(400px);
-  }
-}
-
-@keyframes flipInY {
-  0% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    -ms-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    -webkit-transition-timing-function: ease-in;
-    transition-timing-function: ease-in;
-    opacity: 0;
-  }
-
-  40% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
-    -ms-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
-    -webkit-transition-timing-function: ease-in;
-    transition-timing-function: ease-in;
-  }
-
-  60% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
-    -ms-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
-    opacity: 1;
-  }
-
-  80% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
-    -ms-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
-  }
-
-  100% {
-    -webkit-transform: perspective(400px);
-    -ms-transform: perspective(400px);
-    transform: perspective(400px);
-  }
-}
-
-.flipInY {
-  -webkit-backface-visibility: visible !important;
-  -ms-backface-visibility: visible !important;
-  backface-visibility: visible !important;
-  -webkit-animation-name: flipInY;
-  animation-name: flipInY;
-}
-
-@-webkit-keyframes flipOutX {
-  0% {
-    -webkit-transform: perspective(400px);
-    transform: perspective(400px);
-  }
-
-  30% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    opacity: 0;
-  }
-}
-
-@keyframes flipOutX {
-  0% {
-    -webkit-transform: perspective(400px);
-    -ms-transform: perspective(400px);
-    transform: perspective(400px);
-  }
-
-  30% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    -ms-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    -ms-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-    opacity: 0;
-  }
-}
-
-.flipOutX {
-  -webkit-animation-name: flipOutX;
-  animation-name: flipOutX;
-  -webkit-animation-duration: .75s;
-  animation-duration: .75s;
-  -webkit-backface-visibility: visible !important;
-  -ms-backface-visibility: visible !important;
-  backface-visibility: visible !important;
-}
-
-@-webkit-keyframes flipOutY {
-  0% {
-    -webkit-transform: perspective(400px);
-    transform: perspective(400px);
-  }
-
-  30% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    opacity: 0;
-  }
-}
-
-@keyframes flipOutY {
-  0% {
-    -webkit-transform: perspective(400px);
-    -ms-transform: perspective(400px);
-    transform: perspective(400px);
-  }
-
-  30% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
-    -ms-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    -ms-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-    opacity: 0;
-  }
-}
-
-.flipOutY {
-  -webkit-backface-visibility: visible !important;
-  -ms-backface-visibility: visible !important;
-  backface-visibility: visible !important;
-  -webkit-animation-name: flipOutY;
-  animation-name: flipOutY;
-  -webkit-animation-duration: .75s;
-  animation-duration: .75s;
-}
-
-@-webkit-keyframes lightSpeedIn {
-  0% {
-    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
-    transform: translate3d(100%, 0, 0) skewX(-30deg);
-    opacity: 0;
-  }
-
-  60% {
-    -webkit-transform: skewX(20deg);
-    transform: skewX(20deg);
-    opacity: 1;
-  }
-
-  80% {
-    -webkit-transform: skewX(-5deg);
-    transform: skewX(-5deg);
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-@keyframes lightSpeedIn {
-  0% {
-    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
-    -ms-transform: translate3d(100%, 0, 0) skewX(-30deg);
-    transform: translate3d(100%, 0, 0) skewX(-30deg);
-    opacity: 0;
-  }
-
-  60% {
-    -webkit-transform: skewX(20deg);
-    -ms-transform: skewX(20deg);
-    transform: skewX(20deg);
-    opacity: 1;
-  }
-
-  80% {
-    -webkit-transform: skewX(-5deg);
-    -ms-transform: skewX(-5deg);
-    transform: skewX(-5deg);
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-.lightSpeedIn {
-  -webkit-animation-name: lightSpeedIn;
-  animation-name: lightSpeedIn;
-  -webkit-animation-timing-function: ease-out;
-  animation-timing-function: ease-out;
-}
-
-@-webkit-keyframes lightSpeedOut {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
-    transform: translate3d(100%, 0, 0) skewX(30deg);
-    opacity: 0;
-  }
-}
-
-@keyframes lightSpeedOut {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
-    -ms-transform: translate3d(100%, 0, 0) skewX(30deg);
-    transform: translate3d(100%, 0, 0) skewX(30deg);
-    opacity: 0;
-  }
-}
-
-.lightSpeedOut {
-  -webkit-animation-name: lightSpeedOut;
-  animation-name: lightSpeedOut;
-  -webkit-animation-timing-function: ease-in;
-  animation-timing-function: ease-in;
-}
-
-@-webkit-keyframes rotateIn {
-  0% {
-    -webkit-transform-origin: center;
-    transform-origin: center;
-    -webkit-transform: rotate3d(0, 0, 1, -200deg);
-    transform: rotate3d(0, 0, 1, -200deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: center;
-    transform-origin: center;
-    -webkit-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-@keyframes rotateIn {
-  0% {
-    -webkit-transform-origin: center;
-    -ms-transform-origin: center;
-    transform-origin: center;
-    -webkit-transform: rotate3d(0, 0, 1, -200deg);
-    -ms-transform: rotate3d(0, 0, 1, -200deg);
-    transform: rotate3d(0, 0, 1, -200deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: center;
-    -ms-transform-origin: center;
-    transform-origin: center;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-.rotateIn {
-  -webkit-animation-name: rotateIn;
-  animation-name: rotateIn;
-}
-
-@-webkit-keyframes rotateInDownLeft {
-  0% {
-    -webkit-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: rotate3d(0, 0, 1, -45deg);
-    transform: rotate3d(0, 0, 1, -45deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-@keyframes rotateInDownLeft {
-  0% {
-    -webkit-transform-origin: left bottom;
-    -ms-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: rotate3d(0, 0, 1, -45deg);
-    -ms-transform: rotate3d(0, 0, 1, -45deg);
-    transform: rotate3d(0, 0, 1, -45deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: left bottom;
-    -ms-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-.rotateInDownLeft {
-  -webkit-animation-name: rotateInDownLeft;
-  animation-name: rotateInDownLeft;
-}
-
-@-webkit-keyframes rotateInDownRight {
-  0% {
-    -webkit-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: rotate3d(0, 0, 1, 45deg);
-    transform: rotate3d(0, 0, 1, 45deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-@keyframes rotateInDownRight {
-  0% {
-    -webkit-transform-origin: right bottom;
-    -ms-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: rotate3d(0, 0, 1, 45deg);
-    -ms-transform: rotate3d(0, 0, 1, 45deg);
-    transform: rotate3d(0, 0, 1, 45deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: right bottom;
-    -ms-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-.rotateInDownRight {
-  -webkit-animation-name: rotateInDownRight;
-  animation-name: rotateInDownRight;
-}
-
-@-webkit-keyframes rotateInUpLeft {
-  0% {
-    -webkit-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: rotate3d(0, 0, 1, 45deg);
-    transform: rotate3d(0, 0, 1, 45deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-@keyframes rotateInUpLeft {
-  0% {
-    -webkit-transform-origin: left bottom;
-    -ms-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: rotate3d(0, 0, 1, 45deg);
-    -ms-transform: rotate3d(0, 0, 1, 45deg);
-    transform: rotate3d(0, 0, 1, 45deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: left bottom;
-    -ms-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-.rotateInUpLeft {
-  -webkit-animation-name: rotateInUpLeft;
-  animation-name: rotateInUpLeft;
-}
-
-@-webkit-keyframes rotateInUpRight {
-  0% {
-    -webkit-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: rotate3d(0, 0, 1, -90deg);
-    transform: rotate3d(0, 0, 1, -90deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-@keyframes rotateInUpRight {
-  0% {
-    -webkit-transform-origin: right bottom;
-    -ms-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: rotate3d(0, 0, 1, -90deg);
-    -ms-transform: rotate3d(0, 0, 1, -90deg);
-    transform: rotate3d(0, 0, 1, -90deg);
-    opacity: 0;
-  }
-
-  100% {
-    -webkit-transform-origin: right bottom;
-    -ms-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-    opacity: 1;
-  }
-}
-
-.rotateInUpRight {
-  -webkit-animation-name: rotateInUpRight;
-  animation-name: rotateInUpRight;
-}
-
-@-webkit-keyframes rotateOut {
-  0% {
-    -webkit-transform-origin: center;
-    transform-origin: center;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: center;
-    transform-origin: center;
-    -webkit-transform: rotate3d(0, 0, 1, 200deg);
-    transform: rotate3d(0, 0, 1, 200deg);
-    opacity: 0;
-  }
-}
-
-@keyframes rotateOut {
-  0% {
-    -webkit-transform-origin: center;
-    -ms-transform-origin: center;
-    transform-origin: center;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: center;
-    -ms-transform-origin: center;
-    transform-origin: center;
-    -webkit-transform: rotate3d(0, 0, 1, 200deg);
-    -ms-transform: rotate3d(0, 0, 1, 200deg);
-    transform: rotate3d(0, 0, 1, 200deg);
-    opacity: 0;
-  }
-}
-
-.rotateOut {
-  -webkit-animation-name: rotateOut;
-  animation-name: rotateOut;
-}
-
-@-webkit-keyframes rotateOutDownLeft {
-  0% {
-    -webkit-transform-origin: left bottom;
-    transform-origin: left bottom;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: rotate3d(0, 0, 1, 45deg);
-    transform: rotate3d(0, 0, 1, 45deg);
-    opacity: 0;
-  }
-}
-
-@keyframes rotateOutDownLeft {
-  0% {
-    -webkit-transform-origin: left bottom;
-    -ms-transform-origin: left bottom;
-    transform-origin: left bottom;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: left bottom;
-    -ms-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: rotate3d(0, 0, 1, 45deg);
-    -ms-transform: rotate3d(0, 0, 1, 45deg);
-    transform: rotate3d(0, 0, 1, 45deg);
-    opacity: 0;
-  }
-}
-
-.rotateOutDownLeft {
-  -webkit-animation-name: rotateOutDownLeft;
-  animation-name: rotateOutDownLeft;
-}
-
-@-webkit-keyframes rotateOutDownRight {
-  0% {
-    -webkit-transform-origin: right bottom;
-    transform-origin: right bottom;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: rotate3d(0, 0, 1, -45deg);
-    transform: rotate3d(0, 0, 1, -45deg);
-    opacity: 0;
-  }
-}
-
-@keyframes rotateOutDownRight {
-  0% {
-    -webkit-transform-origin: right bottom;
-    -ms-transform-origin: right bottom;
-    transform-origin: right bottom;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: right bottom;
-    -ms-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: rotate3d(0, 0, 1, -45deg);
-    -ms-transform: rotate3d(0, 0, 1, -45deg);
-    transform: rotate3d(0, 0, 1, -45deg);
-    opacity: 0;
-  }
-}
-
-.rotateOutDownRight {
-  -webkit-animation-name: rotateOutDownRight;
-  animation-name: rotateOutDownRight;
-}
-
-@-webkit-keyframes rotateOutUpLeft {
-  0% {
-    -webkit-transform-origin: left bottom;
-    transform-origin: left bottom;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: rotate3d(0, 0, 1, -45deg);
-    transform: rotate3d(0, 0, 1, -45deg);
-    opacity: 0;
-  }
-}
-
-@keyframes rotateOutUpLeft {
-  0% {
-    -webkit-transform-origin: left bottom;
-    -ms-transform-origin: left bottom;
-    transform-origin: left bottom;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: left bottom;
-    -ms-transform-origin: left bottom;
-    transform-origin: left bottom;
-    -webkit-transform: rotate3d(0, 0, 1, -45deg);
-    -ms-transform: rotate3d(0, 0, 1, -45deg);
-    transform: rotate3d(0, 0, 1, -45deg);
-    opacity: 0;
-  }
-}
-
-.rotateOutUpLeft {
-  -webkit-animation-name: rotateOutUpLeft;
-  animation-name: rotateOutUpLeft;
-}
-
-@-webkit-keyframes rotateOutUpRight {
-  0% {
-    -webkit-transform-origin: right bottom;
-    transform-origin: right bottom;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: rotate3d(0, 0, 1, 90deg);
-    transform: rotate3d(0, 0, 1, 90deg);
-    opacity: 0;
-  }
-}
-
-@keyframes rotateOutUpRight {
-  0% {
-    -webkit-transform-origin: right bottom;
-    -ms-transform-origin: right bottom;
-    transform-origin: right bottom;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform-origin: right bottom;
-    -ms-transform-origin: right bottom;
-    transform-origin: right bottom;
-    -webkit-transform: rotate3d(0, 0, 1, 90deg);
-    -ms-transform: rotate3d(0, 0, 1, 90deg);
-    transform: rotate3d(0, 0, 1, 90deg);
-    opacity: 0;
-  }
-}
-
-.rotateOutUpRight {
-  -webkit-animation-name: rotateOutUpRight;
-  animation-name: rotateOutUpRight;
-}
-
-@-webkit-keyframes hinge {
-  0% {
-    -webkit-transform-origin: top left;
-    transform-origin: top left;
-    -webkit-animation-timing-function: ease-in-out;
-    animation-timing-function: ease-in-out;
-  }
-
-  20%, 60% {
-    -webkit-transform: rotate3d(0, 0, 1, 80deg);
-    transform: rotate3d(0, 0, 1, 80deg);
-    -webkit-transform-origin: top left;
-    transform-origin: top left;
-    -webkit-animation-timing-function: ease-in-out;
-    animation-timing-function: ease-in-out;
-  }
-
-  40%, 80% {
-    -webkit-transform: rotate3d(0, 0, 1, 60deg);
-    transform: rotate3d(0, 0, 1, 60deg);
-    -webkit-transform-origin: top left;
-    transform-origin: top left;
-    -webkit-animation-timing-function: ease-in-out;
-    animation-timing-function: ease-in-out;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: translate3d(0, 700px, 0);
-    transform: translate3d(0, 700px, 0);
-    opacity: 0;
-  }
-}
-
-@keyframes hinge {
-  0% {
-    -webkit-transform-origin: top left;
-    -ms-transform-origin: top left;
-    transform-origin: top left;
-    -webkit-animation-timing-function: ease-in-out;
-    animation-timing-function: ease-in-out;
-  }
-
-  20%, 60% {
-    -webkit-transform: rotate3d(0, 0, 1, 80deg);
-    -ms-transform: rotate3d(0, 0, 1, 80deg);
-    transform: rotate3d(0, 0, 1, 80deg);
-    -webkit-transform-origin: top left;
-    -ms-transform-origin: top left;
-    transform-origin: top left;
-    -webkit-animation-timing-function: ease-in-out;
-    animation-timing-function: ease-in-out;
-  }
-
-  40%, 80% {
-    -webkit-transform: rotate3d(0, 0, 1, 60deg);
-    -ms-transform: rotate3d(0, 0, 1, 60deg);
-    transform: rotate3d(0, 0, 1, 60deg);
-    -webkit-transform-origin: top left;
-    -ms-transform-origin: top left;
-    transform-origin: top left;
-    -webkit-animation-timing-function: ease-in-out;
-    animation-timing-function: ease-in-out;
-    opacity: 1;
-  }
-
-  100% {
-    -webkit-transform: translate3d(0, 700px, 0);
-    -ms-transform: translate3d(0, 700px, 0);
-    transform: translate3d(0, 700px, 0);
-    opacity: 0;
-  }
-}
-
-.hinge {
-  -webkit-animation-name: hinge;
-  animation-name: hinge;
-}
-
-/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
-
-@-webkit-keyframes rollIn {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
-    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    transform: none;
-  }
-}
-
-@keyframes rollIn {
-  0% {
-    opacity: 0;
-    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
-    -ms-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
-    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
-  }
-
-  100% {
-    opacity: 1;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-  }
-}
-
-.rollIn {
-  -webkit-animation-name: rollIn;
-  animation-name: rollIn;
-}
-
-/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
-
-@-webkit-keyframes rollOut {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
-    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
-  }
-}
-
-@keyframes rollOut {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
-    -ms-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
-    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
-  }
-}
-
-.rollOut {
-  -webkit-animation-name: rollOut;
-  animation-name: rollOut;
-}
-
-@-webkit-keyframes zoomIn {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.3, .3, .3);
-    transform: scale3d(.3, .3, .3);
-  }
-
-  50% {
-    opacity: 1;
-  }
-}
-
-@keyframes zoomIn {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.3, .3, .3);
-    -ms-transform: scale3d(.3, .3, .3);
-    transform: scale3d(.3, .3, .3);
-  }
-
-  50% {
-    opacity: 1;
-  }
-}
-
-.zoomIn {
-  -webkit-animation-name: zoomIn;
-  animation-name: zoomIn;
-}
-
-@-webkit-keyframes zoomInDown {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
-    transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-@keyframes zoomInDown {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
-    -ms-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
-    transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    -ms-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-.zoomInDown {
-  -webkit-animation-name: zoomInDown;
-  animation-name: zoomInDown;
-}
-
-@-webkit-keyframes zoomInLeft {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
-    transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
-    transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-@keyframes zoomInLeft {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
-    -ms-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
-    transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
-    -ms-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
-    transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-.zoomInLeft {
-  -webkit-animation-name: zoomInLeft;
-  animation-name: zoomInLeft;
-}
-
-@-webkit-keyframes zoomInRight {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
-    transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
-    transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-@keyframes zoomInRight {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
-    -ms-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
-    transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
-    -ms-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
-    transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-.zoomInRight {
-  -webkit-animation-name: zoomInRight;
-  animation-name: zoomInRight;
-}
-
-@-webkit-keyframes zoomInUp {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
-    transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-@keyframes zoomInUp {
-  0% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
-    -ms-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
-    transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  60% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    -ms-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-.zoomInUp {
-  -webkit-animation-name: zoomInUp;
-  animation-name: zoomInUp;
-}
-
-@-webkit-keyframes zoomOut {
-  0% {
-    opacity: 1;
-  }
-
-  50% {
-    opacity: 0;
-    -webkit-transform: scale3d(.3, .3, .3);
-    transform: scale3d(.3, .3, .3);
-  }
-
-  100% {
-    opacity: 0;
-  }
-}
-
-@keyframes zoomOut {
-  0% {
-    opacity: 1;
-  }
-
-  50% {
-    opacity: 0;
-    -webkit-transform: scale3d(.3, .3, .3);
-    -ms-transform: scale3d(.3, .3, .3);
-    transform: scale3d(.3, .3, .3);
-  }
-
-  100% {
-    opacity: 0;
-  }
-}
-
-.zoomOut {
-  -webkit-animation-name: zoomOut;
-  animation-name: zoomOut;
-}
-
-@-webkit-keyframes zoomOutDown {
-  40% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
-    transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
-    -webkit-transform-origin: center bottom;
-    transform-origin: center bottom;
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-@keyframes zoomOutDown {
-  40% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    -ms-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
-    -ms-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
-    transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
-    -webkit-transform-origin: center bottom;
-    -ms-transform-origin: center bottom;
-    transform-origin: center bottom;
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-.zoomOutDown {
-  -webkit-animation-name: zoomOutDown;
-  animation-name: zoomOutDown;
-}
-
-@-webkit-keyframes zoomOutLeft {
-  40% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
-    transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
-    transform: scale(.1) translate3d(-2000px, 0, 0);
-    -webkit-transform-origin: left center;
-    transform-origin: left center;
-  }
-}
-
-@keyframes zoomOutLeft {
-  40% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
-    -ms-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
-    transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
-    -ms-transform: scale(.1) translate3d(-2000px, 0, 0);
-    transform: scale(.1) translate3d(-2000px, 0, 0);
-    -webkit-transform-origin: left center;
-    -ms-transform-origin: left center;
-    transform-origin: left center;
-  }
-}
-
-.zoomOutLeft {
-  -webkit-animation-name: zoomOutLeft;
-  animation-name: zoomOutLeft;
-}
-
-@-webkit-keyframes zoomOutRight {
-  40% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
-    transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
-    transform: scale(.1) translate3d(2000px, 0, 0);
-    -webkit-transform-origin: right center;
-    transform-origin: right center;
-  }
-}
-
-@keyframes zoomOutRight {
-  40% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
-    -ms-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
-    transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
-    -ms-transform: scale(.1) translate3d(2000px, 0, 0);
-    transform: scale(.1) translate3d(2000px, 0, 0);
-    -webkit-transform-origin: right center;
-    -ms-transform-origin: right center;
-    transform-origin: right center;
-  }
-}
-
-.zoomOutRight {
-  -webkit-animation-name: zoomOutRight;
-  animation-name: zoomOutRight;
-}
-
-@-webkit-keyframes zoomOutUp {
-  40% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
-    transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
-    -webkit-transform-origin: center bottom;
-    transform-origin: center bottom;
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-@keyframes zoomOutUp {
-  40% {
-    opacity: 1;
-    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    -ms-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
-    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
-  }
-
-  100% {
-    opacity: 0;
-    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
-    -ms-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
-    transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
-    -webkit-transform-origin: center bottom;
-    -ms-transform-origin: center bottom;
-    transform-origin: center bottom;
-    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-  }
-}
-
-.zoomOutUp {
-  -webkit-animation-name: zoomOutUp;
-  animation-name: zoomOutUp;
-}
-
-@-webkit-keyframes slideInDown {
-  0% {
-    -webkit-transform: translateY(-100%);
-    transform: translateY(-100%);
-    visibility: visible;
-  }
-
-  100% {
-    -webkit-transform: translateY(0);
-    transform: translateY(0);
-  }
-}
-
-@keyframes slideInDown {
-  0% {
-    -webkit-transform: translateY(-100%);
-    -ms-transform: translateY(-100%);
-    transform: translateY(-100%);
-    visibility: visible;
-  }
-
-  100% {
-    -webkit-transform: translateY(0);
-    -ms-transform: translateY(0);
-    transform: translateY(0);
-  }
-}
-
-.slideInDown {
-  -webkit-animation-name: slideInDown;
-  animation-name: slideInDown;
-}
-
-@-webkit-keyframes slideInLeft {
-  0% {
-    -webkit-transform: translateX(-100%);
-    transform: translateX(-100%);
-    visibility: visible;
-  }
-
-  100% {
-    -webkit-transform: translateX(0);
-    transform: translateX(0);
-  }
-}
-
-@keyframes slideInLeft {
-  0% {
-    -webkit-transform: translateX(-100%);
-    -ms-transform: translateX(-100%);
-    transform: translateX(-100%);
-    visibility: visible;
-  }
-
-  100% {
-    -webkit-transform: translateX(0);
-    -ms-transform: translateX(0);
-    transform: translateX(0);
-  }
-}
-
-.slideInLeft {
-  -webkit-animation-name: slideInLeft;
-  animation-name: slideInLeft;
-}
-
-@-webkit-keyframes slideInRight {
-  0% {
-    -webkit-transform: translateX(100%);
-    transform: translateX(100%);
-    visibility: visible;
-  }
-
-  100% {
-    -webkit-transform: translateX(0);
-    transform: translateX(0);
-  }
-}
-
-@keyframes slideInRight {
-  0% {
-    -webkit-transform: translateX(100%);
-    -ms-transform: translateX(100%);
-    transform: translateX(100%);
-    visibility: visible;
-  }
-
-  100% {
-    -webkit-transform: translateX(0);
-    -ms-transform: translateX(0);
-    transform: translateX(0);
-  }
-}
-
-.slideInRight {
-  -webkit-animation-name: slideInRight;
-  animation-name: slideInRight;
-}
-
-@-webkit-keyframes slideInUp {
-  0% {
-    -webkit-transform: translateY(100%);
-    transform: translateY(100%);
-    visibility: visible;
-  }
-
-  100% {
-    -webkit-transform: translateY(0);
-    transform: translateY(0);
-  }
-}
-
-@keyframes slideInUp {
-  0% {
-    -webkit-transform: translateY(100%);
-    -ms-transform: translateY(100%);
-    transform: translateY(100%);
-    visibility: visible;
-  }
-
-  100% {
-    -webkit-transform: translateY(0);
-    -ms-transform: translateY(0);
-    transform: translateY(0);
-  }
-}
-
-.slideInUp {
-  -webkit-animation-name: slideInUp;
-  animation-name: slideInUp;
-}
-
-@-webkit-keyframes slideOutDown {
-  0% {
-    -webkit-transform: translateY(0);
-    transform: translateY(0);
-  }
-
-  100% {
-    visibility: hidden;
-    -webkit-transform: translateY(100%);
-    transform: translateY(100%);
-  }
-}
-
-@keyframes slideOutDown {
-  0% {
-    -webkit-transform: translateY(0);
-    -ms-transform: translateY(0);
-    transform: translateY(0);
-  }
-
-  100% {
-    visibility: hidden;
-    -webkit-transform: translateY(100%);
-    -ms-transform: translateY(100%);
-    transform: translateY(100%);
-  }
-}
-
-.slideOutDown {
-  -webkit-animation-name: slideOutDown;
-  animation-name: slideOutDown;
-}
-
-@-webkit-keyframes slideOutLeft {
-  0% {
-    -webkit-transform: translateX(0);
-    transform: translateX(0);
-  }
-
-  100% {
-    visibility: hidden;
-    -webkit-transform: translateX(-100%);
-    transform: translateX(-100%);
-  }
-}
-
-@keyframes slideOutLeft {
-  0% {
-    -webkit-transform: translateX(0);
-    -ms-transform: translateX(0);
-    transform: translateX(0);
-  }
-
-  100% {
-    visibility: hidden;
-    -webkit-transform: translateX(-100%);
-    -ms-transform: translateX(-100%);
-    transform: translateX(-100%);
-  }
-}
-
-.slideOutLeft {
-  -webkit-animation-name: slideOutLeft;
-  animation-name: slideOutLeft;
-}
-
-@-webkit-keyframes slideOutRight {
-  0% {
-    -webkit-transform: translateX(0);
-    transform: translateX(0);
-  }
-
-  100% {
-    visibility: hidden;
-    -webkit-transform: translateX(100%);
-    transform: translateX(100%);
-  }
-}
-
-@keyframes slideOutRight {
-  0% {
-    -webkit-transform: translateX(0);
-    -ms-transform: translateX(0);
-    transform: translateX(0);
-  }
-
-  100% {
-    visibility: hidden;
-    -webkit-transform: translateX(100%);
-    -ms-transform: translateX(100%);
-    transform: translateX(100%);
-  }
-}
-
-.slideOutRight {
-  -webkit-animation-name: slideOutRight;
-  animation-name: slideOutRight;
-}
-
-@-webkit-keyframes slideOutUp {
-  0% {
-    -webkit-transform: translateY(0);
-    transform: translateY(0);
-  }
-
-  100% {
-    visibility: hidden;
-    -webkit-transform: translateY(-100%);
-    transform: translateY(-100%);
-  }
-}
-
-@keyframes slideOutUp {
-  0% {
-    -webkit-transform: translateY(0);
-    -ms-transform: translateY(0);
-    transform: translateY(0);
-  }
-
-  100% {
-    visibility: hidden;
-    -webkit-transform: translateY(-100%);
-    -ms-transform: translateY(-100%);
-    transform: translateY(-100%);
-  }
-}
-
-.slideOutUp {
-  -webkit-animation-name: slideOutUp;
-  animation-name: slideOutUp;
-}
\ No newline at end of file
diff --git a/web/css/bootstrap-datepicker/bootstrap-datepicker3.min.css b/web/css/bootstrap-datepicker/bootstrap-datepicker3.min.css
deleted file mode 100644
index c98529a530..0000000000
--- a/web/css/bootstrap-datepicker/bootstrap-datepicker3.min.css
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)
- *
- * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
- */
-
-.datepicker{border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0;padding:4px}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.15);border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid rgba(0,0,0,.15)}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#777}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#eee;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td.highlighted{color:#000;background-color:#d9edf7;border-color:#85c5e5;border-radius:0}.datepicker table tr td.highlighted.focus,.datepicker table tr td.highlighted:focus{color:#000;background-color:#afd9ee;border-color:#298fc2}.datepicker table tr td.highlighted:hover{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active,.datepicker table tr td.highlighted:active{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active.focus,.datepicker table tr td.highlighted.active:focus,.datepicker table tr td.highlighted.active:hover,.datepicker table tr td.highlighted:active.focus,.datepicker table tr td.highlighted:active:focus,.datepicker table tr td.highlighted:active:hover{color:#000;background-color:#91cbe8;border-color:#298fc2}.datepicker table tr td.highlighted.disabled.focus,.datepicker table tr td.highlighted.disabled:focus,.datepicker table tr td.highlighted.disabled:hover,.datepicker table tr td.highlighted[disabled].focus,.datepicker table tr td.highlighted[disabled]:focus,.datepicker table tr td.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.highlighted.focus,fieldset[disabled] .datepicker table tr td.highlighted:focus,fieldset[disabled] .datepicker table tr td.highlighted:hover{background-color:#d9edf7;border-color:#85c5e5}.datepicker table tr td.highlighted.focused{background:#afd9ee}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#d9edf7;color:#777}.datepicker table tr td.today{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focus,.datepicker table tr td.today:focus{color:#000;background-color:#ffc966;border-color:#b37400}.datepicker table tr td.today:hover{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today:active{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active.focus,.datepicker table tr td.today.active:focus,.datepicker table tr td.today.active:hover,.datepicker table tr td.today:active.focus,.datepicker table tr td.today:active:focus,.datepicker table tr td.today:active:hover{color:#000;background-color:#ffbc42;border-color:#b37400}.datepicker table tr td.today.disabled.focus,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today[disabled].focus,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today.focus,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focused{background:#ffc966}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#ffdb99;color:#777}.datepicker table tr td.range{color:#000;background-color:#eee;border-color:#bbb;border-radius:0}.datepicker table tr td.range.focus,.datepicker table tr td.range:focus{color:#000;background-color:#d5d5d5;border-color:#7c7c7c}.datepicker table tr td.range:hover{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active,.datepicker table tr td.range:active{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active.focus,.datepicker table tr td.range.active:focus,.datepicker table tr td.range.active:hover,.datepicker table tr td.range:active.focus,.datepicker table tr td.range:active:focus,.datepicker table tr td.range:active:hover{color:#000;background-color:#c3c3c3;border-color:#7c7c7c}.datepicker table tr td.range.disabled.focus,.datepicker table tr td.range.disabled:focus,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range[disabled].focus,.datepicker table tr td.range[disabled]:focus,.datepicker table tr td.range[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.focus,fieldset[disabled] .datepicker table tr td.range:focus,fieldset[disabled] .datepicker table tr td.range:hover{background-color:#eee;border-color:#bbb}.datepicker table tr td.range.focused{background:#d5d5d5}.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#eee;color:#777}.datepicker table tr td.range.highlighted{color:#000;background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focus,.datepicker table tr td.range.highlighted:focus{color:#000;background-color:#c1d7e3;border-color:#4b88a6}.datepicker table tr td.range.highlighted:hover{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active,.datepicker table tr td.range.highlighted:active{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active.focus,.datepicker table tr td.range.highlighted.active:focus,.datepicker table tr td.range.highlighted.active:hover,.datepicker table tr td.range.highlighted:active.focus,.datepicker table tr td.range.highlighted:active:focus,.datepicker table tr td.range.highlighted:active:hover{color:#000;background-color:#a8c8d8;border-color:#4b88a6}.datepicker table tr td.range.highlighted.disabled.focus,.datepicker table tr td.range.highlighted.disabled:focus,.datepicker table tr td.range.highlighted.disabled:hover,.datepicker table tr td.range.highlighted[disabled].focus,.datepicker table tr td.range.highlighted[disabled]:focus,.datepicker table tr td.range.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.highlighted.focus,fieldset[disabled] .datepicker table tr td.range.highlighted:focus,fieldset[disabled] .datepicker table tr td.range.highlighted:hover{background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focused{background:#c1d7e3}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e4eef3;color:#777}.datepicker table tr td.range.today{color:#000;background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.focus,.datepicker table tr td.range.today:focus{color:#000;background-color:#f4b747;border-color:#815608}.datepicker table tr td.range.today:hover{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:active{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active.focus,.datepicker table tr td.range.today.active:focus,.datepicker table tr td.range.today.active:hover,.datepicker table tr td.range.today:active.focus,.datepicker table tr td.range.today:active:focus,.datepicker table tr td.range.today:active:hover{color:#000;background-color:#f2aa25;border-color:#815608}.datepicker table tr td.range.today.disabled.focus,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today[disabled].focus,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today.focus,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#f7ca77;color:#777}.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted{color:#fff;background-color:#777;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.focus,.datepicker table tr td.selected.highlighted.focus,.datepicker table tr td.selected.highlighted:focus,.datepicker table tr td.selected:focus{color:#fff;background-color:#5e5e5e;border-color:#161616}.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active,.datepicker table tr td.selected.highlighted.active,.datepicker table tr td.selected.highlighted:active,.datepicker table tr td.selected:active{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active.focus,.datepicker table tr td.selected.active:focus,.datepicker table tr td.selected.active:hover,.datepicker table tr td.selected.highlighted.active.focus,.datepicker table tr td.selected.highlighted.active:focus,.datepicker table tr td.selected.highlighted.active:hover,.datepicker table tr td.selected.highlighted:active.focus,.datepicker table tr td.selected.highlighted:active:focus,.datepicker table tr td.selected.highlighted:active:hover,.datepicker table tr td.selected:active.focus,.datepicker table tr td.selected:active:focus,.datepicker table tr td.selected:active:hover{color:#fff;background-color:#4c4c4c;border-color:#161616}.datepicker table tr td.selected.disabled.focus,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.highlighted.disabled.focus,.datepicker table tr td.selected.highlighted.disabled:focus,.datepicker table tr td.selected.highlighted.disabled:hover,.datepicker table tr td.selected.highlighted[disabled].focus,.datepicker table tr td.selected.highlighted[disabled]:focus,.datepicker table tr td.selected.highlighted[disabled]:hover,.datepicker table tr td.selected[disabled].focus,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover{background-color:#777;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.highlighted{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.focus,.datepicker table tr td.active.highlighted.focus,.datepicker table tr td.active.highlighted:focus,.datepicker table tr td.active:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active,.datepicker table tr td.active.highlighted.active,.datepicker table tr td.active.highlighted:active,.datepicker table tr td.active:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active.focus,.datepicker table tr td.active.active:focus,.datepicker table tr td.active.active:hover,.datepicker table tr td.active.highlighted.active.focus,.datepicker table tr td.active.highlighted.active:focus,.datepicker table tr td.active.highlighted.active:hover,.datepicker table tr td.active.highlighted:active.focus,.datepicker table tr td.active.highlighted:active:focus,.datepicker table tr td.active.highlighted:active:hover,.datepicker table tr td.active:active.focus,.datepicker table tr td.active:active:focus,.datepicker table tr td.active:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td.active.disabled.focus,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.highlighted.disabled.focus,.datepicker table tr td.active.highlighted.disabled:focus,.datepicker table tr td.active.highlighted.disabled:hover,.datepicker table tr td.active.highlighted[disabled].focus,.datepicker table tr td.active.highlighted[disabled]:focus,.datepicker table tr td.active.highlighted[disabled]:hover,.datepicker table tr td.active[disabled].focus,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active.focus,fieldset[disabled] .datepicker table tr td.active.highlighted.focus,fieldset[disabled] .datepicker table tr td.active.highlighted:focus,fieldset[disabled] .datepicker table tr td.active.highlighted:hover,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover.focus,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.focus,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover.focus,.datepicker table tr td span.active:hover:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td span.active.disabled.disabled.focus,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled.focus,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled].focus,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled].focus,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled.focus,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled].focus,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled].focus,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active.disabled.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active.focus,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.focus,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#777}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;line-height:1.42857143;border-width:1px 0;margin-left:-5px;margin-right:-5px}
\ No newline at end of file
diff --git a/web/css/bootstrap-selectpicker/bootstrap-select.min.css b/web/css/bootstrap-selectpicker/bootstrap-select.min.css
deleted file mode 100644
index 59708ed54d..0000000000
--- a/web/css/bootstrap-selectpicker/bootstrap-select.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Bootstrap-select v1.13.14 (https://developer.snapappointments.com/bootstrap-select)
- *
- * Copyright 2012-2020 SnapAppointments, LLC
- * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
- */@-webkit-keyframes bs-notify-fadeOut{0%{opacity:.9}100%{opacity:0}}@-o-keyframes bs-notify-fadeOut{0%{opacity:.9}100%{opacity:0}}@keyframes bs-notify-fadeOut{0%{opacity:.9}100%{opacity:0}}.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\0;vertical-align:middle}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;text-align:right;white-space:nowrap;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.bootstrap-select>.dropdown-toggle:after{margin-top:-1px}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none;z-index:0!important}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2!important}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select select:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select select:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus,.bootstrap-select>select.mobile-device:focus+.dropdown-toggle{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none;height:auto}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{float:none;z-index:auto}.form-inline .bootstrap-select,.form-inline .bootstrap-select.form-control:not([class*=col-]){width:auto}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle .filter-option{position:static;top:0;left:0;float:left;height:100%;width:100%;text-align:left;overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.bs3.bootstrap-select .dropdown-toggle .filter-option{padding-right:inherit}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option{position:absolute;padding-top:inherit;padding-bottom:inherit;padding-left:inherit;float:none}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .filter-expand{width:0!important;float:left;opacity:0!important;overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:rgba(255,255,255,.5)!important}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu .notify.fadeOut{-webkit-animation:.3s linear 750ms forwards bs-notify-fadeOut;-o-animation:.3s linear 750ms forwards bs-notify-fadeOut;animation:.3s linear 750ms forwards bs-notify-fadeOut}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before{content:'\00a0'}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}
\ No newline at end of file
diff --git a/web/css/bootstrap.css b/web/css/bootstrap.css
deleted file mode 100644
index 8635fb2ab1..0000000000
--- a/web/css/bootstrap.css
+++ /dev/null
@@ -1,6791 +0,0 @@
-/*!
- * Bootstrap v3.3.4 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
-html {
-  font-family: sans-serif;
-  -webkit-text-size-adjust: 100%;
-      -ms-text-size-adjust: 100%;
-}
-body {
-  margin: 0;
-  color: #333333;
-}
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
-  display: block;
-}
-audio,
-canvas,
-progress,
-video {
-  display: inline-block;
-  vertical-align: baseline;
-}
-audio:not([controls]) {
-  display: none;
-  height: 0;
-}
-[hidden],
-template {
-  display: none;
-}
-a {
-  background-color: transparent;
-}
-a:active,
-a:hover {
-  outline: 0;
-}
-abbr[title] {
-  border-bottom: 1px dotted;
-}
-b,
-strong {
-  font-weight: bold;
-}
-dfn {
-  font-style: italic;
-}
-h1 {
-  margin: .67em 0;
-  font-size: 2em;
-}
-mark {
-  color: #000;
-  background: #ff0;
-}
-small {
-  font-size: 80%;
-}
-sub,
-sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline;
-}
-sup {
-  top: -.5em;
-}
-sub {
-  bottom: -.25em;
-}
-img {
-  border: 0;
-}
-svg:not(:root) {
-  overflow: hidden;
-}
-figure {
-  margin: 1em 40px;
-}
-hr {
-  height: 0;
-  -webkit-box-sizing: content-box;
-     -moz-box-sizing: content-box;
-          box-sizing: content-box;
-}
-pre {
-  overflow: auto;
-}
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em;
-}
-button,
-input,
-optgroup,
-select,
-textarea {
-  margin: 0;
-  font: inherit;
-  color: inherit;
-}
-button {
-  overflow: visible;
-}
-button,
-select {
-  text-transform: none;
-}
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-  -webkit-appearance: button;
-  cursor: pointer;
-}
-button[disabled],
-html input[disabled] {
-  cursor: default;
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-input {
-  line-height: normal;
-}
-input[type="checkbox"],
-input[type="radio"] {
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-  padding: 0;
-}
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-input[type="search"] {
-  -webkit-box-sizing: content-box;
-     -moz-box-sizing: content-box;
-          box-sizing: content-box;
-  -webkit-appearance: textfield;
-}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-fieldset {
-  padding: .35em .625em .75em;
-  margin: 0 2px;
-  border: 1px solid #c0c0c0;
-}
-legend {
-  padding: 0;
-  border: 0;
-}
-textarea {
-  overflow: auto;
-}
-optgroup {
-  font-weight: bold;
-}
-table {
-  border-spacing: 0;
-  border-collapse: collapse;
-}
-td,
-th {
-  padding: 0;
-}
-/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
-@media print {
-  *,
-  *:before,
-  *:after {
-    color: #000 !important;
-    text-shadow: none !important;
-    background: transparent !important;
-    -webkit-box-shadow: none !important;
-            box-shadow: none !important;
-  }
-  a,
-  a:visited {
-    text-decoration: underline;
-  }
-  a[href]:after {
-    content: " (" attr(href) ")";
-  }
-  abbr[title]:after {
-    content: " (" attr(title) ")";
-  }
-  a[href^="#"]:after,
-  a[href^="javascript:"]:after {
-    content: "";
-  }
-  pre,
-  blockquote {
-    border: 1px solid #999;
-
-    page-break-inside: avoid;
-  }
-  thead {
-    display: table-header-group;
-  }
-  tr,
-  img {
-    page-break-inside: avoid;
-  }
-  img {
-    max-width: 100% !important;
-  }
-  p,
-  h2,
-  h3 {
-    orphans: 3;
-    widows: 3;
-  }
-  h2,
-  h3 {
-    page-break-after: avoid;
-  }
-  .navbar {
-    display: none;
-  }
-  .btn > .caret,
-  .dropup > .btn > .caret {
-    border-top-color: #000 !important;
-  }
-  .label {
-    border: 1px solid #000;
-  }
-  .table {
-    border-collapse: collapse !important;
-  }
-  .table td,
-  .table th {
-    background-color: #fff !important;
-  }
-  .table-bordered th,
-  .table-bordered td {
-    border: 1px solid #ddd !important;
-  }
-}
-@font-face {
-  font-family: 'Glyphicons Halflings';
-
-  src: url('../fonts/glyphicons-halflings-regular.eot');
-  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
-}
-.glyphicon {
-  position: relative;
-  top: 1px;
-  display: inline-block;
-  font-family: 'Glyphicons Halflings';
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-.glyphicon-asterisk:before {
-  content: "\2a";
-}
-.glyphicon-plus:before {
-  content: "\2b";
-}
-.glyphicon-euro:before,
-.glyphicon-eur:before {
-  content: "\20ac";
-}
-.glyphicon-minus:before {
-  content: "\2212";
-}
-.glyphicon-cloud:before {
-  content: "\2601";
-}
-.glyphicon-envelope:before {
-  content: "\2709";
-}
-.glyphicon-pencil:before {
-  content: "\270f";
-}
-.glyphicon-glass:before {
-  content: "\e001";
-}
-.glyphicon-music:before {
-  content: "\e002";
-}
-.glyphicon-search:before {
-  content: "\e003";
-}
-.glyphicon-heart:before {
-  content: "\e005";
-}
-.glyphicon-star:before {
-  content: "\e006";
-}
-.glyphicon-star-empty:before {
-  content: "\e007";
-}
-.glyphicon-user:before {
-  content: "\e008";
-}
-.glyphicon-film:before {
-  content: "\e009";
-}
-.glyphicon-th-large:before {
-  content: "\e010";
-}
-.glyphicon-th:before {
-  content: "\e011";
-}
-.glyphicon-th-list:before {
-  content: "\e012";
-}
-.glyphicon-ok:before {
-  content: "\e013";
-}
-.glyphicon-remove:before {
-  content: "\e014";
-}
-.glyphicon-zoom-in:before {
-  content: "\e015";
-}
-.glyphicon-zoom-out:before {
-  content: "\e016";
-}
-.glyphicon-off:before {
-  content: "\e017";
-}
-.glyphicon-signal:before {
-  content: "\e018";
-}
-.glyphicon-cog:before {
-  content: "\e019";
-}
-.glyphicon-trash:before {
-  content: "\e020";
-}
-.glyphicon-home:before {
-  content: "\e021";
-}
-.glyphicon-file:before {
-  content: "\e022";
-}
-.glyphicon-time:before {
-  content: "\e023";
-}
-.glyphicon-road:before {
-  content: "\e024";
-}
-.glyphicon-download-alt:before {
-  content: "\e025";
-}
-.glyphicon-download:before {
-  content: "\e026";
-}
-.glyphicon-upload:before {
-  content: "\e027";
-}
-.glyphicon-inbox:before {
-  content: "\e028";
-}
-.glyphicon-play-circle:before {
-  content: "\e029";
-}
-.glyphicon-repeat:before {
-  content: "\e030";
-}
-.glyphicon-refresh:before {
-  content: "\e031";
-}
-.glyphicon-list-alt:before {
-  content: "\e032";
-}
-.glyphicon-lock:before {
-  content: "\e033";
-}
-.glyphicon-flag:before {
-  content: "\e034";
-}
-.glyphicon-headphones:before {
-  content: "\e035";
-}
-.glyphicon-volume-off:before {
-  content: "\e036";
-}
-.glyphicon-volume-down:before {
-  content: "\e037";
-}
-.glyphicon-volume-up:before {
-  content: "\e038";
-}
-.glyphicon-qrcode:before {
-  content: "\e039";
-}
-.glyphicon-barcode:before {
-  content: "\e040";
-}
-.glyphicon-tag:before {
-  content: "\e041";
-}
-.glyphicon-tags:before {
-  content: "\e042";
-}
-.glyphicon-book:before {
-  content: "\e043";
-}
-.glyphicon-bookmark:before {
-  content: "\e044";
-}
-.glyphicon-print:before {
-  content: "\e045";
-}
-.glyphicon-camera:before {
-  content: "\e046";
-}
-.glyphicon-font:before {
-  content: "\e047";
-}
-.glyphicon-bold:before {
-  content: "\e048";
-}
-.glyphicon-italic:before {
-  content: "\e049";
-}
-.glyphicon-text-height:before {
-  content: "\e050";
-}
-.glyphicon-text-width:before {
-  content: "\e051";
-}
-.glyphicon-align-left:before {
-  content: "\e052";
-}
-.glyphicon-align-center:before {
-  content: "\e053";
-}
-.glyphicon-align-right:before {
-  content: "\e054";
-}
-.glyphicon-align-justify:before {
-  content: "\e055";
-}
-.glyphicon-list:before {
-  content: "\e056";
-}
-.glyphicon-indent-left:before {
-  content: "\e057";
-}
-.glyphicon-indent-right:before {
-  content: "\e058";
-}
-.glyphicon-facetime-video:before {
-  content: "\e059";
-}
-.glyphicon-picture:before {
-  content: "\e060";
-}
-.glyphicon-map-marker:before {
-  content: "\e062";
-}
-.glyphicon-adjust:before {
-  content: "\e063";
-}
-.glyphicon-tint:before {
-  content: "\e064";
-}
-.glyphicon-edit:before {
-  content: "\e065";
-}
-.glyphicon-share:before {
-  content: "\e066";
-}
-.glyphicon-check:before {
-  content: "\e067";
-}
-.glyphicon-move:before {
-  content: "\e068";
-}
-.glyphicon-step-backward:before {
-  content: "\e069";
-}
-.glyphicon-fast-backward:before {
-  content: "\e070";
-}
-.glyphicon-backward:before {
-  content: "\e071";
-}
-.glyphicon-play:before {
-  content: "\e072";
-}
-.glyphicon-pause:before {
-  content: "\e073";
-}
-.glyphicon-stop:before {
-  content: "\e074";
-}
-.glyphicon-forward:before {
-  content: "\e075";
-}
-.glyphicon-fast-forward:before {
-  content: "\e076";
-}
-.glyphicon-step-forward:before {
-  content: "\e077";
-}
-.glyphicon-eject:before {
-  content: "\e078";
-}
-.glyphicon-chevron-left:before {
-  content: "\e079";
-}
-.glyphicon-chevron-right:before {
-  content: "\e080";
-}
-.glyphicon-plus-sign:before {
-  content: "\e081";
-}
-.glyphicon-minus-sign:before {
-  content: "\e082";
-}
-.glyphicon-remove-sign:before {
-  content: "\e083";
-}
-.glyphicon-ok-sign:before {
-  content: "\e084";
-}
-.glyphicon-question-sign:before {
-  content: "\e085";
-}
-.glyphicon-info-sign:before {
-  content: "\e086";
-}
-.glyphicon-screenshot:before {
-  content: "\e087";
-}
-.glyphicon-remove-circle:before {
-  content: "\e088";
-}
-.glyphicon-ok-circle:before {
-  content: "\e089";
-}
-.glyphicon-ban-circle:before {
-  content: "\e090";
-}
-.glyphicon-arrow-left:before {
-  content: "\e091";
-}
-.glyphicon-arrow-right:before {
-  content: "\e092";
-}
-.glyphicon-arrow-up:before {
-  content: "\e093";
-}
-.glyphicon-arrow-down:before {
-  content: "\e094";
-}
-.glyphicon-share-alt:before {
-  content: "\e095";
-}
-.glyphicon-resize-full:before {
-  content: "\e096";
-}
-.glyphicon-resize-small:before {
-  content: "\e097";
-}
-.glyphicon-exclamation-sign:before {
-  content: "\e101";
-}
-.glyphicon-gift:before {
-  content: "\e102";
-}
-.glyphicon-leaf:before {
-  content: "\e103";
-}
-.glyphicon-fire:before {
-  content: "\e104";
-}
-.glyphicon-eye-open:before {
-  content: "\e105";
-}
-.glyphicon-eye-close:before {
-  content: "\e106";
-}
-.glyphicon-warning-sign:before {
-  content: "\e107";
-}
-.glyphicon-plane:before {
-  content: "\e108";
-}
-.glyphicon-calendar:before {
-  content: "\e109";
-}
-.glyphicon-random:before {
-  content: "\e110";
-}
-.glyphicon-comment:before {
-  content: "\e111";
-}
-.glyphicon-magnet:before {
-  content: "\e112";
-}
-.glyphicon-chevron-up:before {
-  content: "\e113";
-}
-.glyphicon-chevron-down:before {
-  content: "\e114";
-}
-.glyphicon-retweet:before {
-  content: "\e115";
-}
-.glyphicon-shopping-cart:before {
-  content: "\e116";
-}
-.glyphicon-folder-close:before {
-  content: "\e117";
-}
-.glyphicon-folder-open:before {
-  content: "\e118";
-}
-.glyphicon-resize-vertical:before {
-  content: "\e119";
-}
-.glyphicon-resize-horizontal:before {
-  content: "\e120";
-}
-.glyphicon-hdd:before {
-  content: "\e121";
-}
-.glyphicon-bullhorn:before {
-  content: "\e122";
-}
-.glyphicon-bell:before {
-  content: "\e123";
-}
-.glyphicon-certificate:before {
-  content: "\e124";
-}
-.glyphicon-thumbs-up:before {
-  content: "\e125";
-}
-.glyphicon-thumbs-down:before {
-  content: "\e126";
-}
-.glyphicon-hand-right:before {
-  content: "\e127";
-}
-.glyphicon-hand-left:before {
-  content: "\e128";
-}
-.glyphicon-hand-up:before {
-  content: "\e129";
-}
-.glyphicon-hand-down:before {
-  content: "\e130";
-}
-.glyphicon-circle-arrow-right:before {
-  content: "\e131";
-}
-.glyphicon-circle-arrow-left:before {
-  content: "\e132";
-}
-.glyphicon-circle-arrow-up:before {
-  content: "\e133";
-}
-.glyphicon-circle-arrow-down:before {
-  content: "\e134";
-}
-.glyphicon-globe:before {
-  content: "\e135";
-}
-.glyphicon-wrench:before {
-  content: "\e136";
-}
-.glyphicon-tasks:before {
-  content: "\e137";
-}
-.glyphicon-filter:before {
-  content: "\e138";
-}
-.glyphicon-briefcase:before {
-  content: "\e139";
-}
-.glyphicon-fullscreen:before {
-  content: "\e140";
-}
-.glyphicon-dashboard:before {
-  content: "\e141";
-}
-.glyphicon-paperclip:before {
-  content: "\e142";
-}
-.glyphicon-heart-empty:before {
-  content: "\e143";
-}
-.glyphicon-link:before {
-  content: "\e144";
-}
-.glyphicon-phone:before {
-  content: "\e145";
-}
-.glyphicon-pushpin:before {
-  content: "\e146";
-}
-.glyphicon-usd:before {
-  content: "\e148";
-}
-.glyphicon-gbp:before {
-  content: "\e149";
-}
-.glyphicon-sort:before {
-  content: "\e150";
-}
-.glyphicon-sort-by-alphabet:before {
-  content: "\e151";
-}
-.glyphicon-sort-by-alphabet-alt:before {
-  content: "\e152";
-}
-.glyphicon-sort-by-order:before {
-  content: "\e153";
-}
-.glyphicon-sort-by-order-alt:before {
-  content: "\e154";
-}
-.glyphicon-sort-by-attributes:before {
-  content: "\e155";
-}
-.glyphicon-sort-by-attributes-alt:before {
-  content: "\e156";
-}
-.glyphicon-unchecked:before {
-  content: "\e157";
-}
-.glyphicon-expand:before {
-  content: "\e158";
-}
-.glyphicon-collapse-down:before {
-  content: "\e159";
-}
-.glyphicon-collapse-up:before {
-  content: "\e160";
-}
-.glyphicon-log-in:before {
-  content: "\e161";
-}
-.glyphicon-flash:before {
-  content: "\e162";
-}
-.glyphicon-log-out:before {
-  content: "\e163";
-}
-.glyphicon-new-window:before {
-  content: "\e164";
-}
-.glyphicon-record:before {
-  content: "\e165";
-}
-.glyphicon-save:before {
-  content: "\e166";
-}
-.glyphicon-open:before {
-  content: "\e167";
-}
-.glyphicon-saved:before {
-  content: "\e168";
-}
-.glyphicon-import:before {
-  content: "\e169";
-}
-.glyphicon-export:before {
-  content: "\e170";
-}
-.glyphicon-send:before {
-  content: "\e171";
-}
-.glyphicon-floppy-disk:before {
-  content: "\e172";
-}
-.glyphicon-floppy-saved:before {
-  content: "\e173";
-}
-.glyphicon-floppy-remove:before {
-  content: "\e174";
-}
-.glyphicon-floppy-save:before {
-  content: "\e175";
-}
-.glyphicon-floppy-open:before {
-  content: "\e176";
-}
-.glyphicon-credit-card:before {
-  content: "\e177";
-}
-.glyphicon-transfer:before {
-  content: "\e178";
-}
-.glyphicon-cutlery:before {
-  content: "\e179";
-}
-.glyphicon-header:before {
-  content: "\e180";
-}
-.glyphicon-compressed:before {
-  content: "\e181";
-}
-.glyphicon-earphone:before {
-  content: "\e182";
-}
-.glyphicon-phone-alt:before {
-  content: "\e183";
-}
-.glyphicon-tower:before {
-  content: "\e184";
-}
-.glyphicon-stats:before {
-  content: "\e185";
-}
-.glyphicon-sd-video:before {
-  content: "\e186";
-}
-.glyphicon-hd-video:before {
-  content: "\e187";
-}
-.glyphicon-subtitles:before {
-  content: "\e188";
-}
-.glyphicon-sound-stereo:before {
-  content: "\e189";
-}
-.glyphicon-sound-dolby:before {
-  content: "\e190";
-}
-.glyphicon-sound-5-1:before {
-  content: "\e191";
-}
-.glyphicon-sound-6-1:before {
-  content: "\e192";
-}
-.glyphicon-sound-7-1:before {
-  content: "\e193";
-}
-.glyphicon-copyright-mark:before {
-  content: "\e194";
-}
-.glyphicon-registration-mark:before {
-  content: "\e195";
-}
-.glyphicon-cloud-download:before {
-  content: "\e197";
-}
-.glyphicon-cloud-upload:before {
-  content: "\e198";
-}
-.glyphicon-tree-conifer:before {
-  content: "\e199";
-}
-.glyphicon-tree-deciduous:before {
-  content: "\e200";
-}
-.glyphicon-cd:before {
-  content: "\e201";
-}
-.glyphicon-save-file:before {
-  content: "\e202";
-}
-.glyphicon-open-file:before {
-  content: "\e203";
-}
-.glyphicon-level-up:before {
-  content: "\e204";
-}
-.glyphicon-copy:before {
-  content: "\e205";
-}
-.glyphicon-paste:before {
-  content: "\e206";
-}
-.glyphicon-alert:before {
-  content: "\e209";
-}
-.glyphicon-equalizer:before {
-  content: "\e210";
-}
-.glyphicon-king:before {
-  content: "\e211";
-}
-.glyphicon-queen:before {
-  content: "\e212";
-}
-.glyphicon-pawn:before {
-  content: "\e213";
-}
-.glyphicon-bishop:before {
-  content: "\e214";
-}
-.glyphicon-knight:before {
-  content: "\e215";
-}
-.glyphicon-baby-formula:before {
-  content: "\e216";
-}
-.glyphicon-tent:before {
-  content: "\26fa";
-}
-.glyphicon-blackboard:before {
-  content: "\e218";
-}
-.glyphicon-bed:before {
-  content: "\e219";
-}
-.glyphicon-apple:before {
-  content: "\f8ff";
-}
-.glyphicon-erase:before {
-  content: "\e221";
-}
-.glyphicon-hourglass:before {
-  content: "\231b";
-}
-.glyphicon-lamp:before {
-  content: "\e223";
-}
-.glyphicon-duplicate:before {
-  content: "\e224";
-}
-.glyphicon-piggy-bank:before {
-  content: "\e225";
-}
-.glyphicon-scissors:before {
-  content: "\e226";
-}
-.glyphicon-bitcoin:before {
-  content: "\e227";
-}
-.glyphicon-btc:before {
-  content: "\e227";
-}
-.glyphicon-xbt:before {
-  content: "\e227";
-}
-.glyphicon-yen:before {
-  content: "\00a5";
-}
-.glyphicon-jpy:before {
-  content: "\00a5";
-}
-.glyphicon-ruble:before {
-  content: "\20bd";
-}
-.glyphicon-rub:before {
-  content: "\20bd";
-}
-.glyphicon-scale:before {
-  content: "\e230";
-}
-.glyphicon-ice-lolly:before {
-  content: "\e231";
-}
-.glyphicon-ice-lolly-tasted:before {
-  content: "\e232";
-}
-.glyphicon-education:before {
-  content: "\e233";
-}
-.glyphicon-option-horizontal:before {
-  content: "\e234";
-}
-.glyphicon-option-vertical:before {
-  content: "\e235";
-}
-.glyphicon-menu-hamburger:before {
-  content: "\e236";
-}
-.glyphicon-modal-window:before {
-  content: "\e237";
-}
-.glyphicon-oil:before {
-  content: "\e238";
-}
-.glyphicon-grain:before {
-  content: "\e239";
-}
-.glyphicon-sunglasses:before {
-  content: "\e240";
-}
-.glyphicon-text-size:before {
-  content: "\e241";
-}
-.glyphicon-text-color:before {
-  content: "\e242";
-}
-.glyphicon-text-background:before {
-  content: "\e243";
-}
-.glyphicon-object-align-top:before {
-  content: "\e244";
-}
-.glyphicon-object-align-bottom:before {
-  content: "\e245";
-}
-.glyphicon-object-align-horizontal:before {
-  content: "\e246";
-}
-.glyphicon-object-align-left:before {
-  content: "\e247";
-}
-.glyphicon-object-align-vertical:before {
-  content: "\e248";
-}
-.glyphicon-object-align-right:before {
-  content: "\e249";
-}
-.glyphicon-triangle-right:before {
-  content: "\e250";
-}
-.glyphicon-triangle-left:before {
-  content: "\e251";
-}
-.glyphicon-triangle-bottom:before {
-  content: "\e252";
-}
-.glyphicon-triangle-top:before {
-  content: "\e253";
-}
-.glyphicon-console:before {
-  content: "\e254";
-}
-.glyphicon-superscript:before {
-  content: "\e255";
-}
-.glyphicon-subscript:before {
-  content: "\e256";
-}
-.glyphicon-menu-left:before {
-  content: "\e257";
-}
-.glyphicon-menu-right:before {
-  content: "\e258";
-}
-.glyphicon-menu-down:before {
-  content: "\e259";
-}
-.glyphicon-menu-up:before {
-  content: "\e260";
-}
-* {
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-*:before,
-*:after {
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-html {
-  font-size: 10px;
-
-  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-body {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 14px;
-  line-height: 1.42857143;
-  color: #333;
-  background-color: #fff;
-}
-input,
-button,
-select,
-textarea {
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit;
-}
-a {
-  color: #337ab7;
-  text-decoration: none;
-}
-a:hover,
-a:focus {
-}
-figure {
-  margin: 0;
-}
-img {
-  vertical-align: middle;
-}
-.img-responsive,
-.thumbnail > img,
-.thumbnail a > img,
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
-  display: block;
-  max-width: 100%;
-  height: auto;
-}
-.img-rounded {
-  border-radius: 6px;
-}
-.img-thumbnail {
-  display: inline-block;
-  max-width: 100%;
-  height: auto;
-  padding: 4px;
-  line-height: 1.42857143;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 4px;
-  -webkit-transition: all .2s ease-in-out;
-       -o-transition: all .2s ease-in-out;
-          transition: all .2s ease-in-out;
-}
-.img-circle {
-  border-radius: 50%;
-}
-hr {
-  margin-top: 20px;
-  margin-bottom: 20px;
-  border: 0;
-  border-top: 1px solid #eee;
-}
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  padding: 0;
-  margin: -1px;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-}
-.sr-only-focusable:active,
-.sr-only-focusable:focus {
-  position: static;
-  width: auto;
-  height: auto;
-  margin: 0;
-  overflow: visible;
-  clip: auto;
-}
-[role="button"] {
-  cursor: pointer;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6 {
-  font-family: inherit;
-  font-weight: 500;
-  line-height: 1.1;
-  color: #333333;
-}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small,
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-.h5 small,
-.h6 small,
-h1 .small,
-h2 .small,
-h3 .small,
-h4 .small,
-h5 .small,
-h6 .small,
-.h1 .small,
-.h2 .small,
-.h3 .small,
-.h4 .small,
-.h5 .small,
-.h6 .small {
-  font-weight: normal;
-  line-height: 1;
-  color: #777;
-}
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3 {
-  margin-top: 20px;
-  margin-bottom: 10px;
-}
-h1 small,
-.h1 small,
-h2 small,
-.h2 small,
-h3 small,
-.h3 small,
-h1 .small,
-.h1 .small,
-h2 .small,
-.h2 .small,
-h3 .small,
-.h3 .small {
-  font-size: 65%;
-}
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
-  margin-top: 10px;
-  margin-bottom: 10px;
-}
-h4 small,
-.h4 small,
-h5 small,
-.h5 small,
-h6 small,
-.h6 small,
-h4 .small,
-.h4 .small,
-h5 .small,
-.h5 .small,
-h6 .small,
-.h6 .small {
-  font-size: 75%;
-}
-h1,
-.h1 {
-  font-size: 36px;
-}
-h2,
-.h2 {
-  font-size: 30px;
-}
-h3,
-.h3 {
-  font-size: 24px;
-}
-h4,
-.h4 {
-  font-size: 18px;
-}
-h5,
-.h5 {
-  font-size: 14px;
-}
-h6,
-.h6 {
-  font-size: 12px;
-}
-p {
-  margin: 0 0 10px;
-}
-.lead {
-  margin-bottom: 20px;
-  font-size: 16px;
-  font-weight: 300;
-  line-height: 1.4;
-}
-@media (min-width: 768px) {
-  .lead {
-    font-size: 21px;
-  }
-}
-small,
-.small {
-  font-size: 85%;
-}
-mark,
-.mark {
-  padding: .2em;
-  background-color: #fcf8e3;
-}
-.text-left {
-  text-align: left;
-}
-.text-right {
-  text-align: right;
-}
-.text-center {
-  text-align: center;
-}
-.text-justify {
-  text-align: justify;
-}
-.text-nowrap {
-  white-space: nowrap;
-}
-.text-lowercase {
-  text-transform: lowercase;
-}
-.text-uppercase {
-  text-transform: uppercase;
-}
-.text-capitalize {
-  text-transform: capitalize;
-}
-.text-muted {
-  color: #777;
-}
-.text-primary {
-  color: #337ab7;
-}
-a.text-primary:hover,
-a.text-primary:focus {
-  color: #286090;
-}
-.text-success {
-  color: #3c763d;
-}
-a.text-success:hover,
-a.text-success:focus {
-  color: #2b542c;
-}
-.text-info {
-  color: #31708f;
-}
-a.text-info:hover,
-a.text-info:focus {
-  color: #245269;
-}
-.text-warning {
-  color: #8a6d3b;
-}
-a.text-warning:hover,
-a.text-warning:focus {
-  color: #66512c;
-}
-.text-danger {
-  color: #a94442;
-}
-a.text-danger:hover,
-a.text-danger:focus {
-  color: #843534;
-}
-.bg-primary {
-  color: #fff;
-  background-color: #337ab7;
-}
-a.bg-primary:hover,
-a.bg-primary:focus {
-  background-color: #286090;
-}
-.bg-success {
-  background-color: #dff0d8;
-}
-a.bg-success:hover,
-a.bg-success:focus {
-  background-color: #c1e2b3;
-}
-.bg-info {
-  background-color: #d9edf7;
-}
-a.bg-info:hover,
-a.bg-info:focus {
-  background-color: #afd9ee;
-}
-.bg-info2 {
-  background-color: #77a6b2;
-}
-a.bg-info2:hover,
-a.bg-info2:focus {
-  background-color: #befebe;
-}
-.bg-warning {
-  background-color: #befebe;
-}
-a.bg-warning:hover,
-a.bg-warning:focus {
-  background-color: #befebe;
-}
-.bg-danger {
-  background-color: #f2dede;
-}
-a.bg-danger:hover,
-a.bg-danger:focus {
-  background-color: #e4b9b9;
-}
-.page-header {
-  padding-bottom: 9px;
-  margin: 40px 0 20px;
-  border-bottom: 1px solid #eee;
-}
-ul,
-ol {
-  margin-top: 0;
-  margin-bottom: 10px;
-}
-ul ul,
-ol ul,
-ul ol,
-ol ol {
-  margin-bottom: 0;
-}
-.list-unstyled {
-  padding-left: 0;
-  list-style: none;
-}
-.list-inline {
-  padding-left: 0;
-  margin-left: -5px;
-  list-style: none;
-}
-.list-inline > li {
-  display: inline-block;
-  padding-right: 5px;
-  padding-left: 5px;
-}
-dl {
-  margin-top: 0;
-  margin-bottom: 20px;
-}
-dt,
-dd {
-  line-height: 1.42857143;
-}
-dt {
-  font-weight: bold;
-}
-dd {
-  margin-left: 0;
-}
-@media (min-width: 768px) {
-  .dl-horizontal dt {
-    float: left;
-    width: 160px;
-    overflow: hidden;
-    clear: left;
-    text-align: right;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-  .dl-horizontal dd {
-    margin-left: 180px;
-  }
-}
-abbr[title],
-abbr[data-original-title] {
-  cursor: help;
-  border-bottom: 1px dotted #777;
-}
-.initialism {
-  font-size: 90%;
-  text-transform: uppercase;
-}
-blockquote {
-  padding: 10px 20px;
-  margin: 0 0 20px;
-  font-size: 17.5px;
-  border-left: 5px solid #eee;
-}
-blockquote p:last-child,
-blockquote ul:last-child,
-blockquote ol:last-child {
-  margin-bottom: 0;
-}
-blockquote footer,
-blockquote small,
-blockquote .small {
-  display: block;
-  font-size: 80%;
-  line-height: 1.42857143;
-  color: #777;
-}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
-  content: '\2014 \00A0';
-}
-.blockquote-reverse,
-blockquote.pull-right {
-  padding-right: 15px;
-  padding-left: 0;
-  text-align: right;
-  border-right: 5px solid #eee;
-  border-left: 0;
-}
-.blockquote-reverse footer:before,
-blockquote.pull-right footer:before,
-.blockquote-reverse small:before,
-blockquote.pull-right small:before,
-.blockquote-reverse .small:before,
-blockquote.pull-right .small:before {
-  content: '';
-}
-.blockquote-reverse footer:after,
-blockquote.pull-right footer:after,
-.blockquote-reverse small:after,
-blockquote.pull-right small:after,
-.blockquote-reverse .small:after,
-blockquote.pull-right .small:after {
-  content: '\00A0 \2014';
-}
-address {
-  margin-bottom: 20px;
-  font-style: normal;
-  line-height: 1.42857143;
-}
-code,
-kbd,
-pre,
-samp {
-  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
-}
-code {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: #c7254e;
-  background-color: #f9f2f4;
-  border-radius: 4px;
-}
-kbd {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: #fff;
-  background-color: #333;
-  border-radius: 3px;
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
-          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
-}
-kbd kbd {
-  padding: 0;
-  font-size: 100%;
-  font-weight: bold;
-  -webkit-box-shadow: none;
-          box-shadow: none;
-}
-pre {
-  display: block;
-  padding: 9.5px;
-  margin: 0 0 10px;
-  font-size: 13px;
-  line-height: 1.42857143;
-  color: #333;
-  word-break: break-all;
-  word-wrap: break-word;
-  background-color: #f5f5f5;
-  border: 1px solid #ccc;
-  border-radius: 4px;
-}
-pre code {
-  padding: 0;
-  font-size: inherit;
-  color: inherit;
-  white-space: pre-wrap;
-  background-color: transparent;
-  border-radius: 0;
-}
-.pre-scrollable {
-  max-height: 340px;
-  overflow-y: scroll;
-}
-.container {
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto;
-}
-@media (min-width: 768px) {
-  .container {
-    width: 750px;
-  }
-}
-@media (min-width: 992px) {
-  .container {
-    width: 970px;
-  }
-}
-@media (min-width: 1200px) {
-  .container {
-    width: 1170px;
-  }
-}
-
-
-.container-fluid {
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto;
-}
-.row {
-  margin-right: -15px;
-  margin-left: -15px;
-}
-.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
-  position: relative;
-  min-height: 1px;
-  padding-right: 2px;
-  padding-left: 2px;
-}
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
-  float: left;
-}
-.col-xs-12 {
-  width: 100%;
-}
-.col-xs-11 {
-  width: 91.66666667%;
-}
-.col-xs-10 {
-  width: 83.33333333%;
-}
-.col-xs-9 {
-  width: 75%;
-}
-.col-xs-8 {
-  width: 66.66666667%;
-}
-.col-xs-7 {
-  width: 58.33333333%;
-}
-.col-xs-6 {
-  width: 50%;
-}
-.col-xs-5 {
-  width: 41.66666667%;
-}
-.col-xs-4 {
-  width: 33.33333333%;
-}
-.col-xs-3 {
-  width: 25%;
-}
-.col-xs-2 {
-  width: 16.66666667%;
-}
-.col-xs-1 {
-  width: 8.33333333%;
-}
-.col-xs-pull-12 {
-  right: 100%;
-}
-.col-xs-pull-11 {
-  right: 91.66666667%;
-}
-.col-xs-pull-10 {
-  right: 83.33333333%;
-}
-.col-xs-pull-9 {
-  right: 75%;
-}
-.col-xs-pull-8 {
-  right: 66.66666667%;
-}
-.col-xs-pull-7 {
-  right: 58.33333333%;
-}
-.col-xs-pull-6 {
-  right: 50%;
-}
-.col-xs-pull-5 {
-  right: 41.66666667%;
-}
-.col-xs-pull-4 {
-  right: 33.33333333%;
-}
-.col-xs-pull-3 {
-  right: 25%;
-}
-.col-xs-pull-2 {
-  right: 16.66666667%;
-}
-.col-xs-pull-1 {
-  right: 8.33333333%;
-}
-.col-xs-pull-0 {
-  right: auto;
-}
-.col-xs-push-12 {
-  left: 100%;
-}
-.col-xs-push-11 {
-  left: 91.66666667%;
-}
-.col-xs-push-10 {
-  left: 83.33333333%;
-}
-.col-xs-push-9 {
-  left: 75%;
-}
-.col-xs-push-8 {
-  left: 66.66666667%;
-}
-.col-xs-push-7 {
-  left: 58.33333333%;
-}
-.col-xs-push-6 {
-  left: 50%;
-}
-.col-xs-push-5 {
-  left: 41.66666667%;
-}
-.col-xs-push-4 {
-  left: 33.33333333%;
-}
-.col-xs-push-3 {
-  left: 25%;
-}
-.col-xs-push-2 {
-  left: 16.66666667%;
-}
-.col-xs-push-1 {
-  left: 8.33333333%;
-}
-.col-xs-push-0 {
-  left: auto;
-}
-.col-xs-offset-12 {
-  margin-left: 100%;
-}
-.col-xs-offset-11 {
-  margin-left: 91.66666667%;
-}
-.col-xs-offset-10 {
-  margin-left: 83.33333333%;
-}
-.col-xs-offset-9 {
-  margin-left: 75%;
-}
-.col-xs-offset-8 {
-  margin-left: 66.66666667%;
-}
-.col-xs-offset-7 {
-  margin-left: 58.33333333%;
-}
-.col-xs-offset-6 {
-  margin-left: 50%;
-}
-.col-xs-offset-5 {
-  margin-left: 41.66666667%;
-}
-.col-xs-offset-4 {
-  margin-left: 33.33333333%;
-}
-.col-xs-offset-3 {
-  margin-left: 25%;
-}
-.col-xs-offset-2 {
-  margin-left: 16.66666667%;
-}
-.col-xs-offset-1 {
-  margin-left: 8.33333333%;
-}
-.col-xs-offset-0 {
-  margin-left: 0;
-}
-@media (min-width: 768px) {
-  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
-    float: left;
-  }
-  .col-sm-12 {
-    width: 100%;
-  }
-  .col-sm-11 {
-    width: 91.66666667%;
-  }
-  .col-sm-10 {
-    width: 83.33333333%;
-  }
-  .col-sm-9 {
-    width: 75%;
-  }
-  .col-sm-8 {
-    width: 66.66666667%;
-  }
-  .col-sm-7 {
-    width: 58.33333333%;
-  }
-  .col-sm-6 {
-    width: 50%;
-  }
-  .col-sm-5 {
-    width: 41.66666667%;
-  }
-  .col-sm-4 {
-    width: 33.33333333%;
-  }
-  .col-sm-3 {
-    width: 25%;
-  }
-  .col-sm-2 {
-    width: 16.66666667%;
-  }
-  .col-sm-1 {
-    width: 8.33333333%;
-  }
-  .col-sm-pull-12 {
-    right: 100%;
-  }
-  .col-sm-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-sm-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-sm-pull-9 {
-    right: 75%;
-  }
-  .col-sm-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-sm-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-sm-pull-6 {
-    right: 50%;
-  }
-  .col-sm-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-sm-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-sm-pull-3 {
-    right: 25%;
-  }
-  .col-sm-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-sm-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-sm-pull-0 {
-    right: auto;
-  }
-  .col-sm-push-12 {
-    left: 100%;
-  }
-  .col-sm-push-11 {
-    left: 91.66666667%;
-  }
-  .col-sm-push-10 {
-    left: 83.33333333%;
-  }
-  .col-sm-push-9 {
-    left: 75%;
-  }
-  .col-sm-push-8 {
-    left: 66.66666667%;
-  }
-  .col-sm-push-7 {
-    left: 58.33333333%;
-  }
-  .col-sm-push-6 {
-    left: 50%;
-  }
-  .col-sm-push-5 {
-    left: 41.66666667%;
-  }
-  .col-sm-push-4 {
-    left: 33.33333333%;
-  }
-  .col-sm-push-3 {
-    left: 25%;
-  }
-  .col-sm-push-2 {
-    left: 16.66666667%;
-  }
-  .col-sm-push-1 {
-    left: 8.33333333%;
-  }
-  .col-sm-push-0 {
-    left: auto;
-  }
-  .col-sm-offset-12 {
-    margin-left: 100%;
-  }
-  .col-sm-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-sm-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-sm-offset-9 {
-    margin-left: 75%;
-  }
-  .col-sm-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-sm-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-sm-offset-6 {
-    margin-left: 50%;
-  }
-  .col-sm-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-sm-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-sm-offset-3 {
-    margin-left: 25%;
-  }
-  .col-sm-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-sm-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .col-sm-offset-0 {
-    margin-left: 0;
-  }
-}
-@media (min-width: 992px) {
-  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
-    float: left;
-  }
-  .col-md-12 {
-    width: 100%;
-  }
-  .col-md-11 {
-    width: 91.66666667%;
-  }
-  .col-md-10 {
-    width: 83.33333333%;
-  }
-  .col-md-9 {
-    width: 75%;
-  }
-  .col-md-8 {
-    width: 66.66666667%;
-  }
-  .col-md-7 {
-    width: 58.33333333%;
-  }
-  .col-md-6 {
-    width: 50%;
-  }
-  .col-md-5 {
-    width: 41.66666667%;
-  }
-  .col-md-4 {
-    width: 33.33333333%;
-  }
-  .col-md-3 {
-    width: 25%;
-  }
-  .col-md-2 {
-    width: 16.66666667%;
-  }
-  .col-md-1 {
-    width: 8.33333333%;
-  }
-  .col-md-pull-12 {
-    right: 100%;
-  }
-  .col-md-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-md-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-md-pull-9 {
-    right: 75%;
-  }
-  .col-md-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-md-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-md-pull-6 {
-    right: 50%;
-  }
-  .col-md-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-md-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-md-pull-3 {
-    right: 25%;
-  }
-  .col-md-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-md-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-md-pull-0 {
-    right: auto;
-  }
-  .col-md-push-12 {
-    left: 100%;
-  }
-  .col-md-push-11 {
-    left: 91.66666667%;
-  }
-  .col-md-push-10 {
-    left: 83.33333333%;
-  }
-  .col-md-push-9 {
-    left: 75%;
-  }
-  .col-md-push-8 {
-    left: 66.66666667%;
-  }
-  .col-md-push-7 {
-    left: 58.33333333%;
-  }
-  .col-md-push-6 {
-    left: 50%;
-  }
-  .col-md-push-5 {
-    left: 41.66666667%;
-  }
-  .col-md-push-4 {
-    left: 33.33333333%;
-  }
-  .col-md-push-3 {
-    left: 25%;
-  }
-  .col-md-push-2 {
-    left: 16.66666667%;
-  }
-  .col-md-push-1 {
-    left: 8.33333333%;
-  }
-  .col-md-push-0 {
-    left: auto;
-  }
-  .col-md-offset-12 {
-    margin-left: 100%;
-  }
-  .col-md-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-md-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-md-offset-9 {
-    margin-left: 75%;
-  }
-  .col-md-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-md-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-md-offset-6 {
-    margin-left: 50%;
-  }
-  .col-md-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-md-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-md-offset-3 {
-    margin-left: 25%;
-  }
-  .col-md-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-md-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .col-md-offset-0 {
-    margin-left: 0;
-  }
-}
-@media (min-width: 1200px) {
-  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
-    float: left;
-  }
-  .col-lg-12 {
-    width: 100%;
-  }
-  .col-lg-11 {
-    width: 91.66666667%;
-  }
-  .col-lg-10 {
-    width: 83.33333333%;
-  }
-  .col-lg-9 {
-    width: 75%;
-  }
-  .col-lg-8 {
-    width: 66.66666667%;
-  }
-  .col-lg-7 {
-    width: 58.33333333%;
-  }
-  .col-lg-6 {
-    width: 50%;
-  }
-  .col-lg-5 {
-    width: 41.66666667%;
-  }
-  .col-lg-4 {
-    width: 33.33333333%;
-  }
-  .col-lg-3 {
-    width: 25%;
-  }
-  .col-lg-2 {
-    width: 16.66666667%;
-  }
-  .col-lg-1 {
-    width: 8.33333333%;
-  }
-  .col-lg-pull-12 {
-    right: 100%;
-  }
-  .col-lg-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-lg-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-lg-pull-9 {
-    right: 75%;
-  }
-  .col-lg-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-lg-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-lg-pull-6 {
-    right: 50%;
-  }
-  .col-lg-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-lg-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-lg-pull-3 {
-    right: 25%;
-  }
-  .col-lg-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-lg-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-lg-pull-0 {
-    right: auto;
-  }
-  .col-lg-push-12 {
-    left: 100%;
-  }
-  .col-lg-push-11 {
-    left: 91.66666667%;
-  }
-  .col-lg-push-10 {
-    left: 83.33333333%;
-  }
-  .col-lg-push-9 {
-    left: 75%;
-  }
-  .col-lg-push-8 {
-    left: 66.66666667%;
-  }
-  .col-lg-push-7 {
-    left: 58.33333333%;
-  }
-  .col-lg-push-6 {
-    left: 50%;
-  }
-  .col-lg-push-5 {
-    left: 41.66666667%;
-  }
-  .col-lg-push-4 {
-    left: 33.33333333%;
-  }
-  .col-lg-push-3 {
-    left: 25%;
-  }
-  .col-lg-push-2 {
-    left: 16.66666667%;
-  }
-  .col-lg-push-1 {
-    left: 8.33333333%;
-  }
-  .col-lg-push-0 {
-    left: auto;
-  }
-  .col-lg-offset-12 {
-    margin-left: 100%;
-  }
-  .col-lg-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-lg-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-lg-offset-9 {
-    margin-left: 75%;
-  }
-  .col-lg-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-lg-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-lg-offset-6 {
-    margin-left: 50%;
-  }
-  .col-lg-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-lg-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-lg-offset-3 {
-    margin-left: 25%;
-  }
-  .col-lg-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-lg-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .col-lg-offset-0 {
-    margin-left: 0;
-  }
-}
-table {
-  background-color: transparent;
-}
-caption {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  color: #777;
-  text-align: left;
-}
-th {
-  text-align: left;
-}
-.table {
-  width: 100%;
-  max-width: 100%;
-  margin-bottom: 20px;
-}
-.table > thead > tr > th,
-.table > tbody > tr > th,
-.table > tfoot > tr > th,
-.table > thead > tr > td,
-.table > tbody > tr > td,
-.table > tfoot > tr > td {
-  padding: 8px;
-  line-height: 1.42857143;
-  vertical-align: top;
-  border-top: 1px solid #ddd;
-}
-.table > thead > tr > th {
-  vertical-align: bottom;
-  border-bottom: 2px solid #ddd;
-}
-.table > caption + thead > tr:first-child > th,
-.table > colgroup + thead > tr:first-child > th,
-.table > thead:first-child > tr:first-child > th,
-.table > caption + thead > tr:first-child > td,
-.table > colgroup + thead > tr:first-child > td,
-.table > thead:first-child > tr:first-child > td {
-  border-top: 0;
-}
-.table > tbody + tbody {
-  border-top: 2px solid #ddd;
-}
-.table .table {
-  background-color: #fff;
-}
-.table-condensed > thead > tr > th,
-.table-condensed > tbody > tr > th,
-.table-condensed > tfoot > tr > th,
-.table-condensed > thead > tr > td,
-.table-condensed > tbody > tr > td,
-.table-condensed > tfoot > tr > td {
-  padding: 5px;
-}
-.table-bordered {
-  border: 1px solid #ddd;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > tbody > tr > th,
-.table-bordered > tfoot > tr > th,
-.table-bordered > thead > tr > td,
-.table-bordered > tbody > tr > td,
-.table-bordered > tfoot > tr > td {
-  border: 1px solid #ddd;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > thead > tr > td {
-  border-bottom-width: 2px;
-}
-.table-striped > tbody > tr:nth-of-type(odd) {
-  background-color: #f9f9f9;
-}
-.table-hover > tbody > tr:hover {
-  background-color: #f5f5f5;
-}
-table col[class*="col-"] {
-  position: static;
-  display: table-column;
-  float: none;
-}
-table td[class*="col-"],
-table th[class*="col-"] {
-  position: static;
-  display: table-cell;
-  float: none;
-}
-.table > thead > tr > td.active,
-.table > tbody > tr > td.active,
-.table > tfoot > tr > td.active,
-.table > thead > tr > th.active,
-.table > tbody > tr > th.active,
-.table > tfoot > tr > th.active,
-.table > thead > tr.active > td,
-.table > tbody > tr.active > td,
-.table > tfoot > tr.active > td,
-.table > thead > tr.active > th,
-.table > tbody > tr.active > th,
-.table > tfoot > tr.active > th {
-  background-color: #f5f5f5;
-}
-.table-hover > tbody > tr > td.active:hover,
-.table-hover > tbody > tr > th.active:hover,
-.table-hover > tbody > tr.active:hover > td,
-.table-hover > tbody > tr:hover > .active,
-.table-hover > tbody > tr.active:hover > th {
-  background-color: #e8e8e8;
-}
-.table > thead > tr > td.success,
-.table > tbody > tr > td.success,
-.table > tfoot > tr > td.success,
-.table > thead > tr > th.success,
-.table > tbody > tr > th.success,
-.table > tfoot > tr > th.success,
-.table > thead > tr.success > td,
-.table > tbody > tr.success > td,
-.table > tfoot > tr.success > td,
-.table > thead > tr.success > th,
-.table > tbody > tr.success > th,
-.table > tfoot > tr.success > th {
-  background-color: #dff0d8;
-}
-.table-hover > tbody > tr > td.success:hover,
-.table-hover > tbody > tr > th.success:hover,
-.table-hover > tbody > tr.success:hover > td,
-.table-hover > tbody > tr:hover > .success,
-.table-hover > tbody > tr.success:hover > th {
-  background-color: #d0e9c6;
-}
-.table > thead > tr > td.info,
-.table > tbody > tr > td.info,
-.table > tfoot > tr > td.info,
-.table > thead > tr > th.info,
-.table > tbody > tr > th.info,
-.table > tfoot > tr > th.info,
-.table > thead > tr.info > td,
-.table > tbody > tr.info > td,
-.table > tfoot > tr.info > td,
-.table > thead > tr.info > th,
-.table > tbody > tr.info > th,
-.table > tfoot > tr.info > th {
-  background-color: #d9edf7;
-}
-.table-hover > tbody > tr > td.info:hover,
-.table-hover > tbody > tr > th.info:hover,
-.table-hover > tbody > tr.info:hover > td,
-.table-hover > tbody > tr:hover > .info,
-.table-hover > tbody > tr.info:hover > th {
-  background-color: #c4e3f3;
-}
-.table > thead > tr > td.warning,
-.table > tbody > tr > td.warning,
-.table > tfoot > tr > td.warning,
-.table > thead > tr > th.warning,
-.table > tbody > tr > th.warning,
-.table > tfoot > tr > th.warning,
-.table > thead > tr.warning > td,
-.table > tbody > tr.warning > td,
-.table > tfoot > tr.warning > td,
-.table > thead > tr.warning > th,
-.table > tbody > tr.warning > th,
-.table > tfoot > tr.warning > th {
-  background-color: #fcf8e3;
-}
-.table-hover > tbody > tr > td.warning:hover,
-.table-hover > tbody > tr > th.warning:hover,
-.table-hover > tbody > tr.warning:hover > td,
-.table-hover > tbody > tr:hover > .warning,
-.table-hover > tbody > tr.warning:hover > th {
-  background-color: #faf2cc;
-}
-.table > thead > tr > td.danger,
-.table > tbody > tr > td.danger,
-.table > tfoot > tr > td.danger,
-.table > thead > tr > th.danger,
-.table > tbody > tr > th.danger,
-.table > tfoot > tr > th.danger,
-.table > thead > tr.danger > td,
-.table > tbody > tr.danger > td,
-.table > tfoot > tr.danger > td,
-.table > thead > tr.danger > th,
-.table > tbody > tr.danger > th,
-.table > tfoot > tr.danger > th {
-  background-color: #f2dede;
-}
-.table-hover > tbody > tr > td.danger:hover,
-.table-hover > tbody > tr > th.danger:hover,
-.table-hover > tbody > tr.danger:hover > td,
-.table-hover > tbody > tr:hover > .danger,
-.table-hover > tbody > tr.danger:hover > th {
-  background-color: #ebcccc;
-}
-.table-responsive {
-  min-height: .01%;
-  overflow-x: auto;
-}
-@media screen and (max-width: 767px) {
-  .table-responsive {
-    width: 100%;
-    margin-bottom: 15px;
-    overflow-y: hidden;
-    -ms-overflow-style: -ms-autohiding-scrollbar;
-    border: 1px solid #ddd;
-  }
-  .table-responsive > .table {
-    margin-bottom: 0;
-  }
-  .table-responsive > .table > thead > tr > th,
-  .table-responsive > .table > tbody > tr > th,
-  .table-responsive > .table > tfoot > tr > th,
-  .table-responsive > .table > thead > tr > td,
-  .table-responsive > .table > tbody > tr > td,
-  .table-responsive > .table > tfoot > tr > td {
-    white-space: nowrap;
-  }
-  .table-responsive > .table-bordered {
-    border: 0;
-  }
-  .table-responsive > .table-bordered > thead > tr > th:first-child,
-  .table-responsive > .table-bordered > tbody > tr > th:first-child,
-  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
-  .table-responsive > .table-bordered > thead > tr > td:first-child,
-  .table-responsive > .table-bordered > tbody > tr > td:first-child,
-  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
-    border-left: 0;
-  }
-  .table-responsive > .table-bordered > thead > tr > th:last-child,
-  .table-responsive > .table-bordered > tbody > tr > th:last-child,
-  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
-  .table-responsive > .table-bordered > thead > tr > td:last-child,
-  .table-responsive > .table-bordered > tbody > tr > td:last-child,
-  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
-    border-right: 0;
-  }
-  .table-responsive > .table-bordered > tbody > tr:last-child > th,
-  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
-  .table-responsive > .table-bordered > tbody > tr:last-child > td,
-  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
-    border-bottom: 0;
-  }
-}
-fieldset {
-  min-width: 0;
-  padding: 0;
-  margin: 0;
-  border: 0;
-}
-legend {
-  display: block;
-  width: 100%;
-  padding: 0;
-  margin-bottom: 20px;
-  font-size: 21px;
-  line-height: inherit;
-  color: #333;
-  border: 0;
-  border-bottom: 1px solid #e5e5e5;
-}
-label {
-  display: inline-block;
-  max-width: 100%;
-  margin-bottom: 5px;
-  font-weight: bold;
-}
-input[type="search"] {
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-input[type="radio"],
-input[type="checkbox"] {
-  margin: 4px 0 0;
-  margin-top: 1px \9;
-  line-height: normal;
-}
-input[type="file"] {
-  display: block;
-}
-input[type="range"] {
-  display: block;
-  width: 100%;
-}
-select[multiple],
-select[size] {
-  height: auto;
-}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
-  outline: thin dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-output {
-  display: block;
-  padding-top: 7px;
-  font-size: 14px;
-  line-height: 1.42857143;
-  color: #555;
-}
-.form-control {
-  display: block;
-  width: 100%;
-  height: 34px;
-  padding: 6px 12px;
-  font-size: 14px;
-  line-height: 1.42857143;
-  color: #555;
-  background-color: #fff;
-  background-image: none;
-  border: 1px solid #ccc;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-  -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
-       -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-}
-.form-control:focus {
-  border-color: #66afe9;
-  outline: 0;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
-          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
-}
-.form-control::-moz-placeholder {
-  color: #999;
-  opacity: 1;
-}
-.form-control:-ms-input-placeholder {
-  color: #999;
-}
-.form-control::-webkit-input-placeholder {
-  color: #999;
-}
-.form-control[disabled],
-.form-control[readonly],
-fieldset[disabled] .form-control {
-  background-color: #eee;
-  opacity: 1;
-}
-.form-control[disabled],
-fieldset[disabled] .form-control {
-  cursor: not-allowed;
-}
-textarea.form-control {
-  height: auto;
-}
-input[type="search"] {
-  -webkit-appearance: none;
-}
-@media screen and (-webkit-min-device-pixel-ratio: 0) {
-  input[type="date"].form-control,
-  input[type="time"].form-control,
-  input[type="datetime-local"].form-control,
-  input[type="month"].form-control {
-    line-height: 34px;
-  }
-  input[type="date"].input-sm,
-  input[type="time"].input-sm,
-  input[type="datetime-local"].input-sm,
-  input[type="month"].input-sm,
-  .input-group-sm input[type="date"],
-  .input-group-sm input[type="time"],
-  .input-group-sm input[type="datetime-local"],
-  .input-group-sm input[type="month"] {
-    line-height: 30px;
-  }
-  input[type="date"].input-lg,
-  input[type="time"].input-lg,
-  input[type="datetime-local"].input-lg,
-  input[type="month"].input-lg,
-  .input-group-lg input[type="date"],
-  .input-group-lg input[type="time"],
-  .input-group-lg input[type="datetime-local"],
-  .input-group-lg input[type="month"] {
-    line-height: 46px;
-  }
-}
-.form-group {
-  margin-bottom: 15px;
-}
-.radio,
-.checkbox {
-  position: relative;
-  display: block;
-  margin-top: 10px;
-  margin-bottom: 10px;
-}
-.radio label,
-.checkbox label {
-  min-height: 20px;
-  padding-left: 20px;
-  margin-bottom: 0;
-  font-weight: normal;
-  cursor: pointer;
-}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
-  position: absolute;
-  margin-top: 4px \9;
-  margin-left: -20px;
-}
-.radio + .radio,
-.checkbox + .checkbox {
-  margin-top: -5px;
-}
-.radio-inline,
-.checkbox-inline {
-  position: relative;
-  display: inline-block;
-  padding-left: 20px;
-  margin-bottom: 0;
-  font-weight: normal;
-  vertical-align: middle;
-  cursor: pointer;
-}
-.radio-inline + .radio-inline,
-.checkbox-inline + .checkbox-inline {
-  margin-top: 0;
-  margin-left: 10px;
-}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-input[type="radio"].disabled,
-input[type="checkbox"].disabled,
-fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"] {
-  cursor: not-allowed;
-}
-.radio-inline.disabled,
-.checkbox-inline.disabled,
-fieldset[disabled] .radio-inline,
-fieldset[disabled] .checkbox-inline {
-  cursor: not-allowed;
-}
-.radio.disabled label,
-.checkbox.disabled label,
-fieldset[disabled] .radio label,
-fieldset[disabled] .checkbox label {
-  cursor: not-allowed;
-}
-.form-control-static {
-  min-height: 34px;
-  padding-top: 7px;
-  padding-bottom: 7px;
-  margin-bottom: 0;
-}
-.form-control-static.input-lg,
-.form-control-static.input-sm {
-  padding-right: 0;
-  padding-left: 0;
-}
-.input-sm {
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
-}
-select.input-sm {
-  height: 30px;
-  line-height: 30px;
-}
-textarea.input-sm,
-select[multiple].input-sm {
-  height: auto;
-}
-.form-group-sm .form-control {
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
-}
-.form-group-sm select.form-control {
-  height: 30px;
-  line-height: 30px;
-}
-.form-group-sm textarea.form-control,
-.form-group-sm select[multiple].form-control {
-  height: auto;
-}
-.form-group-sm .form-control-static {
-  height: 30px;
-  min-height: 32px;
-  padding: 6px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-}
-.input-lg {
-  height: 46px;
-  padding: 10px 16px;
-  font-size: 18px;
-  line-height: 1.3333333;
-  border-radius: 6px;
-}
-select.input-lg {
-  height: 46px;
-  line-height: 46px;
-}
-textarea.input-lg,
-select[multiple].input-lg {
-  height: auto;
-}
-.form-group-lg .form-control {
-  height: 46px;
-  padding: 10px 16px;
-  font-size: 18px;
-  line-height: 1.3333333;
-  border-radius: 6px;
-}
-.form-group-lg select.form-control {
-  height: 46px;
-  line-height: 46px;
-}
-.form-group-lg textarea.form-control,
-.form-group-lg select[multiple].form-control {
-  height: auto;
-}
-.form-group-lg .form-control-static {
-  height: 46px;
-  min-height: 38px;
-  padding: 11px 16px;
-  font-size: 18px;
-  line-height: 1.3333333;
-}
-.has-feedback {
-  position: relative;
-}
-.has-feedback .form-control {
-  padding-right: 42.5px;
-}
-.form-control-feedback {
-  position: absolute;
-  top: 0;
-  right: 0;
-  z-index: 2;
-  display: block;
-  width: 34px;
-  height: 34px;
-  line-height: 34px;
-  text-align: center;
-  pointer-events: none;
-}
-.input-lg + .form-control-feedback,
-.input-group-lg + .form-control-feedback,
-.form-group-lg .form-control + .form-control-feedback {
-  width: 46px;
-  height: 46px;
-  line-height: 46px;
-}
-.input-sm + .form-control-feedback,
-.input-group-sm + .form-control-feedback,
-.form-group-sm .form-control + .form-control-feedback {
-  width: 30px;
-  height: 30px;
-  line-height: 30px;
-}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline,
-.has-success.radio label,
-.has-success.checkbox label,
-.has-success.radio-inline label,
-.has-success.checkbox-inline label {
-  color: #3c763d;
-}
-.has-success .form-control {
-  border-color: #3c763d;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-success .form-control:focus {
-  border-color: #2b542c;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
-}
-.has-success .input-group-addon {
-  color: #3c763d;
-  background-color: #dff0d8;
-  border-color: #3c763d;
-}
-.has-success .form-control-feedback {
-  color: #3c763d;
-}
-.has-warning .help-block,
-.has-warning .control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline,
-.has-warning.radio label,
-.has-warning.checkbox label,
-.has-warning.radio-inline label,
-.has-warning.checkbox-inline label {
-  color: #8a6d3b;
-}
-.has-warning .form-control {
-  border-color: #8a6d3b;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-warning .form-control:focus {
-  border-color: #66512c;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
-}
-.has-warning .input-group-addon {
-  color: #8a6d3b;
-  background-color: #fcf8e3;
-  border-color: #8a6d3b;
-}
-.has-warning .form-control-feedback {
-  color: #8a6d3b;
-}
-.has-error .help-block,
-.has-error .control-label,
-.has-error .radio,
-.has-error .checkbox,
-.has-error .radio-inline,
-.has-error .checkbox-inline,
-.has-error.radio label,
-.has-error.checkbox label,
-.has-error.radio-inline label,
-.has-error.checkbox-inline label {
-  color: #a94442;
-}
-.has-error .form-control {
-  border-color: #a94442;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-error .form-control:focus {
-  border-color: #843534;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
-}
-.has-error .input-group-addon {
-  color: #a94442;
-  background-color: #f2dede;
-  border-color: #a94442;
-}
-.has-error .form-control-feedback {
-  color: #a94442;
-}
-.has-feedback label ~ .form-control-feedback {
-  top: 25px;
-}
-.has-feedback label.sr-only ~ .form-control-feedback {
-  top: 0;
-}
-.help-block {
-  display: block;
-  margin-top: 5px;
-  margin-bottom: 10px;
-  color: #737373;
-}
-@media (min-width: 768px) {
-  .form-inline .form-group {
-    display: inline-block;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .form-inline .form-control {
-    display: inline-block;
-    width: auto;
-    vertical-align: middle;
-  }
-  .form-inline .form-control-static {
-    display: inline-block;
-  }
-  .form-inline .input-group {
-    display: inline-table;
-    vertical-align: middle;
-  }
-  .form-inline .input-group .input-group-addon,
-  .form-inline .input-group .input-group-btn,
-  .form-inline .input-group .form-control {
-    width: auto;
-  }
-  .form-inline .input-group > .form-control {
-    width: 100%;
-  }
-  .form-inline .control-label {
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .form-inline .radio,
-  .form-inline .checkbox {
-    display: inline-block;
-    margin-top: 0;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .form-inline .radio label,
-  .form-inline .checkbox label {
-    padding-left: 0;
-  }
-  .form-inline .radio input[type="radio"],
-  .form-inline .checkbox input[type="checkbox"] {
-    position: relative;
-    margin-left: 0;
-  }
-  .form-inline .has-feedback .form-control-feedback {
-    top: 0;
-  }
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
-  padding-top: 7px;
-  margin-top: 0;
-  margin-bottom: 0;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
-  min-height: 27px;
-}
-.form-horizontal .form-group {
-  margin-right: -15px;
-  margin-left: -15px;
-}
-@media (min-width: 768px) {
-  .form-horizontal .control-label {
-    padding-top: 7px;
-    margin-bottom: 0;
-    text-align: right;
-  }
-}
-.form-horizontal .has-feedback .form-control-feedback {
-  right: 15px;
-}
-@media (min-width: 768px) {
-  .form-horizontal .form-group-lg .control-label {
-    padding-top: 14.333333px;
-    font-size: 18px;
-  }
-}
-@media (min-width: 768px) {
-  .form-horizontal .form-group-sm .control-label {
-    padding-top: 6px;
-    font-size: 12px;
-  }
-}
-.btn {
-  display: inline-block;
-  padding: 6px 12px;
-  margin-bottom: 0;
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 1.42857143;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: middle;
-  -ms-touch-action: manipulation;
-      touch-action: manipulation;
-  cursor: pointer;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-  background-image: none;
-  border: 1px solid transparent;
-  border-radius: 4px;
-}
-.btn:focus,
-.btn:active:focus,
-.btn.active:focus,
-.btn.focus,
-.btn:active.focus,
-.btn.active.focus {
-}
-.btn:hover,
-.btn:focus,
-.btn.focus {
-  color: #333;
-  text-decoration: none;
-}
-.btn:active,
-.btn.active {
-}
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
-  cursor: not-allowed;
-  filter: alpha(opacity=65);
-  -webkit-box-shadow: none;
-          box-shadow: none;
-  opacity: .65;
-}
-a.btn.disabled,
-fieldset[disabled] a.btn {
-  pointer-events: none;
-}
-.btn-default {
-  color: #333;
-  background-color: #fff;
-  border-color: #ccc;
-}
-.btn-default:focus,
-.btn-default.focus {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #8c8c8c;
-}
-.btn-default:hover {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #adadad;
-}
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #adadad;
-}
-.btn-default:active:hover,
-.btn-default.active:hover,
-.open > .dropdown-toggle.btn-default:hover,
-.btn-default:active:focus,
-.btn-default.active:focus,
-.open > .dropdown-toggle.btn-default:focus,
-.btn-default:active.focus,
-.btn-default.active.focus,
-.open > .dropdown-toggle.btn-default.focus {
-  color: #333;
-  background-color: #d4d4d4;
-  border-color: #8c8c8c;
-}
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
-  background-image: none;
-}
-.btn-default.disabled,
-.btn-default[disabled],
-fieldset[disabled] .btn-default,
-.btn-default.disabled:hover,
-.btn-default[disabled]:hover,
-fieldset[disabled] .btn-default:hover,
-.btn-default.disabled:focus,
-.btn-default[disabled]:focus,
-fieldset[disabled] .btn-default:focus,
-.btn-default.disabled.focus,
-.btn-default[disabled].focus,
-fieldset[disabled] .btn-default.focus,
-.btn-default.disabled:active,
-.btn-default[disabled]:active,
-fieldset[disabled] .btn-default:active,
-.btn-default.disabled.active,
-.btn-default[disabled].active,
-fieldset[disabled] .btn-default.active {
-  background-color: #fff;
-  border-color: #ccc;
-}
-.btn-default .badge {
-  color: #fff;
-  background-color: #333;
-}
-.btn-primary {
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #2e6da4;
-}
-.btn-primary:focus,
-.btn-primary.focus {
-  color: #fff;
-  background-color: #286090;
-  border-color: #122b40;
-}
-.btn-primary:hover {
-  color: #fff;
-  background-color: #286090;
-  border-color: #204d74;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
-  color: #fff;
-  background-color: #286090;
-  border-color: #204d74;
-}
-.btn-primary:active:hover,
-.btn-primary.active:hover,
-.open > .dropdown-toggle.btn-primary:hover,
-.btn-primary:active:focus,
-.btn-primary.active:focus,
-.open > .dropdown-toggle.btn-primary:focus,
-.btn-primary:active.focus,
-.btn-primary.active.focus,
-.open > .dropdown-toggle.btn-primary.focus {
-  color: #fff;
-  background-color: #204d74;
-  border-color: #122b40;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
-  background-image: none;
-}
-.btn-primary.disabled,
-.btn-primary[disabled],
-fieldset[disabled] .btn-primary,
-.btn-primary.disabled:hover,
-.btn-primary[disabled]:hover,
-fieldset[disabled] .btn-primary:hover,
-.btn-primary.disabled:focus,
-.btn-primary[disabled]:focus,
-fieldset[disabled] .btn-primary:focus,
-.btn-primary.disabled.focus,
-.btn-primary[disabled].focus,
-fieldset[disabled] .btn-primary.focus,
-.btn-primary.disabled:active,
-.btn-primary[disabled]:active,
-fieldset[disabled] .btn-primary:active,
-.btn-primary.disabled.active,
-.btn-primary[disabled].active,
-fieldset[disabled] .btn-primary.active {
-  background-color: #337ab7;
-  border-color: #2e6da4;
-}
-.btn-primary .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.btn-success {
-  color: #fff;
-  background-color: #5cb85c;
-  border-color: #4cae4c;
-}
-.btn-success:focus,
-.btn-success.focus {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #255625;
-}
-.btn-success:hover {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #398439;
-}
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #398439;
-}
-.btn-success:active:hover,
-.btn-success.active:hover,
-.open > .dropdown-toggle.btn-success:hover,
-.btn-success:active:focus,
-.btn-success.active:focus,
-.open > .dropdown-toggle.btn-success:focus,
-.btn-success:active.focus,
-.btn-success.active.focus,
-.open > .dropdown-toggle.btn-success.focus {
-  color: #fff;
-  background-color: #398439;
-  border-color: #255625;
-}
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
-  background-image: none;
-}
-.btn-success.disabled,
-.btn-success[disabled],
-fieldset[disabled] .btn-success,
-.btn-success.disabled:hover,
-.btn-success[disabled]:hover,
-fieldset[disabled] .btn-success:hover,
-.btn-success.disabled:focus,
-.btn-success[disabled]:focus,
-fieldset[disabled] .btn-success:focus,
-.btn-success.disabled.focus,
-.btn-success[disabled].focus,
-fieldset[disabled] .btn-success.focus,
-.btn-success.disabled:active,
-.btn-success[disabled]:active,
-fieldset[disabled] .btn-success:active,
-.btn-success.disabled.active,
-.btn-success[disabled].active,
-fieldset[disabled] .btn-success.active {
-  background-color: #5cb85c;
-  border-color: #4cae4c;
-}
-.btn-success .badge {
-  color: #5cb85c;
-  background-color: #fff;
-}
-.btn-info {
-  color: #fff;
-  background-color: #5bc0de;
-  border-color: #46b8da;
-}
-.btn-info:focus,
-.btn-info.focus {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #1b6d85;
-}
-.btn-info:hover {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #269abc;
-}
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #269abc;
-}
-.btn-info:active:hover,
-.btn-info.active:hover,
-.open > .dropdown-toggle.btn-info:hover,
-.btn-info:active:focus,
-.btn-info.active:focus,
-.open > .dropdown-toggle.btn-info:focus,
-.btn-info:active.focus,
-.btn-info.active.focus,
-.open > .dropdown-toggle.btn-info.focus {
-  color: #fff;
-  background-color: #269abc;
-  border-color: #1b6d85;
-}
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
-  background-image: none;
-}
-.btn-info.disabled,
-.btn-info[disabled],
-fieldset[disabled] .btn-info,
-.btn-info.disabled:hover,
-.btn-info[disabled]:hover,
-fieldset[disabled] .btn-info:hover,
-.btn-info.disabled:focus,
-.btn-info[disabled]:focus,
-fieldset[disabled] .btn-info:focus,
-.btn-info.disabled.focus,
-.btn-info[disabled].focus,
-fieldset[disabled] .btn-info.focus,
-.btn-info.disabled:active,
-.btn-info[disabled]:active,
-fieldset[disabled] .btn-info:active,
-.btn-info.disabled.active,
-.btn-info[disabled].active,
-fieldset[disabled] .btn-info.active {
-  background-color: #5bc0de;
-  border-color: #46b8da;
-}
-.btn-info .badge {
-  color: #5bc0de;
-  background-color: #fff;
-}
-.btn-warning {
-  color: #fff;
-  background-color: #f0ad4e;
-  border-color: #eea236;
-}
-.btn-warning:focus,
-.btn-warning.focus {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #985f0d;
-}
-.btn-warning:hover {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #d58512;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #d58512;
-}
-.btn-warning:active:hover,
-.btn-warning.active:hover,
-.open > .dropdown-toggle.btn-warning:hover,
-.btn-warning:active:focus,
-.btn-warning.active:focus,
-.open > .dropdown-toggle.btn-warning:focus,
-.btn-warning:active.focus,
-.btn-warning.active.focus,
-.open > .dropdown-toggle.btn-warning.focus {
-  color: #fff;
-  background-color: #d58512;
-  border-color: #985f0d;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
-  background-image: none;
-}
-.btn-warning.disabled,
-.btn-warning[disabled],
-fieldset[disabled] .btn-warning,
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.btn-warning.disabled:focus,
-.btn-warning[disabled]:focus,
-fieldset[disabled] .btn-warning:focus,
-.btn-warning.disabled.focus,
-.btn-warning[disabled].focus,
-fieldset[disabled] .btn-warning.focus,
-.btn-warning.disabled:active,
-.btn-warning[disabled]:active,
-fieldset[disabled] .btn-warning:active,
-.btn-warning.disabled.active,
-.btn-warning[disabled].active,
-fieldset[disabled] .btn-warning.active {
-  background-color: #f0ad4e;
-  border-color: #eea236;
-}
-.btn-warning .badge {
-  color: #f0ad4e;
-  background-color: #fff;
-}
-.btn-danger {
-  color: #fff;
-  background-color: #d9534f;
-  border-color: #d43f3a;
-}
-.btn-danger:focus,
-.btn-danger.focus {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #761c19;
-}
-.btn-danger:hover {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #ac2925;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #ac2925;
-}
-.btn-danger:active:hover,
-.btn-danger.active:hover,
-.open > .dropdown-toggle.btn-danger:hover,
-.btn-danger:active:focus,
-.btn-danger.active:focus,
-.open > .dropdown-toggle.btn-danger:focus,
-.btn-danger:active.focus,
-.btn-danger.active.focus,
-.open > .dropdown-toggle.btn-danger.focus {
-  color: #fff;
-  background-color: #ac2925;
-  border-color: #761c19;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
-  background-image: none;
-}
-.btn-danger.disabled,
-.btn-danger[disabled],
-fieldset[disabled] .btn-danger,
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.btn-danger.disabled:focus,
-.btn-danger[disabled]:focus,
-fieldset[disabled] .btn-danger:focus,
-.btn-danger.disabled.focus,
-.btn-danger[disabled].focus,
-fieldset[disabled] .btn-danger.focus,
-.btn-danger.disabled:active,
-.btn-danger[disabled]:active,
-fieldset[disabled] .btn-danger:active,
-.btn-danger.disabled.active,
-.btn-danger[disabled].active,
-fieldset[disabled] .btn-danger.active {
-  background-color: #d9534f;
-  border-color: #d43f3a;
-}
-.btn-danger .badge {
-  color: #d9534f;
-  background-color: #fff;
-}
-.btn-link {
-  font-weight: normal;
-  color: #337ab7;
-  border-radius: 0;
-}
-.btn-link,
-.btn-link:active,
-.btn-link.active,
-.btn-link[disabled],
-fieldset[disabled] .btn-link {
-  background-color: transparent;
-  -webkit-box-shadow: none;
-          box-shadow: none;
-}
-.btn-link,
-.btn-link:hover,
-.btn-link:focus,
-.btn-link:active {
-  border-color: transparent;
-}
-.btn-link:hover,
-.btn-link:focus {
-  color: #23527c;
-  text-decoration: underline;
-  background-color: transparent;
-}
-.btn-link[disabled]:hover,
-fieldset[disabled] .btn-link:hover,
-.btn-link[disabled]:focus,
-fieldset[disabled] .btn-link:focus {
-  color: #777;
-  text-decoration: none;
-}
-.btn-lg,
-.btn-group-lg > .btn {
-  padding: 10px 16px;
-  font-size: 18px;
-  line-height: 1.3333333;
-  border-radius: 6px;
-}
-.btn-sm,
-.btn-group-sm > .btn {
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
-}
-.btn-xs,
-.btn-group-xs > .btn {
-  padding: 1px 5px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
-}
-.btn-block {
-  display: block;
-  width: 100%;
-}
-.btn-block + .btn-block {
-  margin-top: 5px;
-}
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
-  width: 100%;
-}
-.fade {
-  opacity: 0;
-  -webkit-transition: opacity .15s linear;
-       -o-transition: opacity .15s linear;
-          transition: opacity .15s linear;
-}
-.fade.in {
-  opacity: 1;
-}
-.collapse {
-  display: none;
-}
-.collapse.in {
-  display: block;
-}
-tr.collapse.in {
-  display: table-row;
-}
-tbody.collapse.in {
-  display: table-row-group;
-}
-.collapsing {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  -webkit-transition-timing-function: ease;
-       -o-transition-timing-function: ease;
-          transition-timing-function: ease;
-  -webkit-transition-duration: .35s;
-       -o-transition-duration: .35s;
-          transition-duration: .35s;
-  -webkit-transition-property: height, visibility;
-       -o-transition-property: height, visibility;
-          transition-property: height, visibility;
-}
-.caret {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  margin-left: 2px;
-  vertical-align: middle;
-  border-top: 4px dashed;
-  border-top: 4px solid \9;
-  border-right: 4px solid transparent;
-  border-left: 4px solid transparent;
-}
-.dropup,
-.dropdown {
-  position: relative;
-}
-.dropdown-toggle:focus {
-  outline: 0;
-}
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 160px;
-  padding: 5px 0;
-  margin: 2px 0 0;
-  font-size: 14px;
-  text-align: left;
-  list-style: none;
-  background-color: #fff;
-  -webkit-background-clip: padding-box;
-          background-clip: padding-box;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, .15);
-  border-radius: 4px;
-  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
-          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
-}
-.dropdown-menu.pull-right {
-  right: 0;
-  left: auto;
-}
-.dropdown-menu .divider {
-  height: 1px;
-  margin: 9px 0;
-  overflow: hidden;
-  background-color: #e5e5e5;
-}
-.dropdown-menu > li > a {
-  display: block;
-  padding: 3px 20px;
-  clear: both;
-  font-weight: normal;
-  line-height: 1.42857143;
-  color: #333;
-  white-space: nowrap;
-}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
-  color: #262626;
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
-  color: #fff;
-  text-decoration: none;
-  background-color: #337ab7;
-  outline: 0;
-}
-.dropdown-menu > .disabled > a,
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
-  color: #777;
-}
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
-  text-decoration: none;
-  cursor: not-allowed;
-  background-color: transparent;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.open > .dropdown-menu {
-  display: block;
-}
-.open > a {
-  outline: 0;
-}
-.dropdown-menu-right {
-  right: 0;
-  left: auto;
-}
-.dropdown-menu-left {
-  right: auto;
-  left: 0;
-}
-.dropdown-header {
-  display: block;
-  padding: 3px 20px;
-  font-size: 12px;
-  line-height: 1.42857143;
-  color: #777;
-  white-space: nowrap;
-}
-.dropdown-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 990;
-}
-.pull-right > .dropdown-menu {
-  right: 0;
-  left: auto;
-}
-.dropup .caret,
-.navbar-fixed-bottom .dropdown .caret {
-  content: "";
-  border-top: 0;
-  border-bottom: 4px solid;
-}
-.dropup .dropdown-menu,
-.navbar-fixed-bottom .dropdown .dropdown-menu {
-  top: auto;
-  bottom: 100%;
-  margin-bottom: 2px;
-}
-@media (min-width: 768px) {
-  .navbar-right .dropdown-menu {
-    right: 0;
-    left: auto;
-  }
-  .navbar-right .dropdown-menu-left {
-    right: auto;
-    left: 0;
-  }
-}
-.btn-group,
-.btn-group-vertical {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-}
-.btn-group > .btn,
-.btn-group-vertical > .btn {
-  position: relative;
-  float: left;
-}
-.btn-group > .btn:hover,
-.btn-group-vertical > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group-vertical > .btn:focus,
-.btn-group > .btn:active,
-.btn-group-vertical > .btn:active,
-.btn-group > .btn.active,
-.btn-group-vertical > .btn.active {
-  z-index: 2;
-}
-.btn-group .btn + .btn,
-.btn-group .btn + .btn-group,
-.btn-group .btn-group + .btn,
-.btn-group .btn-group + .btn-group {
-  margin-left: -1px;
-}
-.btn-toolbar {
-  margin-left: -5px;
-}
-.btn-toolbar .btn,
-.btn-toolbar .btn-group,
-.btn-toolbar .input-group {
-  float: left;
-}
-.btn-toolbar > .btn,
-.btn-toolbar > .btn-group,
-.btn-toolbar > .input-group {
-  margin-left: 5px;
-}
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
-  border-radius: 0;
-}
-.btn-group > .btn:first-child {
-  margin-left: 0;
-}
-.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
-  border-top-left-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.btn-group > .btn-group {
-  float: left;
-}
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
-}
-.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  border-top-left-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-.btn-group > .btn + .dropdown-toggle {
-  padding-right: 8px;
-  padding-left: 8px;
-}
-.btn-group > .btn-lg + .dropdown-toggle {
-  padding-right: 12px;
-  padding-left: 12px;
-}
-.btn-group.open .dropdown-toggle {
-  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-}
-.btn-group.open .dropdown-toggle.btn-link {
-  -webkit-box-shadow: none;
-          box-shadow: none;
-}
-.btn .caret {
-  margin-left: 0;
-}
-.btn-lg .caret {
-  border-width: 5px 5px 0;
-  border-bottom-width: 0;
-}
-.dropup .btn-lg .caret {
-  border-width: 0 5px 5px;
-}
-.btn-group-vertical > .btn,
-.btn-group-vertical > .btn-group,
-.btn-group-vertical > .btn-group > .btn {
-  display: block;
-  float: none;
-  width: 100%;
-  max-width: 100%;
-}
-.btn-group-vertical > .btn-group > .btn {
-  float: none;
-}
-.btn-group-vertical > .btn + .btn,
-.btn-group-vertical > .btn + .btn-group,
-.btn-group-vertical > .btn-group + .btn,
-.btn-group-vertical > .btn-group + .btn-group {
-  margin-top: -1px;
-  margin-left: 0;
-}
-.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
-  border-radius: 0;
-}
-.btn-group-vertical > .btn:first-child:not(:last-child) {
-  border-top-right-radius: 4px;
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.btn-group-vertical > .btn:last-child:not(:first-child) {
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-  border-bottom-left-radius: 4px;
-}
-.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
-}
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-.btn-group-justified {
-  display: table;
-  width: 100%;
-  table-layout: fixed;
-  border-collapse: separate;
-}
-.btn-group-justified > .btn,
-.btn-group-justified > .btn-group {
-  display: table-cell;
-  float: none;
-  width: 1%;
-}
-.btn-group-justified > .btn-group .btn {
-  width: 100%;
-}
-.btn-group-justified > .btn-group .dropdown-menu {
-  left: auto;
-}
-[data-toggle="buttons"] > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn input[type="checkbox"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
-  position: absolute;
-  clip: rect(0, 0, 0, 0);
-  pointer-events: none;
-}
-.input-group {
-  position: relative;
-  display: table;
-  border-collapse: separate;
-}
-.input-group[class*="col-"] {
-  float: none;
-  padding-right: 0;
-  padding-left: 0;
-}
-.input-group .form-control {
-  position: relative;
-  z-index: 2;
-  float: left;
-  width: 100%;
-  margin-bottom: 0;
-}
-.input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
-  height: 46px;
-  padding: 10px 16px;
-  font-size: 18px;
-  line-height: 1.3333333;
-  border-radius: 6px;
-}
-select.input-group-lg > .form-control,
-select.input-group-lg > .input-group-addon,
-select.input-group-lg > .input-group-btn > .btn {
-  height: 46px;
-  line-height: 46px;
-}
-textarea.input-group-lg > .form-control,
-textarea.input-group-lg > .input-group-addon,
-textarea.input-group-lg > .input-group-btn > .btn,
-select[multiple].input-group-lg > .form-control,
-select[multiple].input-group-lg > .input-group-addon,
-select[multiple].input-group-lg > .input-group-btn > .btn {
-  height: auto;
-}
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
-}
-select.input-group-sm > .form-control,
-select.input-group-sm > .input-group-addon,
-select.input-group-sm > .input-group-btn > .btn {
-  height: 30px;
-  line-height: 30px;
-}
-textarea.input-group-sm > .form-control,
-textarea.input-group-sm > .input-group-addon,
-textarea.input-group-sm > .input-group-btn > .btn,
-select[multiple].input-group-sm > .form-control,
-select[multiple].input-group-sm > .input-group-addon,
-select[multiple].input-group-sm > .input-group-btn > .btn {
-  height: auto;
-}
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
-  display: table-cell;
-}
-.input-group-addon:not(:first-child):not(:last-child),
-.input-group-btn:not(:first-child):not(:last-child),
-.input-group .form-control:not(:first-child):not(:last-child) {
-  border-radius: 0;
-}
-.input-group-addon,
-.input-group-btn {
-  width: 1%;
-  white-space: nowrap;
-  vertical-align: middle;
-}
-.input-group-addon {
-  padding: 6px 12px;
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 1;
-  color: #555;
-  text-align: center;
-  background-color: #eee;
-  border: 1px solid #ccc;
-  border-radius: 4px;
-}
-.input-group-addon.input-sm {
-  padding: 5px 10px;
-  font-size: 12px;
-  border-radius: 3px;
-}
-.input-group-addon.input-lg {
-  padding: 10px 16px;
-  font-size: 18px;
-  border-radius: 6px;
-}
-.input-group-addon input[type="radio"],
-.input-group-addon input[type="checkbox"] {
-  margin-top: 0;
-}
-.input-group .form-control:first-child,
-.input-group-addon:first-child,
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group > .btn,
-.input-group-btn:first-child > .dropdown-toggle,
-.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-.input-group-addon:first-child {
-  border-right: 0;
-}
-.input-group .form-control:last-child,
-.input-group-addon:last-child,
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group > .btn,
-.input-group-btn:last-child > .dropdown-toggle,
-.input-group-btn:first-child > .btn:not(:first-child),
-.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
-  border-top-left-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.input-group-addon:last-child {
-  border-left: 0;
-}
-.input-group-btn {
-  position: relative;
-  font-size: 0;
-  white-space: nowrap;
-}
-.input-group-btn > .btn {
-  position: relative;
-}
-.input-group-btn > .btn + .btn {
-  margin-left: -1px;
-}
-.input-group-btn > .btn:hover,
-.input-group-btn > .btn:focus,
-.input-group-btn > .btn:active {
-  z-index: 2;
-}
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group {
-  margin-right: -1px;
-}
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group {
-  z-index: 2;
-  margin-left: -1px;
-}
-.nav {
-  padding-left: 0;
-  margin-bottom: 0;
-  list-style: none;
-}
-.nav > li {
-  position: relative;
-  display: block;
-}
-.nav > li > a {
-  position: relative;
-  display: block;
-  padding: 10px 15px;
-}
-.nav > li > a:hover,
-.nav > li > a:focus {
-}
-.nav > li.disabled > a {
-  color: #777;
-}
-.nav > li.disabled > a:hover,
-.nav > li.disabled > a:focus {
-  color: #777;
-  text-decoration: none;
-  cursor: not-allowed;
-  background-color: transparent;
-}
-.nav .open > a,
-.nav .open > a:hover,
-.nav .open > a:focus {
-  background-color: #eee;
-  border-color: #337ab7;
-}
-.nav .nav-divider {
-  height: 1px;
-  margin: 9px 0;
-  overflow: hidden;
-  background-color: #e5e5e5;
-}
-.nav > li > a > img {
-  max-width: none;
-}
-.nav-tabs {
-  border-bottom: 1px solid #ddd;
-}
-.nav-tabs > li {
-  float: left;
-  margin-bottom: -1px;
-}
-.nav-tabs > li > a {
-  margin-right: 2px;
-  line-height: 1.42857143;
-  border: 1px solid transparent;
-  border-radius: 4px 4px 0 0;
-}
-.nav-tabs > li > a:hover {
-  border-color: #eee #eee #ddd;
-}
-.nav-tabs > li.active > a,
-.nav-tabs > li.active > a:hover,
-.nav-tabs > li.active > a:focus {
-  color: #555;
-  cursor: default;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-bottom-color: transparent;
-}
-.nav-tabs.nav-justified {
-  width: 100%;
-  border-bottom: 0;
-}
-.nav-tabs.nav-justified > li {
-  float: none;
-}
-.nav-tabs.nav-justified > li > a {
-  margin-bottom: 5px;
-  text-align: center;
-}
-.nav-tabs.nav-justified > .dropdown .dropdown-menu {
-  top: auto;
-  left: auto;
-}
-@media (min-width: 768px) {
-  .nav-tabs.nav-justified > li {
-    display: table-cell;
-    width: 1%;
-  }
-  .nav-tabs.nav-justified > li > a {
-    margin-bottom: 0;
-  }
-}
-.nav-tabs.nav-justified > li > a {
-  margin-right: 0;
-  border-radius: 4px;
-}
-.nav-tabs.nav-justified > .active > a,
-.nav-tabs.nav-justified > .active > a:hover,
-.nav-tabs.nav-justified > .active > a:focus {
-  border: 1px solid #ddd;
-}
-@media (min-width: 768px) {
-  .nav-tabs.nav-justified > li > a {
-    border-bottom: 1px solid #ddd;
-    border-radius: 4px 4px 0 0;
-  }
-  .nav-tabs.nav-justified > .active > a,
-  .nav-tabs.nav-justified > .active > a:hover,
-  .nav-tabs.nav-justified > .active > a:focus {
-    border-bottom-color: #fff;
-  }
-}
-.nav-pills > li {
-  float: left;
-}
-.nav-pills > li > a {
-  border-radius: 4px;
-}
-.nav-pills > li + li {
-  margin-left: 2px;
-}
-.nav-pills > li.active > a,
-.nav-pills > li.active > a:hover,
-.nav-pills > li.active > a:focus {
-  color: #fff;
-  background-color: #337ab7;
-}
-.nav-stacked > li {
-  float: none;
-}
-.nav-stacked > li + li {
-  margin-top: 2px;
-  margin-left: 0;
-}
-.nav-justified {
-  width: 100%;
-}
-.nav-justified > li {
-  float: none;
-}
-.nav-justified > li > a {
-  margin-bottom: 5px;
-  text-align: center;
-}
-.nav-justified > .dropdown .dropdown-menu {
-  top: auto;
-  left: auto;
-}
-@media (min-width: 768px) {
-  .nav-justified > li {
-    display: table-cell;
-    width: 1%;
-  }
-  .nav-justified > li > a {
-    margin-bottom: 0;
-  }
-}
-.nav-tabs-justified {
-  border-bottom: 0;
-}
-.nav-tabs-justified > li > a {
-  margin-right: 0;
-  border-radius: 4px;
-}
-.nav-tabs-justified > .active > a,
-.nav-tabs-justified > .active > a:hover,
-.nav-tabs-justified > .active > a:focus {
-  border: 1px solid #ddd;
-}
-@media (min-width: 768px) {
-  .nav-tabs-justified > li > a {
-    border-bottom: 1px solid #ddd;
-    border-radius: 4px 4px 0 0;
-  }
-  .nav-tabs-justified > .active > a,
-  .nav-tabs-justified > .active > a:hover,
-  .nav-tabs-justified > .active > a:focus {
-    border-bottom-color: #fff;
-  }
-}
-.tab-content > .tab-pane {
-  display: none;
-}
-.tab-content > .active {
-  display: block;
-}
-.nav-tabs .dropdown-menu {
-  margin-top: -1px;
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-.navbar {
-  position: relative;
-  min-height: 50px;
-  margin-bottom: 20px;
-  border: 1px solid transparent;
-}
-@media (min-width: 768px) {
-  .navbar {
-    border-radius: 4px;
-  }
-}
-@media (min-width: 768px) {
-  .navbar-header {
-    float: left;
-  }
-}
-.navbar-collapse {
-  padding-right: 15px;
-  padding-left: 15px;
-  overflow-x: visible;
-  -webkit-overflow-scrolling: touch;
-  border-top: 1px solid transparent;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
-          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
-}
-.navbar-collapse.in {
-  overflow-y: auto;
-}
-@media (min-width: 768px) {
-  .navbar-collapse {
-    width: auto;
-    border-top: 0;
-    -webkit-box-shadow: none;
-            box-shadow: none;
-  }
-  .navbar-collapse.collapse {
-    display: block !important;
-    height: auto !important;
-    padding-bottom: 0;
-    overflow: visible !important;
-  }
-  .navbar-collapse.in {
-    overflow-y: visible;
-  }
-  .navbar-fixed-top .navbar-collapse,
-  .navbar-static-top .navbar-collapse,
-  .navbar-fixed-bottom .navbar-collapse {
-  }
-}
-.navbar-fixed-top .navbar-collapse,
-.navbar-fixed-bottom .navbar-collapse {
-  max-height: 340px;
-}
-@media (max-device-width: 480px) and (orientation: landscape) {
-  .navbar-fixed-top .navbar-collapse,
-  .navbar-fixed-bottom .navbar-collapse {
-    max-height: 200px;
-  }
-}
-.container > .navbar-header,
-.container-fluid > .navbar-header,
-.container > .navbar-collapse,
-.container-fluid > .navbar-collapse {
-  margin-right: -15px;
-  margin-left: -15px;
-}
-@media (min-width: 768px) {
-  .container > .navbar-header,
-  .container-fluid > .navbar-header,
-  .container > .navbar-collapse,
-  .container-fluid > .navbar-collapse {
-    margin-right: 0;
-    margin-left: 0;
-  }
-}
-.navbar-static-top {
-  z-index: 1000;
-  border-width: 0 0 1px;
-}
-@media (min-width: 768px) {
-  .navbar-static-top {
-    border-radius: 0;
-  }
-}
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: 1030;
-}
-@media (min-width: 768px) {
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    border-radius: 0;
-  }
-}
-.navbar-fixed-top {
-  top: 0;
-  border-width: 0 0 1px;
-}
-.navbar-fixed-bottom {
-  bottom: 0;
-  margin-bottom: 0;
-  border-width: 1px 0 0;
-}
-.navbar-brand {
-  float: left;
-  height: 100%;
-  padding: 0px 15px;
-  font-size: 18px;
-  line-height: 20px;
-}
-.navbar-brand:hover,
-.navbar-brand:focus {
-  text-decoration: none;
-}
-.navbar-brand > img {
-  display: block;
-  height: 100%;
-}
-@media (min-width: 768px) {
-  .navbar > .container .navbar-brand,
-  .navbar > .container-fluid .navbar-brand {
-    margin-left: -15px;
-  }
-}
-.navbar-toggle {
-  position: relative;
-  float: right;
-  padding: 9px 10px;
-  margin-top: 8px;
-  margin-right: 15px;
-  margin-bottom: 8px;
-  background-color: transparent;
-  background-image: none;
-  border: 1px solid transparent;
-  border-radius: 4px;
-}
-.navbar-toggle:focus {
-  outline: 0;
-}
-.navbar-toggle .icon-bar {
-  display: block;
-  width: 22px;
-  height: 2px;
-  border-radius: 1px;
-}
-.navbar-toggle .icon-bar + .icon-bar {
-  margin-top: 4px;
-}
-@media (min-width: 768px) {
-  .navbar-toggle {
-    display: none;
-  }
-}
-.navbar-nav {
-  margin: 7.5px -15px;
-}
-.navbar-nav > li > a {
-  padding-top: 10px;
-  padding-bottom: 10px;
-  line-height: 20px;
-}
-@media (max-width: 767px) {
-  .navbar-nav .open .dropdown-menu {
-    position: static;
-    float: none;
-    width: auto;
-    margin-top: 0;
-    background-color: transparent;
-    border: 0;
-    -webkit-box-shadow: none;
-            box-shadow: none;
-  }
-  .navbar-nav .open .dropdown-menu > li > a,
-  .navbar-nav .open .dropdown-menu .dropdown-header {
-    padding: 5px 15px 5px 25px;
-  }
-  .navbar-nav .open .dropdown-menu > li > a {
-    line-height: 20px;
-  }
-  .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-nav .open .dropdown-menu > li > a:focus {
-    background-image: none;
-  }
-}
-@media (min-width: 768px) {
-  .navbar-nav {
-    float: left;
-    margin: 0;
-  }
-  .navbar-nav > li {
-    float: left;
-    margin-left:20px;
-  }
-  .navbar-nav > li > a {
-    padding:15px 25px;
-    font-size: 16px;
-    color: white;
-  }
-}
-.navbar-form {
-  padding: 10px 15px;
-  margin-top: 8px;
-  margin-right: -15px;
-  margin-bottom: 8px;
-  margin-left: -15px;
-  border-top: 1px solid transparent;
-  border-bottom: 1px solid transparent;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
-          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
-}
-@media (min-width: 768px) {
-  .navbar-form .form-group {
-    display: inline-block;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .form-control {
-    display: inline-block;
-    width: auto;
-    vertical-align: middle;
-  }
-  .navbar-form .form-control-static {
-    display: inline-block;
-  }
-  .navbar-form .input-group {
-    display: inline-table;
-    vertical-align: middle;
-  }
-  .navbar-form .input-group .input-group-addon,
-  .navbar-form .input-group .input-group-btn,
-  .navbar-form .input-group .form-control {
-    width: auto;
-  }
-  .navbar-form .input-group > .form-control {
-    width: 100%;
-  }
-  .navbar-form .control-label {
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .radio,
-  .navbar-form .checkbox {
-    display: inline-block;
-    margin-top: 0;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .radio label,
-  .navbar-form .checkbox label {
-    padding-left: 0;
-  }
-  .navbar-form .radio input[type="radio"],
-  .navbar-form .checkbox input[type="checkbox"] {
-    position: relative;
-    margin-left: 0;
-  }
-  .navbar-form .has-feedback .form-control-feedback {
-    top: 0;
-  }
-}
-@media (max-width: 767px) {
-  .navbar-form .form-group {
-    margin-bottom: 5px;
-  }
-  .navbar-form .form-group:last-child {
-    margin-bottom: 0;
-  }
-}
-@media (min-width: 768px) {
-  .navbar-form {
-    width: auto;
-    padding-top: 0;
-    padding-bottom: 0;
-    margin-right: 0;
-    margin-left: 0;
-    border: 0;
-    -webkit-box-shadow: none;
-            box-shadow: none;
-  }
-}
-.navbar-nav > li > .dropdown-menu {
-  margin-top: 0;
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
-  margin-bottom: 0;
-  border-top-left-radius: 4px;
-  border-top-right-radius: 4px;
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.navbar-btn {
-  margin-top: 8px;
-  margin-bottom: 8px;
-}
-.navbar-btn.btn-sm {
-  margin-top: 10px;
-  margin-bottom: 10px;
-}
-.navbar-btn.btn-xs {
-  margin-top: 14px;
-  margin-bottom: 14px;
-}
-.navbar-text {
-  margin-top: 15px;
-  margin-bottom: 15px;
-}
-@media (min-width: 768px) {
-  .navbar-text {
-    float: left;
-    margin-right: 15px;
-    margin-left: 15px;
-  }
-}
-@media (min-width: 768px) {
-  .navbar-left {
-    float: left !important;
-  }
-  .navbar-right {
-    float: right !important;
-  }
-  .navbar-right ~ .navbar-right {
-    margin-right: 0;
-  }
-}
-.navbar-default {
-  background-color: #f8f8f8;
-  border-color: #e7e7e7;
-}
-.navbar-default .navbar-brand {
-  color: #777;
-}
-.navbar-default .navbar-brand:hover,
-.navbar-default .navbar-brand:focus {
-  color: #5e5e5e;
-  background-color: transparent;
-}
-.navbar-default .navbar-text {
-  color: #777;
-}
-.navbar-default .navbar-nav > li > a {
-  color: #777;
-}
-.navbar-default .navbar-nav > li > a:hover,
-.navbar-default .navbar-nav > li > a:focus {
-}
-.navbar-default .navbar-nav > .active > a,
-.navbar-default .navbar-nav > .active > a:hover,
-.navbar-default .navbar-nav > .active > a:focus {
-}
-.navbar-default .navbar-nav > .disabled > a,
-.navbar-default .navbar-nav > .disabled > a:hover,
-.navbar-default .navbar-nav > .disabled > a:focus {
-}
-.navbar-default .navbar-toggle {
-  border-color: #ddd;
-}
-.navbar-default .navbar-toggle:hover,
-.navbar-default .navbar-toggle:focus {
-  background-color: #ddd;
-}
-.navbar-default .navbar-toggle .icon-bar {
-  background-color: #888;
-}
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
-  border-color: #e7e7e7;
-}
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .open > a:hover,
-.navbar-default .navbar-nav > .open > a:focus {
-}
-@media (max-width: 767px) {
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
-    color: #777;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
-  }
-}
-.navbar-default .navbar-link {
-  color: #777;
-}
-.navbar-default .navbar-link:hover {
-  color: #333;
-}
-.navbar-default .btn-link {
-  color: #777;
-}
-.navbar-default .btn-link:hover,
-.navbar-default .btn-link:focus {
-  color: #333;
-}
-.navbar-default .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-default .btn-link:hover,
-.navbar-default .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-default .btn-link:focus {
-  color: #ccc;
-}
-.navbar-inverse {
-  background-color: #222;
-  border-color: #080808;
-}
-.navbar-inverse .navbar-brand {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-brand:hover,
-.navbar-inverse .navbar-brand:focus {
-  color: #fff;
-  background-color: transparent;
-}
-.navbar-inverse .navbar-text {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-nav > li > a {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-nav > li > a:hover,
-.navbar-inverse .navbar-nav > li > a:focus {
-  color: #fff;
-  background-color: transparent;
-}
-.navbar-inverse .navbar-nav > .active > a,
-.navbar-inverse .navbar-nav > .active > a:hover,
-.navbar-inverse .navbar-nav > .active > a:focus {
-  color: #fff;
-  background-color: #080808;
-}
-.navbar-inverse .navbar-nav > .disabled > a,
-.navbar-inverse .navbar-nav > .disabled > a:hover,
-.navbar-inverse .navbar-nav > .disabled > a:focus {
-  color: #444;
-  background-color: transparent;
-}
-.navbar-inverse .navbar-toggle {
-  border-color: #333;
-}
-.navbar-inverse .navbar-toggle:hover,
-.navbar-inverse .navbar-toggle:focus {
-  background-color: #333;
-}
-.navbar-inverse .navbar-toggle .icon-bar {
-  background-color: #fff;
-}
-.navbar-inverse .navbar-collapse,
-.navbar-inverse .navbar-form {
-  border-color: #101010;
-}
-.navbar-inverse .navbar-nav > .open > a,
-.navbar-inverse .navbar-nav > .open > a:hover,
-.navbar-inverse .navbar-nav > .open > a:focus {
-  color: #fff;
-  background-color: #080808;
-}
-@media (max-width: 767px) {
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
-    border-color: #080808;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
-    background-color: #080808;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
-    color: #9d9d9d;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
-    color: #fff;
-    background-color: transparent;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
-    color: #fff;
-    background-color: #080808;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
-    color: #444;
-    background-color: transparent;
-  }
-}
-.navbar-inverse .navbar-link {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-link:hover {
-  color: #fff;
-}
-.navbar-inverse .btn-link {
-  color: #9d9d9d;
-}
-.navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link:focus {
-  color: #fff;
-}
-.navbar-inverse .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-inverse .btn-link:focus {
-  color: #444;
-}
-.breadcrumb {
-  padding: 8px 15px;
-  margin-bottom: 20px;
-  list-style: none;
-  background-color: #f5f5f5;
-  border-radius: 4px;
-}
-.breadcrumb > li {
-  display: inline-block;
-}
-.breadcrumb > li + li:before {
-  padding: 0 5px;
-  color: #ccc;
-  content: "/\00a0";
-}
-.breadcrumb > .active {
-  color: #777;
-}
-.pagination {
-  display: inline-block;
-  padding-left: 0;
-  margin: 20px 0;
-  border-radius: 4px;
-}
-.pagination > li {
-  display: inline;
-}
-.pagination > li > a,
-.pagination > li > span {
-  position: relative;
-  float: left;
-  padding: 6px 12px;
-  margin-left: -1px;
-  line-height: 1.42857143;
-  color: #337ab7;
-  text-decoration: none;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-.pagination > li:first-child > a,
-.pagination > li:first-child > span {
-  margin-left: 0;
-  border-top-left-radius: 4px;
-  border-bottom-left-radius: 4px;
-}
-.pagination > li:last-child > a,
-.pagination > li:last-child > span {
-  border-top-right-radius: 4px;
-  border-bottom-right-radius: 4px;
-}
-.pagination > li > a:hover,
-.pagination > li > span:hover,
-.pagination > li > a:focus,
-.pagination > li > span:focus {
-  z-index: 3;
-  color: #23527c;
-  background-color: #eee;
-  border-color: #ddd;
-}
-.pagination > .active > a,
-.pagination > .active > span,
-.pagination > .active > a:hover,
-.pagination > .active > span:hover,
-.pagination > .active > a:focus,
-.pagination > .active > span:focus {
-  z-index: 2;
-  color: #fff;
-  cursor: default;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-.pagination > .disabled > span,
-.pagination > .disabled > span:hover,
-.pagination > .disabled > span:focus,
-.pagination > .disabled > a,
-.pagination > .disabled > a:hover,
-.pagination > .disabled > a:focus {
-  color: #777;
-  cursor: not-allowed;
-  background-color: #fff;
-  border-color: #ddd;
-}
-.pagination-lg > li > a,
-.pagination-lg > li > span {
-  padding: 10px 16px;
-  font-size: 18px;
-  line-height: 1.3333333;
-}
-.pagination-lg > li:first-child > a,
-.pagination-lg > li:first-child > span {
-  border-top-left-radius: 6px;
-  border-bottom-left-radius: 6px;
-}
-.pagination-lg > li:last-child > a,
-.pagination-lg > li:last-child > span {
-  border-top-right-radius: 6px;
-  border-bottom-right-radius: 6px;
-}
-.pagination-sm > li > a,
-.pagination-sm > li > span {
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-}
-.pagination-sm > li:first-child > a,
-.pagination-sm > li:first-child > span {
-  border-top-left-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-.pagination-sm > li:last-child > a,
-.pagination-sm > li:last-child > span {
-  border-top-right-radius: 3px;
-  border-bottom-right-radius: 3px;
-}
-.pager {
-  padding-left: 0;
-  margin: 20px 0;
-  text-align: center;
-  list-style: none;
-}
-.pager li {
-  display: inline;
-}
-.pager li > a,
-.pager li > span {
-  display: inline-block;
-  padding: 5px 14px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 15px;
-}
-.pager li > a:hover,
-.pager li > a:focus {
-  text-decoration: none;
-  background-color: #eee;
-}
-.pager .next > a,
-.pager .next > span {
-  float: right;
-}
-.pager .previous > a,
-.pager .previous > span {
-  float: left;
-}
-.pager .disabled > a,
-.pager .disabled > a:hover,
-.pager .disabled > a:focus,
-.pager .disabled > span {
-  color: #777;
-  cursor: not-allowed;
-  background-color: #fff;
-}
-.label {
-  display: inline;
-  padding: .2em .6em .3em;
-  font-size: 75%;
-  font-weight: bold;
-  line-height: 1;
-  color: #fff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: .25em;
-}
-a.label:hover,
-a.label:focus {
-  color: #fff;
-  text-decoration: none;
-  cursor: pointer;
-}
-.label:empty {
-  display: none;
-}
-.btn .label {
-  position: relative;
-  top: -1px;
-}
-.label-default {
-  background-color: #777;
-}
-.label-default[href]:hover,
-.label-default[href]:focus {
-  background-color: #5e5e5e;
-}
-.label-primary {
-  background-color: #337ab7;
-}
-.label-primary[href]:hover,
-.label-primary[href]:focus {
-  background-color: #286090;
-}
-.label-success {
-  background-color: #5cb85c;
-}
-.label-success[href]:hover,
-.label-success[href]:focus {
-  background-color: #449d44;
-}
-.label-info {
-  background-color: #5bc0de;
-}
-.label-info[href]:hover,
-.label-info[href]:focus {
-  background-color: #31b0d5;
-}
-.label-warning {
-  background-color: #f0ad4e;
-}
-.label-warning[href]:hover,
-.label-warning[href]:focus {
-  background-color: #ec971f;
-}
-.label-danger {
-  background-color: #d9534f;
-}
-.label-danger[href]:hover,
-.label-danger[href]:focus {
-  background-color: #c9302c;
-}
-.badge {
-  display: inline-block;
-  min-width: 10px;
-  padding: 3px 7px;
-  font-size: 12px;
-  font-weight: bold;
-  line-height: 1;
-  color: #fff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: middle;
-  background-color: #777;
-  border-radius: 10px;
-}
-.badge:empty {
-  display: none;
-}
-.btn .badge {
-  position: relative;
-  top: -1px;
-}
-.btn-xs .badge,
-.btn-group-xs > .btn .badge {
-  top: 0;
-  padding: 1px 5px;
-}
-a.badge:hover,
-a.badge:focus {
-  color: #fff;
-  text-decoration: none;
-  cursor: pointer;
-}
-.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.list-group-item > .badge {
-  float: right;
-}
-.list-group-item > .badge + .badge {
-  margin-right: 5px;
-}
-.nav-pills > li > a > .badge {
-  margin-left: 3px;
-}
-.jumbotron {
-  padding-top: 30px;
-  padding-bottom: 30px;
-  margin-bottom: 30px;
-  color: inherit;
-  background-color: #eee;
-}
-.jumbotron h1,
-.jumbotron .h1 {
-  color: inherit;
-}
-.jumbotron p {
-  margin-bottom: 15px;
-  font-size: 21px;
-  font-weight: 200;
-}
-.jumbotron > hr {
-  border-top-color: #d5d5d5;
-}
-.container .jumbotron,
-.container-fluid .jumbotron {
-  border-radius: 6px;
-}
-.jumbotron .container {
-  max-width: 100%;
-}
-@media screen and (min-width: 768px) {
-  .jumbotron {
-    padding-top: 48px;
-    padding-bottom: 48px;
-  }
-  .container .jumbotron,
-  .container-fluid .jumbotron {
-    padding-right: 60px;
-    padding-left: 60px;
-  }
-  .jumbotron h1,
-  .jumbotron .h1 {
-    font-size: 63px;
-  }
-}
-.thumbnail {
-  display: block;
-  padding: 4px;
-  margin-bottom: 20px;
-  line-height: 1.42857143;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 4px;
-  -webkit-transition: border .2s ease-in-out;
-       -o-transition: border .2s ease-in-out;
-          transition: border .2s ease-in-out;
-}
-.thumbnail > img,
-.thumbnail a > img {
-  margin-right: auto;
-  margin-left: auto;
-}
-a.thumbnail:hover,
-a.thumbnail:focus,
-a.thumbnail.active {
-  border-color: #337ab7;
-}
-.thumbnail .caption {
-  padding: 9px;
-  color: #333;
-}
-.alert {
-  padding: 15px;
-  margin-bottom: 20px;
-  border: 1px solid transparent;
-  border-radius: 4px;
-}
-.alert h4 {
-  margin-top: 0;
-  color: inherit;
-}
-.alert .alert-link {
-  font-weight: bold;
-}
-.alert > p,
-.alert > ul {
-  margin-bottom: 0;
-}
-.alert > p + p {
-  margin-top: 5px;
-}
-.alert-dismissable,
-.alert-dismissible {
-  padding-right: 35px;
-}
-.alert-dismissable .close,
-.alert-dismissible .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  color: inherit;
-}
-.alert-success {
-  color: #3c763d;
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-}
-.alert-success hr {
-  border-top-color: #c9e2b3;
-}
-.alert-success .alert-link {
-  color: #2b542c;
-}
-.alert-info {
-  color: #31708f;
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-}
-.alert-info hr {
-  border-top-color: #a6e1ec;
-}
-.alert-info .alert-link {
-  color: #245269;
-}
-.alert-warning {
-  color: #8a6d3b;
-  background-color: #fcf8e3;
-  border-color: #faebcc;
-}
-.alert-warning hr {
-  border-top-color: #f7e1b5;
-}
-.alert-warning .alert-link {
-  color: #66512c;
-}
-.alert-danger {
-  color: #a94442;
-  background-color: #f2dede;
-  border-color: #ebccd1;
-}
-.alert-danger hr {
-  border-top-color: #e4b9c0;
-}
-.alert-danger .alert-link {
-  color: #843534;
-}
-@-webkit-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@-o-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-.progress {
-  height: 20px;
-  margin-bottom: 20px;
-  overflow: hidden;
-  background-color: #f5f5f5;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
-          box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
-}
-.progress-bar {
-  float: left;
-  width: 0;
-  height: 100%;
-  font-size: 12px;
-  line-height: 20px;
-  color: #fff;
-  text-align: center;
-  background-color: #337ab7;
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
-          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
-  -webkit-transition: width .6s ease;
-       -o-transition: width .6s ease;
-          transition: width .6s ease;
-}
-.progress-striped .progress-bar,
-.progress-bar-striped {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  -webkit-background-size: 40px 40px;
-          background-size: 40px 40px;
-}
-.progress.active .progress-bar,
-.progress-bar.active {
-  -webkit-animation: progress-bar-stripes 2s linear infinite;
-       -o-animation: progress-bar-stripes 2s linear infinite;
-          animation: progress-bar-stripes 2s linear infinite;
-}
-.progress-bar-success {
-  background-color: #5cb85c;
-}
-.progress-striped .progress-bar-success {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.progress-bar-info {
-  background-color: #5bc0de;
-}
-.progress-striped .progress-bar-info {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.progress-bar-warning {
-  background-color: #f0ad4e;
-}
-.progress-striped .progress-bar-warning {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.progress-bar-danger {
-  background-color: #d9534f;
-}
-.progress-striped .progress-bar-danger {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.media {
-  margin-top: 15px;
-}
-.media:first-child {
-  margin-top: 0;
-}
-.media,
-.media-body {
-  overflow: hidden;
-  zoom: 1;
-}
-.media-body {
-  width: 10000px;
-}
-.media-object {
-  display: block;
-}
-.media-object.img-thumbnail {
-  max-width: none;
-}
-.media-right,
-.media > .pull-right {
-  padding-left: 10px;
-}
-.media-left,
-.media > .pull-left {
-  padding-right: 10px;
-}
-.media-left,
-.media-right,
-.media-body {
-  display: table-cell;
-  vertical-align: top;
-}
-.media-middle {
-  vertical-align: middle;
-}
-.media-bottom {
-  vertical-align: bottom;
-}
-.media-heading {
-  margin-top: 0;
-  margin-bottom: 5px;
-}
-.media-list {
-  padding-left: 0;
-  list-style: none;
-}
-.list-group {
-  padding-left: 0;
-  margin-bottom: 20px;
-}
-.list-group-item {
-  position: relative;
-  display: block;
-  padding: 10px 15px;
-  margin-bottom: -1px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-.list-group-item:first-child {
-  border-top-left-radius: 4px;
-  border-top-right-radius: 4px;
-}
-.list-group-item:last-child {
-  margin-bottom: 0;
-  border-bottom-right-radius: 4px;
-  border-bottom-left-radius: 4px;
-}
-a.list-group-item,
-button.list-group-item {
-  color: #555;
-}
-a.list-group-item .list-group-item-heading,
-button.list-group-item .list-group-item-heading {
-  color: #333;
-}
-a.list-group-item:hover,
-button.list-group-item:hover,
-a.list-group-item:focus,
-button.list-group-item:focus {
-  color: #555;
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-button.list-group-item {
-  width: 100%;
-  text-align: left;
-}
-.list-group-item.disabled,
-.list-group-item.disabled:hover,
-.list-group-item.disabled:focus {
-  color: #777;
-  cursor: not-allowed;
-  background-color: #eee;
-}
-.list-group-item.disabled .list-group-item-heading,
-.list-group-item.disabled:hover .list-group-item-heading,
-.list-group-item.disabled:focus .list-group-item-heading {
-  color: inherit;
-}
-.list-group-item.disabled .list-group-item-text,
-.list-group-item.disabled:hover .list-group-item-text,
-.list-group-item.disabled:focus .list-group-item-text {
-  color: #777;
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
-  z-index: 2;
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-.list-group-item.active .list-group-item-heading,
-.list-group-item.active:hover .list-group-item-heading,
-.list-group-item.active:focus .list-group-item-heading,
-.list-group-item.active .list-group-item-heading > small,
-.list-group-item.active:hover .list-group-item-heading > small,
-.list-group-item.active:focus .list-group-item-heading > small,
-.list-group-item.active .list-group-item-heading > .small,
-.list-group-item.active:hover .list-group-item-heading > .small,
-.list-group-item.active:focus .list-group-item-heading > .small {
-  color: inherit;
-}
-.list-group-item.active .list-group-item-text,
-.list-group-item.active:hover .list-group-item-text,
-.list-group-item.active:focus .list-group-item-text {
-  color: #c7ddef;
-}
-.list-group-item-success {
-  color: #3c763d;
-  background-color: #dff0d8;
-}
-a.list-group-item-success,
-button.list-group-item-success {
-  color: #3c763d;
-}
-a.list-group-item-success .list-group-item-heading,
-button.list-group-item-success .list-group-item-heading {
-  color: inherit;
-}
-a.list-group-item-success:hover,
-button.list-group-item-success:hover,
-a.list-group-item-success:focus,
-button.list-group-item-success:focus {
-  color: #3c763d;
-  background-color: #d0e9c6;
-}
-a.list-group-item-success.active,
-button.list-group-item-success.active,
-a.list-group-item-success.active:hover,
-button.list-group-item-success.active:hover,
-a.list-group-item-success.active:focus,
-button.list-group-item-success.active:focus {
-  color: #fff;
-  background-color: #3c763d;
-  border-color: #3c763d;
-}
-.list-group-item-info {
-  color: #31708f;
-  background-color: #d9edf7;
-}
-a.list-group-item-info,
-button.list-group-item-info {
-  color: #31708f;
-}
-a.list-group-item-info .list-group-item-heading,
-button.list-group-item-info .list-group-item-heading {
-  color: inherit;
-}
-a.list-group-item-info:hover,
-button.list-group-item-info:hover,
-a.list-group-item-info:focus,
-button.list-group-item-info:focus {
-  color: #31708f;
-  background-color: #c4e3f3;
-}
-a.list-group-item-info.active,
-button.list-group-item-info.active,
-a.list-group-item-info.active:hover,
-button.list-group-item-info.active:hover,
-a.list-group-item-info.active:focus,
-button.list-group-item-info.active:focus {
-  color: #fff;
-  background-color: #31708f;
-  border-color: #31708f;
-}
-.list-group-item-warning {
-  color: #8a6d3b;
-  background-color: #fcf8e3;
-}
-a.list-group-item-warning,
-button.list-group-item-warning {
-  color: #8a6d3b;
-}
-a.list-group-item-warning .list-group-item-heading,
-button.list-group-item-warning .list-group-item-heading {
-  color: inherit;
-}
-a.list-group-item-warning:hover,
-button.list-group-item-warning:hover,
-a.list-group-item-warning:focus,
-button.list-group-item-warning:focus {
-  color: #8a6d3b;
-  background-color: #faf2cc;
-}
-a.list-group-item-warning.active,
-button.list-group-item-warning.active,
-a.list-group-item-warning.active:hover,
-button.list-group-item-warning.active:hover,
-a.list-group-item-warning.active:focus,
-button.list-group-item-warning.active:focus {
-  color: #fff;
-  background-color: #8a6d3b;
-  border-color: #8a6d3b;
-}
-.list-group-item-danger {
-  color: #a94442;
-  background-color: #f2dede;
-}
-a.list-group-item-danger,
-button.list-group-item-danger {
-  color: #a94442;
-}
-a.list-group-item-danger .list-group-item-heading,
-button.list-group-item-danger .list-group-item-heading {
-  color: inherit;
-}
-a.list-group-item-danger:hover,
-button.list-group-item-danger:hover,
-a.list-group-item-danger:focus,
-button.list-group-item-danger:focus {
-  color: #a94442;
-  background-color: #ebcccc;
-}
-a.list-group-item-danger.active,
-button.list-group-item-danger.active,
-a.list-group-item-danger.active:hover,
-button.list-group-item-danger.active:hover,
-a.list-group-item-danger.active:focus,
-button.list-group-item-danger.active:focus {
-  color: #fff;
-  background-color: #a94442;
-  border-color: #a94442;
-}
-.list-group-item-heading {
-  margin-top: 0;
-  margin-bottom: 5px;
-}
-.list-group-item-text {
-  margin-bottom: 0;
-  line-height: 1.3;
-}
-.panel {
-  margin-bottom: 20px;
-  background-color: #fff;
-  border: 1px solid transparent;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
-          box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
-}
-.panel-body {
-  padding: 15px;
-}
-.panel-heading {
-  padding: 10px 15px;
-  border-bottom: 1px solid transparent;
-  border-top-left-radius: 3px;
-  border-top-right-radius: 3px;
-}
-.panel-heading > .dropdown .dropdown-toggle {
-  color: inherit;
-}
-.panel-title {
-  margin-top: 0;
-  margin-bottom: 0;
-  font-size: 16px;
-  color: inherit;
-}
-.panel-title > a,
-.panel-title > small,
-.panel-title > .small,
-.panel-title > small > a,
-.panel-title > .small > a {
-  color: inherit;
-}
-.panel-footer {
-  padding: 10px 15px;
-  background-color: #f5f5f5;
-  border-top: 1px solid #ddd;
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-.panel > .list-group,
-.panel > .panel-collapse > .list-group {
-  margin-bottom: 0;
-}
-.panel > .list-group .list-group-item,
-.panel > .panel-collapse > .list-group .list-group-item {
-  border-width: 1px 0;
-  border-radius: 0;
-}
-.panel > .list-group:first-child .list-group-item:first-child,
-.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
-  border-top: 0;
-  border-top-left-radius: 3px;
-  border-top-right-radius: 3px;
-}
-.panel > .list-group:last-child .list-group-item:last-child,
-.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
-  border-bottom: 0;
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-.panel-heading + .list-group .list-group-item:first-child {
-  border-top-width: 0;
-}
-.list-group + .panel-footer {
-  border-top-width: 0;
-}
-.panel > .table,
-.panel > .table-responsive > .table,
-.panel > .panel-collapse > .table {
-  margin-bottom: 0;
-}
-.panel > .table caption,
-.panel > .table-responsive > .table caption,
-.panel > .panel-collapse > .table caption {
-  padding-right: 15px;
-  padding-left: 15px;
-}
-.panel > .table:first-child,
-.panel > .table-responsive:first-child > .table:first-child {
-  border-top-left-radius: 3px;
-  border-top-right-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
-  border-top-left-radius: 3px;
-  border-top-right-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
-  border-top-left-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
-  border-top-right-radius: 3px;
-}
-.panel > .table:last-child,
-.panel > .table-responsive:last-child > .table:last-child {
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
-  border-bottom-left-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
-  border-bottom-right-radius: 3px;
-}
-.panel > .panel-body + .table,
-.panel > .panel-body + .table-responsive,
-.panel > .table + .panel-body,
-.panel > .table-responsive + .panel-body {
-  border-top: 1px solid #ddd;
-}
-.panel > .table > tbody:first-child > tr:first-child th,
-.panel > .table > tbody:first-child > tr:first-child td {
-  border-top: 0;
-}
-.panel > .table-bordered,
-.panel > .table-responsive > .table-bordered {
-  border: 0;
-}
-.panel > .table-bordered > thead > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
-.panel > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-bordered > thead > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
-.panel > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-bordered > tfoot > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
-  border-left: 0;
-}
-.panel > .table-bordered > thead > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
-.panel > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-bordered > thead > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
-.panel > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-bordered > tfoot > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
-  border-right: 0;
-}
-.panel > .table-bordered > thead > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
-.panel > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-bordered > thead > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
-.panel > .table-bordered > tbody > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
-  border-bottom: 0;
-}
-.panel > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-bordered > tfoot > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
-  border-bottom: 0;
-}
-.panel > .table-responsive {
-  margin-bottom: 0;
-  border: 0;
-}
-.panel-group {
-  margin-bottom: 20px;
-}
-.panel-group .panel {
-  margin-bottom: 0;
-  border-radius: 4px;
-}
-.panel-group .panel + .panel {
-  margin-top: 5px;
-}
-.panel-group .panel-heading {
-  border-bottom: 0;
-}
-.panel-group .panel-heading + .panel-collapse > .panel-body,
-.panel-group .panel-heading + .panel-collapse > .list-group {
-  border-top: 1px solid #ddd;
-}
-.panel-group .panel-footer {
-  border-top: 0;
-}
-.panel-group .panel-footer + .panel-collapse .panel-body {
-  border-bottom: 1px solid #ddd;
-}
-.panel-default {
-  border-color: #ddd;
-}
-.panel-default > .panel-heading {
-  color: #333;
-  background-color: #f5f5f5;
-  border-color: #ddd;
-}
-.panel-default > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #ddd;
-}
-.panel-default > .panel-heading .badge {
-  color: #f5f5f5;
-  background-color: #333;
-}
-.panel-default > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #ddd;
-}
-.panel-primary {
-  border-color: #337ab7;
-}
-.panel-primary > .panel-heading {
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-.panel-primary > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #337ab7;
-}
-.panel-primary > .panel-heading .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.panel-primary > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #337ab7;
-}
-.panel-success {
-  border-color: #d6e9c6;
-}
-.panel-success > .panel-heading {
-  color: #3c763d;
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-}
-.panel-success > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #d6e9c6;
-}
-.panel-success > .panel-heading .badge {
-  color: #dff0d8;
-  background-color: #3c763d;
-}
-.panel-success > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #d6e9c6;
-}
-.panel-info {
-  border-color: #bce8f1;
-}
-.panel-info > .panel-heading {
-  color: #31708f;
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-}
-.panel-info > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #bce8f1;
-}
-.panel-info > .panel-heading .badge {
-  color: #d9edf7;
-  background-color: #31708f;
-}
-.panel-info > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #bce8f1;
-}
-.panel-warning {
-  border-color: #faebcc;
-}
-.panel-warning > .panel-heading {
-  color: #8a6d3b;
-  background-color: #fcf8e3;
-  border-color: #faebcc;
-}
-.panel-warning > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #faebcc;
-}
-.panel-warning > .panel-heading .badge {
-  color: #fcf8e3;
-  background-color: #8a6d3b;
-}
-.panel-warning > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #faebcc;
-}
-.panel-danger {
-  border-color: #ebccd1;
-}
-.panel-danger > .panel-heading {
-  color: #a94442;
-  background-color: #f2dede;
-  border-color: #ebccd1;
-}
-.panel-danger > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #ebccd1;
-}
-.panel-danger > .panel-heading .badge {
-  color: #f2dede;
-  background-color: #a94442;
-}
-.panel-danger > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #ebccd1;
-}
-.embed-responsive {
-  position: relative;
-  display: block;
-  height: 0;
-  padding: 0;
-  overflow: hidden;
-}
-.embed-responsive .embed-responsive-item,
-.embed-responsive iframe,
-.embed-responsive embed,
-.embed-responsive object,
-.embed-responsive video {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  border: 0;
-}
-.embed-responsive-16by9 {
-  padding-bottom: 56.25%;
-}
-.embed-responsive-4by3 {
-  padding-bottom: 75%;
-}
-.well {
-  min-height: 20px;
-  padding: 19px;
-  margin-bottom: 20px;
-  background-color: #f5f5f5;
-  border: 1px solid #e3e3e3;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
-}
-.well blockquote {
-  border-color: #ddd;
-  border-color: rgba(0, 0, 0, .15);
-}
-.well-lg {
-  padding: 24px;
-  border-radius: 6px;
-}
-.well-sm {
-  padding: 9px;
-  border-radius: 3px;
-}
-.close {
-  float: right;
-  font-size: 21px;
-  font-weight: bold;
-  line-height: 1;
-  color: #000;
-  text-shadow: 0 1px 0 #fff;
-  filter: alpha(opacity=20);
-  opacity: .2;
-}
-.close:hover,
-.close:focus {
-  color: #000;
-  text-decoration: none;
-  cursor: pointer;
-  filter: alpha(opacity=50);
-  opacity: .5;
-}
-button.close {
-  -webkit-appearance: none;
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-}
-.modal-open {
-  overflow: hidden;
-}
-.modal {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 9550;
-  display: none;
-  overflow: hidden;
-  -webkit-overflow-scrolling: touch;
-  outline: 0;
-}
-.modal.fade .modal-dialog {
-  -webkit-transition: -webkit-transform .3s ease-out;
-       -o-transition:      -o-transform .3s ease-out;
-          transition:         transform .3s ease-out;
-  -webkit-transform: translate(0, -25%);
-      -ms-transform: translate(0, -25%);
-       -o-transform: translate(0, -25%);
-          transform: translate(0, -25%);
-}
-.modal.in .modal-dialog {
-  -webkit-transform: translate(0, 0);
-      -ms-transform: translate(0, 0);
-       -o-transform: translate(0, 0);
-          transform: translate(0, 0);
-}
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
-}
-.modal-content {
-  position: relative;
-  background-color: #fff;
-  -webkit-background-clip: padding-box;
-          background-clip: padding-box;
-  border: 1px solid #999;
-  border: 1px solid rgba(0, 0, 0, .2);
-  border-radius: 0px;
-  outline: 0;
-  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
-          box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
-}
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 9549;
-  background-color: #000;
-}
-.modal-backdrop.fade {
-  filter: alpha(opacity=0);
-  opacity: 0;
-}
-.modal-backdrop.in {
-  filter: alpha(opacity=90);
-  opacity: .9;
-}
-.modal-header {
-  min-height: 16.42857143px;
-  padding: 15px;
-  border-bottom: 1px solid #e5e5e5;
-}
-.modal-header .close {
-  margin-top: -2px;
-}
-.modal-title {
-  margin: 0;
-  line-height: 1.42857143;
-}
-.modal-body {
-  position: relative;
-  padding: 15px;
-}
-.modal-footer {
-  padding: 15px;
-  text-align: right;
-  border-top: 1px solid #e5e5e5;
-}
-.modal-footer .btn + .btn {
-  margin-bottom: 0;
-  margin-left: 5px;
-}
-.modal-footer .btn-group .btn + .btn {
-  margin-left: -1px;
-}
-.modal-footer .btn-block + .btn-block {
-  margin-left: 0;
-}
-.modal-scrollbar-measure {
-  position: absolute;
-  top: -9999px;
-  width: 50px;
-  height: 50px;
-  overflow: scroll;
-}
-@media (min-width: 768px) {
-  .modal-dialog {
-    width: 600px;
-    margin: 30px auto;
-  }
-  .modal-content {
-    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
-            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
-  }
-  .modal-sm {
-    width: 300px;
-  }
-}
-@media (min-width: 992px) {
-  .modal-lg {
-    width: 900px;
-  }
-}
-.tooltip {
-  position: absolute;
-  z-index: 1070;
-  display: block;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 12px;
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1.42857143;
-  text-align: left;
-  text-align: start;
-  text-decoration: none;
-  text-shadow: none;
-  text-transform: none;
-  letter-spacing: normal;
-  word-break: normal;
-  word-spacing: normal;
-  word-wrap: normal;
-  white-space: normal;
-  filter: alpha(opacity=0);
-  opacity: 0;
-
-  line-break: auto;
-}
-.tooltip.in {
-  filter: alpha(opacity=90);
-  opacity: .9;
-}
-.tooltip.top {
-  padding: 5px 0;
-  margin-top: -3px;
-}
-.tooltip.right {
-  padding: 0 5px;
-  margin-left: 3px;
-}
-.tooltip.bottom {
-  padding: 5px 0;
-  margin-top: 3px;
-}
-.tooltip.left {
-  padding: 0 5px;
-  margin-left: -3px;
-}
-.tooltip-inner {
-  max-width: 200px;
-  padding: 3px 8px;
-  color: #fff;
-  text-align: center;
-  background-color: #000;
-  border-radius: 4px;
-}
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
-.tooltip.top .tooltip-arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-width: 5px 5px 0;
-  border-top-color: #000;
-}
-.tooltip.top-left .tooltip-arrow {
-  right: 5px;
-  bottom: 0;
-  margin-bottom: -5px;
-  border-width: 5px 5px 0;
-  border-top-color: #000;
-}
-.tooltip.top-right .tooltip-arrow {
-  bottom: 0;
-  left: 5px;
-  margin-bottom: -5px;
-  border-width: 5px 5px 0;
-  border-top-color: #000;
-}
-.tooltip.right .tooltip-arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-width: 5px 5px 5px 0;
-  border-right-color: #000;
-}
-.tooltip.left .tooltip-arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-width: 5px 0 5px 5px;
-  border-left-color: #000;
-}
-.tooltip.bottom .tooltip-arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: #000;
-}
-.tooltip.bottom-left .tooltip-arrow {
-  top: 0;
-  right: 5px;
-  margin-top: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: #000;
-}
-.tooltip.bottom-right .tooltip-arrow {
-  top: 0;
-  left: 5px;
-  margin-top: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: #000;
-}
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 1060;
-  display: none;
-  max-width: 276px;
-  padding: 1px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 14px;
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1.42857143;
-  text-align: left;
-  text-align: start;
-  text-decoration: none;
-  text-shadow: none;
-  text-transform: none;
-  letter-spacing: normal;
-  word-break: normal;
-  word-spacing: normal;
-  word-wrap: normal;
-  white-space: normal;
-  background-color: #fff;
-  -webkit-background-clip: padding-box;
-          background-clip: padding-box;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, .2);
-  border-radius: 6px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-          box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-
-  line-break: auto;
-}
-.popover.top {
-  margin-top: -10px;
-}
-.popover.right {
-  margin-left: 10px;
-}
-.popover.bottom {
-  margin-top: 10px;
-}
-.popover.left {
-  margin-left: -10px;
-}
-.popover-title {
-  padding: 8px 14px;
-  margin: 0;
-  font-size: 14px;
-  background-color: #f7f7f7;
-  border-bottom: 1px solid #ebebeb;
-  border-radius: 5px 5px 0 0;
-}
-.popover-content {
-  padding: 9px 14px;
-}
-.popover > .arrow,
-.popover > .arrow:after {
-  position: absolute;
-  display: block;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
-.popover > .arrow {
-  border-width: 11px;
-}
-.popover > .arrow:after {
-  content: "";
-  border-width: 10px;
-}
-.popover.top > .arrow {
-  bottom: -11px;
-  left: 50%;
-  margin-left: -11px;
-  border-top-color: #999;
-  border-top-color: rgba(0, 0, 0, .25);
-  border-bottom-width: 0;
-}
-.popover.top > .arrow:after {
-  bottom: 1px;
-  margin-left: -10px;
-  content: " ";
-  border-top-color: #fff;
-  border-bottom-width: 0;
-}
-.popover.right > .arrow {
-  top: 50%;
-  left: -11px;
-  margin-top: -11px;
-  border-right-color: #999;
-  border-right-color: rgba(0, 0, 0, .25);
-  border-left-width: 0;
-}
-.popover.right > .arrow:after {
-  bottom: -10px;
-  left: 1px;
-  content: " ";
-  border-right-color: #fff;
-  border-left-width: 0;
-}
-.popover.bottom > .arrow {
-  top: -11px;
-  left: 50%;
-  margin-left: -11px;
-  border-top-width: 0;
-  border-bottom-color: #999;
-  border-bottom-color: rgba(0, 0, 0, .25);
-}
-.popover.bottom > .arrow:after {
-  top: 1px;
-  margin-left: -10px;
-  content: " ";
-  border-top-width: 0;
-  border-bottom-color: #fff;
-}
-.popover.left > .arrow {
-  top: 50%;
-  right: -11px;
-  margin-top: -11px;
-  border-right-width: 0;
-  border-left-color: #999;
-  border-left-color: rgba(0, 0, 0, .25);
-}
-.popover.left > .arrow:after {
-  right: 1px;
-  bottom: -10px;
-  content: " ";
-  border-right-width: 0;
-  border-left-color: #fff;
-}
-.carousel {
-  position: relative;
-}
-.carousel-inner {
-  position: relative;
-  width: 100%;
-  overflow: hidden;
-}
-.carousel-inner > .item {
-  position: relative;
-  display: none;
-  -webkit-transition: .6s ease-in-out left;
-       -o-transition: .6s ease-in-out left;
-          transition: .6s ease-in-out left;
-}
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
-  line-height: 1;
-}
-@media all and (transform-3d), (-webkit-transform-3d) {
-  .carousel-inner > .item {
-    -webkit-transition: -webkit-transform .6s ease-in-out;
-         -o-transition:      -o-transform .6s ease-in-out;
-            transition:         transform .6s ease-in-out;
-
-    -webkit-backface-visibility: hidden;
-            backface-visibility: hidden;
-    -webkit-perspective: 1000px;
-            perspective: 1000px;
-  }
-  .carousel-inner > .item.next,
-  .carousel-inner > .item.active.right {
-    left: 0;
-    -webkit-transform: translate3d(100%, 0, 0);
-            transform: translate3d(100%, 0, 0);
-  }
-  .carousel-inner > .item.prev,
-  .carousel-inner > .item.active.left {
-    left: 0;
-    -webkit-transform: translate3d(-100%, 0, 0);
-            transform: translate3d(-100%, 0, 0);
-  }
-  .carousel-inner > .item.next.left,
-  .carousel-inner > .item.prev.right,
-  .carousel-inner > .item.active {
-    left: 0;
-    -webkit-transform: translate3d(0, 0, 0);
-            transform: translate3d(0, 0, 0);
-  }
-}
-.carousel-inner > .active,
-.carousel-inner > .next,
-.carousel-inner > .prev {
-  display: block;
-}
-.carousel-inner > .active {
-  left: 0;
-}
-.carousel-inner > .next,
-.carousel-inner > .prev {
-  position: absolute;
-  top: 0;
-  width: 100%;
-}
-.carousel-inner > .next {
-  left: 100%;
-}
-.carousel-inner > .prev {
-  left: -100%;
-}
-.carousel-inner > .next.left,
-.carousel-inner > .prev.right {
-  left: 0;
-}
-.carousel-inner > .active.left {
-  left: -100%;
-}
-.carousel-inner > .active.right {
-  left: 100%;
-}
-.carousel-control {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  width: 15%;
-  font-size: 20px;
-  color: #fff;
-  text-align: center;
-  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
-  filter: alpha(opacity=50);
-  opacity: .5;
-}
-.carousel-control.left {
-  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
-  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
-  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));
-  background-image:         linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
-  background-repeat: repeat-x;
-}
-.carousel-control.right {
-  right: 0;
-  left: auto;
-  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
-  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
-  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));
-  background-image:         linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
-  background-repeat: repeat-x;
-}
-.carousel-control:hover,
-.carousel-control:focus {
-  color: #fff;
-  text-decoration: none;
-  filter: alpha(opacity=90);
-  outline: 0;
-  opacity: .9;
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-left,
-.carousel-control .glyphicon-chevron-right {
-  position: absolute;
-  top: 50%;
-  z-index: 5;
-  display: inline-block;
-  margin-top: -10px;
-}
-.carousel-control .icon-prev,
-.carousel-control .glyphicon-chevron-left {
-  left: 50%;
-  margin-left: -10px;
-}
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-right {
-  right: 50%;
-  margin-right: -10px;
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next {
-  width: 20px;
-  height: 20px;
-  font-family: serif;
-  line-height: 1;
-}
-.carousel-control .icon-prev:before {
-  content: '\2039';
-}
-.carousel-control .icon-next:before {
-  content: '\203a';
-}
-.carousel-indicators {
-  position: absolute;
-  bottom: 10px;
-  left: 50%;
-  z-index: 15;
-  width: 60%;
-  padding-left: 0;
-  margin-left: -30%;
-  text-align: center;
-  list-style: none;
-}
-.carousel-indicators li {
-  display: inline-block;
-  width: 10px;
-  height: 10px;
-  margin: 1px;
-  text-indent: -999px;
-  cursor: pointer;
-  background-color: #000 \9;
-  background-color: rgba(0, 0, 0, 0);
-  border: 1px solid #fff;
-  border-radius: 10px;
-}
-.carousel-indicators .active {
-  width: 12px;
-  height: 12px;
-  margin: 0;
-  background-color: #fff;
-}
-.carousel-caption {
-  position: absolute;
-  right: 15%;
-  bottom: 20px;
-  left: 15%;
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: #fff;
-  text-align: center;
-  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
-}
-.carousel-caption .btn {
-  text-shadow: none;
-}
-@media screen and (min-width: 768px) {
-  .carousel-control .glyphicon-chevron-left,
-  .carousel-control .glyphicon-chevron-right,
-  .carousel-control .icon-prev,
-  .carousel-control .icon-next {
-    width: 30px;
-    height: 30px;
-    margin-top: -15px;
-    font-size: 30px;
-  }
-  .carousel-control .glyphicon-chevron-left,
-  .carousel-control .icon-prev {
-    margin-left: -15px;
-  }
-  .carousel-control .glyphicon-chevron-right,
-  .carousel-control .icon-next {
-    margin-right: -15px;
-  }
-  .carousel-caption {
-    right: 20%;
-    left: 20%;
-    padding-bottom: 30px;
-  }
-  .carousel-indicators {
-    bottom: 20px;
-  }
-}
-.clearfix:before,
-.clearfix:after,
-.dl-horizontal dd:before,
-.dl-horizontal dd:after,
-.container:before,
-.container:after,
-.container-fluid:before,
-.container-fluid:after,
-.row:before,
-.row:after,
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after,
-.btn-toolbar:before,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:before,
-.btn-group-vertical > .btn-group:after,
-.nav:before,
-.nav:after,
-.navbar:before,
-.navbar:after,
-.navbar-header:before,
-.navbar-header:after,
-.navbar-collapse:before,
-.navbar-collapse:after,
-.pager:before,
-.pager:after,
-.panel-body:before,
-.panel-body:after,
-.modal-footer:before,
-.modal-footer:after {
-  display: table;
-  content: " ";
-}
-.clearfix:after,
-.dl-horizontal dd:after,
-.container:after,
-.container-fluid:after,
-.row:after,
-.form-horizontal .form-group:after,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:after,
-.nav:after,
-.navbar:after,
-.navbar-header:after,
-.navbar-collapse:after,
-.pager:after,
-.panel-body:after,
-.modal-footer:after {
-  clear: both;
-}
-.center-block {
-  display: block;
-  margin-right: auto;
-  margin-left: auto;
-}
-.pull-right {
-  float: right !important;
-}
-.pull-left {
-  float: left !important;
-}
-.hide {
-  display: none !important;
-}
-.show {
-  display: block !important;
-}
-.invisible {
-  visibility: hidden;
-}
-.text-hide {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
-.hidden {
-  display: none !important;
-}
-.affix {
-  position: fixed;
-}
-@-ms-viewport {
-  width: device-width;
-}
-.visible-xs,
-.visible-sm,
-.visible-md,
-.visible-lg {
-  display: none !important;
-}
-.visible-xs-block,
-.visible-xs-inline,
-.visible-xs-inline-block,
-.visible-sm-block,
-.visible-sm-inline,
-.visible-sm-inline-block,
-.visible-md-block,
-.visible-md-inline,
-.visible-md-inline-block,
-.visible-lg-block,
-.visible-lg-inline,
-.visible-lg-inline-block {
-  display: none !important;
-}
-@media (max-width: 767px) {
-  .visible-xs {
-    display: block !important;
-  }
-  table.visible-xs {
-    display: table !important;
-  }
-  tr.visible-xs {
-    display: table-row !important;
-  }
-  th.visible-xs,
-  td.visible-xs {
-    display: table-cell !important;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-block {
-    display: block !important;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-inline {
-    display: inline !important;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm {
-    display: block !important;
-  }
-  table.visible-sm {
-    display: table !important;
-  }
-  tr.visible-sm {
-    display: table-row !important;
-  }
-  th.visible-sm,
-  td.visible-sm {
-    display: table-cell !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm-block {
-    display: block !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md {
-    display: block !important;
-  }
-  table.visible-md {
-    display: table !important;
-  }
-  tr.visible-md {
-    display: table-row !important;
-  }
-  th.visible-md,
-  td.visible-md {
-    display: table-cell !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md-block {
-    display: block !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg {
-    display: block !important;
-  }
-  table.visible-lg {
-    display: table !important;
-  }
-  tr.visible-lg {
-    display: table-row !important;
-  }
-  th.visible-lg,
-  td.visible-lg {
-    display: table-cell !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg-block {
-    display: block !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (max-width: 767px) {
-  .hidden-xs {
-    display: none !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .hidden-sm {
-    display: none !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .hidden-md {
-    display: none !important;
-  }
-}
-@media (min-width: 1200px) {
-  .hidden-lg {
-    display: none !important;
-  }
-}
-.visible-print {
-  display: none !important;
-}
-@media print {
-  .visible-print {
-    display: block !important;
-  }
-  table.visible-print {
-    display: table !important;
-  }
-  tr.visible-print {
-    display: table-row !important;
-  }
-  th.visible-print,
-  td.visible-print {
-    display: table-cell !important;
-  }
-}
-.visible-print-block {
-  display: none !important;
-}
-@media print {
-  .visible-print-block {
-    display: block !important;
-  }
-}
-.visible-print-inline {
-  display: none !important;
-}
-@media print {
-  .visible-print-inline {
-    display: inline !important;
-  }
-}
-.visible-print-inline-block {
-  display: none !important;
-}
-@media print {
-  .visible-print-inline-block {
-    display: inline-block !important;
-  }
-}
-@media print {
-  .hidden-print {
-    display: none !important;
-  }
-}
-/*# sourceMappingURL=bootstrap.css.map */
-.no-padding {
-  padding:0 !important;
-}
-.no-margin {
-  margin:0 !important;
-}
-.small-pt {
-  padding:0 !important;
-  padding-top:5px !important;
-  padding-left:30px !important;
-  position: relative;
-}
diff --git a/web/css/bootstrap.css.map b/web/css/bootstrap.css.map
deleted file mode 100644
index f289e86ee2..0000000000
--- a/web/css/bootstrap.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACG5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDDD;ACQD;EACE,UAAA;CDND;ACmBD;;;;;;;;;;;;;EAaE,eAAA;CDjBD;ACyBD;;;;EAIE,sBAAA;EACA,yBAAA;CDvBD;AC+BD;EACE,cAAA;EACA,UAAA;CD7BD;ACqCD;;EAEE,cAAA;CDnCD;AC6CD;EACE,8BAAA;CD3CD;ACmDD;;EAEE,WAAA;CDjDD;AC2DD;EACE,0BAAA;CDzDD;ACgED;;EAEE,kBAAA;CD9DD;ACqED;EACE,mBAAA;CDnED;AC2ED;EACE,eAAA;EACA,iBAAA;CDzED;ACgFD;EACE,iBAAA;EACA,YAAA;CD9ED;ACqFD;EACE,eAAA;CDnFD;AC0FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CDxFD;AC2FD;EACE,YAAA;CDzFD;AC4FD;EACE,gBAAA;CD1FD;ACoGD;EACE,UAAA;CDlGD;ACyGD;EACE,iBAAA;CDvGD;ACiHD;EACE,iBAAA;CD/GD;ACsHD;EACE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,UAAA;CDpHD;AC2HD;EACE,eAAA;CDzHD;ACgID;;;;EAIE,kCAAA;EACA,eAAA;CD9HD;ACgJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CD9ID;ACqJD;EACE,kBAAA;CDnJD;AC6JD;;EAEE,qBAAA;CD3JD;ACsKD;;;;EAIE,2BAAA;EACA,gBAAA;CDpKD;AC2KD;;EAEE,gBAAA;CDzKD;ACgLD;;EAEE,UAAA;EACA,WAAA;CD9KD;ACsLD;EACE,oBAAA;CDpLD;AC+LD;;EAEE,+BAAA;KAAA,4BAAA;UAAA,uBAAA;EACA,WAAA;CD7LD;ACsMD;;EAEE,aAAA;CDpMD;AC4MD;EACE,8BAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;CD1MD;ACmND;;EAEE,yBAAA;CDjND;ACwND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDtND;AC8ND;EACE,UAAA;EACA,WAAA;CD5ND;ACmOD;EACE,eAAA;CDjOD;ACyOD;EACE,kBAAA;CDvOD;ACiPD;EACE,0BAAA;EACA,kBAAA;CD/OD;ACkPD;;EAEE,WAAA;CDhPD;AACD,qFAAqF;AElFrF;EA7FI;;;IAGI,mCAAA;IACA,uBAAA;IACA,oCAAA;YAAA,4BAAA;IACA,6BAAA;GFkLL;EE/KC;;IAEI,2BAAA;GFiLL;EE9KC;IACI,6BAAA;GFgLL;EE7KC;IACI,8BAAA;GF+KL;EE1KC;;IAEI,YAAA;GF4KL;EEzKC;;IAEI,uBAAA;IACA,yBAAA;GF2KL;EExKC;IACI,4BAAA;GF0KL;EEvKC;;IAEI,yBAAA;GFyKL;EEtKC;IACI,2BAAA;GFwKL;EErKC;;;IAGI,WAAA;IACA,UAAA;GFuKL;EEpKC;;IAEI,wBAAA;GFsKL;EEhKC;IACI,cAAA;GFkKL;EEhKC;;IAGQ,kCAAA;GFiKT;EE9JC;IACI,uBAAA;GFgKL;EE7JC;IACI,qCAAA;GF+JL;EEhKC;;IAKQ,kCAAA;GF+JT;EE5JC;;IAGQ,kCAAA;GF6JT;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,eAAA;CH8O9C;AG7OmC;EAAW,eAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIthCD;ECgEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AIxhCD;;EC6DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIthCD;EACE,gBAAA;EACA,8CAAA;CJwhCD;AIrhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,0BAAA;CJuhCD;AInhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJqhCD;AI/gCD;EACE,eAAA;EACA,sBAAA;CJihCD;AI/gCC;;EAEE,eAAA;EACA,2BAAA;CJihCH;AI9gCC;EErDA,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNqkCD;AIxgCD;EACE,UAAA;CJ0gCD;AIpgCD;EACE,uBAAA;CJsgCD;AIlgCD;;;;;EGvEE,eAAA;EACA,gBAAA;EACA,aAAA;CPglCD;AItgCD;EACE,mBAAA;CJwgCD;AIlgCD;EACE,aAAA;EACA,wBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EC6FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EEvLR,sBAAA;EACA,gBAAA;EACA,aAAA;CPgmCD;AIlgCD;EACE,mBAAA;CJogCD;AI9/BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJggCD;AIx/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJ0/BD;AIl/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJo/BH;AIz+BD;EACE,gBAAA;CJ2+BD;AQloCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR8oCD;AQnpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,oBAAA;EACA,eAAA;EACA,eAAA;CRoqCH;AQhqCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRqqCD;AQzqCD;;;;;;;;;;;;EAQI,eAAA;CR+qCH;AQ5qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRirCD;AQrrCD;;;;;;;;;;;;EAQI,eAAA;CR2rCH;AQvrCD;;EAAU,gBAAA;CR2rCT;AQ1rCD;;EAAU,gBAAA;CR8rCT;AQ7rCD;;EAAU,gBAAA;CRisCT;AQhsCD;;EAAU,gBAAA;CRosCT;AQnsCD;;EAAU,gBAAA;CRusCT;AQtsCD;;EAAU,gBAAA;CR0sCT;AQpsCD;EACE,iBAAA;CRssCD;AQnsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRqsCD;AQhsCD;EAAA;IAFI,gBAAA;GRssCD;CACF;AQ9rCD;;EAEE,eAAA;CRgsCD;AQ7rCD;;EAEE,0BAAA;EACA,cAAA;CR+rCD;AQ3rCD;EAAuB,iBAAA;CR8rCtB;AQ7rCD;EAAuB,kBAAA;CRgsCtB;AQ/rCD;EAAuB,mBAAA;CRksCtB;AQjsCD;EAAuB,oBAAA;CRosCtB;AQnsCD;EAAuB,oBAAA;CRssCtB;AQnsCD;EAAuB,0BAAA;CRssCtB;AQrsCD;EAAuB,0BAAA;CRwsCtB;AQvsCD;EAAuB,2BAAA;CR0sCtB;AQvsCD;EACE,eAAA;CRysCD;AQvsCD;ECrGE,eAAA;CT+yCD;AS9yCC;;EAEE,eAAA;CTgzCH;AQ3sCD;ECxGE,eAAA;CTszCD;ASrzCC;;EAEE,eAAA;CTuzCH;AQ/sCD;EC3GE,eAAA;CT6zCD;AS5zCC;;EAEE,eAAA;CT8zCH;AQntCD;EC9GE,eAAA;CTo0CD;ASn0CC;;EAEE,eAAA;CTq0CH;AQvtCD;ECjHE,eAAA;CT20CD;AS10CC;;EAEE,eAAA;CT40CH;AQvtCD;EAGE,YAAA;EE3HA,0BAAA;CVm1CD;AUl1CC;;EAEE,0BAAA;CVo1CH;AQztCD;EE9HE,0BAAA;CV01CD;AUz1CC;;EAEE,0BAAA;CV21CH;AQ7tCD;EEjIE,0BAAA;CVi2CD;AUh2CC;;EAEE,0BAAA;CVk2CH;AQjuCD;EEpIE,0BAAA;CVw2CD;AUv2CC;;EAEE,0BAAA;CVy2CH;AQruCD;EEvIE,0BAAA;CV+2CD;AU92CC;;EAEE,0BAAA;CVg3CH;AQpuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRsuCD;AQ9tCD;;EAEE,cAAA;EACA,oBAAA;CRguCD;AQnuCD;;;;EAMI,iBAAA;CRmuCH;AQ5tCD;EACE,gBAAA;EACA,iBAAA;CR8tCD;AQ1tCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR6tCD;AQ/tCD;EAKI,sBAAA;EACA,kBAAA;EACA,mBAAA;CR6tCH;AQxtCD;EACE,cAAA;EACA,oBAAA;CR0tCD;AQxtCD;;EAEE,wBAAA;CR0tCD;AQxtCD;EACE,kBAAA;CR0tCD;AQxtCD;EACE,eAAA;CR0tCD;AQjsCD;EAAA;IAVM,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGtNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXs6CC;EQ3sCH;IAHM,mBAAA;GRitCH;CACF;AQxsCD;;EAGE,aAAA;EACA,kCAAA;CRysCD;AQvsCD;EACE,eAAA;EA9IqB,0BAAA;CRw1CtB;AQrsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRusCD;AQlsCG;;;EACE,iBAAA;CRssCL;AQhtCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRksCH;AQhsCG;;;EACE,uBAAA;CRosCL;AQ5rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,gCAAA;EACA,eAAA;EACA,kBAAA;CR8rCD;AQxrCG;;;;;;EAAW,YAAA;CRgsCd;AQ/rCG;;;;;;EACE,uBAAA;CRssCL;AQhsCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRksCD;AYx+CD;;;;EAIE,+DAAA;CZ0+CD;AYt+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZw+CD;AYp+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;EACA,uDAAA;UAAA,+CAAA;CZs+CD;AY5+CD;EASI,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;UAAA,iBAAA;CZs+CH;AYj+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,sBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;CZm+CD;AY9+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZk+CH;AY79CD;EACE,kBAAA;EACA,mBAAA;CZ+9CD;AazhDD;ECHE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;Cd+hDD;AazhDC;EAAA;IAFE,aAAA;Gb+hDD;CACF;Aa3hDC;EAAA;IAFE,aAAA;GbiiDD;CACF;Aa7hDD;EAAA;IAFI,cAAA;GbmiDD;CACF;Aa1hDD;ECvBE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;CdojDD;AavhDD;ECvBE,mBAAA;EACA,oBAAA;CdijDD;AejjDG;EACE,mBAAA;EAEA,gBAAA;EAEA,mBAAA;EACA,oBAAA;CfijDL;AejiDG;EACE,YAAA;CfmiDL;Ae5hDC;EACE,YAAA;Cf8hDH;Ae/hDC;EACE,oBAAA;CfiiDH;AeliDC;EACE,oBAAA;CfoiDH;AeriDC;EACE,WAAA;CfuiDH;AexiDC;EACE,oBAAA;Cf0iDH;Ae3iDC;EACE,oBAAA;Cf6iDH;Ae9iDC;EACE,WAAA;CfgjDH;AejjDC;EACE,oBAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,WAAA;CfyjDH;Ae1jDC;EACE,oBAAA;Cf4jDH;Ae7jDC;EACE,mBAAA;Cf+jDH;AejjDC;EACE,YAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,oBAAA;CfyjDH;Ae1jDC;EACE,WAAA;Cf4jDH;Ae7jDC;EACE,oBAAA;Cf+jDH;AehkDC;EACE,oBAAA;CfkkDH;AenkDC;EACE,WAAA;CfqkDH;AetkDC;EACE,oBAAA;CfwkDH;AezkDC;EACE,oBAAA;Cf2kDH;Ae5kDC;EACE,WAAA;Cf8kDH;Ae/kDC;EACE,oBAAA;CfilDH;AellDC;EACE,mBAAA;CfolDH;AehlDC;EACE,YAAA;CfklDH;AelmDC;EACE,WAAA;CfomDH;AermDC;EACE,mBAAA;CfumDH;AexmDC;EACE,mBAAA;Cf0mDH;Ae3mDC;EACE,UAAA;Cf6mDH;Ae9mDC;EACE,mBAAA;CfgnDH;AejnDC;EACE,mBAAA;CfmnDH;AepnDC;EACE,UAAA;CfsnDH;AevnDC;EACE,mBAAA;CfynDH;Ae1nDC;EACE,mBAAA;Cf4nDH;Ae7nDC;EACE,UAAA;Cf+nDH;AehoDC;EACE,mBAAA;CfkoDH;AenoDC;EACE,kBAAA;CfqoDH;AejoDC;EACE,WAAA;CfmoDH;AernDC;EACE,kBAAA;CfunDH;AexnDC;EACE,0BAAA;Cf0nDH;Ae3nDC;EACE,0BAAA;Cf6nDH;Ae9nDC;EACE,iBAAA;CfgoDH;AejoDC;EACE,0BAAA;CfmoDH;AepoDC;EACE,0BAAA;CfsoDH;AevoDC;EACE,iBAAA;CfyoDH;Ae1oDC;EACE,0BAAA;Cf4oDH;Ae7oDC;EACE,0BAAA;Cf+oDH;AehpDC;EACE,iBAAA;CfkpDH;AenpDC;EACE,0BAAA;CfqpDH;AetpDC;EACE,yBAAA;CfwpDH;AezpDC;EACE,gBAAA;Cf2pDH;Aa3pDD;EElCI;IACE,YAAA;GfgsDH;EezrDD;IACE,YAAA;Gf2rDD;Ee5rDD;IACE,oBAAA;Gf8rDD;Ee/rDD;IACE,oBAAA;GfisDD;EelsDD;IACE,WAAA;GfosDD;EersDD;IACE,oBAAA;GfusDD;EexsDD;IACE,oBAAA;Gf0sDD;Ee3sDD;IACE,WAAA;Gf6sDD;Ee9sDD;IACE,oBAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,WAAA;GfstDD;EevtDD;IACE,oBAAA;GfytDD;Ee1tDD;IACE,mBAAA;Gf4tDD;Ee9sDD;IACE,YAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,oBAAA;GfstDD;EevtDD;IACE,WAAA;GfytDD;Ee1tDD;IACE,oBAAA;Gf4tDD;Ee7tDD;IACE,oBAAA;Gf+tDD;EehuDD;IACE,WAAA;GfkuDD;EenuDD;IACE,oBAAA;GfquDD;EetuDD;IACE,oBAAA;GfwuDD;EezuDD;IACE,WAAA;Gf2uDD;Ee5uDD;IACE,oBAAA;Gf8uDD;Ee/uDD;IACE,mBAAA;GfivDD;Ee7uDD;IACE,YAAA;Gf+uDD;Ee/vDD;IACE,WAAA;GfiwDD;EelwDD;IACE,mBAAA;GfowDD;EerwDD;IACE,mBAAA;GfuwDD;EexwDD;IACE,UAAA;Gf0wDD;Ee3wDD;IACE,mBAAA;Gf6wDD;Ee9wDD;IACE,mBAAA;GfgxDD;EejxDD;IACE,UAAA;GfmxDD;EepxDD;IACE,mBAAA;GfsxDD;EevxDD;IACE,mBAAA;GfyxDD;Ee1xDD;IACE,UAAA;Gf4xDD;Ee7xDD;IACE,mBAAA;Gf+xDD;EehyDD;IACE,kBAAA;GfkyDD;Ee9xDD;IACE,WAAA;GfgyDD;EelxDD;IACE,kBAAA;GfoxDD;EerxDD;IACE,0BAAA;GfuxDD;EexxDD;IACE,0BAAA;Gf0xDD;Ee3xDD;IACE,iBAAA;Gf6xDD;Ee9xDD;IACE,0BAAA;GfgyDD;EejyDD;IACE,0BAAA;GfmyDD;EepyDD;IACE,iBAAA;GfsyDD;EevyDD;IACE,0BAAA;GfyyDD;Ee1yDD;IACE,0BAAA;Gf4yDD;Ee7yDD;IACE,iBAAA;Gf+yDD;EehzDD;IACE,0BAAA;GfkzDD;EenzDD;IACE,yBAAA;GfqzDD;EetzDD;IACE,gBAAA;GfwzDD;CACF;AahzDD;EE3CI;IACE,YAAA;Gf81DH;Eev1DD;IACE,YAAA;Gfy1DD;Ee11DD;IACE,oBAAA;Gf41DD;Ee71DD;IACE,oBAAA;Gf+1DD;Eeh2DD;IACE,WAAA;Gfk2DD;Een2DD;IACE,oBAAA;Gfq2DD;Eet2DD;IACE,oBAAA;Gfw2DD;Eez2DD;IACE,WAAA;Gf22DD;Ee52DD;IACE,oBAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,WAAA;Gfo3DD;Eer3DD;IACE,oBAAA;Gfu3DD;Eex3DD;IACE,mBAAA;Gf03DD;Ee52DD;IACE,YAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,oBAAA;Gfo3DD;Eer3DD;IACE,WAAA;Gfu3DD;Eex3DD;IACE,oBAAA;Gf03DD;Ee33DD;IACE,oBAAA;Gf63DD;Ee93DD;IACE,WAAA;Gfg4DD;Eej4DD;IACE,oBAAA;Gfm4DD;Eep4DD;IACE,oBAAA;Gfs4DD;Eev4DD;IACE,WAAA;Gfy4DD;Ee14DD;IACE,oBAAA;Gf44DD;Ee74DD;IACE,mBAAA;Gf+4DD;Ee34DD;IACE,YAAA;Gf64DD;Ee75DD;IACE,WAAA;Gf+5DD;Eeh6DD;IACE,mBAAA;Gfk6DD;Een6DD;IACE,mBAAA;Gfq6DD;Eet6DD;IACE,UAAA;Gfw6DD;Eez6DD;IACE,mBAAA;Gf26DD;Ee56DD;IACE,mBAAA;Gf86DD;Ee/6DD;IACE,UAAA;Gfi7DD;Eel7DD;IACE,mBAAA;Gfo7DD;Eer7DD;IACE,mBAAA;Gfu7DD;Eex7DD;IACE,UAAA;Gf07DD;Ee37DD;IACE,mBAAA;Gf67DD;Ee97DD;IACE,kBAAA;Gfg8DD;Ee57DD;IACE,WAAA;Gf87DD;Eeh7DD;IACE,kBAAA;Gfk7DD;Een7DD;IACE,0BAAA;Gfq7DD;Eet7DD;IACE,0BAAA;Gfw7DD;Eez7DD;IACE,iBAAA;Gf27DD;Ee57DD;IACE,0BAAA;Gf87DD;Ee/7DD;IACE,0BAAA;Gfi8DD;Eel8DD;IACE,iBAAA;Gfo8DD;Eer8DD;IACE,0BAAA;Gfu8DD;Eex8DD;IACE,0BAAA;Gf08DD;Ee38DD;IACE,iBAAA;Gf68DD;Ee98DD;IACE,0BAAA;Gfg9DD;Eej9DD;IACE,yBAAA;Gfm9DD;Eep9DD;IACE,gBAAA;Gfs9DD;CACF;Aa38DD;EE9CI;IACE,YAAA;Gf4/DH;Eer/DD;IACE,YAAA;Gfu/DD;Eex/DD;IACE,oBAAA;Gf0/DD;Ee3/DD;IACE,oBAAA;Gf6/DD;Ee9/DD;IACE,WAAA;GfggED;EejgED;IACE,oBAAA;GfmgED;EepgED;IACE,oBAAA;GfsgED;EevgED;IACE,WAAA;GfygED;Ee1gED;IACE,oBAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,WAAA;GfkhED;EenhED;IACE,oBAAA;GfqhED;EethED;IACE,mBAAA;GfwhED;Ee1gED;IACE,YAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,oBAAA;GfkhED;EenhED;IACE,WAAA;GfqhED;EethED;IACE,oBAAA;GfwhED;EezhED;IACE,oBAAA;Gf2hED;Ee5hED;IACE,WAAA;Gf8hED;Ee/hED;IACE,oBAAA;GfiiED;EeliED;IACE,oBAAA;GfoiED;EeriED;IACE,WAAA;GfuiED;EexiED;IACE,oBAAA;Gf0iED;Ee3iED;IACE,mBAAA;Gf6iED;EeziED;IACE,YAAA;Gf2iED;Ee3jED;IACE,WAAA;Gf6jED;Ee9jED;IACE,mBAAA;GfgkED;EejkED;IACE,mBAAA;GfmkED;EepkED;IACE,UAAA;GfskED;EevkED;IACE,mBAAA;GfykED;Ee1kED;IACE,mBAAA;Gf4kED;Ee7kED;IACE,UAAA;Gf+kED;EehlED;IACE,mBAAA;GfklED;EenlED;IACE,mBAAA;GfqlED;EetlED;IACE,UAAA;GfwlED;EezlED;IACE,mBAAA;Gf2lED;Ee5lED;IACE,kBAAA;Gf8lED;Ee1lED;IACE,WAAA;Gf4lED;Ee9kED;IACE,kBAAA;GfglED;EejlED;IACE,0BAAA;GfmlED;EeplED;IACE,0BAAA;GfslED;EevlED;IACE,iBAAA;GfylED;Ee1lED;IACE,0BAAA;Gf4lED;Ee7lED;IACE,0BAAA;Gf+lED;EehmED;IACE,iBAAA;GfkmED;EenmED;IACE,0BAAA;GfqmED;EetmED;IACE,0BAAA;GfwmED;EezmED;IACE,iBAAA;Gf2mED;Ee5mED;IACE,0BAAA;Gf8mED;Ee/mED;IACE,yBAAA;GfinED;EelnED;IACE,gBAAA;GfonED;CACF;AgBxrED;EACE,8BAAA;ChB0rED;AgBxrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChB0rED;AgBxrED;EACE,iBAAA;ChB0rED;AgBprED;EACE,YAAA;EACA,gBAAA;EACA,oBAAA;ChBsrED;AgBzrED;;;;;;EAWQ,aAAA;EACA,wBAAA;EACA,oBAAA;EACA,8BAAA;ChBsrEP;AgBpsED;EAoBI,uBAAA;EACA,iCAAA;ChBmrEH;AgBxsED;;;;;;EA8BQ,cAAA;ChBkrEP;AgBhtED;EAoCI,8BAAA;ChB+qEH;AgBntED;EAyCI,0BAAA;ChB6qEH;AgBtqED;;;;;;EAOQ,aAAA;ChBuqEP;AgB5pED;EACE,0BAAA;ChB8pED;AgB/pED;;;;;;EAQQ,0BAAA;ChB+pEP;AgBvqED;;EAeM,yBAAA;ChB4pEL;AgBlpED;EAEI,0BAAA;ChBmpEH;AgB1oED;EAEI,0BAAA;ChB2oEH;AgBloED;EACE,iBAAA;EACA,YAAA;EACA,sBAAA;ChBooED;AgB/nEG;;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;ChBkoEL;AiB9wEC;;;;;;;;;;;;EAOI,0BAAA;CjBqxEL;AiB/wEC;;;;;EAMI,0BAAA;CjBgxEL;AiBnyEC;;;;;;;;;;;;EAOI,0BAAA;CjB0yEL;AiBpyEC;;;;;EAMI,0BAAA;CjBqyEL;AiBxzEC;;;;;;;;;;;;EAOI,0BAAA;CjB+zEL;AiBzzEC;;;;;EAMI,0BAAA;CjB0zEL;AiB70EC;;;;;;;;;;;;EAOI,0BAAA;CjBo1EL;AiB90EC;;;;;EAMI,0BAAA;CjB+0EL;AiBl2EC;;;;;;;;;;;;EAOI,0BAAA;CjBy2EL;AiBn2EC;;;;;EAMI,0BAAA;CjBo2EL;AgBltED;EACE,iBAAA;EACA,kBAAA;ChBotED;AgBvpED;EAAA;IA1DI,YAAA;IACA,oBAAA;IACA,mBAAA;IACA,6CAAA;IACA,0BAAA;GhBqtED;EgB/pEH;IAlDM,iBAAA;GhBotEH;EgBlqEH;;;;;;IAzCY,oBAAA;GhBmtET;EgB1qEH;IAjCM,UAAA;GhB8sEH;EgB7qEH;;;;;;IAxBY,eAAA;GhB6sET;EgBrrEH;;;;;;IApBY,gBAAA;GhBitET;EgB7rEH;;;;IAPY,iBAAA;GhB0sET;CACF;AkBp6ED;EACE,WAAA;EACA,UAAA;EACA,UAAA;EAIA,aAAA;ClBm6ED;AkBh6ED;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,eAAA;EACA,UAAA;EACA,iCAAA;ClBk6ED;AkB/5ED;EACE,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;ClBi6ED;AkBt5ED;Eb4BE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL63ET;AkBt5ED;;EAEE,gBAAA;EACA,mBAAA;EACA,oBAAA;ClBw5ED;AkBr5ED;EACE,eAAA;ClBu5ED;AkBn5ED;EACE,eAAA;EACA,YAAA;ClBq5ED;AkBj5ED;;EAEE,aAAA;ClBm5ED;AkB/4ED;;;EZvEE,qBAAA;EAEA,2CAAA;EACA,qBAAA;CN09ED;AkB/4ED;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;ClBi5ED;AkBv3ED;EACE,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,0BAAA;EACA,uBAAA;EACA,0BAAA;EACA,mBAAA;EbxDA,yDAAA;EACQ,iDAAA;EAyHR,uFAAA;EACK,0EAAA;EACG,uEAAA;CL0zET;AmBl8EC;EACE,sBAAA;EACA,WAAA;EdUF,uFAAA;EACQ,+EAAA;CL27ET;AK15EC;EACE,eAAA;EACA,WAAA;CL45EH;AK15EC;EAA0B,eAAA;CL65E3B;AK55EC;EAAgC,eAAA;CL+5EjC;AkBn4EC;EACE,UAAA;EACA,8BAAA;ClBq4EH;AkB73EC;;;EAGE,0BAAA;EACA,WAAA;ClB+3EH;AkB53EC;;EAEE,oBAAA;ClB83EH;AkB13EC;EACE,aAAA;ClB43EH;AkBh3ED;EACE,yBAAA;ClBk3ED;AkB10ED;EAtBI;;;;IACE,kBAAA;GlBs2EH;EkBn2EC;;;;;;;;IAEE,kBAAA;GlB22EH;EkBx2EC;;;;;;;;IAEE,kBAAA;GlBg3EH;CACF;AkBt2ED;EACE,oBAAA;ClBw2ED;AkBh2ED;;EAEE,mBAAA;EACA,eAAA;EACA,iBAAA;EACA,oBAAA;ClBk2ED;AkBv2ED;;EAQI,iBAAA;EACA,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,gBAAA;ClBm2EH;AkBh2ED;;;;EAIE,mBAAA;EACA,mBAAA;EACA,mBAAA;ClBk2ED;AkB/1ED;;EAEE,iBAAA;ClBi2ED;AkB71ED;;EAEE,mBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;ClB+1ED;AkB71ED;;EAEE,cAAA;EACA,kBAAA;ClB+1ED;AkBt1EC;;;;;;EAGE,oBAAA;ClB21EH;AkBr1EC;;;;EAEE,oBAAA;ClBy1EH;AkBn1EC;;;;EAGI,oBAAA;ClBs1EL;AkB30ED;EAEE,iBAAA;EACA,oBAAA;EAEA,iBAAA;EACA,iBAAA;ClB20ED;AkBz0EC;;EAEE,gBAAA;EACA,iBAAA;ClB20EH;AkB9zED;ECnQE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBokFD;AmBlkFC;EACE,aAAA;EACA,kBAAA;CnBokFH;AmBjkFC;;EAEE,aAAA;CnBmkFH;AkB10ED;EAEI,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;ClB20EH;AkBj1ED;EASI,aAAA;EACA,kBAAA;ClB20EH;AkBr1ED;;EAcI,aAAA;ClB20EH;AkBz1ED;EAiBI,aAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;ClB20EH;AkBv0ED;EC/RE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBymFD;AmBvmFC;EACE,aAAA;EACA,kBAAA;CnBymFH;AmBtmFC;;EAEE,aAAA;CnBwmFH;AkBn1ED;EAEI,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;ClBo1EH;AkB11ED;EASI,aAAA;EACA,kBAAA;ClBo1EH;AkB91ED;;EAcI,aAAA;ClBo1EH;AkBl2ED;EAiBI,aAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ClBo1EH;AkB30ED;EAEE,mBAAA;ClB40ED;AkB90ED;EAMI,sBAAA;ClB20EH;AkBv0ED;EACE,mBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ClBy0ED;AkBv0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBy0ED;AkBv0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBy0ED;AkBr0ED;;;;;;;;;;EC1ZI,eAAA;CnB2uFH;AkBj1ED;ECtZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL4rFT;AmB1uFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CLisFT;AkB31ED;EC5YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnB0uFH;AkBh2ED;ECtYI,eAAA;CnByuFH;AkBh2ED;;;;;;;;;;EC7ZI,eAAA;CnBywFH;AkB52ED;ECzZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL0tFT;AmBxwFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL+tFT;AkBt3ED;EC/YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBwwFH;AkB33ED;ECzYI,eAAA;CnBuwFH;AkB33ED;;;;;;;;;;EChaI,eAAA;CnBuyFH;AkBv4ED;EC5ZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLwvFT;AmBtyFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL6vFT;AkBj5ED;EClZI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBsyFH;AkBt5ED;EC5YI,eAAA;CnBqyFH;AkBl5EC;EACE,UAAA;ClBo5EH;AkBl5EC;EACE,OAAA;ClBo5EH;AkB14ED;EACE,eAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;ClB44ED;AkBzzED;EAAA;IA9DM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB23EH;EkB/zEH;IAvDM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBy3EH;EkBp0EH;IAhDM,sBAAA;GlBu3EH;EkBv0EH;IA5CM,sBAAA;IACA,uBAAA;GlBs3EH;EkB30EH;;;IAtCQ,YAAA;GlBs3EL;EkBh1EH;IAhCM,YAAA;GlBm3EH;EkBn1EH;IA5BM,iBAAA;IACA,uBAAA;GlBk3EH;EkBv1EH;;IApBM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB+2EH;EkB91EH;;IAdQ,gBAAA;GlBg3EL;EkBl2EH;;IATM,mBAAA;IACA,eAAA;GlB+2EH;EkBv2EH;IAHM,OAAA;GlB62EH;CACF;AkBn2ED;;;;EASI,cAAA;EACA,iBAAA;EACA,iBAAA;ClBg2EH;AkB32ED;;EAiBI,iBAAA;ClB81EH;AkB/2ED;EJthBE,mBAAA;EACA,oBAAA;Cdw4FD;AkB50EC;EAAA;IAVI,kBAAA;IACA,iBAAA;IACA,iBAAA;GlB01EH;CACF;AkB13ED;EAwCI,YAAA;ClBq1EH;AkBv0EC;EAAA;IAJM,yBAAA;IACA,gBAAA;GlB+0EL;CACF;AkBr0EC;EAAA;IAJM,iBAAA;IACA,gBAAA;GlB60EL;CACF;AoBt6FD;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,+BAAA;MAAA,2BAAA;EACA,gBAAA;EACA,uBAAA;EACA,8BAAA;EACA,oBAAA;EC6CA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mBAAA;EhB4JA,0BAAA;EACG,uBAAA;EACC,sBAAA;EACI,kBAAA;CLiuFT;AoBz6FG;;;;;;EdrBF,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNq8FD;AoB76FC;;;EAGE,eAAA;EACA,sBAAA;CpB+6FH;AoB56FC;;EAEE,WAAA;EACA,uBAAA;Ef2BF,yDAAA;EACQ,iDAAA;CLo5FT;AoB56FC;;;EAGE,oBAAA;EE7CF,cAAA;EAGA,0BAAA;EjB8DA,yBAAA;EACQ,iBAAA;CL65FT;AoB56FG;;EAEE,qBAAA;CpB86FL;AoBr6FD;EC3DE,eAAA;EACA,0BAAA;EACA,sBAAA;CrBm+FD;AqBj+FC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBy+FT;AqBt+FC;;;EAGE,uBAAA;CrBw+FH;AqBn+FG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrBi/FT;AoBn+FD;ECTI,eAAA;EACA,0BAAA;CrB++FH;AoBp+FD;EC9DE,eAAA;EACA,0BAAA;EACA,sBAAA;CrBqiGD;AqBniGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBqiGP;AqBniGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBqiGP;AqBniGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBqiGP;AqBniGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB2iGT;AqBxiGC;;;EAGE,uBAAA;CrB0iGH;AqBriGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrBmjGT;AoBliGD;ECZI,eAAA;EACA,0BAAA;CrBijGH;AoBliGD;EClEE,eAAA;EACA,0BAAA;EACA,sBAAA;CrBumGD;AqBrmGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBumGP;AqBrmGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBumGP;AqBrmGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBumGP;AqBrmGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB6mGT;AqB1mGC;;;EAGE,uBAAA;CrB4mGH;AqBvmGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrBqnGT;AoBhmGD;EChBI,eAAA;EACA,0BAAA;CrBmnGH;AoBhmGD;ECtEE,eAAA;EACA,0BAAA;EACA,sBAAA;CrByqGD;AqBvqGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrByqGP;AqBvqGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrByqGP;AqBvqGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrByqGP;AqBvqGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB+qGT;AqB5qGC;;;EAGE,uBAAA;CrB8qGH;AqBzqGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrBurGT;AoB9pGD;ECpBI,eAAA;EACA,0BAAA;CrBqrGH;AoB9pGD;EC1EE,eAAA;EACA,0BAAA;EACA,sBAAA;CrB2uGD;AqBzuGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB2uGP;AqBzuGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB2uGP;AqBzuGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB2uGP;AqBzuGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBivGT;AqB9uGC;;;EAGE,uBAAA;CrBgvGH;AqB3uGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrByvGT;AoB5tGD;ECxBI,eAAA;EACA,0BAAA;CrBuvGH;AoB5tGD;EC9EE,eAAA;EACA,0BAAA;EACA,sBAAA;CrB6yGD;AqB3yGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB6yGP;AqB3yGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB6yGP;AqB3yGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB6yGP;AqB3yGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBmzGT;AqBhzGC;;;EAGE,uBAAA;CrBkzGH;AqB7yGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrB2zGT;AoB1xGD;EC5BI,eAAA;EACA,0BAAA;CrByzGH;AoBrxGD;EACE,eAAA;EACA,oBAAA;EACA,iBAAA;CpBuxGD;AoBrxGC;;;;;EAKE,8BAAA;EfnCF,yBAAA;EACQ,iBAAA;CL2zGT;AoBtxGC;;;;EAIE,0BAAA;CpBwxGH;AoBtxGC;;EAEE,eAAA;EACA,2BAAA;EACA,8BAAA;CpBwxGH;AoBpxGG;;;;EAEE,eAAA;EACA,sBAAA;CpBwxGL;AoB/wGD;;ECrEE,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CrBw1GD;AoBlxGD;;ECzEE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrB+1GD;AoBrxGD;;EC7EE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrBs2GD;AoBpxGD;EACE,eAAA;EACA,YAAA;CpBsxGD;AoBlxGD;EACE,gBAAA;CpBoxGD;AoB7wGC;;;EACE,YAAA;CpBixGH;AuB36GD;EACE,WAAA;ElBoLA,yCAAA;EACK,oCAAA;EACG,iCAAA;CL0vGT;AuB96GC;EACE,WAAA;CvBg7GH;AuB56GD;EACE,cAAA;CvB86GD;AuB56GC;EAAY,eAAA;CvB+6Gb;AuB96GC;EAAY,mBAAA;CvBi7Gb;AuBh7GC;EAAY,yBAAA;CvBm7Gb;AuBh7GD;EACE,mBAAA;EACA,UAAA;EACA,iBAAA;ElBuKA,gDAAA;EACQ,2CAAA;KAAA,wCAAA;EAOR,mCAAA;EACQ,8BAAA;KAAA,2BAAA;EAGR,yCAAA;EACQ,oCAAA;KAAA,iCAAA;CLowGT;AwB98GD;EACE,sBAAA;EACA,SAAA;EACA,UAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,yBAAA;EACA,oCAAA;EACA,mCAAA;CxBg9GD;AwB58GD;;EAEE,mBAAA;CxB88GD;AwB18GD;EACE,WAAA;CxB48GD;AwBx8GD;EACE,mBAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,0BAAA;EACA,0BAAA;EACA,sCAAA;EACA,mBAAA;EnBsBA,oDAAA;EACQ,4CAAA;EmBrBR,qCAAA;UAAA,6BAAA;CxB28GD;AwBt8GC;EACE,SAAA;EACA,WAAA;CxBw8GH;AwBj+GD;ECzBE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzB6/GD;AwBv+GD;EAmCI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,oBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBu8GH;AwBj8GC;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CxBm8GH;AwB77GC;;;EAGE,eAAA;EACA,sBAAA;EACA,WAAA;EACA,0BAAA;CxB+7GH;AwBt7GC;;;EAGE,eAAA;CxBw7GH;AwBp7GC;;EAEE,sBAAA;EACA,8BAAA;EACA,uBAAA;EE3GF,oEAAA;EF6GE,oBAAA;CxBs7GH;AwBj7GD;EAGI,eAAA;CxBi7GH;AwBp7GD;EAQI,WAAA;CxB+6GH;AwBv6GD;EACE,WAAA;EACA,SAAA;CxBy6GD;AwBj6GD;EACE,QAAA;EACA,YAAA;CxBm6GD;AwB/5GD;EACE,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBi6GD;AwB75GD;EACE,gBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;CxB+5GD;AwB35GD;EACE,SAAA;EACA,WAAA;CxB65GD;AwBr5GD;;EAII,cAAA;EACA,0BAAA;EACA,4BAAA;EACA,YAAA;CxBq5GH;AwB55GD;;EAWI,UAAA;EACA,aAAA;EACA,mBAAA;CxBq5GH;AwBh4GD;EAXE;IApEA,WAAA;IACA,SAAA;GxBm9GC;EwBh5GD;IA1DA,QAAA;IACA,YAAA;GxB68GC;CACF;A2B7lHD;;EAEE,mBAAA;EACA,sBAAA;EACA,uBAAA;C3B+lHD;A2BnmHD;;EAMI,mBAAA;EACA,YAAA;C3BimHH;A2B/lHG;;;;;;;;EAIE,WAAA;C3BqmHL;A2B/lHD;;;;EAKI,kBAAA;C3BgmHH;A2B3lHD;EACE,kBAAA;C3B6lHD;A2B9lHD;;;EAOI,YAAA;C3B4lHH;A2BnmHD;;;EAYI,iBAAA;C3B4lHH;A2BxlHD;EACE,iBAAA;C3B0lHD;A2BtlHD;EACE,eAAA;C3BwlHD;A2BvlHC;EClDA,8BAAA;EACG,2BAAA;C5B4oHJ;A2BtlHD;;EC/CE,6BAAA;EACG,0BAAA;C5ByoHJ;A2BrlHD;EACE,YAAA;C3BulHD;A2BrlHD;EACE,iBAAA;C3BulHD;A2BrlHD;;ECnEE,8BAAA;EACG,2BAAA;C5B4pHJ;A2BplHD;ECjEE,6BAAA;EACG,0BAAA;C5BwpHJ;A2BnlHD;;EAEE,WAAA;C3BqlHD;A2BpkHD;EACE,kBAAA;EACA,mBAAA;C3BskHD;A2BpkHD;EACE,mBAAA;EACA,oBAAA;C3BskHD;A2BjkHD;EtB/CE,yDAAA;EACQ,iDAAA;CLmnHT;A2BjkHC;EtBnDA,yBAAA;EACQ,iBAAA;CLunHT;A2B9jHD;EACE,eAAA;C3BgkHD;A2B7jHD;EACE,wBAAA;EACA,uBAAA;C3B+jHD;A2B5jHD;EACE,wBAAA;C3B8jHD;A2BvjHD;;;EAII,eAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;C3BwjHH;A2B/jHD;EAcM,YAAA;C3BojHL;A2BlkHD;;;;EAsBI,iBAAA;EACA,eAAA;C3BkjHH;A2B7iHC;EACE,iBAAA;C3B+iHH;A2B7iHC;EACE,6BAAA;ECpKF,8BAAA;EACC,6BAAA;C5BotHF;A2B9iHC;EACE,+BAAA;EChLF,2BAAA;EACC,0BAAA;C5BiuHF;A2B9iHD;EACE,iBAAA;C3BgjHD;A2B9iHD;;EC/KE,8BAAA;EACC,6BAAA;C5BiuHF;A2B7iHD;EC7LE,2BAAA;EACC,0BAAA;C5B6uHF;A2BziHD;EACE,eAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;C3B2iHD;A2B/iHD;;EAOI,YAAA;EACA,oBAAA;EACA,UAAA;C3B4iHH;A2BrjHD;EAYI,YAAA;C3B4iHH;A2BxjHD;EAgBI,WAAA;C3B2iHH;A2B1hHD;;;;EAKM,mBAAA;EACA,uBAAA;EACA,qBAAA;C3B2hHL;A6BrwHD;EACE,mBAAA;EACA,eAAA;EACA,0BAAA;C7BuwHD;A6BpwHC;EACE,YAAA;EACA,gBAAA;EACA,iBAAA;C7BswHH;A6B/wHD;EAeI,mBAAA;EACA,WAAA;EAKA,YAAA;EAEA,YAAA;EACA,iBAAA;C7B8vHH;A6BrvHD;;;EV8BE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnB4tHD;AmB1tHC;;;EACE,aAAA;EACA,kBAAA;CnB8tHH;AmB3tHC;;;;;;EAEE,aAAA;CnBiuHH;A6BvwHD;;;EVyBE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBmvHD;AmBjvHC;;;EACE,aAAA;EACA,kBAAA;CnBqvHH;AmBlvHC;;;;;;EAEE,aAAA;CnBwvHH;A6BrxHD;;;EAGE,oBAAA;C7BuxHD;A6BrxHC;;;EACE,iBAAA;C7ByxHH;A6BrxHD;;EAEE,UAAA;EACA,oBAAA;EACA,uBAAA;C7BuxHD;A6BlxHD;EACE,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;C7BoxHD;A6BjxHC;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;C7BmxHH;A6BjxHC;EACE,mBAAA;EACA,gBAAA;EACA,mBAAA;C7BmxHH;A6BvyHD;;EA0BI,cAAA;C7BixHH;A6B5wHD;;;;;;;EDhGE,8BAAA;EACG,2BAAA;C5Bq3HJ;A6B7wHD;EACE,gBAAA;C7B+wHD;A6B7wHD;;;;;;;EDpGE,6BAAA;EACG,0BAAA;C5B03HJ;A6B9wHD;EACE,eAAA;C7BgxHD;A6B3wHD;EACE,mBAAA;EAGA,aAAA;EACA,oBAAA;C7B2wHD;A6BhxHD;EAUI,mBAAA;C7BywHH;A6BnxHD;EAYM,kBAAA;C7B0wHL;A6BvwHG;;;EAGE,WAAA;C7BywHL;A6BpwHC;;EAGI,mBAAA;C7BqwHL;A6BlwHC;;EAGI,WAAA;EACA,kBAAA;C7BmwHL;A8B95HD;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;C9Bg6HD;A8Bn6HD;EAOI,mBAAA;EACA,eAAA;C9B+5HH;A8Bv6HD;EAWM,mBAAA;EACA,eAAA;EACA,mBAAA;C9B+5HL;A8B95HK;;EAEE,sBAAA;EACA,0BAAA;C9Bg6HP;A8B35HG;EACE,eAAA;C9B65HL;A8B35HK;;EAEE,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,oBAAA;C9B65HP;A8Bt5HG;;;EAGE,0BAAA;EACA,sBAAA;C9Bw5HL;A8Bj8HD;ELHE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBu8HD;A8Bv8HD;EA0DI,gBAAA;C9Bg5HH;A8Bv4HD;EACE,iCAAA;C9By4HD;A8B14HD;EAGI,YAAA;EAEA,oBAAA;C9By4HH;A8B94HD;EASM,kBAAA;EACA,wBAAA;EACA,8BAAA;EACA,2BAAA;C9Bw4HL;A8Bv4HK;EACE,sCAAA;C9By4HP;A8Bn4HK;;;EAGE,eAAA;EACA,0BAAA;EACA,0BAAA;EACA,iCAAA;EACA,gBAAA;C9Bq4HP;A8Bh4HC;EAqDA,YAAA;EA8BA,iBAAA;C9BizHD;A8Bp4HC;EAwDE,YAAA;C9B+0HH;A8Bv4HC;EA0DI,mBAAA;EACA,mBAAA;C9Bg1HL;A8B34HC;EAgEE,UAAA;EACA,WAAA;C9B80HH;A8Bl0HD;EAAA;IAPM,oBAAA;IACA,UAAA;G9B60HH;E8Bv0HH;IAJQ,iBAAA;G9B80HL;CACF;A8Bx5HC;EAuFE,gBAAA;EACA,mBAAA;C9Bo0HH;A8B55HC;;;EA8FE,0BAAA;C9Bm0HH;A8BrzHD;EAAA;IATM,iCAAA;IACA,2BAAA;G9Bk0HH;E8B1zHH;;;IAHM,6BAAA;G9Bk0HH;CACF;A8Bn6HD;EAEI,YAAA;C9Bo6HH;A8Bt6HD;EAMM,mBAAA;C9Bm6HL;A8Bz6HD;EASM,iBAAA;C9Bm6HL;A8B95HK;;;EAGE,eAAA;EACA,0BAAA;C9Bg6HP;A8Bx5HD;EAEI,YAAA;C9By5HH;A8B35HD;EAIM,gBAAA;EACA,eAAA;C9B05HL;A8B94HD;EACE,YAAA;C9Bg5HD;A8Bj5HD;EAII,YAAA;C9Bg5HH;A8Bp5HD;EAMM,mBAAA;EACA,mBAAA;C9Bi5HL;A8Bx5HD;EAYI,UAAA;EACA,WAAA;C9B+4HH;A8Bn4HD;EAAA;IAPM,oBAAA;IACA,UAAA;G9B84HH;E8Bx4HH;IAJQ,iBAAA;G9B+4HL;CACF;A8Bv4HD;EACE,iBAAA;C9By4HD;A8B14HD;EAKI,gBAAA;EACA,mBAAA;C9Bw4HH;A8B94HD;;;EAYI,0BAAA;C9Bu4HH;A8Bz3HD;EAAA;IATM,iCAAA;IACA,2BAAA;G9Bs4HH;E8B93HH;;;IAHM,6BAAA;G9Bs4HH;CACF;A8B73HD;EAEI,cAAA;C9B83HH;A8Bh4HD;EAKI,eAAA;C9B83HH;A8Br3HD;EAEE,iBAAA;EF3OA,2BAAA;EACC,0BAAA;C5BkmIF;A+B5lID;EACE,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,8BAAA;C/B8lID;A+BtlID;EAAA;IAFI,mBAAA;G/B4lID;CACF;A+B7kID;EAAA;IAFI,YAAA;G/BmlID;CACF;A+BrkID;EACE,oBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,2DAAA;UAAA,mDAAA;EAEA,kCAAA;C/BskID;A+BpkIC;EACE,iBAAA;C/BskIH;A+B1iID;EAAA;IAxBI,YAAA;IACA,cAAA;IACA,yBAAA;YAAA,iBAAA;G/BskID;E+BpkIC;IACE,0BAAA;IACA,wBAAA;IACA,kBAAA;IACA,6BAAA;G/BskIH;E+BnkIC;IACE,oBAAA;G/BqkIH;E+BhkIC;;;IAGE,gBAAA;IACA,iBAAA;G/BkkIH;CACF;A+B9jID;;EAGI,kBAAA;C/B+jIH;A+B1jIC;EAAA;;IAFI,kBAAA;G/BikIH;CACF;A+BxjID;;;;EAII,oBAAA;EACA,mBAAA;C/B0jIH;A+BpjIC;EAAA;;;;IAHI,gBAAA;IACA,eAAA;G/B8jIH;CACF;A+BljID;EACE,cAAA;EACA,sBAAA;C/BojID;A+B/iID;EAAA;IAFI,iBAAA;G/BqjID;CACF;A+BjjID;;EAEE,gBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;C/BmjID;A+B7iID;EAAA;;IAFI,iBAAA;G/BojID;CACF;A+BljID;EACE,OAAA;EACA,sBAAA;C/BojID;A+BljID;EACE,UAAA;EACA,iBAAA;EACA,sBAAA;C/BojID;A+B9iID;EACE,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;EACA,aAAA;C/BgjID;A+B9iIC;;EAEE,sBAAA;C/BgjIH;A+BzjID;EAaI,eAAA;C/B+iIH;A+BtiID;EALI;;IAEE,mBAAA;G/B8iIH;CACF;A+BpiID;EACE,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;EC9LA,gBAAA;EACA,mBAAA;ED+LA,8BAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;C/BuiID;A+BniIC;EACE,WAAA;C/BqiIH;A+BnjID;EAmBI,eAAA;EACA,YAAA;EACA,YAAA;EACA,mBAAA;C/BmiIH;A+BzjID;EAyBI,gBAAA;C/BmiIH;A+B7hID;EAAA;IAFI,cAAA;G/BmiID;CACF;A+B1hID;EACE,oBAAA;C/B4hID;A+B7hID;EAII,kBAAA;EACA,qBAAA;EACA,kBAAA;C/B4hIH;A+BhgIC;EAAA;IAtBI,iBAAA;IACA,YAAA;IACA,YAAA;IACA,cAAA;IACA,8BAAA;IACA,UAAA;IACA,yBAAA;YAAA,iBAAA;G/B0hIH;E+B1gID;;IAbM,2BAAA;G/B2hIL;E+B9gID;IAVM,kBAAA;G/B2hIL;E+B1hIK;;IAEE,uBAAA;G/B4hIP;CACF;A+B1gID;EAAA;IAXI,YAAA;IACA,UAAA;G/ByhID;E+B/gIH;IAPM,YAAA;G/ByhIH;E+BlhIH;IALQ,kBAAA;IACA,qBAAA;G/B0hIL;CACF;A+B/gID;EACE,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,qCAAA;E1B9NA,6FAAA;EACQ,qFAAA;E2B/DR,gBAAA;EACA,mBAAA;ChCgzID;AkB1xHD;EAAA;IA9DM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB41HH;EkBhyHH;IAvDM,sBAAA;IACA,YAAA;IACA,uBAAA;GlB01HH;EkBryHH;IAhDM,sBAAA;GlBw1HH;EkBxyHH;IA5CM,sBAAA;IACA,uBAAA;GlBu1HH;EkB5yHH;;;IAtCQ,YAAA;GlBu1HL;EkBjzHH;IAhCM,YAAA;GlBo1HH;EkBpzHH;IA5BM,iBAAA;IACA,uBAAA;GlBm1HH;EkBxzHH;;IApBM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlBg1HH;EkB/zHH;;IAdQ,gBAAA;GlBi1HL;EkBn0HH;;IATM,mBAAA;IACA,eAAA;GlBg1HH;EkBx0HH;IAHM,OAAA;GlB80HH;CACF;A+BxjIC;EAAA;IANI,mBAAA;G/BkkIH;E+BhkIG;IACE,iBAAA;G/BkkIL;CACF;A+BjjID;EAAA;IARI,YAAA;IACA,UAAA;IACA,eAAA;IACA,gBAAA;IACA,eAAA;IACA,kBAAA;I1BzPF,yBAAA;IACQ,iBAAA;GLuzIP;CACF;A+BvjID;EACE,cAAA;EHpUA,2BAAA;EACC,0BAAA;C5B83IF;A+BvjID;EACE,iBAAA;EHzUA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5B63IF;A+BnjID;EChVE,gBAAA;EACA,mBAAA;ChCs4ID;A+BpjIC;ECnVA,iBAAA;EACA,oBAAA;ChC04ID;A+BrjIC;ECtVA,iBAAA;EACA,oBAAA;ChC84ID;A+B/iID;EChWE,iBAAA;EACA,oBAAA;ChCk5ID;A+B3iID;EAAA;IAJI,YAAA;IACA,kBAAA;IACA,mBAAA;G/BmjID;CACF;A+BthID;EAhBE;IExWA,uBAAA;GjCk5IC;E+BziID;IE5WA,wBAAA;IF8WE,oBAAA;G/B2iID;E+B7iID;IAKI,gBAAA;G/B2iIH;CACF;A+BliID;EACE,0BAAA;EACA,sBAAA;C/BoiID;A+BtiID;EAKI,eAAA;C/BoiIH;A+BniIG;;EAEE,eAAA;EACA,8BAAA;C/BqiIL;A+B9iID;EAcI,eAAA;C/BmiIH;A+BjjID;EAmBM,eAAA;C/BiiIL;A+B/hIK;;EAEE,eAAA;EACA,8BAAA;C/BiiIP;A+B7hIK;;;EAGE,eAAA;EACA,0BAAA;C/B+hIP;A+B3hIK;;;EAGE,eAAA;EACA,8BAAA;C/B6hIP;A+BrkID;EA8CI,sBAAA;C/B0hIH;A+BzhIG;;EAEE,0BAAA;C/B2hIL;A+B5kID;EAoDM,0BAAA;C/B2hIL;A+B/kID;;EA0DI,sBAAA;C/ByhIH;A+BlhIK;;;EAGE,0BAAA;EACA,eAAA;C/BohIP;A+Bn/HC;EAAA;IAzBQ,eAAA;G/BghIP;E+B/gIO;;IAEE,eAAA;IACA,8BAAA;G/BihIT;E+B7gIO;;;IAGE,eAAA;IACA,0BAAA;G/B+gIT;E+B3gIO;;;IAGE,eAAA;IACA,8BAAA;G/B6gIT;CACF;A+B/mID;EA8GI,eAAA;C/BogIH;A+BngIG;EACE,eAAA;C/BqgIL;A+BrnID;EAqHI,eAAA;C/BmgIH;A+BlgIG;;EAEE,eAAA;C/BogIL;A+BhgIK;;;;EAEE,eAAA;C/BogIP;A+B5/HD;EACE,0BAAA;EACA,sBAAA;C/B8/HD;A+BhgID;EAKI,eAAA;C/B8/HH;A+B7/HG;;EAEE,eAAA;EACA,8BAAA;C/B+/HL;A+BxgID;EAcI,eAAA;C/B6/HH;A+B3gID;EAmBM,eAAA;C/B2/HL;A+Bz/HK;;EAEE,eAAA;EACA,8BAAA;C/B2/HP;A+Bv/HK;;;EAGE,eAAA;EACA,0BAAA;C/By/HP;A+Br/HK;;;EAGE,eAAA;EACA,8BAAA;C/Bu/HP;A+B/hID;EA+CI,sBAAA;C/Bm/HH;A+Bl/HG;;EAEE,0BAAA;C/Bo/HL;A+BtiID;EAqDM,0BAAA;C/Bo/HL;A+BziID;;EA2DI,sBAAA;C/Bk/HH;A+B5+HK;;;EAGE,0BAAA;EACA,eAAA;C/B8+HP;A+Bv8HC;EAAA;IA/BQ,sBAAA;G/B0+HP;E+B38HD;IA5BQ,0BAAA;G/B0+HP;E+B98HD;IAzBQ,eAAA;G/B0+HP;E+Bz+HO;;IAEE,eAAA;IACA,8BAAA;G/B2+HT;E+Bv+HO;;;IAGE,eAAA;IACA,0BAAA;G/By+HT;E+Br+HO;;;IAGE,eAAA;IACA,8BAAA;G/Bu+HT;CACF;A+B/kID;EA+GI,eAAA;C/Bm+HH;A+Bl+HG;EACE,eAAA;C/Bo+HL;A+BrlID;EAsHI,eAAA;C/Bk+HH;A+Bj+HG;;EAEE,eAAA;C/Bm+HL;A+B/9HK;;;;EAEE,eAAA;C/Bm+HP;AkC7mJD;EACE,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ClC+mJD;AkCpnJD;EAQI,sBAAA;ClC+mJH;AkCvnJD;EAWM,kBAAA;EACA,eAAA;EACA,eAAA;ClC+mJL;AkC5nJD;EAkBI,eAAA;ClC6mJH;AmCjoJD;EACE,sBAAA;EACA,gBAAA;EACA,eAAA;EACA,mBAAA;CnCmoJD;AmCvoJD;EAOI,gBAAA;CnCmoJH;AmC1oJD;;EAUM,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,wBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,0BAAA;EACA,kBAAA;CnCooJL;AmCloJG;;EAGI,eAAA;EPXN,+BAAA;EACG,4BAAA;C5B+oJJ;AmCjoJG;;EPvBF,gCAAA;EACG,6BAAA;C5B4pJJ;AmC5nJG;;;;EAEE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,sBAAA;CnCgoJL;AmC1nJG;;;;;;EAGE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,sBAAA;EACA,gBAAA;CnC+nJL;AmCtrJD;;;;;;EAkEM,eAAA;EACA,0BAAA;EACA,sBAAA;EACA,oBAAA;CnC4nJL;AmCnnJD;;EC3EM,mBAAA;EACA,gBAAA;EACA,uBAAA;CpCksJL;AoChsJG;;ERKF,+BAAA;EACG,4BAAA;C5B+rJJ;AoC/rJG;;ERTF,gCAAA;EACG,6BAAA;C5B4sJJ;AmC9nJD;;EChFM,kBAAA;EACA,gBAAA;EACA,iBAAA;CpCktJL;AoChtJG;;ERKF,+BAAA;EACG,4BAAA;C5B+sJJ;AoC/sJG;;ERTF,gCAAA;EACG,6BAAA;C5B4tJJ;AqC/tJD;EACE,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,mBAAA;CrCiuJD;AqCruJD;EAOI,gBAAA;CrCiuJH;AqCxuJD;;EAUM,sBAAA;EACA,kBAAA;EACA,0BAAA;EACA,0BAAA;EACA,oBAAA;CrCkuJL;AqChvJD;;EAmBM,sBAAA;EACA,0BAAA;CrCiuJL;AqCrvJD;;EA2BM,aAAA;CrC8tJL;AqCzvJD;;EAkCM,YAAA;CrC2tJL;AqC7vJD;;;;EA2CM,eAAA;EACA,0BAAA;EACA,oBAAA;CrCwtJL;AsCtwJD;EACE,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,oBAAA;EACA,yBAAA;EACA,qBAAA;CtCwwJD;AsCpwJG;;EAEE,eAAA;EACA,sBAAA;EACA,gBAAA;CtCswJL;AsCjwJC;EACE,cAAA;CtCmwJH;AsC/vJC;EACE,mBAAA;EACA,UAAA;CtCiwJH;AsC1vJD;ECtCE,0BAAA;CvCmyJD;AuChyJG;;EAEE,0BAAA;CvCkyJL;AsC7vJD;EC1CE,0BAAA;CvC0yJD;AuCvyJG;;EAEE,0BAAA;CvCyyJL;AsChwJD;EC9CE,0BAAA;CvCizJD;AuC9yJG;;EAEE,0BAAA;CvCgzJL;AsCnwJD;EClDE,0BAAA;CvCwzJD;AuCrzJG;;EAEE,0BAAA;CvCuzJL;AsCtwJD;ECtDE,0BAAA;CvC+zJD;AuC5zJG;;EAEE,0BAAA;CvC8zJL;AsCzwJD;EC1DE,0BAAA;CvCs0JD;AuCn0JG;;EAEE,0BAAA;CvCq0JL;AwCv0JD;EACE,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,uBAAA;EACA,oBAAA;EACA,mBAAA;EACA,0BAAA;EACA,oBAAA;CxCy0JD;AwCt0JC;EACE,cAAA;CxCw0JH;AwCp0JC;EACE,mBAAA;EACA,UAAA;CxCs0JH;AwCn0JC;;EAEE,OAAA;EACA,iBAAA;CxCq0JH;AwCh0JG;;EAEE,eAAA;EACA,sBAAA;EACA,gBAAA;CxCk0JL;AwC7zJC;;EAEE,eAAA;EACA,0BAAA;CxC+zJH;AwC5zJC;EACE,aAAA;CxC8zJH;AwC3zJC;EACE,kBAAA;CxC6zJH;AwC1zJC;EACE,iBAAA;CxC4zJH;AyCt3JD;EACE,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,eAAA;EACA,0BAAA;CzCw3JD;AyC73JD;;EASI,eAAA;CzCw3JH;AyCj4JD;EAaI,oBAAA;EACA,gBAAA;EACA,iBAAA;CzCu3JH;AyCt4JD;EAmBI,0BAAA;CzCs3JH;AyCn3JC;;EAEE,mBAAA;CzCq3JH;AyC74JD;EA4BI,gBAAA;CzCo3JH;AyCl2JD;EAAA;IAdI,kBAAA;IACA,qBAAA;GzCo3JD;EyCl3JC;;IAEE,mBAAA;IACA,oBAAA;GzCo3JH;EyC52JH;;IAHM,gBAAA;GzCm3JH;CACF;A0C95JD;EACE,eAAA;EACA,aAAA;EACA,oBAAA;EACA,wBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;ErCiLA,4CAAA;EACK,uCAAA;EACG,oCAAA;CLgvJT;A0C16JD;;EAaI,kBAAA;EACA,mBAAA;C1Ci6JH;A0C75JC;;;EAGE,sBAAA;C1C+5JH;A0Cp7JD;EA0BI,aAAA;EACA,eAAA;C1C65JH;A2Ct7JD;EACE,cAAA;EACA,oBAAA;EACA,8BAAA;EACA,mBAAA;C3Cw7JD;A2C57JD;EAQI,cAAA;EAEA,eAAA;C3Cs7JH;A2Ch8JD;EAeI,kBAAA;C3Co7JH;A2Cn8JD;;EAqBI,iBAAA;C3Ck7JH;A2Cv8JD;EAyBI,gBAAA;C3Ci7JH;A2Cz6JD;;EAEE,oBAAA;C3C26JD;A2C76JD;;EAMI,mBAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;C3C26JH;A2Cn6JD;ECvDE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C69JD;A2Cx6JD;EClDI,0BAAA;C5C69JH;A2C36JD;EC/CI,eAAA;C5C69JH;A2C16JD;EC3DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Cw+JD;A2C/6JD;ECtDI,0BAAA;C5Cw+JH;A2Cl7JD;ECnDI,eAAA;C5Cw+JH;A2Cj7JD;EC/DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Cm/JD;A2Ct7JD;EC1DI,0BAAA;C5Cm/JH;A2Cz7JD;ECvDI,eAAA;C5Cm/JH;A2Cx7JD;ECnEE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C8/JD;A2C77JD;EC9DI,0BAAA;C5C8/JH;A2Ch8JD;EC3DI,eAAA;C5C8/JH;A6ChgKD;EACE;IAAQ,4BAAA;G7CmgKP;E6ClgKD;IAAQ,yBAAA;G7CqgKP;CACF;A6ClgKD;EACE;IAAQ,4BAAA;G7CqgKP;E6CpgKD;IAAQ,yBAAA;G7CugKP;CACF;A6C1gKD;EACE;IAAQ,4BAAA;G7CqgKP;E6CpgKD;IAAQ,yBAAA;G7CugKP;CACF;A6ChgKD;EACE,iBAAA;EACA,aAAA;EACA,oBAAA;EACA,0BAAA;EACA,mBAAA;ExCsCA,uDAAA;EACQ,+CAAA;CL69JT;A6C//JD;EACE,YAAA;EACA,UAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;ExCyBA,uDAAA;EACQ,+CAAA;EAyHR,oCAAA;EACK,+BAAA;EACG,4BAAA;CLi3JT;A6C5/JD;;ECCI,8MAAA;EACA,yMAAA;EACA,sMAAA;EDAF,mCAAA;UAAA,2BAAA;C7CggKD;A6Cz/JD;;ExC5CE,2DAAA;EACK,sDAAA;EACG,mDAAA;CLyiKT;A6Ct/JD;EErEE,0BAAA;C/C8jKD;A+C3jKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C8gKH;A6C1/JD;EEzEE,0BAAA;C/CskKD;A+CnkKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9CshKH;A6C9/JD;EE7EE,0BAAA;C/C8kKD;A+C3kKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C8hKH;A6ClgKD;EEjFE,0BAAA;C/CslKD;A+CnlKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9CsiKH;AgD9lKD;EAEE,iBAAA;ChD+lKD;AgD7lKC;EACE,cAAA;ChD+lKH;AgD3lKD;;EAEE,QAAA;EACA,iBAAA;ChD6lKD;AgD1lKD;EACE,eAAA;ChD4lKD;AgDzlKD;EACE,eAAA;ChD2lKD;AgDxlKC;EACE,gBAAA;ChD0lKH;AgDtlKD;;EAEE,mBAAA;ChDwlKD;AgDrlKD;;EAEE,oBAAA;ChDulKD;AgDplKD;;;EAGE,oBAAA;EACA,oBAAA;ChDslKD;AgDnlKD;EACE,uBAAA;ChDqlKD;AgDllKD;EACE,uBAAA;ChDolKD;AgDhlKD;EACE,cAAA;EACA,mBAAA;ChDklKD;AgD5kKD;EACE,gBAAA;EACA,iBAAA;ChD8kKD;AiDroKD;EAEE,oBAAA;EACA,gBAAA;CjDsoKD;AiD9nKD;EACE,mBAAA;EACA,eAAA;EACA,mBAAA;EAEA,oBAAA;EACA,0BAAA;EACA,0BAAA;CjD+nKD;AiD5nKC;ErB3BA,6BAAA;EACC,4BAAA;C5B0pKF;AiD7nKC;EACE,iBAAA;ErBvBF,gCAAA;EACC,+BAAA;C5BupKF;AiDtnKD;;EAEE,eAAA;CjDwnKD;AiD1nKD;;EAKI,eAAA;CjDynKH;AiDrnKC;;;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CjDynKH;AiDrnKD;EACE,YAAA;EACA,iBAAA;CjDunKD;AiDlnKC;;;EAGE,0BAAA;EACA,eAAA;EACA,oBAAA;CjDonKH;AiDznKC;;;EASI,eAAA;CjDqnKL;AiD9nKC;;;EAYI,eAAA;CjDunKL;AiDlnKC;;;EAGE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,sBAAA;CjDonKH;AiD1nKC;;;;;;;;;EAYI,eAAA;CjDynKL;AiDroKC;;;EAeI,eAAA;CjD2nKL;AkD7tKC;EACE,eAAA;EACA,0BAAA;ClD+tKH;AkD7tKG;;EAEE,eAAA;ClD+tKL;AkDjuKG;;EAKI,eAAA;ClDguKP;AkD7tKK;;;;EAEE,eAAA;EACA,0BAAA;ClDiuKP;AkD/tKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDouKP;AkD1vKC;EACE,eAAA;EACA,0BAAA;ClD4vKH;AkD1vKG;;EAEE,eAAA;ClD4vKL;AkD9vKG;;EAKI,eAAA;ClD6vKP;AkD1vKK;;;;EAEE,eAAA;EACA,0BAAA;ClD8vKP;AkD5vKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDiwKP;AkDvxKC;EACE,eAAA;EACA,0BAAA;ClDyxKH;AkDvxKG;;EAEE,eAAA;ClDyxKL;AkD3xKG;;EAKI,eAAA;ClD0xKP;AkDvxKK;;;;EAEE,eAAA;EACA,0BAAA;ClD2xKP;AkDzxKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD8xKP;AkDpzKC;EACE,eAAA;EACA,0BAAA;ClDszKH;AkDpzKG;;EAEE,eAAA;ClDszKL;AkDxzKG;;EAKI,eAAA;ClDuzKP;AkDpzKK;;;;EAEE,eAAA;EACA,0BAAA;ClDwzKP;AkDtzKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD2zKP;AiD1tKD;EACE,cAAA;EACA,mBAAA;CjD4tKD;AiD1tKD;EACE,iBAAA;EACA,iBAAA;CjD4tKD;AmDt1KD;EACE,oBAAA;EACA,0BAAA;EACA,8BAAA;EACA,mBAAA;E9C0DA,kDAAA;EACQ,0CAAA;CL+xKT;AmDr1KD;EACE,cAAA;CnDu1KD;AmDl1KD;EACE,mBAAA;EACA,qCAAA;EvBpBA,6BAAA;EACC,4BAAA;C5By2KF;AmDx1KD;EAMI,eAAA;CnDq1KH;AmDh1KD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,eAAA;CnDk1KD;AmDt1KD;;;;;EAWI,eAAA;CnDk1KH;AmD70KD;EACE,mBAAA;EACA,0BAAA;EACA,8BAAA;EvBxCA,gCAAA;EACC,+BAAA;C5Bw3KF;AmDv0KD;;EAGI,iBAAA;CnDw0KH;AmD30KD;;EAMM,oBAAA;EACA,iBAAA;CnDy0KL;AmDr0KG;;EAEI,cAAA;EvBvEN,6BAAA;EACC,4BAAA;C5B+4KF;AmDn0KG;;EAEI,iBAAA;EvBvEN,gCAAA;EACC,+BAAA;C5B64KF;AmD51KD;EvB1DE,2BAAA;EACC,0BAAA;C5By5KF;AmD/zKD;EAEI,oBAAA;CnDg0KH;AmD7zKD;EACE,oBAAA;CnD+zKD;AmDvzKD;;;EAII,iBAAA;CnDwzKH;AmD5zKD;;;EAOM,mBAAA;EACA,oBAAA;CnD0zKL;AmDl0KD;;EvBzGE,6BAAA;EACC,4BAAA;C5B+6KF;AmDv0KD;;;;EAmBQ,4BAAA;EACA,6BAAA;CnD0zKP;AmD90KD;;;;;;;;EAwBU,4BAAA;CnDg0KT;AmDx1KD;;;;;;;;EA4BU,6BAAA;CnDs0KT;AmDl2KD;;EvBjGE,gCAAA;EACC,+BAAA;C5Bu8KF;AmDv2KD;;;;EAyCQ,+BAAA;EACA,gCAAA;CnDo0KP;AmD92KD;;;;;;;;EA8CU,+BAAA;CnD00KT;AmDx3KD;;;;;;;;EAkDU,gCAAA;CnDg1KT;AmDl4KD;;;;EA2DI,8BAAA;CnD60KH;AmDx4KD;;EA+DI,cAAA;CnD60KH;AmD54KD;;EAmEI,UAAA;CnD60KH;AmDh5KD;;;;;;;;;;;;EA0EU,eAAA;CnDo1KT;AmD95KD;;;;;;;;;;;;EA8EU,gBAAA;CnD81KT;AmD56KD;;;;;;;;EAuFU,iBAAA;CnD+1KT;AmDt7KD;;;;;;;;EAgGU,iBAAA;CnDg2KT;AmDh8KD;EAsGI,UAAA;EACA,iBAAA;CnD61KH;AmDn1KD;EACE,oBAAA;CnDq1KD;AmDt1KD;EAKI,iBAAA;EACA,mBAAA;CnDo1KH;AmD11KD;EASM,gBAAA;CnDo1KL;AmD71KD;EAcI,iBAAA;CnDk1KH;AmDh2KD;;EAkBM,8BAAA;CnDk1KL;AmDp2KD;EAuBI,cAAA;CnDg1KH;AmDv2KD;EAyBM,iCAAA;CnDi1KL;AmD10KD;EC1PE,sBAAA;CpDukLD;AoDrkLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDukLH;AoD1kLC;EAMI,0BAAA;CpDukLL;AoD7kLC;EASI,eAAA;EACA,0BAAA;CpDukLL;AoDpkLC;EAEI,6BAAA;CpDqkLL;AmDz1KD;EC7PE,sBAAA;CpDylLD;AoDvlLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDylLH;AoD5lLC;EAMI,0BAAA;CpDylLL;AoD/lLC;EASI,eAAA;EACA,0BAAA;CpDylLL;AoDtlLC;EAEI,6BAAA;CpDulLL;AmDx2KD;EChQE,sBAAA;CpD2mLD;AoDzmLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD2mLH;AoD9mLC;EAMI,0BAAA;CpD2mLL;AoDjnLC;EASI,eAAA;EACA,0BAAA;CpD2mLL;AoDxmLC;EAEI,6BAAA;CpDymLL;AmDv3KD;ECnQE,sBAAA;CpD6nLD;AoD3nLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD6nLH;AoDhoLC;EAMI,0BAAA;CpD6nLL;AoDnoLC;EASI,eAAA;EACA,0BAAA;CpD6nLL;AoD1nLC;EAEI,6BAAA;CpD2nLL;AmDt4KD;ECtQE,sBAAA;CpD+oLD;AoD7oLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD+oLH;AoDlpLC;EAMI,0BAAA;CpD+oLL;AoDrpLC;EASI,eAAA;EACA,0BAAA;CpD+oLL;AoD5oLC;EAEI,6BAAA;CpD6oLL;AmDr5KD;ECzQE,sBAAA;CpDiqLD;AoD/pLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDiqLH;AoDpqLC;EAMI,0BAAA;CpDiqLL;AoDvqLC;EASI,eAAA;EACA,0BAAA;CpDiqLL;AoD9pLC;EAEI,6BAAA;CpD+pLL;AqD/qLD;EACE,mBAAA;EACA,eAAA;EACA,UAAA;EACA,WAAA;EACA,iBAAA;CrDirLD;AqDtrLD;;;;;EAYI,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;EACA,UAAA;CrDirLH;AqD5qLD;EACE,uBAAA;CrD8qLD;AqD1qLD;EACE,oBAAA;CrD4qLD;AsDvsLD;EACE,iBAAA;EACA,cAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EjDwDA,wDAAA;EACQ,gDAAA;CLkpLT;AsDjtLD;EASI,mBAAA;EACA,kCAAA;CtD2sLH;AsDtsLD;EACE,cAAA;EACA,mBAAA;CtDwsLD;AsDtsLD;EACE,aAAA;EACA,mBAAA;CtDwsLD;AuD9tLD;EACE,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,6BAAA;EjCRA,aAAA;EAGA,0BAAA;CtBuuLD;AuD/tLC;;EAEE,eAAA;EACA,sBAAA;EACA,gBAAA;EjCfF,aAAA;EAGA,0BAAA;CtB+uLD;AuD3tLC;EACE,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA;EACA,yBAAA;CvD6tLH;AwDlvLD;EACE,iBAAA;CxDovLD;AwDhvLD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,kCAAA;EAIA,WAAA;CxD+uLD;AwD5uLC;EnD+GA,sCAAA;EACI,kCAAA;EACC,iCAAA;EACG,8BAAA;EAkER,oDAAA;EAEK,0CAAA;EACG,oCAAA;CL+jLT;AwDlvLC;EnD2GA,mCAAA;EACI,+BAAA;EACC,8BAAA;EACG,2BAAA;CL0oLT;AwDtvLD;EACE,mBAAA;EACA,iBAAA;CxDwvLD;AwDpvLD;EACE,mBAAA;EACA,YAAA;EACA,aAAA;CxDsvLD;AwDlvLD;EACE,mBAAA;EACA,0BAAA;EACA,0BAAA;EACA,qCAAA;EACA,mBAAA;EnDaA,iDAAA;EACQ,yCAAA;EmDZR,qCAAA;UAAA,6BAAA;EAEA,WAAA;CxDovLD;AwDhvLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,0BAAA;CxDkvLD;AwDhvLC;ElCrEA,WAAA;EAGA,yBAAA;CtBszLD;AwDnvLC;ElCtEA,aAAA;EAGA,0BAAA;CtB0zLD;AwDlvLD;EACE,cAAA;EACA,iCAAA;EACA,0BAAA;CxDovLD;AwDjvLD;EACE,iBAAA;CxDmvLD;AwD/uLD;EACE,UAAA;EACA,wBAAA;CxDivLD;AwD5uLD;EACE,mBAAA;EACA,cAAA;CxD8uLD;AwD1uLD;EACE,cAAA;EACA,kBAAA;EACA,8BAAA;CxD4uLD;AwD/uLD;EAQI,iBAAA;EACA,iBAAA;CxD0uLH;AwDnvLD;EAaI,kBAAA;CxDyuLH;AwDtvLD;EAiBI,eAAA;CxDwuLH;AwDnuLD;EACE,mBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;CxDquLD;AwDntLD;EAZE;IACE,aAAA;IACA,kBAAA;GxDkuLD;EwDhuLD;InDvEA,kDAAA;IACQ,0CAAA;GL0yLP;EwD/tLD;IAAY,aAAA;GxDkuLX;CACF;AwD7tLD;EAFE;IAAY,aAAA;GxDmuLX;CACF;AyDl3LD;EACE,mBAAA;EACA,cAAA;EACA,eAAA;ECRA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EDHA,gBAAA;EnCVA,WAAA;EAGA,yBAAA;CtBy4LD;AyD93LC;EnCdA,aAAA;EAGA,0BAAA;CtB64LD;AyDj4LC;EAAW,iBAAA;EAAmB,eAAA;CzDq4L/B;AyDp4LC;EAAW,iBAAA;EAAmB,eAAA;CzDw4L/B;AyDv4LC;EAAW,gBAAA;EAAmB,eAAA;CzD24L/B;AyD14LC;EAAW,kBAAA;EAAmB,eAAA;CzD84L/B;AyD14LD;EACE,iBAAA;EACA,iBAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,mBAAA;CzD44LD;AyDx4LD;EACE,mBAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;CzD04LD;AyDt4LC;EACE,UAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,0BAAA;CzDw4LH;AyDt4LC;EACE,UAAA;EACA,WAAA;EACA,oBAAA;EACA,wBAAA;EACA,0BAAA;CzDw4LH;AyDt4LC;EACE,UAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,0BAAA;CzDw4LH;AyDt4LC;EACE,SAAA;EACA,QAAA;EACA,iBAAA;EACA,4BAAA;EACA,4BAAA;CzDw4LH;AyDt4LC;EACE,SAAA;EACA,SAAA;EACA,iBAAA;EACA,4BAAA;EACA,2BAAA;CzDw4LH;AyDt4LC;EACE,OAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,6BAAA;CzDw4LH;AyDt4LC;EACE,OAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,6BAAA;CzDw4LH;AyDt4LC;EACE,OAAA;EACA,UAAA;EACA,iBAAA;EACA,wBAAA;EACA,6BAAA;CzDw4LH;A2Dr+LD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EDXA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;ECAA,gBAAA;EAEA,0BAAA;EACA,qCAAA;UAAA,6BAAA;EACA,0BAAA;EACA,qCAAA;EACA,mBAAA;EtD8CA,kDAAA;EACQ,0CAAA;CLq8LT;A2Dh/LC;EAAY,kBAAA;C3Dm/Lb;A2Dl/LC;EAAY,kBAAA;C3Dq/Lb;A2Dp/LC;EAAY,iBAAA;C3Du/Lb;A2Dt/LC;EAAY,mBAAA;C3Dy/Lb;A2Dt/LD;EACE,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,0BAAA;EACA,iCAAA;EACA,2BAAA;C3Dw/LD;A2Dr/LD;EACE,kBAAA;C3Du/LD;A2D/+LC;;EAEE,mBAAA;EACA,eAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;C3Di/LH;A2D9+LD;EACE,mBAAA;C3Dg/LD;A2D9+LD;EACE,mBAAA;EACA,YAAA;C3Dg/LD;A2D5+LC;EACE,UAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;EACA,sCAAA;EACA,cAAA;C3D8+LH;A2D7+LG;EACE,aAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;C3D++LL;A2D5+LC;EACE,SAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,4BAAA;EACA,wCAAA;C3D8+LH;A2D7+LG;EACE,aAAA;EACA,UAAA;EACA,cAAA;EACA,qBAAA;EACA,4BAAA;C3D++LL;A2D5+LC;EACE,UAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yCAAA;EACA,WAAA;C3D8+LH;A2D7+LG;EACE,aAAA;EACA,SAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;C3D++LL;A2D3+LC;EACE,SAAA;EACA,aAAA;EACA,kBAAA;EACA,sBAAA;EACA,2BAAA;EACA,uCAAA;C3D6+LH;A2D5+LG;EACE,aAAA;EACA,WAAA;EACA,sBAAA;EACA,2BAAA;EACA,cAAA;C3D8+LL;A4DvmMD;EACE,mBAAA;C5DymMD;A4DtmMD;EACE,mBAAA;EACA,iBAAA;EACA,YAAA;C5DwmMD;A4D3mMD;EAMI,cAAA;EACA,mBAAA;EvD6KF,0CAAA;EACK,qCAAA;EACG,kCAAA;CL47LT;A4DlnMD;;EAcM,eAAA;C5DwmML;A4D9kMC;EAAA;IvDiKA,uDAAA;IAEK,6CAAA;IACG,uCAAA;IA7JR,oCAAA;IAEQ,4BAAA;IA+GR,4BAAA;IAEQ,oBAAA;GLi+LP;E4D5mMG;;IvDmHJ,2CAAA;IACQ,mCAAA;IuDjHF,QAAA;G5D+mML;E4D7mMG;;IvD8GJ,4CAAA;IACQ,oCAAA;IuD5GF,QAAA;G5DgnML;E4D9mMG;;;IvDyGJ,wCAAA;IACQ,gCAAA;IuDtGF,QAAA;G5DinML;CACF;A4DvpMD;;;EA6CI,eAAA;C5D+mMH;A4D5pMD;EAiDI,QAAA;C5D8mMH;A4D/pMD;;EAsDI,mBAAA;EACA,OAAA;EACA,YAAA;C5D6mMH;A4DrqMD;EA4DI,WAAA;C5D4mMH;A4DxqMD;EA+DI,YAAA;C5D4mMH;A4D3qMD;;EAmEI,QAAA;C5D4mMH;A4D/qMD;EAuEI,YAAA;C5D2mMH;A4DlrMD;EA0EI,WAAA;C5D2mMH;A4DnmMD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EtC9FA,aAAA;EAGA,0BAAA;EsC6FA,gBAAA;EACA,eAAA;EACA,mBAAA;EACA,0CAAA;C5DsmMD;A4DjmMC;EdlGE,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CssMH;A4DrmMC;EACE,WAAA;EACA,SAAA;EdvGA,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9C+sMH;A4DvmMC;;EAEE,WAAA;EACA,eAAA;EACA,sBAAA;EtCtHF,aAAA;EAGA,0BAAA;CtB8tMD;A4DxoMD;;;;EAsCI,mBAAA;EACA,SAAA;EACA,kBAAA;EACA,WAAA;EACA,sBAAA;C5DwmMH;A4DlpMD;;EA8CI,UAAA;EACA,mBAAA;C5DwmMH;A4DvpMD;;EAmDI,WAAA;EACA,oBAAA;C5DwmMH;A4D5pMD;;EAwDI,YAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;C5DwmMH;A4DnmMG;EACE,iBAAA;C5DqmML;A4DjmMG;EACE,iBAAA;C5DmmML;A4DzlMD;EACE,mBAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;C5D2lMD;A4DpmMD;EAYI,sBAAA;EACA,YAAA;EACA,aAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;EACA,oBAAA;EACA,gBAAA;EAWA,0BAAA;EACA,mCAAA;C5DilMH;A4DhnMD;EAkCI,UAAA;EACA,YAAA;EACA,aAAA;EACA,0BAAA;C5DilMH;A4D1kMD;EACE,mBAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,eAAA;EACA,mBAAA;EACA,0CAAA;C5D4kMD;A4D3kMC;EACE,kBAAA;C5D6kMH;A4DpiMD;EAhCE;;;;IAKI,YAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;G5DskMH;E4D9kMD;;IAYI,mBAAA;G5DskMH;E4DllMD;;IAgBI,oBAAA;G5DskMH;E4DjkMD;IACE,UAAA;IACA,WAAA;IACA,qBAAA;G5DmkMD;E4D/jMD;IACE,aAAA;G5DikMD;CACF;A6D/zMC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,aAAA;EACA,eAAA;C7D61MH;A6D31MC;;;;;;;;;;;;;;;EACE,YAAA;C7D22MH;AiCn3MD;E6BRE,eAAA;EACA,kBAAA;EACA,mBAAA;C9D83MD;AiCr3MD;EACE,wBAAA;CjCu3MD;AiCr3MD;EACE,uBAAA;CjCu3MD;AiC/2MD;EACE,yBAAA;CjCi3MD;AiC/2MD;EACE,0BAAA;CjCi3MD;AiC/2MD;EACE,mBAAA;CjCi3MD;AiC/2MD;E8BzBE,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,8BAAA;EACA,UAAA;C/D24MD;AiC72MD;EACE,yBAAA;CjC+2MD;AiCx2MD;EACE,gBAAA;CjC02MD;AgE34MD;EACE,oBAAA;ChE64MD;AgEv4MD;;;;ECdE,yBAAA;CjE25MD;AgEt4MD;;;;;;;;;;;;EAYE,yBAAA;ChEw4MD;AgEj4MD;EAAA;IChDE,0BAAA;GjEq7MC;EiEp7MD;IAAU,0BAAA;GjEu7MT;EiEt7MD;IAAU,8BAAA;GjEy7MT;EiEx7MD;;IACU,+BAAA;GjE27MT;CACF;AgE34MD;EAAA;IAFI,0BAAA;GhEi5MD;CACF;AgE34MD;EAAA;IAFI,2BAAA;GhEi5MD;CACF;AgE34MD;EAAA;IAFI,iCAAA;GhEi5MD;CACF;AgE14MD;EAAA;ICrEE,0BAAA;GjEm9MC;EiEl9MD;IAAU,0BAAA;GjEq9MT;EiEp9MD;IAAU,8BAAA;GjEu9MT;EiEt9MD;;IACU,+BAAA;GjEy9MT;CACF;AgEp5MD;EAAA;IAFI,0BAAA;GhE05MD;CACF;AgEp5MD;EAAA;IAFI,2BAAA;GhE05MD;CACF;AgEp5MD;EAAA;IAFI,iCAAA;GhE05MD;CACF;AgEn5MD;EAAA;IC1FE,0BAAA;GjEi/MC;EiEh/MD;IAAU,0BAAA;GjEm/MT;EiEl/MD;IAAU,8BAAA;GjEq/MT;EiEp/MD;;IACU,+BAAA;GjEu/MT;CACF;AgE75MD;EAAA;IAFI,0BAAA;GhEm6MD;CACF;AgE75MD;EAAA;IAFI,2BAAA;GhEm6MD;CACF;AgE75MD;EAAA;IAFI,iCAAA;GhEm6MD;CACF;AgE55MD;EAAA;IC/GE,0BAAA;GjE+gNC;EiE9gND;IAAU,0BAAA;GjEihNT;EiEhhND;IAAU,8BAAA;GjEmhNT;EiElhND;;IACU,+BAAA;GjEqhNT;CACF;AgEt6MD;EAAA;IAFI,0BAAA;GhE46MD;CACF;AgEt6MD;EAAA;IAFI,2BAAA;GhE46MD;CACF;AgEt6MD;EAAA;IAFI,iCAAA;GhE46MD;CACF;AgEr6MD;EAAA;IC5HE,yBAAA;GjEqiNC;CACF;AgEr6MD;EAAA;ICjIE,yBAAA;GjE0iNC;CACF;AgEr6MD;EAAA;ICtIE,yBAAA;GjE+iNC;CACF;AgEr6MD;EAAA;IC3IE,yBAAA;GjEojNC;CACF;AgEl6MD;ECnJE,yBAAA;CjEwjND;AgE/5MD;EAAA;ICjKE,0BAAA;GjEokNC;EiEnkND;IAAU,0BAAA;GjEskNT;EiErkND;IAAU,8BAAA;GjEwkNT;EiEvkND;;IACU,+BAAA;GjE0kNT;CACF;AgE76MD;EACE,yBAAA;ChE+6MD;AgE16MD;EAAA;IAFI,0BAAA;GhEg7MD;CACF;AgE96MD;EACE,yBAAA;ChEg7MD;AgE36MD;EAAA;IAFI,2BAAA;GhEi7MD;CACF;AgE/6MD;EACE,yBAAA;ChEi7MD;AgE56MD;EAAA;IAFI,iCAAA;GhEk7MD;CACF;AgE36MD;EAAA;ICpLE,yBAAA;GjEmmNC;CACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  font-family: sans-serif;\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n}\nbody {\n  margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  vertical-align: baseline;\n}\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n[hidden],\ntemplate {\n  display: none;\n}\na {\n  background-color: transparent;\n}\na:active,\na:hover {\n  outline: 0;\n}\nabbr[title] {\n  border-bottom: 1px dotted;\n}\nb,\nstrong {\n  font-weight: bold;\n}\ndfn {\n  font-style: italic;\n}\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\nmark {\n  background: #ff0;\n  color: #000;\n}\nsmall {\n  font-size: 80%;\n}\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\nsup {\n  top: -0.5em;\n}\nsub {\n  bottom: -0.25em;\n}\nimg {\n  border: 0;\n}\nsvg:not(:root) {\n  overflow: hidden;\n}\nfigure {\n  margin: 1em 40px;\n}\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\npre {\n  overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\nbutton {\n  overflow: visible;\n}\nbutton,\nselect {\n  text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\ninput {\n  line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n  border: 0;\n  padding: 0;\n}\ntextarea {\n  overflow: auto;\n}\noptgroup {\n  font-weight: bold;\n}\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\ntd,\nth {\n  padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n  *,\n  *:before,\n  *:after {\n    background: transparent !important;\n    color: #000 !important;\n    box-shadow: none !important;\n    text-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  .navbar {\n    display: none;\n  }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important;\n  }\n  .label {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important;\n  }\n}\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url('../fonts/glyphicons-halflings-regular.eot');\n  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n  content: \"\\2a\";\n}\n.glyphicon-plus:before {\n  content: \"\\2b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n  content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n  content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n  content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n  content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n  content: \"\\270f\";\n}\n.glyphicon-glass:before {\n  content: \"\\e001\";\n}\n.glyphicon-music:before {\n  content: \"\\e002\";\n}\n.glyphicon-search:before {\n  content: \"\\e003\";\n}\n.glyphicon-heart:before {\n  content: \"\\e005\";\n}\n.glyphicon-star:before {\n  content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n  content: \"\\e007\";\n}\n.glyphicon-user:before {\n  content: \"\\e008\";\n}\n.glyphicon-film:before {\n  content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n  content: \"\\e010\";\n}\n.glyphicon-th:before {\n  content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n  content: \"\\e012\";\n}\n.glyphicon-ok:before {\n  content: \"\\e013\";\n}\n.glyphicon-remove:before {\n  content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n  content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n  content: \"\\e016\";\n}\n.glyphicon-off:before {\n  content: \"\\e017\";\n}\n.glyphicon-signal:before {\n  content: \"\\e018\";\n}\n.glyphicon-cog:before {\n  content: \"\\e019\";\n}\n.glyphicon-trash:before {\n  content: \"\\e020\";\n}\n.glyphicon-home:before {\n  content: \"\\e021\";\n}\n.glyphicon-file:before {\n  content: \"\\e022\";\n}\n.glyphicon-time:before {\n  content: \"\\e023\";\n}\n.glyphicon-road:before {\n  content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n  content: \"\\e025\";\n}\n.glyphicon-download:before {\n  content: \"\\e026\";\n}\n.glyphicon-upload:before {\n  content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n  content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n  content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n  content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n  content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n  content: \"\\e032\";\n}\n.glyphicon-lock:before {\n  content: \"\\e033\";\n}\n.glyphicon-flag:before {\n  content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n  content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n  content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n  content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n  content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n  content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n  content: \"\\e040\";\n}\n.glyphicon-tag:before {\n  content: \"\\e041\";\n}\n.glyphicon-tags:before {\n  content: \"\\e042\";\n}\n.glyphicon-book:before {\n  content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n  content: \"\\e044\";\n}\n.glyphicon-print:before {\n  content: \"\\e045\";\n}\n.glyphicon-camera:before {\n  content: \"\\e046\";\n}\n.glyphicon-font:before {\n  content: \"\\e047\";\n}\n.glyphicon-bold:before {\n  content: \"\\e048\";\n}\n.glyphicon-italic:before {\n  content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n  content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n  content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n  content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n  content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n  content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n  content: \"\\e055\";\n}\n.glyphicon-list:before {\n  content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n  content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n  content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n  content: \"\\e059\";\n}\n.glyphicon-picture:before {\n  content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n  content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n  content: \"\\e063\";\n}\n.glyphicon-tint:before {\n  content: \"\\e064\";\n}\n.glyphicon-edit:before {\n  content: \"\\e065\";\n}\n.glyphicon-share:before {\n  content: \"\\e066\";\n}\n.glyphicon-check:before {\n  content: \"\\e067\";\n}\n.glyphicon-move:before {\n  content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n  content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n  content: \"\\e070\";\n}\n.glyphicon-backward:before {\n  content: \"\\e071\";\n}\n.glyphicon-play:before {\n  content: \"\\e072\";\n}\n.glyphicon-pause:before {\n  content: \"\\e073\";\n}\n.glyphicon-stop:before {\n  content: \"\\e074\";\n}\n.glyphicon-forward:before {\n  content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n  content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n  content: \"\\e077\";\n}\n.glyphicon-eject:before {\n  content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n  content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n  content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n  content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n  content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n  content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n  content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n  content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n  content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n  content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n  content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n  content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n  content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n  content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n  content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n  content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n  content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n  content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n  content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n  content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n  content: \"\\e101\";\n}\n.glyphicon-gift:before {\n  content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n  content: \"\\e103\";\n}\n.glyphicon-fire:before {\n  content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n  content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n  content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n  content: \"\\e107\";\n}\n.glyphicon-plane:before {\n  content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n  content: \"\\e109\";\n}\n.glyphicon-random:before {\n  content: \"\\e110\";\n}\n.glyphicon-comment:before {\n  content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n  content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n  content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n  content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n  content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n  content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n  content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n  content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n  content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n  content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n  content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n  content: \"\\e122\";\n}\n.glyphicon-bell:before {\n  content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n  content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n  content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n  content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n  content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n  content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n  content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n  content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n  content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n  content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n  content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n  content: \"\\e134\";\n}\n.glyphicon-globe:before {\n  content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n  content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n  content: \"\\e137\";\n}\n.glyphicon-filter:before {\n  content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n  content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n  content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n  content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n  content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n  content: \"\\e143\";\n}\n.glyphicon-link:before {\n  content: \"\\e144\";\n}\n.glyphicon-phone:before {\n  content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n  content: \"\\e146\";\n}\n.glyphicon-usd:before {\n  content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n  content: \"\\e149\";\n}\n.glyphicon-sort:before {\n  content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n  content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n  content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n  content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n  content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n  content: \"\\e157\";\n}\n.glyphicon-expand:before {\n  content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n  content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n  content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n  content: \"\\e161\";\n}\n.glyphicon-flash:before {\n  content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n  content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n  content: \"\\e164\";\n}\n.glyphicon-record:before {\n  content: \"\\e165\";\n}\n.glyphicon-save:before {\n  content: \"\\e166\";\n}\n.glyphicon-open:before {\n  content: \"\\e167\";\n}\n.glyphicon-saved:before {\n  content: \"\\e168\";\n}\n.glyphicon-import:before {\n  content: \"\\e169\";\n}\n.glyphicon-export:before {\n  content: \"\\e170\";\n}\n.glyphicon-send:before {\n  content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n  content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n  content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n  content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n  content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n  content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n  content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n  content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n  content: \"\\e179\";\n}\n.glyphicon-header:before {\n  content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n  content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n  content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n  content: \"\\e183\";\n}\n.glyphicon-tower:before {\n  content: \"\\e184\";\n}\n.glyphicon-stats:before {\n  content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n  content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n  content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n  content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n  content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n  content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n  content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n  content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n  content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n  content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n  content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n  content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n  content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n  content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n  content: \"\\e200\";\n}\n.glyphicon-cd:before {\n  content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n  content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n  content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n  content: \"\\e204\";\n}\n.glyphicon-copy:before {\n  content: \"\\e205\";\n}\n.glyphicon-paste:before {\n  content: \"\\e206\";\n}\n.glyphicon-alert:before {\n  content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n  content: \"\\e210\";\n}\n.glyphicon-king:before {\n  content: \"\\e211\";\n}\n.glyphicon-queen:before {\n  content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n  content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n  content: \"\\e214\";\n}\n.glyphicon-knight:before {\n  content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n  content: \"\\e216\";\n}\n.glyphicon-tent:before {\n  content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n  content: \"\\e218\";\n}\n.glyphicon-bed:before {\n  content: \"\\e219\";\n}\n.glyphicon-apple:before {\n  content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n  content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n  content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n  content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n  content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n  content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n  content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n  content: \"\\e227\";\n}\n.glyphicon-btc:before {\n  content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n  content: \"\\e227\";\n}\n.glyphicon-yen:before {\n  content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n  content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n  content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n  content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n  content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n  content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n  content: \"\\e232\";\n}\n.glyphicon-education:before {\n  content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n  content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n  content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n  content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n  content: \"\\e237\";\n}\n.glyphicon-oil:before {\n  content: \"\\e238\";\n}\n.glyphicon-grain:before {\n  content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n  content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n  content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n  content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n  content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n  content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n  content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n  content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n  content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n  content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n  content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n  content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n  content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n  content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n  content: \"\\e253\";\n}\n.glyphicon-console:before {\n  content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n  content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n  content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n  content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n  content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n  content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n  content: \"\\e260\";\n}\n* {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #333333;\n  background-color: #ffffff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\na {\n  color: #337ab7;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: #23527c;\n  text-decoration: underline;\n}\na:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\nfigure {\n  margin: 0;\n}\nimg {\n  vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  max-width: 100%;\n  height: auto;\n}\n.img-rounded {\n  border-radius: 6px;\n}\n.img-thumbnail {\n  padding: 4px;\n  line-height: 1.42857143;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 4px;\n  -webkit-transition: all 0.2s ease-in-out;\n  -o-transition: all 0.2s ease-in-out;\n  transition: all 0.2s ease-in-out;\n  display: inline-block;\n  max-width: 100%;\n  height: auto;\n}\n.img-circle {\n  border-radius: 50%;\n}\nhr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eeeeee;\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n[role=\"button\"] {\n  cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n  font-weight: normal;\n  line-height: 1;\n  color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n  font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n  font-size: 75%;\n}\nh1,\n.h1 {\n  font-size: 36px;\n}\nh2,\n.h2 {\n  font-size: 30px;\n}\nh3,\n.h3 {\n  font-size: 24px;\n}\nh4,\n.h4 {\n  font-size: 18px;\n}\nh5,\n.h5 {\n  font-size: 14px;\n}\nh6,\n.h6 {\n  font-size: 12px;\n}\np {\n  margin: 0 0 10px;\n}\n.lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 1.4;\n}\n@media (min-width: 768px) {\n  .lead {\n    font-size: 21px;\n  }\n}\nsmall,\n.small {\n  font-size: 85%;\n}\nmark,\n.mark {\n  background-color: #fcf8e3;\n  padding: .2em;\n}\n.text-left {\n  text-align: left;\n}\n.text-right {\n  text-align: right;\n}\n.text-center {\n  text-align: center;\n}\n.text-justify {\n  text-align: justify;\n}\n.text-nowrap {\n  white-space: nowrap;\n}\n.text-lowercase {\n  text-transform: lowercase;\n}\n.text-uppercase {\n  text-transform: uppercase;\n}\n.text-capitalize {\n  text-transform: capitalize;\n}\n.text-muted {\n  color: #777777;\n}\n.text-primary {\n  color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n  color: #286090;\n}\n.text-success {\n  color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n  color: #2b542c;\n}\n.text-info {\n  color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n  color: #245269;\n}\n.text-warning {\n  color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n  color: #66512c;\n}\n.text-danger {\n  color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n  color: #843534;\n}\n.bg-primary {\n  color: #fff;\n  background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n  background-color: #286090;\n}\n.bg-success {\n  background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n  background-color: #c1e2b3;\n}\n.bg-info {\n  background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n  background-color: #afd9ee;\n}\n.bg-warning {\n  background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n  background-color: #f7ecb5;\n}\n.bg-danger {\n  background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n  background-color: #e4b9b9;\n}\n.page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n  margin-bottom: 0;\n}\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n  margin-left: -5px;\n}\n.list-inline > li {\n  display: inline-block;\n  padding-left: 5px;\n  padding-right: 5px;\n}\ndl {\n  margin-top: 0;\n  margin-bottom: 20px;\n}\ndt,\ndd {\n  line-height: 1.42857143;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0;\n}\n@media (min-width: 768px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    clear: left;\n    text-align: right;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .dl-horizontal dd {\n    margin-left: 180px;\n  }\n}\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777777;\n}\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\nblockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  font-size: 17.5px;\n  border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n  margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n  display: block;\n  font-size: 80%;\n  line-height: 1.42857143;\n  color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n  content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n  text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n  content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n  content: '\\00A0 \\2014';\n}\naddress {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  background-color: #f9f2f4;\n  border-radius: 4px;\n}\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #ffffff;\n  background-color: #333333;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: bold;\n  box-shadow: none;\n}\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: #333333;\n  background-color: #f5f5f5;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n}\npre code {\n  padding: 0;\n  font-size: inherit;\n  color: inherit;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border-radius: 0;\n}\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n@media (min-width: 768px) {\n  .container {\n    width: 750px;\n  }\n}\n@media (min-width: 992px) {\n  .container {\n    width: 970px;\n  }\n}\n@media (min-width: 1200px) {\n  .container {\n    width: 1170px;\n  }\n}\n.container-fluid {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.row {\n  margin-left: -15px;\n  margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n  position: relative;\n  min-height: 1px;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n  float: left;\n}\n.col-xs-12 {\n  width: 100%;\n}\n.col-xs-11 {\n  width: 91.66666667%;\n}\n.col-xs-10 {\n  width: 83.33333333%;\n}\n.col-xs-9 {\n  width: 75%;\n}\n.col-xs-8 {\n  width: 66.66666667%;\n}\n.col-xs-7 {\n  width: 58.33333333%;\n}\n.col-xs-6 {\n  width: 50%;\n}\n.col-xs-5 {\n  width: 41.66666667%;\n}\n.col-xs-4 {\n  width: 33.33333333%;\n}\n.col-xs-3 {\n  width: 25%;\n}\n.col-xs-2 {\n  width: 16.66666667%;\n}\n.col-xs-1 {\n  width: 8.33333333%;\n}\n.col-xs-pull-12 {\n  right: 100%;\n}\n.col-xs-pull-11 {\n  right: 91.66666667%;\n}\n.col-xs-pull-10 {\n  right: 83.33333333%;\n}\n.col-xs-pull-9 {\n  right: 75%;\n}\n.col-xs-pull-8 {\n  right: 66.66666667%;\n}\n.col-xs-pull-7 {\n  right: 58.33333333%;\n}\n.col-xs-pull-6 {\n  right: 50%;\n}\n.col-xs-pull-5 {\n  right: 41.66666667%;\n}\n.col-xs-pull-4 {\n  right: 33.33333333%;\n}\n.col-xs-pull-3 {\n  right: 25%;\n}\n.col-xs-pull-2 {\n  right: 16.66666667%;\n}\n.col-xs-pull-1 {\n  right: 8.33333333%;\n}\n.col-xs-pull-0 {\n  right: auto;\n}\n.col-xs-push-12 {\n  left: 100%;\n}\n.col-xs-push-11 {\n  left: 91.66666667%;\n}\n.col-xs-push-10 {\n  left: 83.33333333%;\n}\n.col-xs-push-9 {\n  left: 75%;\n}\n.col-xs-push-8 {\n  left: 66.66666667%;\n}\n.col-xs-push-7 {\n  left: 58.33333333%;\n}\n.col-xs-push-6 {\n  left: 50%;\n}\n.col-xs-push-5 {\n  left: 41.66666667%;\n}\n.col-xs-push-4 {\n  left: 33.33333333%;\n}\n.col-xs-push-3 {\n  left: 25%;\n}\n.col-xs-push-2 {\n  left: 16.66666667%;\n}\n.col-xs-push-1 {\n  left: 8.33333333%;\n}\n.col-xs-push-0 {\n  left: auto;\n}\n.col-xs-offset-12 {\n  margin-left: 100%;\n}\n.col-xs-offset-11 {\n  margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n  margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n  margin-left: 75%;\n}\n.col-xs-offset-8 {\n  margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n  margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n  margin-left: 50%;\n}\n.col-xs-offset-5 {\n  margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n  margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n  margin-left: 25%;\n}\n.col-xs-offset-2 {\n  margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n  margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n  margin-left: 0%;\n}\n@media (min-width: 768px) {\n  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n    float: left;\n  }\n  .col-sm-12 {\n    width: 100%;\n  }\n  .col-sm-11 {\n    width: 91.66666667%;\n  }\n  .col-sm-10 {\n    width: 83.33333333%;\n  }\n  .col-sm-9 {\n    width: 75%;\n  }\n  .col-sm-8 {\n    width: 66.66666667%;\n  }\n  .col-sm-7 {\n    width: 58.33333333%;\n  }\n  .col-sm-6 {\n    width: 50%;\n  }\n  .col-sm-5 {\n    width: 41.66666667%;\n  }\n  .col-sm-4 {\n    width: 33.33333333%;\n  }\n  .col-sm-3 {\n    width: 25%;\n  }\n  .col-sm-2 {\n    width: 16.66666667%;\n  }\n  .col-sm-1 {\n    width: 8.33333333%;\n  }\n  .col-sm-pull-12 {\n    right: 100%;\n  }\n  .col-sm-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-sm-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-sm-pull-9 {\n    right: 75%;\n  }\n  .col-sm-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-sm-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-sm-pull-6 {\n    right: 50%;\n  }\n  .col-sm-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-sm-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-sm-pull-3 {\n    right: 25%;\n  }\n  .col-sm-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-sm-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-sm-pull-0 {\n    right: auto;\n  }\n  .col-sm-push-12 {\n    left: 100%;\n  }\n  .col-sm-push-11 {\n    left: 91.66666667%;\n  }\n  .col-sm-push-10 {\n    left: 83.33333333%;\n  }\n  .col-sm-push-9 {\n    left: 75%;\n  }\n  .col-sm-push-8 {\n    left: 66.66666667%;\n  }\n  .col-sm-push-7 {\n    left: 58.33333333%;\n  }\n  .col-sm-push-6 {\n    left: 50%;\n  }\n  .col-sm-push-5 {\n    left: 41.66666667%;\n  }\n  .col-sm-push-4 {\n    left: 33.33333333%;\n  }\n  .col-sm-push-3 {\n    left: 25%;\n  }\n  .col-sm-push-2 {\n    left: 16.66666667%;\n  }\n  .col-sm-push-1 {\n    left: 8.33333333%;\n  }\n  .col-sm-push-0 {\n    left: auto;\n  }\n  .col-sm-offset-12 {\n    margin-left: 100%;\n  }\n  .col-sm-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-sm-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-sm-offset-9 {\n    margin-left: 75%;\n  }\n  .col-sm-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-sm-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-sm-offset-6 {\n    margin-left: 50%;\n  }\n  .col-sm-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-sm-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-sm-offset-3 {\n    margin-left: 25%;\n  }\n  .col-sm-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-sm-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-sm-offset-0 {\n    margin-left: 0%;\n  }\n}\n@media (min-width: 992px) {\n  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n    float: left;\n  }\n  .col-md-12 {\n    width: 100%;\n  }\n  .col-md-11 {\n    width: 91.66666667%;\n  }\n  .col-md-10 {\n    width: 83.33333333%;\n  }\n  .col-md-9 {\n    width: 75%;\n  }\n  .col-md-8 {\n    width: 66.66666667%;\n  }\n  .col-md-7 {\n    width: 58.33333333%;\n  }\n  .col-md-6 {\n    width: 50%;\n  }\n  .col-md-5 {\n    width: 41.66666667%;\n  }\n  .col-md-4 {\n    width: 33.33333333%;\n  }\n  .col-md-3 {\n    width: 25%;\n  }\n  .col-md-2 {\n    width: 16.66666667%;\n  }\n  .col-md-1 {\n    width: 8.33333333%;\n  }\n  .col-md-pull-12 {\n    right: 100%;\n  }\n  .col-md-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-md-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-md-pull-9 {\n    right: 75%;\n  }\n  .col-md-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-md-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-md-pull-6 {\n    right: 50%;\n  }\n  .col-md-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-md-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-md-pull-3 {\n    right: 25%;\n  }\n  .col-md-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-md-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-md-pull-0 {\n    right: auto;\n  }\n  .col-md-push-12 {\n    left: 100%;\n  }\n  .col-md-push-11 {\n    left: 91.66666667%;\n  }\n  .col-md-push-10 {\n    left: 83.33333333%;\n  }\n  .col-md-push-9 {\n    left: 75%;\n  }\n  .col-md-push-8 {\n    left: 66.66666667%;\n  }\n  .col-md-push-7 {\n    left: 58.33333333%;\n  }\n  .col-md-push-6 {\n    left: 50%;\n  }\n  .col-md-push-5 {\n    left: 41.66666667%;\n  }\n  .col-md-push-4 {\n    left: 33.33333333%;\n  }\n  .col-md-push-3 {\n    left: 25%;\n  }\n  .col-md-push-2 {\n    left: 16.66666667%;\n  }\n  .col-md-push-1 {\n    left: 8.33333333%;\n  }\n  .col-md-push-0 {\n    left: auto;\n  }\n  .col-md-offset-12 {\n    margin-left: 100%;\n  }\n  .col-md-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-md-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-md-offset-9 {\n    margin-left: 75%;\n  }\n  .col-md-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-md-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-md-offset-6 {\n    margin-left: 50%;\n  }\n  .col-md-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-md-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-md-offset-3 {\n    margin-left: 25%;\n  }\n  .col-md-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-md-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-md-offset-0 {\n    margin-left: 0%;\n  }\n}\n@media (min-width: 1200px) {\n  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n    float: left;\n  }\n  .col-lg-12 {\n    width: 100%;\n  }\n  .col-lg-11 {\n    width: 91.66666667%;\n  }\n  .col-lg-10 {\n    width: 83.33333333%;\n  }\n  .col-lg-9 {\n    width: 75%;\n  }\n  .col-lg-8 {\n    width: 66.66666667%;\n  }\n  .col-lg-7 {\n    width: 58.33333333%;\n  }\n  .col-lg-6 {\n    width: 50%;\n  }\n  .col-lg-5 {\n    width: 41.66666667%;\n  }\n  .col-lg-4 {\n    width: 33.33333333%;\n  }\n  .col-lg-3 {\n    width: 25%;\n  }\n  .col-lg-2 {\n    width: 16.66666667%;\n  }\n  .col-lg-1 {\n    width: 8.33333333%;\n  }\n  .col-lg-pull-12 {\n    right: 100%;\n  }\n  .col-lg-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-lg-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-lg-pull-9 {\n    right: 75%;\n  }\n  .col-lg-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-lg-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-lg-pull-6 {\n    right: 50%;\n  }\n  .col-lg-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-lg-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-lg-pull-3 {\n    right: 25%;\n  }\n  .col-lg-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-lg-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-lg-pull-0 {\n    right: auto;\n  }\n  .col-lg-push-12 {\n    left: 100%;\n  }\n  .col-lg-push-11 {\n    left: 91.66666667%;\n  }\n  .col-lg-push-10 {\n    left: 83.33333333%;\n  }\n  .col-lg-push-9 {\n    left: 75%;\n  }\n  .col-lg-push-8 {\n    left: 66.66666667%;\n  }\n  .col-lg-push-7 {\n    left: 58.33333333%;\n  }\n  .col-lg-push-6 {\n    left: 50%;\n  }\n  .col-lg-push-5 {\n    left: 41.66666667%;\n  }\n  .col-lg-push-4 {\n    left: 33.33333333%;\n  }\n  .col-lg-push-3 {\n    left: 25%;\n  }\n  .col-lg-push-2 {\n    left: 16.66666667%;\n  }\n  .col-lg-push-1 {\n    left: 8.33333333%;\n  }\n  .col-lg-push-0 {\n    left: auto;\n  }\n  .col-lg-offset-12 {\n    margin-left: 100%;\n  }\n  .col-lg-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-lg-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-lg-offset-9 {\n    margin-left: 75%;\n  }\n  .col-lg-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-lg-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-lg-offset-6 {\n    margin-left: 50%;\n  }\n  .col-lg-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-lg-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-lg-offset-3 {\n    margin-left: 25%;\n  }\n  .col-lg-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-lg-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-lg-offset-0 {\n    margin-left: 0%;\n  }\n}\ntable {\n  background-color: transparent;\n}\ncaption {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  color: #777777;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n  padding: 8px;\n  line-height: 1.42857143;\n  vertical-align: top;\n  border-top: 1px solid #dddddd;\n}\n.table > thead > tr > th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dddddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n  border-top: 0;\n}\n.table > tbody + tbody {\n  border-top: 2px solid #dddddd;\n}\n.table .table {\n  background-color: #ffffff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n  padding: 5px;\n}\n.table-bordered {\n  border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n  border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n  border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n  background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n  background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n  background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n  background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n  background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n  background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n  background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n  background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n  background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #ebcccc;\n}\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n  .table-responsive {\n    width: 100%;\n    margin-bottom: 15px;\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid #dddddd;\n  }\n  .table-responsive > .table {\n    margin-bottom: 0;\n  }\n  .table-responsive > .table > thead > tr > th,\n  .table-responsive > .table > tbody > tr > th,\n  .table-responsive > .table > tfoot > tr > th,\n  .table-responsive > .table > thead > tr > td,\n  .table-responsive > .table > tbody > tr > td,\n  .table-responsive > .table > tfoot > tr > td {\n    white-space: nowrap;\n  }\n  .table-responsive > .table-bordered {\n    border: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0;\n  }\n  .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n  .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n    border-bottom: 0;\n  }\n}\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  min-width: 0;\n}\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #333333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal;\n}\ninput[type=\"file\"] {\n  display: block;\n}\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\nselect[multiple],\nselect[size] {\n  height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555555;\n}\n.form-control {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555555;\n  background-color: #ffffff;\n  background-image: none;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n  color: #999999;\n  opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n  color: #999999;\n}\n.form-control::-webkit-input-placeholder {\n  color: #999999;\n}\n.form-control::-ms-expand {\n  border: 0;\n  background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n  background-color: #eeeeee;\n  opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n  cursor: not-allowed;\n}\ntextarea.form-control {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"].form-control,\n  input[type=\"time\"].form-control,\n  input[type=\"datetime-local\"].form-control,\n  input[type=\"month\"].form-control {\n    line-height: 34px;\n  }\n  input[type=\"date\"].input-sm,\n  input[type=\"time\"].input-sm,\n  input[type=\"datetime-local\"].input-sm,\n  input[type=\"month\"].input-sm,\n  .input-group-sm input[type=\"date\"],\n  .input-group-sm input[type=\"time\"],\n  .input-group-sm input[type=\"datetime-local\"],\n  .input-group-sm input[type=\"month\"] {\n    line-height: 30px;\n  }\n  input[type=\"date\"].input-lg,\n  input[type=\"time\"].input-lg,\n  input[type=\"datetime-local\"].input-lg,\n  input[type=\"month\"].input-lg,\n  .input-group-lg input[type=\"date\"],\n  .input-group-lg input[type=\"time\"],\n  .input-group-lg input[type=\"datetime-local\"],\n  .input-group-lg input[type=\"month\"] {\n    line-height: 46px;\n  }\n}\n.form-group {\n  margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n  min-height: 20px;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n  cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n  cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n  cursor: not-allowed;\n}\n.form-control-static {\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n  min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n  padding-left: 0;\n  padding-right: 0;\n}\n.input-sm {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-sm {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n  height: auto;\n}\n.form-group-sm .form-control {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.form-group-sm select.form-control {\n  height: 30px;\n  line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n  height: auto;\n}\n.form-group-sm .form-control-static {\n  height: 30px;\n  min-height: 32px;\n  padding: 6px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.input-lg {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\nselect.input-lg {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n  height: auto;\n}\n.form-group-lg .form-control {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\n.form-group-lg select.form-control {\n  height: 46px;\n  line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n  height: auto;\n}\n.form-group-lg .form-control-static {\n  height: 46px;\n  min-height: 38px;\n  padding: 11px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.has-feedback {\n  position: relative;\n}\n.has-feedback .form-control {\n  padding-right: 42.5px;\n}\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 34px;\n  height: 34px;\n  line-height: 34px;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: 46px;\n  height: 46px;\n  line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n  color: #3c763d;\n}\n.has-success .form-control {\n  border-color: #3c763d;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n  border-color: #2b542c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n  color: #3c763d;\n  border-color: #3c763d;\n  background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n  color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n  color: #8a6d3b;\n}\n.has-warning .form-control {\n  border-color: #8a6d3b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n  border-color: #66512c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n  color: #8a6d3b;\n  border-color: #8a6d3b;\n  background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n  color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n  color: #a94442;\n}\n.has-error .form-control {\n  border-color: #a94442;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n  border-color: #843534;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n  color: #a94442;\n  border-color: #a94442;\n  background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n  color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n  top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n  top: 0;\n}\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373;\n}\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-static {\n    display: inline-block;\n  }\n  .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .form-inline .input-group .input-group-addon,\n  .form-inline .input-group .input-group-btn,\n  .form-inline .input-group .form-control {\n    width: auto;\n  }\n  .form-inline .input-group > .form-control {\n    width: 100%;\n  }\n  .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio label,\n  .form-inline .checkbox label {\n    padding-left: 0;\n  }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  margin-top: 0;\n  margin-bottom: 0;\n  padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n  min-height: 27px;\n}\n.form-horizontal .form-group {\n  margin-left: -15px;\n  margin-right: -15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    text-align: right;\n    margin-bottom: 0;\n    padding-top: 7px;\n  }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n  right: 15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-lg .control-label {\n    padding-top: 14.333333px;\n    font-size: 18px;\n  }\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n    font-size: 12px;\n  }\n}\n.btn {\n  display: inline-block;\n  margin-bottom: 0;\n  font-weight: normal;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  border-radius: 4px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n  color: #333333;\n  text-decoration: none;\n}\n.btn:active,\n.btn.active {\n  outline: 0;\n  background-image: none;\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n  cursor: not-allowed;\n  opacity: 0.65;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n  pointer-events: none;\n}\n.btn-default {\n  color: #333333;\n  background-color: #ffffff;\n  border-color: #cccccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n  color: #333333;\n  background-color: #e6e6e6;\n  border-color: #8c8c8c;\n}\n.btn-default:hover {\n  color: #333333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  color: #333333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n  color: #333333;\n  background-color: #d4d4d4;\n  border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n  background-color: #ffffff;\n  border-color: #cccccc;\n}\n.btn-default .badge {\n  color: #ffffff;\n  background-color: #333333;\n}\n.btn-primary {\n  color: #ffffff;\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n  color: #ffffff;\n  background-color: #286090;\n  border-color: #122b40;\n}\n.btn-primary:hover {\n  color: #ffffff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  color: #ffffff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n  color: #ffffff;\n  background-color: #204d74;\n  border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary .badge {\n  color: #337ab7;\n  background-color: #ffffff;\n}\n.btn-success {\n  color: #ffffff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n  color: #ffffff;\n  background-color: #449d44;\n  border-color: #255625;\n}\n.btn-success:hover {\n  color: #ffffff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  color: #ffffff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n  color: #ffffff;\n  background-color: #398439;\n  border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success .badge {\n  color: #5cb85c;\n  background-color: #ffffff;\n}\n.btn-info {\n  color: #ffffff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n  color: #ffffff;\n  background-color: #31b0d5;\n  border-color: #1b6d85;\n}\n.btn-info:hover {\n  color: #ffffff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  color: #ffffff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n  color: #ffffff;\n  background-color: #269abc;\n  border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info .badge {\n  color: #5bc0de;\n  background-color: #ffffff;\n}\n.btn-warning {\n  color: #ffffff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n  color: #ffffff;\n  background-color: #ec971f;\n  border-color: #985f0d;\n}\n.btn-warning:hover {\n  color: #ffffff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  color: #ffffff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n  color: #ffffff;\n  background-color: #d58512;\n  border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning .badge {\n  color: #f0ad4e;\n  background-color: #ffffff;\n}\n.btn-danger {\n  color: #ffffff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n  color: #ffffff;\n  background-color: #c9302c;\n  border-color: #761c19;\n}\n.btn-danger:hover {\n  color: #ffffff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  color: #ffffff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n  color: #ffffff;\n  background-color: #ac2925;\n  border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger .badge {\n  color: #d9534f;\n  background-color: #ffffff;\n}\n.btn-link {\n  color: #337ab7;\n  font-weight: normal;\n  border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n  background-color: transparent;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n  border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n  color: #23527c;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n  color: #777777;\n  text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-block {\n  display: block;\n  width: 100%;\n}\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n  -o-transition: opacity 0.15s linear;\n  transition: opacity 0.15s linear;\n}\n.fade.in {\n  opacity: 1;\n}\n.collapse {\n  display: none;\n}\n.collapse.in {\n  display: block;\n}\ntr.collapse.in {\n  display: table-row;\n}\ntbody.collapse.in {\n  display: table-row-group;\n}\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition-property: height, visibility;\n  transition-property: height, visibility;\n  -webkit-transition-duration: 0.35s;\n  transition-duration: 0.35s;\n  -webkit-transition-timing-function: ease;\n  transition-timing-function: ease;\n}\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px dashed;\n  border-top: 4px solid \\9;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n  position: relative;\n}\n.dropdown-toggle:focus {\n  outline: 0;\n}\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  list-style: none;\n  font-size: 14px;\n  text-align: left;\n  background-color: #ffffff;\n  border: 1px solid #cccccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 4px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n.dropdown-menu .divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 1.42857143;\n  color: #333333;\n  white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  text-decoration: none;\n  color: #262626;\n  background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #ffffff;\n  text-decoration: none;\n  outline: 0;\n  background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  cursor: not-allowed;\n}\n.open > .dropdown-menu {\n  display: block;\n}\n.open > a {\n  outline: 0;\n}\n.dropdown-menu-right {\n  left: auto;\n  right: 0;\n}\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.42857143;\n  color: #777777;\n  white-space: nowrap;\n}\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: 990;\n}\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0;\n  border-bottom: 4px dashed;\n  border-bottom: 4px solid \\9;\n  content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n  .navbar-right .dropdown-menu {\n    left: auto;\n    right: 0;\n  }\n  .navbar-right .dropdown-menu-left {\n    left: 0;\n    right: auto;\n  }\n}\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n  z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px;\n}\n.btn-toolbar {\n  margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n  float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n  margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn .caret {\n  margin-left: 0;\n}\n.btn-lg .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n  border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n  float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-bottom-left-radius: 4px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n  float: none;\n  display: table-cell;\n  width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n  width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n  left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n  float: none;\n  padding-left: 0;\n  padding-right: 0;\n}\n.input-group .form-control {\n  position: relative;\n  z-index: 2;\n  float: left;\n  width: 100%;\n  margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555555;\n  text-align: center;\n  background-color: #eeeeee;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n}\n.input-group-addon.input-sm {\n  padding: 5px 10px;\n  font-size: 12px;\n  border-radius: 3px;\n}\n.input-group-addon.input-lg {\n  padding: 10px 16px;\n  font-size: 18px;\n  border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap;\n}\n.input-group-btn > .btn {\n  position: relative;\n}\n.input-group-btn > .btn + .btn {\n  margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n  z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n  margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n  z-index: 2;\n  margin-left: -1px;\n}\n.nav {\n  margin-bottom: 0;\n  padding-left: 0;\n  list-style: none;\n}\n.nav > li {\n  position: relative;\n  display: block;\n}\n.nav > li > a {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n  color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n  color: #777777;\n  text-decoration: none;\n  background-color: transparent;\n  cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n  background-color: #eeeeee;\n  border-color: #337ab7;\n}\n.nav .nav-divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.nav > li > a > img {\n  max-width: none;\n}\n.nav-tabs {\n  border-bottom: 1px solid #dddddd;\n}\n.nav-tabs > li {\n  float: left;\n  margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n  margin-right: 2px;\n  line-height: 1.42857143;\n  border: 1px solid transparent;\n  border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n  border-color: #eeeeee #eeeeee #dddddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n  color: #555555;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-bottom-color: transparent;\n  cursor: default;\n}\n.nav-tabs.nav-justified {\n  width: 100%;\n  border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n  float: none;\n}\n.nav-tabs.nav-justified > li > a {\n  text-align: center;\n  margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-tabs.nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs.nav-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n  border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li > a {\n    border-bottom: 1px solid #dddddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs.nav-justified > .active > a,\n  .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs.nav-justified > .active > a:focus {\n    border-bottom-color: #ffffff;\n  }\n}\n.nav-pills > li {\n  float: left;\n}\n.nav-pills > li > a {\n  border-radius: 4px;\n}\n.nav-pills > li + li {\n  margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n  color: #ffffff;\n  background-color: #337ab7;\n}\n.nav-stacked > li {\n  float: none;\n}\n.nav-stacked > li + li {\n  margin-top: 2px;\n  margin-left: 0;\n}\n.nav-justified {\n  width: 100%;\n}\n.nav-justified > li {\n  float: none;\n}\n.nav-justified > li > a {\n  text-align: center;\n  margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs-justified {\n  border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n  border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs-justified > li > a {\n    border-bottom: 1px solid #dddddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus {\n    border-bottom-color: #ffffff;\n  }\n}\n.tab-content > .tab-pane {\n  display: none;\n}\n.tab-content > .active {\n  display: block;\n}\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.navbar {\n  position: relative;\n  min-height: 50px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n  .navbar {\n    border-radius: 4px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-header {\n    float: left;\n  }\n}\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: 15px;\n  padding-left: 15px;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n  -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n  overflow-y: auto;\n}\n@media (min-width: 768px) {\n  .navbar-collapse {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n  }\n  .navbar-collapse.collapse {\n    display: block !important;\n    height: auto !important;\n    padding-bottom: 0;\n    overflow: visible !important;\n  }\n  .navbar-collapse.in {\n    overflow-y: visible;\n  }\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-static-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n  max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    max-height: 200px;\n  }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n@media (min-width: 768px) {\n  .container > .navbar-header,\n  .container-fluid > .navbar-header,\n  .container > .navbar-collapse,\n  .container-fluid > .navbar-collapse {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n.navbar-static-top {\n  z-index: 1000;\n  border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n  .navbar-static-top {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n@media (min-width: 768px) {\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0;\n}\n.navbar-brand {\n  float: left;\n  padding: 15px 15px;\n  font-size: 18px;\n  line-height: 20px;\n  height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n  text-decoration: none;\n}\n.navbar-brand > img {\n  display: block;\n}\n@media (min-width: 768px) {\n  .navbar > .container .navbar-brand,\n  .navbar > .container-fluid .navbar-brand {\n    margin-left: -15px;\n  }\n}\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: 15px;\n  padding: 9px 10px;\n  margin-top: 8px;\n  margin-bottom: 8px;\n  background-color: transparent;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.navbar-toggle:focus {\n  outline: 0;\n}\n.navbar-toggle .icon-bar {\n  display: block;\n  width: 22px;\n  height: 2px;\n  border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n  margin-top: 4px;\n}\n@media (min-width: 768px) {\n  .navbar-toggle {\n    display: none;\n  }\n}\n.navbar-nav {\n  margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n  padding-top: 10px;\n  padding-bottom: 10px;\n  line-height: 20px;\n}\n@media (max-width: 767px) {\n  .navbar-nav .open .dropdown-menu {\n    position: static;\n    float: none;\n    width: auto;\n    margin-top: 0;\n    background-color: transparent;\n    border: 0;\n    box-shadow: none;\n  }\n  .navbar-nav .open .dropdown-menu > li > a,\n  .navbar-nav .open .dropdown-menu .dropdown-header {\n    padding: 5px 15px 5px 25px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a {\n    line-height: 20px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-nav .open .dropdown-menu > li > a:focus {\n    background-image: none;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-nav {\n    float: left;\n    margin: 0;\n  }\n  .navbar-nav > li {\n    float: left;\n  }\n  .navbar-nav > li > a {\n    padding-top: 15px;\n    padding-bottom: 15px;\n  }\n}\n.navbar-form {\n  margin-left: -15px;\n  margin-right: -15px;\n  padding: 10px 15px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n  .navbar-form .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control-static {\n    display: inline-block;\n  }\n  .navbar-form .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .navbar-form .input-group .input-group-addon,\n  .navbar-form .input-group .input-group-btn,\n  .navbar-form .input-group .form-control {\n    width: auto;\n  }\n  .navbar-form .input-group > .form-control {\n    width: 100%;\n  }\n  .navbar-form .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio,\n  .navbar-form .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio label,\n  .navbar-form .checkbox label {\n    padding-left: 0;\n  }\n  .navbar-form .radio input[type=\"radio\"],\n  .navbar-form .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .navbar-form .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n@media (max-width: 767px) {\n  .navbar-form .form-group {\n    margin-bottom: 5px;\n  }\n  .navbar-form .form-group:last-child {\n    margin-bottom: 0;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-form {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    -webkit-box-shadow: none;\n    box-shadow: none;\n  }\n}\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.navbar-btn {\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n  margin-top: 14px;\n  margin-bottom: 14px;\n}\n.navbar-text {\n  margin-top: 15px;\n  margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n  .navbar-text {\n    float: left;\n    margin-left: 15px;\n    margin-right: 15px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n    margin-right: -15px;\n  }\n  .navbar-right ~ .navbar-right {\n    margin-right: 0;\n  }\n}\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n  color: #777777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n  color: #5e5e5e;\n  background-color: transparent;\n}\n.navbar-default .navbar-text {\n  color: #777777;\n}\n.navbar-default .navbar-nav > li > a {\n  color: #777777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n  color: #333333;\n  background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n  color: #555555;\n  background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n  color: #cccccc;\n  background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n  border-color: #dddddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n  background-color: #dddddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n  background-color: #888888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n  background-color: #e7e7e7;\n  color: #555555;\n}\n@media (max-width: 767px) {\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n    color: #777777;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #333333;\n    background-color: transparent;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #555555;\n    background-color: #e7e7e7;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #cccccc;\n    background-color: transparent;\n  }\n}\n.navbar-default .navbar-link {\n  color: #777777;\n}\n.navbar-default .navbar-link:hover {\n  color: #333333;\n}\n.navbar-default .btn-link {\n  color: #777777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n  color: #333333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n  color: #cccccc;\n}\n.navbar-inverse {\n  background-color: #222222;\n  border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n  color: #ffffff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n  color: #ffffff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n  color: #ffffff;\n  background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n  color: #444444;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n  border-color: #333333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n  background-color: #333333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n  background-color: #ffffff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n  border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n  background-color: #080808;\n  color: #ffffff;\n}\n@media (max-width: 767px) {\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n    border-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n    color: #9d9d9d;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #ffffff;\n    background-color: transparent;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #ffffff;\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #444444;\n    background-color: transparent;\n  }\n}\n.navbar-inverse .navbar-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n  color: #ffffff;\n}\n.navbar-inverse .btn-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n  color: #ffffff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n  color: #444444;\n}\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n}\n.breadcrumb > li {\n  display: inline-block;\n}\n.breadcrumb > li + li:before {\n  content: \"/\\00a0\";\n  padding: 0 5px;\n  color: #cccccc;\n}\n.breadcrumb > .active {\n  color: #777777;\n}\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 20px 0;\n  border-radius: 4px;\n}\n.pagination > li {\n  display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n  position: relative;\n  float: left;\n  padding: 6px 12px;\n  line-height: 1.42857143;\n  text-decoration: none;\n  color: #337ab7;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n  margin-left: 0;\n  border-bottom-left-radius: 4px;\n  border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n  border-bottom-right-radius: 4px;\n  border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n  z-index: 2;\n  color: #23527c;\n  background-color: #eeeeee;\n  border-color: #dddddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n  z-index: 3;\n  color: #ffffff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n  cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n  color: #777777;\n  background-color: #ffffff;\n  border-color: #dddddd;\n  cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-bottom-left-radius: 6px;\n  border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-bottom-right-radius: 6px;\n  border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.pager {\n  padding-left: 0;\n  margin: 20px 0;\n  list-style: none;\n  text-align: center;\n}\n.pager li {\n  display: inline;\n}\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #777777;\n  background-color: #ffffff;\n  cursor: not-allowed;\n}\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #ffffff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n  color: #ffffff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.label:empty {\n  display: none;\n}\n.btn .label {\n  position: relative;\n  top: -1px;\n}\n.label-default {\n  background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n  background-color: #5e5e5e;\n}\n.label-primary {\n  background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n  background-color: #286090;\n}\n.label-success {\n  background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n  background-color: #449d44;\n}\n.label-info {\n  background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n  background-color: #31b0d5;\n}\n.label-warning {\n  background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n  background-color: #ec971f;\n}\n.label-danger {\n  background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n  background-color: #c9302c;\n}\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  color: #ffffff;\n  line-height: 1;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: #777777;\n  border-radius: 10px;\n}\n.badge:empty {\n  display: none;\n}\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n  top: 0;\n  padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n  color: #ffffff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n  color: #337ab7;\n  background-color: #ffffff;\n}\n.list-group-item > .badge {\n  float: right;\n}\n.list-group-item > .badge + .badge {\n  margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n  margin-left: 3px;\n}\n.jumbotron {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  margin-bottom: 30px;\n  color: inherit;\n  background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n  color: inherit;\n}\n.jumbotron p {\n  margin-bottom: 15px;\n  font-size: 21px;\n  font-weight: 200;\n}\n.jumbotron > hr {\n  border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n  border-radius: 6px;\n}\n.jumbotron .container {\n  max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n  .jumbotron {\n    padding-top: 48px;\n    padding-bottom: 48px;\n  }\n  .container .jumbotron,\n  .container-fluid .jumbotron {\n    padding-left: 60px;\n    padding-right: 60px;\n  }\n  .jumbotron h1,\n  .jumbotron .h1 {\n    font-size: 63px;\n  }\n}\n.thumbnail {\n  display: block;\n  padding: 4px;\n  margin-bottom: 20px;\n  line-height: 1.42857143;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 4px;\n  -webkit-transition: border 0.2s ease-in-out;\n  -o-transition: border 0.2s ease-in-out;\n  transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n  margin-left: auto;\n  margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #337ab7;\n}\n.thumbnail .caption {\n  padding: 9px;\n  color: #333333;\n}\n.alert {\n  padding: 15px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.alert h4 {\n  margin-top: 0;\n  color: inherit;\n}\n.alert .alert-link {\n  font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n  margin-bottom: 0;\n}\n.alert > p + p {\n  margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  color: inherit;\n}\n.alert-success {\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n  color: #3c763d;\n}\n.alert-success hr {\n  border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n  color: #2b542c;\n}\n.alert-info {\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n  color: #31708f;\n}\n.alert-info hr {\n  border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n  color: #245269;\n}\n.alert-warning {\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n  color: #8a6d3b;\n}\n.alert-warning hr {\n  border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n  color: #66512c;\n}\n.alert-danger {\n  background-color: #f2dede;\n  border-color: #ebccd1;\n  color: #a94442;\n}\n.alert-danger hr {\n  border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n  color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n.progress {\n  overflow: hidden;\n  height: 20px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: 12px;\n  line-height: 20px;\n  color: #ffffff;\n  text-align: center;\n  background-color: #337ab7;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-transition: width 0.6s ease;\n  -o-transition: width 0.6s ease;\n  transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n  -o-animation: progress-bar-stripes 2s linear infinite;\n  animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n  background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n  background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n  background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n  background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n.media,\n.media-body {\n  zoom: 1;\n  overflow: hidden;\n}\n.media-body {\n  width: 10000px;\n}\n.media-object {\n  display: block;\n}\n.media-object.img-thumbnail {\n  max-width: none;\n}\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n.media-middle {\n  vertical-align: middle;\n}\n.media-bottom {\n  vertical-align: bottom;\n}\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n.list-group {\n  margin-bottom: 20px;\n  padding-left: 0;\n}\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n}\n.list-group-item:first-child {\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n  color: #555555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n  color: #333333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n  text-decoration: none;\n  color: #555555;\n  background-color: #f5f5f5;\n}\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n  background-color: #eeeeee;\n  color: #777777;\n  cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n  color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n  color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  z-index: 2;\n  color: #ffffff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n  color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n  color: #c7ddef;\n}\n.list-group-item-success {\n  color: #3c763d;\n  background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n  color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n  color: #3c763d;\n  background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n  color: #fff;\n  background-color: #3c763d;\n  border-color: #3c763d;\n}\n.list-group-item-info {\n  color: #31708f;\n  background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n  color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n  color: #31708f;\n  background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n  color: #fff;\n  background-color: #31708f;\n  border-color: #31708f;\n}\n.list-group-item-warning {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n  color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n  color: #8a6d3b;\n  background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n  color: #fff;\n  background-color: #8a6d3b;\n  border-color: #8a6d3b;\n}\n.list-group-item-danger {\n  color: #a94442;\n  background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n  color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n  color: #a94442;\n  background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n  color: #fff;\n  background-color: #a94442;\n  border-color: #a94442;\n}\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n.panel {\n  margin-bottom: 20px;\n  background-color: #ffffff;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n  padding: 15px;\n}\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n  color: inherit;\n}\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 16px;\n  color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n  color: inherit;\n}\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #dddddd;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n  margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n  border-width: 1px 0;\n  border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n  border-top: 0;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n  border-bottom: 0;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0;\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n  margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n  border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n  border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n  border-bottom-left-radius: 3px;\n  border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n  border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n  border-top: 1px solid #dddddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n  border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n  border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n  border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n  border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n  border-bottom: 0;\n}\n.panel > .table-responsive {\n  border: 0;\n  margin-bottom: 0;\n}\n.panel-group {\n  margin-bottom: 20px;\n}\n.panel-group .panel {\n  margin-bottom: 0;\n  border-radius: 4px;\n}\n.panel-group .panel + .panel {\n  margin-top: 5px;\n}\n.panel-group .panel-heading {\n  border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n  border-top: 1px solid #dddddd;\n}\n.panel-group .panel-footer {\n  border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n  border-bottom: 1px solid #dddddd;\n}\n.panel-default {\n  border-color: #dddddd;\n}\n.panel-default > .panel-heading {\n  color: #333333;\n  background-color: #f5f5f5;\n  border-color: #dddddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #dddddd;\n}\n.panel-default > .panel-heading .badge {\n  color: #f5f5f5;\n  background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #dddddd;\n}\n.panel-primary {\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n  color: #ffffff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n  color: #337ab7;\n  background-color: #ffffff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #337ab7;\n}\n.panel-success {\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n  color: #dff0d8;\n  background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #d6e9c6;\n}\n.panel-info {\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n  color: #31708f;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n  color: #d9edf7;\n  background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #bce8f1;\n}\n.panel-warning {\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n  color: #fcf8e3;\n  background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #faebcc;\n}\n.panel-danger {\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n  color: #f2dede;\n  background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  height: 100%;\n  width: 100%;\n  border: 0;\n}\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n  padding: 24px;\n  border-radius: 6px;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: 3px;\n}\n.close {\n  float: right;\n  font-size: 21px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000000;\n  text-shadow: 0 1px 0 #ffffff;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n  color: #000000;\n  text-decoration: none;\n  cursor: pointer;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n.modal-open {\n  overflow: hidden;\n}\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  -webkit-overflow-scrolling: touch;\n  outline: 0;\n}\n.modal.fade .modal-dialog {\n  -webkit-transform: translate(0, -25%);\n  -ms-transform: translate(0, -25%);\n  -o-transform: translate(0, -25%);\n  transform: translate(0, -25%);\n  -webkit-transition: -webkit-transform 0.3s ease-out;\n  -moz-transition: -moz-transform 0.3s ease-out;\n  -o-transition: -o-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n  -webkit-transform: translate(0, 0);\n  -ms-transform: translate(0, 0);\n  -o-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n.modal-content {\n  position: relative;\n  background-color: #ffffff;\n  border: 1px solid #999999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n  outline: 0;\n}\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000000;\n}\n.modal-backdrop.fade {\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.modal-header {\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5;\n  min-height: 16.42857143px;\n}\n.modal-header .close {\n  margin-top: -2px;\n}\n.modal-title {\n  margin: 0;\n  line-height: 1.42857143;\n}\n.modal-body {\n  position: relative;\n  padding: 15px;\n}\n.modal-footer {\n  padding: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n  margin-left: 5px;\n  margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n@media (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    margin: 30px auto;\n  }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    width: 300px;\n  }\n}\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px;\n  }\n}\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 12px;\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n.tooltip.in {\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n.tooltip.top {\n  margin-top: -3px;\n  padding: 5px 0;\n}\n.tooltip.right {\n  margin-left: 3px;\n  padding: 0 5px;\n}\n.tooltip.bottom {\n  margin-top: 3px;\n  padding: 5px 0;\n}\n.tooltip.left {\n  margin-left: -3px;\n  padding: 0 5px;\n}\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #ffffff;\n  text-align: center;\n  background-color: #000000;\n  border-radius: 4px;\n}\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000000;\n}\n.tooltip.top-left .tooltip-arrow {\n  bottom: 0;\n  right: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000000;\n}\n.tooltip.top-right .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000000;\n}\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-width: 5px 5px 5px 0;\n  border-right-color: #000000;\n}\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-width: 5px 0 5px 5px;\n  border-left-color: #000000;\n}\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000000;\n}\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 14px;\n  background-color: #ffffff;\n  background-clip: padding-box;\n  border: 1px solid #cccccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n  margin-top: -10px;\n}\n.popover.right {\n  margin-left: 10px;\n}\n.popover.bottom {\n  margin-top: 10px;\n}\n.popover.left {\n  margin-left: -10px;\n}\n.popover-title {\n  margin: 0;\n  padding: 8px 14px;\n  font-size: 14px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 5px 5px 0 0;\n}\n.popover-content {\n  padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.popover > .arrow {\n  border-width: 11px;\n}\n.popover > .arrow:after {\n  border-width: 10px;\n  content: \"\";\n}\n.popover.top > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-width: 0;\n  border-top-color: #999999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  bottom: -11px;\n}\n.popover.top > .arrow:after {\n  content: \" \";\n  bottom: 1px;\n  margin-left: -10px;\n  border-bottom-width: 0;\n  border-top-color: #ffffff;\n}\n.popover.right > .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-left-width: 0;\n  border-right-color: #999999;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n  content: \" \";\n  left: 1px;\n  bottom: -10px;\n  border-left-width: 0;\n  border-right-color: #ffffff;\n}\n.popover.bottom > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-top-width: 0;\n  border-bottom-color: #999999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  top: -11px;\n}\n.popover.bottom > .arrow:after {\n  content: \" \";\n  top: 1px;\n  margin-left: -10px;\n  border-top-width: 0;\n  border-bottom-color: #ffffff;\n}\n.popover.left > .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-right-width: 0;\n  border-left-color: #999999;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n  content: \" \";\n  right: 1px;\n  border-right-width: 0;\n  border-left-color: #ffffff;\n  bottom: -10px;\n}\n.carousel {\n  position: relative;\n}\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n}\n.carousel-inner > .item {\n  display: none;\n  position: relative;\n  -webkit-transition: 0.6s ease-in-out left;\n  -o-transition: 0.6s ease-in-out left;\n  transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n  .carousel-inner > .item {\n    -webkit-transition: -webkit-transform 0.6s ease-in-out;\n    -moz-transition: -moz-transform 0.6s ease-in-out;\n    -o-transition: -o-transform 0.6s ease-in-out;\n    transition: transform 0.6s ease-in-out;\n    -webkit-backface-visibility: hidden;\n    -moz-backface-visibility: hidden;\n    backface-visibility: hidden;\n    -webkit-perspective: 1000px;\n    -moz-perspective: 1000px;\n    perspective: 1000px;\n  }\n  .carousel-inner > .item.next,\n  .carousel-inner > .item.active.right {\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0);\n    left: 0;\n  }\n  .carousel-inner > .item.prev,\n  .carousel-inner > .item.active.left {\n    -webkit-transform: translate3d(-100%, 0, 0);\n    transform: translate3d(-100%, 0, 0);\n    left: 0;\n  }\n  .carousel-inner > .item.next.left,\n  .carousel-inner > .item.prev.right,\n  .carousel-inner > .item.active {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n    left: 0;\n  }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n.carousel-inner > .active {\n  left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n.carousel-inner > .next {\n  left: 100%;\n}\n.carousel-inner > .prev {\n  left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n.carousel-inner > .active.left {\n  left: -100%;\n}\n.carousel-inner > .active.right {\n  left: 100%;\n}\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: 15%;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  font-size: 20px;\n  color: #ffffff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-control.left {\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n  left: auto;\n  right: 0;\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n  outline: 0;\n  color: #ffffff;\n  text-decoration: none;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n  position: absolute;\n  top: 50%;\n  margin-top: -10px;\n  z-index: 5;\n  display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n  left: 50%;\n  margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n  right: 50%;\n  margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n  width: 20px;\n  height: 20px;\n  line-height: 1;\n  font-family: serif;\n}\n.carousel-control .icon-prev:before {\n  content: '\\2039';\n}\n.carousel-control .icon-next:before {\n  content: '\\203a';\n}\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center;\n}\n.carousel-indicators li {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  margin: 1px;\n  text-indent: -999px;\n  border: 1px solid #ffffff;\n  border-radius: 10px;\n  cursor: pointer;\n  background-color: #000 \\9;\n  background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n  margin: 0;\n  width: 12px;\n  height: 12px;\n  background-color: #ffffff;\n}\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #ffffff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n  text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -15px;\n    font-size: 30px;\n  }\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .icon-prev {\n    margin-left: -15px;\n  }\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-next {\n    margin-right: -15px;\n  }\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px;\n  }\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n  content: \" \";\n  display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n  clear: both;\n}\n.center-block {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.hidden {\n  display: none !important;\n}\n.affix {\n  position: fixed;\n}\n@-ms-viewport {\n  width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important;\n  }\n  table.visible-xs {\n    display: table !important;\n  }\n  tr.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-block {\n    display: block !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline {\n    display: inline !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important;\n  }\n  table.visible-sm {\n    display: table !important;\n  }\n  tr.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-block {\n    display: block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important;\n  }\n  table.visible-md {\n    display: table !important;\n  }\n  tr.visible-md {\n    display: table-row !important;\n  }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-block {\n    display: block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important;\n  }\n  table.visible-lg {\n    display: table !important;\n  }\n  tr.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-block {\n    display: block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (max-width: 767px) {\n  .hidden-xs {\n    display: none !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm {\n    display: none !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md {\n    display: none !important;\n  }\n}\n@media (min-width: 1200px) {\n  .hidden-lg {\n    display: none !important;\n  }\n}\n.visible-print {\n  display: none !important;\n}\n@media print {\n  .visible-print {\n    display: block !important;\n  }\n  table.visible-print {\n    display: table !important;\n  }\n  tr.visible-print {\n    display: table-row !important;\n  }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important;\n  }\n}\n.visible-print-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-block {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline-block {\n    display: inline-block !important;\n  }\n}\n@media print {\n  .hidden-print {\n    display: none !important;\n  }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n//    without disabling user zoom.\n//\n\nhtml {\n  font-family: sans-serif; // 1\n  -ms-text-size-adjust: 100%; // 2\n  -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n  margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; // 1\n  vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n  background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n  outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n  font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n  font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n  border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n  margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n  overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n//    Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; // 1\n  font: inherit; // 2\n  margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n  overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n//    and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n//    `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n  cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n  line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; // 1\n  padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; // 1\n  box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n  border: 0; // 1\n  padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n  overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n  font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n    *,\n    *:before,\n    *:after {\n        background: transparent !important;\n        color: #000 !important; // Black prints faster: h5bp.com/s\n        box-shadow: none !important;\n        text-shadow: none !important;\n    }\n\n    a,\n    a:visited {\n        text-decoration: underline;\n    }\n\n    a[href]:after {\n        content: \" (\" attr(href) \")\";\n    }\n\n    abbr[title]:after {\n        content: \" (\" attr(title) \")\";\n    }\n\n    // Don't show links that are fragment identifiers,\n    // or use the `javascript:` pseudo protocol\n    a[href^=\"#\"]:after,\n    a[href^=\"javascript:\"]:after {\n        content: \"\";\n    }\n\n    pre,\n    blockquote {\n        border: 1px solid #999;\n        page-break-inside: avoid;\n    }\n\n    thead {\n        display: table-header-group; // h5bp.com/t\n    }\n\n    tr,\n    img {\n        page-break-inside: avoid;\n    }\n\n    img {\n        max-width: 100% !important;\n    }\n\n    p,\n    h2,\n    h3 {\n        orphans: 3;\n        widows: 3;\n    }\n\n    h2,\n    h3 {\n        page-break-after: avoid;\n    }\n\n    // Bootstrap specific changes start\n\n    // Bootstrap components\n    .navbar {\n        display: none;\n    }\n    .btn,\n    .dropup > .btn {\n        > .caret {\n            border-top-color: #000 !important;\n        }\n    }\n    .label {\n        border: 1px solid #000;\n    }\n\n    .table {\n        border-collapse: collapse !important;\n\n        td,\n        th {\n            background-color: #fff !important;\n        }\n    }\n    .table-bordered {\n        th,\n        td {\n            border: 1px solid #ddd !important;\n        }\n    }\n\n    // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url('@{icon-font-path}@{icon-font-name}.eot');\n  src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n       url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n       url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n       url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n       url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk               { &:before { content: \"\\2a\"; } }\n.glyphicon-plus                   { &:before { content: \"\\2b\"; } }\n.glyphicon-euro,\n.glyphicon-eur                    { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus                  { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud                  { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope               { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil                 { &:before { content: \"\\270f\"; } }\n.glyphicon-glass                  { &:before { content: \"\\e001\"; } }\n.glyphicon-music                  { &:before { content: \"\\e002\"; } }\n.glyphicon-search                 { &:before { content: \"\\e003\"; } }\n.glyphicon-heart                  { &:before { content: \"\\e005\"; } }\n.glyphicon-star                   { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty             { &:before { content: \"\\e007\"; } }\n.glyphicon-user                   { &:before { content: \"\\e008\"; } }\n.glyphicon-film                   { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large               { &:before { content: \"\\e010\"; } }\n.glyphicon-th                     { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list                { &:before { content: \"\\e012\"; } }\n.glyphicon-ok                     { &:before { content: \"\\e013\"; } }\n.glyphicon-remove                 { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in                { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out               { &:before { content: \"\\e016\"; } }\n.glyphicon-off                    { &:before { content: \"\\e017\"; } }\n.glyphicon-signal                 { &:before { content: \"\\e018\"; } }\n.glyphicon-cog                    { &:before { content: \"\\e019\"; } }\n.glyphicon-trash                  { &:before { content: \"\\e020\"; } }\n.glyphicon-home                   { &:before { content: \"\\e021\"; } }\n.glyphicon-file                   { &:before { content: \"\\e022\"; } }\n.glyphicon-time                   { &:before { content: \"\\e023\"; } }\n.glyphicon-road                   { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt           { &:before { content: \"\\e025\"; } }\n.glyphicon-download               { &:before { content: \"\\e026\"; } }\n.glyphicon-upload                 { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox                  { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle            { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat                 { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh                { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt               { &:before { content: \"\\e032\"; } }\n.glyphicon-lock                   { &:before { content: \"\\e033\"; } }\n.glyphicon-flag                   { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones             { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off             { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down            { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up              { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode                 { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode                { &:before { content: \"\\e040\"; } }\n.glyphicon-tag                    { &:before { content: \"\\e041\"; } }\n.glyphicon-tags                   { &:before { content: \"\\e042\"; } }\n.glyphicon-book                   { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark               { &:before { content: \"\\e044\"; } }\n.glyphicon-print                  { &:before { content: \"\\e045\"; } }\n.glyphicon-camera                 { &:before { content: \"\\e046\"; } }\n.glyphicon-font                   { &:before { content: \"\\e047\"; } }\n.glyphicon-bold                   { &:before { content: \"\\e048\"; } }\n.glyphicon-italic                 { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height            { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width             { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left             { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center           { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right            { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify          { &:before { content: \"\\e055\"; } }\n.glyphicon-list                   { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left            { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right           { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video         { &:before { content: \"\\e059\"; } }\n.glyphicon-picture                { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker             { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust                 { &:before { content: \"\\e063\"; } }\n.glyphicon-tint                   { &:before { content: \"\\e064\"; } }\n.glyphicon-edit                   { &:before { content: \"\\e065\"; } }\n.glyphicon-share                  { &:before { content: \"\\e066\"; } }\n.glyphicon-check                  { &:before { content: \"\\e067\"; } }\n.glyphicon-move                   { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward          { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward          { &:before { content: \"\\e070\"; } }\n.glyphicon-backward               { &:before { content: \"\\e071\"; } }\n.glyphicon-play                   { &:before { content: \"\\e072\"; } }\n.glyphicon-pause                  { &:before { content: \"\\e073\"; } }\n.glyphicon-stop                   { &:before { content: \"\\e074\"; } }\n.glyphicon-forward                { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward           { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward           { &:before { content: \"\\e077\"; } }\n.glyphicon-eject                  { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left           { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right          { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign              { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign             { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign            { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign                { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign          { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign              { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot             { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle          { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle              { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle             { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left             { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right            { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up               { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down             { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt              { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full            { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small           { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign       { &:before { content: \"\\e101\"; } }\n.glyphicon-gift                   { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf                   { &:before { content: \"\\e103\"; } }\n.glyphicon-fire                   { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open               { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close              { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign           { &:before { content: \"\\e107\"; } }\n.glyphicon-plane                  { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar               { &:before { content: \"\\e109\"; } }\n.glyphicon-random                 { &:before { content: \"\\e110\"; } }\n.glyphicon-comment                { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet                 { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up             { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down           { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet                { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart          { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close           { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open            { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical        { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal      { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd                    { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn               { &:before { content: \"\\e122\"; } }\n.glyphicon-bell                   { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate            { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up              { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down            { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right             { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left              { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up                { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down              { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right     { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left      { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up        { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down      { &:before { content: \"\\e134\"; } }\n.glyphicon-globe                  { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench                 { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks                  { &:before { content: \"\\e137\"; } }\n.glyphicon-filter                 { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase              { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen             { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard              { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip              { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty            { &:before { content: \"\\e143\"; } }\n.glyphicon-link                   { &:before { content: \"\\e144\"; } }\n.glyphicon-phone                  { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin                { &:before { content: \"\\e146\"; } }\n.glyphicon-usd                    { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp                    { &:before { content: \"\\e149\"; } }\n.glyphicon-sort                   { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet       { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt   { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order          { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt      { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes     { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked              { &:before { content: \"\\e157\"; } }\n.glyphicon-expand                 { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down          { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up            { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in                 { &:before { content: \"\\e161\"; } }\n.glyphicon-flash                  { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out                { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window             { &:before { content: \"\\e164\"; } }\n.glyphicon-record                 { &:before { content: \"\\e165\"; } }\n.glyphicon-save                   { &:before { content: \"\\e166\"; } }\n.glyphicon-open                   { &:before { content: \"\\e167\"; } }\n.glyphicon-saved                  { &:before { content: \"\\e168\"; } }\n.glyphicon-import                 { &:before { content: \"\\e169\"; } }\n.glyphicon-export                 { &:before { content: \"\\e170\"; } }\n.glyphicon-send                   { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk            { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved           { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove          { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save            { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open            { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card            { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer               { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery                { &:before { content: \"\\e179\"; } }\n.glyphicon-header                 { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed             { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone               { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt              { &:before { content: \"\\e183\"; } }\n.glyphicon-tower                  { &:before { content: \"\\e184\"; } }\n.glyphicon-stats                  { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video               { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video               { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles              { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo           { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby            { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1              { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1              { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1              { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark         { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark      { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download         { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload           { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer           { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous         { &:before { content: \"\\e200\"; } }\n.glyphicon-cd                     { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file              { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file              { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up               { &:before { content: \"\\e204\"; } }\n.glyphicon-copy                   { &:before { content: \"\\e205\"; } }\n.glyphicon-paste                  { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door                   { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key                    { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert                  { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer              { &:before { content: \"\\e210\"; } }\n.glyphicon-king                   { &:before { content: \"\\e211\"; } }\n.glyphicon-queen                  { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn                   { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop                 { &:before { content: \"\\e214\"; } }\n.glyphicon-knight                 { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula           { &:before { content: \"\\e216\"; } }\n.glyphicon-tent                   { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard             { &:before { content: \"\\e218\"; } }\n.glyphicon-bed                    { &:before { content: \"\\e219\"; } }\n.glyphicon-apple                  { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase                  { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass              { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp                   { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate              { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank             { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors               { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin                { &:before { content: \"\\e227\"; } }\n.glyphicon-btc                    { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt                    { &:before { content: \"\\e227\"; } }\n.glyphicon-yen                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble                  { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub                    { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale                  { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly              { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted       { &:before { content: \"\\e232\"; } }\n.glyphicon-education              { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal      { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical        { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger         { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window           { &:before { content: \"\\e237\"; } }\n.glyphicon-oil                    { &:before { content: \"\\e238\"; } }\n.glyphicon-grain                  { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses             { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size              { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color             { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background        { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top       { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom    { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left      { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical  { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right     { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right         { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left          { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom        { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top           { &:before { content: \"\\e253\"; } }\n.glyphicon-console                { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript            { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript              { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left              { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right             { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down              { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up                { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n  .box-sizing(border-box);\n}\n*:before,\n*:after {\n  .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n  font-family: @font-family-base;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @text-color;\n  background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\n\n// Links\n\na {\n  color: @link-color;\n  text-decoration: none;\n\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n  }\n\n  &:focus {\n    .tab-focus();\n  }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n  margin: 0;\n}\n\n\n// Images\n\nimg {\n  vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n  .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n  border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n  padding: @thumbnail-padding;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(all .2s ease-in-out);\n\n  // Keep them at most 100% wide\n  .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n  border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n  margin-top:    @line-height-computed;\n  margin-bottom: @line-height-computed;\n  border: 0;\n  border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0,0,0,0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n  -webkit-animation: @animation;\n       -o-animation: @animation;\n          animation: @animation;\n}\n.animation-name(@name) {\n  -webkit-animation-name: @name;\n          animation-name: @name;\n}\n.animation-duration(@duration) {\n  -webkit-animation-duration: @duration;\n          animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n  -webkit-animation-timing-function: @timing-function;\n          animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n  -webkit-animation-delay: @delay;\n          animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n  -webkit-animation-iteration-count: @iteration-count;\n          animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n  -webkit-animation-direction: @direction;\n          animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n  -webkit-animation-fill-mode: @fill-mode;\n          animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n  -webkit-backface-visibility: @visibility;\n     -moz-backface-visibility: @visibility;\n          backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n          box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n  -webkit-box-sizing: @boxmodel;\n     -moz-box-sizing: @boxmodel;\n          box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n  -webkit-column-count: @column-count;\n     -moz-column-count: @column-count;\n          column-count: @column-count;\n  -webkit-column-gap: @column-gap;\n     -moz-column-gap: @column-gap;\n          column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n  word-wrap: break-word;\n  -webkit-hyphens: @mode;\n     -moz-hyphens: @mode;\n      -ms-hyphens: @mode; // IE10+\n       -o-hyphens: @mode;\n          hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: @color;\n    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n  -webkit-transform: scale(@ratio);\n      -ms-transform: scale(@ratio); // IE9 only\n       -o-transform: scale(@ratio);\n          transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n  -webkit-transform: scale(@ratioX, @ratioY);\n      -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n       -o-transform: scale(@ratioX, @ratioY);\n          transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n  -webkit-transform: scaleX(@ratio);\n      -ms-transform: scaleX(@ratio); // IE9 only\n       -o-transform: scaleX(@ratio);\n          transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n  -webkit-transform: scaleY(@ratio);\n      -ms-transform: scaleY(@ratio); // IE9 only\n       -o-transform: scaleY(@ratio);\n          transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n  -webkit-transform: skewX(@x) skewY(@y);\n      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX(@x) skewY(@y);\n          transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n  -webkit-transform: translate(@x, @y);\n      -ms-transform: translate(@x, @y); // IE9 only\n       -o-transform: translate(@x, @y);\n          transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n  -webkit-transform: translate3d(@x, @y, @z);\n          transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n  -webkit-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees); // IE9 only\n       -o-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n  -webkit-transform: rotateX(@degrees);\n      -ms-transform: rotateX(@degrees); // IE9 only\n       -o-transform: rotateX(@degrees);\n          transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n  -webkit-transform: rotateY(@degrees);\n      -ms-transform: rotateY(@degrees); // IE9 only\n       -o-transform: rotateY(@degrees);\n          transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n  -webkit-perspective: @perspective;\n     -moz-perspective: @perspective;\n          perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n  -webkit-perspective-origin: @perspective;\n     -moz-perspective-origin: @perspective;\n          perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n  -webkit-transform-origin: @origin;\n     -moz-transform-origin: @origin;\n      -ms-transform-origin: @origin; // IE9 only\n          transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n  -webkit-transition: @transition;\n       -o-transition: @transition;\n          transition: @transition;\n}\n.transition-property(@transition-property) {\n  -webkit-transition-property: @transition-property;\n          transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n  -webkit-transition-delay: @transition-delay;\n          transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n  -webkit-transition-duration: @transition-duration;\n          transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n  -webkit-transition-timing-function: @timing-function;\n          transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n  -webkit-transition: -webkit-transform @transition;\n     -moz-transition: -moz-transform @transition;\n       -o-transition: -o-transform @transition;\n          transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n  -webkit-user-select: @select;\n     -moz-user-select: @select;\n      -ms-user-select: @select; // IE10+\n          user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n  // Default\n  outline: thin dotted;\n  // WebKit\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n  display: @display;\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n  background-image: url(\"@{file-1x}\");\n\n  @media\n  only screen and (-webkit-min-device-pixel-ratio: 2),\n  only screen and (   min--moz-device-pixel-ratio: 2),\n  only screen and (     -o-min-device-pixel-ratio: 2/1),\n  only screen and (        min-device-pixel-ratio: 2),\n  only screen and (                min-resolution: 192dpi),\n  only screen and (                min-resolution: 2dppx) {\n    background-image: url(\"@{file-2x}\");\n    background-size: @width-1x @height-1x;\n  }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: @headings-font-family;\n  font-weight: @headings-font-weight;\n  line-height: @headings-line-height;\n  color: @headings-color;\n\n  small,\n  .small {\n    font-weight: normal;\n    line-height: 1;\n    color: @headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: @line-height-computed;\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: (@line-height-computed / 2);\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n  margin-bottom: @line-height-computed;\n  font-size: floor((@font-size-base * 1.15));\n  font-weight: 300;\n  line-height: 1.4;\n\n  @media (min-width: @screen-sm-min) {\n    font-size: (@font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n  font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n  background-color: @state-warning-bg;\n  padding: .2em;\n}\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n.text-nowrap         { white-space: nowrap; }\n\n// Transformation\n.text-lowercase      { text-transform: lowercase; }\n.text-uppercase      { text-transform: uppercase; }\n.text-capitalize     { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n  color: @text-muted;\n}\n.text-primary {\n  .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n  .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n  .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n  .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n  .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n  .bg-variant(@brand-primary);\n}\n.bg-success {\n  .bg-variant(@state-success-bg);\n}\n.bg-info {\n  .bg-variant(@state-info-bg);\n}\n.bg-warning {\n  .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n  .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: ((@line-height-computed / 2) - 1);\n  margin: (@line-height-computed * 2) 0 @line-height-computed;\n  border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: (@line-height-computed / 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  .list-unstyled();\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-left: 5px;\n    padding-right: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n  line-height: @line-height-base;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n  dd {\n    &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n  }\n\n  @media (min-width: @dl-horizontal-breakpoint) {\n    dt {\n      float: left;\n      width: (@dl-horizontal-offset - 20);\n      clear: left;\n      text-align: right;\n      .text-overflow();\n    }\n    dd {\n      margin-left: @dl-horizontal-offset;\n    }\n  }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n  font-size: 90%;\n  .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n  padding: (@line-height-computed / 2) @line-height-computed;\n  margin: 0 0 @line-height-computed;\n  font-size: @blockquote-font-size;\n  border-left: 5px solid @blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: @line-height-base;\n    color: @blockquote-small-color;\n\n    &:before {\n      content: '\\2014 \\00A0'; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid @blockquote-border-color;\n  border-left: 0;\n  text-align: right;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: ''; }\n    &:after {\n      content: '\\00A0 \\2014'; // nbsp, em dash\n    }\n  }\n}\n\n// Addresses\naddress {\n  margin-bottom: @line-height-computed;\n  font-style: normal;\n  line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n  color: @color;\n  a&:hover,\n  a&:focus {\n    color: darken(@color, 10%);\n  }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n  background-color: @color;\n  a&:hover,\n  a&:focus {\n    background-color: darken(@color, 10%);\n  }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @code-color;\n  background-color: @code-bg;\n  border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @kbd-color;\n  background-color: @kbd-bg;\n  border-radius: @border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: bold;\n    box-shadow: none;\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: ((@line-height-computed - 1) / 2);\n  margin: 0 0 (@line-height-computed / 2);\n  font-size: (@font-size-base - 1); // 14px to 13px\n  line-height: @line-height-base;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: @pre-color;\n  background-color: @pre-bg;\n  border: 1px solid @pre-border-color;\n  border-radius: @border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: @pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  .container-fixed();\n\n  @media (min-width: @screen-sm-min) {\n    width: @container-sm;\n  }\n  @media (min-width: @screen-md-min) {\n    width: @container-md;\n  }\n  @media (min-width: @screen-lg-min) {\n    width: @container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n  .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n  .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n  .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n  &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n  margin-left:  ceil((@gutter / -2));\n  margin-right: floor((@gutter / -2));\n  &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  float: left;\n  width: percentage((@columns / @grid-columns));\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n  margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n  left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n  right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-sm-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-offset(@columns) {\n  @media (min-width: @screen-sm-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-push(@columns) {\n  @media (min-width: @screen-sm-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-pull(@columns) {\n  @media (min-width: @screen-sm-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-md-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-offset(@columns) {\n  @media (min-width: @screen-md-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-push(@columns) {\n  @media (min-width: @screen-md-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-pull(@columns) {\n  @media (min-width: @screen-md-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-lg-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-offset(@columns) {\n  @media (min-width: @screen-lg-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-push(@columns) {\n  @media (min-width: @screen-lg-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-pull(@columns) {\n  @media (min-width: @screen-lg-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n  // Common styles for all sizes of grid columns, widths 1-12\n  .col(@index) { // initial\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      position: relative;\n      // Prevent columns from collapsing when empty\n      min-height: 1px;\n      // Inner gutter via padding\n      padding-left:  ceil((@grid-gutter-width / 2));\n      padding-right: floor((@grid-gutter-width / 2));\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n  .col(@index) { // initial\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      float: left;\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n  .col-@{class}-@{index} {\n    width: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n  .col-@{class}-push-@{index} {\n    left: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n  .col-@{class}-push-0 {\n    left: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n  .col-@{class}-pull-@{index} {\n    right: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n  .col-@{class}-pull-0 {\n    right: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n  .col-@{class}-offset-@{index} {\n    margin-left: percentage((@index / @grid-columns));\n  }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n  .calc-grid-column(@index, @class, @type);\n  // next iteration\n  .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n  .float-grid-columns(@class);\n  .loop-grid-columns(@grid-columns, @class, width);\n  .loop-grid-columns(@grid-columns, @class, pull);\n  .loop-grid-columns(@grid-columns, @class, push);\n  .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: @table-bg;\n}\ncaption {\n  padding-top: @table-cell-padding;\n  padding-bottom: @table-cell-padding;\n  color: @text-muted;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: @line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-cell-padding;\n        line-height: @line-height-base;\n        vertical-align: top;\n        border-top: 1px solid @table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid @table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid @table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: @body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid @table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid @table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-of-type(odd) {\n    background-color: @table-bg-accent;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    background-color: @table-bg-hover;\n  }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n  position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n  float: none;\n  display: table-column;\n}\ntable {\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n      float: none;\n      display: table-cell;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n  @media screen and (max-width: @screen-xs-max) {\n    width: 100%;\n    margin-bottom: (@line-height-computed * 0.75);\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid @table-border-color;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table > thead > tr,\n  .table > tbody > tr,\n  .table > tfoot > tr {\n    > td.@{state},\n    > th.@{state},\n    &.@{state} > td,\n    &.@{state} > th {\n      background-color: @background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover > tbody > tr {\n    > td.@{state}:hover,\n    > th.@{state}:hover,\n    &.@{state}:hover > td,\n    &:hover > .@{state},\n    &.@{state}:hover > th {\n      background-color: darken(@background, 5%);\n    }\n  }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: @line-height-computed;\n  font-size: (@font-size-base * 1.5);\n  line-height: inherit;\n  color: @legend-color;\n  border: 0;\n  border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n  .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; // IE8-9\n  line-height: normal;\n}\n\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  .tab-focus();\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: (@padding-base-vertical + 1);\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n  background-color: @input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid @input-border;\n  border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n  .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  .form-control-focus();\n\n  // Placeholder\n  .placeholder();\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    border: 0;\n    background-color: transparent;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &[disabled],\n  &[readonly],\n  fieldset[disabled] & {\n    background-color: @input-bg-disabled;\n    opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n  }\n\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n\n  // Reset height for `textarea`s\n  textarea& {\n    height: auto;\n  }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 8.3, iOS doesn't support `datetime` or `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"],\n  input[type=\"time\"],\n  input[type=\"datetime-local\"],\n  input[type=\"month\"] {\n    &.form-control {\n      line-height: @input-height-base;\n    }\n\n    &.input-sm,\n    .input-group-sm & {\n      line-height: @input-height-small;\n    }\n\n    &.input-lg,\n    .input-group-lg & {\n      line-height: @input-height-large;\n    }\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n\n  label {\n    min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: normal;\n    cursor: pointer;\n  }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because <label>s don't inherit their parent's `cursor`.\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  &[disabled],\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n// These classes are used directly on <label>s\n.radio-inline,\n.checkbox-inline {\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n// These classes are used on elements with <label> descendants\n.radio,\n.checkbox {\n  &.disabled,\n  fieldset[disabled] & {\n    label {\n      cursor: @cursor-disabled;\n    }\n  }\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n  // Size it appropriately next to real form controls\n  padding-top: (@padding-base-vertical + 1);\n  padding-bottom: (@padding-base-vertical + 1);\n  // Remove default margin from `p`\n  margin-bottom: 0;\n  min-height: (@line-height-computed + @font-size-base);\n\n  &.input-lg,\n  &.input-sm {\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n  .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n  .form-control {\n    height: @input-height-small;\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    line-height: @line-height-small;\n    border-radius: @input-border-radius-small;\n  }\n  select.form-control {\n    height: @input-height-small;\n    line-height: @input-height-small;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: @input-height-small;\n    min-height: (@line-height-computed + @font-size-small);\n    padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n    font-size: @font-size-small;\n    line-height: @line-height-small;\n  }\n}\n\n.input-lg {\n  .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n  .form-control {\n    height: @input-height-large;\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    line-height: @line-height-large;\n    border-radius: @input-border-radius-large;\n  }\n  select.form-control {\n    height: @input-height-large;\n    line-height: @input-height-large;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: @input-height-large;\n    min-height: (@line-height-computed + @font-size-large);\n    padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n    font-size: @font-size-large;\n    line-height: @line-height-large;\n  }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n  // Enable absolute positioning\n  position: relative;\n\n  // Ensure icons don't overlap text\n  .form-control {\n    padding-right: (@input-height-base * 1.25);\n  }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2; // Ensure icon is above input groups\n  display: block;\n  width: @input-height-base;\n  height: @input-height-base;\n  line-height: @input-height-base;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: @input-height-large;\n  height: @input-height-large;\n  line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: @input-height-small;\n  height: @input-height-small;\n  line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n  .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n  .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n  .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n  & ~ .form-control-feedback {\n    top: (@line-height-computed + 5); // Height of the `label` and its margin\n  }\n  &.sr-only ~ .form-control-feedback {\n    top: 0;\n  }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n  // Kick in the inline\n  @media (min-width: @screen-sm-min) {\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // In navbar-form, allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-static {\n      display: inline-block;\n    }\n\n    .input-group {\n      display: inline-table;\n      vertical-align: middle;\n\n      .input-group-addon,\n      .input-group-btn,\n      .form-control {\n        width: auto;\n      }\n    }\n\n    // Input groups need that 100% width though\n    .input-group > .form-control {\n      width: 100%;\n    }\n\n    .control-label {\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .radio,\n    .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle;\n\n      label {\n        padding-left: 0;\n      }\n    }\n    .radio input[type=\"radio\"],\n    .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0;\n    }\n\n    // Re-override the feedback icon.\n    .has-feedback .form-control-feedback {\n      top: 0;\n    }\n  }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n  // Consistent vertical alignment of radios and checkboxes\n  //\n  // Labels also get some reset styles, but that is scoped to a media query below.\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline {\n    margin-top: 0;\n    margin-bottom: 0;\n    padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n  }\n  // Account for padding we're adding to ensure the alignment and of help text\n  // and other content below items\n  .radio,\n  .checkbox {\n    min-height: (@line-height-computed + (@padding-base-vertical + 1));\n  }\n\n  // Make form groups behave like rows\n  .form-group {\n    .make-row();\n  }\n\n  // Reset spacing and right align labels, but scope to media queries so that\n  // labels on narrow viewports stack the same as a default form example.\n  @media (min-width: @screen-sm-min) {\n    .control-label {\n      text-align: right;\n      margin-bottom: 0;\n      padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n    }\n  }\n\n  // Validation states\n  //\n  // Reposition the icon because it's now within a grid column and columns have\n  // `position: relative;` on them. Also accounts for the grid gutter padding.\n  .has-feedback .form-control-feedback {\n    right: floor((@grid-gutter-width / 2));\n  }\n\n  // Form group sizes\n  //\n  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n  // inputs and labels within a `.form-group`.\n  .form-group-lg {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: ((@padding-large-vertical * @line-height-large) + 1);\n        font-size: @font-size-large;\n      }\n    }\n  }\n  .form-group-sm {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: (@padding-small-vertical + 1);\n        font-size: @font-size-small;\n      }\n    }\n  }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n  // Color the label and help text\n  .help-block,\n  .control-label,\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline,\n  &.radio label,\n  &.checkbox label,\n  &.radio-inline label,\n  &.checkbox-inline label  {\n    color: @text-color;\n  }\n  // Set the border and box shadow on specific inputs to match\n  .form-control {\n    border-color: @border-color;\n    .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken(@border-color, 10%);\n      @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n      .box-shadow(@shadow);\n    }\n  }\n  // Set validation states also for addons\n  .input-group-addon {\n    color: @text-color;\n    border-color: @border-color;\n    background-color: @background-color;\n  }\n  // Optional feedback icon\n  .form-control-feedback {\n    color: @text-color;\n  }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n  @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n  &:focus {\n    border-color: @color;\n    outline: 0;\n    .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n  }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  height: @input-height;\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n\n  select& {\n    height: @input-height;\n    line-height: @input-height;\n  }\n\n  textarea&,\n  select[multiple]& {\n    height: auto;\n  }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: @btn-font-weight;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  white-space: nowrap;\n  .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n  .user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus,\n    &.focus {\n      .tab-focus();\n    }\n  }\n\n  &:hover,\n  &:focus,\n  &.focus {\n    color: @btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    outline: 0;\n    background-image: none;\n    .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n    .opacity(.65);\n    .box-shadow(none);\n  }\n\n  a& {\n    &.disabled,\n    fieldset[disabled] & {\n      pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n    }\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n  .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  color: @link-color;\n  font-weight: normal;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &.active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    .box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: @btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n  .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n  color: @color;\n  background-color: @background;\n  border-color: @border;\n\n  &:focus,\n  &.focus {\n    color: @color;\n    background-color: darken(@background, 10%);\n        border-color: darken(@border, 25%);\n  }\n  &:hover {\n    color: @color;\n    background-color: darken(@background, 10%);\n        border-color: darken(@border, 12%);\n  }\n  &:active,\n  &.active,\n  .open > .dropdown-toggle& {\n    color: @color;\n    background-color: darken(@background, 10%);\n        border-color: darken(@border, 12%);\n\n    &:hover,\n    &:focus,\n    &.focus {\n      color: @color;\n      background-color: darken(@background, 17%);\n          border-color: darken(@border, 25%);\n    }\n  }\n  &:active,\n  &.active,\n  .open > .dropdown-toggle& {\n    background-image: none;\n  }\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &,\n    &:hover,\n    &:focus,\n    &.focus,\n    &:active,\n    &.active {\n      background-color: @background;\n          border-color: @border;\n    }\n  }\n\n  .badge {\n    color: @background;\n    background-color: @color;\n  }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n  opacity: @opacity;\n  // IE8 filter\n  @opacity-ie: (@opacity * 100);\n  filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  .transition(opacity .15s linear);\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n\n  &.in      { display: block; }\n  tr&.in    { display: table-row; }\n  tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  .transition-property(~\"height, visibility\");\n  .transition-duration(.35s);\n  .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top:   @caret-width-base dashed;\n  border-top:   @caret-width-base solid ~\"\\9\"; // IE8\n  border-right: @caret-width-base solid transparent;\n  border-left:  @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: @zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  list-style: none;\n  font-size: @font-size-base;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  background-color: @dropdown-bg;\n  border: 1px solid @dropdown-fallback-border; // IE8 fallback\n  border: 1px solid @dropdown-border;\n  border-radius: @border-radius-base;\n  .box-shadow(0 6px 12px rgba(0,0,0,.175));\n  background-clip: padding-box;\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    .nav-divider(@dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: @line-height-base;\n    color: @dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n  }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    color: @dropdown-link-hover-color;\n    background-color: @dropdown-link-hover-bg;\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-active-color;\n    text-decoration: none;\n    outline: 0;\n    background-color: @dropdown-link-active-bg;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-disabled-color;\n  }\n\n  // Nuke hover/focus effects\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    .reset-filter();\n    cursor: @cursor-disabled;\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  left: auto; // Reset the default from `.dropdown-menu`\n  right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: @font-size-small;\n  line-height: @line-height-base;\n  color: @dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    border-top: 0;\n    border-bottom: @caret-width-base dashed;\n    border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n    content: \"\";\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      .dropdown-menu-right();\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      .dropdown-menu-left();\n    }\n  }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n  height: 1px;\n  margin: ((@line-height-computed / 2) - 1) 0;\n  overflow: hidden;\n  background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  &:extend(.clearfix all);\n\n  .btn,\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    .border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    .box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: @caret-width-large @caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    &:extend(.clearfix all);\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    border-top-right-radius: @btn-border-radius-base;\n    .border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    border-bottom-left-radius: @btn-border-radius-base;\n    .border-top-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    float: none;\n    display: table-cell;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n\n  > .btn-group .dropdown-menu {\n    left: auto;\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n  > .btn,\n  > .btn-group > .btn {\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0,0,0,0);\n      pointer-events: none;\n    }\n  }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n  border-top-right-radius: @radius;\n   border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n  border-bottom-right-radius: @radius;\n     border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n  border-bottom-right-radius: @radius;\n   border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n  border-bottom-left-radius: @radius;\n     border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-left: 0;\n    padding-right: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  font-weight: normal;\n  line-height: 1;\n  color: @input-color;\n  text-align: center;\n  background-color: @input-group-addon-bg;\n  border: 1px solid @input-group-addon-border-color;\n  border-radius: @input-border-radius;\n\n  // Sizing\n  &.input-sm {\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    border-radius: @input-border-radius-small;\n  }\n  &.input-lg {\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    border-radius: @input-border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  .border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  .border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      z-index: 2;\n      margin-left: -1px;\n    }\n  }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  margin-bottom: 0;\n  padding-left: 0; // Override default ul/ol\n  list-style: none;\n  &:extend(.clearfix all);\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: @nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: @nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: @nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: @nav-disabled-link-hover-color;\n        text-decoration: none;\n        background-color: transparent;\n        cursor: @cursor-disabled;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: @nav-link-hover-bg;\n      border-color: @link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    .nav-divider();\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid @nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: @line-height-base;\n      border: 1px solid transparent;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n      &:hover {\n        border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-tabs-active-link-hover-color;\n        background-color: @nav-tabs-active-link-hover-bg;\n        border: 1px solid @nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n        cursor: default;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    .nav-justified();\n    .nav-tabs-justified();\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: @nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-pills-active-link-hover-color;\n        background-color: @nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n    > a {\n      text-align: center;\n      margin-bottom: 5px;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: @border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid @nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: @nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: @navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: @navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: @navbar-padding-horizontal;\n  padding-left:  @navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n  &:extend(.clearfix all);\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  .navbar-collapse {\n    max-height: @navbar-collapse-max-height;\n\n    @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n      max-height: 200px;\n    }\n  }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -@navbar-padding-horizontal;\n    margin-left:  -@navbar-padding-horizontal;\n\n    @media (min-width: @grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left:  0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: @zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: @zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  padding: @navbar-padding-vertical @navbar-padding-horizontal;\n  font-size: @font-size-large;\n  line-height: @line-height-computed;\n  height: @navbar-height;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  > img {\n    display: block;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -@navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: @navbar-padding-horizontal;\n  padding: 9px 10px;\n  .navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: @border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: 0;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n  > li > a {\n    padding-top:    10px;\n    padding-bottom: 10px;\n    line-height: @line-height-computed;\n  }\n\n  @media (max-width: @grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: @line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top:    @navbar-padding-vertical;\n        padding-bottom: @navbar-padding-vertical;\n      }\n    }\n  }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  margin-left: -@navbar-padding-horizontal;\n  margin-right: -@navbar-padding-horizontal;\n  padding: 10px @navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n  .box-shadow(@shadow);\n\n  // Mixin behavior for optimum display\n  .form-inline();\n\n  .form-group {\n    @media (max-width: @grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  .navbar-vertical-align(@input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    .box-shadow(none);\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  .border-top-radius(@navbar-border-radius);\n  .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  .navbar-vertical-align(@input-height-base);\n\n  &.btn-sm {\n    .navbar-vertical-align(@input-height-small);\n  }\n  &.btn-xs {\n    .navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  .navbar-vertical-align(@line-height-computed);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin-left: @navbar-padding-horizontal;\n    margin-right: @navbar-padding-horizontal;\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-left  { .pull-left(); }\n  .navbar-right {\n    .pull-right();\n    margin-right: -@navbar-padding-horizontal;\n\n    ~ .navbar-right {\n      margin-right: 0;\n    }\n  }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: @navbar-default-bg;\n  border-color: @navbar-default-border;\n\n  .navbar-brand {\n    color: @navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-brand-hover-color;\n      background-color: @navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-hover-color;\n        background-color: @navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-active-color;\n        background-color: @navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n        background-color: @navbar-default-link-disabled-bg;\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: @navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: @navbar-default-border;\n  }\n\n  // Dropdown menu items\n  .navbar-nav {\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: @navbar-default-link-active-bg;\n        color: @navbar-default-link-active-color;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: @navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-hover-color;\n            background-color: @navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-active-color;\n            background-color: @navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-disabled-color;\n            background-color: @navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: @navbar-default-link-color;\n    &:hover {\n      color: @navbar-default-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-default-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n      }\n    }\n  }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: @navbar-inverse-bg;\n  border-color: @navbar-inverse-border;\n\n  .navbar-brand {\n    color: @navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-brand-hover-color;\n      background-color: @navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-hover-color;\n        background-color: @navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-active-color;\n        background-color: @navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n        background-color: @navbar-inverse-link-disabled-bg;\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: @navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken(@navbar-inverse-bg, 7%);\n  }\n\n  // Dropdowns\n  .navbar-nav {\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: @navbar-inverse-link-active-bg;\n        color: @navbar-inverse-link-active-color;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: @navbar-inverse-border;\n        }\n        .divider {\n          background-color: @navbar-inverse-border;\n        }\n        > li > a {\n          color: @navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-hover-color;\n            background-color: @navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-active-color;\n            background-color: @navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-disabled-color;\n            background-color: @navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-link {\n    color: @navbar-inverse-link-color;\n    &:hover {\n      color: @navbar-inverse-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-inverse-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n      }\n    }\n  }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n  margin-top: ((@navbar-height - @element-height) / 2);\n  margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n  .clearfix();\n}\n.center-block {\n  .center-block();\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n  display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n  position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n  margin-bottom: @line-height-computed;\n  list-style: none;\n  background-color: @breadcrumb-bg;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n      padding: 0 5px;\n      color: @breadcrumb-color;\n    }\n  }\n\n  > .active {\n    color: @breadcrumb-active-color;\n  }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: @padding-base-vertical @padding-base-horizontal;\n      line-height: @line-height-base;\n      text-decoration: none;\n      color: @pagination-color;\n      background-color: @pagination-bg;\n      border: 1px solid @pagination-border;\n      margin-left: -1px;\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        .border-left-radius(@border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius-base);\n      }\n    }\n  }\n\n  > li > a,\n  > li > span {\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: @pagination-hover-color;\n      background-color: @pagination-hover-bg;\n      border-color: @pagination-hover-border;\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 3;\n      color: @pagination-active-color;\n      background-color: @pagination-active-bg;\n      border-color: @pagination-active-border;\n      cursor: default;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: @pagination-disabled-color;\n      background-color: @pagination-disabled-bg;\n      border-color: @pagination-disabled-border;\n      cursor: @cursor-disabled;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  > li {\n    > a,\n    > span {\n      padding: @padding-vertical @padding-horizontal;\n      font-size: @font-size;\n      line-height: @line-height;\n    }\n    &:first-child {\n      > a,\n      > span {\n        .border-left-radius(@border-radius);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius);\n      }\n    }\n  }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  list-style: none;\n  text-align: center;\n  &:extend(.clearfix all);\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: @pager-bg;\n      border: 1px solid @pager-border;\n      border-radius: @pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: @pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: @pager-disabled-color;\n      background-color: @pager-bg;\n      cursor: @cursor-disabled;\n    }\n  }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: @label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // Add hover effects, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @label-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  .label-variant(@label-default-bg);\n}\n\n.label-primary {\n  .label-variant(@label-primary-bg);\n}\n\n.label-success {\n  .label-variant(@label-success-bg);\n}\n\n.label-info {\n  .label-variant(@label-info-bg);\n}\n\n.label-warning {\n  .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n  .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n  background-color: @color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      background-color: darken(@color, 10%);\n    }\n  }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: @font-size-small;\n  font-weight: @badge-font-weight;\n  color: @badge-color;\n  line-height: @badge-line-height;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: @badge-bg;\n  border-radius: @badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n\n  .btn-xs &,\n  .btn-group-xs > .btn & {\n    top: 0;\n    padding: 1px 5px;\n  }\n\n  // Hover state, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @badge-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Account for badges in navs\n  .list-group-item.active > &,\n  .nav-pills > .active > a > & {\n    color: @badge-active-color;\n    background-color: @badge-active-bg;\n  }\n\n  .list-group-item > & {\n    float: right;\n  }\n\n  .list-group-item > & + & {\n    margin-right: 5px;\n  }\n\n  .nav-pills > li > a > & {\n    margin-left: 3px;\n  }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding-top:    @jumbotron-padding;\n  padding-bottom: @jumbotron-padding;\n  margin-bottom: @jumbotron-padding;\n  color: @jumbotron-color;\n  background-color: @jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: @jumbotron-heading-color;\n  }\n\n  p {\n    margin-bottom: (@jumbotron-padding / 2);\n    font-size: @jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  > hr {\n    border-top-color: darken(@jumbotron-bg, 10%);\n  }\n\n  .container &,\n  .container-fluid & {\n    border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: @screen-sm-min) {\n    padding-top:    (@jumbotron-padding * 1.6);\n    padding-bottom: (@jumbotron-padding * 1.6);\n\n    .container &,\n    .container-fluid & {\n      padding-left:  (@jumbotron-padding * 2);\n      padding-right: (@jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: @jumbotron-heading-font-size;\n    }\n  }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: @thumbnail-padding;\n  margin-bottom: @line-height-computed;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(border .2s ease-in-out);\n\n  > img,\n  a > img {\n    &:extend(.img-responsive);\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  // Add a hover state for linked versions only\n  a&:hover,\n  a&:focus,\n  a&.active {\n    border-color: @link-color;\n  }\n\n  // Image captions\n  .caption {\n    padding: @thumbnail-caption-padding;\n    color: @thumbnail-caption-color;\n  }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: @alert-padding;\n  margin-bottom: @line-height-computed;\n  border: 1px solid transparent;\n  border-radius: @alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    // Specified for the h4 to prevent conflicts of changing @headings-color\n    color: inherit;\n  }\n\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: @alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n  padding-right: (@alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n  .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n  .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n  .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n  background-color: @background;\n  border-color: @border;\n  color: @text-color;\n\n  hr {\n    border-top-color: darken(@border, 5%);\n  }\n  .alert-link {\n    color: darken(@text-color, 10%);\n  }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  overflow: hidden;\n  height: @line-height-computed;\n  margin-bottom: @line-height-computed;\n  background-color: @progress-bg;\n  border-radius: @progress-border-radius;\n  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: @font-size-small;\n  line-height: @line-height-computed;\n  color: @progress-bar-color;\n  text-align: center;\n  background-color: @progress-bar-bg;\n  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n  .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  #gradient > .striped();\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n  .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n  // Horizontal gradient, from left to right\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n    background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n  }\n\n  // Vertical gradient, from top to bottom\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Opera 12\n    background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n  }\n\n  .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n    background-repeat: repeat-x;\n    background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n    background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  }\n  .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n  .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n  .radial(@inner-color: #555; @outer-color: #333) {\n    background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n    background-image: radial-gradient(circle, @inner-color, @outer-color);\n    background-repeat: no-repeat;\n  }\n  .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n    background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n  }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n  background-color: @color;\n\n  // Deprecated parent class requirement as of v3.2.0\n  .progress-striped & {\n    #gradient > .striped();\n  }\n}\n",".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}\n\n.media,\n.media-body {\n  zoom: 1;\n  overflow: hidden;\n}\n\n.media-body {\n  width: 10000px;\n}\n\n.media-object {\n  display: block;\n\n  // Fix collapse in webkit from max-width: 100% and display: table-cell.\n  &.img-thumbnail {\n    max-width: none;\n  }\n}\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n\n.media-middle {\n  vertical-align: middle;\n}\n\n.media-bottom {\n  vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // No need to set list-style: none; since .list-group-item is block level\n  margin-bottom: 20px;\n  padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -1px;\n  background-color: @list-group-bg;\n  border: 1px solid @list-group-border;\n\n  // Round the first and last items\n  &:first-child {\n    .border-top-radius(@list-group-border-radius);\n  }\n  &:last-child {\n    margin-bottom: 0;\n    .border-bottom-radius(@list-group-border-radius);\n  }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n  color: @list-group-link-color;\n\n  .list-group-item-heading {\n    color: @list-group-link-heading-color;\n  }\n\n  // Hover state\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    color: @list-group-link-hover-color;\n    background-color: @list-group-hover-bg;\n  }\n}\n\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n\n.list-group-item {\n  // Disabled state\n  &.disabled,\n  &.disabled:hover,\n  &.disabled:focus {\n    background-color: @list-group-disabled-bg;\n    color: @list-group-disabled-color;\n    cursor: @cursor-disabled;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-disabled-text-color;\n    }\n  }\n\n  // Active class on item itself, not parent\n  &.active,\n  &.active:hover,\n  &.active:focus {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: @list-group-active-color;\n    background-color: @list-group-active-bg;\n    border-color: @list-group-active-border;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading,\n    .list-group-item-heading > small,\n    .list-group-item-heading > .small {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-active-text-color;\n    }\n  }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n  .list-group-item-@{state} {\n    color: @color;\n    background-color: @background;\n\n    a&,\n    button& {\n      color: @color;\n\n      .list-group-item-heading {\n        color: inherit;\n      }\n\n      &:hover,\n      &:focus {\n        color: @color;\n        background-color: darken(@background, 5%);\n      }\n      &.active,\n      &.active:hover,\n      &.active:focus {\n        color: #fff;\n        background-color: @color;\n        border-color: @color;\n      }\n    }\n  }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: @line-height-computed;\n  background-color: @panel-bg;\n  border: 1px solid transparent;\n  border-radius: @panel-border-radius;\n  .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n  padding: @panel-body-padding;\n  &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n  padding: @panel-heading-padding;\n  border-bottom: 1px solid transparent;\n  .border-top-radius((@panel-border-radius - 1));\n\n  > .dropdown .dropdown-toggle {\n    color: inherit;\n  }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: ceil((@font-size-base * 1.125));\n  color: inherit;\n\n  > a,\n  > small,\n  > .small,\n  > small > a,\n  > .small > a {\n    color: inherit;\n  }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n  padding: @panel-footer-padding;\n  background-color: @panel-footer-bg;\n  border-top: 1px solid @panel-inner-border;\n  .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n  > .list-group,\n  > .panel-collapse > .list-group {\n    margin-bottom: 0;\n\n    .list-group-item {\n      border-width: 1px 0;\n      border-radius: 0;\n    }\n\n    // Add border top radius for first one\n    &:first-child {\n      .list-group-item:first-child {\n        border-top: 0;\n        .border-top-radius((@panel-border-radius - 1));\n      }\n    }\n\n    // Add border bottom radius for last one\n    &:last-child {\n      .list-group-item:last-child {\n        border-bottom: 0;\n        .border-bottom-radius((@panel-border-radius - 1));\n      }\n    }\n  }\n  > .panel-heading + .panel-collapse > .list-group {\n    .list-group-item:first-child {\n      .border-top-radius(0);\n    }\n  }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n  .list-group-item:first-child {\n    border-top-width: 0;\n  }\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n  > .table,\n  > .table-responsive > .table,\n  > .panel-collapse > .table {\n    margin-bottom: 0;\n\n    caption {\n      padding-left: @panel-body-padding;\n      padding-right: @panel-body-padding;\n    }\n  }\n  // Add border top radius for first one\n  > .table:first-child,\n  > .table-responsive:first-child > .table:first-child {\n    .border-top-radius((@panel-border-radius - 1));\n\n    > thead:first-child,\n    > tbody:first-child {\n      > tr:first-child {\n        border-top-left-radius: (@panel-border-radius - 1);\n        border-top-right-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-top-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-top-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  // Add border bottom radius for last one\n  > .table:last-child,\n  > .table-responsive:last-child > .table:last-child {\n    .border-bottom-radius((@panel-border-radius - 1));\n\n    > tbody:last-child,\n    > tfoot:last-child {\n      > tr:last-child {\n        border-bottom-left-radius: (@panel-border-radius - 1);\n        border-bottom-right-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-bottom-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-bottom-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  > .panel-body + .table,\n  > .panel-body + .table-responsive,\n  > .table + .panel-body,\n  > .table-responsive + .panel-body {\n    border-top: 1px solid @table-border-color;\n  }\n  > .table > tbody:first-child > tr:first-child th,\n  > .table > tbody:first-child > tr:first-child td {\n    border-top: 0;\n  }\n  > .table-bordered,\n  > .table-responsive > .table-bordered {\n    border: 0;\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th:first-child,\n        > td:first-child {\n          border-left: 0;\n        }\n        > th:last-child,\n        > td:last-child {\n          border-right: 0;\n        }\n      }\n    }\n    > thead,\n    > tbody {\n      > tr:first-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n    > tbody,\n    > tfoot {\n      > tr:last-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n  }\n  > .table-responsive {\n    border: 0;\n    margin-bottom: 0;\n  }\n}\n\n\n// Collapsable panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n  margin-bottom: @line-height-computed;\n\n  // Tighten up margin so it's only between panels\n  .panel {\n    margin-bottom: 0;\n    border-radius: @panel-border-radius;\n\n    + .panel {\n      margin-top: 5px;\n    }\n  }\n\n  .panel-heading {\n    border-bottom: 0;\n\n    + .panel-collapse > .panel-body,\n    + .panel-collapse > .list-group {\n      border-top: 1px solid @panel-inner-border;\n    }\n  }\n\n  .panel-footer {\n    border-top: 0;\n    + .panel-collapse .panel-body {\n      border-bottom: 1px solid @panel-inner-border;\n    }\n  }\n}\n\n\n// Contextual variations\n.panel-default {\n  .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n  .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n  .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n  .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n  .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n  .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n  border-color: @border;\n\n  & > .panel-heading {\n    color: @heading-text-color;\n    background-color: @heading-bg-color;\n    border-color: @heading-border;\n\n    + .panel-collapse > .panel-body {\n      border-top-color: @border;\n    }\n    .badge {\n      color: @heading-bg-color;\n      background-color: @heading-text-color;\n    }\n  }\n  & > .panel-footer {\n    + .panel-collapse > .panel-body {\n      border-bottom-color: @border;\n    }\n  }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    height: 100%;\n    width: 100%;\n    border: 0;\n  }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: @well-bg;\n  border: 1px solid @well-border;\n  border-radius: @border-radius-base;\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0,0,0,.15);\n  }\n}\n\n// Sizes\n.well-lg {\n  padding: 24px;\n  border-radius: @border-radius-large;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: (@font-size-base * 1.5);\n  font-weight: @close-font-weight;\n  line-height: 1;\n  color: @close-color;\n  text-shadow: @close-text-shadow;\n  .opacity(.2);\n\n  &:hover,\n  &:focus {\n    color: @close-color;\n    text-decoration: none;\n    cursor: pointer;\n    .opacity(.5);\n  }\n\n  // Additional properties for button version\n  // iOS requires the button element instead of an anchor tag.\n  // If you want the anchor version, it requires `href=\"#\"`.\n  // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n  button& {\n    padding: 0;\n    cursor: pointer;\n    background: transparent;\n    border: 0;\n    -webkit-appearance: none;\n  }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal;\n  -webkit-overflow-scrolling: touch;\n\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n\n  // When fading in the modal, animate it to slide down\n  &.fade .modal-dialog {\n    .translate(0, -25%);\n    .transition-transform(~\"0.3s ease-out\");\n  }\n  &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  background-color: @modal-content-bg;\n  border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n  border: 1px solid @modal-content-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 3px 9px rgba(0,0,0,.5));\n  background-clip: padding-box;\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal-background;\n  background-color: @modal-backdrop-bg;\n  // Fade for backdrop\n  &.fade { .opacity(0); }\n  &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  padding: @modal-title-padding;\n  border-bottom: 1px solid @modal-header-border-color;\n  min-height: (@modal-title-padding + @modal-title-line-height);\n}\n// Close icon\n.modal-header .close {\n  margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n  margin: 0;\n  line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: @modal-inner-padding;\n  text-align: right; // right align buttons\n  border-top: 1px solid @modal-footer-border-color;\n  &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-left: 5px;\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    width: @modal-md;\n    margin: 30px auto;\n  }\n  .modal-content {\n    .box-shadow(0 5px 15px rgba(0,0,0,.5));\n  }\n\n  // Modal sizes\n  .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n  .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: @zindex-tooltip;\n  display: block;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  .reset-text();\n  font-size: @font-size-small;\n\n  .opacity(0);\n\n  &.in     { .opacity(@tooltip-opacity); }\n  &.top    { margin-top:  -3px; padding: @tooltip-arrow-width 0; }\n  &.right  { margin-left:  3px; padding: 0 @tooltip-arrow-width; }\n  &.bottom { margin-top:   3px; padding: @tooltip-arrow-width 0; }\n  &.left   { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: @tooltip-max-width;\n  padding: 3px 8px;\n  color: @tooltip-color;\n  text-align: center;\n  background-color: @tooltip-bg;\n  border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-left .tooltip-arrow {\n    bottom: 0;\n    right: @tooltip-arrow-width;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-right .tooltip-arrow {\n    bottom: 0;\n    left: @tooltip-arrow-width;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-right-color: @tooltip-arrow-color;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-left-color: @tooltip-arrow-color;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-left .tooltip-arrow {\n    top: 0;\n    right: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-right .tooltip-arrow {\n    top: 0;\n    left: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n}\n",".reset-text() {\n  font-family: @font-family-base;\n  // We deliberately do NOT reset font-size.\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: @line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: @zindex-popover;\n  display: none;\n  max-width: @popover-max-width;\n  padding: 1px;\n  // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  .reset-text();\n  font-size: @font-size-base;\n\n  background-color: @popover-bg;\n  background-clip: padding-box;\n  border: 1px solid @popover-fallback-border-color;\n  border: 1px solid @popover-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n  // Offset the popover to account for the popover arrow\n  &.top     { margin-top: -@popover-arrow-width; }\n  &.right   { margin-left: @popover-arrow-width; }\n  &.bottom  { margin-top: @popover-arrow-width; }\n  &.left    { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n  margin: 0; // reset heading margin\n  padding: 8px 14px;\n  font-size: @font-size-base;\n  background-color: @popover-title-bg;\n  border-bottom: 1px solid darken(@popover-title-bg, 5%);\n  border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n  &,\n  &:after {\n    position: absolute;\n    display: block;\n    width: 0;\n    height: 0;\n    border-color: transparent;\n    border-style: solid;\n  }\n}\n.popover > .arrow {\n  border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n  border-width: @popover-arrow-width;\n  content: \"\";\n}\n\n.popover {\n  &.top > .arrow {\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-bottom-width: 0;\n    border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-top-color: @popover-arrow-outer-color;\n    bottom: -@popover-arrow-outer-width;\n    &:after {\n      content: \" \";\n      bottom: 1px;\n      margin-left: -@popover-arrow-width;\n      border-bottom-width: 0;\n      border-top-color: @popover-arrow-color;\n    }\n  }\n  &.right > .arrow {\n    top: 50%;\n    left: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-left-width: 0;\n    border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-right-color: @popover-arrow-outer-color;\n    &:after {\n      content: \" \";\n      left: 1px;\n      bottom: -@popover-arrow-width;\n      border-left-width: 0;\n      border-right-color: @popover-arrow-color;\n    }\n  }\n  &.bottom > .arrow {\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-top-width: 0;\n    border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-bottom-color: @popover-arrow-outer-color;\n    top: -@popover-arrow-outer-width;\n    &:after {\n      content: \" \";\n      top: 1px;\n      margin-left: -@popover-arrow-width;\n      border-top-width: 0;\n      border-bottom-color: @popover-arrow-color;\n    }\n  }\n\n  &.left > .arrow {\n    top: 50%;\n    right: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-right-width: 0;\n    border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-left-color: @popover-arrow-outer-color;\n    &:after {\n      content: \" \";\n      right: 1px;\n      border-right-width: 0;\n      border-left-color: @popover-arrow-color;\n      bottom: -@popover-arrow-width;\n    }\n  }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n\n  > .item {\n    display: none;\n    position: relative;\n    .transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      &:extend(.img-responsive);\n      line-height: 1;\n    }\n\n    // WebKit CSS3 transforms for supported devices\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      .transition-transform(~'0.6s ease-in-out');\n      .backface-visibility(~'hidden');\n      .perspective(1000px);\n\n      &.next,\n      &.active.right {\n        .translate3d(100%, 0, 0);\n        left: 0;\n      }\n      &.prev,\n      &.active.left {\n        .translate3d(-100%, 0, 0);\n        left: 0;\n      }\n      &.next.left,\n      &.prev.right,\n      &.active {\n        .translate3d(0, 0, 0);\n        left: 0;\n      }\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev {\n    display: block;\n  }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: @carousel-control-width;\n  .opacity(@carousel-control-opacity);\n  font-size: @carousel-control-font-size;\n  color: @carousel-control-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  // We can't have this transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Set gradients for backgrounds\n  &.left {\n    #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n  }\n  &.right {\n    left: auto;\n    right: 0;\n    #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    outline: 0;\n    color: @carousel-control-color;\n    text-decoration: none;\n    .opacity(.9);\n  }\n\n  // Toggles\n  .icon-prev,\n  .icon-next,\n  .glyphicon-chevron-left,\n  .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    margin-top: -10px;\n    z-index: 5;\n    display: inline-block;\n  }\n  .icon-prev,\n  .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px;\n  }\n  .icon-next,\n  .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px;\n  }\n  .icon-prev,\n  .icon-next {\n    width:  20px;\n    height: 20px;\n    line-height: 1;\n    font-family: serif;\n  }\n\n\n  .icon-prev {\n    &:before {\n      content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n    }\n  }\n  .icon-next {\n    &:before {\n      content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n    }\n  }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center;\n\n  li {\n    display: inline-block;\n    width:  10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    border: 1px solid @carousel-indicator-border-color;\n    border-radius: 10px;\n    cursor: pointer;\n\n    // IE8-9 hack for event handling\n    //\n    // Internet Explorer 8-9 does not support clicks on elements without a set\n    // `background-color`. We cannot use `filter` since that's not viewed as a\n    // background color by the browser. Thus, a hack is needed.\n    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n    //\n    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n    // set alpha transparency for the best results possible.\n    background-color: #000 \\9; // IE8\n    background-color: rgba(0,0,0,0); // IE9\n  }\n  .active {\n    margin: 0;\n    width:  12px;\n    height: 12px;\n    background-color: @carousel-indicator-active-bg;\n  }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: @carousel-caption-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  & .btn {\n    text-shadow: none; // No shadow for button elements in carousel-caption\n  }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n  // Scale up the controls a smidge\n  .carousel-control {\n    .glyphicon-chevron-left,\n    .glyphicon-chevron-right,\n    .icon-prev,\n    .icon-next {\n      width: 30px;\n      height: 30px;\n      margin-top: -15px;\n      font-size: 30px;\n    }\n    .glyphicon-chevron-left,\n    .icon-prev {\n      margin-left: -15px;\n    }\n    .glyphicon-chevron-right,\n    .icon-next {\n      margin-right: -15px;\n    }\n  }\n\n  // Show and left align the captions\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px;\n  }\n\n  // Move up the indicators\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contenteditable attribute is included anywhere else in the document.\n//    Otherwise it causes space to appear at the top and bottom of elements\n//    that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n//    `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n  &:before,\n  &:after {\n    content: \" \"; // 1\n    display: table; // 2\n  }\n  &:after {\n    clear: both;\n  }\n}\n","// Center-align a block level element\n\n.center-block() {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (will be removed in v4)\n.hide-text() {\n  font: ~\"0/0\" a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n  .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n  width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n\n.visible-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-visibility();\n  }\n}\n.visible-xs-block {\n  @media (max-width: @screen-xs-max) {\n    display: block !important;\n  }\n}\n.visible-xs-inline {\n  @media (max-width: @screen-xs-max) {\n    display: inline !important;\n  }\n}\n.visible-xs-inline-block {\n  @media (max-width: @screen-xs-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-visibility();\n  }\n}\n.visible-sm-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: block !important;\n  }\n}\n.visible-sm-inline {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline !important;\n  }\n}\n.visible-sm-inline-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-visibility();\n  }\n}\n.visible-md-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: block !important;\n  }\n}\n.visible-md-inline {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline !important;\n  }\n}\n.visible-md-inline-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-visibility();\n  }\n}\n.visible-lg-block {\n  @media (min-width: @screen-lg-min) {\n    display: block !important;\n  }\n}\n.visible-lg-inline {\n  @media (min-width: @screen-lg-min) {\n    display: inline !important;\n  }\n}\n.visible-lg-inline-block {\n  @media (min-width: @screen-lg-min) {\n    display: inline-block !important;\n  }\n}\n\n.hidden-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-invisibility();\n  }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n  .responsive-invisibility();\n\n  @media print {\n    .responsive-visibility();\n  }\n}\n.visible-print-block {\n  display: none !important;\n\n  @media print {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n\n  @media print {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n\n  @media print {\n    display: inline-block !important;\n  }\n}\n\n.hidden-print {\n  @media print {\n    .responsive-invisibility();\n  }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n  display: block !important;\n  table&  { display: table !important; }\n  tr&     { display: table-row !important; }\n  th&,\n  td&     { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n  display: none !important;\n}\n"]}
diff --git a/web/css/cardio.css b/web/css/cardio.css
deleted file mode 100644
index 85de95e429..0000000000
--- a/web/css/cardio.css
+++ /dev/null
@@ -1,1244 +0,0 @@
-body {
-	font-family: 'Roboto', 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif;
-	font-size: 14px;
-	overflow-x: hidden;
-	color: #2a3237;
-	-webkit-font-smoothing: antialiased;
-	-moz-osx-font-smoothing: grayscale;
-}
-.parallax {
-	position: absolute;
-	overflow: hidden;
-	width: 100%;
-	-webkit-transform: translateZ(0);
-	-ms-transform: translateZ(0);
-	transform: translateZ(0);
-}
-
-.parallax img {
-	width: 100%;
-	height: 100%;
-}
-/* Preloader */
-
-.preloader {
-	position: fixed;
-	z-index: 9999;
-	width: 100%;
-	height: 100%;
-	background-color: white;
-}
-
-.preloader img {
-	position: absolute;
-	top: calc(40% - 60px);
-	left: calc(50% - 150px);
-}
-
-.preloader div {
-	display: none;
-	/* Preload the Second Pricing Image */
-	background: url(../img/pricing2.jpg) no-repeat 9999px 9999px;
-	background-position: 9999px 9999px;
-}
-
-/* Typography */
-
-p {
-	font-size: 18px;
-	line-height: 1.5;
-	color: #8a8e91;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-	font-family: 'Roboto', 'Avenir Next', 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif;
-	position: relative;
-	margin: 10px 0;
-}
-
-h1 {
-	font-size: 60px;
-}
-
-h2 {
-	font-size: 48px;
-}
-
-h3 {
-	font-size: 30px;
-}
-
-h4 {
-	font-size: 24px;
-}
-
-h5 {
-	font-size: 18px;
-}
-
-h6 {
-	font-size: 16px;
-}
-
-ul.white-list {
-	padding: 0;
-	list-style-type: none;
-}
-
-ul.white-list li {
-	font-size: 18px;
-	margin: 10px 0;
-	color: #fff;
-}
-
-ul.white-list li:before {
-	content: ' ';
-	position: relative;
-	top: -3px;
-	display: inline-block;
-	width: 6px;
-	height: 6px;
-	margin-right: 15px;
-	background: white;
-}
-
-header {
-	position: relative;
-	width: 100%;
-	color: white;
-	background: rgba(28, 36, 65, 0.93);
-	background: url('../img/header.jpg');
-	background-size: cover;
-}
-
-header .table {
-	display: table;
-	height: 100%;
-}
-
-header .container {
-	height: 100%;
-}
-
-header .header-text {
-	display: table-cell;
-	text-align: center;
-	vertical-align: middle;
-	color: white;
-}
-
-header .typed {
-	display: inline-block;
-	margin: 0;
-}
-
-header .typed-cursor {
-	font-size: 60px;
-	display: inline-block;
-	margin: 0 10px;
-	color: #00a8ff;
-	-webkit-animation-name: flash;
-	animation-name: flash;
-	-webkit-animation-duration: 1s;
-	animation-duration: 1s;
-	-webkit-animation-iteration-count: infinite;
-	animation-iteration-count: infinite;
-}
-
-a {
-	text-decoration: none;
-	color: #00a8ff;
-	-webkit-transition: all 0.3s ease;
-	transition: all 0.3s ease;
-}
-/* Navigation Bar ( Navbar ) */
-
-nav.navbar {
-	position: absolute;
-	z-index: 9500;
-	width: 100%;
-	width: 100vw;
-	-webkit-transition: all 0.3s ease;
-	transition: all 0.3s ease;
-}
-
-nav.navbar .navbar-nav li.active a:not(.btn) {
-	color: #00a8ff !important;
-}
-
-nav.navbar-fixed-top {
-	z-index: 9499;
-	top: 0;
-	padding: 25px 0;
-	opacity: 0;
-	background: white;
-	box-shadow: 0px 4px 3px rgba(0, 0, 0, 0.05);
-}
-
-nav.navbar-fixed-top .navbar-nav > li > a:not(.btn) {
-	color: #bbb;
-}
-
-.icon-bar {
-	background: #bbb;
-}
-/* Buttons */
-
-.btn {
-	font-size: 14px;
-	display: inline-block;
-	padding: 15px 30px;
-	color: white;
-	border: 2px solid transparent;
-	border-radius: 2px;
-	background: transparent;
-	-webkit-transition: all 0.3s ease;
-	transition: all 0.3s ease;
-     	margin: 5px;
-}
-
-
-
-.btn.btn-blue {
-	background: #00a8ff;
-}
-.btn.btn-grey {
-	background: #4e4956;
-}
-.btn.btn-orange {
-	background: #ffa500;
-}
-
-.btn.btn-red {
-        background: #e02828;
-}
-.btn.btn-green {
-        background: #25dd2b;
-}
-.btn.btn-blue:hover {
-	background: #31b9ff;
-}
-.btn.btn-grey:hover {
-	background: #31b9ff;
-}
-.btn.btn-blue-fill {
-	color: #00a8ff;
-	border-color: #00a8ff;
-	background: transparent;
-}
-.btn.btn-grey-fill {
-	color: #00a8ff;
-	border-color: #00a8ff;
-	background: transparent;
-}
-.btn.btn-blue-fill:hover {
-	color: white;
-	background: #00a8ff;
-}
-.btn.btn-grey-fill:hover {
-	color: white;
-	background: #00a8ff;
-}
-.btn.btn-white-fill {
-	color: #fff;
-	border-color: #fff;
-	background: transparent;
-}
-
-.btn.btn-white-fill:hover {
-	color: #00a8ff;
-	background: #fff;
-}
-
-.btn.btn-gray-fill {
-	color: #fff;
-	border-color: #fff;
-	background: transparent;
-}
-
-.btn.btn-gray-fill:hover {
-	border-color: #bbb;
-	background: #bbb;
-}
-
-/* Blink Cursor */
-
-.blink {
-	position: relative;
-	top: 4px;
-	display: inline-block;
-	width: 4px;
-	height: 50px;
-	height: 5vh;
-	margin: 0 10px;
-}
-
-.navbar {
-	top: 50px;
-}
-
-.container {
-	position: relative;
-	z-index: 1;
-}
-/* Sections */
-section {
-	position: relative;
-}
-
-.section {
-	padding: 40px 0;
-	background: #fff;
-}
-
-.section-padded {
-	padding: 140px 0 40px;
-}
-
-.cut-top {
-	content: ' ';
-	position: absolute;
-	z-index: 1;
-	top: -80px;
-	left: 0;
-	width: 0;
-	height: 0;
-	border-top: 80px solid transparent;
-	border-right: 30px solid white;
-}
-
-.cut-bottom {
-	content: ' ';
-	position: absolute;
-	z-index: 1;
-	bottom: -80px;
-	left: 0;
-	width: 0;
-	height: 0;
-	border-bottom: 80px solid transparent;
-	border-left: 30px solid white;
-}
-
-.intro-tables {
-	top: -130px;
-	position: relative;
-}
-
-.intro-table {
-	-webkit-background-size: cover;
-	background-size: cover;
-	background-repeat: repeat;
-	background-position: 0% 0%;
-}
-
-.intro-table-first {
-	background-image: url('../img/table-1.jpg');
-}
-
-.intro-table-hover {
-	-webkit-transition: background-image 0.3s ease, background-position 0.3s;
-	transition: background-image 0.3s ease, background-position 0.3s;
-	background-image: url('../img/table-2.jpg');
-}
-
-.intro-table-hover h4 {
-	-webkit-transform: translateY(170px);
-	transform: translateY(170px);
-	-webkit-transition: -webkit-transform 0.3s;
-	transition: transform 0.3s;
-}
-
-.intro-table-hover:hover {
-	background-image: url('../img/table-2-hover.jpg');
-	background-position: 50% 50%;
-}
-
-.intro-table-third {
-	background-image: url('../img/table-3.jpg');
-}
-
-.intro-table-hover .expand {
-	margin: 30px;
-	margin-top: 120px;
-	opacity: 0;
-	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
-	transition: transform 0.3s ease, opacity 0.3s;
-	-webkit-transform: scale(0.6);
-	-ms-transform: scale(0.6);
-	transform: scale(0.6);
-}
-
-.intro-table-hover:hover h4 {
-	-webkit-transform: translateY(0);
-	transform: translateY(0);
-}
-
-.intro-table-hover:hover .expand {
-	opacity: 1;
-	-webkit-transform: scale(1);
-	-ms-transform: scale(1);
-	transform: scale(1);
-}
-
-.intro-table-hover .hide-hover {
-	-webkit-transition: opacity 0.3s ease;
-	transition: opacity 0.3s ease;
-}
-
-.intro-table-hover:hover .hide-hover {
-	opacity: 0;
-}
-
-.intro-tables .intro-table {
-	position: relative;
-	width: 100%;
-	height: 300px;
-	margin: 20px 0;
-}
-
-.intro-tables .intro-table .heading {
-	margin: 0;
-	padding: 30px;
-}
-
-.intro-tables .intro-table .small-heading {
-	margin: 0;
-	padding: 0 30px;
-}
-
-.intro-tables .intro-table .bottom {
-	position: absolute;
-	bottom: 0;
-}
-
-.intro-tables .intro-table .owl-schedule .schedule-row {
-	padding: 10px 30px;
-	color: white;
-	transition: all 0.3s ease;
-}
-
-.owl-schedule .schedule-row:not(:last-child) {
-	border-bottom: 1px solid rgba(255, 255, 255, 0.4);
-}
-
-.owl-testimonials .author {
-	margin-top: 50px;
-}
-
-.ripple-effect {
-	position: absolute;
-	width: 50px;
-	height: 50px;
-	border-radius: 50%;
-	background: white;
-	-webkit-animation: ripple-animation 2s;
-	animation: ripple-animation 2s;
-}
-
-@-webkit-keyframes ripple-animation {
-	from {
-		opacity: 0.2;
-		-webkit-transform: scale(1);
-		transform: scale(1);
-	}
-	to {
-		opacity: 0;
-		-webkit-transform: scale(100);
-		transform: scale(100);
-	}
-}
-
-@keyframes ripple-animation {
-	from {
-		opacity: 0.2;
-		-webkit-transform: scale(1);
-		transform: scale(1);
-	}
-	to {
-		opacity: 0;
-		-webkit-transform: scale(100);
-		transform: scale(100);
-	}
-}
-
-.services {
-	margin: 40px 0;
-}
-
-.service {
-	width: 100%;
-	height: 320px;
-	margin: 80px 0;
-	text-align: center;
-	border: 1px solid #ddd;
-	-webkit-transition: all 0.3s ease;
-	transition: all 0.3s ease;
-}
-
-.service .icon-holder {
-	position: relative;
-	top: 100px;
-	display: inline-block;
-	margin-bottom: 40px;
-	padding: 10px;
-	background: white;
-	-webkit-transition: all 0.3s ease;
-	transition: all 0.3s ease;
-}
-
-.service .heading {
-	position: relative;
-	top: 80px;
-	-webkit-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-	transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-}
-
-.service .icon-holder > img.icon {
-	width: 40px;
-}
-
-.service:hover {
-	border-color: #00a8ff;
-}
-
-.service:hover .icon-holder {
-	top: -30px;
-}
-
-.service:hover .heading {
-	top: -30px;
-}
-
-.service .description {
-	width: 80%;
-	margin: 0 auto;
-	opacity: 0;
-	-webkit-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-	transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-	-webkit-transform: scale(0);
-	-ms-transform: scale(0);
-	transform: scale(0);
-}
-
-.service:hover .description {
-	opacity: 1;
-	-webkit-transform: scale(1);
-	-ms-transform: scale(1);
-	transform: scale(1);
-}
-
-.team {
-	margin: 80px 0;
-	padding-bottom: 60px;
-	background: white;
-	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.07);
-}
-
-.team .cover .overlay {
-	height: 250px;
-	padding-top: 60px;
-	opacity: 0;
-	background: rgba(0, 168, 255, 0.9);
-	-webkit-transition: opacity 0.45s ease;
-	transition: opacity 0.45s ease;
-}
-
-.team:hover .cover .overlay {
-	opacity: 1;
-}
-
-.team .avatar {
-	position: relative;
-	z-index: 2;
-	margin-top: -60px;
-	border-radius: 50%;
-}
-
-.team .title {
-	margin: 50px 0;
-}
-/* Pricing */
-
-#pricing {
-	background: #00a8ff url('../img/pricing1.jpg') no-repeat center center;
-	-webkit-background-size: cover;
-	background-size: cover;
-	-webkit-transition: background-image 0.6s linear 0.3s;
-	transition: background-image 0.6s linear 0.3s;
-}
-
-.owl-pricing img {
-	width: 100%;
-}
-
-.owl-pricing,
-.pricings {
-	margin-top: 100px;
-	margin-bottom: 100px;
-}
-
-.pricing {
-	position: relative;
-	width: 100%;
-}
-
-.pricings .pricing .box-main,
-.pricings .pricing .box-second {
-	position: relative;
-	left: 25%;
-	display: inline-block;
-	width: 50%;
-	height: 300px;
-	padding: 50px 40px;
-	background: #bbb;
-	-webkit-transition: -webkit-transform 0.3s, background-image 0.3s, opacity 0.3s;
-	transition: transform 0.3s, background-image 0.3s, opacity 0.3s;
-	-webkit-backface-visibility: hidden;
-	backface-visibility: hidden;
-}
-
-.pricings .pricing .box-main {
-	z-index: 10;
-	padding-top: 40px;
-}
-
-.pricings .pricing .box-main:not(.active) {
-	cursor: pointer;
-}
-
-.pricings .pricing .box-main .info-icon {
-	font-size: 14px;
-	position: absolute;
-	top: 20px;
-	right: 20px;
-	pointer-events: none;
-	opacity: 0;
-	color: #fff;
-	-webkit-transition: opacity 0.3s;
-	transition: opacity 0.3s;
-}
-
-.pricings .pricing .box-main:not(.active) .info-icon {
-	opacity: 1;
-	-webkit-transition-delay: 0.2s;
-	transition-delay: 0.2s;
-}
-
-.pricings .pricing .box-main:not(.active):hover {
-	background: #afafaf;
-}
-
-.pricings .pricing .box-main.active {
-	background: #00a8ff;
-	-webkit-transform: translateX(-99%);
-	-ms-transform: translateX(-99%);
-	transform: translateX(-99%);
-}
-
-.pricings .pricing .box-second {
-	position: absolute;
-	top: 0;
-	right: 0% !important;
-	left: auto;
-	opacity: 0;
-	background: #afafaf;
-}
-
-.pricings .pricing .box-second.active {
-	opacity: 1;
-	background: #00a8ff;
-}
-
-.pricings .pricing.active .box-main,
-.pricings .pricing .box-second {
-	background: #00a8ff;
-}
-
-.pricings .pricing .box-main a.btn {
-	margin-top: 50px;
-}
-
-.owl-twitter i.icon {
-	font-size: 36px;
-	margin-bottom: 60px;
-	color: white;
-}
-/* Footer */
-
-footer {
-	padding: 140px 0 40px;
-	background: url('../img/footer.jpg');
-	-webkit-background-size: cover;
-	background-size: cover;
-}
-
-footer .trial-button {
-	overflow: hidden !important;
-	margin: 40px 0;
-}
-
-footer .open-blink {
-	content: ' ';
-	position: relative;
-	display: inline-block;
-	width: 14px;
-	height: 14px;
-	margin: 0 20px;
-	border-radius: 50%;
-	background-color: #4caf50;
-	-webkit-animation-name: flash;
-	animation-name: flash;
-	-webkit-animation-duration: 1s;
-	animation-duration: 1s;
-	-webkit-animation-iteration-count: infinite;
-	animation-iteration-count: infinite;
-}
-
-footer .open-blink:before {
-	content: ' ';
-	position: absolute;
-	top: -8px;
-	left: -8px;
-	display: inline-block;
-	width: 30px;
-	height: 30px;
-	opacity: 0.1;
-	border-radius: 50%;
-	background-color: #4caf50;
-}
-
-footer .opening-hours {
-	margin-top: 60px;
-}
-
-footer .bottom-footer {
-	margin-top: 150px;
-}
-
-footer .social-footer {
-	padding: 0;
-	list-style: none;
-}
-
-footer .social-footer li {
-	display: inline-block;
-	margin: 0 10px;
-}
-
-footer .social-footer li a {
-	font-size: 24px;
-	color: #fff;
-}
-
-footer .social-footer li:hover a {
-	color: #00a8ff;
-}
-/* Form Control */
-
-.form-control {
-	font-size: 18px;
-	position: relative;
-	left: 0;
-	height: auto;
-	padding: 20px 30px;
-	border: 1px;
-	border-radius: 0;
-	box-shadow: 0;
-}
-
-.form-control.form-white {
-	color: #fff;
-	border: 2px solid white;
-	background: transparent;
-	-webkit-transition: background-color 0.3s;
-	transition: background-color 0.3s;
-}
-
-.form-control.form-white::-webkit-input-placeholder {
-	/* WebKit browsers */
-	color: #fff;
-}
-
-.form-control.form-white:-moz-placeholder {
-	opacity: 1;
-	/* Mozilla Firefox 4 to 18 */
-	color: #fff;
-}
-
-.form-control.form-white::-moz-placeholder {
-	opacity: 1;
-	/* Mozilla Firefox 19+ */
-	color: #fff;
-}
-
-.form-control.form-white:-ms-input-placeholder {
-	/* Internet Explorer 10+ */
-	color: #fff;
-}
-
-.form-control.form-white:focus {
-	background: rgba(255,255,255,0.2);
-}
-
-/* Popup */
-.modal {
-	padding: 0 25px !important;
-}
-
-.modal-dialog {
-	width: 100%;
-	max-width: 560px;
-	margin: 0 auto;
-}
-
-.modal-popup {
-	position: relative;
-	padding: 45px 30px;
-	text-align: center;
-	background: url('../img/popup.jpg');
-	box-shadow: none;
-	border-radius: 2px;
-}
-
-.modal-popup a.close-link {
-	font-size: 22px;
-	position: absolute;
-	top: 20px;
-	right: 30px;
-	color: #fff;
-}
-
-.popup-form {
-	width: 90%;
-	max-width: 375px;
-	margin: 60px auto;
-}
-
-.popup-form .form-control {
-	margin: 20px 0;
-}
-
-.popup-form .form-control.dropdown {
-	text-align: left;
-}
-
-.popup-form .form-control.dropdown:after {
-	content: '\f0d7';
-	font-family: 'FontAwesome';
-	display: inline-block;
-	float: right;
-	color: white;
-}
-
-.popup-form .dropdown .dropdown-menu {
-	top: 65px;
-	width: 100%;
-	padding: 0;
-	border: 2px solid white;
-	border-top: 0;
-	border-radius: 0;
-	background: white;
-	box-shadow: none;
-}
-
-.popup-form .dropdown .dropdown-menu li {
-	font-size: 16px;
-	width: 100%;
-	background: transparent;
-}
-
-.popup-form .dropdown .dropdown-menu li a {
-	width: 100%;
-	padding: 15px 30px;
-	color: #00a8ff;
-}
-
-.popup-form .dropdown .dropdown-menu li:hover a {
-	color: #fff;
-	background: #00a8ff;
-}
-
-/* Checkbox */
-
-.checkbox-holder {
-	white-space: nowrap;
-}
-
-.checkbox {
-	position: relative;
-	display: block;
-}
-
-.checkbox {
-	position: relative;
-}
-
-.checkbox label:before {
-	content: '';
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 20px;
-	height: 20px;
-	cursor: pointer;
-	border: 2px solid white;
-	background: transparent;
-	-webkit-transition: background-color 0.3s;
-	transition: background-color 0.3s;
-}
-
-.checkbox input[type=checkbox]:focus + label:before {
-	background: rgba(255,255,255,0.2);
-}
-
-.checkbox label:after {
-	content: '';
-	position: absolute;
-	top: 6px;
-	left: 6px;
-	width: 8px;
-	height: 8px;
-	opacity: 0;
-	background: white;
-	-webkit-transition: all 0.3s ease;
-	transition: all 0.3s ease;
-}
-
-.checkbox input[type=checkbox] {
-	opacity: 0;
-	position: absolute;
-	width: 0;
-	height: 0;
-}
-
-.checkbox input[type=checkbox]:checked + label:after {
-	opacity: 1;
-}
-
-.checkbox-holder span {
-	position: relative;
-	display: inline-block;
-	margin: 0 0 0 10px;
-	white-space: normal;
-	color: #fff;
-}
-
-.btn.btn-submit {
-	width: 100%;
-	margin-top: 30px;
-	color: #00a8ff;
-	border: 2px solid #fff;
-	background: #fff;
-}
-
-.btn.btn-submit:focus {
-	font-weight: bold;
-}
-
-.btn.btn-submit:hover {
-	color: #00a8ff;
-	background: #fff;
-}
-
-/* Mobile Nav */
-.mobile-nav {
-	position: fixed;
-	z-index: 9999;
-	top: 0;
-	left: 0;
-	display: table;
-	width: 100%;
-	height: 100%;
-	text-align: center;
-	opacity: 0;
-	background: rgba(255, 255, 255, 0.98);
-	-webkit-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-	transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-	-webkit-transform: scale(0);
-	-ms-transform: scale(0);
-	transform: scale(0);
-}
-
-.mobile-nav.active {
-	opacity: 1;
-	-webkit-transform: scale(1);
-	-ms-transform: scale(1);
-	transform: scale(1);
-}
-
-.mobile-nav ul {
-	display: table-cell;
-	padding: 0;
-	list-style: none;
-	vertical-align: middle;
-}
-
-.mobile-nav ul li {
-	margin: 25px 0;
-}
-
-.mobile-nav ul li a:not(.btn) {
-	color: #aaa;
-}
-
-.mobile-nav a.close-link {
-	font-size: 24px;
-	position: absolute;
-	bottom: 0px;
-	left: calc(50% - 10px);
-	left: 0;
-	width: 100%;
-	padding: 15px 0;
-	color: #fff;
-	background: #00a8ff;
-}
-
-.row.title {
-	padding: 0 20px;
-}
-
-.light {
-	font-weight: 300;
-}
-
-.regular {
-	font-weight: 400;
-}
-
-.bold {
-	font-weight: bold;
-}
-/* Colors */
-
-.white {
-	color: white;
-}
-
-.light-white {
-	color: rgba(255, 255, 255, 0.5);
-}
-
-.white-bg {
-	background: white;
-}
-
-.gray-bg {
-	background: #f7f7f7;
-}
-
-.blue {
-	color: #00a8ff;
-}
-
-.blue-bg {
-	background: #00a8ff;
-}
-
-.muted {
-	color: #989da0;
-}
-
-.margin-top {
-	margin-top: 150px;
-}
-
-@media(max-width:992px) {
-	h1 {
-		font-size: 36px;
-	}
-	h2 {
-		font-size: 28px;
-	}
-	h3 {
-		font-size: 24px;
-	}
-	h4 {
-		font-size: 20px;
-	}
-	h5 {
-		font-size: 16px;
-	}
-	h6 {
-		font-size: 12px;
-	}
-	.section {
-		padding: 30px 0;
-	}
-}
-
-/* Media Queries */
-
-@media(max-width:991px) {
-	.text-center-mobile {
-		text-align: center !important;
-	}
-}
-
-@media(max-width: 768px) {
-	.pricing {
-		margin-bottom: 30px;
-	}
-	.pricings .pricing .info-icon {
-		display: none;
-	}
-	.pricings .pricing .box-main,
-	.pricings .pricing .box-second {
-		left: 0;
-		width: 100%;
-		padding: 50px 50px 0;
-		text-align: left;
-		background: #00a8ff;
-	}
-	.pricings .pricing .box-main.active {
-		background: #00a8ff;
-		-webkit-transform: translateX(0%);
-		-ms-transform: translateX(0%);
-		transform: translateX(0%);
-	}
-	.pricings .pricing .box-second {
-		position: relative;
-		opacity: 1;
-	}
-	.popup-form {
-		width: 100%;
-		margin: 60px auto;
-	}
-	.modal {
-		padding: 0 10px !important;
-	}
-	.popup-form .form-control:not(.dropdown):focus {
-		position: relative;
-		padding-right: 30px;
-		padding-left: 30px;
-	}
-}
-
-@media(max-width: 400px) {
-	header .typed-cursor {
-		display: none;
-	}
-	.pricings .pricing .box-second {
-		padding-top: 0;
-	}
-}
-
-.slider {
-	width: 100%;
-	height: 25px;
-        border-radius: 15px;   
-	background: #d3d3d3;
-	outline: 2;
-	opacity: 0.7;
-	-webkit-transition: .2s;
-	transition: opacity .2s;
-}
-
-.slider::-webkit-slider-thumb {
-	width: 35px;
-	height: 35px;
-	border-radius: 50%; 
-	background: #4CAF50;
-	cursor: pointer;
-}
-
-.slider::-moz-range-thumb {
-	width: 35px;
-	height: 35px;
-	border-radius: 50%;
-	background: #4CAF50;
-	cursor: pointer;
-}
-input[type=range] {
-	  -webkit-appearance: none;
-	    width: 100%;
-	      margin: 18.55px 0;
-      }
-      input[type=range]:focus {
-	        outline: none;
-	}
-	input[type=range]::-webkit-slider-runnable-track {
-		  width: 100%;
-		    height: 9.9px;
-		      cursor: pointer;
-		        box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
-			  background: #1ec531;
-			    border-radius: 10.4px;
-			      border: 0.1px solid #019ebf;
-		      }
-		      input[type=range]::-webkit-slider-thumb {
-			        box-shadow: 1px 1px 1px #0000ff, 0px 0px 1px #1a1aff;
-				  border: 3px solid rgba(0, 0, 0, 0.05);
-				    height: 47px;
-				      width: 24px;
-				        border-radius: 25px;
-					  background: rgba(0, 75, 255, 0.75);
-					    cursor: pointer;
-					      -webkit-appearance: none;
-					        margin-top: -18.65px;
-					}
-					input[type=range]:focus::-webkit-slider-runnable-track {
-						  background: #31e045;
-					  }
-					  input[type=range]::-moz-range-track {
-						    width: 100%;
-						      height: 9.9px;
-						        cursor: pointer;
-							  box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
-							    background: #1ec531;
-							      border-radius: 10.4px;
-							        border: 0.1px solid #019ebf;
-							}
-							input[type=range]::-moz-range-thumb {
-								  box-shadow: 1px 1px 1px #0000ff, 0px 0px 1px #1a1aff;
-								    border: 3px solid rgba(0, 0, 0, 0.05);
-								      height: 47px;
-								        width: 24px;
-									  border-radius: 25px;
-									    background: rgba(0, 75, 255, 0.75);
-									      cursor: pointer;
-								      }
-								      input[type=range]::-ms-track {
-									        width: 100%;
-										  height: 9.9px;
-										    cursor: pointer;
-										      background: transparent;
-										        border-color: transparent;
-											  color: transparent;
-										  }
-										  input[type=range]::-ms-fill-lower {
-											    background: #189d27;
-											      border: 0.1px solid #019ebf;
-											        border-radius: 20.8px;
-												  box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
-											  }
-											  input[type=range]::-ms-fill-upper {
-												    background: #1ec531;
-												      border: 0.1px solid #019ebf;
-												        border-radius: 20.8px;
-													  box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
-												  }
-												  input[type=range]::-ms-thumb {
-													    box-shadow: 1px 1px 1px #0000ff, 0px 0px 1px #1a1aff;
-													      border: 3px solid rgba(0, 0, 0, 0.05);
-													        height: 47px;
-														  width: 24px;
-														    border-radius: 25px;
-														      background: rgba(0, 75, 255, 0.75);
-														        cursor: pointer;
-															  height: 9.9px;
-														  }
-														  input[type=range]:focus::-ms-fill-lower {
-															    background: #1ec531;
-														    }
-														    input[type=range]:focus::-ms-fill-upper {
-															      background: #31e045;
-														      }
-
-
-
-
diff --git a/web/css/clockpicker/bootstrap-clockpicker.min.css b/web/css/clockpicker/bootstrap-clockpicker.min.css
deleted file mode 100755
index d36778616a..0000000000
--- a/web/css/clockpicker/bootstrap-clockpicker.min.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!
- * ClockPicker v0.0.7 for Bootstrap (http://weareoutman.github.io/clockpicker/)
- * Copyright 2014 Wang Shenwei.
- * Licensed under MIT (https://github.com/weareoutman/clockpicker/blob/master/LICENSE)
- */.clockpicker .input-group-addon{cursor:pointer}.clockpicker-moving{cursor:move}.clockpicker-align-left.popover>.arrow{left:25px}.clockpicker-align-top.popover>.arrow{top:17px}.clockpicker-align-right.popover>.arrow{left:auto;right:25px}.clockpicker-align-bottom.popover>.arrow{top:auto;bottom:6px}.clockpicker-popover .popover-title{background-color:#fff;color:#999;font-size:24px;font-weight:700;line-height:30px;text-align:center}.clockpicker-popover .popover-title span{cursor:pointer}.clockpicker-popover .popover-content{background-color:#f8f8f8;padding:12px}.popover-content:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.clockpicker-plate{background-color:#fff;border:1px solid #ccc;border-radius:50%;width:200px;height:200px;overflow:visible;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.clockpicker-canvas,.clockpicker-dial{width:200px;height:200px;position:absolute;left:-1px;top:-1px}.clockpicker-minutes{visibility:hidden}.clockpicker-tick{border-radius:50%;color:#666;line-height:26px;text-align:center;width:26px;height:26px;position:absolute;cursor:pointer}.clockpicker-tick.active,.clockpicker-tick:hover{background-color:#c0e5f7;background-color:rgba(0,149,221,.25)}.clockpicker-button{background-image:none;background-color:#fff;border-width:1px 0 0;border-top-left-radius:0;border-top-right-radius:0;margin:0;padding:10px 0}.clockpicker-button:hover{background-image:none;background-color:#ebebeb}.clockpicker-button:focus{outline:0!important}.clockpicker-dial{-webkit-transition:-webkit-transform 350ms,opacity 350ms;-moz-transition:-moz-transform 350ms,opacity 350ms;-ms-transition:-ms-transform 350ms,opacity 350ms;-o-transition:-o-transform 350ms,opacity 350ms;transition:transform 350ms,opacity 350ms}.clockpicker-dial-out{opacity:0}.clockpicker-hours.clockpicker-dial-out{-webkit-transform:scale(1.2,1.2);-moz-transform:scale(1.2,1.2);-ms-transform:scale(1.2,1.2);-o-transform:scale(1.2,1.2);transform:scale(1.2,1.2)}.clockpicker-minutes.clockpicker-dial-out{-webkit-transform:scale(.8,.8);-moz-transform:scale(.8,.8);-ms-transform:scale(.8,.8);-o-transform:scale(.8,.8);transform:scale(.8,.8)}.clockpicker-canvas{-webkit-transition:opacity 175ms;-moz-transition:opacity 175ms;-ms-transition:opacity 175ms;-o-transition:opacity 175ms;transition:opacity 175ms}.clockpicker-canvas-out{opacity:.25}.clockpicker-canvas-bearing,.clockpicker-canvas-fg{stroke:none;fill:#0095dd}.clockpicker-canvas-bg{stroke:none;fill:#c0e5f7}.clockpicker-canvas-bg-trans{fill:rgba(0,149,221,.25)}.clockpicker-canvas line{stroke:#0095dd;stroke-width:1;stroke-linecap:round}.clockpicker-button.am-button{margin:1px;padding:5px;border:1px solid rgba(0,0,0,.2);border-radius:4px}.clockpicker-button.pm-button{margin:1px 1px 1px 136px;padding:5px;border:1px solid rgba(0,0,0,.2);border-radius:4px}
\ No newline at end of file
diff --git a/web/css/keyboard.css b/web/css/keyboard.css
deleted file mode 100644
index 217b25d949..0000000000
--- a/web/css/keyboard.css
+++ /dev/null
@@ -1,50 +0,0 @@
-/*!
- * 
- *   simple-keyboard v2.24.1
- *   https://github.com/hodgef/simple-keyboard
- * 
- *   Copyright (c) Francisco Hodge (https://github.com/hodgef)
- * 
- *   This source code is licensed under the MIT license found in the
- *   LICENSE file in the root directory of this source tree.
- *   
- */body,html{margin:0;padding:0}.simple-keyboard{font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;overflow:hidden;touch-action:manipulation}.simple-keyboard .hg-row{display:flex}.simple-keyboard .hg-row:not(:last-child){margin-bottom:5px}.simple-keyboard .hg-row .hg-button-container,.simple-keyboard .hg-row .hg-button:not(:last-child){margin-right:5px}.simple-keyboard .hg-row>div:last-child{margin-right:0}.simple-keyboard .hg-row .hg-button-container{display:flex}.simple-keyboard .hg-button{display:inline-block;flex-grow:1;cursor:pointer}.simple-keyboard .hg-button span{pointer-events:none}.simple-keyboard.hg-theme-default{background-color:rgba(0,0,0,.1);padding:5px;border-radius:5px}.simple-keyboard.hg-theme-default .hg-button{box-shadow:0 0 3px -1px rgba(0,0,0,.3);height:40px;border-radius:5px;box-sizing:border-box;padding:5px;background:#fff;border-bottom:1px solid #b5b5b5;cursor:pointer;display:flex;align-items:center;justify-content:center}.simple-keyboard button.hg-button{border-width:0;outline:0;font-size:inherit}.simple-keyboard.hg-theme-default.hg-layout-numeric .hg-button{width:33.3%;height:60px;align-items:center;display:flex;justify-content:center}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadadd,.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadenter{height:85px}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpad0{width:105px}.simple-keyboard.hg-theme-default .hg-button.hg-button-com{max-width:85px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn.hg-button-at{max-width:45px}.simple-keyboard.hg-theme-default .hg-button.hg-selectedButton{background:rgba(5,25,70,.53);color:#fff}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn=".com"]{max-width:82px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn="@"]{max-width:60px}
-/*# sourceMappingURL=index.css.map */
-input {
-	  width: 100%;
-		  border: none;
-		    box-sizing: border-box;
-	    }
-
-	    .simple-keyboard {
-		      max-width: 850px;
-	      }
-
-
-	      /*
-	       *   Theme: myTheme1
-	       *   */
-.simple-keyboard.myTheme1 {
-	  background-color: rgba(0, 0, 0, 0.8);
-	    border-radius: 0;
-	      border-bottom-right-radius: 5px;
-	        border-bottom-left-radius: 5px;
-	}
-
-	.simple-keyboard.myTheme1 .hg-button {
-		  height: 50px;
-		    display: flex;
-		      justify-content: center;
-		        align-items: center;
-			  background: rgba(0, 0, 0, 0.5);
-			    color: white;
-		    }
-
-		    .simple-keyboard.myTheme1 .hg-button:active {
-			      background: #1c4995;
-			        color: white;
-			}
-
-			#root .simple-keyboard.myTheme1 + .simple-keyboard-preview {
-				  background: #1c4995;
-			  }
diff --git a/web/css/keyboard.min.js b/web/css/keyboard.min.js
deleted file mode 100644
index a4bb8a8891..0000000000
--- a/web/css/keyboard.min.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * Skipped minification because the original files appears to be already minified.
- * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
- */
-/*!
- * 
- *   simple-keyboard v2.24.1
- *   https://github.com/hodgef/simple-keyboard
- * 
- *   Copyright (c) Francisco Hodge (https://github.com/hodgef)
- * 
- *   This source code is licensed under the MIT license found in the
- *   LICENSE file in the root directory of this source tree.
- *   
- */
-!function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e():"function"===typeof define&&define.amd?define("SimpleKeyboard",[],e):"object"===typeof exports?exports.SimpleKeyboard=e():t.SimpleKeyboard=e()}(window,function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){t.exports=n(2)},function(t,e,n){},function(t,e,n){"use strict";n.r(e);n(1);function o(t){return(o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}var s=function(){function t(e){var n=e.getOptions,o=e.getCaretPosition,i=e.dispatch;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.getOptions=n,this.getCaretPosition=o,this.dispatch=i,t.bindMethods(t,this)}var e,n,s;return e=t,s=[{key:"bindMethods",value:function(t,e){var n=!0,o=!1,i=void 0;try{for(var s,a=Object.getOwnPropertyNames(t.prototype)[Symbol.iterator]();!(n=(s=a.next()).done);n=!0){var u=s.value;"constructor"===u||"bindMethods"===u||(e[u]=e[u].bind(e))}}catch(r){o=!0,i=r}finally{try{n||null==a.return||a.return()}finally{if(o)throw i}}}}],(n=[{key:"getButtonClass",value:function(t){var e=t.includes("{")&&t.includes("}")&&"{//}"!==t?"functionBtn":"standardBtn",n=t.replace("{","").replace("}",""),o="";return"standardBtn"!==e&&(o=" hg-button-".concat(n)),"hg-".concat(e).concat(o)}},{key:"getDefaultDiplay",value:function(){return{"{bksp}":"backspace","{backspace}":"backspace","{enter}":"< enter","{shift}":"shift","{shiftleft}":"shift","{shiftright}":"shift","{alt}":"alt","{s}":"shift","{tab}":"tab","{lock}":"caps","{capslock}":"caps","{accept}":"Submit","{space}":" ","{//}":" ","{esc}":"esc","{escape}":"esc","{f1}":"f1","{f2}":"f2","{f3}":"f3","{f4}":"f4","{f5}":"f5","{f6}":"f6","{f7}":"f7","{f8}":"f8","{f9}":"f9","{f10}":"f10","{f11}":"f11","{f12}":"f12","{numpaddivide}":"/","{numlock}":"lock","{arrowup}":"\u2191","{arrowleft}":"\u2190","{arrowdown}":"\u2193","{arrowright}":"\u2192","{prtscr}":"print","{scrolllock}":"scroll","{pause}":"pause","{insert}":"ins","{home}":"home","{pageup}":"up","{delete}":"del","{end}":"end","{pagedown}":"down","{numpadmultiply}":"*","{numpadsubtract}":"-","{numpadadd}":"+","{numpadenter}":"enter","{period}":".","{numpaddecimal}":".","{numpad0}":"0","{numpad1}":"1","{numpad2}":"2","{numpad3}":"3","{numpad4}":"4","{numpad5}":"5","{numpad6}":"6","{numpad7}":"7","{numpad8}":"8","{numpad9}":"9"}}},{key:"getButtonDisplayName",value:function(t,e,n){return(e=n?Object.assign({},this.getDefaultDiplay(),e):e||this.getDefaultDiplay())[t]||t}},{key:"getUpdatedInput",value:function(t,e,n,o){var i=this.getOptions(),s=e;return("{bksp}"===t||"{backspace}"===t)&&s.length>0?s=this.removeAt(s,n,o):"{space}"===t?s=this.addStringAt(s," ",n,o):"{tab}"!==t||"boolean"===typeof i.tabCharOnTab&&!1===i.tabCharOnTab?"{enter}"!==t&&"{numpadenter}"!==t||!i.newLineOnEnter?t.includes("numpad")&&Number.isInteger(Number(t[t.length-2]))?s=this.addStringAt(s,t[t.length-2],n,o):"{numpaddivide}"===t?s=this.addStringAt(s,"/",n,o):"{numpadmultiply}"===t?s=this.addStringAt(s,"*",n,o):"{numpadsubtract}"===t?s=this.addStringAt(s,"-",n,o):"{numpadadd}"===t?s=this.addStringAt(s,"+",n,o):"{numpaddecimal}"===t?s=this.addStringAt(s,".",n,o):"{"===t||"}"===t?s=this.addStringAt(s,t,n,o):t.includes("{")||t.includes("}")||(s=this.addStringAt(s,t,n,o)):s=this.addStringAt(s,"\n",n,o):s=this.addStringAt(s,"\t",n,o),s}},{key:"updateCaretPos",value:function(t,e){var n=this.updateCaretPosAction(t,e);this.dispatch(function(t){t.caretPosition=n})}},{key:"updateCaretPosAction",value:function(t,e){var n=this.getOptions(),o=this.getCaretPosition();return e?o>0&&(o-=t):o+=t,n.debug&&console.log("Caret at:",o,"(".concat(this.keyboardDOMClass,")")),o}},{key:"addStringAt",value:function(t,e,n,o){var i;return n||0===n?(i=[t.slice(0,n),e,t.slice(n)].join(""),this.isMaxLengthReached()||o&&this.updateCaretPos(e.length)):i=t+e,i}},{key:"removeAt",value:function(t,e,n){var o;if(0===this.getCaretPosition())return t;var i=/([\uD800-\uDBFF][\uDC00-\uDFFF])/g;return e&&e>=0?t.substring(e-2,e).match(i)?(o=t.substr(0,e-2)+t.substr(e),n&&this.updateCaretPos(2,!0)):(o=t.substr(0,e-1)+t.substr(e),n&&this.updateCaretPos(1,!0)):t.slice(-2).match(i)?(o=t.slice(0,-2),n&&this.updateCaretPos(2,!0)):(o=t.slice(0,-1),n&&this.updateCaretPos(1,!0)),o}},{key:"handleMaxLength",value:function(t,e){var n=this.getOptions(),i=n.maxLength,s=t[n.inputName],a=s.length===i;if(e.length<=s.length)return!1;if(Number.isInteger(i))return n.debug&&console.log("maxLength (num) reached:",a),a?(this.maxLengthReached=!0,!0):(this.maxLengthReached=!1,!1);if("object"===o(i)){var u=s.length===i[n.inputName];return n.debug&&console.log("maxLength (obj) reached:",u),u?(this.maxLengthReached=!0,!0):(this.maxLengthReached=!1,!1)}}},{key:"isMaxLengthReached",value:function(){return Boolean(this.maxLengthReached)}},{key:"isTouchDevice",value:function(){return"ontouchstart"in window||navigator.maxTouchPoints}},{key:"pointerEventsSupported",value:function(){return window.PointerEvent}},{key:"camelCase",value:function(t){return!!t&&t.toLowerCase().trim().split(/[.\-_\s]/g).reduce(function(t,e){return e.length?t+e[0].toUpperCase()+e.slice(1):t})}},{key:"countInArray",value:function(t,e){return t.reduce(function(t,n){return t+(n===e)},0)}}])&&i(e.prototype,n),s&&i(e,s),t}();function a(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}var u=function(){function t(e){var n=e.dispatch,o=e.getOptions;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.dispatch=n,this.getOptions=o,s.bindMethods(t,this)}var e,n,o;return e=t,(n=[{key:"handleHighlightKeyDown",value:function(t){var e=this.getOptions(),n=this.getSimpleKeyboardLayoutKey(t);this.dispatch(function(t){var o=t.getButtonElement(n)||t.getButtonElement("{".concat(n,"}"));o&&(o.style.backgroundColor=e.physicalKeyboardHighlightBgColor||"#9ab4d0",o.style.color=e.physicalKeyboardHighlightTextColor||"white")})}},{key:"handleHighlightKeyUp",value:function(t){var e=this.getSimpleKeyboardLayoutKey(t);this.dispatch(function(t){var n=t.getButtonElement(e)||t.getButtonElement("{".concat(e,"}"));n&&n.removeAttribute&&n.removeAttribute("style")})}},{key:"getSimpleKeyboardLayoutKey",value:function(t){var e;return((e=t.code.includes("Numpad")||t.code.includes("Shift")||t.code.includes("Space")||t.code.includes("Backspace")||t.code.includes("Control")||t.code.includes("Alt")||t.code.includes("Meta")?t.code:t.key)!==e.toUpperCase()||"F"===t.code[0]&&Number.isInteger(Number(t.code[1]))&&t.code.length<=3)&&(e=e.toLowerCase()),e}}])&&a(e.prototype,n),o&&a(e,o),t}();function r(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}var c=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,n,o;return e=t,o=[{key:"getDefaultLayout",value:function(){return{default:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","{lock} a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}",".com @ {space}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'{lock} A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}",".com @ {space}"]}}}],(n=null)&&r(e.prototype,n),o&&r(e,o),t}();function l(t){return(l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function h(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}var d=function(){function t(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.getOptions=function(){return e.options},this.getCaretPosition=function(){return e.caretPosition},this.registerModule=function(t,n){e.modules[t]||(e.modules[t]={}),n(e.modules[t])};var n="string"===typeof(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:".simple-keyboard",o="object"===l(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:arguments.length<=1?void 0:arguments[1];if(o||(o={}),this.utilities=new s({getOptions:this.getOptions,getCaretPosition:this.getCaretPosition,dispatch:this.dispatch}),this.caretPosition=null,this.keyboardDOM=document.querySelector(n),this.options=o,this.options.layoutName=this.options.layoutName||"default",this.options.theme=this.options.theme||"hg-theme-default",this.options.inputName=this.options.inputName||"default",this.options.preventMouseDownDefault=this.options.preventMouseDownDefault||!1,this.keyboardPluginClasses="",s.bindMethods(t,this),this.input={},this.input[this.options.inputName]="",this.keyboardDOMClass=n.split(".").join(""),this.buttonElements={},window.SimpleKeyboardInstances||(window.SimpleKeyboardInstances={}),window.SimpleKeyboardInstances[this.utilities.camelCase(this.keyboardDOMClass)]=this,this.allKeyboardInstances=window.SimpleKeyboardInstances,this.currentInstanceName=this.utilities.camelCase(this.keyboardDOMClass),this.keyboardInstanceNames=Object.keys(window.SimpleKeyboardInstances),this.isFirstKeyboardInstance=this.keyboardInstanceNames[0]===this.currentInstanceName,this.physicalKeyboard=new u({dispatch:this.dispatch,getOptions:this.getOptions}),!this.keyboardDOM)throw console.warn('"'.concat(n,'" was not found in the DOM.')),new Error("KEYBOARD_DOM_ERROR");this.render(),this.modules={},this.loadModules()}var e,n,o;return e=t,(n=[{key:"handleButtonClicked",value:function(t){var e=this.options.debug;if("{//}"===t)return!1;"function"===typeof this.options.onKeyPress&&this.options.onKeyPress(t),this.input[this.options.inputName]||(this.input[this.options.inputName]="");var n=this.utilities.getUpdatedInput(t,this.input[this.options.inputName],this.caretPosition);if(this.input[this.options.inputName]!==n&&(!this.options.inputPattern||this.options.inputPattern&&this.inputPatternIsValid(n))){if(this.options.maxLength&&this.utilities.handleMaxLength(this.input,n))return!1;this.input[this.options.inputName]=this.utilities.getUpdatedInput(t,this.input[this.options.inputName],this.caretPosition,!0),e&&console.log("Input changed:",this.input),this.options.syncInstanceInputs&&this.syncInstanceInputs(this.input),"function"===typeof this.options.onChange&&this.options.onChange(this.input[this.options.inputName]),"function"===typeof this.options.onChangeAll&&this.options.onChangeAll(this.input)}e&&console.log("Key pressed:",t)}},{key:"handleButtonMouseDown",value:function(t,e){var n=this;this.options.preventMouseDownDefault&&e.preventDefault(),this.options.stopMouseDownPropagation&&e.stopPropagation(),this.isMouseHold=!0,this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),this.holdTimeout&&clearTimeout(this.holdTimeout),this.options.disableButtonHold||(this.holdTimeout=setTimeout(function(){!n.isMouseHold||(t.includes("{")||t.includes("}"))&&"{delete}"!==t&&"{backspace}"!==t&&"{bksp}"!==t&&"{space}"!==t&&"{tab}"!==t||(n.options.debug&&console.log("Button held:",t),n.handleButtonHold(t,e)),clearTimeout(n.holdTimeout)},500))}},{key:"handleButtonMouseUp",value:function(t){this.isMouseHold=!1,this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),t&&"function"===typeof this.options.onKeyReleased&&this.options.onKeyReleased(t)}},{key:"handleButtonHold",value:function(t){var e=this;this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),this.holdInteractionTimeout=setTimeout(function(){e.isMouseHold?(e.handleButtonClicked(t),e.handleButtonHold(t)):clearTimeout(e.holdInteractionTimeout)},100)}},{key:"syncInstanceInputs",value:function(){var t=this;this.dispatch(function(e){e.replaceInput(t.input),e.caretPosition=t.caretPosition})}},{key:"clearInput",value:function(t){t=t||this.options.inputName,this.input[t]="",this.caretPosition=0,this.options.syncInstanceInputs&&this.syncInstanceInputs(this.input)}},{key:"getInput",value:function(t){return t=t||this.options.inputName,this.options.syncInstanceInputs&&this.syncInstanceInputs(this.input),this.input[t]}},{key:"setInput",value:function(t,e){e=e||this.options.inputName,this.input[e]=t,this.options.syncInstanceInputs&&this.syncInstanceInputs(this.input)}},{key:"replaceInput",value:function(t){this.input=t}},{key:"setOptions",value:function(t){t=t||{},this.options=Object.assign(this.options,t),this.onSetOptions(t),this.render()}},{key:"onSetOptions",value:function(t){t.inputName&&(this.options.debug&&console.log("inputName changed. caretPosition reset."),this.caretPosition=null)}},{key:"clear",value:function(){this.keyboardDOM.innerHTML="",this.keyboardDOM.className=this.keyboardDOMClass,this.buttonElements={}}},{key:"dispatch",value:function(t){if(!window.SimpleKeyboardInstances)throw console.warn("SimpleKeyboardInstances is not defined. Dispatch cannot be called."),new Error("INSTANCES_VAR_ERROR");return Object.keys(window.SimpleKeyboardInstances).forEach(function(e){t(window.SimpleKeyboardInstances[e],e)})}},{key:"addButtonTheme",value:function(t,e){var n=this;if(!e||!t)return!1;t.split(" ").forEach(function(o){e.split(" ").forEach(function(e){n.options.buttonTheme||(n.options.buttonTheme=[]);var i=!1;n.options.buttonTheme.map(function(t){if(t.class.split(" ").includes(e)){i=!0;var n=t.buttons.split(" ");n.includes(o)||(i=!0,n.push(o),t.buttons=n.join(" "))}return t}),i||n.options.buttonTheme.push({class:e,buttons:t})})}),this.render()}},{key:"removeButtonTheme",value:function(t,e){var n=this;if(!t&&!e)return this.options.buttonTheme=[],this.render(),!1;t&&Array.isArray(this.options.buttonTheme)&&this.options.buttonTheme.length&&(t.split(" ").forEach(function(t,o){n.options.buttonTheme.map(function(o,i){if(e&&e.includes(o.class)||!e){var s=o.buttons.split(" ").filter(function(e){return e!==t});s.length?o.buttons=s.join(" "):(n.options.buttonTheme.splice(i,1),o=null)}return o})}),this.render())}},{key:"getButtonElement",value:function(t){var e,n=this.buttonElements[t];return n&&(e=n.length>1?n:n[0]),e}},{key:"inputPatternIsValid",value:function(t){var e,n=this.options.inputPattern;if((e=n instanceof RegExp?n:n[this.options.inputName])&&t){var o=e.test(t);return this.options.debug&&console.log('inputPattern ("'.concat(e,'"): ').concat(o?"passed":"did not pass!")),o}return!0}},{key:"setEventListeners",value:function(){!this.isFirstKeyboardInstance&&this.allKeyboardInstances||(this.options.debug&&console.log("Caret handling started (".concat(this.keyboardDOMClass,")")),document.addEventListener("keyup",this.handleKeyUp),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("touchend",this.handleTouchEnd))}},{key:"handleKeyUp",value:function(t){this.caretEventHandler(t),this.options.physicalKeyboardHighlight&&this.physicalKeyboard.handleHighlightKeyUp(t)}},{key:"handleKeyDown",value:function(t){this.options.physicalKeyboardHighlight&&this.physicalKeyboard.handleHighlightKeyDown(t)}},{key:"handleMouseUp",value:function(t){this.caretEventHandler(t)}},{key:"handleTouchEnd",value:function(t){this.caretEventHandler(t)}},{key:"caretEventHandler",value:function(t){var e;t.target.tagName&&(e=t.target.tagName.toLowerCase()),this.dispatch(function(n){n.isMouseHold&&(n.isMouseHold=!1),"textarea"!==e&&"input"!==e||n.options.disableCaretPositioning?n.options.disableCaretPositioning&&(n.caretPosition=null):(n.caretPosition=t.target.selectionStart,n.options.debug&&console.log("Caret at: ",t.target.selectionStart,t.target.tagName.toLowerCase(),"(".concat(n.keyboardDOMClass,")")))})}},{key:"destroy",value:function(){document.removeEventListener("keyup",this.handleKeyUp),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("touchend",this.handleTouchEnd),this.clear()}},{key:"getButtonTheme",value:function(){var t=this,e={};return this.options.buttonTheme.forEach(function(n){var o;n.buttons&&n.class?("string"===typeof n.buttons&&(o=n.buttons.split(" ")),o&&o.forEach(function(o){var i=e[o];i?t.utilities.countInArray(i.split(" "),n.class)||(e[o]="".concat(i," ").concat(n.class)):e[o]=n.class})):console.warn('buttonTheme row is missing the "buttons" or the "class". Please check the documentation.')}),e}},{key:"onTouchDeviceDetected",value:function(){this.processAutoTouchEvents(),this.disableContextualWindow()}},{key:"disableContextualWindow",value:function(){window.oncontextmenu=function(t){if(t.target.classList.contains("hg-button"))return t.preventDefault(),t.stopPropagation(),!1}}},{key:"processAutoTouchEvents",value:function(){this.options.autoUseTouchEvents&&(this.options.useTouchEvents=!0,this.options.debug&&console.log("autoUseTouchEvents: Touch device detected, useTouchEvents enabled."))}},{key:"onInit",value:function(){this.options.debug&&console.log("".concat(this.keyboardDOMClass," Initialized")),this.setEventListeners(),"function"===typeof this.options.onInit&&this.options.onInit()}},{key:"beforeFirstRender",value:function(){this.utilities.isTouchDevice()&&this.onTouchDeviceDetected(),"function"===typeof this.options.beforeFirstRender&&this.options.beforeFirstRender(),this.isFirstKeyboardInstance&&this.utilities.pointerEventsSupported()&&!this.options.useTouchEvents&&!this.options.useMouseEvents&&this.options.debug&&console.log("Using PointerEvents as it is supported by this browser"),this.options.useTouchEvents&&this.options.debug&&console.log("useTouchEvents has been enabled. Only touch events will be used.")}},{key:"beforeRender",value:function(){"function"===typeof this.options.beforeRender&&this.options.beforeRender()}},{key:"onRender",value:function(){"function"===typeof this.options.onRender&&this.options.onRender()}},{key:"onModulesLoaded",value:function(){"function"===typeof this.options.onModulesLoaded&&this.options.onModulesLoaded()}},{key:"loadModules",value:function(){var t=this;Array.isArray(this.options.modules)&&(this.options.modules.forEach(function(e){var n=new e;if(n.constructor.name&&"Function"!==n.constructor.name){var o="module-".concat(t.utilities.camelCase(n.constructor.name));t.keyboardPluginClasses=t.keyboardPluginClasses+" ".concat(o)}n.init(t)}),this.keyboardPluginClasses=this.keyboardPluginClasses+" modules-loaded",this.render(),this.onModulesLoaded())}},{key:"getModuleProp",value:function(t,e){return!!this.modules[t]&&this.modules[t][e]}},{key:"getModulesList",value:function(){return Object.keys(this.modules)}},{key:"parseRowDOMContainers",value:function(t,e,n,o){var i=this,s=Array.from(t.children),a=0;return s.length&&n.forEach(function(n,u){var r=o[u];if(!r||!(r>n))return!1;var c=n-a,l=r-a,h=document.createElement("div");h.className+="hg-button-container";var d="".concat(i.options.layoutName,"-r").concat(e,"c").concat(u);h.setAttribute("data-skUID",d);var p=s.splice(c,l-c+1);a=l-c,p.forEach(function(t){return h.appendChild(t)}),s.splice(c,0,h),t.innerHTML="",s.forEach(function(e){return t.appendChild(e)}),i.options.debug&&console.log("rowDOMContainer",p,c,l,a+1)}),t}},{key:"render",value:function(){var t=this;this.clear(),this.initialized||this.beforeFirstRender(),this.beforeRender();var e="hg-layout-".concat(this.options.layoutName),n=this.options.layout||c.getDefaultLayout(),o=this.options.useTouchEvents||!1,i=o?"hg-touch-events":"",s=this.options.useMouseEvents||!1,a=this.options.disableRowButtonContainers,u=Array.isArray(this.options.buttonTheme)?this.getButtonTheme():{};this.keyboardDOM.className+=" ".concat(this.options.theme," ").concat(e," ").concat(this.keyboardPluginClasses," ").concat(i),n[this.options.layoutName].forEach(function(e,n){var i=e.split(" "),r=document.createElement("div");r.className+="hg-row";var c=[],l=[];i.forEach(function(e,i){var h=!a&&e.includes("[")&&e.length>1,d=!a&&e.includes("]")&&e.length>1;h&&(c.push(i),e=e.replace(/\[/g,"")),d&&(l.push(i),e=e.replace(/\]/g,""));var p=t.utilities.getButtonClass(e),f=u[e],y=t.utilities.getButtonDisplayName(e,t.options.display,t.options.mergeDisplay),m=t.options.useButtonTag?"button":"div",b=document.createElement(m);b.className+="hg-button ".concat(p).concat(f?" "+f:""),!t.utilities.pointerEventsSupported()||o||s?o?(b.ontouchstart=function(n){t.handleButtonClicked(e),t.handleButtonMouseDown(e,n)},b.ontouchend=function(){return t.handleButtonMouseUp(e)},b.ontouchcancel=function(){return t.handleButtonMouseUp(e)}):(b.onclick=function(){t.isMouseHold=!1,t.handleButtonClicked(e)},b.onmousedown=function(n){return t.handleButtonMouseDown(e,n)},b.onmouseup=function(){return t.handleButtonMouseUp(e)}):(b.onpointerdown=function(n){t.handleButtonClicked(e),t.handleButtonMouseDown(e,n)},b.onpointerup=function(){return t.handleButtonMouseUp(e)},b.onpointercancel=function(){return t.handleButtonMouseUp(e)}),b.setAttribute("data-skBtn",e);var g="".concat(t.options.layoutName,"-r").concat(n,"b").concat(i);b.setAttribute("data-skBtnUID",g),b.setAttribute("data-displayLabel",y);var v=document.createElement("span");v.innerHTML=y,b.appendChild(v),t.buttonElements[e]||(t.buttonElements[e]=[]),t.buttonElements[e].push(b),r.appendChild(b)}),r=t.parseRowDOMContainers(r,n,c,l),t.keyboardDOM.appendChild(r)}),this.onRender(),this.initialized||(this.initialized=!0,!this.utilities.pointerEventsSupported()||o||s?o?(document.ontouchend=function(){return t.handleButtonMouseUp()},document.ontouchcancel=function(){return t.handleButtonMouseUp()}):o||(document.onmouseup=function(){return t.handleButtonMouseUp()}):document.onpointerup=function(){return t.handleButtonMouseUp()},this.onInit())}}])&&h(e.prototype,n),o&&h(e,o),t}();e.default=d}])});
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/web/css/normalize.css b/web/css/normalize.css
deleted file mode 100644
index 954d96b8d3..0000000000
--- a/web/css/normalize.css
+++ /dev/null
@@ -1,432 +0,0 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
-
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- *    user zoom.
- */
-
-html {
-  font-family: sans-serif; /* 1 */
-  -ms-text-size-adjust: 100%; /* 2 */
-  -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/**
- * Remove default margin.
- */
-
-body {
-  margin: 0;
-}
-
-/* HTML5 display definitions
-   ========================================================================== */
-
-/**
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
- * and Firefox.
- * Correct `block` display not defined for `main` in IE 11.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
-  display: block;
-}
-
-/**
- * 1. Correct `inline-block` display not defined in IE 8/9.
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
- */
-
-audio,
-canvas,
-progress,
-video {
-  display: inline-block; /* 1 */
-  vertical-align: baseline; /* 2 */
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
-  display: none;
-  height: 0;
-}
-
-/**
- * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
- */
-
-[hidden],
-template {
-  display: none;
-}
-
-/* Links
-   ========================================================================== */
-
-/**
- * Remove the gray background color from active links in IE 10.
- */
-
-a {
-  background-color: transparent;
-}
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-a:active,
-a:hover {
-  outline: 0;
-  text-decoration: none;
-}
-a:focus {
-  text-decoration: none;
-  outline: 0;
-}
-
-/* Text-level semantics
-   ========================================================================== */
-
-/**
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
- */
-
-abbr[title] {
-  border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
- */
-
-b,
-strong {
-  font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari and Chrome.
- */
-
-dfn {
-  font-style: italic;
-}
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari, and Chrome.
- */
-
-h1 {
-  font-size: 2em;
-  margin: 0.67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-mark {
-  background: #ff0;
-  color: #000;
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
-  font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline;
-}
-
-sup {
-  top: -0.5em;
-}
-
-sub {
-  bottom: -0.25em;
-}
-
-/* Embedded content
-   ========================================================================== */
-
-/**
- * Remove border when inside `a` element in IE 8/9/10.
- */
-
-img {
-  border: 0;
-}
-
-/**
- * Correct overflow not hidden in IE 9/10/11.
- */
-
-svg:not(:root) {
-  overflow: hidden;
-}
-
-/* Grouping content
-   ========================================================================== */
-
-/**
- * Address margin not present in IE 8/9 and Safari.
- */
-
-figure {
-  margin: 1em 40px;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-  height: 0;
-}
-
-/**
- * Contain overflow in all browsers.
- */
-
-pre {
-  overflow: auto;
-}
-
-/**
- * Address odd `em`-unit font size rendering in all browsers.
- */
-
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em;
-}
-
-/* Forms
-   ========================================================================== */
-
-/**
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
- * styling of `select`, unless a `border` property is set.
- */
-
-/**
- * 1. Correct color not being inherited.
- *    Known issue: affects color of disabled elements.
- * 2. Correct font properties not being inherited.
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
- */
-
-button,
-input,
-optgroup,
-select,
-textarea {
-  color: inherit; /* 1 */
-  font: inherit; /* 2 */
-  margin: 0; /* 3 */
-}
-
-/**
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
- */
-
-button {
-  overflow: visible;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
- * Correct `select` style inheritance in Firefox.
- */
-
-button,
-select {
-  text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- *    and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- *    `input` and others.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
-  -webkit-appearance: button; /* 2 */
-  cursor: pointer; /* 3 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-html input[disabled] {
-  cursor: default;
-}
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  border: 0;
-  padding: 0;
-}
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-input {
-  line-height: normal;
-}
-
-/**
- * It's recommended that you don't attempt to style these elements.
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
- *
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
-  box-sizing: border-box; /* 1 */
-  padding: 0; /* 2 */
-}
-
-/**
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
- * `font-size` values of the `input`, it causes the cursor style of the
- * decrement button to change from `default` to `text`.
- */
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
- *    (include `-moz` to future-proof).
- */
-
-input[type="search"] {
-  -webkit-appearance: textfield; /* 1 */
-  -moz-box-sizing: content-box;
-  -webkit-box-sizing: content-box; /* 2 */
-  box-sizing: content-box;
-}
-
-/**
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
- * Safari (but not Chrome) clips the cancel button when the search input has
- * padding (and `textfield` appearance).
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
-  border: 1px solid #c0c0c0;
-  margin: 0 2px;
-  padding: 0.35em 0.625em 0.75em;
-}
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
-  border: 0; /* 1 */
-  padding: 0; /* 2 */
-}
-
-/**
- * Remove default vertical scrollbar in IE 8/9/10/11.
- */
-
-textarea {
-  overflow: auto;
-}
-
-/**
- * Don't inherit the `font-weight` (applied by a rule above).
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
- */
-
-optgroup {
-  font-weight: bold;
-}
-
-/* Tables
-   ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-
-td,
-th {
-  padding: 0;
-}
diff --git a/web/css/pwa.css b/web/css/pwa.css
deleted file mode 100644
index 8a4ac060e2..0000000000
--- a/web/css/pwa.css
+++ /dev/null
@@ -1,12 +0,0 @@
-body {
-	   -webkit-user-select: none;
-   
- }
-body {
-	   -webkit-tap-highlight-color: transparent;
-   }
-body {
-	   -webkit-touch-callout: none;
-   }
-
-
diff --git a/web/css/settings_style.css b/web/css/settings_style.css
deleted file mode 100644
index 7e8a4b6480..0000000000
--- a/web/css/settings_style.css
+++ /dev/null
@@ -1,381 +0,0 @@
-/*!
-Stylesheet zu openWB settings
-
-2020 Michael Ortenstein
-*/
-
-html {
-    font-size: 0.7rem;
-}
-
-body {
-    margin-bottom: 40px;  /* margin bottom by footer height and some more space */
-}
-
-body > .container {
-    padding: 50px 15px 0;
-}
-
-.card {
-    margin-bottom: 1rem;
-}
-
-.card .card-header {
-    font-weight: bold;
-}
-
-.bg-primary,
-.bg-secondary,
-.bg-danger,
-.bg-success {
-    color: white;
-}
-
-.bg-warning,
-.bg-info {
-    color: #212529;
-}
-
-.card-header.bg-secondary .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-success .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-primary .btn-outline-info:not(.active):not(:hover) {
-    background-color: white;
-}
-
-.card-header.bg-success .btn-outline-info.focus {
-    box-shadow: 0 0 0 0.2rem white;
-}
-
-.card-header.bg-success .btn-outline-info.active,
-.card-header.bg-success .btn-outline-info:hover {
-    border-color: white;
-}
-
-.footer > .container {
-    padding-right: 15px;
-    padding-left: 15px;
-}
-
-.footer {
-    position: fixed;
-    bottom: 0;
-    width: 100%;
-    height: 30px; /* fixed height of footer */
-    line-height: 30px; /* vertically center the text there */
-    z-index: 1030; /* same as menu */
-}
-
-h1 {
-    margin: 0.67em 0 0.2em 0;
-}
-
-.hide {
-    display: none;
-}
-
-.clickable {
-    cursor: pointer;
-}
-
-/* very Small devices (up to 575.98px) */
-@media screen and (max-width: 575.98px) {
-    .navbar-collapse a,
-    .navbar-collapse .dropdown-header {
-        font-size: 1.8em;
-    }
-    .navbar-brand {
-        font-size: 2.0em;
-    }
-}
-
-/* Devices with limited height */
-@media screen and (max-height: 1024px) {
-    .scrollable-menu {
-        height: auto;
-        overflow-x: hidden;
-        max-height: 250px;
-        overflow-y: scroll;
-    }
-}
-
-/* Small devices (landscape phones, 576px and up) */
-@media screen and (min-width: 576px) {
-    html {
-        font-size: 0.8rem;
-    }
-}
-
-/* Medium devices (tablets, 768px and up) */
-@media screen and (min-width: 768px) {
-    html {
-        font-size: 0.9rem;
-    }
-}
-
-/* Large devices (desktops, 992px and up) */
-@media screen and (min-width: 992px) {
-    html {
-        font-size: 1.0rem;
-    }
-}
-
-/* Extra large devices (large desktops, 1200px and up) */
-@media (min-width: 1200px) {
-    html {
-        font-size: 1.1rem;
-    }
-}
-
-.vaRow {
-    /* vertical alignment of content in rows */
-  display: flex;
-  align-items: center;
-}
-
-.input {
-    vertical-align: middle;
-}
-
-input:invalid,
-textarea:invalid {
-    border-bottom: 2px solid red !important;
-}
-
-/* Bootstrap carousel */
-.carousel-item img {
-    object-fit: contain;
-    width: 100%;
-    height: auto;
-    max-width: 100%;
-    max-height: 450px;
-}
-
-.carousel-caption,
-.carousel-indicators {
-    position: initial;
-}
-
-.carousel-control-next,
-.carousel-control-prev {
-    width: 100%;
-}
-
-.carousel-caption,
-.carousel-control-next,
-.carousel-control-prev {
-    color: #212529;
-}
-
-.carousel-control-next-icon,
-.carousel-control-prev-icon {
-    filter:invert(1);
-}
-
-.carousel-indicators li {
-    width: 2rem;
-    height: 1rem;
-    border: transparent;
-    border-radius: .5rem;
-    background-color: #212529;
-}
-
-.carousel-indicators li:hover {
-	opacity: 1;
-}
-
-.cssload-loader {
-	position: relative;
-	left: calc(50% - 56px);
-	width: 112px;
-	height: 112px;
-	border-radius: 50%;
-		-o-border-radius: 50%;
-		-ms-border-radius: 50%;
-		-webkit-border-radius: 50%;
-		-moz-border-radius: 50%;
-	perspective: 1400px;
-}
-
-.cssload-inner {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-	box-sizing: border-box;
-		-o-box-sizing: border-box;
-		-ms-box-sizing: border-box;
-		-webkit-box-sizing: border-box;
-		-moz-box-sizing: border-box;
-	border-radius: 50%;
-		-o-border-radius: 50%;
-		-ms-border-radius: 50%;
-		-webkit-border-radius: 50%;
-		-moz-border-radius: 50%;
-}
-
-.cssload-inner.cssload-one {
-	left: 0%;
-	top: 0%;
-	animation: cssload-rotate-one 1.15s linear infinite;
-		-o-animation: cssload-rotate-one 1.15s linear infinite;
-		-ms-animation: cssload-rotate-one 1.15s linear infinite;
-		-webkit-animation: cssload-rotate-one 1.15s linear infinite;
-		-moz-animation: cssload-rotate-one 1.15s linear infinite;
-	border-bottom: 5px solid rgb(0,0,0);
-}
-
-.cssload-inner.cssload-two {
-	right: 0%;
-	top: 0%;
-	animation: cssload-rotate-two 1.15s linear infinite;
-		-o-animation: cssload-rotate-two 1.15s linear infinite;
-		-ms-animation: cssload-rotate-two 1.15s linear infinite;
-		-webkit-animation: cssload-rotate-two 1.15s linear infinite;
-		-moz-animation: cssload-rotate-two 1.15s linear infinite;
-	border-right: 5px solid rgb(0,0,0);
-}
-
-.cssload-inner.cssload-three {
-	right: 0%;
-	bottom: 0%;
-	animation: cssload-rotate-three 1.15s linear infinite;
-		-o-animation: cssload-rotate-three 1.15s linear infinite;
-		-ms-animation: cssload-rotate-three 1.15s linear infinite;
-		-webkit-animation: cssload-rotate-three 1.15s linear infinite;
-		-moz-animation: cssload-rotate-three 1.15s linear infinite;
-	border-top: 5px solid rgb(0,0,0);
-}
-
-@keyframes cssload-rotate-one {
-	0% {
-		transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@-o-keyframes cssload-rotate-one {
-	0% {
-		-o-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		-o-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@-ms-keyframes cssload-rotate-one {
-	0% {
-		-ms-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		-ms-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@-webkit-keyframes cssload-rotate-one {
-	0% {
-		-webkit-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		-webkit-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@-moz-keyframes cssload-rotate-one {
-	0% {
-		-moz-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		-moz-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@keyframes cssload-rotate-two {
-	0% {
-		transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@-o-keyframes cssload-rotate-two {
-	0% {
-		-o-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		-o-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@-ms-keyframes cssload-rotate-two {
-	0% {
-		-ms-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		-ms-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@-webkit-keyframes cssload-rotate-two {
-	0% {
-		-webkit-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		-webkit-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@-moz-keyframes cssload-rotate-two {
-	0% {
-		-moz-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		-moz-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@keyframes cssload-rotate-three {
-	0% {
-		transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
-
-@-o-keyframes cssload-rotate-three {
-	0% {
-		-o-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		-o-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
-
-@-ms-keyframes cssload-rotate-three {
-	0% {
-		-ms-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		-ms-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
-
-@-webkit-keyframes cssload-rotate-three {
-	0% {
-		-webkit-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		-webkit-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
-
-@-moz-keyframes cssload-rotate-three {
-	0% {
-		-moz-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		-moz-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
diff --git a/web/css/settings_style20.css b/web/css/settings_style20.css
deleted file mode 100644
index 87bfc6f36b..0000000000
--- a/web/css/settings_style20.css
+++ /dev/null
@@ -1,421 +0,0 @@
-/*!
-Stylesheet zu openWB settings
-2020 Michael Ortenstein
-*/
-
-html {
-	font-size: 0.7rem;
-}
-
-body {
-	margin-bottom: 40px;
-	/* margin bottom by footer height and some more space */
-}
-
-.container[role=main] {
-	padding: 50px 15px 0;
-}
-
-.card {
-	margin-bottom: 1rem;
-}
-
-.card .card-header {
-	font-weight: bold;
-}
-
-.bg-primary,
-.bg-secondary,
-.bg-danger,
-.bg-success {
-	color: white;
-}
-
-.bg-warning,
-.bg-info {
-	color: #212529;
-}
-
-.card-header.bg-secondary .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-success .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-primary .btn-outline-info:not(.active):not(:hover) {
-	background-color: white;
-}
-
-.card-header.bg-success .btn-outline-info.focus {
-	box-shadow: 0 0 0 0.2rem white;
-}
-
-.card-header.bg-success .btn-outline-info.active,
-.card-header.bg-success .btn-outline-info:hover {
-	border-color: white;
-}
-
-.footer>.container {
-	padding-right: 15px;
-	padding-left: 15px;
-}
-
-.footer {
-	position: fixed;
-	bottom: 0;
-	width: 100%;
-	height: 30px;
-	/* fixed height of footer */
-	line-height: 30px;
-	/* vertically center the text there */
-	z-index: 1030;
-	/* same as menue */
-}
-
-h1 {
-	margin: 0.67em 0 0.2em 0;
-}
-
-.hide {
-	display: none;
-}
-
-
-/* progress during saving */
-
-#saveprogress {
-	background-color: white;
-	position: fixed;
-	top: 0px;
-	left: 0px;
-	width: 100%;
-	height: 100%;
-	z-index: 999999;
-	opacity: 90%;
-}
-
-#saveprogress-inner {
-	margin-top: 150px;
-	text-align: center;
-}
-
-#saveprogress-image {
-	max-width: 300px;
-}
-
-#saveprogress-info {
-	color: grey;
-}
-
-
-/* very Small devices (up to 575.98px) */
-
-@media screen and (max-width: 575.98px) {
-	.navbar-collapse a,
-	.navbar-collapse .dropdown-header {
-		font-size: 1.8em;
-	}
-	.navbar-brand {
-		font-size: 2.0em;
-	}
-}
-
-
-/* Devices with limited height */
-
-@media screen and (max-height: 1024px) {
-	.scrollable-menu {
-		height: auto;
-		overflow-x: hidden;
-		max-height: 250px;
-		overflow-y: scroll;
-	}
-}
-
-
-/* Small devices (landscape phones, 576px and up) */
-
-@media screen and (min-width: 576px) {
-	html {
-		font-size: 0.8rem;
-	}
-}
-
-
-/* Medium devices (tablets, 768px and up) */
-
-@media screen and (min-width: 768px) {
-	html {
-		font-size: 0.9rem;
-	}
-}
-
-
-/* Large devices (desktops, 992px and up) */
-
-@media screen and (min-width: 992px) {
-	html {
-		font-size: 1.0rem;
-	}
-}
-
-
-/* Extra large devices (large desktops, 1200px and up) */
-
-@media (min-width: 1200px) {
-	html {
-		font-size: 1.1rem;
-	}
-}
-
-.vaRow {
-	/* vertical alignment of content in rows */
-	display: flex;
-	align-items: center;
-}
-
-.input {
-	vertical-align: middle;
-}
-
-input:invalid,
-textarea:invalid {
-	border-bottom: 2px solid red !important;
-}
-
-
-/* Bootstrap carousel */
-
-.carousel-item img {
-	object-fit: contain;
-	width: 100%;
-	height: auto;
-	max-width: 100%;
-	max-height: 450px;
-}
-
-.carousel-caption,
-.carousel-indicators {
-	position: initial;
-}
-
-.carousel-control-next,
-.carousel-control-prev {
-	width: 100%;
-}
-
-.carousel-caption,
-.carousel-control-next,
-.carousel-control-prev {
-	color: #212529;
-}
-
-.carousel-control-next-icon,
-.carousel-control-prev-icon {
-	filter: invert(1);
-}
-
-.carousel-indicators li {
-	width: 2rem;
-	height: 1rem;
-	border: transparent;
-	border-radius: .5rem;
-	background-color: #212529;
-}
-
-.carousel-indicators li:hover {
-	opacity: 1;
-}
-
-.cssload-loader {
-	position: relative;
-	left: calc(50% - 56px);
-	width: 112px;
-	height: 112px;
-	border-radius: 50%;
-	-o-border-radius: 50%;
-	-ms-border-radius: 50%;
-	-webkit-border-radius: 50%;
-	-moz-border-radius: 50%;
-	perspective: 1400px;
-}
-
-.cssload-inner {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-	box-sizing: border-box;
-	-o-box-sizing: border-box;
-	-ms-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	border-radius: 50%;
-	-o-border-radius: 50%;
-	-ms-border-radius: 50%;
-	-webkit-border-radius: 50%;
-	-moz-border-radius: 50%;
-}
-
-.cssload-inner.cssload-one {
-	left: 0%;
-	top: 0%;
-	animation: cssload-rotate-one 1.15s linear infinite;
-	-o-animation: cssload-rotate-one 1.15s linear infinite;
-	-ms-animation: cssload-rotate-one 1.15s linear infinite;
-	-webkit-animation: cssload-rotate-one 1.15s linear infinite;
-	-moz-animation: cssload-rotate-one 1.15s linear infinite;
-	border-bottom: 5px solid rgb(0, 0, 0);
-}
-
-.cssload-inner.cssload-two {
-	right: 0%;
-	top: 0%;
-	animation: cssload-rotate-two 1.15s linear infinite;
-	-o-animation: cssload-rotate-two 1.15s linear infinite;
-	-ms-animation: cssload-rotate-two 1.15s linear infinite;
-	-webkit-animation: cssload-rotate-two 1.15s linear infinite;
-	-moz-animation: cssload-rotate-two 1.15s linear infinite;
-	border-right: 5px solid rgb(0, 0, 0);
-}
-
-.cssload-inner.cssload-three {
-	right: 0%;
-	bottom: 0%;
-	animation: cssload-rotate-three 1.15s linear infinite;
-	-o-animation: cssload-rotate-three 1.15s linear infinite;
-	-ms-animation: cssload-rotate-three 1.15s linear infinite;
-	-webkit-animation: cssload-rotate-three 1.15s linear infinite;
-	-moz-animation: cssload-rotate-three 1.15s linear infinite;
-	border-top: 5px solid rgb(0, 0, 0);
-}
-
-@keyframes cssload-rotate-one {
-	0% {
-		transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@-o-keyframes cssload-rotate-one {
-	0% {
-		-o-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		-o-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@-ms-keyframes cssload-rotate-one {
-	0% {
-		-ms-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		-ms-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@-webkit-keyframes cssload-rotate-one {
-	0% {
-		-webkit-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		-webkit-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@-moz-keyframes cssload-rotate-one {
-	0% {
-		-moz-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
-	}
-	100% {
-		-moz-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
-	}
-}
-
-@keyframes cssload-rotate-two {
-	0% {
-		transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@-o-keyframes cssload-rotate-two {
-	0% {
-		-o-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		-o-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@-ms-keyframes cssload-rotate-two {
-	0% {
-		-ms-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		-ms-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@-webkit-keyframes cssload-rotate-two {
-	0% {
-		-webkit-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		-webkit-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@-moz-keyframes cssload-rotate-two {
-	0% {
-		-moz-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
-	}
-	100% {
-		-moz-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
-	}
-}
-
-@keyframes cssload-rotate-three {
-	0% {
-		transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
-
-@-o-keyframes cssload-rotate-three {
-	0% {
-		-o-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		-o-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
-
-@-ms-keyframes cssload-rotate-three {
-	0% {
-		-ms-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		-ms-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
-
-@-webkit-keyframes cssload-rotate-three {
-	0% {
-		-webkit-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		-webkit-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
-
-@-moz-keyframes cssload-rotate-three {
-	0% {
-		-moz-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
-	}
-	100% {
-		-moz-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
-	}
-}
diff --git a/web/index.html b/web/index.html
new file mode 100644
index 0000000000..27a8628940
--- /dev/null
+++ b/web/index.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="de">
+
+<head>
+	<base href="/openWB/web/">
+	<meta charset="UTF-8">
+	<link rel="shortcut icon" href="img/favicons/favicon.ico">
+	<link rel="stylesheet" type="text/css" href="style.css?ver=20230322">
+	<script>
+		window.addEventListener("load", () => {
+			// load scripts synchronous in order specified
+			var scriptsToLoad = [
+				// load mqtt library
+				'js/mqttws31.js',
+				// functions for processing messages
+				'processAllMqttMsg.js?ver=20231006',
+				// functions performing mqtt and start mqtt-service
+				'setupMqttServices.js?ver=20230926',
+			];
+
+			scriptsToLoad.forEach((src) => {
+				var script = document.createElement('script');
+				script.src = src;
+				script.async = false;
+				document.body.appendChild(script);
+			});
+		});
+	</script>
+</head>
+
+<body>
+	<div class="wrapper">
+		<div id="notReady">
+			<div id="logo">
+				<img src="img/openWB_logo_dark.png" />
+				<div id="progress">
+					<div id="progress-value"></div>
+				</div>
+			</div>
+			<p id="log">Lade Einstellungen...</p>
+			<div id="info">
+				<p id="secondary-mode" class="warning hide">
+					Der Steuerungsmodus dieser openWB ist auf "secondary" konfiguriert. Alle Einstellungen erfolgen über die
+					übergeordnete <a id="primary-link" href="">primary openWB</a>. Der Steuerungsmodus dieser openWB kann in den
+					<a href="settings/">Einstellungen</a> geändert werden.
+				</p>
+				<p id="boot" class="warning hide">
+					Der Startvorgang ist noch nicht abgeschlossen.
+				</p>
+				<p id="update" class="warning hide">
+					Es wird gerade ein Update ausgeführt.
+				</p>
+				<p id="general">
+					Bei Problemen mit der Startseite können Sie direkt die <a href="settings/">Einstellungen</a> öffnen.
+				</p>
+			</div>
+		</div>
+		<iframe id="themeTarget" src="about:blank" class="hide" />
+	</div>
+</body>
+
+</html>
diff --git a/web/index.php b/web/index.php
deleted file mode 100644
index f697d42907..0000000000
--- a/web/index.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-define("BASE_WEB_PATH", "/openWB/web/");
-
-function redirect($target)
-{
-	header("Location: " . BASE_WEB_PATH . $target);
-	exit;
-}
-
-$updateInProgress = false;
-$bootInProgress = false;
-$isExtern = false;
-$dataProtectionAcknowledged = false;
-$usageTermsAcknowledged = false;
-
-// check if update.sh is still running
-$output = null;
-$resultCode = null;
-exec("mosquitto_sub -t 'openWB/system/update_in_progress' -C 1 -W 1", $output, $resultCode);
-if ($resultCode == 0 && $output[0] == "true") {
-	$updateInProgress = true;
-}
-// check if atreboot.sh is still running
-$output = null;
-$resultCode = null;
-exec("mosquitto_sub -t 'openWB/system/boot_done' -C 1 -W 1", $output, $resultCode);
-if ($resultCode == 0 && $output[0] !== "true") {
-	$bootInProgress = true;
-}
-// if updating or booting, show placeholder. If not, show theme
-if ($bootInProgress or $updateInProgress) {
-	//atreboot.sh or update.sh still in progress, wait 5 seconds and retry
-	include $_SERVER["DOCUMENT_ROOT"] . BASE_WEB_PATH . "notReady.html";
-	exit;
-}
-
-// check for acknowledgement of usage terms
-$output = null;
-$resultCode = null;
-exec("mosquitto_sub -t 'openWB/system/usage_terms_acknowledged' -C 1 -W 1", $output, $resultCode);
-if ($resultCode == 0 && $output[0] == "true") {
-	$usageTermsAcknowledged = true;
-}
-if (!$usageTermsAcknowledged) {
-	// load usage terms page
-	redirect("settings/#/System/LegalSettings");
-	exit;
-}
-
-// check for external mode
-$output = null;
-$resultCode = null;
-exec("mosquitto_sub -t 'openWB/general/extern' -C 1 -W 1", $output, $resultCode);
-if ($resultCode == 0 && $output[0] == "true") {
-	$isExtern = true;
-}
-if ($isExtern) {
-	// load chargepoint only page
-	include $_SERVER["DOCUMENT_ROOT"] . BASE_WEB_PATH . "isExtern.html";
-	exit;
-}
-
-// load normal UI
-// check if theme cookie exists and theme is installed
-// else set standard theme
-if (!(isset($_COOKIE["openWBTheme"]) === true) || !(is_dir("themes/" . $_COOKIE["openWBTheme"]) === true)) {
-	$_COOKIE["openWBTheme"] = "standard";
-}
-// expand expiring-date to now + 2 years
-$expire = time() + (60 * 60 * 24 * 365 * 2);
-setcookie("openWBTheme", $_COOKIE["openWBTheme"], $expire, "/openWB/");
-if (file_exists($_SERVER["DOCUMENT_ROOT"] . BASE_WEB_PATH . "themes/" . $_COOKIE["openWBTheme"] . "/theme.php")) {
-	include  $_SERVER["DOCUMENT_ROOT"] . BASE_WEB_PATH . "themes/" . $_COOKIE["openWBTheme"] . "/theme.php";
-} else {
-	include  $_SERVER["DOCUMENT_ROOT"] . BASE_WEB_PATH . "themes/" . $_COOKIE["openWBTheme"] . "/theme.html";
-}
diff --git a/web/isExtern.html b/web/isExtern.html
deleted file mode 100644
index fa17c24bef..0000000000
--- a/web/isExtern.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE html>
-<html lang="de">
-
-<head>
-	<base href="/openWB/web/">
-	<meta charset="UTF-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<title>openWB | Nur Ladepunkt</title>
-	<meta name="description" content="Control your charge" />
-	<meta name="author" content="Michael Ortenstein" />
-	<!-- Favicons (created with http://realfavicongenerator.net/)-->
-	<link rel="apple-touch-icon" sizes="57x57" href="img/favicons/apple-touch-icon-57x57.png">
-	<link rel="apple-touch-icon" sizes="60x60" href="img/favicons/apple-touch-icon-60x60.png">
-	<link rel="icon" type="image/png" href="img/favicons/favicon-32x32.png" sizes="32x32">
-	<link rel="icon" type="image/png" href="img/favicons/favicon-16x16.png" sizes="16x16">
-	<link rel="manifest" href="manifest.json">
-	<link rel="shortcut icon" href="img/favicons/favicon.ico">
-	<meta name="msapplication-TileColor" content="#00a8ff">
-	<meta name="msapplication-config" content="img/favicons/browserconfig.xml">
-	<meta name="theme-color" content="#ffffff">
-
-	<!-- Bootstrap -->
-	<link rel="stylesheet" type="text/css" href="css/bootstrap-4.4.1/bootstrap.min.css">
-	<!-- Normalize -->
-	<link rel="stylesheet" type="text/css" href="css/normalize-8.0.1.css">
-
-	<link rel="stylesheet" type="text/css" href="fonts/font-awesome-5.8.2/css/all.css">
-	<!-- include settings-style -->
-	<link rel="stylesheet" type="text/css" href="css/settings_style.css">
-
-	<!-- important scripts to be loaded -->
-	<script src="js/jquery-3.6.0.min.js"></script>
-	<script src="js/bootstrap-4.4.1/bootstrap.bundle.min.js"></script>
-	<script>
-		/**
-		 * getCookie
-		 * returns a cookie value
-		 * @param {string} cname cookie name
-		 * @returns {string}
-		 */
-		function getCookie(cname) {
-			var name = cname + '=';
-			var decodedCookie = decodeURIComponent(document.cookie);
-			var ca = decodedCookie.split(';');
-			for (var i = 0; i < ca.length; i++) {
-				var c = ca[i];
-				while (c.charAt(0) == ' ') {
-					c = c.substring(1);
-				}
-				if (c.indexOf(name) == 0) {
-					return c.substring(name.length, c.length);
-				}
-			}
-			return '';
-		}
-
-		// get selected theme and set style
-		var themeCookie = getCookie('openWBTheme');
-		if ('' != themeCookie) {
-			$('head').append('<link rel="stylesheet" href="themes/' + themeCookie + '/settings.css?v=20200801">');
-		}
-	</script>
-</head>
-
-<body>
-	<div role="main" class="container" style="margin-top:20px">
-		<div class="card border-secondary">
-			<div class="card-header bg-secondary">
-				openWB ist nur als Ladepunkt konfiguriert
-			</div>
-			<div class="card-body p-0">
-				<div class="row mx-0">
-					<div class="col-md-4 py-3">
-						<img class="openwb-logo" style="max-width: 100%;" src="img/openWB_logo_light.png" alt="openWB">
-					</div>
-					<div class="col py-3 border-left bg-light">
-						<h4>Alle Einstellungen erfolgen über die Haupt openWB.</h4>
-						Zum deaktivieren des "nur Ladepunkt Modus" bitte die
-						<a href="settings/#/GeneralConfig">Einstellungen</a> öffnen.
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-</body>
-
-</html>
diff --git a/web/js/RGraph.common.core.js b/web/js/RGraph.common.core.js
deleted file mode 100644
index 064fea2ca1..0000000000
--- a/web/js/RGraph.common.core.js
+++ /dev/null
@@ -1,494 +0,0 @@
-
-window.RGraph=window.RGraph||{isrgraph:true,isRGraph:true,rgraph:true};(function(win,doc,undefined)
-{var ua=navigator.userAgent;RGraph.Highlight={};RGraph.Registry={};RGraph.Registry.store=[];RGraph.Registry.store['event.handlers']=[];RGraph.Registry.store['__rgraph_event_listeners__']=[];RGraph.Background={};RGraph.background={};RGraph.objects=[];RGraph.Resizing={};RGraph.events=[];RGraph.cursor=[];RGraph.Effects=RGraph.Effects||{};RGraph.cache=[];RGraph.ObjectRegistry={};RGraph.ObjectRegistry.objects={};RGraph.ObjectRegistry.objects.byUID=[];RGraph.ObjectRegistry.objects.byCanvasID=[];RGraph.OR=RGraph.ObjectRegistry;RGraph.PI=Math.PI;RGraph.HALFPI=RGraph.PI/2;RGraph.TWOPI=RGraph.PI*2;RGraph.ISFF=ua.indexOf('Firefox')!=-1;RGraph.ISOPERA=ua.indexOf('Opera')!=-1;RGraph.ISCHROME=ua.indexOf('Chrome')!=-1;RGraph.ISSAFARI=ua.indexOf('Safari')!=-1&&!RGraph.ISCHROME;RGraph.ISWEBKIT=ua.indexOf('WebKit')!=-1;RGraph.ISIE=ua.indexOf('Trident')>0||navigator.userAgent.indexOf('MSIE')>0;RGraph.ISIE6=ua.indexOf('MSIE 6')>0;RGraph.ISIE7=ua.indexOf('MSIE 7')>0;RGraph.ISIE8=ua.indexOf('MSIE 8')>0;RGraph.ISIE9=ua.indexOf('MSIE 9')>0;RGraph.ISIE10=ua.indexOf('MSIE 10')>0;RGraph.ISOLD=RGraph.ISIE6||RGraph.ISIE7||RGraph.ISIE8;RGraph.ISIE11UP=ua.indexOf('MSIE')==-1&&ua.indexOf('Trident')>0;RGraph.ISIE10UP=RGraph.ISIE10||RGraph.ISIE11UP;RGraph.ISIE9UP=RGraph.ISIE9||RGraph.ISIE10UP;RGraph.getArgs=function(args,names)
-{var ret={};var count=0;names=names.trim().split(/ *, */);if(args&&args[0]&&args.length===1&&typeof args[0][names[0]]!=='undefined'){for(var i=0;i<names.length;++i){if(typeof args[0][names[i]]==='undefined'){args[0][names[i]]=null;}}
-return args[0];}else{for(var i in names){ret[names[i]]=typeof args[count]==='undefined'?null:args[count];count+=1;}}
-return ret;};RGraph.getScale=function(args)
-{var prop=args.object.properties,numlabels=typeof args.options['scale.labels.count']=='number'?args.options['scale.labels.count']:5,units_pre=typeof args.options['scale.units.pre']=='string'?args.options['scale.units.pre']:'',units_post=typeof args.options['scale.units.post']=='string'?args.options['scale.units.post']:'',max=Number(args.options['scale.max']),min=typeof args.options['scale.min']=='number'?args.options['scale.min']:0,strict=args.options['scale.strict'],decimals=Number(args.options['scale.decimals']),point=args.options['scale.point'],thousand=args.options['scale.thousand'],original_max=max,round=args.options['scale.round'],scale={max:1,labels:[],values:[]},formatter=args.options['scale.formatter'];prefix=args.object.type==='hbar'?'xaxis':'yaxis';prefix=args.object.type==='odo'?'':prefix;if(!max){var max=1;for(var i=0;i<numlabels;++i){var label=((((max-min)/numlabels)+min)*(i+1)).toFixed(decimals);scale.labels.push(units_pre+label+units_post);scale.values.push(parseFloat(label))}}else if(max<=1&&!strict){var arr=[1,0.5,0.10,0.05,0.010,0.005,0.0010,0.0005,0.00010,0.00005,0.000010,0.000005,0.0000010,0.0000005,0.00000010,0.00000005,0.000000010,0.000000005,0.0000000010,0.0000000005,0.00000000010,0.00000000005,0.000000000010,0.000000000005,0.0000000000010,0.0000000000005],vals=[];for(var i=0;i<arr.length;++i){if(max>arr[i]){i--;break;}}
-scale.max=arr[i]
-scale.labels=[];scale.values=[];for(var j=0;j<numlabels;++j){var value=((((arr[i]-min)/numlabels)*(j+1))+min).toFixed(decimals);scale.values.push(value);scale.labels.push(RGraph.numberFormat({object:args.object,number:value,unitspre:units_pre,unitspost:units_post,thousand:thousand,point:point,formatter:formatter,decimals:decimals}));}}else if(!strict){max=Math.ceil(max);var interval=Math.pow(10,Math.max(1,Number(String(Number(max)-Number(min)).length-1)));var topValue=interval;while(topValue<max){topValue+=(interval/2);}
-if(Number(original_max)>Number(topValue)){topValue+=(interval/2);}
-if(max<=10){topValue=(Number(original_max)<=5?5:10);}
-if(args.object&&typeof round=='boolean'&&round){topValue=10*interval;}
-scale.max=topValue;var tmp_point=prop[prefix+'ScalePoint'];var tmp_thousand=prop[prefix+'ScaleThousand'];args.object.set(prefix+'scaleThousand',thousand);args.object.set(prefix+'scalePoint',point);for(var i=0;i<numlabels;++i){scale.labels.push(RGraph.numberFormat({object:args.object,number:((((i+1)/numlabels)*(topValue-min))+min).toFixed(decimals),unitspre:units_pre,unitspost:units_post,point:point,thousand:thousand,formatter:formatter}));scale.values.push(((((i+1)/numlabels)*(topValue-min))+min).toFixed(decimals));}
-args.object.set(prefix+'scaleThousand',tmp_thousand);args.object.set(prefix+'scalePoint',tmp_point);}else if(typeof max=='number'&&strict){for(var i=0;i<numlabels;++i){scale.labels.push(RGraph.numberFormat({object:args.object,number:((((i+1)/numlabels)*(max-min))+min).toFixed(decimals),unitspre:units_pre,unitspost:units_post,thousand:thousand,point:point,formatter:formatter}));scale.values.push(((((i+1)/numlabels)*(max-min))+min).toFixed(decimals));}
-scale.max=max;}
-scale.units_pre=units_pre;scale.units_post=units_post;scale.point=point;scale.decimals=decimals;scale.thousand=thousand;scale.numlabels=numlabels;scale.round=Boolean(round);scale.min=min;scale.formatter=formatter;for(var i=0;i<scale.values.length;++i){scale.values[i]=parseFloat(scale.values[i]);}
-return scale;};RGraph.parseJSONGradient=function(args)
-{var obj=args.object,def=args.def,context=args.object.context;def=eval("("+def+")");if(typeof def.r1==='number'&&typeof def.r2==='number'){var grad=context.createRadialGradient(def.x1,def.y1,def.r1,def.x2,def.y2,def.r2);}else{var grad=context.createLinearGradient(def.x1,def.y1,def.x2,def.y2);}
-var diff=1/(def.colors.length-1);grad.addColorStop(0,RGraph.trim(def.colors[0]));for(var j=1,len=def.colors.length;j<len;++j){grad.addColorStop(j*diff,RGraph.trim(def.colors[j]));}
-return grad;};RGraph.arrayInvert=function()
-{var args=RGraph.getArgs(arguments,'array');for(var i=0,len=args.array.length;i<len;++i){args.array[i]=!args.array[i];}
-return args.array;};RGraph.arrayTrim=function()
-{var args=RGraph.getArgs(arguments,'array');var out=[],content=false;for(var i=0;i<args.array.length;i++){if(args.array[i]){content=true;}
-if(content){out.push(args.array[i]);}}
-out=RGraph.arrayReverse(out);var out2=[],content=false;for(var i=0;i<out.length;i++){if(out[i]){content=true;}
-if(content){out2.push(out[i]);}}
-out2=RGraph.arrayReverse(out2);return out2;};RGraph.arrayClone=function()
-{var args=RGraph.getArgs(arguments,'array');if(args.array===null||typeof args.array!=='object'){return args.array;}
-var temp=RGraph.isArray(args.array)?[]:{};for(var i in args.array){if(typeof i==='string'||typeof i==='number'){if(typeof args.array[i]==='number'){temp[i]=(function(arg){return Number(arg);})(args.array[i]);}else if(typeof args.array[i]==='string'){temp[i]=(function(arg){return String(arg);})(args.array[i]);}else if(typeof args.array[i]==='function'){temp[i]=args.array[i];}else{temp[i]=RGraph.arrayClone(args.array[i]);}}}
-return temp;};RGraph.arrayMax=function()
-{var args=RGraph.getArgs(arguments,'array,ignore');var max=null;if(typeof args.array==='number'){return args.array;}
-if(RGraph.isNull(args.array)){return 0;}
-for(var i=0,len=args.array.length;i<len;++i){if(typeof args.array[i]==='number'&&!isNaN(args.array[i])){var val=args.ignore?Math.abs(args.array[i]):args.array[i];if(typeof max==='number'){max=Math.max(max,val);}else{max=val;}}}
-return max;};RGraph.arrayMin=function(args)
-{var args=RGraph.getArgs(arguments,'array,ignore');var max=null,min=null,ma=Math;if(typeof args.array==='number'){return args.array;}
-if(RGraph.isNull(args.array)){return 0;}
-for(var i=0,len=args.array.length;i<len;++i){if(typeof args.array[i]==='number'){var val=args.ignore?Math.abs(args.array[i]):args.array[i];if(typeof min==='number'){min=Math.min(min,val);}else{min=val;}}}
-return min;};RGraph.arrayPad=function()
-{var args=RGraph.getArgs(arguments,'array,length,value');if(args.array.length<args.length){for(var i=args.array.length;i<args.length;i+=1){args.array[i]=args.value;}}
-return args.array;};RGraph.arraySum=function()
-{var args=RGraph.getArgs(arguments,'array');if(typeof args.array==='number'){return args.array;}
-if(RGraph.isNull(args.array)){return 0;}
-var i,sum,len=args.array.length;for(i=0,sum=0;i<len;sum+=(args.array[i++]||0));return sum;};RGraph.arrayLinearize=function()
-{var arr=[],args=arguments
-for(var i=0,len=args.length;i<len;++i){if(typeof args[i]==='object'&&args[i]){for(var j=0,len2=args[i].length;j<len2;++j){var sub=RGraph.arrayLinearize(args[i][j]);for(var k=0,len3=sub.length;k<len3;++k){arr.push(sub[k]);}}}else{arr.push(args[i]);}}
-return arr;};RGraph.arrayShift=function()
-{var args=RGraph.getArgs(arguments,'array');var ret=[];for(var i=1,len=args.array.length;i<len;++i){ret.push(args.array[i]);}
-return ret;};RGraph.arrayReverse=function()
-{var args=RGraph.getArgs(arguments,'array');if(!args.array){return;}
-var newarr=[];for(var i=args.array.length-1;i>=0;i-=1){newarr.push(args.array[i]);}
-return newarr;};RGraph.abs=function()
-{var args=RGraph.getArgs(arguments,'value');if(typeof args.value==='string'){args.value=parseFloat(args.value)||0;}
-if(typeof args.value==='number'){return Math.abs(args.value);}
-if(typeof args.value==='object'){for(i in args.value){if(typeof args.value[i]==='string'||typeof args.value[i]==='number'||typeof args.value[i]==='object'){args.value[i]=RGraph.abs(args.value[i]);}}
-return args.value;}
-return 0;};RGraph.clear=RGraph.Clear=function(args)
-{var args=RGraph.getArgs(arguments,'canvas,color');var obj=args.canvas.__object__;var context=args.canvas.getContext('2d');var color=args.color||(obj&&obj.get('clearto'));if(!args.canvas){return;}
-RGraph.fireCustomEvent(obj,'onbeforeclear');if(RGraph.text.domNodeCache&&RGraph.text.domNodeCache[args.canvas.id]){for(var i in RGraph.text.domNodeCache[args.canvas.id]){var el=RGraph.text.domNodeCache[args.canvas.id][i];if(el&&el.style){el.style.display='none';}}}
-if(!color||(color&&color==='rgba(0,0,0,0)'||color==='transparent')){context.clearRect(-100,-100,args.canvas.width+200,args.canvas.height+200);context.globalCompositeOperation='source-over';}else if(color){obj.path('fs % fr -100 -100 % %',color,args.canvas.width+200,args.canvas.height+200);}else{obj.path('fs % fr -100 -100 % %',obj.get('clearto'),args.canvas.width+200,args.canvas.height+200);}
-if(RGraph.Registry.get('background.image.'+args.canvas.id)){var img=RGraph.Registry.get('background.image.'+args.canvas.id);img.style.position='absolute';img.style.left='-10000px';img.style.top='-10000px';}
-if(RGraph.Registry.get('tooltip')&&obj&&!obj.get('tooltipsNohideonclear')){RGraph.hideTooltip(args.canvas);}
-args.canvas.style.cursor='default';RGraph.fireCustomEvent(obj,'onclear');};RGraph.drawTitle=function()
-{var args=RGraph.getArgs(arguments,'object,text,marginTop,centerx');var canvas=args.object.canvas,context=args.object.context,prop=args.object.properties,marginLeft=prop.marginLeft,marginRight=prop.marginRight,marginTop=args.marginTop,marginBottom=prop.marginBottom,centerx=(args.centerx?args.centerx:((canvas.width-marginLeft-marginRight)/2)+marginLeft),keypos=prop.keyPosition,vpos=prop.titleVpos,hpos=prop.titleHpos,bgcolor=prop.titleBackground,x=prop.titleX,y=prop.titleY,halign='center',valign='center',textConf=RGraph.getTextConf({object:args.object,prefix:'title'});var size=textConf.size,bold=textConf.bold,italic=textConf.italic;if(RGraph.isNull(bold)){textConf.bold=true;bold=true;}
-if(args.object.type=='bar'&&prop.variant=='3d'){keypos='margin';}
-context.beginPath();context.fillStyle=textConf.color?textConf.color:'black';if(keypos&&keypos!='margin'){var valign='center';}else if(!keypos){var valign='center';}else{var valign='bottom';}
-if(typeof prop.titleVpos==='number'){vpos=prop.titleVpos*marginTop;if(prop.xaxisPosition==='top'){vpos=prop.titleVpos*marginBottom+marginTop+(canvas.height-marginTop-marginBottom);}}else{vpos=marginTop-size-5;if(prop.xaxisPosition==='top'){vpos=canvas.height-marginBottom+size+5;}}
-if(typeof hpos==='number'){centerx=hpos*canvas.width;}
-if(typeof x==='number')centerx=x;if(typeof y==='number')vpos=y;if(typeof x==='string')centerx+=parseFloat(x);if(typeof y==='string')vpos+=parseFloat(y);if(typeof prop.titleHalign==='string'){halign=prop.titleHalign;}
-if(typeof prop.titleValign==='string'){valign=prop.titleValign;}
-if(typeof textConf.color!==null){var oldColor=context.fillStyle,newColor=textConf.color;context.fillStyle=newColor?newColor:'black';}
-var ret=RGraph.text({object:args.object,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:centerx,y:vpos,text:args.text,valign:valign,halign:halign,bounding:bgcolor!=null,'bounding.fill':bgcolor,tag:'title',marker:false});context.fillStyle=oldColor;};RGraph.getMouseXY=function()
-{var args=RGraph.getArgs(arguments,'event');if(!args.event.target){return;}
-var el=args.event.target,canvas=el,caStyle=canvas.style,offsetX=0,offsetY=0,x,y,borderLeft=parseInt(caStyle.borderLeftWidth)||0,borderTop=parseInt(caStyle.borderTopWidth)||0,paddingLeft=parseInt(caStyle.paddingLeft)||0,paddingTop=parseInt(caStyle.paddingTop)||0,additionalX=borderLeft+paddingLeft,additionalY=borderTop+paddingTop;if(typeof args.event.offsetX==='number'&&typeof args.event.offsetY==='number'){if(!RGraph.ISIE&&!RGraph.ISOPERA){x=args.event.offsetX-borderLeft-paddingLeft;y=args.event.offsetY-borderTop-paddingTop;}else if(RGraph.ISIE){x=args.event.offsetX-paddingLeft;y=args.event.offsetY-paddingTop;}else{x=args.event.offsetX;y=args.event.offsetY;}}else{if(typeof el.offsetParent!=='undefined'){do{offsetX+=el.offsetLeft;offsetY+=el.offsetTop;}while((el=el.offsetParent));}
-x=args.event.pageX-offsetX-additionalX;y=args.event.pageY-offsetY-additionalY;x-=(2*(parseInt(document.body.style.borderLeftWidth)||0));y-=(2*(parseInt(document.body.style.borderTopWidth)||0));}
-return[x,y];};RGraph.getCanvasXY=function()
-{var args=RGraph.getArgs(arguments,'canvas');var x=0;var y=0;var el=args.canvas;do{x+=el.offsetLeft;y+=el.offsetTop;if(el.tagName.toLowerCase()=='table'&&(RGraph.ISCHROME||RGraph.ISSAFARI)){x+=parseInt(el.border)||0;y+=parseInt(el.border)||0;}
-el=el.offsetParent;}while(el&&el.tagName.toLowerCase()!='body');var paddingLeft=args.canvas.style.paddingLeft?parseInt(args.canvas.style.paddingLeft):0;var paddingTop=args.canvas.style.paddingTop?parseInt(args.canvas.style.paddingTop):0;var borderLeft=args.canvas.style.borderLeftWidth?parseInt(args.canvas.style.borderLeftWidth):0;var borderTop=args.canvas.style.borderTopWidth?parseInt(args.canvas.style.borderTopWidth):0;if(navigator.userAgent.indexOf('Firefox')>0){x+=parseInt(document.body.style.borderLeftWidth)||0;y+=parseInt(document.body.style.borderTopWidth)||0;}
-return[x+paddingLeft+borderLeft,y+paddingTop+borderTop];};RGraph.isFixed=function()
-{var args=RGraph.getArgs(arguments,'canvas');var i=0;while(args.canvas&&args.canvas.tagName.toLowerCase()!='body'&&i<99){if(args.canvas.style.position=='fixed'){return args.canvas;}
-args.canvas=args.canvas.offsetParent;}
-return false;};RGraph.register=function()
-{var args=RGraph.getArgs(arguments,'object');if(!args.object.get('noregister')&&args.object.get('register')!==false){RGraph.ObjectRegistry.add(args.object);args.object.set('register',false);}};RGraph.redraw=function()
-{var args=RGraph.getArgs(arguments,'color');var objectRegistry=RGraph.ObjectRegistry.objects.byCanvasID;var tags=document.getElementsByTagName('canvas');for(var i=0,len=tags.length;i<len;++i){if(tags[i]&&tags[i].__object__&&tags[i].__object__.isrgraph){if(!tags[i].noclear){RGraph.clear(tags[i],args.color?args.color:null);}}}
-for(var i=0,len=objectRegistry.length;i<len;++i){if(objectRegistry[i]){var id=objectRegistry[i][0];objectRegistry[i][1].draw();}}};RGraph.redrawCanvas=function()
-{var args=RGraph.getArgs(arguments,'canvas,clear,color');var objects=RGraph.ObjectRegistry.getObjectsByCanvasID(args.canvas.id);if(RGraph.isNull(args.clear)||(typeof args.clear==='boolean'&&args.clear!==false)){var color=args.color||args.canvas.__object__.get('clearto')||'transparent';RGraph.clear(args.canvas,args.color);}
-for(var i=0,len=objects.length;i<len;++i){if(objects[i]){if(objects[i]&&objects[i].isrgraph){objects[i].draw();}}}};RGraph.Background.draw=function()
-{var args=RGraph.getArgs(arguments,'object');var prop=args.object.properties,height=0,marginLeft=args.object.marginLeft,marginRight=args.object.marginRight,marginTop=args.object.marginTop,marginBottom=args.object.marginBottom,variant=prop.variant
-args.object.context.fillStyle=prop.textColor;if(variant=='3d'){args.object.context.save();args.object.context.translate(prop.variantThreedOffsetx,-1*prop.variantThreedOffsety);}
-if(args.object.type!=='bar'&&args.object.type!=='waterfall'&&args.object.type!=='hbar'&&args.object.type!=='line'&&args.object.type!=='gantt'&&args.object.type!=='scatter'&&typeof prop.xaxisTitle==='string'&&prop.xaxisTitle.length){var size=prop.textSize+2;var hpos=((args.object.canvas.width-marginLeft-marginRight)/2)+marginLeft;var vpos=args.object.canvas.height-marginBottom+25;if(typeof prop.xaxisTitlePos==='number'){vpos=args.object.canvas.height-(marginBottom*prop.xaxisTitlePos);}
-if(typeof prop.xaxisTitleX==='number'){hpos=prop.xaxisTitleX;}
-if(typeof prop.xaxisTitleY==='number'){vpos=prop.xaxisTitleY;}
-var textConf=RGraph.getTextConf({object:args.object,prefix:'xaxisTitle'});RGraph.text({object:args.object,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:hpos,y:vpos,text:prop.xaxisTitle,halign:'center',valign:'top',tag:'xaxis.title'});}
-if(args.object.type!=='bar'&&args.object.type!=='waterfall'&&args.object.type!=='hbar'&&args.object.type!=='line'&&args.object.type!=='gantt'&&args.object.type!=='scatter'&&typeof prop.yaxisTitle==='string'&&prop.yaxisTitle.length){var size=prop.textSize+2;var font=prop.textFont;var italic=prop.textItalic;var angle=270;var bold=prop.yaxisTitleBold;var color=prop.yaxisTitleColor;if(typeof prop.yaxisTitlePos=='number'){var yaxis_title_pos=prop.yaxisTitlePos*marginLeft;}else if(args.object.type==='hbar'&&RGraph.isNull(prop.yaxisTitlePos)){var yaxis_title_pos=prop.marginLeft-args.object.yaxisLabelsSize;}else{if(args.object&&args.object.scale2){var yaxisTitleDimensions=RGraph.measureText({text:args.object.scale2.labels[args.object.scale2.labels.length-1],bold:typeof prop.yaxisScaleBold==='boolean'?prop.yaxisScaleBold:prop.textBold,font:prop.yaxisScaleFont||prop.textFont,size:typeof prop.yaxisScaleSize==='number'?prop.yaxisScaleSize:prop.textSize});}else{yaxisTitleDimensions=[0,0];}
-var yaxis_title_pos=prop.marginLeft-yaxisTitleDimensions[0]-7;}
-if(typeof prop.yaxisTitleSize==='number'){size=prop.yaxisTitleSize;}
-if(typeof prop.yaxisTitleItalic==='boolean'){italic=prop.yaxisTitleItalic;}
-if(typeof prop.yaxisTitleFont==='string'){font=prop.yaxisTitleFont;}
-if(prop.yaxisTitleAlign=='right'||prop.yaxisTitlePosition=='right'||(args.object.type==='hbar'&&prop.yaxisPosition==='right'&&typeof prop.yaxisTitleAlign==='undefined'&&typeof prop.yaxisTitlePosition==='undefined')){angle=90;yaxis_title_pos=typeof prop.yaxisTitlePos==='number'?(args.object.canvas.width-marginRight)+(prop.yaxisTitlePos*marginRight):args.object.canvas.width-marginRight+(prop.yaxisLabelsSize||prop.textSize)+10;}
-var y=((args.object.canvas.height-marginTop-marginBottom)/2)+marginTop;if(typeof prop.yaxisTitleX==='number'){yaxis_title_pos=prop.yaxisTitleX;}
-if(typeof prop.yaxisTitleY==='number'){y=prop.yaxisTitleY;}
-args.object.context.fillStyle=color;var textConf=RGraph.getTextConf({object:args.object,prefix:'yaxisTitle'});RGraph.text({object:args.object,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:yaxis_title_pos,y:y,valign:'bottom',halign:'center',angle:angle,text:prop.yaxisTitle,tag:'yaxis.title',accessible:false});}
-var bgcolor=prop.backgroundColor;if(bgcolor){args.object.context.fillStyle=bgcolor;args.object.context.fillRect(marginLeft+0.5,marginTop+0.5,args.object.canvas.width-marginLeft-marginRight,args.object.canvas.height-marginTop-marginBottom);}
-var numbars=(prop.yaxisLabelsCount||5);if(typeof prop.backgroundBarsCount==='number'){numbars=prop.backgroundBarsCount;}
-var barHeight=(args.object.canvas.height-marginBottom-marginTop)/numbars;args.object.context.beginPath();args.object.context.fillStyle=prop.backgroundBarsColor1;args.object.context.strokeStyle=args.object.context.fillStyle;height=(args.object.canvas.height-marginBottom);for(var i=0;i<numbars;i+=2){args.object.context.rect(marginLeft,(i*barHeight)+marginTop,args.object.canvas.width-marginLeft-marginRight,barHeight);}
-args.object.context.fill();args.object.context.beginPath();args.object.context.fillStyle=prop.backgroundBarsColor2;args.object.context.strokeStyle=args.object.context.fillStyle;for(var i=1;i<numbars;i+=2){args.object.context.rect(marginLeft,(i*barHeight)+marginTop,args.object.canvas.width-marginLeft-marginRight,barHeight);}
-args.object.context.fill();args.object.context.beginPath();var func=function(obj,cacheCanvas,cacheContext)
-{if(prop.backgroundGrid){prop.backgroundGridHlinesCount+=0.0001;if(prop.backgroundGridAutofit){if(prop.backgroundGridAutofitAlign){if(obj.type==='hbar'){obj.set('backgroundGridHlinesCount',obj.data.length);}
-if(obj.type==='line'){if(typeof prop.backgroundGridVlinesCount==='number'){}else if(prop.xaxisLabels&&prop.xaxisLabels.length){obj.set('backgroundGridVlinesCount',prop.xaxisLabels.length-1);}else{obj.set('backgroundGridVlinesCount',obj.data[0].length>0?obj.data[0].length-1:0);}}else if(obj.type==='waterfall'){obj.set('backgroundGridVlinesCount',obj.data.length+(prop.total?1:0));}else if(obj.type==='bar'){obj.set('backgroundGridVlinesCount',obj.data.length);}else if(obj.type==='scatter'){if(typeof prop.backgroundGridVlinesCount!=='number'){if(RGraph.isArray(prop.xaxisLabels)&&prop.xaxisLabels.length){obj.set('backgroundGridVlinesCount',prop.xaxisLabels.length);}else{obj.set('backgroundGridVlinesCount',10);}}}else if(obj.type==='gantt'){if(typeof obj.get('backgroundGridVlinesCount')==='number'){}else{obj.set('backgroundGridVlinesCount',prop.xaxisScaleMax);}
-obj.set('backgroundGridHlinesCount',obj.data.length);}else if(obj.type==='hbar'&&RGraph.isNull(prop.backgroundGridHlinesCount)){obj.set('backgroundGridHlinesCount',obj.data.length);}}
-var vsize=((cacheCanvas.width-marginLeft-marginRight))/prop.backgroundGridVlinesCount;var hsize=(cacheCanvas.height-marginTop-marginBottom)/prop.backgroundGridHlinesCount;obj.set('backgroundGridVsize',vsize);obj.set('backgroundGridHsize',hsize);}
-obj.context.beginPath();cacheContext.lineWidth=prop.backgroundGridLinewidth?prop.backgroundGridLinewidth:1;cacheContext.strokeStyle=prop.backgroundGridColor;if(prop.backgroundGridDashed&&typeof cacheContext.setLineDash=='function'){cacheContext.setLineDash([3,5]);}
-if(prop.backgroundGridDotted&&typeof cacheContext.setLineDash=='function'){cacheContext.setLineDash([1,3]);}
-obj.context.beginPath();if(prop.backgroundGridHlines){height=(cacheCanvas.height-marginBottom)
-var hsize=prop.backgroundGridHsize;for(y=marginTop;y<=height;y+=hsize){cacheContext.moveTo(marginLeft,Math.round(y));cacheContext.lineTo(args.object.canvas.width-marginRight,Math.round(y));}}
-if(prop.backgroundGridVlines){var width=(cacheCanvas.width-marginRight);var vsize=prop.backgroundGridVsize;for(var x=marginLeft;Math.round(x)<=width;x+=vsize){cacheContext.moveTo(Math.round(x),marginTop);cacheContext.lineTo(Math.round(x),obj.canvas.height-marginBottom);}}
-if(prop.backgroundGridBorder){cacheContext.strokeStyle=prop.backgroundGridColor;cacheContext.strokeRect(Math.round(marginLeft),Math.round(marginTop),obj.canvas.width-marginLeft-marginRight,obj.canvas.height-marginTop-marginBottom);}}
-cacheContext.stroke();cacheContext.beginPath();cacheContext.closePath();}
-RGraph.cachedDraw(args.object,args.object.uid+'_background',func);if(variant=='3d'){args.object.context.restore();}
-if(typeof args.object.context.setLineDash=='function'){args.object.context.setLineDash([1,0]);}
-args.object.context.stroke();if(typeof args.object.properties.title=='string'){var prop=args.object.properties;RGraph.drawTitle(args.object,prop.title,args.object.marginTop,null,prop.titleSize?prop.titleSize:prop.textSize+2,args.object);}};RGraph.numberFormat=function(args)
-{var prop=args.object.properties;var i;var prepend=args.unitspre?String(args.unitspre):'';var append=args.unitspost?String(args.unitspost):'';var output='';var decimal='';var decimal_seperator=typeof args.point==='string'?args.point:'.';var thousand_seperator=typeof args.thousand==='string'?args.thousand:',';RegExp.$1='';var i,j;if(typeof args.formatter==='function'){return(args.formatter)(args);}
-if(String(args.number).indexOf('e')>0){return String(prepend+String(args.number)+append);}
-args.number=String(args.number);if(args.number.indexOf('.')>0){var tmp=args.number;args.number=args.number.replace(/\.(.*)/,'');decimal=tmp.replace(/(.*)\.(.*)/,'$2');}
-var seperator=thousand_seperator;var foundPoint;for(i=(args.number.length-1),j=0;i>=0;j++,i--){var character=args.number.charAt(i);if(j%3==0&&j!=0){output+=seperator;}
-output+=character;}
-var rev=output;output='';for(i=(rev.length-1);i>=0;i--){output+=rev.charAt(i);}
-if(output.indexOf('-'+args.thousand)==0){output='-'+output.substr(('-'+args.thousand).length);}
-if(decimal.length){output=output+decimal_seperator+decimal;decimal='';RegExp.$1='';}
-if(output.charAt(0)=='-'){output=output.replace(/-/,'');prepend='-'+prepend;}
-output=output.replace(/^,+/,'');return prepend+output+append;};RGraph.drawBars=function()
-{var args=RGraph.getArgs(arguments,'object'),prop=args.object.properties,hbars=prop.backgroundHbars;if(hbars===null){return;}
-args.object.context.beginPath();for(var i=0,len=hbars.length;i<len;++i){var start=hbars[i][0];var length=hbars[i][1];var color=hbars[i][2];if(RGraph.isNull(start))start=args.object.scale2.max
-if(start>args.object.scale2.max)start=args.object.scale2.max;if(RGraph.isNull(length))length=args.object.scale2.max-start;if(start+length>args.object.scale2.max)length=args.object.scale2.max-start;if(start+length<(-1*args.object.scale2.max))length=(-1*args.object.scale2.max)-start;if(prop.xaxisPosition=='center'&&start==args.object.scale2.max&&length<(args.object.scale2.max* -2)){length=args.object.scale2.max* -2;}
-var x=prop.marginLeft;var y=args.object.getYCoord(start);var w=args.object.canvas.width-prop.marginLeft-prop.marginRight;var h=args.object.getYCoord(start+length)-y;if(RGraph.ISOPERA!=-1&&prop.xaxisPosition=='center'&&h<0){h*=-1;y=y-h;}
-if(prop.xaxisPosition=='top'){y=args.object.canvas.height-y;h*=-1;}
-args.object.context.fillStyle=color;args.object.context.fillRect(x,y,w,h);}};RGraph.drawInGraphLabels=function()
-{var args=RGraph.getArgs(arguments,'object');var prop=args.object.properties,labels=prop.labelsIngraph,labels_processed=[];var fgcolor='black',bgcolor='white',direction=1;if(!labels){return;}
-var textConf=RGraph.getTextConf({object:args.object,prefix:'labelsIngraph'});for(var i=0,len=labels.length;i<len;i+=1){if(typeof labels[i]==='number'){for(var j=0;j<labels[i];++j){labels_processed.push(null);}}else if(typeof labels[i]==='string'||typeof labels[i]==='object'){labels_processed.push(labels[i]);}else{labels_processed.push('');}}
-RGraph.noShadow(args.object);if(labels_processed&&labels_processed.length>0){for(var i=0,len=labels_processed.length;i<len;i+=1){if(labels_processed[i]){var coords=args.object.coords[i];if(coords&&coords.length>0){var x=(args.object.type=='bar'?coords[0]+(coords[2]/2):coords[0]);var y=(args.object.type=='bar'?coords[1]+(coords[3]/2):coords[1]);var length=typeof labels_processed[i][4]==='number'?labels_processed[i][4]:25;args.object.context.beginPath();args.object.context.fillStyle='black';args.object.context.strokeStyle='black';if(args.object.type==='bar'){if(args.object.get('xaxisPosition')=='top'){length*=-1;}
-if(prop.variant=='dot'){args.object.context.moveTo(Math.round(x),args.object.coords[i][1]-5);args.object.context.lineTo(Math.round(x),args.object.coords[i][1]-5-length);var text_x=Math.round(x);var text_y=args.object.coords[i][1]-5-length;}else if(prop.variant=='arrow'){args.object.context.moveTo(Math.round(x),args.object.coords[i][1]-5);args.object.context.lineTo(Math.round(x),args.object.coords[i][1]-5-length);var text_x=Math.round(x);var text_y=args.object.coords[i][1]-5-length;}else{args.object.context.arc(Math.round(x),y,2.5,0,6.28,0);args.object.context.moveTo(Math.round(x),y);args.object.context.lineTo(Math.round(x),y-length);var text_x=Math.round(x);var text_y=y-length;}
-args.object.context.stroke();args.object.context.fill();}else{if(typeof labels_processed[i]=='object'&&typeof labels_processed[i][3]=='number'&&labels_processed[i][3]==-1){drawUpArrow(x,y)
-var valign='top';var text_x=x;var text_y=y+5+length;}else{var text_x=x;var text_y=y-5-length;if(text_y<5&&(typeof labels_processed[i]==='string'||typeof labels_processed[i][3]==='undefined')){text_y=y+5+length;var valign='top';}
-if(valign==='top'){drawUpArrow(x,y);}else{drawDownArrow(x,y);}}
-args.object.context.fill();}
-args.object.context.beginPath();if((typeof labels_processed[i]==='object'&&typeof labels_processed[i][1]==='string')){args.object.context.fillStyle=labels_processed[i][1];}else{args.object.context.fillStyle=prop.labelsIngraphColor;}
-RGraph.text({object:args.object,font:textConf.font,size:textConf.size,color:args.object.context.fillStyle||textConf.color,bold:textConf.bold,italic:textConf.italic,x:text_x,y:text_y+(args.object.properties.textAccessible?2:0),text:(typeof labels_processed[i]==='object'&&typeof labels_processed[i][0]==='string')?labels_processed[i][0]:labels_processed[i],valign:valign||'bottom',halign:'center',bounding:true,'bounding.fill':(typeof labels_processed[i]==='object'&&typeof labels_processed[i][2]==='string')?labels_processed[i][2]:'white',tag:'labels ingraph'});args.object.context.fill();}
-function drawUpArrow(x,y)
-{args.object.context.moveTo(Math.round(x),y+5);args.object.context.lineTo(Math.round(x),y+5+length);args.object.context.stroke();args.object.context.beginPath();args.object.context.moveTo(Math.round(x),y+5);args.object.context.lineTo(Math.round(x)-3,y+10);args.object.context.lineTo(Math.round(x)+3,y+10);args.object.context.closePath();}
-function drawDownArrow(x,y)
-{args.object.context.moveTo(Math.round(x),y-5);args.object.context.lineTo(Math.round(x),y-5-length);args.object.context.stroke();args.object.context.beginPath();args.object.context.moveTo(Math.round(x),y-5);args.object.context.lineTo(Math.round(x)-3,y-10);args.object.context.lineTo(Math.round(x)+3,y-10);args.object.context.closePath();}
-valign=undefined;}}}};RGraph.hideCrosshairCoords=function()
-{var div=RGraph.Registry.get('coordinates.coords.div');if(div&&div.style.opacity==1&&div.__object__.get('crosshairsCoordsFadeout')){var style=RGraph.Registry.get('coordinates.coords.div').style;setTimeout(function(){style.opacity=0.9;},25);setTimeout(function(){style.opacity=0.8;},50);setTimeout(function(){style.opacity=0.7;},75);setTimeout(function(){style.opacity=0.6;},100);setTimeout(function(){style.opacity=0.5;},125);setTimeout(function(){style.opacity=0.4;},150);setTimeout(function(){style.opacity=0.3;},175);setTimeout(function(){style.opacity=0.2;},200);setTimeout(function(){style.opacity=0.1;},225);setTimeout(function(){style.opacity=0;},250);setTimeout(function(){style.display='none';},275);}};RGraph.draw3DAxes=function()
-{var args=RGraph.getArgs(arguments,'object');var prop=args.object.properties;var marginLeft=args.object.marginLeft,marginRight=args.object.marginRight,marginTop=args.object.marginTop,marginBottom=args.object.marginBottom,xaxispos=prop.xaxisPosition,graphArea=args.object.canvas.height-marginTop-marginBottom,halfGraphArea=graphArea/2,offsetx=prop.variantThreedOffsetx,offsety=prop.variantThreedOffsety,xaxis=prop.variantThreedXaxis,yaxis=prop.variantThreedYaxis
-if(yaxis){RGraph.draw3DYAxis(args.object);}
-if(xaxis){if(xaxispos==='center'){args.object.path('b m % % l % % l % % l % % c s #aaa f #ddd',marginLeft,marginTop+halfGraphArea,marginLeft+offsetx,marginTop+halfGraphArea-offsety,args.object.canvas.width-marginRight+offsetx,marginTop+halfGraphArea-offsety,args.object.canvas.width-marginRight,marginTop+halfGraphArea);}else{if(args.object.type==='hbar'){var xaxisYCoord=args.object.canvas.height-args.object.properties.marginBottom;}else{var xaxisYCoord=args.object.getYCoord(0);}
-args.object.path('m % % l % % l % % l % % c s #aaa f #ddd',marginLeft,xaxisYCoord,marginLeft+offsetx,xaxisYCoord-offsety,args.object.canvas.width-marginRight+offsetx,xaxisYCoord-offsety,args.object.canvas.width-marginRight,xaxisYCoord);}}};RGraph.draw3DYAxis=function(args)
-{var args=RGraph.getArgs(arguments,'object');var prop=args.object.properties;var marginLeft=args.object.marginLeft,marginRight=args.object.marginRight,marginTop=args.object.marginTop,marginBottom=args.object.marginBottom,xaxispos=prop.xaxisPosition,graphArea=args.object.canvas.height-marginTop-marginBottom,halfGraphArea=graphArea/2,offsetx=prop.variantThreedOffsetx,offsety=prop.variantThreedOffsety;if((args.object.type==='hbar'||args.object.type==='bar')&&prop.yaxisPosition==='center'){var x=((args.object.canvas.width-marginLeft-marginRight)/2)+marginLeft;}else if((args.object.type==='hbar'||args.object.type==='bar')&&prop.yaxisPosition==='right'){var x=args.object.canvas.width-marginRight;}else{var x=marginLeft;}
-args.object.path('b m % % l % % l % % l % % s #aaa f #ddd',x,marginTop,x+offsetx,marginTop-offsety,x+offsetx,args.object.canvas.height-marginBottom-offsety,x,args.object.canvas.height-marginBottom);};RGraph.roundedRect=function()
-{var args=RGraph.getArgs(arguments,'context,x,y,width,height,radius,roundtl,roundtr,roundbl,roundbr');var r=args.radius?args.radius:3;r=Math.min(Math.min(args.width,args.height)/2,args.radius);var corner_tl=(args.roundtl===false)?false:true,corner_tr=(args.roundtr===false)?false:true,corner_bl=(args.roundbl===false)?false:true,corner_br=(args.roundbr===false)?false:true;args.context.beginPath();args.context.moveTo(args.x,args.y+r);if(corner_tl){args.context.arc(args.x+r,args.y+r,r,RGraph.PI,RGraph.PI+RGraph.HALFPI,false);}else{args.context.lineTo(args.x,args.y);args.context.lineTo(args.x+r,args.y);}
-if(corner_tr){args.context.arc(args.x+args.width-r,args.y+r,r,RGraph.PI+RGraph.HALFPI,0,false);}else{args.context.lineTo(args.x+args.width,args.y);args.context.lineTo(args.x+args.width,args.y+r);}
-if(corner_br){args.context.arc(args.x+args.width-r,args.y+args.height-r,r,0,RGraph.HALFPI,false);}else{args.context.lineTo(args.x+args.width,args.y+args.height);args.context.lineTo(args.x+args.width-r,args.y+args.height);}
-if(corner_bl){args.context.arc(args.x+r,args.y-r+args.height,r,RGraph.HALFPI,RGraph.PI,false);}else{args.context.lineTo(args.x,args.y+args.height);args.context.lineTo(args.x,args.y+args.height-r);}
-args.context.closePath();};RGraph.addCustomEventListener=function()
-{var args=RGraph.getArgs(arguments,'object,name,func');if(typeof RGraph.events[args.object.uid]==='undefined'){RGraph.events[args.object.uid]=[];}
-if(args.name.substr(0,2)!=='on'){args.name='on'+args.name;}
-RGraph.events[args.object.uid].push([args.object,args.name,args.func]);return RGraph.events[args.object.uid].length-1;};RGraph.fireCustomEvent=function()
-{var args=RGraph.getArgs(arguments,'object,name');if(args.name.substr(0,2)!=='on'){args.name='on'+args.name;}
-if(args.object&&args.object.isrgraph){if(args.object[args.name]){(args.object[args.name])(args.object);}
-var uid=args.object.uid;if(typeof uid==='string'&&typeof RGraph.events==='object'&&typeof RGraph.events[uid]==='object'&&RGraph.events[uid].length>0){for(var j=0;j<RGraph.events[uid].length;++j){if(RGraph.events[uid][j]&&RGraph.events[uid][j][1]===args.name){RGraph.events[uid][j][2](args.object);}}}}};RGraph.removeAllCustomEventListeners=function()
-{var args=RGraph.getArgs(arguments,'uid');if(args.uid&&RGraph.events[args.uid]){RGraph.events[args.uid]=[];}else{RGraph.events=[];RGraph.ObjectRegistry.iterate(function(obj)
-{if(obj.onclick)obj.onclick=null;if(obj.onmousemove)obj.onmousemove=null;if(obj.onmouseover)obj.onmouseover=null;if(obj.onmouseout)obj.onmouseout=null;});}};RGraph.removeCustomEventListener=function()
-{var args=RGraph.getArgs(arguments,'object,index');if(typeof RGraph.events==='object'&&typeof RGraph.events[args.object.uid]==='object'&&typeof RGraph.events[args.object.uid][args.index]==='object'){RGraph.events[args.object.uid][args.index]=null;}};RGraph.drawBackgroundImage=function(args)
-{var args=RGraph.getArgs(arguments,'object');var prop=args.object.properties;if(typeof prop.backgroundImage==='string'){if(typeof args.object.canvas.__rgraph_background_image__==='undefined'){var img=new Image();img.__object__=args.object;img.__canvas__=args.object.canvas;img.__context__=args.object.context;img.src=args.object.get('backgroundImage');args.object.canvas.__rgraph_background_image__=img;}else{img=args.object.canvas.__rgraph_background_image__;}
-img.onload=function()
-{args.object.__rgraph_background_image_loaded__=true;RGraph.clear(args.object.canvas);RGraph.redrawCanvas(args.object.canvas);}
-var marginLeft=args.object.marginLeft;var marginRight=args.object.marginRight;var marginTop=args.object.marginTop;var marginBottom=args.object.marginBottom;var stretch=prop.backgroundImageStretch;var align=prop.backgroundImageAlign;if(typeof align==='string'){if(align.indexOf('right')!=-1){var x=args.object.canvas.width-(prop.backgroundImageW||img.width)-marginRight;}else{var x=marginLeft;}
-if(align.indexOf('bottom')!=-1){var y=args.object.canvas.height-(prop.backgroundImageH||img.height)-marginBottom;}else{var y=marginTop;}}else{var x=marginLeft||25;var y=marginTop||25;}
-var x=typeof prop.backgroundImageX==='number'?prop.backgroundImageX:x;var y=typeof prop.backgroundImageY==='number'?prop.backgroundImageY:y;var w=stretch?args.object.canvas.width-marginLeft-marginRight:img.width;var h=stretch?args.object.canvas.height-marginTop-marginBottom:img.height;if(typeof prop.backgroundImageW==='number')w=prop.backgroundImageW;if(typeof prop.backgroundImageH==='number')h=prop.backgroundImageH;var oldAlpha=args.object.context.globalAlpha;args.object.context.globalAlpha=prop.backgroundImageAlpha;args.object.context.drawImage(img,x,y,w,h);args.object.context.globalAlpha=oldAlpha;}};RGraph.hasTooltips=function()
-{var args=RGraph.getArgs(arguments,'object');var prop=args.object.properties;if(typeof prop.tooltips=='object'&&prop.tooltips){for(var i=0,len=prop.tooltips.length;i<len;++i){if(!RGraph.isNull(args.object.get('tooltips')[i])){return true;}}}else if(typeof prop.tooltips==='function'){return true;}
-return false;};RGraph.createUID=function()
-{return'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c)
-{var r=Math.random()*16|0,v=c=='x'?r:(r&0x3|0x8);return v.toString(16);});};RGraph.ObjectRegistry.add=function()
-{var args=RGraph.getArgs(arguments,'object');var uid=args.object.uid;var id=args.object.canvas.id;RGraph.ObjectRegistry.objects.byUID[RGraph.ObjectRegistry.objects.byUID.length]=[uid,args.object];RGraph.ObjectRegistry.objects.byCanvasID.push([id,args.object]);};RGraph.ObjectRegistry.remove=function()
-{var args=RGraph.getArgs(arguments,'object');var id=args.object.id;var uid=args.object.uid;for(var i=0;i<RGraph.ObjectRegistry.objects.byUID.length;++i){if(RGraph.ObjectRegistry.objects.byUID[i]&&RGraph.ObjectRegistry.objects.byUID[i][1].uid==uid){RGraph.ObjectRegistry.objects.byUID[i]=null;}}
-for(var i=0;i<RGraph.ObjectRegistry.objects.byCanvasID.length;++i){if(RGraph.ObjectRegistry.objects.byCanvasID[i]&&RGraph.ObjectRegistry.objects.byCanvasID[i][1]&&RGraph.ObjectRegistry.objects.byCanvasID[i][1].uid==uid){RGraph.ObjectRegistry.objects.byCanvasID[i]=null;}}};RGraph.ObjectRegistry.clear=function()
-{if(typeof arguments[0]==='object'&&!RGraph.isNull(arguments)&&(typeof arguments[0].canvas==='object'||typeof arguments[0].id==='string')){var args=arguments[0];}else{if(typeof arguments[0]==='string'){var args={id:arguments[0]};}else if(typeof arguments[0]==='object'&&arguments[0].getContext){var args={canvas:arguments[0]};}else{RGraph.ObjectRegistry.objects={};RGraph.ObjectRegistry.objects.byUID=[];RGraph.ObjectRegistry.objects.byCanvasID=[];return;}}
-if(args.id||args.canvas){if(args.canvas){args.id=args.canvas.id;}
-var objects=RGraph.ObjectRegistry.getObjectsByCanvasID(args.id);for(var i=0,len=objects.length;i<len;++i){RGraph.ObjectRegistry.remove(objects[i]);}}else{RGraph.ObjectRegistry.objects={};RGraph.ObjectRegistry.objects.byUID=[];RGraph.ObjectRegistry.objects.byCanvasID=[];}};RGraph.ObjectRegistry.list=function()
-{var args=RGraph.getArgs(arguments,'alert');var list=[];for(var i=0,len=RGraph.ObjectRegistry.objects.byUID.length;i<len;++i){if(RGraph.ObjectRegistry.objects.byUID[i]){list.push(RGraph.ObjectRegistry.objects.byUID[i][1].type);}}
-if(args.alert){$p(list);}else{return list;}};RGraph.ObjectRegistry.clearByType=function()
-{var args=RGraph.getArgs(arguments,'type');var objects=RGraph.ObjectRegistry.objects.byUID;for(var i=0,len=objects.length;i<len;++i){if(objects[i]){var uid=objects[i][0],obj=objects[i][1];if(obj&&obj.type===args.type){RGraph.ObjectRegistry.remove(obj);}}}};RGraph.ObjectRegistry.iterate=function()
-{var args=RGraph.getArgs(arguments,'func,type');var objects=RGraph.ObjectRegistry.objects.byUID;for(var i=0,len=objects.length;i<len;++i){if(typeof args.type==='string'){var types=args.type.split(/,/);for(var j=0,len2=types.length;j<len2;++j){if(types[j]==objects[i][1].type){args.func(objects[i][1]);}}}else{args.func(objects[i][1]);}}};RGraph.ObjectRegistry.getObjectsByCanvasID=function()
-{var args=RGraph.getArgs(arguments,'id');var store=RGraph.ObjectRegistry.objects.byCanvasID;var ret=[];for(var i=0,len=store.length;i<len;++i){if(store[i]&&store[i][0]==args.id){ret.push(store[i][1]);}}
-return ret;};RGraph.ObjectRegistry.firstbyxy=RGraph.ObjectRegistry.getObjectByXY=RGraph.ObjectRegistry.getFirstObjectByXY=function()
-{var args=RGraph.getArgs(arguments,'event');var canvas=args.event.target;var ret=null;var objects=RGraph.ObjectRegistry.getObjectsByCanvasID(canvas.id);for(var i=(objects.length-1);i>=0;--i){var obj=objects[i].getObjectByXY(args.event);if(obj){return obj;}}};RGraph.ObjectRegistry.getObjectsByXY=function()
-{var args=RGraph.getArgs(arguments,'event');var canvas=args.event.target,ret=[],objects=RGraph.ObjectRegistry.getObjectsByCanvasID(canvas.id);for(var i=(objects.length-1);i>=0;--i){var obj=objects[i].getObjectByXY(args.event);if(obj){ret.push(obj);}}
-return ret;};RGraph.ObjectRegistry.get=RGraph.ObjectRegistry.getObjectByUID=function()
-{var args=RGraph.getArgs(arguments,'uid');var objects=RGraph.ObjectRegistry.objects.byUID;for(var i=0,len=objects.length;i<len;++i){if(objects[i]&&objects[i][1].uid==args.uid){return objects[i][1];}}};RGraph.ObjectRegistry.bringToFront=function()
-{var args=RGraph.getArgs(arguments,'object,redraw');var redraw=args.redraw?true:args.redraw;RGraph.ObjectRegistry.remove(args.object);RGraph.ObjectRegistry.add(args.object);if(redraw){RGraph.redrawCanvas(args.object.canvas);}};RGraph.ObjectRegistry.type=RGraph.ObjectRegistry.getObjectsByType=function()
-{var args=RGraph.getArgs(arguments,'type');var objects=RGraph.ObjectRegistry.objects.byUID;var ret=[];for(i in objects){if(objects[i]&&objects[i][1]&&objects[i][1].type&&objects[i][1].type&&objects[i][1].type==args.type){ret.push(objects[i][1]);}}
-return ret;};RGraph.ObjectRegistry.first=RGraph.ObjectRegistry.getFirstObjectByType=function()
-{var args=RGraph.getArgs(arguments,'type');var objects=RGraph.ObjectRegistry.objects.byUID;for(var i in objects){if(objects[i]&&objects[i][1]&&objects[i][1].type==args.type){return objects[i][1];}}
-return null;};RGraph.getAngleByXY=function()
-{var args=RGraph.getArgs(arguments,'cx,cy,x,y');var angle=Math.atan((args.y-args.cy)/(args.x-args.cx));angle=Math.abs(angle)
-if(args.x>=args.cx&&args.y>=args.cy){angle+=RGraph.TWOPI;}else if(args.x>=args.cx&&args.y<args.cy){angle=(RGraph.HALFPI-angle)+(RGraph.PI+RGraph.HALFPI);}else if(args.x<args.cx&&args.y<args.cy){angle+=RGraph.PI;}else{angle=RGraph.PI-angle;}
-if(angle>RGraph.TWOPI){angle-=RGraph.TWOPI;}
-return angle;};RGraph.getHypLength=function()
-{var args=RGraph.getArgs(arguments,'x1,y1,x2,y2');return Math.sqrt(((args.x2-args.x1)*(args.x2-args.x1))+((args.y2-args.y1)*(args.y2-args.y1)));};RGraph.getRadiusEndPoint=function()
-{var args=RGraph.getArgs(arguments,'cx,cy,angle,radius');var x=args.cx+(Math.cos(args.angle)*args.radius);var y=args.cy+(Math.sin(args.angle)*args.radius);return[x,y];};RGraph.installEventListeners=function()
-{var args=RGraph.getArgs(arguments,'object');var prop=args.object.properties;if(RGraph.installCanvasClickListener){RGraph.installWindowMousedownListener(args.object);RGraph.installWindowMouseupListener(args.object);RGraph.installCanvasMousemoveListener(args.object);RGraph.installCanvasMouseupListener(args.object);RGraph.installCanvasMousedownListener(args.object);RGraph.installCanvasClickListener(args.object);}else if(RGraph.hasTooltips(args.object)||prop.adjustable||prop.annotatable||prop.contextmenu||prop.keyInteractive||typeof args.object.onclick==='function'||typeof args.object.onmousemove==='function'||typeof args.object.onmouseout==='function'||typeof args.object.onmouseover==='function'){alert('[RGRAPH] You appear to have used dynamic features but not included the file: RGraph.common.dynamic.js');}};RGraph.pr=function()
-{var args=RGraph.getArgs(arguments,'object,alert,indent,counter');var indent=(args.indent?args.indent:'    ');var str='';var counter=typeof args.counter=='number'?args.counter:0;if(counter>=6){return'';}
-switch(typeof args.object){case'string':str+=args.object+' ('+(typeof args.object)+', '+args.object.length+')';break;case'number':str+=args.object+' ('+(typeof args.object)+')';break;case'boolean':str+=args.object+' ('+(typeof args.object)+')';break;case'function':str+='function () {}';break;case'undefined':str+='undefined';break;case'null':str+='null';break;case'object':if(RGraph.isNull(args.object)){str+=indent+'null\n';}else{str+=indent+'Object {'+'\n'
-for(var j in args.object){str+=indent+'    '+j+' => '+RGraph.pr(args.object[j],true,indent+'    ',counter+1)+'\n';}
-str+=indent+'}';}
-break;default:str+='Unknown type: '+typeof obj+'';break;}
-if(!args.alert){alert(str);}
-return str;};RGraph.dashedLine=function()
-{var args=RGraph.getArgs(arguments,'context,x1,y1,x2,y2,size'),dx=args.x2-args.x1,dy=args.y2-args.y1,num=Math.floor(Math.sqrt((dx*dx)+(dy*dy))/(args.size||3)),xLen=dx/num,yLen=dy/num,count=0;do{if(count%2==0&&count>0){args.context.lineTo(args.x1,args.y1);}else{args.context.moveTo(args.x1,args.y1);}
-args.x1+=xLen;args.y1+=yLen;count++;}while(count<=num);};RGraph.AJAX=function()
-{var args=RGraph.getArgs(arguments,'url,callback');if(window.XMLHttpRequest){var httpRequest=new XMLHttpRequest();}else if(window.ActiveXObject){var httpRequest=new ActiveXObject("Microsoft.XMLHTTP");}
-httpRequest.onreadystatechange=function()
-{if(this.readyState==4&&this.status==200){this.__user_callback__=args.callback;this.__user_callback__(this.responseText);}}
-httpRequest.open('GET',args.url,true);httpRequest.send();};RGraph.AJAX.post=RGraph.AJAX.POST=function()
-{var args=RGraph.getArgs(arguments,'url,data,callback');var crumbs=[];if(window.XMLHttpRequest){var httpRequest=new XMLHttpRequest();}else if(window.ActiveXObject){var httpRequest=new ActiveXObject("Microsoft.XMLHTTP");}
-httpRequest.onreadystatechange=function()
-{if(this.readyState==4&&this.status==200){this.__user_callback__=args.callback;this.__user_callback__(this.responseText);}}
-httpRequest.open('POST',args.url,true);httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");for(i in args.data){if(typeof i=='string'){crumbs.push(i+'='+encodeURIComponent(args.data[i]));}}
-httpRequest.send(crumbs.join('&'));};RGraph.AJAX.getNumber=function()
-{var args=RGraph.getArgs(arguments,'url,callback');RGraph.AJAX(args.url,function()
-{var num=parseFloat(this.responseText);args.callback(num);});};RGraph.AJAX.getString=function()
-{var args=RGraph.getArgs(arguments,'url,callback');RGraph.AJAX(args.url,function()
-{var str=String(this.responseText);args.callback(str);});};RGraph.AJAX.getJSON=function()
-{var args=RGraph.getArgs(arguments,'url,callback');RGraph.AJAX(args.url,function()
-{var json=eval('('+this.responseText+')');args.callback(json);});};RGraph.AJAX.getCSV=function()
-{var args=RGraph.getArgs(arguments,'url,callback,separator');var separator=args.separator?args.separator:',';RGraph.AJAX(args.url,function()
-{var regexp=new RegExp(separator);var arr=this.responseText.split(regexp);for(var i=0,len=arr.length;i<len;++i){arr[i]=parseFloat(arr[i]);}
-args.callback(arr);});};RGraph.rotateCanvas=function()
-{var args=RGraph.getArgs(arguments,'canvas,x,y,angle');var context=args.canvas.getContext('2d');context.translate(args.x,args.y);context.rotate(args.angle);context.translate(0-args.x,0-args.y);};RGraph.measureText=function()
-{var args=RGraph.getArgs(arguments,'text,bold,font,size');if(typeof RGraph.measuretext_cache==='undefined'){RGraph.measuretext_cache=[];}
-var str=args.text+':'+args.bold+':'+args.font+':'+args.size;if(typeof RGraph.measuretext_cache=='object'&&RGraph.measuretext_cache[str]){return RGraph.measuretext_cache[str];}
-if(!RGraph.measuretext_cache['text-div']){var div=document.createElement('DIV');div.style.position='absolute';div.style.top='-100px';div.style.left='-100px';div.style.lineHeight=(args.size||12)*1.5+'px';document.body.appendChild(div);RGraph.measuretext_cache['text-div']=div;}else if(RGraph.measuretext_cache['text-div']){var div=RGraph.measuretext_cache['text-div'];while(div.firstChild){div.removeChild(div.firstChild);}}
-div.insertAdjacentHTML('afterbegin',String(args.text).replace(/\r?\n/g,'<br />'));div.style.fontFamily=args.font;div.style.fontWeight=args.bold?'bold':'normal';div.style.fontSize=(args.size||12)+'pt';RGraph.measuretext_cache[str]=[div.offsetWidth,div.offsetHeight];return[div.offsetWidth,div.offsetHeight];};RGraph.text=function(args)
-{if(arguments[0]&&arguments[1]&&typeof arguments[1].text==='string'){var obj=arguments[0],args=arguments[1];}else{var obj=args.object;}
-for(var i in RGraph.text.defaults){if(typeof i==='string'&&typeof args[i]==='undefined'){args[i]=RGraph.text.defaults[i];}}
-function domtext()
-{if(String(args.size).toLowerCase().indexOf('italic')!==-1){args.size=args.size.replace(/ *italic +/,'');args.italic=true;}
-var cacheKey=Math.abs(parseInt(args.x))+'_'+Math.abs(parseInt(args.y))+'_'+String(args.text).replace(/[^a-zA-Z0-9]+/g,'_')+'_'+obj.canvas.id;if(!obj.canvas.rgraph_domtext_wrapper){var wrapper=document.createElement('div');wrapper.id=obj.canvas.id+'_rgraph_domtext_wrapper';wrapper.className='rgraph_domtext_wrapper';wrapper.style.overflow=obj.properties.textAccessibleOverflow!=false&&obj.properties.textAccessibleOverflow!='hidden'?'visible':'hidden';wrapper.style.width=obj.canvas.offsetWidth+'px';wrapper.style.height=obj.canvas.offsetHeight+'px';wrapper.style.cssFloat=obj.canvas.style.cssFloat;wrapper.style.display=obj.canvas.style.display||'inline-block';wrapper.style.position=obj.canvas.style.position||'relative';wrapper.style.left=obj.canvas.style.left;wrapper.style.right=obj.canvas.style.right;wrapper.style.top=obj.canvas.style.top;wrapper.style.bottom=obj.canvas.style.bottom;wrapper.style.width=obj.canvas.width+'px';wrapper.style.height=obj.canvas.height+'px';wrapper.style.lineHeight='initial';obj.canvas.style.position='absolute';obj.canvas.style.left=0;obj.canvas.style.top=0;obj.canvas.style.display='inline';obj.canvas.style.cssFloat='none';if((obj.type==='bar'||obj.type==='bipolar'||obj.type==='hbar')&&obj.properties.variant==='3d'){wrapper.style.transform='skewY(5.7deg)';}
-obj.canvas.parentNode.insertBefore(wrapper,obj.canvas);obj.canvas.parentNode.removeChild(obj.canvas);wrapper.appendChild(obj.canvas);obj.canvas.rgraph_domtext_wrapper=wrapper;}else{wrapper=obj.canvas.rgraph_domtext_wrapper;}
-var defaults={size:12,font:'Arial',italic:'normal',bold:'normal',valign:'bottom',halign:'left',marker:true,color:context.fillStyle,bounding:{enabled:false,fill:'rgba(255,255,255,0.7)',stroke:'#666',linewidth:1}}
-args.text=String(args.text).replace(/\r?\n/g,'[[RETURN]]');if(typeof RGraph.text.domNodeCache==='undefined'){RGraph.text.domNodeCache=new Array();}
-if(typeof RGraph.text.domNodeCache[obj.id]==='undefined'){RGraph.text.domNodeCache[obj.id]=new Array();}
-if(typeof RGraph.text.domNodeDimensionCache==='undefined'){RGraph.text.domNodeDimensionCache=new Array();}
-if(typeof RGraph.text.domNodeDimensionCache[obj.id]==='undefined'){RGraph.text.domNodeDimensionCache[obj.id]=new Array();}
-if(!RGraph.text.domNodeCache[obj.id]||!RGraph.text.domNodeCache[obj.id][cacheKey]){var span=document.createElement('span');span.style.position='absolute';span.style.display='inline';span.className=' rgraph_accessible_text'
-+' rgraph_accessible_text_'+obj.id
-+' rgraph_accessible_text_'+(args.tag||'').replace(/\./,'_')
-+' rgraph_accessible_text_'+obj.type;span.style.left=(args.x*(parseInt(obj.canvas.offsetWidth)/parseInt(obj.canvas.width)))+'px';span.style.top=(args.y*(parseInt(obj.canvas.offsetHeight)/parseInt(obj.canvas.height)))+'px';span.style.color=args.color||defaults.color;span.style.fontFamily=args.font||defaults.font;span.style.fontWeight=args.bold?'bold':defaults.bold;span.style.fontStyle=args.italic?'italic':defaults.italic;span.style.fontSize=(args.size||defaults.size)+'pt';span.style.whiteSpace='nowrap';span.style.lineHeight=RGraph.ISIE?'normal':'initial';span.tag=args.tag;if(typeof args.angle==='number'&&args.angle!==0){var coords=RGraph.measureText(args.text,args.bold,args.font,args.size);var hOrigin,vOrigin;if(args.halign==='center'){hOrigin='50%';}
-else if(args.halign==='right'){hOrigin='100%';}
-else{hOrigin='0%';}
-if(args.valign==='center'){vOrigin='50%';}
-else if(args.valign==='top'){vOrigin='0%';}
-else{vOrigin='100%';}
-span.style.transformOrigin='{1} {2}'.format(hOrigin,vOrigin);span.style.transform='rotate('+args.angle+'deg)';}
-span.style.textShadow='{1}px {2}px {3}px {4}'.format(context.shadowOffsetX,context.shadowOffsetY,context.shadowBlur,context.shadowColor);if(args.bounding){span.style.border='1px solid '+(args['bounding.stroke']||defaults.bounding.stroke);span.style.backgroundColor=args['bounding.fill']||defaults.bounding.fill;span.style.borderWidth=typeof args['bounding.linewidth']==='number'?args['bounding.linewidth']:defaults.bounding.linewidth;}
-if((typeof obj.properties.textAccessiblePointerevents==='undefined'||obj.properties.textAccessiblePointerevents)&&obj.properties.textAccessiblePointerevents!=='none'){span.style.pointerEvents='auto';}else{span.style.pointerEvents='none';}
-span.style.padding=args.bounding?'2px':null;span.__text__=args.text
-span.insertAdjacentHTML('afterbegin',args.text.replace('&','&amp;').replace('<','&lt;').replace('>','&gt;').replace(/\[\[RETURN\]\]/g,'<br />'));wrapper.appendChild(span);args.halign=args.halign||'left';args.valign=args.valign||'bottom';if(args.halign==='right'){span.style.left=parseFloat(span.style.left)-span.offsetWidth+'px';span.style.textAlign='right';}else if(args.halign==='center'){span.style.left=parseFloat(span.style.left)-(span.offsetWidth/2)+'px';span.style.textAlign='center';}
-if(args.valign==='top'){}else if(args.valign==='center'){span.style.top=parseFloat(span.style.top)-(span.offsetHeight/2)+'px';}else{span.style.top=parseFloat(span.style.top)-span.offsetHeight+'px';}
-var offsetWidth=parseFloat(span.offsetWidth),offsetHeight=parseFloat(span.offsetHeight),top=parseFloat(span.style.top),left=parseFloat(span.style.left);RGraph.text.domNodeCache[obj.id][cacheKey]=span;RGraph.text.domNodeDimensionCache[obj.id][cacheKey]={left:left,top:top,width:offsetWidth,height:offsetHeight};span.id=cacheKey;}else{span=RGraph.text.domNodeCache[obj.id][cacheKey];span.style.display='inline';var offsetWidth=RGraph.text.domNodeDimensionCache[obj.id][cacheKey].width,offsetHeight=RGraph.text.domNodeDimensionCache[obj.id][cacheKey].height,top=RGraph.text.domNodeDimensionCache[obj.id][cacheKey].top,left=RGraph.text.domNodeDimensionCache[obj.id][cacheKey].left;}
-if(args.marker){obj.path('b m % % l % % m % % l % % s',args.x-5,args.y,args.x+5,args.y,args.x,args.y-5,args.x,args.y+5);}
-if(obj.type==='drawing.text'){if(obj.properties.tooltips){span.addEventListener(obj.properties.tooltipsEvent.indexOf('mousemove')!==-1?'mousemove':'click',function(e)
-{if(!RGraph.Registry.get('tooltip')||RGraph.Registry.get('tooltip').__index__!==0||RGraph.Registry.get('tooltip').__object__.uid!=obj.uid){RGraph.hideTooltip();RGraph.redraw();RGraph.tooltip(obj,obj.properties.tooltips[0],args.x,args.y,0,e);}},false);}}
-var ret={};ret.x=left;ret.y=top;ret.width=offsetWidth;ret.height=offsetHeight;ret.object=obj;ret.text=args.text;ret.tag=args.tag;RGraph.text.domNodeCache.reset=function()
-{if(arguments[0]){if(typeof arguments[0]==='string'){var canvas=document.getElementById(arguments[0])}else{var canvas=arguments[0];}
-var nodes=RGraph.text.domNodeCache[canvas.id];for(j in nodes){var node=RGraph.text.domNodeCache[canvas.id][j];if(node&&node.parentNode){node.parentNode.removeChild(node);}}
-RGraph.text.domNodeCache[canvas.id]=[];RGraph.text.domNodeDimensionCache[canvas.id]=[];}else{for(i in RGraph.text.domNodeCache){for(j in RGraph.text.domNodeCache[i]){if(RGraph.text.domNodeCache[i][j]&&RGraph.text.domNodeCache[i][j].parentNode){RGraph.text.domNodeCache[i][j].parentNode.removeChild(RGraph.text.domNodeCache[i][j]);}}}
-RGraph.text.domNodeCache=[];RGraph.text.domNodeDimensionCache=[];}};RGraph.text.find=function(args)
-{var span,nodes=[];if(args.object&&args.object.isrgraph){var id=args.object.id;}else if(args.id){var id=typeof args.id==='string'?args.id:args.object.id;args.object=document.getElementById(id).__object__;}else{alert('[RGRAPH] You Must give either an object or an ID to the RGraph.text.find() function');return false;}
-for(i in RGraph.text.domNodeCache[id]){span=RGraph.text.domNodeCache[id][i];if(typeof args.tag==='string'&&args.tag===span.tag){nodes.push(span);continue;}
-if(typeof args.tag==='object'&&args.tag.constructor.toString().indexOf('RegExp')){var regexp=new RegExp(args.tag);if(regexp.test(span.tag)){nodes.push(span);continue;}}
-if(typeof args.text==='string'&&args.text===span.__text__){nodes.push(span);continue;}
-if(typeof args.text==='object'&&args.text.constructor.toString().indexOf('RegExp')){var regexp=new RegExp(args.text);if(regexp.test(span.__text__)){nodes.push(span);continue;}}}
-if(typeof args.callback==='function'){(args.callback)({nodes:nodes,object:args.object});}
-return nodes;};ret.node=span;if(obj&&obj.isrgraph&&obj.coordsText){obj.coordsText.push(ret);}
-return ret;}
-if(obj&&obj.isrgraph){var obj=obj;var canvas=obj.canvas;var context=obj.context;}else if(typeof obj=='string'){var canvas=document.getElementById(obj);var context=canvas.getContext('2d');var obj=canvas.__object__;}else if(typeof obj.getContext==='function'){var canvas=obj;var context=canvas.getContext('2d');var obj=canvas.__object__;}else if(obj.toString().indexOf('CanvasRenderingContext2D')!=-1||RGraph.ISIE8&&obj.moveTo){var context=obj;var canvas=obj.canvas;var obj=canvas.__object__;}else if(RGraph.ISOLD&&obj.fillText){var context=obj;var canvas=obj.canvas;var obj=canvas.__object__;}
-if(typeof args.boundingFill==='string')args['bounding.fill']=args.boundingFill;if(typeof args.boundingStroke==='string')args['bounding.stroke']=args.boundingStroke;if(typeof args.boundingLinewidth==='number')args['bounding.linewidth']=args.boundingLinewidth;if(typeof args.textConfPrefix==='string'&&args.textConfPrefix.length){var textConf=RGraph.getTextConf({object:obj,prefix:args.textConfPrefix});args.font=textConf.font;args.size=textConf.size;args.color=textConf.color;args.bold=textConf.bold;args.italic=textConf.italic;}
-if(typeof args.accessible==='undefined'){if(obj&&obj.properties.textAccessible){return domtext();}}else if(typeof args.accessible==='boolean'&&args.accessible){return domtext();}
-var x=args.x,y=args.y,originalX=x,originalY=y,text=args.text,text_multiline=typeof text==='string'?text.split(/\r?\n/g):'',numlines=text_multiline.length,font=args.font?args.font:'Arial',size=args.size?args.size:10,size_pixels=size*1.5,bold=args.bold,italic=args.italic,halign=args.halign?args.halign:'left',valign=args.valign?args.valign:'bottom',tag=typeof args.tag=='string'&&args.tag.length>0?args.tag:'',marker=args.marker,angle=args.angle||0;var bounding=args.bounding,bounding_stroke=args['bounding.stroke']?args['bounding.stroke']:'black',bounding_fill=args['bounding.fill']?args['bounding.fill']:'rgba(255,255,255,0.7)',bounding_shadow=args['bounding.shadow'],bounding_shadow_color=args['bounding.shadow.color']||'#ccc',bounding_shadow_blur=args['bounding.shadow.blur']||3,bounding_shadow_offsetx=args['bounding.shadow.offsetx']||3,bounding_shadow_offsety=args['bounding.shadow.offsety']||3,bounding_linewidth=typeof args['bounding.linewidth']==='number'?args['bounding.linewidth']:1;var ret={};if(typeof args.color==='string'){var orig_fillstyle=context.fillStyle;context.fillStyle=args.color;}
-if(typeof text=='number'){text=String(text);}
-if(typeof text!=='string'){return;}
-if(angle!=0){context.save();context.translate(x,y);context.rotate((Math.PI/180)*angle)
-x=0;y=0;}
-context.font=(args.italic?'italic ':'')+(args.bold?'bold ':'')+size+'pt '+font;var width=0;for(var i=0;i<numlines;++i){width=Math.max(width,context.measureText(text_multiline[i]).width);}
-var height=size_pixels*numlines;if(args.marker){var marker_size=10;var strokestyle=context.strokeStyle;context.beginPath();context.strokeStyle='red';context.moveTo(x,y-marker_size);context.lineTo(x,y+marker_size);context.moveTo(x-marker_size,y);context.lineTo(x+marker_size,y);context.stroke();context.strokeStyle=strokestyle;}
-if(halign=='center'){context.textAlign='center';var boundingX=x-2-(width/2);}else if(halign=='right'){context.textAlign='right';var boundingX=x-2-width;}else{context.textAlign='left';var boundingX=x-2;}
-if(valign=='center'){context.textBaseline='middle';y-=1;y-=((numlines-1)/2)*size_pixels;var boundingY=y-(size_pixels/2)-2;}else if(valign=='top'){context.textBaseline='top';var boundingY=y-2;}else{context.textBaseline='bottom';if(numlines>1){y-=((numlines-1)*size_pixels);}
-var boundingY=y-size_pixels-2;}
-var boundingW=width+4;var boundingH=height+4;if(bounding){var pre_bounding_linewidth=context.lineWidth,pre_bounding_strokestyle=context.strokeStyle,pre_bounding_fillstyle=context.fillStyle,pre_bounding_shadowcolor=context.shadowColor,pre_bounding_shadowblur=context.shadowBlur,pre_bounding_shadowoffsetx=context.shadowOffsetX,pre_bounding_shadowoffsety=context.shadowOffsetY;context.lineWidth=bounding_linewidth?bounding_linewidth:0.001;context.strokeStyle=bounding_stroke;context.fillStyle=bounding_fill;if(bounding_shadow){context.shadowColor=bounding_shadow_color;context.shadowBlur=bounding_shadow_blur;context.shadowOffsetX=bounding_shadow_offsetx;context.shadowOffsetY=bounding_shadow_offsety;}
-context.fillRect(boundingX,boundingY,boundingW,boundingH);context.strokeRect(boundingX,boundingY,boundingW,boundingH);context.lineWidth=pre_bounding_linewidth;context.strokeStyle=pre_bounding_strokestyle;context.fillStyle=pre_bounding_fillstyle;context.shadowColor=pre_bounding_shadowcolor
-context.shadowBlur=pre_bounding_shadowblur
-context.shadowOffsetX=pre_bounding_shadowoffsetx
-context.shadowOffsetY=pre_bounding_shadowoffsety}
-if(numlines>1){for(var i=0;i<numlines;++i){context.fillText(text_multiline[i],x,y+(size_pixels*i));}}else{context.fillText(text,x+0.5,y+0.5);}
-if(angle!=0){if(angle==90){if(halign=='left'){if(valign=='bottom'){boundingX=originalX-2;boundingY=originalY-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='center'){boundingX=originalX-(height/2)-2;boundingY=originalY-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='top'){boundingX=originalX-height-2;boundingY=originalY-2;boundingW=height+4;boundingH=width+4;}}else if(halign=='center'){if(valign=='bottom'){boundingX=originalX-2;boundingY=originalY-(width/2)-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='center'){boundingX=originalX-(height/2)-2;boundingY=originalY-(width/2)-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='top'){boundingX=originalX-height-2;boundingY=originalY-(width/2)-2;boundingW=height+4;boundingH=width+4;}}else if(halign=='right'){if(valign=='bottom'){boundingX=originalX-2;boundingY=originalY-width-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='center'){boundingX=originalX-(height/2)-2;boundingY=originalY-width-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='top'){boundingX=originalX-height-2;boundingY=originalY-width-2;boundingW=height+4;boundingH=width+4;}}}else if(angle==180){if(halign=='left'){if(valign=='bottom'){boundingX=originalX-width-2;boundingY=originalY-2;boundingW=width+4;boundingH=height+4;}
-if(valign=='center'){boundingX=originalX-width-2;boundingY=originalY-(height/2)-2;boundingW=width+4;boundingH=height+4;}
-if(valign=='top'){boundingX=originalX-width-2;boundingY=originalY-height-2;boundingW=width+4;boundingH=height+4;}}else if(halign=='center'){if(valign=='bottom'){boundingX=originalX-(width/2)-2;boundingY=originalY-2;boundingW=width+4;boundingH=height+4;}
-if(valign=='center'){boundingX=originalX-(width/2)-2;boundingY=originalY-(height/2)-2;boundingW=width+4;boundingH=height+4;}
-if(valign=='top'){boundingX=originalX-(width/2)-2;boundingY=originalY-height-2;boundingW=width+4;boundingH=height+4;}}else if(halign=='right'){if(valign=='bottom'){boundingX=originalX-2;boundingY=originalY-2;boundingW=width+4;boundingH=height+4;}
-if(valign=='center'){boundingX=originalX-2;boundingY=originalY-(height/2)-2;boundingW=width+4;boundingH=height+4;}
-if(valign=='top'){boundingX=originalX-2;boundingY=originalY-height-2;boundingW=width+4;boundingH=height+4;}}}else if(angle==270){if(halign=='left'){if(valign=='bottom'){boundingX=originalX-height-2;boundingY=originalY-width-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='center'){boundingX=originalX-(height/2)-4;boundingY=originalY-width-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='top'){boundingX=originalX-2;boundingY=originalY-width-2;boundingW=height+4;boundingH=width+4;}}else if(halign=='center'){if(valign=='bottom'){boundingX=originalX-height-2;boundingY=originalY-(width/2)-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='center'){boundingX=originalX-(height/2)-4;boundingY=originalY-(width/2)-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='top'){boundingX=originalX-2;boundingY=originalY-(width/2)-2;boundingW=height+4;boundingH=width+4;}}else if(halign=='right'){if(valign=='bottom'){boundingX=originalX-height-2;boundingY=originalY-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='center'){boundingX=originalX-(height/2)-2;boundingY=originalY-2;boundingW=height+4;boundingH=width+4;}
-if(valign=='top'){boundingX=originalX-2;boundingY=originalY-2;boundingW=height+4;boundingH=width+4;}}}
-context.restore();}
-context.textBaseline='alphabetic';context.textAlign='left';ret.x=boundingX;ret.y=boundingY;ret.width=boundingW;ret.height=boundingH
-ret.object=obj;ret.text=text;ret.tag=tag;if(obj&&obj.isrgraph&&obj.coordsText){obj.coordsText.push(ret);}
-if(typeof orig_fillstyle==='string'){context.fillStyle=orig_fillstyle;}
-return ret;};RGraph.text.defaults={};RGraph.sequentialIndexToGrouped=function()
-{var args=RGraph.getArgs(arguments,'index,data');var group=0;var grouped_index=0;while(--args.index>=0){if(RGraph.isNull(args.data[group])){group++;grouped_index=0;continue;}
-if(typeof args.data[group]=='number'){group++
-grouped_index=0;continue;}
-grouped_index++;if(grouped_index>=args.data[group].length){group++;grouped_index=0;}}
-return[group,grouped_index];};RGraph.groupedIndexToSequential=function()
-{var args=RGraph.getArgs(arguments,'object,dataset,index');for(var i=0,seq=0;i<=args.dataset;++i){for(var j=0;j<args.object.data[args.dataset].length;++j){if(i===args.dataset&&j===args.index){return seq;}
-seq++;}}
-return seq;};RGraph.Highlight.rect=function()
-{var args=RGraph.getArgs(arguments,'object,shape');var prop=args.object.properties;if(prop.tooltipsHighlight){args.object.context.lineWidth=1;args.object.context.beginPath();args.object.context.strokeStyle=prop.highlightStroke;args.object.context.fillStyle=prop.highlightFill;args.object.context.rect(args.shape.x,args.shape.y,args.shape.width,args.shape.height);args.object.context.stroke();args.object.context.fill();}};RGraph.Highlight.point=function()
-{var args=RGraph.getArgs(arguments,'object,shape');var prop=args.object.properties;if(prop.tooltipsHighlight){args.object.context.beginPath();args.object.context.strokeStyle=prop.highlightStroke;args.object.context.fillStyle=prop.highlightFill;var radius=prop.highlightPointRadius||2;args.object.context.arc(args.shape.x,args.shape.y,radius,0,RGraph.TWOPI,0);args.object.context.stroke();args.object.context.fill();}};RGraph.parseDate=function()
-{var args=RGraph.getArgs(arguments,'str');if(args.str.match(/^\d\d\d\d-\d\d-\d\d(t|T)\d\d:\d\d(:\d\d)?$/)){args.str=args.str.toUpperCase().replace(/T/,' ');}
-var d=new Date();var defaults={seconds:'00',minutes:'00',hours:'00',date:d.getDate(),month:d.getMonth()+1,year:d.getFullYear()};var months=['january','february','march','april','may','june','july','august','september','october','november','december'],months_regex=months.join('|');for(var i=0;i<months.length;++i){months[months[i]]=i;months[months[i].substring(0,3)]=i;months_regex=months_regex+'|'+months[i].substring(0,3);}
-var sep='[-./_=+~#:;,]+';var tokens=args.str.split(/ +/);for(var i=0,len=tokens.length;i<len;++i){if(tokens[i]){if(tokens[i].match(/^\d\d\d\d$/)){defaults.year=tokens[i];}
-var res=isMonth(tokens[i]);if(typeof res==='number'){defaults.month=res+1;}
-if(tokens[i].match(/^\d?\d(?:st|nd|rd|th)?$/)){defaults.date=parseInt(tokens[i]);}
-if(tokens[i].match(/^(\d\d):(\d\d):?(?:(\d\d))?$/)){defaults.hours=parseInt(RegExp.$1);defaults.minutes=parseInt(RegExp.$2);if(RegExp.$3){defaults.seconds=parseInt(RegExp.$3);}}
-if(tokens[i].match(new RegExp('^(\\d\\d\\d\\d)'+sep+'(\\d\\d)'+sep+'(\\d\\d)$','i'))){defaults.date=parseInt(RegExp.$3);defaults.month=parseInt(RegExp.$2);defaults.year=parseInt(RegExp.$1);}
-if(tokens[i].match(new RegExp('^(\\d\\d)'+sep+'(\\d\\d)'+sep+'(\\d\\d\\d\\d)$','i'))){defaults.date=parseInt(RegExp.$1);defaults.month=parseInt(RegExp.$2);defaults.year=parseInt(RegExp.$3);}}}
-args.str='{1}/{2}/{3} {4}:{5}:{6}'.format(defaults.year,String(defaults.month).length===1?'0'+(defaults.month):defaults.month,String(defaults.date).length===1?'0'+(defaults.date):defaults.date,String(defaults.hours).length===1?'0'+(defaults.hours):defaults.hours,String(defaults.minutes).length===1?'0'+(defaults.minutes):defaults.minutes,String(defaults.seconds).length===1?'0'+(defaults.seconds):defaults.seconds);return Date.parse(args.str);function isMonth(str)
-{var res=str.toLowerCase().match(months_regex);return res?months[res[0]]:false;}};RGraph.parseDateOld=function()
-{var args=RGraph.getArgs(arguments,'str');args.str=RGraph.trim(args.str);if(args.str==='now'){args.str=(new Date()).toString();}
-if(args.str.match(/^(\d\d)(?:-|\/)(\d\d)(?:-|\/)(\d\d\d\d)(.*)$/)){args.str='{1}/{2}/{3}{4}'.format(RegExp.$3,RegExp.$2,RegExp.$1,RegExp.$4);}
-if(args.str.match(/^(\d\d\d\d)(-|\/)(\d\d)(-|\/)(\d\d)( |T)(\d\d):(\d\d):(\d\d)$/)){args.str=RegExp.$1+'-'+RegExp.$3+'-'+RegExp.$5+'T'+RegExp.$7+':'+RegExp.$8+':'+RegExp.$9;}
-if(args.str.match(/^\d\d\d\d-\d\d-\d\d$/)){args.str=args.str.replace(/-/g,'/');}
-if(args.str.match(/^\d\d:\d\d:\d\d$/)){var dateObj=new Date();var date=dateObj.getDate();var month=dateObj.getMonth()+1;var year=dateObj.getFullYear();if(String(month).length===1)month='0'+month;if(String(date).length===1)date='0'+date;args.str=(year+'/'+month+'/'+date)+' '+args.str;}
-return Date.parse(args.str);};RGraph.resetColorsToOriginalValues=function()
-{var args=RGraph.getArgs(arguments,'object');if(args.object.original_colors){for(var j in args.object.original_colors){if(typeof j==='string'){args.object.properties[j]=RGraph.arrayClone(args.object.original_colors[j]);}}}
-if(typeof args.object.resetColorsToOriginalValues==='function'){args.object.resetColorsToOriginalValues();}
-args.object.colorsParsed=false;};RGraph.linearGradient=function()
-{var args=arguments[0];var gradient=args.object.context.createLinearGradient(args.x1,args.y1,args.x2,args.y2);var numColors=args.colors.length;for(var i=0;i<args.colors.length;++i){var color=args.colors[i];var stop=i/(numColors-1);gradient.addColorStop(stop,color);}
-return gradient;};RGraph.radialGradient=function()
-{var args=arguments[0];var gradient=args.object.context.createRadialGradient(args.x1,args.y1,args.r1,args.x2,args.y2,args.r2);var numColors=args.colors.length;for(var i=0;i<args.colors.length;++i){gradient.addColorStop(i/(numColors-1),args.colors[i]);}
-return gradient;};RGraph.clearEventListeners=function()
-{var args=RGraph.getArgs(arguments,'id');if(args.id&&args.id==='window'){window.removeEventListener('mousedown',RGraph.window_mousedown_event_listener,false);window.removeEventListener('mouseup',RGraph.window_mouseup_event_listener,false);}else{var canvas=document.getElementById(args.id);canvas.removeEventListener('mouseup',canvas.rgraph_mouseup_event_listener,false);canvas.removeEventListener('mousemove',canvas.rgraph_mousemove_event_listener,false);canvas.removeEventListener('mousedown',canvas.rgraph_mousedown_event_listener,false);canvas.removeEventListener('click',canvas.rgraph_click_event_listener,false);}};RGraph.hidePalette=function()
-{var div=RGraph.Registry.get('palette');if(typeof div=='object'&&div){div.style.visibility='hidden';div.style.display='none';RGraph.Registry.set('palette',null);}};RGraph.random=function()
-{var args=RGraph.getArgs(arguments,'min,max,decimals');var dp=args.decimals?args.decimals:0;var r=Math.random();return Number((((args.max-args.min)*r)+args.min).toFixed(dp));};RGraph.arrayRandom=function()
-{var args=RGraph.getArgs(arguments,'count,min,max,decimals');for(var i=0,arr=[];i<args.count;i+=1){arr.push(RGraph.random(args.min,args.max,args.decimals));}
-return arr;};RGraph.noShadow=function()
-{var args=RGraph.getArgs(arguments,'object');args.object.context.shadowColor='rgba(0,0,0,0)';args.object.context.shadowBlur=0;args.object.context.shadowOffsetx=0;args.object.context.shadowOffsety=0;};RGraph.setShadow=function()
-{if(typeof arguments[0]==='object'&&typeof arguments[0].object==='object'&&typeof arguments[0].object.isrgraph&&typeof arguments[0].prefix==='string'){var args=arguments[0];args.object.context.shadowColor=args.object.properties[args.prefix+'Color'];args.object.context.shadowOffsetX=args.object.properties[args.prefix+'Offsetx'];args.object.context.shadowOffsetY=args.object.properties[args.prefix+'Offsety'];args.object.context.shadowBlur=args.object.properties[args.prefix+'Blur'];}else if(arguments.length===1&&typeof arguments[0]==='object'&&typeof arguments[0].isrgraph){var obj=arguments[0];obj.context.shadowColor='rgba(0,0,0,0)';obj.context.shadowOffsetX=0;obj.context.shadowOffsetY=0;obj.context.shadowBlur=0;}else{var obj=arguments[0];obj.context.shadowColor=arguments[1];obj.context.shadowOffsetX=arguments[2];obj.context.shadowOffsetY=arguments[3];obj.context.shadowBlur=arguments[4];}};RGraph.Registry.set=function()
-{var args=RGraph.getArgs(arguments,'name,value');args.name=args.name.replace(/([A-Z])/g,function(str)
-{return'.'+String(RegExp.$1).toLowerCase();});RGraph.Registry.store[args.name]=args.value;return args.value;};RGraph.Registry.get=function()
-{var args=RGraph.getArgs(arguments,'name');args.name=args.name.replace(/([A-Z])/g,function(str)
-{return'.'+String(RegExp.$1).toLowerCase();});return RGraph.Registry.store[args.name];};RGraph.toRadians=function()
-{var args=RGraph.getArgs(arguments,'degrees');return args.degrees*(RGraph.PI/180);};RGraph.toDegrees=function()
-{var args=RGraph.getArgs(arguments,'radians');return args.radians*(180/Math.PI);};RGraph.log=function()
-{var args=RGraph.getArgs(arguments,'number,base');return Math.log(args.number)/(args.base?Math.log(args.base):1);};RGraph.isArray=function()
-{var args=RGraph.getArgs(arguments,'object');if(args.object&&args.object.constructor){var pos=args.object.constructor.toString().indexOf('Array');}else{return false;}
-return args.object!=null&&typeof pos==='number'&&pos>0&&pos<20;};RGraph.trim=function()
-{var args=RGraph.getArgs(arguments,'str');return RGraph.ltrim(RGraph.rtrim(args.str));};RGraph.ltrim=function()
-{var args=RGraph.getArgs(arguments,'str');return args.str.replace(/^(\s|\0)+/,'');};RGraph.rtrim=function()
-{var args=RGraph.getArgs(arguments,'str');return args.str.replace(/(\s|\0)+$/,'');};RGraph.isNull=function()
-{var args=RGraph.getArgs(arguments,'arg');if(typeof args.arg==='object'&&!args.arg){return true;}
-return false;};RGraph.async=function()
-{var args=RGraph.getArgs(arguments,'func,delay');return setTimeout(args.func,args.delay?args.delay:1);};RGraph.reset=function()
-{var args=RGraph.getArgs(arguments,'canvas');args.canvas.width=args.canvas.width;RGraph.ObjectRegistry.clear(args.canvas);args.canvas.__rgraph_aa_translated__=false;if(RGraph.text.domNodeCache&&RGraph.text.domNodeCache.reset){RGraph.text.domNodeCache.reset(args.canvas);}
-if(!RGraph.text.domNodeCache){RGraph.text.domNodeCache=[];}
-if(!RGraph.text.domNodeDimensionCache){RGraph.text.domNodeDimensionCache=[];}
-RGraph.text.domNodeCache[args.canvas.id]=[];RGraph.text.domNodeDimensionCache[args.canvas.id]=[];};RGraph.Effects.updateCanvas=function()
-{var args=RGraph.getArgs(arguments,'func');window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||(function(func){setTimeout(func,16.666);});window.requestAnimationFrame(args.func);};RGraph.Effects.getEasingMultiplier=function()
-{var args=RGraph.getArgs(arguments,'frames,frame');return Math.pow(Math.sin((args.frame/args.frames)*RGraph.HALFPI),3);};RGraph.stringsToNumbers=function()
-{var args=RGraph.getArgs(arguments,'string,separator');var sep=args.separator||',';if(typeof args.string==='number'){return args.string;}
-if(typeof args.string==='string'){if(args.string.indexOf(sep)!=-1){args.string=args.string.split(sep);}else{args.string=parseFloat(args.string);}}
-if(typeof args.string==='object'&&!RGraph.isNull(args.string)){for(var i=0,len=args.string.length;i<len;i+=1){args.string[i]=parseFloat(args.string[i]);}}
-return args.string;};RGraph.cachedDraw=function()
-{var args=RGraph.getArgs(arguments,'object,id,function');if(!RGraph.cache[args.id]){RGraph.cache[args.id]={};RGraph.cache[args.id].object=args.object;RGraph.cache[args.id].canvas=document.createElement('canvas');RGraph.cache[args.id].canvas.setAttribute('width',args.object.canvas.width);RGraph.cache[args.id].canvas.setAttribute('height',args.object.canvas.height);RGraph.cache[args.id].canvas.setAttribute('id','background_cached_canvas'+args.object.canvas.id);RGraph.cache[args.id].canvas.__object__=args.object;RGraph.cache[args.id].context=RGraph.cache[args.id].canvas.getContext('2d');RGraph.cache[args.id].context.translate(0.5,0.5);args.function(args.object,RGraph.cache[args.id].canvas,RGraph.cache[args.id].context);}
-args.object.context.drawImage(RGraph.cache[args.id].canvas,-0.5,-0.5);};RGraph.parseObjectStyleConfig=function()
-{var args=RGraph.getArgs(arguments,'object,config');for(var i in args.config){if(typeof i==='string'){args.object.set(i,args.config[i]);}}};RGraph.path=function(args)
-{var arguments=Array.prototype.slice.call(arguments);if(arguments.length===1&&args.object&&args.path){var context=args.object.context;var p=args.path;var args=args.args;}else if(arguments.length===1&&args.context&&args.path){var context=args.context;var p=args.path;var args=args.args;}else if(arguments.length>=2&&arguments[0].isrgraph&&arguments[0].context){var context=arguments[0].context;var p=arguments[1];var args=arguments.length>2?arguments.slice(2):[];}else if(arguments.length>=2&&arguments[0].toString().indexOf('Context')){var context=arguments[0];var p=arguments[1];var args=arguments.length>2?arguments.slice(2):[];}
-if(typeof p==='string'){p=splitstring(p);}
-RGraph.path.last=RGraph.arrayClone(p);for(var i=0,len=p.length;i<len;i+=1){switch(p[i]){case'b':context.beginPath();break;case'c':context.closePath();break;case'm':context.moveTo(parseFloat(p[i+1]),parseFloat(p[i+2]));i+=2;break;case'l':context.lineTo(parseFloat(p[i+1]),parseFloat(p[i+2]));i+=2;break;case's':if(p[i+1])context.strokeStyle=p[i+1];context.stroke();i++;break;case'f':if(p[i+1]){context.fillStyle=p[i+1];}context.fill();i++;break;case'qc':context.quadraticCurveTo(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]));i+=4;break;case'bc':context.bezierCurveTo(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]),parseFloat(p[i+5]),parseFloat(p[i+6]));i+=6;break;case'r':context.rect(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]));i+=4;break;case'a':context.arc(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]),parseFloat(p[i+5]),p[i+6]==='true'||p[i+6]===true||p[i+6]===1||p[i+6]==='1'?true:false);i+=6;break;case'at':context.arcTo(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]),parseFloat(p[i+5]));i+=5;break;case'lw':context.lineWidth=parseFloat(p[i+1]);i++;break;case'e':context.ellipse(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]),parseFloat(p[i+5]),parseFloat(p[i+6]),parseFloat(p[i+7]),p[i+8]==='true'?true:false);i+=8;break;case'lj':context.lineJoin=p[i+1];i++;break;case'lc':context.lineCap=p[i+1];i++;break;case'sc':context.shadowColor=p[i+1];i++;break;case'sb':context.shadowBlur=parseFloat(p[i+1]);i++;break;case'sx':context.shadowOffsetX=parseFloat(p[i+1]);i++;break;case'sy':context.shadowOffsetY=parseFloat(p[i+1]);i++;break;case'fs':context.fillStyle=p[i+1];i++;break;case'ss':context.strokeStyle=p[i+1];i++;break;case'fr':context.fillRect(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]));i+=4;break;case'sr':context.strokeRect(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]));i+=4;break;case'cl':context.clip();break;case'sa':context.save();break;case'rs':context.restore();break;case'tr':context.translate(parseFloat(p[i+1]),parseFloat(p[i+2]));i+=2;break;case'sl':context.scale(parseFloat(p[i+1]),parseFloat(p[i+2]));i+=2;break;case'ro':context.rotate(parseFloat(p[i+1]));i++;break;case'tf':context.transform(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]),parseFloat(p[i+5]),parseFloat(p[i+6]));i+=6;break;case'stf':context.setTransform(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]),parseFloat(p[i+5]),parseFloat(p[i+6]));i+=6;break;case'cr':context.clearRect(parseFloat(p[i+1]),parseFloat(p[i+2]),parseFloat(p[i+3]),parseFloat(p[i+4]));i+=4;break;case'ld':var parts=p[i+1];context.setLineDash(parts);i+=1;break;case'ldo':context.lineDashOffset=p[i+1];i++;break;case'fo':context.font=p[i+1];i++;break;case'ft':context.fillText(p[i+1],parseFloat(p[i+2]),parseFloat(p[i+3]));i+=3;break;case'st':context.strokeText(p[i+1],parseFloat(p[i+2]),parseFloat(p[i+3]));i+=3;break;case'ta':context.textAlign=p[i+1];i++;break;case'tbl':context.textBaseline=p[i+1];i++;break;case'ga':context.globalAlpha=parseFloat(p[i+1]);i++;break;case'gco':context.globalCompositeOperation=p[i+1];i++;break;case'fu':(p[i+1])(context.canvas.__object__);i++;break;case'':break;default:alert('[ERROR] Unknown option: '+p[i]);}}
-function splitstring(p)
-{var ret=[],buffer='',inquote=false,quote='',substitutionIndex=0;for(var i=0;i<p.length;i+=1){var chr=p[i],isWS=chr.match(/ /);if(isWS){if(!inquote){if(buffer[0]==='"'||buffer[0]==="'"){buffer=buffer.substr(1,buffer.length-2);}
-if(buffer.trim()==='%'&&typeof args[substitutionIndex]!=='undefined'){buffer=args[substitutionIndex++];}
-ret.push(buffer);buffer='';}else{buffer+=chr;}}else{if(chr==="'"||chr==='"'){inquote=!inquote;}
-buffer+=chr;}}
-if(buffer.trim()==='%'&&args[substitutionIndex]){buffer=args[substitutionIndex++];}
-ret.push(buffer);return ret;}};RGraph.getTextConf=function(args)
-{var obj=args.object,prop=obj.properties,prefix=args.prefix;var font=typeof prop[prefix+'Font']==='string'?prop[prefix+'Font']:prop.textFont,size=typeof prop[prefix+'Size']==='number'?prop[prefix+'Size']:prop.textSize,color=typeof prop[prefix+'Color']==='string'?prop[prefix+'Color']:prop.textColor,bold=!RGraph.isNull(prop[prefix+'Bold'])?prop[prefix+'Bold']:prop.textBold,italic=!RGraph.isNull(prop[prefix+'Italic'])?prop[prefix+'Italic']:prop.textItalic;return{font:font,size:size,color:color,bold:bold,italic:italic};};RGraph.responsive=function(conf)
-{var args=arguments[1]||{},obj=this,func=null,timer=null;args.delay=typeof args.delay==='number'?args.delay:200;var func=function()
-{var matched=false;for(var i=0;i<conf.length;++i){if(!matched&&(document.documentElement.clientWidth<=conf[i].maxWidth||RGraph.isNull(conf[i].maxWidth))){matched=true;if(typeof conf[i].width==='number'){if(obj.get('textAccessible')){obj.canvas.parentNode.style.width=conf[i].width+'px';}
-obj.canvas.width=conf[i].width;}
-if(typeof conf[i].height==='number'){if(obj.get('textAccessible')){obj.canvas.parentNode.style.height=conf[i].height+'px';}
-obj.canvas.height=conf[i].height;}
-if(typeof conf[i].options==='object'&&typeof conf[i].options==='object'){for(var j in conf[i].options){if(typeof j==='string'){obj.set(j,conf[i].options[j]);}}}
-var setCSS=function(el,name,value)
-{var replacements=[['float','cssFloat']];for(var i=0;i<replacements.length;++i){if(name===replacements[i][0]){name=replacements[i][1];}}
-el.style[name]=value;};if(typeof conf[i].css==='object'){for(var j in conf[i].css){if(typeof j==='string'){if(obj.get('textAccessible')){setCSS(obj.canvas.parentNode,j,conf[i].css[j]);}else{setCSS(obj.canvas,j,conf[i].css[j]);}}}}
-if(typeof conf[i].parentCss==='object'){for(var j in conf[i].parentCss){if(typeof j==='string'){if(obj.get('textAccessible')){setCSS(obj.canvas.parentNode.parentNode,j,conf[i].parentCss[j]);}else{setCSS(obj.canvas.parentNode,j,conf[i].parentCss[j])}}}}
-RGraph.cache=[];RGraph.resetColorsToOriginalValues(obj);if(obj.get('textAccessible')){RGraph.text.domNodeCache.reset(obj.canvas);}
-RGraph.redraw();if(typeof conf[i].callback==='function'){(conf[i].callback)(obj);}}}}
-RGraph.responsive.window_resize_event_listener=function()
-{if(args.delay>0){clearTimeout(timer);timer=setTimeout(func,args.delay);}else{func();}};window.addEventListener('resize',RGraph.responsive.window_resize_event_listener,false);func();return obj;};RGraph.pathObjectFunction=function()
-{if(arguments.length===1&&typeof arguments[0]==='object'){var args=RGraph.getArgs(arguments,'path,args');RGraph.path({object:this,path:args.path,args:args.args});}else{var args=Array.prototype.slice.call(arguments,1);RGraph.path({object:this,path:arguments[0],args:args});}};RGraph.drawXAxis=function(obj)
-{var prop=obj.properties,context=obj.context,tickmarksLength=(typeof prop.xaxisTickmarksLength==='number'?prop.xaxisTickmarksLength:3),isSketch=(obj.type==='bar'&&prop.variant==='sketch');if(typeof prop.xaxisLabels==='object'&&!RGraph.isNull(prop.xaxisLabels)&&prop.xaxisLabels.length){for(var i=0;i<prop.xaxisLabels.length;++i){if(typeof prop.xaxisLabels[i]==='undefined'||prop.xaxisLabels[i]===null){prop.xaxisLabels[i]='';}}}
-if((obj.type==='hbar'||obj.type==='gantt')&&prop.xaxisPosition==='bottom'){var y=obj.canvas.height-prop.marginBottom;}else if((obj.type==='hbar'||obj.type==='gantt')&&prop.xaxisPosition==='top'){var y=prop.marginTop;}else{var y=obj.getYCoord(prop.yaxisScaleMin>0?prop.yaxisScaleMin:0);}
-if(obj.type==='line'&&prop.yaxisScaleInvert&&prop.yaxisScaleMin===0){y=obj.getYCoord(obj.scale2.max);}
-if(obj.type==='scatter'&&prop.yaxisScaleInvert){if(prop.yaxisScaleMin>=0){y=obj.getYCoord(obj.scale2.max);}}
-if(obj.type==='drawing.xaxis'){if(prop.xaxisPosition==='center'){y=((obj.canvas.height-prop.marginTop-prop.marginBottom)/2)+prop.marginTop;}else{y=obj.y;}}
-if(prop.xaxis){obj.path('lw % b m % % l % % s %',prop.xaxisLinewidth,prop.marginLeft-(isSketch?5:0),y-(isSketch?2:0),obj.canvas.width-prop.marginRight+(isSketch?7:0),y+(isSketch?2:0),prop.xaxisColor);if(!isSketch){if(prop.xaxisTickmarks){if(typeof prop.xaxisTickmarksCount==='number'){var xaxisTickmarksCount=prop.xaxisTickmarksCount;}else if(obj.type==='bar'){var xaxisTickmarksCount=obj.data.length||10;}else if(obj.type==='hbar'){var xaxisTickmarksCount=(prop.xaxisLabelsCount||5);}else if(obj.type==='line'){var xaxisTickmarksCount=obj.data[0].length>0?obj.data[0].length-1:10;}else if(obj.type==='scatter'&&prop.scale){var xaxisTickmarksCount=5;}else if(obj.type==='scatter'&&prop.xaxisLabels){var xaxisTickmarksCount=prop.xaxisLabels.length;}else if(obj.type==='scatter'){var xaxisTickmarksCount=5;}else if(obj.type==='waterfall'){var xaxisTickmarksCount=obj.data.length+(prop.total?1:0);}else if(obj.type==='drawing.xaxis'){if(prop.scale){var xaxisTickmarksCount=prop.xaxisScaleLabelsCount;}else if(prop.xaxisLabels&&prop.xaxisLabels.length){var xaxisTickmarksCount=prop.xaxisLabels.length;}else{var xaxisTickmarksCount=5;}}else{xaxisTickmarksCount=5;}}else{prop.xaxisTickmarksCount=0;}
-if(prop.xaxisPosition==='center'&&prop.yaxisScaleMin>=0){if(prop.yaxisScaleInvert){var tickmarksYStart=obj.getYCoord(prop.yaxisScaleMax)-tickmarksLength;var tickmarksYEnd=obj.getYCoord(prop.yaxisScaleMax)+tickmarksLength;}else{var tickmarksYStart=obj.getYCoord(prop.yaxisScaleMin)-tickmarksLength;var tickmarksYEnd=obj.getYCoord(prop.yaxisScaleMin)+tickmarksLength;}}else if(prop.xaxisPosition==='center'||prop.yaxisScaleMin<0){if(prop.yaxisScaleInvert){var tickmarksYStart=obj.getYCoord(obj.scale2.max)-tickmarksLength;var tickmarksYEnd=obj.getYCoord(obj.scale2.max)+tickmarksLength;}else{var tickmarksYStart=obj.getYCoord(0)-tickmarksLength;var tickmarksYEnd=obj.getYCoord(0)+tickmarksLength;}
-if(prop.yaxisScaleMin<0&&prop.yaxisScaleMax>0){var tickmarksYStart=obj.getYCoord(0)-tickmarksLength;var tickmarksYEnd=obj.getYCoord(0)+tickmarksLength;}}else if(prop.xaxisPosition==='top'){if(obj.getYCoord){var tickmarksYStart=obj.getYCoord(0)-tickmarksLength;var tickmarksYEnd=obj.getYCoord(0);}else{var tickmarksYStart=prop.marginTop-tickmarksLength;var tickmarksYEnd=prop.marginTop;}}else{if(obj.getYCoord){if(obj.type==='line'&&prop.yaxisScaleInvert){var tickmarksYStart=obj.getYCoord(obj.scale2.max);var tickmarksYEnd=obj.getYCoord(obj.scale2.max)+tickmarksLength;}else if(obj.type==='scatter'&&prop.yaxisScaleInvert){var tickmarksYStart=obj.getYCoord(obj.scale2.max);var tickmarksYEnd=obj.getYCoord(obj.scale2.max)+tickmarksLength;}else if(obj.type==='drawing.xaxis'){tickmarksYStart=obj.y;tickmarksYEnd=obj.y+tickmarksLength;}else{var tickmarksYStart=obj.getYCoord(prop.yaxisScaleMin);var tickmarksYEnd=obj.getYCoord(prop.yaxisScaleMin)+tickmarksLength;}}else{var tickmarksYStart=obj.canvas.height-prop.marginBottom;var tickmarksYEnd=obj.canvas.height-prop.marginBottom+tickmarksLength;}}
-for(var i=0;i<=xaxisTickmarksCount;++i){if(RGraph.isNull(prop.xaxisTickmarksLastLeft)){if(i===0&&prop.yaxis&&prop.yaxisPosition==='left'&&!(prop.xaxisScaleMax>0&&prop.xaxisScaleMin<0)){continue;}}else if(i===0&&!prop.xaxisTickmarksLastLeft){continue;}
-if(RGraph.isNull(prop.xaxisTickmarksLastRight)){if(i===xaxisTickmarksCount&&prop.yaxis&&prop.yaxisPosition==='right'){continue;}}else if(i===xaxisTickmarksCount&&!prop.xaxisTickmarksLastRight){continue;}
-var x=(((obj.canvas.width-prop.marginLeft-prop.marginRight)/xaxisTickmarksCount)*i)+prop.marginLeft;if(obj.type==='hbar'){if(prop.yaxisPosition==='center'&&x>obj.getXCoord(0)-2&&x<obj.getXCoord(0)+2){continue;}else if(prop.yaxisPosition==='left'&&prop.xaxisScaleMin<0&&prop.xaxisScaleMax>0&&x>obj.getXCoord(0)-2&&x<obj.getXCoord(0)+2){continue;}}
-obj.path('b m % % l % % s %',x,tickmarksYStart,x,tickmarksYEnd,prop.xaxisColor);}}}
-if(prop.xaxisLabelsAngle!=0){var valign='center';var halign='right';var angle=0-prop.xaxisLabelsAngle;if(prop.xaxisPosition==='top'){var angle=prop.xaxisLabelsAngle;}}else{var valign='top';var halign='center';var angle=0;}
-if(prop.xaxisScale){var scale=obj.scale2;if(obj.type==='scatter'){scale=obj.xscale2;}else if(obj.type==='drawing.xaxis'){if(prop.xaxisScale){scale=RGraph.getScale({object:this,options:{'scale.max':prop.xaxisScaleMax,'scale.min':prop.xaxisScaleMin,'scale.decimals':Number(prop.xaxisScaleDecimals),'scale.point':prop.xaxisScalePoint,'scale.thousand':prop.xaxisScaleThousand,'scale.round':prop.xaxisScaleRound,'scale.units.pre':prop.xaxisScaleUnitsPre,'scale.units.post':prop.xaxisScaleUnitsPost,'scale.labels.count':prop.xaxisScaleLabelsCount,'scale.strict':true}});for(var i=0;i<=prop.xaxisScaleLabelsCount;++i){var original=(((prop.xaxisScaleMax-prop.xaxisScaleMin)/prop.xaxisScaleLabelsCount)*i)+prop.xaxisScaleMin;var hmargin=prop.marginInner;if(typeof prop.xaxisScaleFormatter==='function'){var text=(prop.xaxisScaleFormatter)(this,original)}else{text=RGraph.numberFormat({object:obj,number:original.toFixed(original===0?0:prop.xaxisScaleDecimals),unitspre:prop.xaxisScaleUnitsPre,unitspost:prop.xaxisScaleUnitsPost,point:prop.xaxisScalePoint,thousand:prop.xaxisScaleThousand});}}}}
-for(var i=0;i<scale.labels.length;++i){var section=(obj.canvas.width-prop.marginLeft-prop.marginRight)/scale.labels.length;if(prop.yaxisPosition==='right'){var x=prop.marginLeft+(section*i);}else if(prop.yaxisPosition==='center'){section/=2;var x=obj.getXCoord(0)+section+(section*i);}else{var x=prop.marginLeft+(section*i)+section;}
-var y=prop.xaxisPosition==='top'?obj.marginTop-(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety-5:(obj.canvas.height-prop.marginBottom)+(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety+5;if(obj.type==='drawing.xaxis'){if(prop.xaxisPosition==='top'){y=obj.y-(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety;}else{y=obj.y+(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety+5;}}
-RGraph.text({object:obj,textConfPrefix:'xaxisLabels',x:x+prop.xaxisLabelsOffsetx,y:y,text:typeof prop.xaxisScaleFormatter==='function'?(prop.xaxisScaleFormatter)({object:obj,number:scale.values[i]}):(prop.yaxisPosition==='right'?String(scale.labels[scale.labels.length-1-i]):String(scale.labels[i])),valign:typeof prop.xaxisLabelsValign==='string'?prop.xaxisLabelsValign:(prop.xaxisPosition==='top'?'bottom':valign),halign:typeof prop.xaxisLabelsHalign==='string'?prop.xaxisLabelsHalign:halign,marker:false,angle:angle,tag:'xaxis.labels'});if(obj.type==='hbar'&&prop.yaxisPosition==='center'){x=obj.getXCoord(0)-section-(section*i);RGraph.text({object:obj,textConfPrefix:'xaxisLabels',x:x+prop.xaxisLabelsOffsetx,y:prop.xaxisPosition==='top'?obj.marginTop-(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety-5:(obj.canvas.height-prop.marginBottom)+(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety+5,text:typeof prop.xaxisScaleFormatter==='function'?(prop.xaxisScaleFormatter)({object:obj,number:scale.values[i]}):'-'+String(scale.labels[i]),valign:typeof prop.xaxisLabelsValign==='string'?prop.xaxisLabelsValign:(prop.xaxisPosition==='top'?'bottom':valign),halign:typeof prop.xaxisLabelsHalign==='string'?prop.xaxisLabelsHalign:halign,marker:false,angle:angle,tag:'xaxis.labels'});}
-var str=((prop.xaxisScaleUnitsPre||'')+prop.xaxisScaleMin.toFixed(prop.xaxisScaleDecimals).replace(/\./,prop.xaxisScalePoint)+(prop.xaxisScaleUnitsPost||''));;str=str.replace(/^(.+)-(\d)/,'-$1$2');RGraph.text({object:obj,textConfPrefix:'xaxisLabels',x:prop.yaxisPosition==='right'?obj.canvas.width-prop.marginRight+prop.xaxisLabelsOffsetx:(prop.yaxisPosition==='center'?obj.getXCoord(0)+prop.xaxisLabelsOffsetx:prop.marginLeft+prop.xaxisLabelsOffsetx),y:y,text:typeof prop.xaxisScaleFormatter==='function'?(prop.xaxisScaleFormatter)({object:obj,number:0}):str,valign:typeof prop.xaxisLabelsValign==='string'?prop.xaxisLabelsValign:(typeof prop.xaxisLabelsValign==='string'?prop.xaxisLabelsValign:(prop.xaxisPosition==='top'?'bottom':valign)),halign:typeof prop.xaxisLabelsHalign==='string'?prop.xaxisLabelsHalign:halign,marker:false,angle:angle,tag:'xaxis.labels'});}}else if(prop.xaxisLabels&&prop.xaxisLabels.length&&(prop.xaxisLabelsPosition==='section'||prop.xaxisLabelsPosition==='edge')){if(prop.xaxisLabelsPosition==='edge'){var section=(obj.canvas.width-prop.marginLeft-prop.marginRight-(prop.marginInner||0)-(prop.marginInner||0))/(prop.xaxisLabels.length-1);}else{var section=(obj.canvas.width-prop.marginLeft-prop.marginRight)/prop.xaxisLabels.length;}
-for(var i=0;i<prop.xaxisLabels.length;++i){if(prop.xaxisLabelsPosition==='edge'){var x=prop.marginLeft+(prop.marginInner||0)+(section*i);}else{var x=prop.marginLeft+(section*i)+(section/2);}
-if(typeof prop.xaxisLabels[i]==='object'&&obj.type==='scatter'){var rightEdge=0;var align=prop.xaxisLabelsSpecificAlign==='left'?'left':'center';var halign='center'
-if(prop.xaxisLabels[i+1]&&typeof prop.xaxisLabels[i+1][1]==='number'){rightEdge=prop.xaxisLabels[i+1][1];}else{rightEdge=prop.xaxisScaleMax;}
-var leftEdge=prop.xaxisLabels[i][1];var x=((obj.getXCoord(rightEdge)-obj.getXCoord(leftEdge))/2)+obj.getXCoord(leftEdge);if(align==='left'){x=obj.getXCoord(leftEdge);halign='left';}
-if(RGraph.isNull(x)){continue;}
-if(obj.type==='drawing.xaxis'){if(prop.xaxisPosition==='top'){y=obj.y-(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety;}else{y=obj.y+(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety+5;}}
-RGraph.text({object:obj,textConfPrefix:'xaxisLabels',x:x+5+prop.xaxisLabelsOffsetx,y:y+5+prop.xaxisLabelsOffsety,valign:valign,halign:angle!=0?'right':halign,text:String(prop.xaxisLabels[i][0]),angle:angle,marker:false,tag:'labels.specific'});obj.path('b m % % l % % s #bbb',Math.round(prop.marginLeft+(((prop.xaxisLabels[i][1]-prop.xaxisScaleMin)/(prop.xaxisScaleMax-prop.xaxisScaleMin))*(obj.canvas.width-prop.marginLeft-prop.marginRight))),obj.canvas.height-prop.marginBottom,Math.round(prop.marginLeft+(((prop.xaxisLabels[i][1]-prop.xaxisScaleMin)/(prop.xaxisScaleMax-prop.xaxisScaleMin)))*(obj.canvas.width-prop.marginLeft-prop.marginRight)),obj.canvas.height-prop.marginBottom+20);if(i===prop.xaxisLabels.length-1){obj.path('b m % % l % % s #bbb',obj.canvas.width-prop.marginRight,obj.canvas.height-prop.marginBottom,obj.canvas.width-prop.marginRight,obj.canvas.height-prop.marginBottom+20);}}else{var y=prop.xaxisPosition==='top'?prop.marginTop+prop.xaxisLabelsOffsety-5:(obj.canvas.height-prop.marginBottom)+prop.xaxisLabelsOffsety+5;if(obj.type==='drawing.xaxis'){if(obj.type==='drawing.xaxis'){if(prop.xaxisPosition==='top'){y=obj.y-(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety;}else{y=obj.y+(prop.xaxisTickmarksLength||0)+prop.xaxisLabelsOffsety+5;}}}
-RGraph.text({object:obj,textConfPrefix:'xaxisLabels',x:x+prop.xaxisLabelsOffsetx,y:y+prop.xaxisLabelsOffsety,text:String(prop.xaxisLabels[i]),valign:typeof prop.xaxisLabelsValign==='string'?prop.xaxisLabelsValign:(prop.xaxisPosition==='top'?'bottom':valign),halign:typeof prop.xaxisLabelsHalign==='string'?prop.xaxisLabelsHalign:halign,marker:false,angle:angle,tag:'xaxis.labels'});}}}
-if(prop.xaxisTitle){var x=prop.marginLeft+((obj.canvas.width-prop.marginLeft-prop.marginRight)/2)+prop.xaxisTitleOffsetx;var y=prop.xaxisPosition==='top'?prop.marginTop-7+prop.xaxisTitleOffsety-prop.xaxisTickmarksLength:obj.canvas.height-prop.marginBottom+7+prop.xaxisTitleOffsety+prop.xaxisTickmarksLength;if(obj.type==='drawing.xaxis'){y=obj.y+7+prop.xaxisTitleOffsety+prop.xaxisTickmarksLength;}
-if(prop.xaxisScale||(prop.xaxisLabels&&prop.xaxisLabels.length)){var textConf=RGraph.getTextConf({object:obj,prefix:'xaxisLabels'});if(prop.xaxisPosition==='top'){y-=textConf.size*1.5;}else{y+=textConf.size*1.5;}}
-if(typeof prop.xaxisTitlePos==='number'){if(prop.xaxisPosition==='top'){y=prop.marginTop*prop.xaxisTitlePos;}else{y=obj.canvas.height-prop.marginBottom+(prop.marginBottom*prop.xaxisTitlePos);}}
-if(typeof prop.xaxisTitleX==='number')x=prop.xaxisTitleX;if(typeof prop.xaxisTitleY==='number')y=prop.xaxisTitleY;RGraph.text({object:obj,textConfPrefix:'xaxisTitle',x:x,y:y,text:prop.xaxisTitle.toString(),valign:prop.xaxisPosition==='top'?(prop.xaxisTitleValign||'bottom'):(prop.xaxisTitleValign||'top'),halign:prop.xaxisTitleHalign||'center',marker:false,tag:'xaxis.title'});}};RGraph.drawYAxis=function(obj)
-{var prop=obj.properties,context=obj.context,isSketch=obj.type==='bar'&&prop.variant==='sketch';tickmarksLength=typeof prop.yaxisTickmarksLength==='number'?prop.yaxisTickmarksLength:3;if(obj.type==='hbar'){prop.yaxisLabelsSpecific=prop.yaxisLabels;}
-if((obj.type==='hbar'||obj.type==='gantt')&&prop.yaxisPosition==='left'){var x=obj.getXCoord(0);}else if((obj.type==='hbar'||obj.type==='gantt')&&prop.yaxisPosition==='right'){var x=obj.canvas.width-prop.marginRight;}else if(obj.type==='drawing.yaxis'){var x=obj.x;}else{var x=prop.yaxisPosition==='right'?obj.canvas.width-prop.marginRight:(obj.type==='hbar'?obj.getXCoord(0):prop.marginLeft);}
-if(prop.yaxis){obj.path('lw % b m % % l % % s %',prop.yaxisLinewidth,x-(isSketch?5:0),prop.marginTop-(isSketch?2:0),x+(isSketch?7:0),obj.canvas.height-prop.marginBottom+(isSketch?2:0),prop.yaxisColor);if(!isSketch){if(prop.yaxisTickmarks){if(typeof prop.yaxisTickmarksCount==='number'){var yaxisTickmarksCount=prop.yaxisTickmarksCount;}else if(obj.type==='bar'){var yaxisTickmarksCount=prop.yaxisLabelsSpecific?prop.yaxisLabelsSpecific.length-1:prop.yaxisLabelsCount;}else if(obj.type==='hbar'){var yaxisTickmarksCount=obj.data.length||5;}else if(obj.type==='line'){var yaxisTickmarksCount=prop.yaxisLabelsSpecific?prop.yaxisLabelsSpecific.length-1:prop.yaxisLabelsCount;}else if(obj.type==='scatter'){var yaxisTickmarksCount=prop.yaxisLabelsCount;}else if(obj.type==='waterfall'){var yaxisTickmarksCount=prop.yaxisLabelsCount;}else{yaxisTickmarksCount=5;}}else{prop.yaxisTickmarksCount=0;}
-if(prop.yaxisPosition==='right'){var tickmarksXStart=x;var tickmarksXEnd=x+tickmarksLength;}else{var tickmarksXStart=x;var tickmarksXEnd=x-tickmarksLength;}
-if(obj.type==='hbar'&&prop.xaxisScaleMin<0&&prop.xaxisScaleMax>0){var tickmarksXStart=obj.getXCoord(0)-tickmarksLength;var tickmarksXEnd=obj.getXCoord(0)+tickmarksLength;}
-for(var i=0;i<=yaxisTickmarksCount;++i){if(RGraph.isNull(prop.yaxisTickmarksLastTop)){if(i===0&&prop.xaxis&&prop.xaxisPosition==='top'){continue;}}else if(i===0&&!prop.yaxisTickmarksLastTop){continue;}
-if(RGraph.isNull(prop.yaxisTickmarksLastBottom)){if(i===yaxisTickmarksCount&&prop.xaxis&&prop.xaxisPosition==='bottom'){continue;}}else if(i===yaxisTickmarksCount&&!prop.yaxisTickmarksLastBottom){continue;}
-var y=(((obj.canvas.height-prop.marginTop-prop.marginBottom)/yaxisTickmarksCount)*i)+prop.marginTop;if(obj.getYCoord){var xaxisYCoord=obj.getYCoord(0);}else if(obj.getXCoord){var xaxisYCoord=obj.getXCoord(0);}else{var xaxisYCoord=obj.marginTop;}
-if(prop.xaxis&&(prop.xaxisPosition==='center'||(prop.xaxisPosition==='bottom'&&prop.yaxisScaleMin<0&&prop.yaxisScaleMax>0))&&y>(xaxisYCoord-1)&&y<(xaxisYCoord+1)){continue;}
-obj.path('b m % % l % % s %',tickmarksXStart,y,tickmarksXEnd,y,prop.yaxisColor);if(prop.yaxisScaleMin<0&&prop.yaxisScaleMax>0){obj.path('b m % % l % % s %',tickmarksXStart,obj.canvas.height-prop.marginBottom,tickmarksXEnd,obj.canvas.height-prop.marginBottom,prop.yaxisColor);}
-if(obj.type==='scatter'&&prop.xaxisPosition==='center'&&prop.yaxisScaleInvert){obj.path('b m % % l % % s %',tickmarksXStart,prop.marginTop,tickmarksXEnd,prop.marginTop,prop.yaxisColor);}}}}
-var valign='center',halign='right',angle=0;if(prop.yaxisScale&&!prop.yaxisLabelsSpecific){if(obj.type==='drawing.yaxis'){if(prop.yaxisScale){obj.scale2=RGraph.getScale({object:obj,options:{'scale.max':prop.yaxisScaleMax,'scale.min':prop.yaxisScaleMin,'scale.decimals':Number(prop.yaxisScaleDecimals),'scale.point':prop.yaxisScalePoint,'scale.thousand':prop.yaxisScaleThousand,'scale.round':prop.yaxisScaleRound,'scale.units.pre':prop.yaxisScaleUnitsPre,'scale.units.post':prop.yaxisScaleUnitsPost,'scale.labels.count':prop.yaxisScaleLabelsCount,'scale.strict':true}});for(var i=0;i<=prop.yaxisScaleLabelsCount;++i){var original=(((prop.yaxisScaleMax-prop.yaxisScaleMin)/prop.yaxisScaleLabelsCount)*i)+prop.yaxisScaleMin;var hmargin=prop.marginInner;if(typeof prop.yaxisScaleFormatter==='function'){var text=(prop.yaxisScaleFormatter)(this,original)}else{text=RGraph.numberFormat({object:obj,number:original.toFixed(original===0?0:prop.yaxisScaleDecimals),unitspre:prop.yaxisScaleUnitsPre,unitspost:prop.yaxisScaleUnitsPost,point:prop.yaxisScalePoint,thousand:prop.yaxisScaleThousand});}}}}
-var scale=obj.scale2;obj.maxLabelLength=Math.max(obj.maxLabelLength,obj.context.measureText(obj.scale2.labels[4]).width*2);if(prop.xaxisPosition==='center'){var halfHeight=((obj.canvas.height-prop.marginTop-prop.marginBottom)/2);for(var i=0;i<scale.labels.length;++i){var section=(obj.canvas.height-prop.marginTop-prop.marginBottom)/(scale.labels.length*2);var y=prop.marginTop+(section*i);RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:prop.yaxisPosition==='right'?x+(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx+5:x-(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx-5,y:prop.yaxisScaleInvert?halfHeight+prop.marginTop-(section*i)+prop.yaxisLabelsOffsety:prop.marginTop+(section*i)+prop.yaxisLabelsOffsety,text:String(scale.labels[scale.labels.length-1-i]),valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:valign,halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':halign),marker:false,angle:angle,tag:'yaxis.labels'});}
-for(var i=0;i<scale.labels.length;++i){if(i===0&&prop.yaxisScaleInvert)continue;var section=(obj.canvas.height-prop.marginTop-prop.marginBottom)/(scale.labels.length*2);var y=prop.marginTop+((obj.canvas.height-prop.marginTop-prop.marginBottom)/2)+(section*i)+section;RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:prop.yaxisPosition==='right'?x+(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx+5:x-(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx-5,y:prop.yaxisScaleInvert?halfHeight+prop.marginTop+(section*i):y+prop.yaxisLabelsOffsety,text:'-'+(prop.yaxisScaleInvert?String(scale.labels[scale.labels.length-i-1]):String(scale.labels[i])),valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:valign,halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':halign),marker:false,angle:angle,tag:'yaxis.labels'});}
-RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:prop.yaxisPosition==='right'?x+5+(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx:x-5-(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx,y:prop.yaxisScaleInvert?prop.marginTop+prop.yaxisLabelsOffsety:prop.marginTop+((obj.canvas.height-prop.marginBottom-prop.marginTop)/2)+prop.yaxisLabelsOffsety,text:typeof prop.yaxisScaleFormatter==='function'?(prop.yaxisScaleFormatter)({object:this,number:0,unitspre:prop.yaxisScaleUnitsPre,unitspost:prop.yaxisScaleUnitsPost,point:prop.yaxisScalePoint,thousand:prop.yaxisScaleThousand,formatter:prop.yaxisScaleFormatter}):(prop.yaxisScaleUnitsPre||'')+prop.yaxisScaleMin.toFixed(prop.yaxisScaleDecimals).replace(/\./,prop.yaxisScalePoint)+(prop.yaxisScaleUnitsPost||''),valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:valign,halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':halign),marker:false,angle:angle,tag:'yaxis.labels'});if(prop.yaxisScaleInvert){RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:prop.yaxisPosition==='right'?x+5+(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx:x-5-(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx,y:obj.canvas.height-prop.marginBottom+prop.yaxisLabelsOffsety,text:typeof prop.yaxisScaleFormatter==='function'?(prop.yaxisScaleFormatter)({object:this,number:0,unitspre:prop.yaxisScaleUnitsPre,unitspost:prop.yaxisScaleUnitsPost,point:prop.yaxisScalePoint,thousand:prop.yaxisScaleThousand,formatter:prop.yaxisScaleFormatter}):(prop.yaxisScaleUnitsPre||'')+prop.yaxisScaleMin.toFixed(prop.yaxisScaleDecimals).replace(/\./,prop.yaxisScalePoint)+(prop.yaxisScaleUnitsPost||''),valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:valign,halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':halign),marker:false,angle:angle,tag:'yaxis.labels'});}}else if(prop.xaxisPosition==='top'){for(var i=0;i<scale.labels.length;++i){var section=(obj.canvas.height-prop.marginTop-prop.marginBottom)/scale.labels.length;if(prop.yaxisScaleInvert){var y=obj.canvas.height-prop.marginBottom-(section*i)-section-section;}else{var y=prop.marginTop+(section*i);}
-RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:prop.yaxisPosition==='right'?x+(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx+5:x-(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx-5,y:y+section+prop.yaxisLabelsOffsety,text:'-'+String(scale.labels[i]),valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:valign,halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':halign),marker:false,angle:angle,tag:'yaxis.labels'});}
-RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:prop.yaxisPosition==='right'?x+5+(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx:x-5-(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx,y:prop.yaxisScaleInvert?obj.canvas.height-prop.marginBottom+prop.yaxisLabelsOffsety:prop.marginTop+prop.yaxisLabelsOffsety,text:typeof prop.yaxisScaleFormatter==='function'?(prop.yaxisScaleFormatter)({object:this,number:0,unitspre:prop.yaxisScaleUnitsPre,unitspost:prop.yaxisScaleUnitsPost,point:prop.yaxisScalePoint,thousand:prop.yaxisScaleThousand,formatter:prop.yaxisScaleFormatter}):(prop.yaxisScaleUnitsPre||'')+prop.yaxisScaleMin.toFixed(prop.yaxisScaleDecimals).replace(/\./,prop.yaxisScalePoint)+(prop.yaxisScaleUnitsPost||''),valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:valign,halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':halign),marker:false,angle:angle,tag:'yaxis.labels'});}else{for(var i=0;i<scale.labels.length;++i){var section=(obj.canvas.height-prop.marginTop-prop.marginBottom)/scale.labels.length;var y=prop.marginTop+(section*(i+(prop.yaxisScaleInvert?1:0)));RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:prop.yaxisPosition==='right'?x+(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx+5:x-(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx-5,y:y+prop.yaxisLabelsOffsety,text:String(prop.yaxisScaleInvert?scale.labels[i]:scale.labels[scale.labels.length-1-i]),valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:valign,halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':halign),marker:false,angle:angle,tag:'yaxis.labels'});}
-var zerolabel=RGraph.numberFormat({object:obj,number:prop.yaxisScaleMin.toFixed(prop.yaxisScaleDecimals),unitspre:prop.yaxisScaleUnitsPre,unitspost:prop.yaxisScaleUnitsPost,point:prop.yaxisScalePoint,thousand:prop.yaxisScaleThousand});RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:prop.yaxisPosition==='right'?x+5+(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx:x-5-(prop.yaxisTickmarksLength||0)+prop.yaxisLabelsOffsetx,y:prop.yaxisScaleInvert?prop.marginTop:obj.canvas.height-prop.marginBottom+prop.yaxisLabelsOffsety,text:typeof prop.yaxisScaleFormatter==='function'?(prop.yaxisScaleFormatter)({object:this,number:0,unitspre:prop.yaxisScaleUnitsPre,unitspost:prop.yaxisScaleUnitsPost,point:prop.yaxisScalePoint,thousand:prop.yaxisScaleThousand,formatter:prop.yaxisScaleFormatter}):zerolabel,valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:valign,halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':halign),marker:false,angle:angle,tag:'yaxis.labels'});}}else if(prop.yaxisLabelsSpecific&&prop.yaxisLabelsSpecific.length&&(prop.yaxisLabelsPosition==='section'||prop.yaxisLabelsPosition==='edge')){var section=(obj.canvas.height-prop.marginTop-prop.marginBottom)/(prop.yaxisLabelsSpecific.length-(prop.yaxisLabelsPosition==='section'?0:1));obj.maxLabelLength=0;for(var i=0;i<prop.yaxisLabelsSpecific.length;++i){var y=prop.marginTop+(section*i)+(prop.yaxisLabelsPosition==='section'?section/2:0);RGraph.text({object:obj,textConfPrefix:'yaxisLabels',x:obj.type==='drawing.yaxis'?(prop.yaxisPosition==='right'?obj.x+7+prop.yaxisLabelsOffsetx:obj.x-5+prop.yaxisLabelsOffsetx):(prop.yaxisPosition==='right'?x+prop.yaxisLabelsOffsetx+5:prop.marginLeft-5+prop.yaxisLabelsOffsetx),y:y+prop.yaxisLabelsOffsety,text:String(prop.yaxisLabelsSpecific[i]||''),valign:typeof prop.yaxisLabelsValign==='string'?prop.yaxisLabelsValign:'center',halign:typeof prop.yaxisLabelsHalign==='string'?prop.yaxisLabelsHalign:(prop.yaxisPosition==='right'?'left':'right'),marker:false,tag:'yaxis.labels'});obj.maxLabelLength=Math.max(obj.maxLabelLength,obj.context.measureText(String(prop.yaxisLabelsSpecific[i])).width*2);}}
-if(prop.yaxisTitle){if(obj.type==='gantt'){for(var i=0,maxLabelLength=0;i<prop.yaxisLabels.length;++i){maxLabelLength=Math.max(maxLabelLength,RGraph.measureText(prop.yaxisLabels[i])[0]);}}else if(obj.scale2&&obj.scale2.labels){var maxLabelLength=RGraph.measureText(obj.scale2.labels[obj.scale2.labels.length-1])[0];}
-if((obj.type==='hbar'&&prop.yaxisLabels&&prop.yaxisLabels.length)||(obj.type==='drawing.yaxis'&&prop.yaxisLabelsSpecific&&prop.yaxisLabelsSpecific.length)){maxLabelLength=(function(labels)
-{for(var i=0,max=0;i<labels.length;++i){var dim=RGraph.measureText(labels[i]);max=Math.max(max,dim[0])}
-return max;})(obj.type==='drawing.yaxis'?prop.yaxisLabelsSpecific:prop.yaxisLabels);}
-var x=prop.yaxisPosition==='right'?(obj.canvas.width-prop.marginRight)+5+maxLabelLength+10:prop.marginLeft-5-maxLabelLength-10;var y=((obj.canvas.height-prop.marginTop-prop.marginBottom)/2)+prop.marginTop;if(obj.type==='drawing.yaxis'){var x=prop.yaxisPosition==='right'?obj.x+5+maxLabelLength+10:obj.x-5-maxLabelLength-10;}
-if(typeof prop.yaxisTitlePos==='number'){if(prop.yaxisPosition==='right'){x=obj.canvas.width-(prop.marginRight*prop.yaxisTitlePos);}else{x=prop.marginLeft*prop.yaxisTitlePos;}}
-if(typeof prop.yaxisTitleOffsetx==='number')x+=prop.yaxisTitleOffsetx;if(typeof prop.yaxisTitleOffsety==='number')y+=prop.yaxisTitleOffsety;if(typeof prop.yaxisTitleX==='number')x=prop.yaxisTitleX;if(typeof prop.yaxisTitleY==='number')y=prop.yaxisTitleY;RGraph.text({object:obj,textConfPrefix:'yaxisTitle',x:x,y:y,text:prop.yaxisTitle.toString(),valign:prop.yaxisTitleValign||'bottom',halign:prop.yaxisTitleHalign||'center',marker:false,accessible:false,angle:-45,angle:prop.yaxisPosition==='right'?90:-90,tag:'yaxis.title'});}};RGraph.isString=function(obj){return typeof obj==='string';};RGraph.isNumber=function(obj){return typeof obj==='number';};RGraph.isObject=function(obj){return typeof obj==='object'&&obj.constructor.toString().toLowerCase().indexOf('object')>0;};RGraph.isFunction=function(obj){return typeof obj==='function';};RGraph.isUndefined=function(obj){return typeof obj==='undefined';};})(window,document);window.$p=function(v)
-{RGraph.pr(arguments[0],arguments[1],arguments[3]);};window.$a=function(v)
-{alert(v);};window.$cl=function(v)
-{return console.log(v);};window.$d=function(m)
-{var width=600;var height=600;if(!this.rgraph_debug_textarea){this.rgraph_debug_textarea=document.createElement('textarea');this.rgraph_debug_textarea.style.position='absolute';this.rgraph_debug_textarea.style.left='10px';this.rgraph_debug_textarea.style.top='10px';this.rgraph_debug_textarea.style.width=width+'px';this.rgraph_debug_textarea.style.height=height+'px';this.rgraph_debug_textarea.style.opacity='0.75';this.rgraph_debug_textarea.style.zIndex='99999';this.rgraph_debug_textarea.style.border='2px solid black';this.rgraph_debug_textarea.style.backgroundColor='yellow'
-this.rgraph_debug_textarea.style.color='black';this.rgraph_debug_textarea.style.fontSize='16pt';this.rgraph_debug_textarea.style.fontWeight='bold';this.rgraph_debug_textarea.wrap='off';document.body.appendChild(this.rgraph_debug_textarea);if(window.localStorage.rgraph_debug_textarea_x)this.rgraph_debug_textarea.style.left=window.localStorage.rgraph_debug_textarea_x;if(window.localStorage.rgraph_debug_textarea_y)this.rgraph_debug_textarea.style.top=window.localStorage.rgraph_debug_textarea_y;if(window.localStorage.rgraph_debug_textarea_w)this.rgraph_debug_textarea.style.width=window.localStorage.rgraph_debug_textarea_w;if(window.localStorage.rgraph_debug_textarea_h)this.rgraph_debug_textarea.style.height=window.localStorage.rgraph_debug_textarea_h;this.rgraph_debug_textarea.onmouseover=function(e){setTimeout(function(){e.target.style.opacity=1;},100)};this.rgraph_debug_textarea.onmousedown=function(e){if(e.ctrlKey){e.preventDefault();e.stopPropagation();this.mousedown=true;this.pickupX=e.offsetX;this.pickupY=e.offsetY;return false;}};this.rgraph_debug_textarea.ondblclick=function(e)
-{if(confirm('Clear the log?')){this.value='';}};window.onmouseup=function(e){this.rgraph_debug_textarea.mousedown=false;};window.addEventListener('mousemove',function(e)
-{var mouseX=e.pageX;var mouseY=e.pageY;if(this.rgraph_debug_textarea.mousedown){this.rgraph_debug_textarea.style.top=mouseY-this.rgraph_debug_textarea.pickupY+'px';this.rgraph_debug_textarea.style.left=mouseX-this.rgraph_debug_textarea.pickupX+'px';var saveCoordinates=function()
-{window.localStorage.rgraph_debug_textarea_x=this.rgraph_debug_textarea.style.left;window.localStorage.rgraph_debug_textarea_y=this.rgraph_debug_textarea.style.top;window.localStorage.rgraph_debug_textarea_w=this.rgraph_debug_textarea.offsetWidth+'px';window.localStorage.rgraph_debug_textarea_h=this.rgraph_debug_textarea.offsetHeight+'px';};setInterval(saveCoordinates,1000);}},false)}
-var date=new Date();var hour=date.getHours();var min=date.getMinutes();min=String(min).length===1?'0'+min:min;var sec=date.getSeconds();sec=String(sec).length===1?'0'+sec:sec;function getCircularReplacer()
-{var seen=[];return function(key,value)
-{if(typeof value==='object'&&value!==null){for(var i=0;i<seen.length;++i){if(seen[i]===value){return;}}
-seen.push(value);}
-return value;};};this.rgraph_debug_textarea.value="[%1:%2:%3] %4\r\n\r\n%5".format(hour,min,sec,JSON.stringify(m,getCircularReplacer()),this.rgraph_debug_textarea.value);};String.prototype.format=function()
-{var args=arguments;for(var i in args){if(RGraph.isNull(args[i])){args[i]='null';}}
-var s=this.replace(/{(\d+)}/g,function(str,idx)
-{return typeof args[idx-1]!=='undefined'?args[idx-1]:str;});s=s.replace(/(?:%|\\)%(\d)/g,'__PPEERRCCEENNTT__$1');s=s.replace(/%(\d+)/g,function(str,idx)
-{return typeof args[idx-1]!=='undefined'?args[idx-1]:str;});return s.replace('__PPEERRCCEENNTT__','%');};
\ No newline at end of file
diff --git a/web/js/RGraph.common.dynamic.js b/web/js/RGraph.common.dynamic.js
deleted file mode 100644
index 6f7fb821c1..0000000000
--- a/web/js/RGraph.common.dynamic.js
+++ /dev/null
@@ -1,90 +0,0 @@
-
-RGraph=window.RGraph||{isrgraph:true,isRGraph:true,rgraph:true};(function(win,doc,undefined)
-{var ua=navigator.userAgent;RGraph.installWindowMousedownListener=function(obj)
-{if(!RGraph.window_mousedown_event_listener){RGraph.window_mousedown_event_listener=function(e)
-{if(navigator.userAgent.indexOf('Firefox')>=0)win.event=e;if(RGraph.hideTooltip&&RGraph.Registry.get('tooltip')){RGraph.clear(RGraph.Registry.get('tooltip').__canvas__);RGraph.redraw();RGraph.hideTooltip();}};win.addEventListener('mousedown',RGraph.window_mousedown_event_listener,false);}};RGraph.installWindowMouseupListener=function(obj)
-{if(!RGraph.window_mouseup_event_listener){RGraph.window_mouseup_event_listener=function(e)
-{if(navigator.userAgent.indexOf('Firefox')>=0)win.event=e;if(RGraph.annotating_window_onmouseup){RGraph.annotating_window_onmouseup(e);return;}
-if(RGraph.Registry.get('adjusting')||RGraph.Registry.get('adjusting.gantt')){var obj=RGraph.Registry.get('adjusting');if(obj&&obj.type==='line'){obj.data_arr=RGraph.arrayLinearize(obj.data);}
-RGraph.fireCustomEvent(RGraph.Registry.get('adjusting'),'onadjustend');}
-RGraph.Registry.set('adjusting',null);RGraph.Registry.set('adjusting.shape',null);RGraph.Registry.set('adjusting.gantt',null);var tags=document.getElementsByTagName('canvas');for(var i=0;i<tags.length;++i){if(tags[i].__object__&&tags[i].__object__.isRGraph){if(!tags[i].__object__.get('annotatable')){if(!tags[i].__rgraph_trace_cover__&&!noredraw){RGraph.clear(tags[i]);}else{var noredraw=true;}}}}
-if(!noredraw){RGraph.redraw();}};win.addEventListener('mouseup',RGraph.window_mouseup_event_listener,false);}};RGraph.installCanvasMouseupListener=function(obj)
-{if(!obj.canvas.rgraph_mouseup_event_listener){obj.canvas.rgraph_mouseup_event_listener=function(e)
-{if(navigator.userAgent.indexOf('Firefox')>=0)window.event=e;var objects=RGraph.ObjectRegistry.getObjectsByXY(e);if(objects){for(var i=0,len=objects.length;i<len;i+=1){var obj=objects[i],id=objects[i].id;var link=obj.get('link');if(obj.type=='drawing.text'&&typeof link==='string'){var link_target=obj.get('linkTarget');var link_options=obj.get('linkOptions');window.open(link,link_target?link_target:null,link_options);}
-if(!RGraph.isNull(obj)&&RGraph.tooltip){var shape=obj.getShape(e);if(shape&&shape.tooltip){var text=shape.tooltip;if(text){var type=shape.object.type;RGraph.clear(obj.canvas);RGraph.redraw();RGraph.Registry.set('tooltip.shape',shape);RGraph.tooltip(obj,text,0,0,shape.sequentialIndex,e);obj.highlight(shape);if(RGraph.Registry.get('tooltip')){RGraph.Registry.get('tooltip').__shape__=shape;RGraph.evaluateCursor(e);}
-e.cancelBubble=true;e.stopPropagation();return false;}}}
-if(RGraph.Registry.get('adjusting')||RGraph.Registry.get('adjusting.gantt')){if(obj&&obj.type==='line'){obj.data_arr=RGraph.arrayLinearize(obj.data);}
-RGraph.fireCustomEvent(RGraph.Registry.get('adjusting'),'onadjustend');}
-RGraph.Registry.set('adjusting',null);RGraph.Registry.set('adjusting.shape',null);RGraph.Registry.set('adjusting.gantt',null);if(shape||(obj.overChartArea&&obj.overChartArea(e))){break;}}}};obj.canvas.addEventListener('mouseup',obj.canvas.rgraph_mouseup_event_listener,false);}};RGraph.installCanvasMousemoveListener=function(obj)
-{if(!obj.canvas.rgraph_mousemove_event_listener){obj.canvas.rgraph_mousemove_event_listener=function(e)
-{if(navigator.userAgent.indexOf('Firefox')>=0)window.event=e;var objects=RGraph.OR.getObjectsByXY(e);var uids=[];if(objects&&objects.length>0){for(var i=0,len=objects.length;i<len;i+=1){var obj=objects[i];var id=obj.id;uids[obj.uid]=true;if(!obj.getShape){continue;}
-var shape=obj.getShape(e);if(RGraph.last_mouseover_uid&&RGraph.last_mouseover_uid!==obj.uid){RGraph.fireCustomEvent(RGraph.last_mouseover_object,'onmouseout');RGraph.last_mouseover_object.__mouseover_shape_index__=null;RGraph.last_mouseover_object.__mouseover_shape__=null;RGraph.last_mouseover_object=null;RGraph.last_mouseover_uid=null;}
-if((!shape&&typeof obj.__mouseover_shape_index__==='number')||(shape&&typeof obj.__mouseover_shape_index__==='number'&&shape.index!==obj.__mouseover_shape_index__)){RGraph.fireCustomEvent(obj,'onmouseout');}
-if(obj.coords&&obj.coords.key&&obj.coords.key.length){var mouseXY=RGraph.getMouseXY(e);for(var i=0,overkey=false;i<obj.coords.key.length;++i){if(mouseXY[0]>=obj.coords.key[i][0]&&mouseXY[0]<=(obj.coords.key[i][0]+obj.coords.key[i][2])&&mouseXY[1]>=obj.coords.key[i][1]&&mouseXY[1]<=(obj.coords.key[i][1]+obj.coords.key[i][3])){RGraph.Registry.set('key-element',obj.coords.key[i]);overkey=true;}
-if(!overkey){RGraph.Registry.set('key-element',null);}}}
-var func=null;if(!func&&typeof obj.onmousemove=='function'){var func=obj.onmousemove;}
-if(shape){var index=shape.sequentialIndex;if(typeof obj['$'+index]==='object'&&typeof obj['$'+index].onmousemove=='function'){var func2=obj['$'+index].onmousemove;}}
-if(shape&&(typeof func=='function'||typeof func2=='function'||typeof obj.get('link')==='string')){if(obj.get('eventsMousemoveRevertto')==null){obj.set('eventsMousemoveRevertto',e.target.style.cursor);}
-if(typeof func=='function')RGraph.custom_events_mousemove_pointer=func(e,shape);if(typeof func2=='function')RGraph.custom_events_mousemove_pointer=RGraph.custom_events_mousemove_pointer||func2(e,shape);if(typeof RGraph.events==='object'&&typeof RGraph.events[obj.uid]==='object'){for(i in RGraph.events[obj.uid]){if(typeof i==='string'&&typeof RGraph.events[obj.uid][i]==='object'&&RGraph.events[obj.uid][i][1]==='onmousemove'&&typeof RGraph.events[obj.uid][i][2]==='function'){(RGraph.events[obj.uid][i][2])(obj);}}}}else if(typeof obj.get('eventsMousemoveRevertto')=='string'){RGraph.cursor.push('default');obj.set('eventsMousemoveRevertto',null);}
-var func=null;if(!func&&typeof obj.onmouseover==='function'){func=obj.onmouseover;}
-if(shape){var index=shape.sequentialIndex;if(typeof obj['$'+index]=='object'&&typeof obj['$'+index].onmouseover=='function'){var func2=obj['$'+index].onmouseover;}}else{obj.__mouseover_shape_index__=null;RGraph.__mouseover_objects__=[];RGraph.last_mouseover_uid=null;RGraph.last_mouseover_object=null;}
-if(typeof RGraph.__mouseover_objects__==='undefined'){RGraph.__mouseover_objects__=[];RGraph.last_mouseover_uid=null;RGraph.last_mouseover_object=null;}
-if(shape){if((obj.__mouseover_shape_index__===shape.index)===false){obj.__mouseover_shape__=shape;obj.__mouseover_shape_index__=shape.index;RGraph.last_mouseover_uid=obj.uid;RGraph.last_mouseover_object=obj;RGraph.__mouseover_objects__.push(obj);if(func)func(e,shape);if(func2)func2(e,shape);if(typeof RGraph.events==='object'&&typeof RGraph.events[obj.uid]==='object'){for(i in RGraph.events[obj.uid]){if(typeof i==='string'&&typeof RGraph.events[obj.uid][i]==='object'&&RGraph.events[obj.uid][i][1]==='onmouseover'&&typeof RGraph.events[obj.uid][i][2]==='function'){(RGraph.events[obj.uid][i][2])(obj);}}}}}else{obj.__mouseover_shape_index__=null;RGraph.__mouseover_objects__=[];RGraph.last_mouseover_uid=null;RGraph.last_mouseover_object=null;}
-var current_tooltip=RGraph.Registry.get('tooltip');var tooltips=obj.get('tooltips');var tooltips_event=obj.get('tooltipsEvent');if(shape&&(tooltips&&tooltips[shape.index]||shape.tooltip)&&tooltips_event.indexOf('mousemove')!==-1&&(RGraph.isNull(current_tooltip)||obj.uid!=current_tooltip.__object__.uid||(current_tooltip.__index__!=shape.sequentialIndex)||(typeof shape.dataset==='number'&&shape.dataset!=current_tooltip.__shape__.dataset))){RGraph.clear(obj.canvas);RGraph.hideTooltip();RGraph.redraw();obj.canvas.rgraph_mouseup_event_listener(e);return;}
-if(obj&&obj.get('adjustable')){obj.adjusting_mousemove(e);}
-if(shape||(obj.overChartArea&&obj.overChartArea(e))){break;}}
-var objects=RGraph.OR.getObjectsByCanvasID(e.target.id);for(var i=0;i<objects.length;++i){if(!uids[objects[i].uid]){objects[i].__mouseover_shape_index__=null;}}}else{var objects=RGraph.OR.getObjectsByCanvasID(e.target.id);for(var i=0;i<objects.length;i++){if(typeof objects[i].__mouseover_shape_index__==='number'){RGraph.fireCustomEvent(objects[i],'onmouseout');}
-objects[i].__mouseover_shape_index__=null;}
-RGraph.__mouseover_objects__=[];RGraph.last_mouseover_uid=null;RGraph.last_mouseover_object=null;}
-if(e.target&&e.target.__object__&&e.target.__object__.get('crosshairs')){RGraph.drawCrosshairs(e,e.target.__object__);}
-if(e.target.__object__&&e.target.__object__.get('annotatable')&&RGraph.annotating_canvas_onmousemove){RGraph.annotating_canvas_onmousemove(e);}
-RGraph.evaluateCursor(e);};obj.canvas.addEventListener('mousemove',obj.canvas.rgraph_mousemove_event_listener,false);}};RGraph.installCanvasMousedownListener=function(obj)
-{if(!obj.canvas.rgraph_mousedown_event_listener){obj.canvas.rgraph_mousedown_event_listener=function(e)
-{if(navigator.userAgent.indexOf('Firefox')>=0)window.event=e;if(e.target.__object__&&e.target.__object__.get('annotatable')&&RGraph.annotating_canvas_onmousedown){RGraph.annotating_canvas_onmousedown(e);return;}
-var obj=RGraph.ObjectRegistry.getObjectByXY(e);if(obj){var id=obj.id;if(obj&&obj.isRGraph&&obj.get('adjustable')){var obj=RGraph.OR.getObjectByXY(e);if(obj&&obj.isRGraph){switch(obj.type){case'bar':var shape=obj.getShapeByX(e);break;case'gantt':var shape=obj.getShape(e);if(shape){var data=typeof obj.data[shape.dataset]==='object'&&obj.data[shape.dataset][shape.index]&&obj.data[shape.dataset][shape.index].start?obj.data[shape.dataset][shape.index]:obj.data[shape.dataset];var mouseXY=RGraph.getMouseXY(e);RGraph.Registry.set('adjusting.gantt',{dataset:shape.dataset,index:shape.index,object:obj,mousex:mouseXY[0],mousey:mouseXY[1],event:data,event_start:data.start,event_duration:data.duration,mode:(mouseXY[0]>(shape.x+shape.width-5)?'resize':'move'),shape:shape});}
-break;case'line':var shape=obj.getShape(e);break;case'hbar':var shape=obj.getShapeByY(e);break;default:var shape=null;}
-if(RGraph.isNull(obj.properties.adjustableOnly)||typeof obj.properties.adjustableOnly==='undefined'||(RGraph.isArray(obj.properties.adjustableOnly)&&obj.isAdjustable&&obj.isAdjustable(shape))){RGraph.Registry.set('adjusting.shape',shape);RGraph.fireCustomEvent(obj,'onadjustbegin');RGraph.Registry.set('adjusting',obj);RGraph.clear(obj.canvas);RGraph.redraw();obj.canvas.rgraph_mousemove_event_listener(e);}}}
-RGraph.clear(obj.canvas);RGraph.redraw();}};obj.canvas.addEventListener('mousedown',obj.canvas.rgraph_mousedown_event_listener,false);}};RGraph.installCanvasClickListener=function(obj)
-{if(!obj.canvas.rgraph_click_event_listener){obj.canvas.rgraph_click_event_listener=function(e)
-{if(navigator.userAgent.indexOf('Firefox')>=0)window.event=e;var objects=RGraph.ObjectRegistry.getObjectsByXY(e);for(var i=0,len=objects.length;i<len;i+=1){var obj=objects[i];var id=obj.id;var shape=obj.getShape(e);var func=null;if(!func&&typeof obj.onclick=='function'){func=obj.onclick;}
-if(shape&&typeof func=='function'){func(e,shape);if(typeof RGraph.events==='object'&&typeof RGraph.events[obj.uid]==='object'){for(i in RGraph.events[obj.uid]){if(typeof i==='string'&&typeof RGraph.events[obj.uid][i]==='object'&&RGraph.events[obj.uid][i][1]==='onclick'&&typeof RGraph.events[obj.uid][i][2]==='function'){(RGraph.events[obj.uid][i][2])(obj);}}}
-return;}
-var key=RGraph.Registry.get('key-element');if(key){RGraph.fireCustomEvent(obj,'onkeyclick');}
-if(shape){var index=shape.sequentialIndex;if(typeof index=='number'&&obj['$'+index]){var func=obj['$'+index].onclick;if(typeof func=='function'){func(e,shape);return;}}}
-if(shape||(obj.overChartArea&&obj.overChartArea(e))){break;}}};obj.canvas.addEventListener('click',obj.canvas.rgraph_click_event_listener,false);}};RGraph.evaluateCursor=function(e)
-{if(e.rgraph_evaluateCursor===false){return;}
-var obj=null;var mouseXY=RGraph.getMouseXY(e);var mouseX=mouseXY[0];var mouseY=mouseXY[1];var canvas=e.target;var objects=RGraph.OR.getObjectsByCanvasID(canvas.id);for(var i=0,len=objects.length;i<len;i+=1){if((objects[i].getShape&&objects[i].getShape(e))||(objects[i].overChartArea&&objects[i].overChartArea(e))){var obj=objects[i];var id=obj.id;}}
-if(!RGraph.isNull(obj)){if(obj.getShape&&obj.getShape(e)){var shape=obj.getShape(e);if(obj.get('tooltips')){var text=RGraph.parseTooltipText(obj.get('tooltips'),shape.sequentialIndex);if(!text&&shape.object.type=='scatter'&&shape.index){text=RGraph.parseTooltipText(obj.get('tooltips'),shape.index);}
-if(text){var pointer=true;}}}
-if(!RGraph.isNull(obj)&&obj.get('keyInteractive')){for(var j=0;j<obj.coords.key.length;++j){if(mouseX>obj.coords.key[j][0]&&mouseX<(obj.coords.key[j][0]+obj.coords.key[j][2])&&mouseY>obj.coords.key[j][1]&&mouseY<(obj.coords.key[j][1]+obj.coords.key[j][3])){var pointer=true;}}}}
-if(RGraph.custom_events_mousemove_pointer){var pointer=true;RGraph.custom_events_mousemove_pointer=false;}
-var objects=RGraph.OR.objects.byCanvasID;for(var i=0,len=objects.length;i<len;i+=1){if(objects[i]&&objects[i][1].get('resizable')){var resizable=true;}}
-if(resizable&&mouseX>(e.target.width-32)&&mouseY>(e.target.height-16)){pointer=true;}
-if(pointer){e.target.style.cursor='pointer';}else if(e.target.style.cursor=='pointer'){e.target.style.cursor='default';}else{e.target.style.cursor=null;}
-if(resizable&&mouseX>=(e.target.width-15)&&mouseY>=(e.target.height-15)){e.target.style.cursor='move';}else if(e.target.style.cursor==='move'){e.target.style.cursor='default';}
-if(typeof mouse_over_key=='boolean'&&mouse_over_key){e.target.style.cursor='pointer';}
-if(obj&&obj.type=='line'&&obj.get('adjustable')){if(obj.getShape){var shape=obj.getShape(e);if(shape&&obj.isAdjustable(shape)){e.target.style.cursor='ns-resize';}}else{e.target.style.cursor='default';}}
-if(e.target.__object__&&e.target.__object__.get('annotatable')){e.target.style.cursor='crosshair';}
-if(obj&&obj.type==='drawing.text'&&shape&&typeof obj.get('link')==='string'){e.target.style.cursor='pointer';}};RGraph.parseTooltipText=function(tooltips,idx)
-{if(!tooltips){return null;}
-if(typeof tooltips=='function'){var text=tooltips(idx);}else if(typeof tooltips=='string'){var text=tooltips;}else if(typeof tooltips==='object'&&typeof tooltips[idx]=='function'){var text=tooltips[idx](idx);}else if(typeof tooltips==='object'&&(RGraph.isNull(tooltips[idx])||typeof tooltips[idx]==='undefined')){return null;}else if(typeof tooltips[idx]=='string'&&tooltips[idx]){var text=tooltips[idx];}else{var text='';}
-if(typeof text==='undefined'){text='';}else if(typeof text==='null'){text='';}
-return RGraph.getTooltipTextFromDIV?RGraph.getTooltipTextFromDIV(text):text;};RGraph.drawCrosshairs=function(e,obj)
-{var width=obj.canvas.width,height=obj.canvas.height,mouseXY=RGraph.getMouseXY(e),x=mouseXY[0],y=mouseXY[1],marginLeft=obj.marginLeft,marginRight=obj.marginRight,marginTop=obj.marginTop,marginBottom=obj.marginBottom,prop=obj.properties;RGraph.redrawCanvas(obj.canvas);if(x>=marginLeft&&y>=marginTop&&x<=(width-marginRight)&&y<=(height-marginBottom)){var linewidth=prop.crosshairsLinewidth?prop.crosshairsLinewidth:1;obj.context.lineWidth=linewidth?linewidth:1;obj.context.beginPath();obj.context.strokeStyle=prop.crosshairsColor;if(prop.crosshairsSnap){var point=null;var dist=null;var len=null;if(obj.type=='line'){for(var i=0;i<obj.coords.length;++i){var length=RGraph.getHypLength(obj.coords[i][0],obj.coords[i][1],x,y);if(typeof dist!='number'||length<dist){var point=i;var dist=length;}}
-x=obj.coords[point][0];y=obj.coords[point][1];for(var dataset=0;dataset<obj.coords2.length;++dataset){for(var point=0;point<obj.coords2[dataset].length;++point){if(obj.coords2[dataset][point][0]==x&&obj.coords2[dataset][point][1]==y){obj.canvas.__crosshairs_snap_dataset__=dataset;obj.canvas.__crosshairs_snap_point__=point;}}}}else{for(var i=0;i<obj.coords.length;++i){for(var j=0;j<obj.coords[i].length;++j){var len=RGraph.getHypLength(obj.coords[i][j][0],obj.coords[i][j][1],x,y);if(typeof dist!='number'||len<dist){var dataset=i;var point=j;var dist=len;}}}
-obj.canvas.__crosshairs_snap_dataset__=dataset;obj.canvas.__crosshairs_snap_point__=point;x=obj.coords[dataset][point][0];y=obj.coords[dataset][point][1];}}
-if(prop.crosshairsVline){obj.context.moveTo(Math.round(x),Math.round(marginTop));obj.context.lineTo(Math.round(x),Math.round(height-marginBottom));}
-if(prop.crosshairsHline){obj.context.moveTo(Math.round(marginLeft),Math.round(y));obj.context.lineTo(Math.round(width-marginRight),Math.round(y));}
-obj.context.stroke();if(obj.type=='scatter'&&prop.crosshairsCoords){var xCoord=(((x-marginLeft)/(width-marginLeft-marginRight))*(prop.xaxisScaleMax-prop.xaxisScaleMin))+prop.xaxisScaleMin;xCoord=xCoord.toFixed(prop.yaxisScaleDecimals);var yCoord=obj.max-(((y-prop.marginTop)/(height-marginTop-marginBottom))*obj.max);if(obj.type=='scatter'&&obj.properties.xaxisPosition=='center'){yCoord=(yCoord-(obj.max/2))*2;}
-yCoord=yCoord.toFixed(prop.yaxisScaleDecimals);var div=RGraph.Registry.get('coordinates.coords.div');var mouseXY=RGraph.getMouseXY(e);var canvasXY=RGraph.getCanvasXY(obj.canvas);if(!div){var div=document.createElement('DIV');div.__object__=obj;div.style.position='absolute';div.style.backgroundColor='white';div.style.border='1px solid gray';div.style.fontFamily='Arial, Verdana, sans-serif';div.style.fontSize='10pt'
-div.style.padding='2px';div.style.opacity=1;div.style.WebkitBorderRadius='3px';div.style.borderRadius='3px';div.style.MozBorderRadius='3px';div.style.lineHeight=RGraph.ISIE?'normal':'initial';document.body.appendChild(div);RGraph.Registry.set('coordinates.coords.div',div);}
-div.style.opacity=1;div.style.display='inline';if(!prop.crosshairsCoordsFixed){div.style.left=Math.max(2,(e.pageX-div.offsetWidth-3))+'px';div.style.top=Math.max(2,(e.pageY-div.offsetHeight-3))+'px';}else{div.style.left=canvasXY[0]+marginLeft+3+'px';div.style.top=canvasXY[1]+marginTop+3+'px';}
-if(typeof prop.crosshairsCoordsFormatterX==='function'){xCoord=(prop.crosshairsCoordsFormatterX)({object:obj,value:parseInt(xCoord)});}
-if(typeof prop.crosshairsCoordsFormatterY==='function'){yCoord=(prop.crosshairsCoordsFormatterY)({object:obj,value:parseInt(yCoord)});}
-div.innerHTML='<span style="color: #666">'+prop.crosshairsCoordsLabelsX+':</span> '+xCoord+'<br><span style="color: #666">'+prop.crosshairsCoordsLabelsY+':</span> '+yCoord;obj.canvas.addEventListener('mouseout',RGraph.hideCrosshairCoords,false);obj.canvas.__crosshairs_labels__=div;obj.canvas.__crosshairs_x__=xCoord;obj.canvas.__crosshairs_y__=yCoord;}else if(prop.crosshairsCoords){alert('[RGRAPH] Showing crosshair coordinates is only supported on the Scatter chart');}
-RGraph.fireCustomEvent(obj,'oncrosshairs');}else{RGraph.hideCrosshairCoords();}};RGraph.allowSegmentHighlight=function(opt)
-{var obj=opt.object,count=opt.count,fill=opt.fill,stroke=opt.stroke
-if(!RGraph.segmentHighlightFunction){RGraph.segmentHighlightFunction=function(e)
-{var mouseXY=RGraph.getMouseXY(e);var angle=RGraph.getAngleByXY(obj.centerx,obj.centery,mouseXY[0],mouseXY[1]);angle+=RGraph.HALFPI;if(angle>RGraph.TWOPI){angle-=RGraph.TWOPI;}
-RGraph.redraw();var start=0;var end=0;var a=(Math.PI*2)/count;var r=obj.radius;(function()
-{for(i=0;i<count;i+=1){if(angle<(a*(i+1))){start=i*a;end=(i+1)*a;return;}}})();start-=RGraph.HALFPI;end-=RGraph.HALFPI;obj.path('b m % % a % % % % % false c s % f %',obj.centerx,obj.centery,obj.centerx,obj.centery,r,start,end,stroke,fill);};obj.canvas.addEventListener('mousemove',RGraph.segmentHighlightFunction,false);}}})(window,document);
\ No newline at end of file
diff --git a/web/js/RGraph.common.effects.js b/web/js/RGraph.common.effects.js
deleted file mode 100644
index 325839fd1d..0000000000
--- a/web/js/RGraph.common.effects.js
+++ /dev/null
@@ -1,90 +0,0 @@
-
-RGraph=window.RGraph||{isrgraph:true,isRGraph:true,rgraph:true};RGraph.Effects=RGraph.Effects||{};RGraph.Effects.Common={};(function(win,doc,undefined)
-{var ua=navigator.userAgent;RGraph.Effects.decorate=function(obj)
-{for(i in RGraph.Effects.Common){if(typeof RGraph.Effects.Common[i]==='function'){obj[i]=RGraph.Effects.Common[i];}}};RGraph.Effects.wrap=function(canvas)
-{if(!canvas.rgraph_wrapper){var div=$('<div></div>').css({width:canvas.width+'px',height:canvas.height+'px',cssFloat:canvas.style.cssFloat,left:canvas.style.left,top:canvas.style.top,display:'inline-block'}).get(0);canvas.parentNode.insertBefore(div,canvas);canvas.parentNode.removeChild(canvas);div.appendChild(canvas);canvas.style.position='relative';canvas.style.left=(div.offsetWidth/2)+'px';canvas.style.top=(div.offsetHeight/2)+'px';canvas.style.cssFloat='';canvas.rgraph_wrapper=div;}
-var div=canvas.rgraph_wrapper;return div;};RGraph.Effects.Common.fadeIn=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||30;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};obj.canvas.style.opacity=0;RGraph.redrawCanvas(obj.canvas);for(var i=1;i<=frames;++i){(function(index)
-{setTimeout(function()
-{obj.canvas.style.opacity=(index/frames);if(index>=frames){callback(obj);}},(index/frames)*duration);})(i)}
-return obj;};RGraph.Effects.Common.fadeOut=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||30;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};for(var i=1;i<=frames;++i){(function(index)
-{setTimeout(function()
-{obj.canvas.style.opacity=1-(index/frames);if(index>=frames){callback(obj);}},(index/frames)*duration);})(i)}
-return this;};RGraph.Effects.Common.fadeSlideIn=function()
-{var obj=this,opt=arguments[0]||{},frames=opt.frames||30,frame=0,pc=-20,step=(120-pc)/frames,canvasXY=RGraph.getCanvasXY(obj.canvas),color=opt.color||'white',callback=arguments[1]||function(){};RGraph.redrawCanvas(obj.canvas);$('<div id="rgraph_fadeslide_cover_'+obj.id+'"></div>').css({background:'linear-gradient(135deg, rgba(255,255,255,0) '+pc+'%, '+color+' '+(pc+20)+'%)',width:obj.canvas.width+'px',height:obj.canvas.height+'px',top:canvasXY[1]+'px',left:canvasXY[0]+'px',position:'absolute'}).appendTo($(obj.canvas.parentNode));function iterator()
-{if(pc<120){$('div#rgraph_fadeslide_cover_'+obj.id).css({background:'linear-gradient(135deg, rgba(255,255,255,0) '+pc+'%, '+color+' '+(pc+20)+'%)'});pc+=step;RGraph.Effects.updateCanvas(iterator);}else{$('div#rgraph_fadeslide_cover_'+obj.id).remove();callback(obj);}}
-iterator();};RGraph.Effects.Common.fadeSlideOut=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||30;var frame=0;var pc=-20;var step=(120-pc)/frames;var canvasXY=RGraph.getCanvasXY(obj.canvas);var color=opt.color||'white';var callback=arguments[1]||function(){};RGraph.redrawCanvas(obj.canvas);$('<div id="rgraph_fadeslide_cover_'+obj.id+'"></div>').css({background:'linear-gradient(135deg, '+color+' '+pc+'%, rgba(255,255,255,0) '+(pc+20)+'%)',width:obj.canvas.width+'px',height:obj.canvas.height+'px',top:canvasXY[1]+'px',left:canvasXY[0]+'px',position:'absolute'}).appendTo($(obj.canvas.parentNode));function iterator()
-{if(pc<120){$('div#rgraph_fadeslide_cover_'+obj.id).css({background:'linear-gradient(135deg, '+color+' '+pc+'%, rgba(255,255,255,0) '+(pc+20)+'%)'});pc+=step;RGraph.Effects.updateCanvas(iterator);}else{RGraph.clear(obj.canvas,obj.get('clearto'))
-$('div#rgraph_fadeslide_cover_'+obj.id).remove();callback(obj);}}
-iterator();};RGraph.Effects.Common.fadeCircularInOutwards=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||120;var frame=0;var radius=0;var canvasXY=RGraph.getCanvasXY(obj.canvas);var color=opt.color||'white';var callback=arguments[1]||function(){};RGraph.redrawCanvas(obj.canvas);$('<div id="rgraph_fadeslide_cover_'+obj.id+'"></div>').css({background:'radial-gradient(rgba(255,255,255,0) 0%, white '+radius+'%)',width:obj.canvas.width+'px',height:obj.canvas.height+'px',top:canvasXY[1],left:canvasXY[0],position:'absolute'}).appendTo($(obj.canvas.parentNode));function iterator()
-{if(frame<frames){$('div#rgraph_fadeslide_cover_'+obj.id).css({background:'radial-gradient(rgba(255,255,255,0) '+((frame++/ frames) * 100) + '%, ' + color + ' ' + ((frame++ /frames)*150)+'%)'});RGraph.Effects.updateCanvas(iterator);}else{$('div#rgraph_fadeslide_cover_'+obj.id).remove();callback(obj);}}
-iterator();};RGraph.Effects.Common.fadeCircularOutOutwards=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||120;var frame=0;var canvasXY=RGraph.getCanvasXY(obj.canvas);var color=opt.color||'white';var callback=arguments[1]||function(){};RGraph.redrawCanvas(obj.canvas);$('<div id="rgraph_fadeslide_cover_'+obj.id+'"></div>').css({background:'radial-gradient(rgba(255,255,255,0) 0%, white 0%)',width:obj.canvas.width+'px',height:obj.canvas.height+'px',top:canvasXY[1],left:canvasXY[0],position:'absolute'}).appendTo($(obj.canvas.parentNode));function iterator()
-{if(frame<frames){$('div#rgraph_fadeslide_cover_'+obj.id).css({background:'radial-gradient('+color+' '+((frame++/ frames) * 100) + '%, rgba(255,255,255,0) ' + ((frame++ /frames)*150)+'%)'});RGraph.Effects.updateCanvas(iterator);}else{RGraph.clear(obj.canvas,color);$('div#rgraph_fadeslide_cover_'+obj.id).remove();callback(obj);}}
-iterator();};RGraph.Effects.Common.fadeCircularInInwards=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||120;var frame=0;var radius=Math.max(obj.canvas.width,obj.canvas.height);var canvasXY=RGraph.getCanvasXY(obj.canvas);var color=opt.color||'white';var callback=arguments[1]||function(){};RGraph.redrawCanvas(obj.canvas);$('<div id="rgraph_fadeslide_cover_'+obj.id+'"></div>').css({background:'radial-gradient(rgba(255,255,255,0) 100%, rgba(255,255,255,0) 0%)',width:obj.canvas.width+'px',height:obj.canvas.height+'px',top:canvasXY[1]+'px',left:canvasXY[0]+'px',position:'absolute'}).appendTo($(obj.canvas.parentNode));function iterator()
-{if(frame<frames){$('div#rgraph_fadeslide_cover_'+obj.id).css({background:'radial-gradient('+color+' '+(((frames-frame++)/frames)*100)+'%, rgba(255,255,255,0) '+(((frames-frame++)/frames)*120)+'%)'});RGraph.Effects.updateCanvas(iterator);}else{$('div#rgraph_fadeslide_cover_'+obj.id).remove();callback(obj);}}
-iterator();};RGraph.Effects.Common.fadeCircularOutInwards=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||120;var frame=0;var radius=Math.max(obj.canvas.width,obj.canvas.height);var canvasXY=RGraph.getCanvasXY(obj.canvas);var color=opt.color||'white';var callback=arguments[1]||function(){};RGraph.redrawCanvas(obj.canvas);$('<div id="rgraph_fadeslide_cover_'+obj.id+'"></div>').css({background:'radial-gradient(rgba(255,255,255,0) 0%, rgba(255,255,255,0) 0%)',width:obj.canvas.width+'px',height:obj.canvas.height+'px',top:canvasXY[1],left:canvasXY[0],position:'absolute'}).appendTo($(obj.canvas.parentNode));function iterator()
-{if(frame<frames){$('div#rgraph_fadeslide_cover_'+obj.id).css({background:'radial-gradient(rgba(255,255,255,0) '+(((frames-frame++)/frames)*100)+'%, '+color+' '+(((frames-frame++)/frames)*120)+'%)'});RGraph.Effects.updateCanvas(iterator);}else{RGraph.clear(obj.canvas);$('div#rgraph_fadeslide_cover_'+obj.id).remove();callback(obj);}}
-iterator();};RGraph.Effects.Common.expand=function()
-{var obj=this;var opt=arguments[0]||{};var bounce=typeof opt.bounce==='boolean'?opt.bounce:true;var frames=opt.frames||60;var duration=(frames/60)*1000;var callback=arguments[1]||function(){};if(!this.canvas.rgraph_wrapper){var div=RGraph.Effects.wrap(this.canvas);this.canvas.rgraph_wrapper=div;}else{div=this.canvas.rgraph_wrapper;}
-div.style.position='relative';this.canvas.style.top=(this.canvas.height/2)+'px';this.canvas.style.left=(this.canvas.width/2)+'px';this.canvas.style.width=0;this.canvas.style.height=0;this.canvas.style.opacity=0;RGraph.clear(this.canvas);RGraph.redrawCanvas(this.canvas);if(bounce){jQuery('#'+obj.id).animate({opacity:1,width:(obj.canvas.width*1.2)+'px',height:(obj.canvas.height*1.2)+'px',left:(obj.canvas.width* -0.1)+'px',top:(obj.canvas.height* -0.1)+'px'},duration*0.5,function()
-{jQuery('#'+obj.id).animate({width:(obj.canvas.width*0.9)+'px',height:(obj.canvas.height*0.9)+'px',top:(obj.canvas.height*0.05)+'px',left:(obj.canvas.width*0.05)+'px'},duration*0.25,function()
-{jQuery('#'+obj.id).animate({width:obj.canvas.width+'px',height:obj.canvas.height+'px',top:0,left:0},duration*0.25,function(){callback(obj);});});});}else{jQuery(obj.canvas).animate({opacity:1,width:obj.canvas.width+'px',height:obj.canvas.height+'px',left:0,top:0},duration,function(){callback(obj);})}
-return this;};RGraph.Effects.Common.contract=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var callback=arguments[1]||function(){};if(!obj.canvas.rgraph_wrapper){var div=RGraph.Effects.wrap(obj.canvas);obj.canvas.rgraph_wrapper=div;}else{div=obj.canvas.rgraph_wrapper;}
-div.style.position='relative';obj.canvas.style.top=0;obj.canvas.style.left=0;if(opt.bounce!==false){jQuery('#'+obj.id).animate({width:(obj.canvas.width*1.2)+'px',height:(obj.canvas.height*1.2)+'px',left:(obj.canvas.width* -0.1)+'px',top:(obj.canvas.height* -0.1)+'px'},duration*0.25,function()
-{jQuery('#'+obj.id).animate({opacity:0,width:0,height:0,left:(obj.canvas.width*0.5)+'px',top:(obj.canvas.height*0.5)+'px'},duration*0.75,function(){callback(obj);});});}else{jQuery('#'+obj.id).animate({opacity:0,width:0,height:0,left:(obj.canvas.width*0.5)+'px',top:(obj.canvas.height*0.5)+'px'},duration*0.75,function(){callback(obj);});}
-return this;};RGraph.Effects.Common.reveal=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var callback=arguments[1]||function(){};var xy=RGraph.getCanvasXY(obj.canvas);var divs=[['rgraph_reveal_left_'+obj.id,xy[0],xy[1],obj.canvas.width/2,obj.canvas.height],['rgraph_reveal_right_'+obj.id,(xy[0]+(obj.canvas.width/2)),xy[1],(obj.canvas.width/2),obj.canvas.height],['rgraph_reveal_top_'+obj.id,xy[0],xy[1],obj.canvas.width,(obj.canvas.height/2)],['rgraph_reveal_bottom_'+obj.id,xy[0],(xy[1]+(obj.canvas.height/2)),obj.canvas.width,(obj.canvas.height/2)]];for(var i=0,len=divs.length;i<len;++i){var div=document.createElement('DIV');div.id=divs[i][0];div.style.width=divs[i][3]+'px';div.style.height=divs[i][4]+'px';div.style.left=divs[i][1]+'px';div.style.top=divs[i][2]+'px';div.style.position='absolute';div.style.backgroundColor=opt&&typeof opt.color==='string'?opt.color:'white';document.body.appendChild(div);}
-RGraph.clear(obj.canvas);RGraph.redrawCanvas(obj.canvas);jQuery('#rgraph_reveal_left_'+obj.id).animate({width:0},duration);jQuery('#rgraph_reveal_right_'+obj.id).animate({left:'+='+(obj.canvas.width/2),width:0},duration);jQuery('#rgraph_reveal_top_'+obj.id).animate({height:0},duration);jQuery('#rgraph_reveal_bottom_'+obj.id).animate({top:'+='+(obj.canvas.height/2),height:0},duration);setTimeout(function()
-{doc.body.removeChild(doc.getElementById("rgraph_reveal_top_"+obj.id));doc.body.removeChild(doc.getElementById("rgraph_reveal_bottom_"+obj.id));doc.body.removeChild(doc.getElementById("rgraph_reveal_left_"+obj.id));doc.body.removeChild(doc.getElementById("rgraph_reveal_right_"+obj.id));callback(obj);},duration);return this;};RGraph.Effects.Common.revealCircular=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||30;var frame=0;var callback=arguments[1]||function(){};var currentRadius=0
-var centerx=obj.canvas.width/2;var centery=obj.canvas.height/2;var targetRadius=Math.max(obj.canvas.height,obj.canvas.width);var step=targetRadius/frames;var color=opt.background||opt.color||opt.backgroundColor||'transparent';function iterator()
-{RGraph.clear(obj.canvas,color);obj.context.save();obj.context.beginPath();obj.context.arc(centerx,centery,currentRadius,0,RGraph.TWOPI,false);obj.context.clip();if(opt.background){RGraph.clear(obj.canvas,opt.background);}
-obj.draw();obj.context.restore();if(currentRadius<targetRadius){currentRadius+=step;RGraph.Effects.updateCanvas(iterator);}else{callback(obj);}}
-iterator();return this;};RGraph.Effects.Common.conceal=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var xy=RGraph.getCanvasXY(obj.canvas);var color=opt.background||opt.color||opt.backgroundColor||'white';var divs=[['rgraph_conceal_left_'+obj.id,xy[0],xy[1],0,obj.canvas.height],['rgraph_conceal_right_'+obj.id,(xy[0]+obj.canvas.width),xy[1],0,obj.canvas.height],['rgraph_conceal_top_'+obj.id,xy[0],xy[1],obj.canvas.width,0],['rgraph_conceal_bottom_'+obj.id,xy[0],(xy[1]+obj.canvas.height),obj.canvas.width,0]];for(var i=0,len=divs.length;i<len;++i){var div=doc.createElement('DIV');div.id=divs[i][0];div.style.width=divs[i][3]+'px';div.style.height=divs[i][4]+'px';div.style.left=divs[i][1]+'px';div.style.top=divs[i][2]+'px';div.style.position='absolute';div.style.backgroundColor=color;doc.body.appendChild(div);}
-jQuery('#rgraph_conceal_left_'+obj.id).animate({width:'+='+(obj.canvas.width/2)},duration);jQuery('#rgraph_conceal_right_'+obj.id).animate({left:'-='+(obj.canvas.width/2),width:(obj.canvas.width/2)},duration);jQuery('#rgraph_conceal_top_'+obj.id).animate({height:'+='+(obj.canvas.height/2)},duration);jQuery('#rgraph_conceal_bottom_'+obj.id).animate({top:'-='+(obj.canvas.height/2),height:(obj.canvas.height/2)},duration);setTimeout(function()
-{doc.body.removeChild(doc.getElementById("rgraph_conceal_top_"+obj.id));doc.body.removeChild(doc.getElementById("rgraph_conceal_bottom_"+obj.id));doc.body.removeChild(doc.getElementById("rgraph_conceal_left_"+obj.id));doc.body.removeChild(doc.getElementById("rgraph_conceal_right_"+obj.id));RGraph.clear(obj.canvas);callback(obj);},duration);return this;};RGraph.Effects.Common.hBlindsOpen=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var height=this.canvas.height/5;RGraph.clear(this.canvas);RGraph.redrawCanvas(this.canvas);for(var i=0;i<5;++i){var div=doc.createElement('DIV');div.id='rgraph_hblinds_'+i+'_'+obj.id;div.style.width=this.canvas.width+'px';div.style.height=height+'px';div.style.left=xy[0]+'px';div.style.top=(xy[1]+(this.canvas.height*(i/5)))+'px';div.style.position='absolute';div.style.backgroundColor=color;document.body.appendChild(div);jQuery('#rgraph_hblinds_'+i+'_'+obj.id).animate({height:0},duration);}
-setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_0_'+obj.id));},duration);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_1_'+obj.id));},duration);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_2_'+obj.id));},duration);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_3_'+obj.id));},duration);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_4_'+obj.id));},duration);setTimeout(function(){callback(obj);},duration);return this;};RGraph.Effects.Common.hBlindsClose=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var height=this.canvas.height/5;for(var i=0;i<5;++i){var div=doc.createElement('DIV');div.id='rgraph_hblinds_'+i+'_'+obj.id;div.style.width=this.canvas.width+'px';div.style.height=0;div.style.left=xy[0]+'px';div.style.top=(xy[1]+(this.canvas.height*(i/5)))+'px';div.style.position='absolute';div.style.backgroundColor=color;doc.body.appendChild(div);jQuery('#rgraph_hblinds_'+i+'_'+obj.id).animate({height:height+'px'},duration);}
-setTimeout(function(){RGraph.clear(obj.canvas);},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_0_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_1_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_2_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_3_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_hblinds_4_'+obj.id));},duration+100);setTimeout(function(){callback(obj);},duration+100);};RGraph.Effects.Common.vBlindsOpen=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var width=this.canvas.width/10;RGraph.redrawCanvas(obj.canvas);for(var i=0;i<10;++i){var div=doc.createElement('DIV');div.id='rgraph_vblinds_'+i+'_'+obj.id;div.style.width=width+'px';div.style.height=this.canvas.height+'px';div.style.left=(xy[0]+(this.canvas.width*(i/10)))+'px';div.style.top=(xy[1])+'px';div.style.position='absolute';div.style.backgroundColor=color;doc.body.appendChild(div);jQuery('#rgraph_vblinds_'+i+'_'+obj.id).animate({width:0},duration);}
-setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_0_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_1_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_2_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_3_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_4_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_5_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_6_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_7_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_8_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_9_'+obj.id));},duration+100);setTimeout(function(){callback(obj);},duration+100);return this;};RGraph.Effects.Common.vBlindsClose=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var width=this.canvas.width/10;for(var i=0;i<10;++i){var div=doc.createElement('DIV');div.id='rgraph_vblinds_'+i+'_'+obj.id;div.style.width=0;div.style.height=this.canvas.height+'px';div.style.left=(xy[0]+(this.canvas.width*(i/10)))+'px';div.style.top=(xy[1])+'px';div.style.position='absolute';div.style.backgroundColor=color;doc.body.appendChild(div);jQuery('#rgraph_vblinds_'+i+'_'+obj.id).animate({width:width},duration);}
-setTimeout(function(){RGraph.clear(obj.canvas);},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_0_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_1_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_2_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_3_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_4_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_5_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_6_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_7_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_8_'+obj.id));},duration+100);setTimeout(function(){doc.body.removeChild(doc.getElementById('rgraph_vblinds_9_'+obj.id));},duration+100);setTimeout(function(){callback(obj);},duration+100);return this;};RGraph.Effects.Common.slideIn=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var width=this.canvas.width/10;var div=RGraph.Effects.wrap(obj.canvas);var from=opt.from||'left';div.style.overflow='hidden';RGraph.clear(obj.canvas);RGraph.redrawCanvas(obj.canvas);obj.canvas.style.position='relative';if(from=='left'){obj.canvas.style.left=(0-div.offsetWidth)+'px';obj.canvas.style.top=0;}else if(from=='top'){obj.canvas.style.left=0;obj.canvas.style.top=(0-div.offsetHeight)+'px';}else if(from=='bottom'){obj.canvas.style.left=0;obj.canvas.style.top=div.offsetHeight+'px';}else{obj.canvas.style.left=div.offsetWidth+'px';obj.canvas.style.top=0;}
-jQuery('#'+obj.id).animate({left:0,top:0},duration,function()
-{callback(obj);});return this;};RGraph.Effects.Common.slideOut=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var width=this.canvas.width/10;var div=RGraph.Effects.wrap(obj.canvas);var to=opt.to||'left';div.style.overflow='hidden';obj.canvas.style.position='relative';obj.canvas.style.left=0;obj.canvas.style.top=0;if(to=='left'){jQuery('#'+obj.id).animate({left:(0-obj.canvas.width)+'px'},duration,function(){callback(obj);});}else if(to=='top'){jQuery('#'+obj.id).animate({left:0,top:(0-div.offsetHeight)+'px'},duration,function(){callback(obj);});}else if(to=='bottom'){jQuery('#'+obj.id).animate({top:(0+div.offsetHeight)+'px'},duration,function(){callback(obj);});}else{jQuery('#'+obj.id).animate({left:(0+obj.canvas.width)+'px'},duration,function(){callback(obj);});}
-return this;};RGraph.Effects.Common.hScissorsOpen=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var width=this.canvas.width/10;var to=opt.to||'left';var height=obj.canvas.height/5;RGraph.clear(obj.canvas);RGraph.redrawCanvas(obj.canvas);for(var i=0;i<5;++i){var div=doc.getElementById("rgraph_hscissors_"+i+'_'+obj.id)
-if(!div){var div=doc.createElement('DIV');div.id='rgraph_hscissors_'+i+'_'+obj.id;div.style.width=obj.canvas.width+'px';div.style.height=height+'px';div.style.left=xy[0]+'px';div.style.top=(xy[1]+(obj.canvas.height*(i/5)))+'px';div.style.position='absolute';div.style.backgroundColor=color;doc.body.appendChild(div);}
-if(i%2==0){jQuery('#'+'rgraph_hscissors_'+i+'_'+obj.id).animate({left:xy[0]+obj.canvas.width+'px',width:0},duration);}else{jQuery('#'+'rgraph_hscissors_'+i+'_'+obj.id).animate({width:0},duration);}}
-setTimeout(function()
-{doc.body.removeChild(doc.getElementById('rgraph_hscissors_0_'+obj.id));doc.body.removeChild(doc.getElementById('rgraph_hscissors_1_'+obj.id));doc.body.removeChild(doc.getElementById('rgraph_hscissors_2_'+obj.id));doc.body.removeChild(doc.getElementById('rgraph_hscissors_3_'+obj.id));doc.body.removeChild(doc.getElementById('rgraph_hscissors_4_'+obj.id));callback(obj);},duration);return this;};RGraph.Effects.Common.hScissorsClose=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var height=obj.canvas.height/5;RGraph.redrawCanvas(obj.canvas);for(var i=0;i<5;++i){var div=doc.createElement('DIV');div.id='rgraph_hscissors_'+i+'_'+obj.id;div.style.width=0;div.style.height=height+'px';div.style.left=(i%2==0?xy[0]+obj.canvas.width:xy[0])+'px';div.style.top=(xy[1]+(obj.canvas.height*(i/5)))+'px';div.style.position='absolute';div.style.backgroundColor=color;doc.body.appendChild(div);if(i%2==0){jQuery('#'+'rgraph_hscissors_'+i+'_'+obj.id).animate({left:xy[0]+'px',width:obj.canvas.width+'px'},duration);}else{jQuery('#'+'rgraph_hscissors_'+i+'_'+obj.id).animate({width:obj.canvas.width+'px'},duration);}}
-setTimeout(function()
-{RGraph.clear(obj.canvas);jQuery('#'+'rgraph_hscissors_'+0+'_'+obj.id).remove();jQuery('#'+'rgraph_hscissors_'+1+'_'+obj.id).remove();jQuery('#'+'rgraph_hscissors_'+2+'_'+obj.id).remove();jQuery('#'+'rgraph_hscissors_'+3+'_'+obj.id).remove();jQuery('#'+'rgraph_hscissors_'+4+'_'+obj.id).remove();callback(obj);},duration);return this;};RGraph.Effects.Common.vScissorsOpen=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var xy=RGraph.getCanvasXY(obj.canvas);var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var width=this.canvas.width/10;RGraph.redrawCanvas(obj.canvas);for(var i=0;i<10;++i){var div=doc.getElementById("rgraph_vscissors_"+i+'_'+obj.id);if(!div){var div=doc.createElement('DIV');div.id='rgraph_vscissors_'+i+'_'+obj.id;div.style.width=width+'px';div.style.height=obj.canvas.height+'px';div.style.left=xy[0]+(obj.canvas.width*(i/10))+'px';div.style.top=xy[1]+'px';div.style.position='absolute';div.style.backgroundColor=color;doc.body.appendChild(div);}
-if(i%2==0){jQuery('#'+'rgraph_vscissors_'+i+'_'+obj.id).animate({top:xy[1]+obj.canvas.height+'px',height:0},duration);}else{jQuery('#'+'rgraph_vscissors_'+i+'_'+obj.id).animate({height:0},duration);}}
-setTimeout(function()
-{doc.body.removeChild(doc.getElementById('rgraph_vscissors_0'+'_'+obj.id));doc.body.removeChild(doc.getElementById('rgraph_vscissors_1'+'_'+obj.id));doc.body.removeChild(doc.getElementById('rgraph_vscissors_2'+'_'+obj.id));doc.body.removeChild(doc.getElementById('rgraph_vscissors_3'+'_'+obj.id));doc.body.removeChild(doc.getElementById('rgraph_vscissors_4'+'_'+obj.id));callback(obj);},duration);return this;};RGraph.Effects.Common.vScissorsClose=function()
-{var obj=this;var opt=arguments[0]||{};var frames=opt.frames||60;var duration=(frames/60)*1000;var frame=0;var callback=arguments[1]||function(){};var xy=RGraph.getCanvasXY(obj.canvas);var color=opt.background||opt.color||opt.backgroundColor||'white';var xy=RGraph.getCanvasXY(this.canvas);var width=this.canvas.width/10;RGraph.redrawCanvas(obj.canvas);for(var i=0;i<10;++i){var div=doc.getElementById("rgraph_vscissors_"+i+'_'+obj.id)
-if(!div){var div=doc.createElement('DIV');div.id='rgraph_vscissors_'+i+'_'+obj.id;div.style.width=width+'px';div.style.height=0;div.style.left=xy[0]+(width*i)+'px';div.style.top=(i%2==0?xy[1]+obj.canvas.height:xy[1])+'px';div.style.position='absolute';div.style.backgroundColor=color;doc.body.appendChild(div);}
-if(i%2==0){jQuery('#'+'rgraph_vscissors_'+i+'_'+obj.id).animate({top:xy[1]+'px',height:obj.canvas.height+'px'},duration);}else{jQuery('#'+'rgraph_vscissors_'+i+'_'+obj.id).animate({height:obj.canvas.height+'px'},duration);}}
-setTimeout(function()
-{RGraph.clear(obj.canvas);for(var i=0;i<10;i++){jQuery('#rgraph_vscissors_'+i+'_'+obj.id).remove();}
-callback(obj);},duration);return this;};RGraph.Effects.Common.animate=function(map)
-{var obj=this;obj.draw();var totalFrames=(map&&map['frames'])?map['frames']:30,currentFrame=new Array(),originalValues=new Array(),diffs=new Array(),steps=new Array(),callback=arguments[1];function iterator()
-{var id=[obj.id+'_'+obj.type];RGraph.cache={};if(!currentFrame[id]){currentFrame[id]=totalFrames;originalValues[id]={};diffs[id]={};steps[id]={};}
-for(var i in map){if(typeof map[i]==='string'||typeof map[i]==='number'){if(currentFrame[id]==totalFrames){originalValues[id][i]=obj.get(i);diffs[id][i]=map[i]-originalValues[id][i];steps[id][i]=diffs[id][i]/totalFrames;}
-obj.set(i,obj.get(i)+steps[id][i]);RGraph.clear(obj.canvas);obj.draw();}}
-if(--currentFrame[id]>0){RGraph.Effects.updateCanvas(iterator);}else{if(typeof callback==='function'){callback(obj);}}}
-iterator();}})(window,document);
\ No newline at end of file
diff --git a/web/js/RGraph.gauge.js b/web/js/RGraph.gauge.js
deleted file mode 100644
index dbd673aa32..0000000000
--- a/web/js/RGraph.gauge.js
+++ /dev/null
@@ -1,81 +0,0 @@
-
-RGraph=window.RGraph||{isrgraph:true,isRGraph:true,rgraph:true};RGraph.Gauge=function(conf)
-{var id=conf.id,canvas=document.getElementById(id),min=conf.min,max=conf.max,value=conf.value;this.id=id;this.canvas=canvas;this.context=this.canvas.getContext?this.canvas.getContext("2d",{alpha:(typeof id==='object'&&id.alpha===false)?false:true}):null;this.canvas.__object__=this;this.type='gauge';this.min=RGraph.stringsToNumbers(min);this.max=RGraph.stringsToNumbers(max);this.value=RGraph.stringsToNumbers(value);this.isRGraph=true;this.isrgraph=true;this.rgraph=true;this.currentValue=null;this.uid=RGraph.createUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.colorsParsed=false;this.coordsText=[];this.original_colors=[];this.firstDraw=true;this.valueOriginal=this.value;if(typeof this.value==='object'){for(var i=0;i<this.value.length;++i){if(this.value[i]>this.max)this.value[i]=max;if(this.value[i]<this.min)this.value[i]=min;}}else{if(this.value>this.max)this.value=max;if(this.value<this.min)this.value=min;}
-this.properties={anglesStart:null,anglesEnd:null,centerx:null,centery:null,radius:null,marginLeft:35,marginRight:35,marginTop:35,marginBottom:35,borderWidth:10,textFont:'Arial, Verdana, sans-serif',textSize:12,textColor:'#666',textBold:false,textItalic:false,textAccessible:true,textAccessibleOverflow:'visible',textAccessiblePointerevents:false,titleTop:'',titleTopFont:null,titleTopSize:null,titleTopColor:null,titleTopBold:null,titleTopItalic:null,titleTopPos:null,titleBottom:'',titleBottomFont:null,titleBottomSize:null,titleBottomColor:null,titleBottomBold:null,titleBottomItalic:null,titleBottomPos:null,backgroundColor:'white',backgroundGradient:false,scaleDecimals:0,scalePoint:'.',scaleThousand:',',scaleUnitsPre:'',scaleUnitsPost:'',scalePoint:'.',scaleThousand:',',labelsCount:5,labelsCentered:false,labelsOffsetRadius:0,labelsOffsetAngle:0,labelsSpecific:null,labelsOffsetx:0,labelsOffsety:0,labelsFont:null,labelsSize:null,labelsColor:null,labelsBold:null,labelsItalic:null,labelsValue:false,labelsValueYPos:0.5,labelsValueUnitsPre:'',labelsValueUnitsPost:'',labelsValueBounding:true,labelsValueBoundingFill:'white',labelsValueBoundingStroke:'black',labelsValueFont:null,labelsValueSize:null,labelsValueColor:null,labelsValueItalic:null,labelsValueBold:null,labelsValueDecimals:null,colorsRedStart:0.9*this.max,colorsRedColor:'#DC3912',colorsRedWidth:10,colorsYellowColor:'#FF9900',colorsYellowWidth:10,colorsGreenEnd:0.7*this.max,colorsGreenColor:'rgba(0,0,0,0)',colorsGreenWidth:10,colorsRanges:null,needleSize:null,needleTail:false,needleColors:['#D5604D','red','green','yellow'],needleType:'triangle',needleWidth:7,borderOuter:'#ccc',borderInner:'#f1f1f1',borderOutline:'black',borderGradient:false,centerpinColor:'blue',centerpinRadius:null,tickmarksSmall:25,tickmarksSmallColor:'black',tickmarksMedium:0,tickmarksMediumColor:'black',tickmarksLarge:5,tickmarksLargeColor:'black',adjustable:false,shadow:true,shadowColor:'gray',shadowOffsetx:0,shadowOffsety:0,shadowBlur:15,clearto:'rgba(0,0,0,0)'}
-if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
-var prop=this.properties;this.path=RGraph.pathObjectFunction;if(RGraph.Effects&&typeof RGraph.Effects.decorate==='function'){RGraph.Effects.decorate(this);}
-this.responsive=RGraph.responsive;this.set=function(name)
-{var value=typeof arguments[1]==='undefined'?null:arguments[1];if(arguments.length===1&&typeof arguments[0]==='object'){for(i in arguments[0]){if(typeof i==='string'){this.set(i,arguments[0][i]);}}
-return this;}
-prop[name]=value;return this;};this.get=function(name)
-{return prop[name];};this.draw=function()
-{RGraph.fireCustomEvent(this,'onbeforedraw');this.currentValue=this.value;this.marginLeft=prop.marginLeft;this.marginRight=prop.marginRight;this.marginTop=prop.marginTop;this.marginBottom=prop.marginBottom;this.centerx=((this.canvas.width-this.marginLeft-this.marginRight)/2)+this.marginLeft;this.centery=((this.canvas.height-this.marginTop-this.marginBottom)/2)+this.marginTop;this.radius=Math.min(((this.canvas.width-this.marginLeft-this.marginRight)/2),((this.canvas.height-this.marginTop-this.marginBottom)/2));this.startAngle=prop.anglesStart?prop.anglesStart:(RGraph.HALFPI/3)+RGraph.HALFPI;this.endAngle=prop.anglesEnd?prop.anglesEnd:RGraph.TWOPI+RGraph.HALFPI-(RGraph.HALFPI/3);this.coordsText=[];if(typeof prop.centerx=='number')this.centerx=prop.centerx;if(typeof prop.centery=='number')this.centery=prop.centery;if(typeof prop.radius=='number')this.radius=prop.radius;if(!this.colorsParsed){this.parseColors();this.colorsParsed=true;}
-this.centerpinRadius=0.16*this.radius;if(typeof prop.centerpinRadius=='number'){this.centerpinRadius=prop.centerpinRadius;}
-if(prop.contextmenu){RGraph.showContext(this);}
-this.drawBackGround();this.drawGradient();this.drawColorBands();this.drawSmallTickmarks();this.drawMediumTickmarks();this.drawLargeTickmarks();this.drawLabels();this.drawTopTitle();this.drawBottomTitle();if(typeof this.value=='object'){for(var i=0;i<this.value.length;++i){this.drawNeedle(this.value[i],prop.needleColors[i],i);}}else{this.drawNeedle(this.value,prop.needleColors[0],0);}
-this.drawCenterpin();if(prop.resizable){RGraph.allowResizing(this);}
-RGraph.installEventListeners(this);if(this.firstDraw){this.firstDraw=false;RGraph.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
-RGraph.fireCustomEvent(this,'ondraw');return this;};this.exec=function(func)
-{func(this);return this;};this.drawBackGround=function()
-{if(prop.shadow){RGraph.setShadow(this,prop.shadowColor,prop.shadowOffsetx,prop.shadowOffsety,prop.shadowBlur);}
-this.context.beginPath();this.context.fillStyle=prop.backgroundColor;this.context.arc(this.centerx,this.centery,this.radius,0,RGraph.TWOPI,0);this.context.fill();RGraph.noShadow(this);var grad=this.context.createRadialGradient(this.centerx+50,this.centery-50,0,this.centerx+50,this.centery-50,150);grad.addColorStop(0,'#eee');grad.addColorStop(1,'white');var borderWidth=prop.borderWidth;this.context.beginPath();this.context.fillStyle=prop.backgroundColor;this.context.arc(this.centerx,this.centery,this.radius,0,RGraph.TWOPI,0);this.context.fill();this.context.beginPath();this.context.fillStyle=prop.borderOuter;this.context.arc(this.centerx,this.centery,this.radius,0,RGraph.TWOPI,0);this.context.fill();this.context.beginPath();this.context.fillStyle=prop.borderInner;this.context.arc(this.centerx,this.centery,this.radius-borderWidth,0,RGraph.TWOPI,0);this.context.fill();this.context.beginPath();this.context.fillStyle=prop.backgroundColor;this.context.arc(this.centerx,this.centery,this.radius-borderWidth-4,0,RGraph.TWOPI,0);this.context.fill();this.context.beginPath();this.context.fillStyle=prop.backgroundColor;this.context.arc(this.centerx,this.centery,this.radius-borderWidth-4,0,RGraph.TWOPI,0);this.context.fill();if(prop.backgroundGradient){this.context.beginPath();this.context.fillStyle=RGraph.radialGradient({object:this,x1:this.centerx-this.radius,y1:this.centery-this.radius,r1:0,x2:this.centerx-(this.radius/2),y2:this.centery-(this.radius/2),r2:this.radius,colors:['rgba(255,255,255,0.2)','rgba(0,0,0,0.1)']});this.context.arc(this.centerx,this.centery,this.radius-borderWidth-4,0,RGraph.TWOPI,0);this.context.fill();}
-this.context.beginPath();this.context.strokeStyle=prop.borderOutline;this.context.arc(this.centerx,this.centery,this.radius,0,RGraph.TWOPI,0);this.context.stroke();};this.drawSmallTickmarks=function()
-{var numTicks=prop.tickmarksSmall;this.context.lineWidth=1;for(var i=0;i<=numTicks;++i){this.context.beginPath();this.context.strokeStyle=prop.tickmarksSmallColor;var a=(((this.endAngle-this.startAngle)/numTicks)*i)+this.startAngle;this.context.arc(this.centerx,this.centery,this.radius-prop.borderWidth-10,a,a+0.00001,0);this.context.arc(this.centerx,this.centery,this.radius-prop.borderWidth-10-5,a,a+0.00001,0);this.context.stroke();}};this.drawMediumTickmarks=function()
-{if(prop.tickmarksMedium){var numTicks=prop.tickmarksMedium;this.context.lineWidth=3;this.context.lineCap='round';this.context.strokeStyle=prop.tickmarksMediumColor;for(var i=0;i<=numTicks;++i){this.context.beginPath();var a=(((this.endAngle-this.startAngle)/numTicks)*i)+this.startAngle+(((this.endAngle-this.startAngle)/(2*numTicks)));if(a>this.startAngle&&a<this.endAngle){this.context.arc(this.centerx,this.centery,this.radius-prop.borderWidth-10,a,a+0.00001,0);this.context.arc(this.centerx,this.centery,this.radius-prop.borderWidth-10-6,a,a+0.00001,0);}
-this.context.stroke();}}};this.drawLargeTickmarks=function()
-{var numTicks=prop.tickmarksLarge;this.context.lineWidth=3;this.context.lineCap='round';for(var i=0;i<=numTicks;++i){this.context.beginPath();this.context.strokeStyle=prop.tickmarksLargeColor;var a=(((this.endAngle-this.startAngle)/numTicks)*i)+this.startAngle;this.context.arc(this.centerx,this.centery,this.radius-prop.borderWidth-10,a,a+0.00001,0);this.context.arc(this.centerx,this.centery,this.radius-prop.borderWidth-10-10,a,a+0.00001,0);this.context.stroke();}};this.drawCenterpin=function()
-{var offset=6;var grad=this.context.createRadialGradient(this.centerx+offset,this.centery-offset,0,this.centerx+offset,this.centery-offset,25);grad.addColorStop(0,'#ddf');grad.addColorStop(1,prop.centerpinColor);this.context.beginPath();this.context.fillStyle=grad;this.context.arc(this.centerx,this.centery,this.centerpinRadius,0,RGraph.TWOPI,0);this.context.fill();};this.drawLabels=function()
-{this.context.fillStyle=prop.textColor;var font=prop.textFont,size=prop.textSize,num=prop.labelsSpecific?(prop.labelsSpecific.length-1):prop.labelsCount,offsetx=prop.labelsOffsetx,offsety=prop.labelsOffsety,offseta=prop.labelsOffsetAngle;var textConf=RGraph.getTextConf({object:this,prefix:'labels'});this.context.beginPath();if(num){for(var i=0;i<=num;++i){var hyp=(this.radius-25-prop.borderWidth)-prop.labelsOffsetRadius;var a=(this.endAngle-this.startAngle)/num
-a=this.startAngle+(i*a);a-=RGraph.HALFPI;a+=offseta;var x=this.centerx-(Math.sin(a)*hyp);var y=this.centery+(Math.cos(a)*hyp);var hAlign=x>this.centerx?'right':'left';var vAlign=y>this.centery?'bottom':'top';if(a==RGraph.HALFPI){vAlign='center';}else if(a==RGraph.PI){hAlign='center';}else if(a==(RGraph.HALFPI+RGraph.PI)){vAlign='center';}
-if(prop.labelsCentered){hAlign='center';vAlign='center';}
-var value=(((this.max-this.min)*(i/num))+this.min);RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:x+offsetx,y:y+offsety,text:prop.labelsSpecific?prop.labelsSpecific[i]:RGraph.numberFormat({object:this,number:value.toFixed(prop.scaleDecimals),unitspre:prop.scaleUnitsPre,unitspost:prop.scaleUnitsPost,point:prop.scalePoint,thousand:prop.scaleThousand}),halign:hAlign,valign:vAlign,tag:prop.labelsSpecific?'labels.specific':'labels'});}}
-this.context.fill();if(prop.labelsValue){var x=this.centerx,y=this.centery+(prop.labelsValueYPos*this.radius),units_pre=typeof prop.labelsValueUnitsPre=='string'?prop.labelsValueUnitsPre:prop.scaleUnitsPre,units_post=typeof prop.labelsValueUnitsPost=='string'?prop.labelsValueUnitsPost:prop.scaleUnitsPost,bounding=prop.labelsValueBounding,boundingFill=prop.labelsValueBoundingFill,boundingStroke=prop.labelsValueBoundingStroke,decimals=typeof prop.labelsValueDecimals==='number'?prop.labelsValueDecimals:prop.scaleDecimals;var textConf=RGraph.getTextConf({object:this,prefix:'labelsValue'});if(typeof this.value==='number'){var value=parseFloat(prop.valueTextActual?this.valueOriginal:this.value);var text=RGraph.numberFormat({object:this,number:value.toFixed(decimals),unitspre:units_pre,unitspost:units_post});}else{var text=[];for(var i=0;i<this.value.length;++i){text[i]=RGraph.numberFormat({object:this,number:this.value[i].toFixed(decimals),unitspre:units_pre,unitspost:units_post});}
-text=text.join(', ');}
-RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:x,y:y,text:text,halign:'center',valign:'center',bounding:bounding,'bounding.fill':boundingFill,'bounding.stroke':boundingStroke,tag:'value.text'});}};this.drawTopTitle=function()
-{var x=this.centerx;var y=this.centery-25;if(typeof prop.titleTopPos=='number'){y=this.centery-(this.radius*prop.titleTopPos);}
-var textConf=RGraph.getTextConf({object:this,prefix:'titleTop'});if(prop.titleTop){this.context.fillStyle=prop.titleTopColor;RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:x,y:y,text:String(prop.titleTop),halign:'center',valign:'bottom',tag:'title.top'});}};this.drawBottomTitle=function()
-{var x=this.centerx;var y=this.centery+this.centerpinRadius+10;if(typeof prop.titleBottomPos=='number'){y=this.centery+(this.radius*prop.titleBottomPos);}
-if(prop.titleBottom){this.context.fillStyle=prop.titleBottomColor;var textConf=RGraph.getTextConf({object:this,prefix:'titleBottom'});RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:x,y:y,text:String(prop.titleBottom),halign:'center',valign:'top',tag:'title.bottom'});}};this.drawNeedle=function(value,color,index)
-{var type=prop.needleType;this.context.lineWidth=0.5;this.context.strokeStyle='gray';this.context.fillStyle=color;var angle=(this.endAngle-this.startAngle)*((value-this.min)/(this.max-this.min));angle+=this.startAngle;if(typeof prop.needleSize=='object'&&prop.needleSize&&typeof prop.needleSize[index]=='number'){var size=prop.needleSize[index];}else if(typeof prop.needleSize=='number'){var size=prop.needleSize;}else{var size=this.radius-25-prop.borderWidth;}
-if(type=='line'){this.context.beginPath();this.context.lineWidth=prop.needleWidth;this.context.strokeStyle=color;this.context.arc(this.centerx,this.centery,size,angle,angle+0.0001,false);this.context.lineTo(this.centerx,this.centery);if(prop.needleTail){this.context.arc(this.centerx,this.centery,this.radius*0.2,angle+RGraph.PI,angle+0.00001+RGraph.PI,false);}
-this.context.lineTo(this.centerx,this.centery);this.context.stroke();}else{this.context.beginPath();this.context.arc(this.centerx,this.centery,size,angle,angle+0.00001,false);this.context.arc(this.centerx,this.centery,this.centerpinRadius*0.5,angle+RGraph.HALFPI,angle+0.00001+RGraph.HALFPI,false);if(prop.needleTail){this.context.arc(this.centerx,this.centery,this.radius*0.2,angle+RGraph.PI,angle+0.00001+RGraph.PI,false);}
-this.context.arc(this.centerx,this.centery,this.centerpinRadius*0.5,angle-RGraph.HALFPI,angle-0.00001-RGraph.HALFPI,false);this.context.stroke();this.context.fill();this.angle=angle;}};this.drawColorBands=function()
-{if(RGraph.isArray(prop.colorsRanges)){var ranges=prop.colorsRanges;for(var i=0;i<ranges.length;++i){this.context.fillStyle=ranges[i][2];this.context.lineWidth=0;this.context.beginPath();this.context.arc(this.centerx,this.centery,this.radius-10-prop.borderWidth,(((ranges[i][0]-this.min)/(this.max-this.min))*(this.endAngle-this.startAngle))+this.startAngle,(((ranges[i][1]-this.min)/(this.max-this.min))*(this.endAngle-this.startAngle))+this.startAngle,false);this.context.arc(this.centerx,this.centery,this.radius-10-prop.borderWidth-(typeof ranges[i][3]==='number'?ranges[i][3]:10),(((ranges[i][1]-this.min)/(this.max-this.min))*(this.endAngle-this.startAngle))+this.startAngle,(((ranges[i][0]-this.min)/(this.max-this.min))*(this.endAngle-this.startAngle))+this.startAngle,true);this.context.closePath();this.context.fill();}
-return;}
-this.context.strokeStyle=prop.colorsGreenColor;this.context.fillStyle=prop.colorsGreenColor;var greenStart=this.startAngle;var greenEnd=this.startAngle+(this.endAngle-this.startAngle)*((prop.colorsGreenEnd-this.min)/(this.max-this.min))
-this.context.beginPath();this.context.arc(this.centerx,this.centery,this.radius-10-prop.borderWidth,greenStart,greenEnd,false);this.context.arc(this.centerx,this.centery,this.radius-(10+prop.colorsGreenWidth)-prop.borderWidth,greenEnd,greenStart,true);this.context.fill();this.context.strokeStyle=prop.colorsYellowColor;this.context.fillStyle=prop.colorsYellowColor;var yellowStart=greenEnd;var yellowEnd=this.startAngle+(this.endAngle-this.startAngle)*((prop.colorsRedStart-this.min)/(this.max-this.min))
-this.context.beginPath();this.context.arc(this.centerx,this.centery,this.radius-10-prop.borderWidth,yellowStart,yellowEnd,false);this.context.arc(this.centerx,this.centery,this.radius-(10+prop.colorsYellowWidth)-prop.borderWidth,yellowEnd,yellowStart,true);this.context.fill();this.context.strokeStyle=prop.colorsRedColor;this.context.fillStyle=prop.colorsRedColor;var redStart=yellowEnd;var redEnd=this.startAngle+(this.endAngle-this.startAngle)*((this.max-this.min)/(this.max-this.min))
-this.context.beginPath();this.context.arc(this.centerx,this.centery,this.radius-10-prop.borderWidth,redStart,redEnd,false);this.context.arc(this.centerx,this.centery,this.radius-(10+prop.colorsRedWidth)-prop.borderWidth,redEnd,redStart,true);this.context.fill();};this.getShape=function(e){};this.getValue=function(e)
-{var mouseXY=RGraph.getMouseXY(e);var mouseX=mouseXY[0];var mouseY=mouseXY[1];var angle=RGraph.getAngleByXY(this.centerx,this.centery,mouseX,mouseY);if(angle>=0&&angle<=RGraph.HALFPI){angle+=RGraph.TWOPI;}
-var value=((angle-this.startAngle)/(this.endAngle-this.startAngle))*(this.max-this.min);value=value+this.min;if(value<this.min){value=this.min}
-if(value>this.max){value=this.max}
-return value;};this.getObjectByXY=function(e)
-{var mouseXY=RGraph.getMouseXY(e);if(mouseXY[0]>(this.centerx-this.radius)&&mouseXY[0]<(this.centerx+this.radius)&&mouseXY[1]>(this.centery-this.radius)&&mouseXY[1]<(this.centery+this.radius)&&RGraph.getHypLength(this.centerx,this.centery,mouseXY[0],mouseXY[1])<=this.radius){return this;}};this.drawGradient=function()
-{if(prop.borderGradient){this.context.beginPath();var grad=this.context.createRadialGradient(this.centerx,this.centery,this.radius,this.centerx,this.centery,this.radius-15);grad.addColorStop(0,'gray');grad.addColorStop(1,'white');this.context.fillStyle=grad;this.context.arc(this.centerx,this.centery,this.radius,0,RGraph.TWOPI,false)
-this.context.arc(this.centerx,this.centery,this.radius-15,RGraph.TWOPI,0,true)
-this.context.fill();}};this.adjusting_mousemove=function(e)
-{if(prop.adjustable&&RGraph.Registry.get('adjusting')&&RGraph.Registry.get('adjusting').uid==this.uid){this.value=this.getValue(e);RGraph.redrawCanvas(this.canvas);RGraph.fireCustomEvent(this,'onadjust');}};this.getAngle=function(value)
-{if(value>this.max||value<this.min){return null;}
-var angle=(((value-this.min)/(this.max-this.min))*(this.endAngle-this.startAngle))+this.startAngle;return angle;};this.parseColors=function()
-{if(this.original_colors.length===0){this.original_colors.backgroundColor=RGraph.arrayClone(prop.backgroundColor);this.original_colors.colorsRedColor=RGraph.arrayClone(prop.colorsRedColor);this.original_colors.colorsYellowColor=RGraph.arrayClone(prop.colorsYellowColor);this.original_colors.colorsGreenColor=RGraph.arrayClone(prop.colorsGreenColor);this.original_colors.borderInner=RGraph.arrayClone(prop.borderInner);this.original_colors.borderOuter=RGraph.arrayClone(prop.borderOuter);this.original_colors.colorsRanges=RGraph.arrayClone(prop.colorsRanges);this.original_colors.needleColors=RGraph.arrayClone(prop.needleColors);}
-prop.backgroundColor=this.parseSingleColorForGradient(prop.backgroundColor);prop.colorsRedColor=this.parseSingleColorForGradient(prop.colorsRedColor);prop.colorsYellowColor=this.parseSingleColorForGradient(prop.colorsYellowColor);prop.colorsGreenColor=this.parseSingleColorForGradient(prop.colorsGreenColor);prop.borderInner=this.parseSingleColorForGradient(prop.borderInner);prop.borderOuter=this.parseSingleColorForGradient(prop.borderOuter);if(prop.colorsRanges){var ranges=prop.colorsRanges;for(var i=0;i<ranges.length;++i){ranges[i][2]=this.parseSingleColorForGradient(ranges[i][2],this.radius-30);}}
-if(prop.needleColors){var colors=prop.needleColors;for(var i=0;i<colors.length;++i){colors[i]=this.parseSingleColorForGradient(colors[i]);}}};this.reset=function()
-{};this.parseSingleColorForGradient=function(color)
-{var radiusStart=arguments[1]||0;if(!color||typeof color!='string'){return color;}
-if(color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
-var parts=RegExp.$1.split(':');var grad=this.context.createRadialGradient(this.centerx,this.centery,radiusStart,this.centerx,this.centery,this.radius);var diff=1/(parts.length-1);grad.addColorStop(0,RGraph.trim(parts[0]));for(var j=1;j<parts.length;++j){grad.addColorStop(j*diff,RGraph.trim(parts[j]));}}
-return grad?grad:color;};this.on=function(type,func)
-{if(type.substr(0,2)!=='on'){type='on'+type;}
-if(typeof this[type]!=='function'){this[type]=func;}else{RGraph.addCustomEventListener(this,type,func);}
-return this;};this.firstDrawFunc=function()
-{};this.grow=function()
-{var obj=this,opt=arguments[0]?arguments[0]:{},callback=arguments[1]?arguments[1]:function(){},frames=opt.frames||30,frame=0;if(typeof this.value==='string'){this.value=RGraph.stringsToNumbers(this.value);}
-if(typeof this.value==='number'){var origValue=Number(this.currentValue);if(this.currentValue==null){this.currentValue=this.min;origValue=this.min;}
-var newValue=this.value,diff=newValue-origValue;var iterator=function()
-{obj.value=((frame/frames)*diff)+origValue;if(obj.value>obj.max)obj.value=obj.max;if(obj.value<obj.min)obj.value=obj.min;RGraph.redrawCanvas(obj.canvas);if(frame++<frames){RGraph.Effects.updateCanvas(iterator);}else{callback(obj);}};iterator();}else{if(this.currentValue==null){this.currentValue=[];for(var i=0;i<this.value.length;++i){this.currentValue[i]=this.min;}
-origValue=RGraph.arrayClone(this.currentValue);}
-var origValue=RGraph.arrayClone(this.currentValue);var newValue=RGraph.arrayClone(this.value);var diff=[];for(var i=0,len=newValue.length;i<len;++i){diff[i]=newValue[i]-Number(this.currentValue[i]);}
-var iterator=function()
-{frame++;for(var i=0,len=obj.value.length;i<len;++i){obj.value[i]=((frame/frames)*diff[i])+origValue[i];if(obj.value[i]>obj.max)obj.value[i]=obj.max;if(obj.value[i]<obj.min)obj.value[i]=obj.min;}
-RGraph.redrawCanvas(obj.canvas);if(frame<frames){RGraph.Effects.updateCanvas(iterator);}else{callback(obj);}};iterator();}
-return this;};RGraph.register(this);RGraph.parseObjectStyleConfig(this,conf.options);};
\ No newline at end of file
diff --git a/web/js/RGraph.vprogress.js b/web/js/RGraph.vprogress.js
deleted file mode 100644
index cdb8cda346..0000000000
--- a/web/js/RGraph.vprogress.js
+++ /dev/null
@@ -1,79 +0,0 @@
-
-RGraph=window.RGraph||{isrgraph:true,isRGraph:true,rgraph:true};RGraph.VProgress=function(conf)
-{this.id=conf.id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.canvas.__object__=this;this.min=RGraph.stringsToNumbers(conf.min);this.max=RGraph.stringsToNumbers(conf.max);this.value=RGraph.stringsToNumbers(conf.value);this.type='vprogress';this.coords=[];this.isRGraph=true;this.isrgraph=true;this.rgraph=true;this.currentValue=null;this.uid=RGraph.createUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.colorsParsed=false;this.coordsText=[];this.original_colors=[];this.firstDraw=true;this.properties={colors:['#0c0','red','blue','yellow','pink','cyan','black','white','gray'],colorsStrokeInner:'#999',colorsStrokeOuter:'#999',tickmarksOuter:true,tickmarksInner:false,tickmarksOuterCount:0,tickmarksInnerCount:0,tickmarksOuterColor:'#999',tickmarksInnerColor:'#999',marginLeft:35,marginRight:35,marginTop:35,marginBottom:35,marginInner:0,backgroundColor:'Gradient(#ccc:#eee:#efefef)',shadow:false,shadowColor:'rgba(0,0,0,0.5)',shadowBlur:3,shadowOffsetx:3,shadowOffsety:3,title:'',titleBold:null,titleItalic:null,titleFont:null,titleSize:null,titleColor:null,titleSide:null,titleSideFont:null,titleSideSize:null,titleSideColor:null,titleSideBold:null,titleSideItalic:null,textSize:12,textColor:'black',textFont:'Arial, Verdana, sans-serif',textBold:false,textItalic:false,textAccessible:true,textAccessibleOverflow:'visible',textAccessiblePointerevents:false,contextmenu:null,scaleDecimals:0,scaleThousand:',',scalePoint:'.',scaleUnitsPre:'',scaleUnitsPost:'',tooltips:null,tooltipsEffect:'fade',tooltipsCssClass:'RGraph_tooltip',tooltipsCss:null,tooltipsHighlight:true,tooltipsEvent:'onclick',tooltipsFormattedThousand:',',tooltipsFormattedPoint:'.',tooltipsFormattedDecimals:0,tooltipsFormattedUnitsPre:'',tooltipsFormattedUnitsPost:'',tooltipsFormattedKeyColors:null,tooltipsFormattedKeyColorsShape:'square',tooltipsFormattedKeyLabels:[],highlightLinewidth:1,highlightStroke:'rgba(0,0,0,0)',highlightFill:'rgba(255,255,255,0.7)',annotatable:false,annotatableColor:'black',arrows:false,labelsInner:false,labelsInnerFont:null,labelsInnerSize:null,labelsInnerColor:null,labelsInnerBold:null,labelsInnerItalic:null,labelsInnerBackgroundFill:'rgba(255,255,255,0.75)',labelsInnerBorder:true,labelsInnerBorderLinewidth:1,labelsInnerBorderColor:'#ccc',labelsInnerDecimals:0,labelsInnerUnitsPre:'',labelsInnerUnitsPost:'',labelsInnerScaleThousand:null,labelsInnerScalePoint:null,labelsInnerSpecific:null,labelsCount:10,labelsPosition:'right',labelsOffsetx:0,labelsOffsety:0,labelsFont:null,labelsSize:null,labelsColor:null,labelsBold:null,labelsItalic:null,labelsSpecific:null,adjustable:false,key:null,keyBackground:'white',keyPosition:'graph',keyHalign:'right',keyShadow:false,keyShadowColor:'#666',keyShadowBlur:3,keyShadowOffsetx:2,keyShadowOffsety:2,keyPositionGutterBoxed:false,keyPositionX:null,keyPositionY:null,keyColorShape:'square',keyRounded:true,keyLinewidth:1,keyColors:null,keyInteractive:false,keyInteractiveHighlightChartStroke:'#000',keyInteractiveHighlightChartFill:'rgba(255,255,255,0.7)',keyInteractiveHighlightLabel:'rgba(255,0,0,0.2)',keyLabelsColor:null,keyLabelsFont:null,keyLabelsSize:null,keyLabelsBold:null,keyLabelsItalic:null,keyLabelsOffsetx:0,keyLabelsOffsety:0,borderInner:true,bevelled:false,clearto:'rgba(0,0,0,0)'}
-if(!this.canvas){alert('[PROGRESS] No canvas support');return;}
-var linear_data=RGraph.arrayLinearize(this.value);for(var i=0;i<linear_data.length;++i){this['$'+i]={};}
-if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
-var prop=this.properties;this.path=RGraph.pathObjectFunction;if(RGraph.Effects&&typeof RGraph.Effects.decorate==='function'){RGraph.Effects.decorate(this);}
-this.responsive=RGraph.responsive;this.set=function(name)
-{var value=typeof arguments[1]==='undefined'?null:arguments[1];if(arguments.length===1&&typeof arguments[0]==='object'){for(i in arguments[0]){if(typeof i==='string'){this.set(i,arguments[0][i]);}}
-return this;}
-prop[name]=value;return this;};this.get=function(name)
-{return prop[name];};this.draw=function()
-{RGraph.fireCustomEvent(this,'onbeforedraw');if(!this.colorsParsed){this.parseColors();this.colorsParsed=true;}
-this.currentValue=this.value;this.marginLeft=prop.marginLeft;this.marginRight=prop.marginRight;this.marginTop=prop.marginTop;this.marginBottom=prop.marginBottom;this.width=this.canvas.width-this.marginLeft-this.marginRight;this.height=this.canvas.height-this.marginTop-this.marginBottom;this.coords=[];this.coordsText=[];this.drawbar();this.drawTickMarks();this.drawLabels();this.drawTitles();if(prop.bevelled){this.drawBevel();}
-if(prop.contextmenu){RGraph.showContext(this);}
-RGraph.installEventListeners(this);if(prop.key&&prop.key.length){RGraph.drawKey(this,prop.key,prop.colors);}
-if(prop.resizable){RGraph.allowResizing(this);}
-this.allowAdjusting();if(this.firstDraw){this.firstDraw=false;RGraph.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
-RGraph.fireCustomEvent(this,'ondraw');return this;};this.drawbar=function()
-{this.scale2=RGraph.getScale({object:this,options:{'scale.max':this.max,'scale.min':this.min,'scale.strict':true,'scale.thousand':prop.scaleThousand,'scale.point':prop.scalePoint,'scale.decimals':prop.scaleDecimals,'scale.labels.count':prop.labelsCount,'scale.round':prop.scaleRound,'scale.units.pre':prop.scaleUnitsPre,'scale.units.post':prop.scaleUnitsPost}});if(prop.shadow){RGraph.setShadow(this,prop.shadowColor,prop.shadowOffsetx,prop.shadowOffsety,prop.shadowBlur);}
-this.context.fillStyle=prop.backgroundColor;this.context.strokeStyle=prop.colorsStrokeOuter;this.context.strokeRect(this.marginLeft,this.marginTop,this.width,this.height);this.context.fillRect(this.marginLeft,this.marginTop,this.width,this.height);RGraph.noShadow(this);this.context.strokeStyle=prop.colorsStrokeOuter;this.context.fillStyle=prop.colors[0];var margin=prop.marginInner;var barHeight=(this.canvas.height-this.marginTop-this.marginBottom)*((RGraph.arraySum(this.value)-this.min)/(this.max-this.min));if(typeof this.value==='number'){this.context.lineWidth=1;this.context.strokeStyle=prop.colorsStrokeInner;if(prop.borderInner){this.drawCurvedBar({x:this.marginLeft+margin,y:this.marginTop+(this.height-barHeight),width:this.width-margin-margin,height:barHeight,stroke:prop.colorsStrokeInner});}
-this.drawCurvedBar({x:this.marginLeft+margin,y:this.marginTop+(this.height-barHeight),width:this.width-margin-margin,height:barHeight,fill:prop.colors[0]});}else if(typeof this.value=='object'){this.context.beginPath();this.context.strokeStyle=prop.colorsStrokeInner;var startPoint=this.canvas.height-this.marginBottom;for(var i=0,len=this.value.length;i<len;++i){var segmentHeight=((this.value[i]-this.min)/(this.max-this.min))*(this.canvas.height-this.marginBottom-this.marginTop);this.context.beginPath();this.context.fillStyle=prop.colors[i];if(prop.borderInner){this.drawCurvedBar({x:this.marginLeft+margin,y:startPoint-segmentHeight,width:this.width-margin-margin,height:segmentHeight,stroke:this.context.strokeStyle});}
-this.drawCurvedBar({x:this.marginLeft+margin,y:startPoint-segmentHeight,width:this.width-margin-margin,height:segmentHeight,fill:this.context.fillStyle});this.coords.push([this.marginLeft+margin,startPoint-segmentHeight,this.width-margin-margin,segmentHeight]);startPoint-=segmentHeight;}
-this.context.fill();}
-if(prop.tickmarksInnerCount>0){var spacing=(this.canvas.height-this.marginTop-this.marginBottom)/prop.tickmarksInnerCount;this.context.lineWidth=1;this.context.strokeStyle=prop.colorsStrokeInner;this.context.beginPath();for(var y=this.marginTop;y<this.canvas.height-this.marginBottom;y+=spacing){this.context.moveTo(this.marginLeft,Math.round(y));this.context.lineTo(this.marginLeft+3,Math.round(y));this.context.moveTo(this.canvas.width-this.marginRight,Math.round(y));this.context.lineTo(this.canvas.width-this.marginRight-3,Math.round(y));}
-this.context.stroke();}
-this.context.beginPath();this.context.strokeStyle=prop.colorsStrokeInner;if(typeof this.value=='number'){if(prop.borderInner){this.drawCurvedBar({x:this.marginLeft+margin,y:this.marginTop+this.height-barHeight,width:this.width-margin-margin,height:barHeight});}
-this.drawCurvedBar({x:this.marginLeft+margin,y:this.marginTop+this.height-barHeight,width:this.width-margin-margin,height:barHeight});this.coords.push([this.marginLeft+margin,this.marginTop+this.height-barHeight,this.width-margin-margin,barHeight]);}
-if(prop.arrows){var x=this.marginLeft-4;var y=this.canvas.height-this.marginBottom-barHeight;this.context.lineWidth=1;this.context.fillStyle='black';this.context.strokeStyle='black';this.context.beginPath();this.context.moveTo(x,y);this.context.lineTo(x-4,y-2);this.context.lineTo(x-4,y+2);this.context.closePath();this.context.stroke();this.context.fill();x+=this.width+8;this.context.beginPath();this.context.moveTo(x,y);this.context.lineTo(x+4,y-2);this.context.lineTo(x+4,y+2);this.context.closePath();this.context.stroke();this.context.fill();this.context.beginPath();}
-if(prop.labelsInner){var textConf=RGraph.getTextConf({object:this,prefix:'labelsInner'});RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:((this.canvas.width-this.marginLeft-this.marginRight)/2)+this.marginLeft,y:this.coords[this.coords.length-1][1]-5,text:typeof prop.labelsInnerSpecific==='string'?prop.labelsInnerSpecific:RGraph.numberFormat({object:this,number:RGraph.arraySum(this.value).toFixed(typeof prop.labelsInnerDecimals==='number'?prop.labelsInnerDecimals:prop.scaleDecimals),unitspre:typeof prop.labelsInnerUnitsPre==='string'?prop.labelsInnerUnitsPre:prop.scaleUnitsPre,unitspost:typeof prop.labelsInnerUnitsPost==='string'?prop.labelsInnerUnitsPost:prop.scaleUnitsPost,point:typeof prop.labelsInnerPoint==='string'?prop.labelsInnerPoint:prop.scalePoint,thousand:typeof prop.labelsInnerThousand==='string'?prop.labelsInnerThousand:prop.scaleThousand}),valign:'bottom',halign:'center',bounding:true,boundingFill:prop.labelsInnerBackgroundFill,boundingStroke:prop.labelsInnerBorder?prop.labelsInnerBorderColor:'rgba(0,0,0,0)',boundingLinewidth:prop.labelsInnerBorderLinewidth,tag:'labels.inner'});}};this.drawTickMarks=function()
-{this.context.strokeStyle=prop.colorsStrokeOuter;if(prop.tickmarksOuter){this.context.beginPath();for(var i=0;i<=prop.tickmarksOuterCount;i++){var startX=prop.labelsPosition==='left'?this.marginLeft:this.canvas.width-prop.marginRight,endX=prop.labelsPosition==='left'?startX-4:startX+4,yPos=(this.height*(i/prop.tickmarksOuterCount))+this.marginTop;this.context.moveTo(startX,Math.round(yPos));this.context.lineTo(endX,Math.round(yPos));}
-this.context.stroke();}};this.drawLabels=function()
-{if(!RGraph.isNull(prop.labelsSpecific)){return this.drawSpecificLabels();}
-this.context.fillStyle=prop.textColor;var position=prop.labelsPosition.toLowerCase();var xAlignment=position==='left'?'right':'left';var yAlignment='center';var count=prop.labelsCount;var units_pre=prop.scaleUnitsPre;var units_post=prop.scaleUnitsPost;var text_size=prop.textSize;var text_font=prop.textFont;var decimals=prop.scaleDecimals;var offsetx=prop.labelsOffsetx;var offsety=prop.labelsOffsety;if(prop.tickmarksOuter){var textConf=RGraph.getTextConf({object:this,prefix:'labels'});for(var i=0;i<count;++i){RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:position=='left'?(this.marginLeft-7+offsetx):(this.canvas.width-this.marginRight+7)+offsetx,y:(((this.canvas.height-this.marginTop-this.marginBottom)/count)*i)+this.marginTop+offsety,text:this.scale2.labels[this.scale2.labels.length-(i+1)],valign:yAlignment,halign:xAlignment,tag:'scale'});}
-if(this.min==0){RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:position=='left'?(this.marginLeft-5+offsetx):(this.canvas.width-this.marginRight+5+offsetx),y:this.canvas.height-this.marginBottom+offsety,text:RGraph.numberFormat({object:this,number:this.min.toFixed(this.min===0?0:decimals),unitspre:units_pre,unitspost:units_post,point:prop.scalePoint,thousand:prop.scaleThousand,}),valign:yAlignment,halign:xAlignment,tag:'scale'});}
-if(this.min!=0){RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:position=='left'?(this.marginLeft-5+offsetx):(this.canvas.width-this.marginRight+5+offsetx),y:this.canvas.height-this.marginBottom+offsety,text:RGraph.numberFormat({object:this,number:this.min.toFixed(decimals),unitspre:units_pre,unitspost:units_post}),valign:yAlignment,halign:xAlignment,tag:'scale'});}}};this.drawTitles=function()
-{if(prop.title){var textConf=RGraph.getTextConf({object:this,prefix:'title'});this.context.fillStyle=prop.titleColor;RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:this.marginLeft+((this.canvas.width-this.marginLeft-this.marginRight)/2),y:this.marginTop-5,text:prop.title,valign:'bottom',halign:'center',tag:'title'});}
-if(prop.titleSide){this.context.fillStyle=prop.titleSideColor;var textConf=RGraph.getTextConf({object:this,prefix:'titleSide'});RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:prop.labelsPosition=='right'?this.marginLeft-10:(this.canvas.width-this.marginRight)+10,y:this.marginTop+(this.height/2),text:prop.titleSide,valign:'bottom',halign:'center',accessible:false,angle:prop.labelsPosition=='right'?270:90,tag:'title.side'});}};this.getShape=function(e)
-{var mouseXY=RGraph.getMouseXY(e),mouseX=mouseXY[0],mouseY=mouseXY[1]
-for(var i=0,len=this.coords.length;i<len;i++){var x=this.coords[i][0],y=this.coords[i][1],w=this.coords[i][2],h=this.coords[i][3],idx=i;this.context.beginPath();this.drawCurvedBar({x:x,y:y,width:w,height:h});if(this.context.isPointInPath(mouseX,mouseY)){var tooltip=RGraph.parseTooltipText?RGraph.parseTooltipText(prop.tooltips,i):null;return{object:this,x:x,y:y,width:w,height:h,index:i,dataset:0,sequentialIndex:i,tooltip:typeof tooltip==='string'?tooltip:null};}}};this.getValue=function(e)
-{var mouseCoords=RGraph.getMouseXY(e);var mouseX=mouseCoords[0];var mouseY=mouseCoords[1];var value=(this.height-(mouseY-this.marginTop))/this.height;value*=this.max-this.min;value+=this.min;if(value>this.max)value=this.max;if(value<this.min)value=this.min;return value;};this.highlight=function(shape)
-{if(typeof prop.highlightStyle==='function'){(prop.highlightStyle)(shape);}else if(typeof prop.highlightStyle==='string'&&prop.highlightStyle==='invert'){for(var i=0;i<this.coords.length;++i){if(i!==shape.sequentialIndex){this.path('b lw % r % % % % s % f %',prop.highlightLinewidth,this.coords[i][0],this.coords[i][1],this.coords[i][2],this.coords[i][3],prop.highlightStroke,prop.highlightFill);}}}else{var last=shape.index===this.coords.length-1;this.path('lw %',prop.highlightLinewidth);this.drawCurvedBar({x:shape.x,y:shape.y,width:shape.width,height:shape.height,stroke:prop.highlightStroke,fill:prop.highlightFill});this.path('lw %',1);}};this.getObjectByXY=function(e)
-{var mouseXY=RGraph.getMouseXY(e);if(mouseXY[0]>this.marginLeft&&mouseXY[0]<(this.canvas.width-this.marginRight)&&mouseXY[1]>=this.marginTop&&mouseXY[1]<=(this.canvas.height-this.marginBottom)){return this;}};this.allowAdjusting=function(){return;};this.adjusting_mousemove=function(e)
-{if(prop.adjustable&&RGraph.Registry.get('adjusting')&&RGraph.Registry.get('adjusting').uid==this.uid){var mouseXY=RGraph.getMouseXY(e);var value=this.getValue(e);if(typeof value==='number'){RGraph.fireCustomEvent(this,'onadjust');this.value=Number(value.toFixed(prop.scaleDecimals));RGraph.redrawCanvas(this.canvas);}}};this.drawSpecificLabels=function()
-{var labels=prop.labelsSpecific;if(labels){var halign=prop.labelsPosition==='right'?'left':'right';var step=this.height/(labels.length-1);this.context.beginPath();this.context.fillStyle=prop.textColor;for(var i=0;i<labels.length;++i){var textConf=RGraph.getTextConf({object:this,prefix:'labels'});RGraph.text({object:this,font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:prop.labelsPosition=='right'?this.canvas.width-this.marginRight+7:this.marginLeft-7,y:(this.height+this.marginTop)-(step*i),text:labels[i],valign:'center',halign:halign,tag:'labels.specific'});}
-this.context.fill();}};this.getYCoord=function(value)
-{if(value>this.max||value<this.min){return null;}
-var barHeight=this.canvas.height-prop.marginTop-prop.marginBottom;var coord=((value-this.min)/(this.max-this.min))*barHeight;coord=this.canvas.height-coord-prop.marginBottom;return coord;};this.overChartArea=function(e)
-{var mouseXY=RGraph.getMouseXY(e);var mouseX=mouseXY[0];var mouseY=mouseXY[1];if(mouseX>=this.marginLeft&&mouseX<=(this.canvas.width-this.marginRight)&&mouseY>=this.marginTop&&mouseY<=(this.canvas.height-this.marginBottom)){return true;}
-return false;};this.parseColors=function()
-{if(this.original_colors.length===0){this.original_colors.colors=RGraph.arrayClone(prop.colors);this.original_colors.tickmarksInnerColor=RGraph.arrayClone(prop.tickmarksInnerColor);this.original_colors.tickmarksOuterColor=RGraph.arrayClone(prop.tickmarksOuterColor);this.original_colors.colorsStrokeInner=RGraph.arrayClone(prop.colorsStrokeInner);this.original_colors.colorsStrokeOuter=RGraph.arrayClone(prop.colorsStrokeOuter);this.original_colors.highlightFill=RGraph.arrayClone(prop.highlightFill);this.original_colors.highlightStroke=RGraph.arrayClone(prop.highlightStroke);this.original_colors.backgroundColor=RGraph.arrayClone(prop.backgroundColor);}
-var colors=prop.colors;for(var i=0,len=colors.length;i<len;++i){colors[i]=this.parseSingleColorForGradient(colors[i]);}
-prop.tickmarksInnerColor=this.parseSingleColorForGradient(prop.tickmarksInnerColor);prop.tickmarksOuterColor=this.parseSingleColorForGradient(prop.tickmarksOuterColor);prop.colorsStrokeInner=this.parseSingleColorForGradient(prop.colorsStrokeInner);prop.colorsStrokeOuter=this.parseSingleColorForGradient(prop.colorsStrokeOuter);prop.highlightFill=this.parseSingleColorForGradient(prop.highlightFill);prop.highlightStroke=this.parseSingleColorForGradient(prop.highlightStroke);prop.backgroundColor=this.parseSingleColorForGradient(prop.backgroundColor);};this.reset=function()
-{};this.parseSingleColorForGradient=function(color)
-{if(!color||typeof color!='string'){return color;}
-if(color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
-var parts=RegExp.$1.split(':');var grad=this.context.createLinearGradient(0,this.canvas.height-prop.marginBottom,0,prop.marginTop);var diff=1/(parts.length-1);grad.addColorStop(0,RGraph.trim(parts[0]));for(var j=1,len=parts.length;j<len;++j){grad.addColorStop(j*diff,RGraph.trim(parts[j]));}
-return grad?grad:color;}
-return grad?grad:color;};this.drawBevel=function()
-{for(var i=0,height=0;i<this.coords.length;++i){height+=this.coords[i][3];}
-this.context.save();this.context.beginPath();this.context.rect(this.coords[0][0],this.coords[this.coords.length-1][1]-1,this.coords[0][2],height);this.context.clip();this.context.save();this.context.beginPath();this.drawCurvedBar({x:this.coords[0][0],y:this.coords[this.coords.length-1][1]-1,width:this.coords[0][2],height:height});this.context.clip();this.context.beginPath();this.context.shadowColor='black';this.context.shadowOffsetX=0;this.context.shadowOffsetY=0;this.context.shadowBlur=15;this.context.lineWidth=2;this.drawCurvedBar({x:this.coords[0][0]-1,y:this.coords[this.coords.length-1][1]-1,width:this.coords[0][2]+2,height:height+2+100});this.context.stroke();this.context.restore();this.context.restore();};this.interactiveKeyHighlight=function(index)
-{var coords=this.coords[index];this.context.beginPath();this.context.strokeStyle=prop.keyInteractiveHighlightChartStroke;this.context.lineWidth=2;this.context.fillStyle=prop.keyInteractiveHighlightChartFill;this.context.rect(coords[0],coords[1],coords[2],coords[3]);this.context.fill();this.context.stroke();this.context.lineWidth=1;};this.on=function(type,func)
-{if(type.substr(0,2)!=='on'){type='on'+type;}
-if(typeof this[type]!=='function'){this[type]=func;}else{RGraph.addCustomEventListener(this,type,func);}
-return this;};this.drawCurvedBar=function(opt)
-{this.path('b r % % % %',opt.x,opt.y,opt.width,opt.height);if(opt.stroke){this.context.strokeStyle=opt.stroke;this.context.stroke();}
-if(opt.fill){this.context.fillStyle=opt.fill;this.context.fill();}};this.firstDrawFunc=function()
-{};this.exec=function(func)
-{func(this);return this;};this.grow=function()
-{var obj=this;var canvas=this.canvas;var context=this.context;var initial_value=this.currentValue;var opt=arguments[0]||{};var numFrames=opt.frames||30;var frame=0
-var callback=arguments[1]||function(){};if(typeof this.value==='object'){if(RGraph.isNull(this.currentValue)){this.currentValue=[];for(var i=0;i<this.value.length;++i){this.currentValue[i]=0;}}
-var diff=[];var increment=[];for(var i=0;i<this.value.length;++i){diff[i]=this.value[i]-Number(this.currentValue[i]);increment[i]=diff[i]/numFrames;}
-if(initial_value==null){initial_value=[];for(var i=0;i<this.value.length;++i){initial_value[i]=0;}}}else{var diff=this.value-Number(this.currentValue);var increment=diff/numFrames;}
-function iterator()
-{frame++;if(frame<=numFrames){if(typeof obj.value=='object'){obj.value=[];for(var i=0;i<initial_value.length;++i){obj.value[i]=initial_value[i]+(increment[i]*frame);}}else{obj.value=initial_value+(increment*frame);}
-RGraph.clear(obj.canvas);RGraph.redrawCanvas(obj.canvas);RGraph.Effects.updateCanvas(iterator);}else{callback();}}
-iterator();return this;};this.tooltipSubstitutions=function(opt)
-{return{index:opt.index,dataset:0,sequentialIndex:opt.index,value:typeof this.value==='object'?this.value[opt.index]:this.value,values:typeof this.value==='object'?[this.value[opt.index]]:[this.value]};};this.tooltipsFormattedCustom=function(specific,index)
-{var color=(prop.tooltipsFormattedKeyColors&&prop.tooltipsFormattedKeyColors[specific.index])?prop.tooltipsFormattedKeyColors[specific.index]:prop.colors[specific.index];var label=(prop.tooltipsFormattedKeyLabels&&prop.tooltipsFormattedKeyLabels[specific.index])?prop.tooltipsFormattedKeyLabels[specific.index]:'';return{label:label,color:color};};RGraph.register(this);RGraph.parseObjectStyleConfig(this,conf.options);};
\ No newline at end of file
diff --git a/web/js/animated.js b/web/js/animated.js
deleted file mode 100644
index 66ef565c23..0000000000
--- a/web/js/animated.js
+++ /dev/null
@@ -1 +0,0 @@
-am4internal_webpackJsonp(["ab45"],{lhmh:function(t,n,a){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=a("ux7t"),e=a("Y9w3"),o=a("ISWh"),r=a("cxKZ"),s=a("aM7D"),d=a("AC2I"),u=a("ZpHf"),c=a("HfWV"),p=a("1pVS"),f=a("d+vC"),h=a("DG6Q"),S=a("qUC/"),D=a("Inf5"),l=a("vGbf"),m=a("VIOb"),y=function(t){t instanceof i.a&&(t.transitionDuration=400),t instanceof e.a&&(t.rangeChangeDuration=700,t.interpolationDuration=700,t.sequencedInterpolation=!1,t instanceof u.a&&(t.sequencedInterpolation=!0),t instanceof c.a&&(t.sequencedInterpolation=!0)),t instanceof m.a&&(t.defaultState.transitionDuration=2e3,t.hiddenState.transitionDuration=1e3),t instanceof r.a&&(t.animationDuration=400,t.defaultState.transitionDuration=400,t.hiddenState.transitionDuration=400),t instanceof o.a&&(t.animationDuration=700),t instanceof s.a&&(t.defaultState.transitionDuration=1e3,t.hiddenState.transitionDuration=700,t.hiddenState.properties.opacity=1,t.showOnInit=!0),t instanceof p.a&&(t.hiddenState.properties.opacity=0),t instanceof d.a&&(t.hiddenState.properties.opacity=0),t instanceof f.a&&(t.defaultState.transitionDuration=800,t.hiddenState.transitionDuration=1e3,t.hiddenState.properties.opacity=1),t instanceof D.a&&(t.defaultState.transitionDuration=700,t.hiddenState.transitionDuration=1e3,t.hiddenState.properties.opacity=1),t instanceof l.a&&(t.hiddenState.transitionDuration=2e3),t instanceof h.a&&(t.defaultState.transitionDuration=700,t.hiddenState.transitionDuration=1e3,t.hiddenState.properties.opacity=1),t instanceof S.a&&(t.hiddenState.properties.opacity=0)};window.am4themes_animated=y}},["lhmh"]);
\ No newline at end of file
diff --git a/web/js/bootstrap-datepicker/bootstrap-datepicker.de.min.js b/web/js/bootstrap-datepicker/bootstrap-datepicker.de.min.js
deleted file mode 100644
index fa83da1e72..0000000000
--- a/web/js/bootstrap-datepicker/bootstrap-datepicker.de.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["So","Mo","Di","Mi","Do","Fr","Sa"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",monthsTitle:"Monate",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery);
diff --git a/web/js/bootstrap-datepicker/bootstrap-datepicker.min.js b/web/js/bootstrap-datepicker/bootstrap-datepicker.min.js
deleted file mode 100644
index 8800106e8f..0000000000
--- a/web/js/bootstrap-datepicker/bootstrap-datepicker.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*!
- * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)
- *
- * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
- */
-
-!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(c,d){return function(){return d!==b&&a.fn.datepicker.deprecated(d),this[c].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;c<d;c++)if(0<=this[c].valueOf()-b&&this[c].valueOf()-b<864e5)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new j;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),k=function(b,c){a.data(b,"datepicker",this),this._events=[],this._secondaryEvents=[],this._process_options(c),this.dates=new j,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInput=this.element.is("input"),this.inputField=this.isInput?this.element:this.element.find("input"),this.component=!!this.element.hasClass("date")&&this.element.find(".add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn"),this.component&&0===this.component.length&&(this.component=!1),this.isInline=!this.component&&this.element.is("div"),this.picker=a(r.template),this._check_template(this.o.templates.leftArrow)&&this.picker.find(".prev").html(this.o.templates.leftArrow),this._check_template(this.o.templates.rightArrow)&&this.picker.find(".next").html(this.o.templates.rightArrow),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.o.calendarWeeks&&this.picker.find(".datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan",function(a,b){return Number(b)+1}),this._process_options({startDate:this._o.startDate,endDate:this._o.endDate,daysOfWeekDisabled:this.o.daysOfWeekDisabled,daysOfWeekHighlighted:this.o.daysOfWeekHighlighted,datesDisabled:this.o.datesDisabled}),this._allow_update=!1,this.setViewMode(this.o.startView),this._allow_update=!0,this.fillDow(),this.fillMonths(),this.update(),this.isInline&&this.show()};k.prototype={constructor:k,_resolveViewName:function(b){return a.each(r.viewModes,function(c,d){if(b===c||-1!==a.inArray(b,d.names))return b=c,!1}),b},_resolveDaysOfWeek:function(b){return a.isArray(b)||(b=b.split(/[,\s]*/)),a.map(b,Number)},_check_template:function(c){try{if(c===b||""===c)return!1;if((c.match(/[<>]/g)||[]).length<=0)return!0;return a(c).length>0}catch(a){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView),e.minViewMode=this._resolveViewName(e.minViewMode),e.maxViewMode=this._resolveViewName(e.maxViewMode),e.startView=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,e.startView)),!0!==e.multidate&&(e.multidate=Number(e.multidate)||!1,!1!==e.multidate&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-1/0&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-1/0),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=this._resolveDaysOfWeek(e.daysOfWeekDisabled||[]),e.daysOfWeekHighlighted=this._resolveDaysOfWeek(e.daysOfWeekHighlighted||[]),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=e.datesDisabled.split(",")),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate instanceof Date||"string"==typeof e.defaultViewDate)e.defaultViewDate=r.parseDate(e.defaultViewDate,g,e.language,e.assumeNearbyYear);else if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_applyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(d=b,e=a[f][1]):3===a[f].length&&(d=a[f][1],e=a[f][2]),c.on(e,d)},_unapplyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(e=b,d=a[f][1]):3===a[f].length&&(e=a[f][1],d=a[f][2]),c.off(d,e)},_buildEvents:function(){var b={keyup:a.proxy(function(b){-1===a.inArray(b.keyCode,[27,37,39,38,40,32,13,9])&&this.update()},this),keydown:a.proxy(this.keydown,this),paste:a.proxy(this.paste,this)};!0===this.o.showOnFocus&&(b.focus=a.proxy(this.show,this)),this.isInput?this._events=[[this.element,b]]:this.component&&this.inputField.length?this._events=[[this.inputField,b],[this.component,{click:a.proxy(this.show,this)}]]:this._events=[[this.element,{click:a.proxy(this.show,this),keydown:a.proxy(this.keydown,this)}]],this._events.push([this.element,"*",{blur:a.proxy(function(a){this._focused_from=a.target},this)}],[this.element,{blur:a.proxy(function(a){this._focused_from=a.target},this)}]),this.o.immediateUpdates&&this._events.push([this.element,{"changeYear changeMonth":a.proxy(function(a){this.update(a.date)},this)}]),this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[this.picker,".prev, .next",{click:a.proxy(this.navArrowsClick,this)}],[this.picker,".day:not(.disabled)",{click:a.proxy(this.dayCellClick,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{"mousedown touchstart":a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).length||this.picker.is(a.target)||this.picker.find(a.target).length||this.isInline||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.dates.get(-1),e=this._utc_to_local(d);this.element.trigger({type:b,date:e,viewMode:this.viewMode,dates:a.map(this.dates,this._utc_to_local),format:a.proxy(function(a,b){0===arguments.length?(a=this.dates.length-1,b=this.o.format):"string"==typeof a&&(b=a,a=this.dates.length-1),b=b||this.o.format;var c=this.dates.get(a);return r.formatDate(c,b,this.o.language)},this)})},show:function(){if(!(this.inputField.is(":disabled")||this.inputField.prop("readonly")&&!1===this.o.enableOnReadonly))return this.isInline||this.picker.appendTo(this.o.container),this.place(),this.picker.show(),this._attachSecondaryEvents(),this._trigger("show"),(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.o.disableTouchKeyboard&&a(this.element).blur(),this},hide:function(){return this.isInline||!this.picker.is(":visible")?this:(this.focusDate=null,this.picker.hide().detach(),this._detachSecondaryEvents(),this.setViewMode(this.o.startView),this.o.forceParse&&this.inputField.val()&&this.setValue(),this._trigger("hide"),this)},destroy:function(){return this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date,this},paste:function(b){var c;if(b.originalEvent.clipboardData&&b.originalEvent.clipboardData.types&&-1!==a.inArray("text/plain",b.originalEvent.clipboardData.types))c=b.originalEvent.clipboardData.getData("text/plain");else{if(!window.clipboardData)return;c=window.clipboardData.getData("Text")}this.setDate(c),this.update(),b.preventDefault()},_utc_to_local:function(a){if(!a)return a;var b=new Date(a.getTime()+6e4*a.getTimezoneOffset());return b.getTimezoneOffset()!==a.getTimezoneOffset()&&(b=new Date(a.getTime()+6e4*b.getTimezoneOffset())),b},_local_to_utc:function(a){return a&&new Date(a.getTime()-6e4*a.getTimezoneOffset())},_zero_time:function(a){return a&&new Date(a.getFullYear(),a.getMonth(),a.getDate())},_zero_utc_time:function(a){return a&&c(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())},getDates:function(){return a.map(this.dates,this._utc_to_local)},getUTCDates:function(){return a.map(this.dates,function(a){return new Date(a)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var a=this.dates.get(-1);return a!==b?new Date(a):null},clearDates:function(){this.inputField.val(""),this.update(),this._trigger("changeDate"),this.o.autoclose&&this.hide()},setDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,b),this._trigger("changeDate"),this.setValue(),this},setUTCDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.setDates.apply(this,a.map(b,this._utc_to_local)),this},setDate:f("setDates"),setUTCDate:f("setUTCDates"),remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead"),setValue:function(){var a=this.getFormattedDate();return this.inputField.val(a),this},getFormattedDate:function(c){c===b&&(c=this.o.format);var d=this.o.language;return a.map(this.dates,function(a){return r.formatDate(a,c,d)}).join(this.o.multidateSeparator)},getStartDate:function(){return this.o.startDate},setStartDate:function(a){return this._process_options({startDate:a}),this.update(),this.updateNavArrows(),this},getEndDate:function(){return this.o.endDate},setEndDate:function(a){return this._process_options({endDate:a}),this.update(),this.updateNavArrows(),this},setDaysOfWeekDisabled:function(a){return this._process_options({daysOfWeekDisabled:a}),this.update(),this},setDaysOfWeekHighlighted:function(a){return this._process_options({daysOfWeekHighlighted:a}),this.update(),this},setDatesDisabled:function(a){return this._process_options({datesDisabled:a}),this.update(),this},place:function(){if(this.isInline)return this;var b=this.picker.outerWidth(),c=this.picker.outerHeight(),d=a(this.o.container),e=d.width(),f="body"===this.o.container?a(document).scrollTop():d.scrollTop(),g=d.offset(),h=[0];this.element.parents().each(function(){var b=a(this).css("z-index");"auto"!==b&&0!==Number(b)&&h.push(Number(b))});var i=Math.max.apply(Math,h)+this.o.zIndexOffset,j=this.component?this.component.parent().offset():this.element.offset(),k=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1),l=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1),m=j.left-g.left,n=j.top-g.top;"body"!==this.o.container&&(n+=f),this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"),"auto"!==this.o.orientation.x?(this.picker.addClass("datepicker-orient-"+this.o.orientation.x),"right"===this.o.orientation.x&&(m-=b-l)):j.left<0?(this.picker.addClass("datepicker-orient-left"),m-=j.left-10):m+b>e?(this.picker.addClass("datepicker-orient-right"),m+=l-b):this.o.rtl?this.picker.addClass("datepicker-orient-right"):this.picker.addClass("datepicker-orient-left");var o,p=this.o.orientation.y;if("auto"===p&&(o=-f+n-c,p=o<0?"bottom":"top"),this.picker.addClass("datepicker-orient-"+p),"top"===p?n-=c+parseInt(this.picker.css("padding-top")):n+=k,this.o.rtl){var q=e-(m+l);this.picker.css({top:n,right:q,zIndex:i})}else this.picker.css({top:n,left:m,zIndex:i});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.o.updateViewDate&&(this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDate<this.o.startDate?this.viewDate=new Date(this.o.startDate):this.viewDate>this.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate),d?(this.setValue(),this.element.change()):this.dates.length&&String(b)!==String(this.dates)&&d&&(this._trigger("changeDate"),this.element.change()),!this.dates.length&&b.length&&(this._trigger("clearDate"),this.element.change()),this.fill(),this},fillDow:function(){if(this.o.showWeekDays){var b=this.o.weekStart,c="<tr>";for(this.o.calendarWeeks&&(c+='<th class="cw">&#160;</th>');b<this.o.weekStart+7;)c+='<th class="dow',-1!==a.inArray(b,this.o.daysOfWeekDisabled)&&(c+=" disabled"),c+='">'+q[this.o.language].daysMin[b++%7]+"</th>";c+="</tr>",this.picker.find(".datepicker-days thead").append(c)}},fillMonths:function(){for(var a,b=this._utc_to_local(this.viewDate),c="",d=0;d<12;d++)a=b&&b.getMonth()===d?" focused":"",c+='<span class="month'+a+'">'+q[this.o.language].monthsShort[d]+"</span>";this.picker.find(".datepicker-months td").html(c)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],f=this.viewDate.getUTCFullYear(),g=this.viewDate.getUTCMonth(),h=d();return b.getUTCFullYear()<f||b.getUTCFullYear()===f&&b.getUTCMonth()<g?c.push("old"):(b.getUTCFullYear()>f||b.getUTCFullYear()===f&&b.getUTCMonth()>g)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&e(b,h)&&c.push("today"),-1!==this.dates.contains(b)&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)&&c.push("highlighted"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),-1!==a.inArray(b.valueOf(),this.range)&&c.push("selected"),b.valueOf()===this.range[0]&&c.push("range-start"),b.valueOf()===this.range[this.range.length-1]&&c.push("range-end")),c},_fill_yearsView:function(c,d,e,f,g,h,i){for(var j,k,l,m="",n=e/10,o=this.picker.find(c),p=Math.floor(f/e)*e,q=p+9*n,r=Math.floor(this.viewDate.getFullYear()/n)*n,s=a.map(this.dates,function(a){return Math.floor(a.getUTCFullYear()/n)*n}),t=p-n;t<=q+n;t+=n)j=[d],k=null,t===p-n?j.push("old"):t===q+n&&j.push("new"),-1!==a.inArray(t,s)&&j.push("active"),(t<g||t>h)&&j.push("disabled"),t===r&&j.push("focused"),i!==a.noop&&(l=i(new Date(t,0,1)),l===b?l={}:"boolean"==typeof l?l={enabled:l}:"string"==typeof l&&(l={classes:l}),!1===l.enabled&&j.push("disabled"),l.classes&&(j=j.concat(l.classes.split(/\s+/))),l.tooltip&&(k=l.tooltip)),m+='<span class="'+j.join(" ")+'"'+(k?' title="'+k+'"':"")+">"+t+"</span>";o.find(".datepicker-switch").text(p+"-"+q),o.find("td").html(m)},fill:function(){var e,f,g=new Date(this.viewDate),h=g.getUTCFullYear(),i=g.getUTCMonth(),j=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,k=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,m=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,n=q[this.o.language].today||q.en.today||"",o=q[this.o.language].clear||q.en.clear||"",p=q[this.o.language].titleFormat||q.en.titleFormat,s=d(),t=(!0===this.o.todayBtn||"linked"===this.o.todayBtn)&&s>=this.o.startDate&&s<=this.o.endDate&&!this.weekOfDateIsDisabled(s);if(!isNaN(h)&&!isNaN(i)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(g,p,this.o.language)),this.picker.find("tfoot .today").text(n).css("display",t?"table-cell":"none"),this.picker.find("tfoot .clear").text(o).css("display",!0===this.o.clearBtn?"table-cell":"none"),this.picker.find("thead .datepicker-title").text(this.o.title).css("display","string"==typeof this.o.title&&""!==this.o.title?"table-cell":"none"),this.updateNavArrows(),this.fillMonths();var u=c(h,i,0),v=u.getUTCDate();u.setUTCDate(v-(u.getUTCDay()-this.o.weekStart+7)%7);var w=new Date(u);u.getUTCFullYear()<100&&w.setUTCFullYear(u.getUTCFullYear()),w.setUTCDate(w.getUTCDate()+42),w=w.valueOf();for(var x,y,z=[];u.valueOf()<w;){if((x=u.getUTCDay())===this.o.weekStart&&(z.push("<tr>"),this.o.calendarWeeks)){var A=new Date(+u+(this.o.weekStart-x-7)%7*864e5),B=new Date(Number(A)+(11-A.getUTCDay())%7*864e5),C=new Date(Number(C=c(B.getUTCFullYear(),0,1))+(11-C.getUTCDay())%7*864e5),D=(B-C)/864e5/7+1;z.push('<td class="cw">'+D+"</td>")}y=this.getClassNames(u),y.push("day");var E=u.getUTCDate();this.o.beforeShowDay!==a.noop&&(f=this.o.beforeShowDay(this._utc_to_local(u)),f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),!1===f.enabled&&y.push("disabled"),f.classes&&(y=y.concat(f.classes.split(/\s+/))),f.tooltip&&(e=f.tooltip),f.content&&(E=f.content)),y=a.isFunction(a.uniqueSort)?a.uniqueSort(y):a.unique(y),z.push('<td class="'+y.join(" ")+'"'+(e?' title="'+e+'"':"")+' data-date="'+u.getTime().toString()+'">'+E+"</td>"),e=null,x===this.o.weekEnd&&z.push("</tr>"),u.setUTCDate(u.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").html(z.join(""));var F=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",G=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?F:h).end().find("tbody span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===h&&G.eq(b.getUTCMonth()).addClass("active")}),(h<j||h>l)&&G.addClass("disabled"),h===j&&G.slice(0,k).addClass("disabled"),h===l&&G.slice(m+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var H=this;a.each(G,function(c,d){var e=new Date(h,c,1),f=H.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),!1!==f.enabled||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,h,j,l,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,h,j,l,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,h,j,l,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a,b,c=new Date(this.viewDate),d=c.getUTCFullYear(),e=c.getUTCMonth(),f=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,g=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,h=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,i=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,j=1;switch(this.viewMode){case 4:j*=10;case 3:j*=10;case 2:j*=10;case 1:a=Math.floor(d/j)*j<=f,b=Math.floor(d/j)*j+j>h;break;case 0:a=d<=f&&e<=g,b=d>=h&&e>=i}this.picker.find(".prev").toggleClass("disabled",a),this.picker.find(".next").toggleClass("disabled",b)}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h;e=a(b.target),e.hasClass("datepicker-switch")&&this.viewMode!==this.o.maxViewMode&&this.setViewMode(this.viewMode+1),e.hasClass("today")&&!e.hasClass("day")&&(this.setViewMode(0),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("month")||e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),f=1,1===this.viewMode?(h=e.parent().find("span").index(e),g=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(h)):(h=0,g=Number(e.text()),this.viewDate.setUTCFullYear(g)),this._trigger(r.viewModes[this.viewMode-1].e,this.viewDate),this.viewMode===this.o.minViewMode?this._setDate(c(g,h,f)):(this.setViewMode(this.viewMode-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&this._focused_from.focus(),delete this._focused_from},dayCellClick:function(b){var c=a(b.currentTarget),d=c.data("date"),e=new Date(d);this.o.updateViewDate&&(e.getUTCFullYear()!==this.viewDate.getUTCFullYear()&&this._trigger("changeYear",this.viewDate),e.getUTCMonth()!==this.viewDate.getUTCMonth()&&this._trigger("changeMonth",this.viewDate)),this._setDate(e)},navArrowsClick:function(b){var c=a(b.currentTarget),d=c.hasClass("prev")?-1:1;0!==this.viewMode&&(d*=12*r.viewModes[this.viewMode].navStep),this.viewDate=this.moveMonth(this.viewDate,d),this._trigger(r.viewModes[this.viewMode].e,this.viewDate),this.fill()},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),-1!==b?(!0===this.o.multidate||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):!1===this.o.multidate?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),(!b&&this.o.updateViewDate||"view"===b)&&(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField.trigger("change"),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=-1===b?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),c=(c+12)%12;else{for(var j=0;j<i;j++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!==e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},moveAvailableDate:function(a,b,c){do{if(a=this[c](a,b),!this.dateWithinRange(a))return!1;c="moveDay"}while(this.dateIsDisabled(a));return a},weekOfDateIsDisabled:function(b){return-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled)},dateIsDisabled:function(b){return this.weekOfDateIsDisabled(b)||a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(40!==a.keyCode&&27!==a.keyCode||(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"))&&this._trigger("changeYear",this.viewDate):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"))&&this._trigger("changeMonth",this.viewDate):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField.trigger("change"))},setViewMode:function(a){this.viewMode=a,this.picker.children("div").hide().filter(".datepicker-"+r.viewModes[this.viewMode].clsName).show(),this.updateNavArrows(),this._trigger("changeViewMode",new Date(this.viewDate))}};var l=function(b,c){a.data(b,"datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,this.keepEmptyValues=c.keepEmptyValues,delete c.keepEmptyValues,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a.data(b,"datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},clearDates:function(){a.each(this.pickers,function(a,b){b.clearDates()})},dateUpdated:function(c){if(!this.updating){this.updating=!0;var d=a.data(c.target,"datepicker");if(d!==b){var e=d.getUTCDate(),f=this.keepEmptyValues,g=a.inArray(c.target,this.inputs),h=g-1,i=g+1,j=this.inputs.length;if(-1!==g){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b!==d&&f||b.setUTCDate(e)}),e<this.dates[h])for(;h>=0&&e<this.dates[h];)this.pickers[h--].setUTCDate(e);else if(e>this.dates[i])for(;i<j&&e>this.dates[i];)this.pickers[i++].setUTCDate(e);this.updateDates(),delete this.updating}}}},destroy:function(){a.map(this.pickers,function(a){a.destroy()}),a(this.inputs).off("changeDate",this.dateUpdated),delete this.element.data().datepicker},remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keepEmptyValues:!1,keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-1/0,startView:0,todayBtn:!1,todayHighlight:!1,updateViewDate:!0,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"&#x00AB;",rightArrow:"&#x00BB;"},showWeekDays:!0},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={viewModes:[{names:["days","month"],clsName:"days",e:"changeMonth"},{names:["months","year"],clsName:"months",e:"changeYear",navStep:1},{names:["years","decade"],clsName:"years",e:"changeDecade",navStep:10},{names:["decades","century"],clsName:"decades",e:"changeCentury",navStep:100},{names:["centuries","millennium"],clsName:"centuries",e:"changeMillennium",navStep:1e3}],validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\0").split("\0"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,e,f,g){function h(a,b){return!0===b&&(b=10),a<100&&(a+=2e3)>(new Date).getFullYear()+b&&(a-=100),a}function i(){var a=this.slice(0,j[n].length),b=j[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!c)return b;if(c instanceof Date)return c;if("string"==typeof e&&(e=r.parseFormat(e)),e.toValue)return e.toValue(c,e,f);var j,l,m,n,o,p={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},s={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(c in s&&(c=s[c]),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(c)){for(j=c.match(/([\-+]\d+)([dmwy])/gi),c=new Date,n=0;n<j.length;n++)l=j[n].match(/([\-+]\d+)([dmwy])/i),m=Number(l[1]),o=p[l[2].toLowerCase()],c=k.prototype[o](c,m);return k.prototype._zero_utc_time(c)}j=c&&c.match(this.nonpunctuation)||[];var t,u,v={},w=["yyyy","yy","M","MM","m","mm","d","dd"],x={yyyy:function(a,b){return a.setUTCFullYear(g?h(b,g):b)},m:function(a,b){if(isNaN(a))return a;for(b-=1;b<0;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};x.yy=x.yyyy,x.M=x.MM=x.mm=x.m,x.dd=x.d,c=d();var y=e.parts.slice();if(j.length!==y.length&&(y=a(y).filter(function(b,c){return-1!==a.inArray(c,w)}).toArray()),j.length===y.length){var z;for(n=0,z=y.length;n<z;n++){if(t=parseInt(j[n],10),l=y[n],isNaN(t))switch(l){case"MM":u=a(q[f].months).filter(i),t=a.inArray(u[0],q[f].months)+1;break;case"M":u=a(q[f].monthsShort).filter(i),t=a.inArray(u[0],q[f].monthsShort)+1}v[l]=t}var A,B;for(n=0;n<w.length;n++)(B=w[n])in v&&!isNaN(v[B])&&(A=new Date(c),x[B](A,v[B]),isNaN(A)||(c=A))}return c},formatDate:function(b,c,d){if(!b)return"";if("string"==typeof c&&(c=r.parseFormat(c)),c.toDisplay)return c.toDisplay(b,c,d);var e={d:b.getUTCDate(),D:q[d].daysShort[b.getUTCDay()],DD:q[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:q[d].monthsShort[b.getUTCMonth()],MM:q[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m,b=[];for(var f=a.extend([],c.separators),g=0,h=c.parts.length;g<=h;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},
-headTemplate:'<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">'+o.templates.leftArrow+'</th><th colspan="5" class="datepicker-switch"></th><th class="next">'+o.templates.rightArrow+"</th></tr></thead>",contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};r.template='<div class="datepicker"><div class="datepicker-days"><table class="table-condensed">'+r.headTemplate+"<tbody></tbody>"+r.footTemplate+'</table></div><div class="datepicker-months"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-years"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-decades"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-centuries"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+"</table></div></div>",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.9.0",a.fn.datepicker.deprecated=function(a){var b=window.console;b&&b.warn&&b.warn("DEPRECATED: "+a)},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})});
\ No newline at end of file
diff --git a/web/js/bootstrap-selectpicker/bootstrap-select.min.js b/web/js/bootstrap-selectpicker/bootstrap-select.min.js
deleted file mode 100644
index 92e3a32eb7..0000000000
--- a/web/js/bootstrap-selectpicker/bootstrap-select.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap-select v1.13.14 (https://developer.snapappointments.com/bootstrap-select)
- *
- * Copyright 2012-2020 SnapAppointments, LLC
- * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
- */
-
-!function(e,t){void 0===e&&void 0!==window&&(e=window),"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(e.jQuery)}(this,function(e){!function(z){"use strict";var d=["sanitize","whiteList","sanitizeFn"],r=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],e={"*":["class","dir","id","lang","role","tabindex","style",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},l=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,a=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function v(e,t){var i=e.nodeName.toLowerCase();if(-1!==z.inArray(i,t))return-1===z.inArray(i,r)||Boolean(e.nodeValue.match(l)||e.nodeValue.match(a));for(var s=z(t).filter(function(e,t){return t instanceof RegExp}),n=0,o=s.length;n<o;n++)if(i.match(s[n]))return!0;return!1}function P(e,t,i){if(i&&"function"==typeof i)return i(e);for(var s=Object.keys(t),n=0,o=e.length;n<o;n++)for(var r=e[n].querySelectorAll("*"),l=0,a=r.length;l<a;l++){var c=r[l],d=c.nodeName.toLowerCase();if(-1!==s.indexOf(d))for(var h=[].slice.call(c.attributes),p=[].concat(t["*"]||[],t[d]||[]),u=0,f=h.length;u<f;u++){var m=h[u];v(m,p)||c.removeAttribute(m.nodeName)}else c.parentNode.removeChild(c)}}"classList"in document.createElement("_")||function(e){if("Element"in e){var t="classList",i="prototype",s=e.Element[i],n=Object,o=function(){var i=z(this);return{add:function(e){return e=Array.prototype.slice.call(arguments).join(" "),i.addClass(e)},remove:function(e){return e=Array.prototype.slice.call(arguments).join(" "),i.removeClass(e)},toggle:function(e,t){return i.toggleClass(e,t)},contains:function(e){return i.hasClass(e)}}};if(n.defineProperty){var r={get:o,enumerable:!0,configurable:!0};try{n.defineProperty(s,t,r)}catch(e){void 0!==e.number&&-2146823252!==e.number||(r.enumerable=!1,n.defineProperty(s,t,r))}}else n[i].__defineGetter__&&s.__defineGetter__(t,o)}}(window);var t,c,i=document.createElement("_");if(i.classList.add("c1","c2"),!i.classList.contains("c2")){var s=DOMTokenList.prototype.add,n=DOMTokenList.prototype.remove;DOMTokenList.prototype.add=function(){Array.prototype.forEach.call(arguments,s.bind(this))},DOMTokenList.prototype.remove=function(){Array.prototype.forEach.call(arguments,n.bind(this))}}if(i.classList.toggle("c3",!1),i.classList.contains("c3")){var o=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(e,t){return 1 in arguments&&!this.contains(e)==!t?t:o.call(this,e)}}function h(e){if(null==this)throw new TypeError;var t=String(this);if(e&&"[object RegExp]"==c.call(e))throw new TypeError;var i=t.length,s=String(e),n=s.length,o=1<arguments.length?arguments[1]:void 0,r=o?Number(o):0;r!=r&&(r=0);var l=Math.min(Math.max(r,0),i);if(i<n+l)return!1;for(var a=-1;++a<n;)if(t.charCodeAt(l+a)!=s.charCodeAt(a))return!1;return!0}function O(e,t){var i,s=e.selectedOptions,n=[];if(t){for(var o=0,r=s.length;o<r;o++)(i=s[o]).disabled||"OPTGROUP"===i.parentNode.tagName&&i.parentNode.disabled||n.push(i);return n}return s}function T(e,t){for(var i,s=[],n=t||e.selectedOptions,o=0,r=n.length;o<r;o++)(i=n[o]).disabled||"OPTGROUP"===i.parentNode.tagName&&i.parentNode.disabled||s.push(i.value);return e.multiple?s:s.length?s[0]:null}i=null,String.prototype.startsWith||(t=function(){try{var e={},t=Object.defineProperty,i=t(e,e,e)&&t}catch(e){}return i}(),c={}.toString,t?t(String.prototype,"startsWith",{value:h,configurable:!0,writable:!0}):String.prototype.startsWith=h),Object.keys||(Object.keys=function(e,t,i){for(t in i=[],e)i.hasOwnProperty.call(e,t)&&i.push(t);return i}),HTMLSelectElement&&!HTMLSelectElement.prototype.hasOwnProperty("selectedOptions")&&Object.defineProperty(HTMLSelectElement.prototype,"selectedOptions",{get:function(){return this.querySelectorAll(":checked")}});var p={useDefault:!1,_set:z.valHooks.select.set};z.valHooks.select.set=function(e,t){return t&&!p.useDefault&&z(e).data("selected",!0),p._set.apply(this,arguments)};var A=null,u=function(){try{return new Event("change"),!0}catch(e){return!1}}();function k(e,t,i,s){for(var n=["display","subtext","tokens"],o=!1,r=0;r<n.length;r++){var l=n[r],a=e[l];if(a&&(a=a.toString(),"display"===l&&(a=a.replace(/<[^>]+>/g,"")),s&&(a=w(a)),a=a.toUpperCase(),o="contains"===i?0<=a.indexOf(t):a.startsWith(t)))break}return o}function L(e){return parseInt(e,10)||0}z.fn.triggerNative=function(e){var t,i=this[0];i.dispatchEvent?(u?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),i.dispatchEvent(t)):i.fireEvent?((t=document.createEventObject()).eventType=e,i.fireEvent("on"+e,t)):this.trigger(e)};var f={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},m=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,g=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]","g");function b(e){return f[e]}function w(e){return(e=e.toString())&&e.replace(m,b).replace(g,"")}var I,x,y,$,S=(I={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},x="(?:"+Object.keys(I).join("|")+")",y=RegExp(x),$=RegExp(x,"g"),function(e){return e=null==e?"":""+e,y.test(e)?e.replace($,E):e});function E(e){return I[e]}var C={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},N=27,D=13,H=32,W=9,B=38,M=40,R={success:!1,major:"3"};try{R.full=(z.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split("."),R.major=R.full[0],R.success=!0}catch(e){}var U=0,j=".bs.select",V={DISABLED:"disabled",DIVIDER:"divider",SHOW:"open",DROPUP:"dropup",MENU:"dropdown-menu",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left",BUTTONCLASS:"btn-default",POPOVERHEADER:"popover-title",ICONBASE:"glyphicon",TICKICON:"glyphicon-ok"},F={MENU:"."+V.MENU},_={span:document.createElement("span"),i:document.createElement("i"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode("\xa0"),fragment:document.createDocumentFragment()};_.a.setAttribute("role","option"),"4"===R.major&&(_.a.className="dropdown-item"),_.subtext.className="text-muted",_.text=_.span.cloneNode(!1),_.text.className="text",_.checkMark=_.span.cloneNode(!1);var G=new RegExp(B+"|"+M),q=new RegExp("^"+W+"$|"+N),K={li:function(e,t,i){var s=_.li.cloneNode(!1);return e&&(1===e.nodeType||11===e.nodeType?s.appendChild(e):s.innerHTML=e),void 0!==t&&""!==t&&(s.className=t),null!=i&&s.classList.add("optgroup-"+i),s},a:function(e,t,i){var s=_.a.cloneNode(!0);return e&&(11===e.nodeType?s.appendChild(e):s.insertAdjacentHTML("beforeend",e)),void 0!==t&&""!==t&&s.classList.add.apply(s.classList,t.split(" ")),i&&s.setAttribute("style",i),s},text:function(e,t){var i,s,n=_.text.cloneNode(!1);if(e.content)n.innerHTML=e.content;else{if(n.textContent=e.text,e.icon){var o=_.whitespace.cloneNode(!1);(s=(!0===t?_.i:_.span).cloneNode(!1)).className=this.options.iconBase+" "+e.icon,_.fragment.appendChild(s),_.fragment.appendChild(o)}e.subtext&&((i=_.subtext.cloneNode(!1)).textContent=e.subtext,n.appendChild(i))}if(!0===t)for(;0<n.childNodes.length;)_.fragment.appendChild(n.childNodes[0]);else _.fragment.appendChild(n);return _.fragment},label:function(e){var t,i,s=_.text.cloneNode(!1);if(s.innerHTML=e.display,e.icon){var n=_.whitespace.cloneNode(!1);(i=_.span.cloneNode(!1)).className=this.options.iconBase+" "+e.icon,_.fragment.appendChild(i),_.fragment.appendChild(n)}return e.subtext&&((t=_.subtext.cloneNode(!1)).textContent=e.subtext,s.appendChild(t)),_.fragment.appendChild(s),_.fragment}},Y=function(e,t){var i=this;p.useDefault||(z.valHooks.select.set=p._set,p.useDefault=!0),this.$element=z(e),this.$newElement=null,this.$button=null,this.$menu=null,this.options=t,this.selectpicker={main:{},search:{},current:{},view:{},isSearching:!1,keydown:{keyHistory:"",resetKeyHistory:{start:function(){return setTimeout(function(){i.selectpicker.keydown.keyHistory=""},800)}}}},this.sizeInfo={},null===this.options.title&&(this.options.title=this.$element.attr("title"));var s=this.options.windowPadding;"number"==typeof s&&(this.options.windowPadding=[s,s,s,s]),this.val=Y.prototype.val,this.render=Y.prototype.render,this.refresh=Y.prototype.refresh,this.setStyle=Y.prototype.setStyle,this.selectAll=Y.prototype.selectAll,this.deselectAll=Y.prototype.deselectAll,this.destroy=Y.prototype.destroy,this.remove=Y.prototype.remove,this.show=Y.prototype.show,this.hide=Y.prototype.hide,this.init()};function Z(e){var l,a=arguments,c=e;if([].shift.apply(a),!R.success){try{R.full=(z.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split(".")}catch(e){Y.BootstrapVersion?R.full=Y.BootstrapVersion.split(" ")[0].split("."):(R.full=[R.major,"0","0"],console.warn("There was an issue retrieving Bootstrap's version. Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.",e))}R.major=R.full[0],R.success=!0}if("4"===R.major){var t=[];Y.DEFAULTS.style===V.BUTTONCLASS&&t.push({name:"style",className:"BUTTONCLASS"}),Y.DEFAULTS.iconBase===V.ICONBASE&&t.push({name:"iconBase",className:"ICONBASE"}),Y.DEFAULTS.tickIcon===V.TICKICON&&t.push({name:"tickIcon",className:"TICKICON"}),V.DIVIDER="dropdown-divider",V.SHOW="show",V.BUTTONCLASS="btn-light",V.POPOVERHEADER="popover-header",V.ICONBASE="",V.TICKICON="bs-ok-default";for(var i=0;i<t.length;i++){e=t[i];Y.DEFAULTS[e.name]=V[e.className]}}var s=this.each(function(){var e=z(this);if(e.is("select")){var t=e.data("selectpicker"),i="object"==typeof c&&c;if(t){if(i)for(var s in i)i.hasOwnProperty(s)&&(t.options[s]=i[s])}else{var n=e.data();for(var o in n)n.hasOwnProperty(o)&&-1!==z.inArray(o,d)&&delete n[o];var r=z.extend({},Y.DEFAULTS,z.fn.selectpicker.defaults||{},n,i);r.template=z.extend({},Y.DEFAULTS.template,z.fn.selectpicker.defaults?z.fn.selectpicker.defaults.template:{},n.template,i.template),e.data("selectpicker",t=new Y(this,r))}"string"==typeof c&&(l=t[c]instanceof Function?t[c].apply(t,a):t.options[c])}});return void 0!==l?l:s}Y.VERSION="1.13.14",Y.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(e,t){return 1==e?"{0} item selected":"{0} items selected"},maxOptionsText:function(e,t){return[1==e?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==t?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:V.BUTTONCLASS,size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:V.ICONBASE,tickIcon:V.TICKICON,showTick:!1,template:{caret:'<span class="caret"></span>'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0,virtualScroll:600,display:!1,sanitize:!0,sanitizeFn:null,whiteList:e},Y.prototype={constructor:Y,init:function(){var i=this,e=this.$element.attr("id");U++,this.selectId="bs-select-"+U,this.$element[0].classList.add("bs-select-hidden"),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$element[0].classList.contains("show-tick")&&(this.options.showTick=!0),this.$newElement=this.createDropdown(),this.buildData(),this.$element.after(this.$newElement).prependTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(F.MENU),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element[0].classList.remove("bs-select-hidden"),!0===this.options.dropdownAlignRight&&this.$menu[0].classList.add(V.MENURIGHT),void 0!==e&&this.$button.attr("data-id",e),this.checkDisabled(),this.clickListener(),this.options.liveSearch?(this.liveSearchListener(),this.focusedParent=this.$searchbox[0]):this.focusedParent=this.$menuInner[0],this.setStyle(),this.render(),this.setWidth(),this.options.container?this.selectPosition():this.$element.on("hide"+j,function(){if(i.isVirtual()){var e=i.$menuInner[0],t=e.firstChild.cloneNode(!1);e.replaceChild(t,e.firstChild),e.scrollTop=0}}),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(e){i.$element.trigger("hide"+j,e)},"hidden.bs.dropdown":function(e){i.$element.trigger("hidden"+j,e)},"show.bs.dropdown":function(e){i.$element.trigger("show"+j,e)},"shown.bs.dropdown":function(e){i.$element.trigger("shown"+j,e)}}),i.$element[0].hasAttribute("required")&&this.$element.on("invalid"+j,function(){i.$button[0].classList.add("bs-invalid"),i.$element.on("shown"+j+".invalid",function(){i.$element.val(i.$element.val()).off("shown"+j+".invalid")}).on("rendered"+j,function(){this.validity.valid&&i.$button[0].classList.remove("bs-invalid"),i.$element.off("rendered"+j)}),i.$button.on("blur"+j,function(){i.$element.trigger("focus").trigger("blur"),i.$button.off("blur"+j)})}),setTimeout(function(){i.buildList(),i.$element.trigger("loaded"+j)})},createDropdown:function(){var e=this.multiple||this.options.showTick?" show-tick":"",t=this.multiple?' aria-multiselectable="true"':"",i="",s=this.autofocus?" autofocus":"";R.major<4&&this.$element.parent().hasClass("input-group")&&(i=" input-group-btn");var n,o="",r="",l="",a="";return this.options.header&&(o='<div class="'+V.POPOVERHEADER+'"><button type="button" class="close" aria-hidden="true">&times;</button>'+this.options.header+"</div>"),this.options.liveSearch&&(r='<div class="bs-searchbox"><input type="search" class="form-control" autocomplete="off"'+(null===this.options.liveSearchPlaceholder?"":' placeholder="'+S(this.options.liveSearchPlaceholder)+'"')+' role="combobox" aria-label="Search" aria-controls="'+this.selectId+'" aria-autocomplete="list"></div>'),this.multiple&&this.options.actionsBox&&(l='<div class="bs-actionsbox"><div class="btn-group btn-group-sm btn-block"><button type="button" class="actions-btn bs-select-all btn '+V.BUTTONCLASS+'">'+this.options.selectAllText+'</button><button type="button" class="actions-btn bs-deselect-all btn '+V.BUTTONCLASS+'">'+this.options.deselectAllText+"</button></div></div>"),this.multiple&&this.options.doneButton&&(a='<div class="bs-donebutton"><div class="btn-group btn-block"><button type="button" class="btn btn-sm '+V.BUTTONCLASS+'">'+this.options.doneButtonText+"</button></div></div>"),n='<div class="dropdown bootstrap-select'+e+i+'"><button type="button" class="'+this.options.styleBase+' dropdown-toggle" '+("static"===this.options.display?'data-display="static"':"")+'data-toggle="dropdown"'+s+' role="combobox" aria-owns="'+this.selectId+'" aria-haspopup="listbox" aria-expanded="false"><div class="filter-option"><div class="filter-option-inner"><div class="filter-option-inner-inner"></div></div> </div>'+("4"===R.major?"":'<span class="bs-caret">'+this.options.template.caret+"</span>")+'</button><div class="'+V.MENU+" "+("4"===R.major?"":V.SHOW)+'">'+o+r+l+'<div class="inner '+V.SHOW+'" role="listbox" id="'+this.selectId+'" tabindex="-1" '+t+'><ul class="'+V.MENU+" inner "+("4"===R.major?V.SHOW:"")+'" role="presentation"></ul></div>'+a+"</div></div>",z(n)},setPositionData:function(){this.selectpicker.view.canHighlight=[];for(var e=this.selectpicker.view.size=0;e<this.selectpicker.current.data.length;e++){var t=this.selectpicker.current.data[e],i=!0;"divider"===t.type?(i=!1,t.height=this.sizeInfo.dividerHeight):"optgroup-label"===t.type?(i=!1,t.height=this.sizeInfo.dropdownHeaderHeight):t.height=this.sizeInfo.liHeight,t.disabled&&(i=!1),this.selectpicker.view.canHighlight.push(i),i&&(this.selectpicker.view.size++,t.posinset=this.selectpicker.view.size),t.position=(0===e?0:this.selectpicker.current.data[e-1].position)+t.height}},isVirtual:function(){return!1!==this.options.virtualScroll&&this.selectpicker.main.elements.length>=this.options.virtualScroll||!0===this.options.virtualScroll},createView:function(A,e,t){var L,N,D=this,i=0,H=[];if(this.selectpicker.isSearching=A,this.selectpicker.current=A?this.selectpicker.search:this.selectpicker.main,this.setPositionData(),e)if(t)i=this.$menuInner[0].scrollTop;else if(!D.multiple){var s=D.$element[0],n=(s.options[s.selectedIndex]||{}).liIndex;if("number"==typeof n&&!1!==D.options.size){var o=D.selectpicker.main.data[n],r=o&&o.position;r&&(i=r-(D.sizeInfo.menuInnerHeight+D.sizeInfo.liHeight)/2)}}function l(e,t){var i,s,n,o,r,l,a,c,d=D.selectpicker.current.elements.length,h=[],p=!0,u=D.isVirtual();D.selectpicker.view.scrollTop=e,i=Math.ceil(D.sizeInfo.menuInnerHeight/D.sizeInfo.liHeight*1.5),s=Math.round(d/i)||1;for(var f=0;f<s;f++){var m=(f+1)*i;if(f===s-1&&(m=d),h[f]=[f*i+(f?1:0),m],!d)break;void 0===r&&e-1<=D.selectpicker.current.data[m-1].position-D.sizeInfo.menuInnerHeight&&(r=f)}if(void 0===r&&(r=0),l=[D.selectpicker.view.position0,D.selectpicker.view.position1],n=Math.max(0,r-1),o=Math.min(s-1,r+1),D.selectpicker.view.position0=!1===u?0:Math.max(0,h[n][0])||0,D.selectpicker.view.position1=!1===u?d:Math.min(d,h[o][1])||0,a=l[0]!==D.selectpicker.view.position0||l[1]!==D.selectpicker.view.position1,void 0!==D.activeIndex&&(N=D.selectpicker.main.elements[D.prevActiveIndex],H=D.selectpicker.main.elements[D.activeIndex],L=D.selectpicker.main.elements[D.selectedIndex],t&&(D.activeIndex!==D.selectedIndex&&D.defocusItem(H),D.activeIndex=void 0),D.activeIndex&&D.activeIndex!==D.selectedIndex&&D.defocusItem(L)),void 0!==D.prevActiveIndex&&D.prevActiveIndex!==D.activeIndex&&D.prevActiveIndex!==D.selectedIndex&&D.defocusItem(N),(t||a)&&(c=D.selectpicker.view.visibleElements?D.selectpicker.view.visibleElements.slice():[],D.selectpicker.view.visibleElements=!1===u?D.selectpicker.current.elements:D.selectpicker.current.elements.slice(D.selectpicker.view.position0,D.selectpicker.view.position1),D.setOptionStatus(),(A||!1===u&&t)&&(p=!function(e,i){return e.length===i.length&&e.every(function(e,t){return e===i[t]})}(c,D.selectpicker.view.visibleElements)),(t||!0===u)&&p)){var v,g,b=D.$menuInner[0],w=document.createDocumentFragment(),I=b.firstChild.cloneNode(!1),x=D.selectpicker.view.visibleElements,k=[];b.replaceChild(I,b.firstChild);f=0;for(var y=x.length;f<y;f++){var $,S,E=x[f];D.options.sanitize&&($=E.lastChild)&&(S=D.selectpicker.current.data[f+D.selectpicker.view.position0])&&S.content&&!S.sanitized&&(k.push($),S.sanitized=!0),w.appendChild(E)}if(D.options.sanitize&&k.length&&P(k,D.options.whiteList,D.options.sanitizeFn),!0===u?(v=0===D.selectpicker.view.position0?0:D.selectpicker.current.data[D.selectpicker.view.position0-1].position,g=D.selectpicker.view.position1>d-1?0:D.selectpicker.current.data[d-1].position-D.selectpicker.current.data[D.selectpicker.view.position1-1].position,b.firstChild.style.marginTop=v+"px",b.firstChild.style.marginBottom=g+"px"):(b.firstChild.style.marginTop=0,b.firstChild.style.marginBottom=0),b.firstChild.appendChild(w),!0===u&&D.sizeInfo.hasScrollBar){var C=b.firstChild.offsetWidth;if(t&&C<D.sizeInfo.menuInnerInnerWidth&&D.sizeInfo.totalMenuWidth>D.sizeInfo.selectWidth)b.firstChild.style.minWidth=D.sizeInfo.menuInnerInnerWidth+"px";else if(C>D.sizeInfo.menuInnerInnerWidth){D.$menu[0].style.minWidth=0;var O=b.firstChild.offsetWidth;O>D.sizeInfo.menuInnerInnerWidth&&(D.sizeInfo.menuInnerInnerWidth=O,b.firstChild.style.minWidth=D.sizeInfo.menuInnerInnerWidth+"px"),D.$menu[0].style.minWidth=""}}}if(D.prevActiveIndex=D.activeIndex,D.options.liveSearch){if(A&&t){var z,T=0;D.selectpicker.view.canHighlight[T]||(T=1+D.selectpicker.view.canHighlight.slice(1).indexOf(!0)),z=D.selectpicker.view.visibleElements[T],D.defocusItem(D.selectpicker.view.currentActive),D.activeIndex=(D.selectpicker.current.data[T]||{}).index,D.focusItem(z)}}else D.$menuInner.trigger("focus")}l(i,!0),this.$menuInner.off("scroll.createView").on("scroll.createView",function(e,t){D.noScroll||l(this.scrollTop,t),D.noScroll=!1}),z(window).off("resize"+j+"."+this.selectId+".createView").on("resize"+j+"."+this.selectId+".createView",function(){D.$newElement.hasClass(V.SHOW)&&l(D.$menuInner[0].scrollTop)})},focusItem:function(e,t,i){if(e){t=t||this.selectpicker.main.data[this.activeIndex];var s=e.firstChild;s&&(s.setAttribute("aria-setsize",this.selectpicker.view.size),s.setAttribute("aria-posinset",t.posinset),!0!==i&&(this.focusedParent.setAttribute("aria-activedescendant",s.id),e.classList.add("active"),s.classList.add("active")))}},defocusItem:function(e){e&&(e.classList.remove("active"),e.firstChild&&e.firstChild.classList.remove("active"))},setPlaceholder:function(){var e=!1;if(this.options.title&&!this.multiple){this.selectpicker.view.titleOption||(this.selectpicker.view.titleOption=document.createElement("option")),e=!0;var t=this.$element[0],i=!1,s=!this.selectpicker.view.titleOption.parentNode;if(s)this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="",i=void 0===z(t.options[t.selectedIndex]).attr("selected")&&void 0===this.$element.data("selected");!s&&0===this.selectpicker.view.titleOption.index||t.insertBefore(this.selectpicker.view.titleOption,t.firstChild),i&&(t.selectedIndex=0)}return e},buildData:function(){var p=':not([hidden]):not([data-hidden="true"])',u=[],f=0,e=this.setPlaceholder()?1:0;this.options.hideDisabled&&(p+=":not(:disabled)");var t=this.$element[0].querySelectorAll("select > *"+p);function m(e){var t=u[u.length-1];t&&"divider"===t.type&&(t.optID||e.optID)||((e=e||{}).type="divider",u.push(e))}function v(e,t){if((t=t||{}).divider="true"===e.getAttribute("data-divider"),t.divider)m({optID:t.optID});else{var i=u.length,s=e.style.cssText,n=s?S(s):"",o=(e.className||"")+(t.optgroupClass||"");t.optID&&(o="opt "+o),t.optionClass=o.trim(),t.inlineStyle=n,t.text=e.textContent,t.content=e.getAttribute("data-content"),t.tokens=e.getAttribute("data-tokens"),t.subtext=e.getAttribute("data-subtext"),t.icon=e.getAttribute("data-icon"),e.liIndex=i,t.display=t.content||t.text,t.type="option",t.index=i,t.option=e,t.selected=!!e.selected,t.disabled=t.disabled||!!e.disabled,u.push(t)}}function i(e,t){var i=t[e],s=t[e-1],n=t[e+1],o=i.querySelectorAll("option"+p);if(o.length){var r,l,a={display:S(i.label),subtext:i.getAttribute("data-subtext"),icon:i.getAttribute("data-icon"),type:"optgroup-label",optgroupClass:" "+(i.className||"")};f++,s&&m({optID:f}),a.optID=f,u.push(a);for(var c=0,d=o.length;c<d;c++){var h=o[c];0===c&&(l=(r=u.length-1)+d),v(h,{headerIndex:r,lastIndex:l,optID:a.optID,optgroupClass:a.optgroupClass,disabled:i.disabled})}n&&m({optID:f})}}for(var s=t.length;e<s;e++){var n=t[e];"OPTGROUP"!==n.tagName?v(n,{}):i(e,t)}this.selectpicker.main.data=this.selectpicker.current.data=u},buildList:function(){var s=this,e=this.selectpicker.main.data,n=[],o=0;function t(e){var t,i=0;switch(e.type){case"divider":t=K.li(!1,V.DIVIDER,e.optID?e.optID+"div":void 0);break;case"option":(t=K.li(K.a(K.text.call(s,e),e.optionClass,e.inlineStyle),"",e.optID)).firstChild&&(t.firstChild.id=s.selectId+"-"+e.index);break;case"optgroup-label":t=K.li(K.label.call(s,e),"dropdown-header"+e.optgroupClass,e.optID)}n.push(t),e.display&&(i+=e.display.length),e.subtext&&(i+=e.subtext.length),e.icon&&(i+=1),o<i&&(o=i,s.selectpicker.view.widestOption=n[n.length-1])}!s.options.showTick&&!s.multiple||_.checkMark.parentNode||(_.checkMark.className=this.options.iconBase+" "+s.options.tickIcon+" check-mark",_.a.appendChild(_.checkMark));for(var i=e.length,r=0;r<i;r++){t(e[r])}this.selectpicker.main.elements=this.selectpicker.current.elements=n},findLis:function(){return this.$menuInner.find(".inner > li")},render:function(){var e,t=this,i=this.$element[0],s=this.setPlaceholder()&&0===i.selectedIndex,n=O(i,this.options.hideDisabled),o=n.length,r=this.$button[0],l=r.querySelector(".filter-option-inner-inner"),a=document.createTextNode(this.options.multipleSeparator),c=_.fragment.cloneNode(!1),d=!1;if(r.classList.toggle("bs-placeholder",t.multiple?!o:!T(i,n)),this.tabIndex(),"static"===this.options.selectedTextFormat)c=K.text.call(this,{text:this.options.title},!0);else if(!1===(this.multiple&&-1!==this.options.selectedTextFormat.indexOf("count")&&1<o&&(1<(e=this.options.selectedTextFormat.split(">")).length&&o>e[1]||1===e.length&&2<=o))){if(!s){for(var h=0;h<o&&h<50;h++){var p=n[h],u=this.selectpicker.main.data[p.liIndex],f={};this.multiple&&0<h&&c.appendChild(a.cloneNode(!1)),p.title?f.text=p.title:u&&(u.content&&t.options.showContent?(f.content=u.content.toString(),d=!0):(t.options.showIcon&&(f.icon=u.icon),t.options.showSubtext&&!t.multiple&&u.subtext&&(f.subtext=" "+u.subtext),f.text=p.textContent.trim())),c.appendChild(K.text.call(this,f,!0))}49<o&&c.appendChild(document.createTextNode("..."))}}else{var m=':not([hidden]):not([data-hidden="true"]):not([data-divider="true"])';this.options.hideDisabled&&(m+=":not(:disabled)");var v=this.$element[0].querySelectorAll("select > option"+m+", optgroup"+m+" option"+m).length,g="function"==typeof this.options.countSelectedText?this.options.countSelectedText(o,v):this.options.countSelectedText;c=K.text.call(this,{text:g.replace("{0}",o.toString()).replace("{1}",v.toString())},!0)}if(null==this.options.title&&(this.options.title=this.$element.attr("title")),c.childNodes.length||(c=K.text.call(this,{text:void 0!==this.options.title?this.options.title:this.options.noneSelectedText},!0)),r.title=c.textContent.replace(/<[^>]*>?/g,"").trim(),this.options.sanitize&&d&&P([c],t.options.whiteList,t.options.sanitizeFn),l.innerHTML="",l.appendChild(c),R.major<4&&this.$newElement[0].classList.contains("bs3-has-addon")){var b=r.querySelector(".filter-expand"),w=l.cloneNode(!0);w.className="filter-expand",b?r.replaceChild(w,b):r.appendChild(w)}this.$element.trigger("rendered"+j)},setStyle:function(e,t){var i,s=this.$button[0],n=this.$newElement[0],o=this.options.style.trim();this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,"")),R.major<4&&(n.classList.add("bs3"),n.parentNode.classList.contains("input-group")&&(n.previousElementSibling||n.nextElementSibling)&&(n.previousElementSibling||n.nextElementSibling).classList.contains("input-group-addon")&&n.classList.add("bs3-has-addon")),i=e?e.trim():o,"add"==t?i&&s.classList.add.apply(s.classList,i.split(" ")):"remove"==t?i&&s.classList.remove.apply(s.classList,i.split(" ")):(o&&s.classList.remove.apply(s.classList,o.split(" ")),i&&s.classList.add.apply(s.classList,i.split(" ")))},liHeight:function(e){if(e||!1!==this.options.size&&!Object.keys(this.sizeInfo).length){var t=document.createElement("div"),i=document.createElement("div"),s=document.createElement("div"),n=document.createElement("ul"),o=document.createElement("li"),r=document.createElement("li"),l=document.createElement("li"),a=document.createElement("a"),c=document.createElement("span"),d=this.options.header&&0<this.$menu.find("."+V.POPOVERHEADER).length?this.$menu.find("."+V.POPOVERHEADER)[0].cloneNode(!0):null,h=this.options.liveSearch?document.createElement("div"):null,p=this.options.actionsBox&&this.multiple&&0<this.$menu.find(".bs-actionsbox").length?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,u=this.options.doneButton&&this.multiple&&0<this.$menu.find(".bs-donebutton").length?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null,f=this.$element.find("option")[0];if(this.sizeInfo.selectWidth=this.$newElement[0].offsetWidth,c.className="text",a.className="dropdown-item "+(f?f.className:""),t.className=this.$menu[0].parentNode.className+" "+V.SHOW,t.style.width=0,"auto"===this.options.width&&(i.style.minWidth=0),i.className=V.MENU+" "+V.SHOW,s.className="inner "+V.SHOW,n.className=V.MENU+" inner "+("4"===R.major?V.SHOW:""),o.className=V.DIVIDER,r.className="dropdown-header",c.appendChild(document.createTextNode("\u200b")),a.appendChild(c),l.appendChild(a),r.appendChild(c.cloneNode(!0)),this.selectpicker.view.widestOption&&n.appendChild(this.selectpicker.view.widestOption.cloneNode(!0)),n.appendChild(l),n.appendChild(o),n.appendChild(r),d&&i.appendChild(d),h){var m=document.createElement("input");h.className="bs-searchbox",m.className="form-control",h.appendChild(m),i.appendChild(h)}p&&i.appendChild(p),s.appendChild(n),i.appendChild(s),u&&i.appendChild(u),t.appendChild(i),document.body.appendChild(t);var v,g=l.offsetHeight,b=r?r.offsetHeight:0,w=d?d.offsetHeight:0,I=h?h.offsetHeight:0,x=p?p.offsetHeight:0,k=u?u.offsetHeight:0,y=z(o).outerHeight(!0),$=!!window.getComputedStyle&&window.getComputedStyle(i),S=i.offsetWidth,E=$?null:z(i),C={vert:L($?$.paddingTop:E.css("paddingTop"))+L($?$.paddingBottom:E.css("paddingBottom"))+L($?$.borderTopWidth:E.css("borderTopWidth"))+L($?$.borderBottomWidth:E.css("borderBottomWidth")),horiz:L($?$.paddingLeft:E.css("paddingLeft"))+L($?$.paddingRight:E.css("paddingRight"))+L($?$.borderLeftWidth:E.css("borderLeftWidth"))+L($?$.borderRightWidth:E.css("borderRightWidth"))},O={vert:C.vert+L($?$.marginTop:E.css("marginTop"))+L($?$.marginBottom:E.css("marginBottom"))+2,horiz:C.horiz+L($?$.marginLeft:E.css("marginLeft"))+L($?$.marginRight:E.css("marginRight"))+2};s.style.overflowY="scroll",v=i.offsetWidth-S,document.body.removeChild(t),this.sizeInfo.liHeight=g,this.sizeInfo.dropdownHeaderHeight=b,this.sizeInfo.headerHeight=w,this.sizeInfo.searchHeight=I,this.sizeInfo.actionsHeight=x,this.sizeInfo.doneButtonHeight=k,this.sizeInfo.dividerHeight=y,this.sizeInfo.menuPadding=C,this.sizeInfo.menuExtras=O,this.sizeInfo.menuWidth=S,this.sizeInfo.menuInnerInnerWidth=S-C.horiz,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth,this.sizeInfo.scrollBarWidth=v,this.sizeInfo.selectHeight=this.$newElement[0].offsetHeight,this.setPositionData()}},getSelectPosition:function(){var e,t=z(window),i=this.$newElement.offset(),s=z(this.options.container);this.options.container&&s.length&&!s.is("body")?((e=s.offset()).top+=parseInt(s.css("borderTopWidth")),e.left+=parseInt(s.css("borderLeftWidth"))):e={top:0,left:0};var n=this.options.windowPadding;this.sizeInfo.selectOffsetTop=i.top-e.top-t.scrollTop(),this.sizeInfo.selectOffsetBot=t.height()-this.sizeInfo.selectOffsetTop-this.sizeInfo.selectHeight-e.top-n[2],this.sizeInfo.selectOffsetLeft=i.left-e.left-t.scrollLeft(),this.sizeInfo.selectOffsetRight=t.width()-this.sizeInfo.selectOffsetLeft-this.sizeInfo.selectWidth-e.left-n[1],this.sizeInfo.selectOffsetTop-=n[0],this.sizeInfo.selectOffsetLeft-=n[3]},setMenuSize:function(e){this.getSelectPosition();var t,i,s,n,o,r,l,a,c=this.sizeInfo.selectWidth,d=this.sizeInfo.liHeight,h=this.sizeInfo.headerHeight,p=this.sizeInfo.searchHeight,u=this.sizeInfo.actionsHeight,f=this.sizeInfo.doneButtonHeight,m=this.sizeInfo.dividerHeight,v=this.sizeInfo.menuPadding,g=0;if(this.options.dropupAuto&&(l=d*this.selectpicker.current.elements.length+v.vert,a=this.sizeInfo.selectOffsetTop-this.sizeInfo.selectOffsetBot>this.sizeInfo.menuExtras.vert&&l+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot,!0===this.selectpicker.isSearching&&(a=this.selectpicker.dropup),this.$newElement.toggleClass(V.DROPUP,a),this.selectpicker.dropup=a),"auto"===this.options.size)n=3<this.selectpicker.current.elements.length?3*this.sizeInfo.liHeight+this.sizeInfo.menuExtras.vert-2:0,i=this.sizeInfo.selectOffsetBot-this.sizeInfo.menuExtras.vert,s=n+h+p+u+f,r=Math.max(n-v.vert,0),this.$newElement.hasClass(V.DROPUP)&&(i=this.sizeInfo.selectOffsetTop-this.sizeInfo.menuExtras.vert),t=(o=i)-h-p-u-f-v.vert;else if(this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size){for(var b=0;b<this.options.size;b++)"divider"===this.selectpicker.current.data[b].type&&g++;t=(i=d*this.options.size+g*m+v.vert)-v.vert,o=i+h+p+u+f,s=r=""}this.$menu.css({"max-height":o+"px",overflow:"hidden","min-height":s+"px"}),this.$menuInner.css({"max-height":t+"px","overflow-y":"auto","min-height":r+"px"}),this.sizeInfo.menuInnerHeight=Math.max(t,1),this.selectpicker.current.data.length&&this.selectpicker.current.data[this.selectpicker.current.data.length-1].position>this.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth),"auto"===this.options.dropdownAlignRight&&this.$menu.toggleClass(V.MENURIGHT,this.sizeInfo.selectOffsetLeft>this.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRight<this.sizeInfo.totalMenuWidth-c),this.dropdown&&this.dropdown._popper&&this.dropdown._popper.update()},setSize:function(e){if(this.liHeight(e),this.options.header&&this.$menu.css("padding-top",0),!1!==this.options.size){var t=this,i=z(window);this.setMenuSize(),this.options.liveSearch&&this.$searchbox.off("input.setMenuSize propertychange.setMenuSize").on("input.setMenuSize propertychange.setMenuSize",function(){return t.setMenuSize()}),"auto"===this.options.size?i.off("resize"+j+"."+this.selectId+".setMenuSize scroll"+j+"."+this.selectId+".setMenuSize").on("resize"+j+"."+this.selectId+".setMenuSize scroll"+j+"."+this.selectId+".setMenuSize",function(){return t.setMenuSize()}):this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size&&i.off("resize"+j+"."+this.selectId+".setMenuSize scroll"+j+"."+this.selectId+".setMenuSize")}this.createView(!1,!0,e)},setWidth:function(){var i=this;"auto"===this.options.width?requestAnimationFrame(function(){i.$menu.css("min-width","0"),i.$element.on("loaded"+j,function(){i.liHeight(),i.setMenuSize();var e=i.$newElement.clone().appendTo("body"),t=e.css("width","auto").children("button").outerWidth();e.remove(),i.sizeInfo.selectWidth=Math.max(i.sizeInfo.totalMenuWidth,t),i.$newElement.css("width",i.sizeInfo.selectWidth+"px")})}):"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width","")),this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement[0].classList.remove("fit-width")},selectPosition:function(){this.$bsContainer=z('<div class="bs-container" />');function e(e){var t={},i=r.options.display||!!z.fn.dropdown.Constructor.Default&&z.fn.dropdown.Constructor.Default.display;r.$bsContainer.addClass(e.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass(V.DROPUP,e.hasClass(V.DROPUP)),s=e.offset(),l.is("body")?n={top:0,left:0}:((n=l.offset()).top+=parseInt(l.css("borderTopWidth"))-l.scrollTop(),n.left+=parseInt(l.css("borderLeftWidth"))-l.scrollLeft()),o=e.hasClass(V.DROPUP)?0:e[0].offsetHeight,(R.major<4||"static"===i)&&(t.top=s.top-n.top+o,t.left=s.left-n.left),t.width=e[0].offsetWidth,r.$bsContainer.css(t)}var s,n,o,r=this,l=z(this.options.container);this.$button.on("click.bs.dropdown.data-api",function(){r.isDisabled()||(e(r.$newElement),r.$bsContainer.appendTo(r.options.container).toggleClass(V.SHOW,!r.$button.hasClass(V.SHOW)).append(r.$menu))}),z(window).off("resize"+j+"."+this.selectId+" scroll"+j+"."+this.selectId).on("resize"+j+"."+this.selectId+" scroll"+j+"."+this.selectId,function(){r.$newElement.hasClass(V.SHOW)&&e(r.$newElement)}),this.$element.on("hide"+j,function(){r.$menu.data("height",r.$menu.height()),r.$bsContainer.detach()})},setOptionStatus:function(e){var t=this;if(t.noScroll=!1,t.selectpicker.view.visibleElements&&t.selectpicker.view.visibleElements.length)for(var i=0;i<t.selectpicker.view.visibleElements.length;i++){var s=t.selectpicker.current.data[i+t.selectpicker.view.position0],n=s.option;n&&(!0!==e&&t.setDisabled(s.index,s.disabled),t.setSelected(s.index,n.selected))}},setSelected:function(e,t){var i,s,n=this.selectpicker.main.elements[e],o=this.selectpicker.main.data[e],r=void 0!==this.activeIndex,l=this.activeIndex===e||t&&!this.multiple&&!r;o.selected=t,s=n.firstChild,t&&(this.selectedIndex=e),n.classList.toggle("selected",t),l?(this.focusItem(n,o),this.selectpicker.view.currentActive=n,this.activeIndex=e):this.defocusItem(n),s&&(s.classList.toggle("selected",t),t?s.setAttribute("aria-selected",!0):this.multiple?s.setAttribute("aria-selected",!1):s.removeAttribute("aria-selected")),l||r||!t||void 0===this.prevActiveIndex||(i=this.selectpicker.main.elements[this.prevActiveIndex],this.defocusItem(i))},setDisabled:function(e,t){var i,s=this.selectpicker.main.elements[e];this.selectpicker.main.data[e].disabled=t,i=s.firstChild,s.classList.toggle(V.DISABLED,t),i&&("4"===R.major&&i.classList.toggle(V.DISABLED,t),t?(i.setAttribute("aria-disabled",t),i.setAttribute("tabindex",-1)):(i.removeAttribute("aria-disabled"),i.setAttribute("tabindex",0)))},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){this.isDisabled()?(this.$newElement[0].classList.add(V.DISABLED),this.$button.addClass(V.DISABLED).attr("tabindex",-1).attr("aria-disabled",!0)):(this.$button[0].classList.contains(V.DISABLED)&&(this.$newElement[0].classList.remove(V.DISABLED),this.$button.removeClass(V.DISABLED).attr("aria-disabled",!1)),-1!=this.$button.attr("tabindex")||this.$element.data("tabindex")||this.$button.removeAttr("tabindex"))},tabIndex:function(){this.$element.data("tabindex")!==this.$element.attr("tabindex")&&-98!==this.$element.attr("tabindex")&&"-98"!==this.$element.attr("tabindex")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex"))),this.$element.attr("tabindex",-98)},clickListener:function(){var C=this,t=z(document);function e(){C.options.liveSearch?C.$searchbox.trigger("focus"):C.$menuInner.trigger("focus")}function i(){C.dropdown&&C.dropdown._popper&&C.dropdown._popper.state.isCreated?e():requestAnimationFrame(i)}t.data("spaceSelect",!1),this.$button.on("keyup",function(e){/(32)/.test(e.keyCode.toString(10))&&t.data("spaceSelect")&&(e.preventDefault(),t.data("spaceSelect",!1))}),this.$newElement.on("show.bs.dropdown",function(){3<R.major&&!C.dropdown&&(C.dropdown=C.$button.data("bs.dropdown"),C.dropdown._menu=C.$menu[0])}),this.$button.on("click.bs.dropdown.data-api",function(){C.$newElement.hasClass(V.SHOW)||C.setSize()}),this.$element.on("shown"+j,function(){C.$menuInner[0].scrollTop!==C.selectpicker.view.scrollTop&&(C.$menuInner[0].scrollTop=C.selectpicker.view.scrollTop),3<R.major?requestAnimationFrame(i):e()}),this.$menuInner.on("mouseenter","li a",function(e){var t=this.parentElement,i=C.isVirtual()?C.selectpicker.view.position0:0,s=Array.prototype.indexOf.call(t.parentElement.children,t),n=C.selectpicker.current.data[s+i];C.focusItem(t,n,!0)}),this.$menuInner.on("click","li a",function(e,t){var i=z(this),s=C.$element[0],n=C.isVirtual()?C.selectpicker.view.position0:0,o=C.selectpicker.current.data[i.parent().index()+n],r=o.index,l=T(s),a=s.selectedIndex,c=s.options[a],d=!0;if(C.multiple&&1!==C.options.maxOptions&&e.stopPropagation(),e.preventDefault(),!C.isDisabled()&&!i.parent().hasClass(V.DISABLED)){var h=o.option,p=z(h),u=h.selected,f=p.parent("optgroup"),m=f.find("option"),v=C.options.maxOptions,g=f.data("maxOptions")||!1;if(r===C.activeIndex&&(t=!0),t||(C.prevActiveIndex=C.activeIndex,C.activeIndex=void 0),C.multiple){if(h.selected=!u,C.setSelected(r,!u),i.trigger("blur"),!1!==v||!1!==g){var b=v<O(s).length,w=g<f.find("option:selected").length;if(v&&b||g&&w)if(v&&1==v)s.selectedIndex=-1,h.selected=!0,C.setOptionStatus(!0);else if(g&&1==g){for(var I=0;I<m.length;I++){var x=m[I];x.selected=!1,C.setSelected(x.liIndex,!1)}h.selected=!0,C.setSelected(r,!0)}else{var k="string"==typeof C.options.maxOptionsText?[C.options.maxOptionsText,C.options.maxOptionsText]:C.options.maxOptionsText,y="function"==typeof k?k(v,g):k,$=y[0].replace("{n}",v),S=y[1].replace("{n}",g),E=z('<div class="notify"></div>');y[2]&&($=$.replace("{var}",y[2][1<v?0:1]),S=S.replace("{var}",y[2][1<g?0:1])),h.selected=!1,C.$menu.append(E),v&&b&&(E.append(z("<div>"+$+"</div>")),d=!1,C.$element.trigger("maxReached"+j)),g&&w&&(E.append(z("<div>"+S+"</div>")),d=!1,C.$element.trigger("maxReachedGrp"+j)),setTimeout(function(){C.setSelected(r,!1)},10),E[0].classList.add("fadeOut"),setTimeout(function(){E.remove()},1050)}}}else c&&(c.selected=!1),h.selected=!0,C.setSelected(r,!0);!C.multiple||C.multiple&&1===C.options.maxOptions?C.$button.trigger("focus"):C.options.liveSearch&&C.$searchbox.trigger("focus"),d&&(!C.multiple&&a===s.selectedIndex||(A=[h.index,p.prop("selected"),l],C.$element.triggerNative("change")))}}),this.$menu.on("click","li."+V.DISABLED+" a, ."+V.POPOVERHEADER+", ."+V.POPOVERHEADER+" :not(.close)",function(e){e.currentTarget==this&&(e.preventDefault(),e.stopPropagation(),C.options.liveSearch&&!z(e.target).hasClass("close")?C.$searchbox.trigger("focus"):C.$button.trigger("focus"))}),this.$menuInner.on("click",".divider, .dropdown-header",function(e){e.preventDefault(),e.stopPropagation(),C.options.liveSearch?C.$searchbox.trigger("focus"):C.$button.trigger("focus")}),this.$menu.on("click","."+V.POPOVERHEADER+" .close",function(){C.$button.trigger("click")}),this.$searchbox.on("click",function(e){e.stopPropagation()}),this.$menu.on("click",".actions-btn",function(e){C.options.liveSearch?C.$searchbox.trigger("focus"):C.$button.trigger("focus"),e.preventDefault(),e.stopPropagation(),z(this).hasClass("bs-select-all")?C.selectAll():C.deselectAll()}),this.$element.on("change"+j,function(){C.render(),C.$element.trigger("changed"+j,A),A=null}).on("focus"+j,function(){C.options.mobile||C.$button.trigger("focus")})},liveSearchListener:function(){var u=this,f=document.createElement("li");this.$button.on("click.bs.dropdown.data-api",function(){u.$searchbox.val()&&u.$searchbox.val("")}),this.$searchbox.on("click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api",function(e){e.stopPropagation()}),this.$searchbox.on("input propertychange",function(){var e=u.$searchbox.val();if(u.selectpicker.search.elements=[],u.selectpicker.search.data=[],e){var t=[],i=e.toUpperCase(),s={},n=[],o=u._searchStyle(),r=u.options.liveSearchNormalize;r&&(i=w(i));for(var l=0;l<u.selectpicker.main.data.length;l++){var a=u.selectpicker.main.data[l];s[l]||(s[l]=k(a,i,o,r)),s[l]&&void 0!==a.headerIndex&&-1===n.indexOf(a.headerIndex)&&(0<a.headerIndex&&(s[a.headerIndex-1]=!0,n.push(a.headerIndex-1)),s[a.headerIndex]=!0,n.push(a.headerIndex),s[a.lastIndex+1]=!0),s[l]&&"optgroup-label"!==a.type&&n.push(l)}l=0;for(var c=n.length;l<c;l++){var d=n[l],h=n[l-1],p=(a=u.selectpicker.main.data[d],u.selectpicker.main.data[h]);("divider"!==a.type||"divider"===a.type&&p&&"divider"!==p.type&&c-1!==l)&&(u.selectpicker.search.data.push(a),t.push(u.selectpicker.main.elements[d]))}u.activeIndex=void 0,u.noScroll=!0,u.$menuInner.scrollTop(0),u.selectpicker.search.elements=t,u.createView(!0),t.length||(f.className="no-results",f.innerHTML=u.options.noneResultsText.replace("{0}",'"'+S(e)+'"'),u.$menuInner[0].firstChild.appendChild(f))}else u.$menuInner.scrollTop(0),u.createView(!1)})},_searchStyle:function(){return this.options.liveSearchStyle||"contains"},val:function(e){var t=this.$element[0];if(void 0===e)return this.$element.val();var i=T(t);if(A=[null,null,i],this.$element.val(e).trigger("changed"+j,A),this.$newElement.hasClass(V.SHOW))if(this.multiple)this.setOptionStatus(!0);else{var s=(t.options[t.selectedIndex]||{}).liIndex;"number"==typeof s&&(this.setSelected(this.selectedIndex,!1),this.setSelected(s,!0))}return this.render(),A=null,this.$element},changeAll:function(e){if(this.multiple){void 0===e&&(e=!0);var t=this.$element[0],i=0,s=0,n=T(t);t.classList.add("bs-select-hidden");for(var o=0,r=this.selectpicker.current.data,l=r.length;o<l;o++){var a=r[o],c=a.option;c&&!a.disabled&&"divider"!==a.type&&(a.selected&&i++,!0===(c.selected=e)&&s++)}t.classList.remove("bs-select-hidden"),i!==s&&(this.setOptionStatus(),A=[null,null,n],this.$element.triggerNative("change"))}},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},toggle:function(e){(e=e||window.event)&&e.stopPropagation(),this.$button.trigger("click.bs.dropdown.data-api")},keydown:function(e){var t,i,s,n,o,r=z(this),l=r.hasClass("dropdown-toggle"),a=(l?r.closest(".dropdown"):r.closest(F.MENU)).data("this"),c=a.findLis(),d=!1,h=e.which===W&&!l&&!a.options.selectOnTab,p=G.test(e.which)||h,u=a.$menuInner[0].scrollTop,f=!0===a.isVirtual()?a.selectpicker.view.position0:0;if(!(112<=e.which&&e.which<=123))if(!(i=a.$newElement.hasClass(V.SHOW))&&(p||48<=e.which&&e.which<=57||96<=e.which&&e.which<=105||65<=e.which&&e.which<=90)&&(a.$button.trigger("click.bs.dropdown.data-api"),a.options.liveSearch))a.$searchbox.trigger("focus");else{if(e.which===N&&i&&(e.preventDefault(),a.$button.trigger("click.bs.dropdown.data-api").trigger("focus")),p){if(!c.length)return;-1!==(t=(s=a.selectpicker.main.elements[a.activeIndex])?Array.prototype.indexOf.call(s.parentElement.children,s):-1)&&a.defocusItem(s),e.which===B?(-1!==t&&t--,t+f<0&&(t+=c.length),a.selectpicker.view.canHighlight[t+f]||-1===(t=a.selectpicker.view.canHighlight.slice(0,t+f).lastIndexOf(!0)-f)&&(t=c.length-1)):e.which!==M&&!h||(++t+f>=a.selectpicker.view.canHighlight.length&&(t=0),a.selectpicker.view.canHighlight[t+f]||(t=t+1+a.selectpicker.view.canHighlight.slice(t+f+1).indexOf(!0))),e.preventDefault();var m=f+t;e.which===B?0===f&&t===c.length-1?(a.$menuInner[0].scrollTop=a.$menuInner[0].scrollHeight,m=a.selectpicker.current.elements.length-1):d=(o=(n=a.selectpicker.current.data[m]).position-n.height)<u:e.which!==M&&!h||(0===t?m=a.$menuInner[0].scrollTop=0:d=u<(o=(n=a.selectpicker.current.data[m]).position-a.sizeInfo.menuInnerHeight)),s=a.selectpicker.current.elements[m],a.activeIndex=a.selectpicker.current.data[m].index,a.focusItem(s),a.selectpicker.view.currentActive=s,d&&(a.$menuInner[0].scrollTop=o),a.options.liveSearch?a.$searchbox.trigger("focus"):r.trigger("focus")}else if(!r.is("input")&&!q.test(e.which)||e.which===H&&a.selectpicker.keydown.keyHistory){var v,g,b=[];e.preventDefault(),a.selectpicker.keydown.keyHistory+=C[e.which],a.selectpicker.keydown.resetKeyHistory.cancel&&clearTimeout(a.selectpicker.keydown.resetKeyHistory.cancel),a.selectpicker.keydown.resetKeyHistory.cancel=a.selectpicker.keydown.resetKeyHistory.start(),g=a.selectpicker.keydown.keyHistory,/^(.)\1+$/.test(g)&&(g=g.charAt(0));for(var w=0;w<a.selectpicker.current.data.length;w++){var I=a.selectpicker.current.data[w];k(I,g,"startsWith",!0)&&a.selectpicker.view.canHighlight[w]&&b.push(I.index)}if(b.length){var x=0;c.removeClass("active").find("a").removeClass("active"),1===g.length&&(-1===(x=b.indexOf(a.activeIndex))||x===b.length-1?x=0:x++),v=b[x],d=0<u-(n=a.selectpicker.main.data[v]).position?(o=n.position-n.height,!0):(o=n.position-a.sizeInfo.menuInnerHeight,n.position>u+a.sizeInfo.menuInnerHeight),s=a.selectpicker.main.elements[v],a.activeIndex=b[x],a.focusItem(s),s&&s.firstChild.focus(),d&&(a.$menuInner[0].scrollTop=o),r.trigger("focus")}}i&&(e.which===H&&!a.selectpicker.keydown.keyHistory||e.which===D||e.which===W&&a.options.selectOnTab)&&(e.which!==H&&e.preventDefault(),a.options.liveSearch&&e.which===H||(a.$menuInner.find(".active a").trigger("click",!0),r.trigger("focus"),a.options.liveSearch||(e.preventDefault(),z(document).data("spaceSelect",!0))))}},mobile:function(){this.$element[0].classList.add("mobile-device")},refresh:function(){var e=z.extend({},this.options,this.$element.data());this.options=e,this.checkDisabled(),this.setStyle(),this.render(),this.buildData(),this.buildList(),this.setWidth(),this.setSize(!0),this.$element.trigger("refreshed"+j)},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(j).removeData("selectpicker").removeClass("bs-select-hidden selectpicker"),z(window).off(j+"."+this.selectId)}};var J=z.fn.selectpicker;z.fn.selectpicker=Z,z.fn.selectpicker.Constructor=Y,z.fn.selectpicker.noConflict=function(){return z.fn.selectpicker=J,this};var Q=z.fn.dropdown.Constructor._dataApiKeydownHandler||z.fn.dropdown.Constructor.prototype.keydown;z(document).off("keydown.bs.dropdown.data-api").on("keydown.bs.dropdown.data-api",':not(.bootstrap-select) > [data-toggle="dropdown"]',Q).on("keydown.bs.dropdown.data-api",":not(.bootstrap-select) > .dropdown-menu",Q).on("keydown"+j,'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',Y.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',function(e){e.stopPropagation()}),z(window).on("load"+j+".data-api",function(){z(".selectpicker").each(function(){var e=z(this);Z.call(e,e.data())})})}(e)});
-//# sourceMappingURL=bootstrap-select.min.js.map
\ No newline at end of file
diff --git a/web/js/bootstrap-selectpicker/bootstrap-select.min.js.map b/web/js/bootstrap-selectpicker/bootstrap-select.min.js.map
deleted file mode 100644
index 88b95e0bc8..0000000000
--- a/web/js/bootstrap-selectpicker/bootstrap-select.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../js/bootstrap-select.js"],"names":["$","DISALLOWED_ATTRIBUTES","uriAttrs","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","i","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","toLowerCase","inArray","Boolean","nodeValue","match","regExp","filter","index","value","RegExp","l","length","sanitizeHtml","unsafeElements","whiteList","sanitizeFn","whitelistKeys","Object","keys","len","elements","querySelectorAll","j","len2","el","elName","indexOf","attributeList","slice","call","attributes","whitelistedAttributes","concat","k","len3","removeAttribute","parentNode","removeChild","document","createElement","view","classListProp","protoProp","elemCtrProto","Element","objCtr","classListGetter","$elem","this","add","classes","Array","prototype","arguments","join","addClass","remove","removeClass","toggle","force","toggleClass","contains","hasClass","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","window","toString","testElement","classList","_add","DOMTokenList","_remove","forEach","bind","_toggle","token","startsWith","search","TypeError","string","String","stringLength","searchString","searchLength","position","pos","Number","start","Math","min","max","charCodeAt","getSelectedOptions","select","ignoreDisabled","opt","selectedOptions","options","disabled","tagName","push","getSelectValues","multiple","object","$defineProperty","result","error","writable","o","r","hasOwnProperty","HTMLSelectElement","valHooks","useDefault","_set","set","elem","data","apply","changedArguments","EventIsSupported","Event","e","stringSearch","method","normalize","stringTypes","searchSuccess","stringType","replace","normalizeToBase","toUpperCase","toInteger","parseInt","fn","triggerNative","eventName","event","dispatchEvent","bubbles","createEvent","initEvent","fireEvent","createEventObject","eventType","trigger","deburredLetters","À","Á","Â","Ã","Ä","Å","à","á","â","ã","ä","å","Ç","ç","Ð","ð","È","É","Ê","Ë","è","é","ê","ë","Ì","Í","Î","Ï","ì","í","î","ï","Ñ","ñ","Ò","Ó","Ô","Õ","Ö","Ø","ò","ó","ô","õ","ö","ø","Ù","Ú","Û","Ü","ù","ú","û","ü","Ý","ý","ÿ","Æ","æ","Þ","þ","ß","Ā","Ă","Ą","ā","ă","ą","Ć","Ĉ","Ċ","Č","ć","ĉ","ċ","č","Ď","Đ","ď","đ","Ē","Ĕ","Ė","Ę","Ě","ē","ĕ","ė","ę","ě","Ĝ","Ğ","Ġ","Ģ","ĝ","ğ","ġ","ģ","Ĥ","Ħ","ĥ","ħ","Ĩ","Ī","Ĭ","Į","İ","ĩ","ī","ĭ","į","ı","Ĵ","ĵ","Ķ","ķ","ĸ","Ĺ","Ļ","Ľ","Ŀ","Ł","ĺ","ļ","ľ","ŀ","ł","Ń","Ņ","Ň","Ŋ","ń","ņ","ň","ŋ","Ō","Ŏ","Ő","ō","ŏ","ő","Ŕ","Ŗ","Ř","ŕ","ŗ","ř","Ś","Ŝ","Ş","Š","ś","ŝ","ş","š","Ţ","Ť","Ŧ","ţ","ť","ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","ũ","ū","ŭ","ů","ű","ų","Ŵ","ŵ","Ŷ","ŷ","Ÿ","Ź","Ż","Ž","ź","ż","ž","Ĳ","ĳ","Œ","œ","ŉ","ſ","reLatin","reComboMark","deburrLetter","key","map","source","testRegexp","replaceRegexp","htmlEscape","&","<",">","\"","'","`","test","escaper","keyCodeMap","32","48","49","50","51","52","53","54","55","56","57","59","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","96","97","98","99","100","101","102","103","104","105","keyCodes","version","success","major","full","dropdown","Constructor","VERSION","split","err","selectId","EVENT_KEY","classNames","DISABLED","DIVIDER","SHOW","DROPUP","MENU","MENURIGHT","MENULEFT","BUTTONCLASS","POPOVERHEADER","ICONBASE","TICKICON","Selector","elementTemplates","subtext","whitespace","createTextNode","fragment","createDocumentFragment","setAttribute","className","text","cloneNode","checkMark","REGEXP_ARROW","REGEXP_TAB_OR_ESCAPE","generateOption","content","optgroup","nodeType","appendChild","innerHTML","inline","insertAdjacentHTML","useFragment","subtextElement","iconElement","textElement","textContent","icon","iconBase","childNodes","label","display","Selectpicker","element","that","$element","$newElement","$button","$menu","selectpicker","main","current","isSearching","keydown","keyHistory","resetKeyHistory","setTimeout","sizeInfo","title","winPad","windowPadding","val","render","refresh","setStyle","selectAll","deselectAll","destroy","show","hide","init","Plugin","option","args","_option","shift","BootstrapVersion","console","warn","toUpdate","DEFAULTS","style","name","tickIcon","chain","each","$this","is","dataAttributes","dataAttr","config","extend","defaults","template","Function","noneSelectedText","noneResultsText","countSelectedText","numSelected","numTotal","maxOptionsText","numAll","numGroup","selectAllText","deselectAllText","doneButton","doneButtonText","multipleSeparator","styleBase","size","selectedTextFormat","width","container","hideDisabled","showSubtext","showIcon","showContent","dropupAuto","header","liveSearch","liveSearchPlaceholder","liveSearchNormalize","liveSearchStyle","actionsBox","showTick","caret","maxOptions","mobile","selectOnTab","dropdownAlignRight","virtualScroll","sanitize","constructor","id","prop","autofocus","createDropdown","buildData","after","prependTo","children","$menuInner","$searchbox","find","checkDisabled","clickListener","liveSearchListener","focusedParent","setWidth","selectPosition","on","isVirtual","menuInner","emptyMenu","firstChild","replaceChild","scrollTop","hide.bs.dropdown","hidden.bs.dropdown","show.bs.dropdown","shown.bs.dropdown","hasAttribute","off","validity","valid","buildList","multiselectable","inputGroup","parent","drop","searchbox","actionsbox","donebutton","setPositionData","canHighlight","type","height","dividerHeight","dropdownHeaderHeight","liHeight","posinset","createView","setSize","selected","prevActive","active","selectedIndex","liIndex","selectedData","menuInnerHeight","scroll","chunkSize","chunkCount","firstChunk","lastChunk","currentChunk","prevPositions","positionIsDifferent","previousElements","chunks","menuIsDifferent","ceil","round","endOfChunk","position0","position1","activeIndex","prevActiveIndex","defocusItem","visibleElements","setOptionStatus","array1","array2","every","isEqual","marginTop","marginBottom","menuFragment","toSanitize","visibleElementsLen","elText","elementData","lastChild","sanitized","hasScrollBar","menuInnerInnerWidth","offsetWidth","totalMenuWidth","selectWidth","minWidth","actualMenuWidth","newActive","currentActive","focusItem","updateValue","noScroll","liData","noStyle","setPlaceholder","updateIndex","titleOption","isSelected","titleNotAppended","insertBefore","optionSelector","mainData","optID","startIndex","selectOptions","addDivider","previousData","addOption","divider","getAttribute","cssText","inlineStyle","optionClass","optgroupClass","trim","tokens","addOptgroup","previous","next","headerIndex","lastIndex","item","selectData","mainElements","widestOptionLength","buildElement","liElement","combinedLength","widestOption","findLis","countMax","placeholderSelected","selectedCount","button","buttonInner","querySelector","titleFragment","hasContent","tabIndex","thisData","titleOptions","totalCount","tr8nText","filterExpand","clone","newStyle","status","buttonClass","newElement","previousElementSibling","nextElementSibling","menu","menuInnerInner","dropdownHeader","actions","firstOption","input","body","scrollBarWidth","offsetHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","outerHeight","menuStyle","getComputedStyle","menuWidth","menuPadding","vert","paddingTop","css","paddingBottom","borderTopWidth","borderBottomWidth","horiz","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","menuExtras","marginLeft","marginRight","overflowY","selectHeight","getSelectPosition","containerPos","$window","offset","$container","top","left","selectOffsetTop","selectOffsetBot","selectOffsetLeft","scrollLeft","selectOffsetRight","setMenuSize","isAuto","menuHeight","minHeight","_minHeight","maxHeight","menuInnerMinHeight","estimate","isDropup","divHeight","divLength","dropup","max-height","overflow","min-height","overflow-y","_popper","update","requestAnimationFrame","$selectClone","appendTo","btnWidth","outerWidth","$bsContainer","getPlacement","containerPosition","Default","actualHeight","isDisabled","append","detach","selectedOnly","setDisabled","setSelected","activeIndexIsSet","keepActive","removeAttr","$document","setFocus","checkPopperExists","state","isCreated","keyCode","preventDefault","_menu","hoverLi","parentElement","hoverData","retainActive","clickedData","clickedIndex","prevValue","prevIndex","prevOption","triggerChange","stopPropagation","$option","$optgroup","$optgroupOptions","maxOptionsGrp","maxReached","maxReachedGrp","maxOptionsArr","maxTxt","maxTxtGrp","$notify","currentTarget","target","noResults","searchValue","searchMatch","q","cache","cacheArr","searchStyle","_searchStyle","normalizeSearch","cacheLen","liPrev","liSelectedIndex","changeAll","previousSelected","currentSelected","isActive","liActive","activeLi","isToggle","closest","$items","updateScroll","downOnTab","which","isArrowKey","lastIndexOf","liActiveIndex","scrollHeight","matches","cancel","clearTimeout","charAt","matchIndex","focus","before","removeData","old","noConflict","bootstrapKeydown","_dataApiKeydownHandler","$selectpicker","jQuery"],"mappings":";;;;;;;oPAAA,SAAUA,GACR,aAEA,IAAIC,EAAwB,CAAA,WAAa,YAAa,cAElDC,EAAW,CACb,aACA,OACA,OACA,WACA,WACA,SACA,MACA,cAKEC,EAAmB,CAErBC,IAAK,CAAA,QAAU,MAAO,KAAM,OAAQ,OAAQ,WAAY,QAJ7B,kBAK3BC,EAAG,CAAA,SAAW,OAAQ,QAAS,OAC/BC,KAAM,GACNC,EAAG,GACHC,GAAI,GACJC,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,EAAG,GACHC,IAAK,CAAA,MAAQ,MAAO,QAAS,QAAS,UACtCC,GAAI,GACJC,GAAI,GACJC,EAAG,GACHC,IAAK,GACLC,EAAG,GACHC,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,OAAQ,GACRC,EAAG,GACHC,GAAI,IAQFC,EAAmB,8DAOnBC,EAAmB,sIAEvB,SAASC,EAAkBC,EAAMC,GAC/B,IAAIC,EAAWF,EAAKG,SAASC,cAE7B,IAAmD,IAAhDzC,EAAG0C,QAAQH,EAAUD,GACtB,OAAuC,IAApCtC,EAAG0C,QAAQH,EAAUrC,IACfyC,QAAQN,EAAKO,UAAUC,MAAMX,IAAqBG,EAAKO,UAAUC,MAAMV,IAWlF,IALA,IAAIW,EAAS9C,EAAEsC,GAAsBS,OAAO,SAAUC,EAAOC,GAC3D,OAAOA,aAAiBC,SAIjB9B,EAAI,EAAG+B,EAAIL,EAAOM,OAAQhC,EAAI+B,EAAG/B,IACxC,GAAImB,EAASM,MAAMC,EAAO1B,IACxB,OAAO,EAIX,OAAO,EAGT,SAASiC,EAAcC,EAAgBC,EAAWC,GAChD,GAAIA,GAAoC,mBAAfA,EACvB,OAAOA,EAAWF,GAKpB,IAFA,IAAIG,EAAgBC,OAAOC,KAAKJ,GAEvBnC,EAAI,EAAGwC,EAAMN,EAAeF,OAAQhC,EAAIwC,EAAKxC,IAGpD,IAFA,IAAIyC,EAAWP,EAAelC,GAAG0C,iBAAgB,KAExCC,EAAI,EAAGC,EAAOH,EAAST,OAAQW,EAAIC,EAAMD,IAAK,CACrD,IAAIE,EAAKJ,EAASE,GACdG,EAASD,EAAGzB,SAASC,cAEzB,IAAuC,IAAnCgB,EAAcU,QAAQD,GAS1B,IAHA,IAAIE,EAAgB,GAAGC,MAAMC,KAAKL,EAAGM,YACjCC,EAAwB,GAAGC,OAAOlB,EAAS,MAAS,GAAIA,EAAUW,IAAW,IAExEQ,EAAI,EAAGC,EAAOP,EAAchB,OAAQsB,EAAIC,EAAMD,IAAK,CAC1D,IAAIrC,EAAO+B,EAAcM,GAEpBtC,EAAiBC,EAAMmC,IAC1BP,EAAGW,gBAAgBvC,EAAKG,eAZ1ByB,EAAGY,WAAWC,YAAYb,IAqB/B,cAAkBc,SAASC,cAAa,MACxC,SAAUC,GACT,GAAG,YAAgBA,EAAnB,CAEA,IAAIC,EAAgB,YAChBC,EAAY,YACZC,EAAeH,EAAKI,QAAQF,GAC5BG,EAAS5B,OACT6B,EAAkB,WAChB,IAAIC,EAAQxF,EAAEyF,MAEd,MAAO,CACLC,IAAK,SAAUC,GAEb,OADAA,EAAUC,MAAMC,UAAUxB,MAAMC,KAAKwB,WAAWC,KAAI,KAC7CP,EAAMQ,SAASL,IAExBM,OAAQ,SAAUN,GAEhB,OADAA,EAAUC,MAAMC,UAAUxB,MAAMC,KAAKwB,WAAWC,KAAI,KAC7CP,EAAMU,YAAYP,IAE3BQ,OAAQ,SAAUR,EAASS,GACzB,OAAOZ,EAAMa,YAAYV,EAASS,IAEpCE,SAAU,SAAUX,GAClB,OAAOH,EAAMe,SAASZ,MAKhC,GAAIL,EAAOkB,eAAgB,CACzB,IAAIC,EAAoB,CACtBC,IAAKnB,EACLoB,YAAY,EACZC,cAAc,GAEhB,IACEtB,EAAOkB,eAAepB,EAAcF,EAAeuB,GACnD,MAAOI,QAGWC,IAAdD,EAAGE,SAAuC,aAAfF,EAAGE,SAChCN,EAAkBE,YAAa,EAC/BrB,EAAOkB,eAAepB,EAAcF,EAAeuB,UAG9CnB,EAAOH,GAAW6B,kBAC3B5B,EAAa4B,iBAAiB9B,EAAeK,IA7CjD,CA+CE0B,QAGJ,IA8CQT,EAUAU,EAxDJC,EAAcpC,SAASC,cAAa,KAIxC,GAFAmC,EAAYC,UAAU1B,IAAG,KAAO,OAE3ByB,EAAYC,UAAUd,SAAQ,MAAQ,CACzC,IAAIe,EAAOC,aAAazB,UAAUH,IAC9B6B,EAAUD,aAAazB,UAAUI,OAErCqB,aAAazB,UAAUH,IAAM,WAC3BE,MAAMC,UAAU2B,QAAQlD,KAAKwB,UAAWuB,EAAKI,KAAKhC,QAGpD6B,aAAazB,UAAUI,OAAS,WAC9BL,MAAMC,UAAU2B,QAAQlD,KAAKwB,UAAWyB,EAAQE,KAAKhC,QAQzD,GAJA0B,EAAYC,UAAUjB,OAAM,MAAO,GAI/BgB,EAAYC,UAAUd,SAAQ,MAAQ,CACxC,IAAIoB,EAAUJ,aAAazB,UAAUM,OAErCmB,aAAazB,UAAUM,OAAS,SAAUwB,EAAOvB,GAC/C,OAAI,KAAKN,YAAcL,KAAKa,SAASqB,KAAYvB,EACxCA,EAEAsB,EAAQpD,KAAKmB,KAAMkC,IA6BX,SAAbC,EAAuBC,GACzB,GAAY,MAARpC,KACF,MAAM,IAAIqC,UAEZ,IAAIC,EAASC,OAAOvC,MACpB,GAAIoC,GAAmC,mBAAzBX,EAAS5C,KAAKuD,GAC1B,MAAM,IAAIC,UAEZ,IAAIG,EAAeF,EAAO3E,OACtB8E,EAAeF,OAAOH,GACtBM,EAAeD,EAAa9E,OAC5BgF,EAA8B,EAAnBtC,UAAU1C,OAAa0C,UAAU,QAAKgB,EAEjDuB,EAAMD,EAAWE,OAAOF,GAAY,EACpCC,GAAOA,IACTA,EAAM,GAER,IAAIE,EAAQC,KAAKC,IAAID,KAAKE,IAAIL,EAAK,GAAIJ,GAEvC,GAA2BA,EAAvBE,EAAeI,EACjB,OAAO,EAGT,IADA,IAAIvF,GAAS,IACJA,EAAQmF,GACf,GAAIJ,EAAOY,WAAWJ,EAAQvF,IAAUkF,EAAaS,WAAW3F,GAC9D,OAAO,EAGX,OAAO,EAwCb,SAAS4F,EAAoBC,EAAQC,GACnC,IAEIC,EAFAC,EAAkBH,EAAOG,gBACzBC,EAAU,GAGd,GAAIH,EAAgB,CAClB,IAAK,IAAI1H,EAAI,EAAGwC,EAAMoF,EAAgB5F,OAAQhC,EAAIwC,EAAKxC,KACrD2H,EAAMC,EAAgB5H,IAEZ8H,UAAuC,aAA3BH,EAAIlE,WAAWsE,SAA0BJ,EAAIlE,WAAWqE,UAC5ED,EAAQG,KAAKL,GAIjB,OAAOE,EAGT,OAAOD,EAIT,SAASK,EAAiBR,EAAQG,GAKhC,IAJA,IAEID,EAFA9F,EAAQ,GACRgG,EAAUD,GAAmBH,EAAOG,gBAG/B5H,EAAI,EAAGwC,EAAMqF,EAAQ7F,OAAQhC,EAAIwC,EAAKxC,KAC7C2H,EAAME,EAAQ7H,IAEJ8H,UAAuC,aAA3BH,EAAIlE,WAAWsE,SAA0BJ,EAAIlE,WAAWqE,UAC5EjG,EAAMmG,KAAKL,EAAI9F,OAInB,OAAK4F,EAAOS,SAILrG,EAHGA,EAAMG,OAAgBH,EAAM,GAAb,KA/H3BkE,EAAc,KAUTa,OAAOnC,UAAU+B,aAGdpB,EAAkB,WAEpB,IACE,IAAI+C,EAAS,GACTC,EAAkB9F,OAAO8C,eACzBiD,EAASD,EAAgBD,EAAQA,EAAQA,IAAWC,EACxD,MAAOE,IAET,OAAOD,EARY,GAUjBvC,EAAW,GAAGA,SA+BdV,EACFA,EAAewB,OAAOnC,UAAW,aAAc,CAC7C5C,MAAS2E,EACThB,cAAgB,EAChB+C,UAAY,IAGd3B,OAAOnC,UAAU+B,WAAaA,GAK/BlE,OAAOC,OACVD,OAAOC,KAAO,SACZiG,EACAlF,EACAmF,GAKA,IAAKnF,KAFLmF,EAAI,GAEMD,EAERC,EAAEC,eAAexF,KAAKsF,EAAGlF,IAAMmF,EAAET,KAAK1E,GAGxC,OAAOmF,IAIPE,oBAAsBA,kBAAkBlE,UAAUiE,eAAc,oBAClEpG,OAAO8C,eAAeuD,kBAAkBlE,UAAW,kBAAmB,CACpEa,IAAK,WACH,OAAOjB,KAAK3B,iBAAgB,eAiDlC,IAAIkG,EAAW,CACbC,YAAY,EACZC,KAAMlK,EAAEgK,SAASnB,OAAOsB,KAG1BnK,EAAEgK,SAASnB,OAAOsB,IAAM,SAAUC,EAAMnH,GAGtC,OAFIA,IAAU+G,EAASC,YAAYjK,EAAEoK,GAAMC,KAAI,YAAa,GAErDL,EAASE,KAAKI,MAAM7E,KAAMK,YAGnC,IAAIyE,EAAmB,KAEnBC,EAAmB,WACrB,IAEE,OADA,IAAIC,MAAK,WACF,EACP,MAAOC,GACP,OAAO,GALY,GAqCvB,SAASC,EAAcrJ,EAAI4G,EAAc0C,EAAQC,GAQ/C,IAPA,IAAIC,EAAc,CACZ,UACA,UACA,UAEFC,GAAgB,EAEX3J,EAAI,EAAGA,EAAI0J,EAAY1H,OAAQhC,IAAK,CAC3C,IAAI4J,EAAaF,EAAY1J,GACzB2G,EAASzG,EAAG0J,GAEhB,GAAIjD,IACFA,EAASA,EAAOb,WAGG,YAAf8D,IACFjD,EAASA,EAAOkD,QAAO,WAAa,KAGlCJ,IAAW9C,EAASmD,EAAgBnD,IACxCA,EAASA,EAAOoD,cAGdJ,EADa,aAAXH,EAC8C,GAAhC7C,EAAO5D,QAAQ+D,GAEfH,EAAOH,WAAWM,IAGjB,MAIvB,OAAO6C,EAGT,SAASK,EAAWnI,GAClB,OAAOoI,SAASpI,EAAO,KAAO,EAjEhCjD,EAAEsL,GAAGC,cAAgB,SAAUC,GAC7B,IACIC,EADAxH,EAAKwB,KAAK,GAGVxB,EAAGyH,eACDlB,EAEFiB,EAAQ,IAAIhB,MAAMe,EAAW,CAC3BG,SAAS,KAIXF,EAAQ1G,SAAS6G,YAAW,UACtBC,UAAUL,GAAW,GAAM,GAGnCvH,EAAGyH,cAAcD,IACRxH,EAAG6H,YACZL,EAAQ1G,SAASgH,qBACXC,UAAYR,EAClBvH,EAAG6H,UAAS,KAAQN,EAAWC,IAG/BhG,KAAKwG,QAAQT,IA+CjB,IAAIU,EAAkB,CAEpBC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAC1EC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAC1EC,OAAQ,IAAMC,OAAQ,IACtBC,OAAQ,IAAMC,OAAQ,IACtBC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAChDC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAChDC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAChDC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAChDC,OAAQ,IAAMC,OAAQ,IACtBC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAC1EC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAC1EC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAChDC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IAAKC,OAAQ,IAChDC,OAAQ,IAAMC,OAAQ,IAAKC,OAAQ,IACnCC,OAAQ,KAAMC,OAAQ,KACtBC,OAAQ,KAAMC,OAAQ,KACtBC,OAAQ,KAERC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAC1BC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACtFC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACtFC,SAAU,IAAMC,SAAU,IAC1BC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,KAAMC,SAAU,KAC1BC,SAAU,KAAMC,SAAU,KAC1BC,SAAU,KAAMC,SAAU,KAIxBC,EAAU,8CAiBVC,EAAchV,OANJ,gFAMoB,KAElC,SAASiV,EAAcC,GACrB,OAAOlM,EAAgBkM,GAGzB,SAASlN,EAAiBnD,GAExB,OADAA,EAASA,EAAOb,aACCa,EAAOkD,QAAQgN,EAASE,GAAclN,QAAQiN,EAAa,IAI9E,IAU8BG,EAKxBC,EACAC,EACAC,EAOFC,GAd0BJ,EAVd,CACdK,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,UASDT,EAAS,MAAQ5U,OAAOC,KAAK0U,GAAKtS,KAAI,KAAQ,IAC9CwS,EAAarV,OAAOoV,GACpBE,EAAgBtV,OAAOoV,EAAQ,KAC5B,SAAUvQ,GAEf,OADAA,EAAmB,MAAVA,EAAiB,GAAK,GAAKA,EAC7BwQ,EAAWS,KAAKjR,GAAUA,EAAOkD,QAAQuN,EAAeS,GAAWlR,IAT9D,SAAVkR,EAAoBpW,GACtB,OAAOwV,EAAIxV,GAoBf,IAAIqW,EAAa,CACfC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KAGHC,EACM,GADNA,EAEK,GAFLA,EAGK,GAHLA,EAIG,EAJHA,EAKQ,GALRA,EAMU,GAGVC,EAAU,CACZC,SAAS,EACTC,MAAO,KAGT,IACEF,EAAQG,MAAOvc,EAAGsL,GAAGkR,SAASC,YAAYC,SAAW,IAAIC,MAAK,KAAM,GAAGA,MAAK,KAC5EP,EAAQE,MAAQF,EAAQG,KAAK,GAC7BH,EAAQC,SAAU,EAClB,MAAOO,IAIT,IAAIC,EAAW,EAEXC,EAAY,aAEZC,EAAa,CACfC,SAAU,WACVC,QAAS,UACTC,KAAM,OACNC,OAAQ,SACRC,KAAM,gBACNC,UAAW,sBACXC,SAAU,qBAEVC,YAAa,cACbC,cAAe,gBACfC,SAAU,YACVC,SAAU,gBAGRC,EAAW,CACbP,KAAM,IAAML,EAAWK,MAGrBQ,EAAmB,CACrBhc,KAAMmD,SAASC,cAAa,QAC5B5D,EAAG2D,SAASC,cAAa,KACzB6Y,QAAS9Y,SAASC,cAAa,SAC/B3E,EAAG0E,SAASC,cAAa,KACzB1D,GAAIyD,SAASC,cAAa,MAC1B8Y,WAAY/Y,SAASgZ,eAAc,QACnCC,SAAUjZ,SAASkZ,0BAGrBL,EAAiBvd,EAAE6d,aAAY,OAAS,UAClB,MAAlB9B,EAAQE,QAAesB,EAAiBvd,EAAE8d,UAAY,iBAE1DP,EAAiBC,QAAQM,UAAY,aAErCP,EAAiBQ,KAAOR,EAAiBhc,KAAKyc,WAAU,GACxDT,EAAiBQ,KAAKD,UAAY,OAElCP,EAAiBU,UAAYV,EAAiBhc,KAAKyc,WAAU,GAE7D,IAAIE,EAAe,IAAIrb,OAAOiZ,EAAoB,IAAMA,GACpDqC,EAAuB,IAAItb,OAAM,IAAOiZ,EAAe,KAAOA,GAE9DsC,EAAiB,CACnBnd,GAAI,SAAUod,EAAS/Y,EAASgZ,GAC9B,IAAIrd,EAAKsc,EAAiBtc,GAAG+c,WAAU,GAavC,OAXIK,IACuB,IAArBA,EAAQE,UAAuC,KAArBF,EAAQE,SACpCtd,EAAGud,YAAYH,GAEfpd,EAAGwd,UAAYJ,QAII,IAAZ/Y,GAAuC,KAAZA,IAAgBrE,EAAG6c,UAAYxY,GACjE,MAAOgZ,GAA+Crd,EAAG8F,UAAU1B,IAAG,YAAeiZ,GAElFrd,GAGTjB,EAAG,SAAU+d,EAAMzY,EAASoZ,GAC1B,IAAI1e,EAAIud,EAAiBvd,EAAEge,WAAU,GAarC,OAXID,IACoB,KAAlBA,EAAKQ,SACPve,EAAEwe,YAAYT,GAEd/d,EAAE2e,mBAAkB,YAAcZ,SAIf,IAAZzY,GAAuC,KAAZA,GAAgBtF,EAAE+G,UAAU1B,IAAI4E,MAAMjK,EAAE+G,UAAWzB,EAAQgX,MAAK,MAClGoC,GAAQ1e,EAAE6d,aAAY,QAAUa,GAE7B1e,GAGT+d,KAAM,SAAUnV,EAASgW,GACvB,IACIC,EACAC,EAFAC,EAAcxB,EAAiBQ,KAAKC,WAAU,GAIlD,GAAIpV,EAAQyV,QACVU,EAAYN,UAAY7V,EAAQyV,YAC3B,CAGL,GAFAU,EAAYC,YAAcpW,EAAQmV,KAE9BnV,EAAQqW,KAAM,CAChB,IAAIxB,EAAaF,EAAiBE,WAAWO,WAAU,IAIvDc,IAA+B,IAAhBF,EAAuBrB,EAAiBxc,EAAIwc,EAAiBhc,MAAMyc,WAAU,IAChFF,UAAY1Y,KAAKwD,QAAQsW,SAAW,IAAMtW,EAAQqW,KAE9D1B,EAAiBI,SAASa,YAAYM,GACtCvB,EAAiBI,SAASa,YAAYf,GAGpC7U,EAAQ4U,WACVqB,EAAiBtB,EAAiBC,QAAQQ,WAAU,IACrCgB,YAAcpW,EAAQ4U,QACrCuB,EAAYP,YAAYK,IAI5B,IAAoB,IAAhBD,EACF,KAAuC,EAAhCG,EAAYI,WAAWpc,QAC5Bwa,EAAiBI,SAASa,YAAYO,EAAYI,WAAW,SAG/D5B,EAAiBI,SAASa,YAAYO,GAGxC,OAAOxB,EAAiBI,UAG1ByB,MAAO,SAAUxW,GACf,IACIiW,EACAC,EAFAC,EAAcxB,EAAiBQ,KAAKC,WAAU,GAMlD,GAFAe,EAAYN,UAAY7V,EAAQyW,QAE5BzW,EAAQqW,KAAM,CAChB,IAAIxB,EAAaF,EAAiBE,WAAWO,WAAU,IAEvDc,EAAcvB,EAAiBhc,KAAKyc,WAAU,IAClCF,UAAY1Y,KAAKwD,QAAQsW,SAAW,IAAMtW,EAAQqW,KAE9D1B,EAAiBI,SAASa,YAAYM,GACtCvB,EAAiBI,SAASa,YAAYf,GAWxC,OARI7U,EAAQ4U,WACVqB,EAAiBtB,EAAiBC,QAAQQ,WAAU,IACrCgB,YAAcpW,EAAQ4U,QACrCuB,EAAYP,YAAYK,IAG1BtB,EAAiBI,SAASa,YAAYO,GAE/BxB,EAAiBI,WAIxB2B,EAAe,SAAUC,EAAS3W,GACpC,IAAI4W,EAAOpa,KAGNuE,EAASC,aACZjK,EAAEgK,SAASnB,OAAOsB,IAAMH,EAASE,KACjCF,EAASC,YAAa,GAGxBxE,KAAIqa,SAAY9f,EAAE4f,GAClBna,KAAIsa,YAAe,KACnBta,KAAIua,QAAW,KACfva,KAAIwa,MAAS,KACbxa,KAAKwD,QAAUA,EACfxD,KAAKya,aAAe,CAClBC,KAAM,GACNtY,OAAQ,GACRuY,QAAS,GACTnb,KAAM,GACNob,aAAa,EACbC,QAAS,CACPC,WAAY,GACZC,gBAAiB,CACfjY,MAAO,WACL,OAAOkY,WAAW,WAChBZ,EAAKK,aAAaI,QAAQC,WAAa,IACtC,SAMX9a,KAAKib,SAAW,GAIW,OAAvBjb,KAAKwD,QAAQ0X,QACflb,KAAKwD,QAAQ0X,MAAQlb,KAAIqa,SAAUzd,KAAI,UAIzC,IAAIue,EAASnb,KAAKwD,QAAQ4X,cACJ,iBAAXD,IACTnb,KAAKwD,QAAQ4X,cAAgB,CAACD,EAAQA,EAAQA,EAAQA,IAIxDnb,KAAKqb,IAAMnB,EAAa9Z,UAAUib,IAClCrb,KAAKsb,OAASpB,EAAa9Z,UAAUkb,OACrCtb,KAAKub,QAAUrB,EAAa9Z,UAAUmb,QACtCvb,KAAKwb,SAAWtB,EAAa9Z,UAAUob,SACvCxb,KAAKyb,UAAYvB,EAAa9Z,UAAUqb,UACxCzb,KAAK0b,YAAcxB,EAAa9Z,UAAUsb,YAC1C1b,KAAK2b,QAAUzB,EAAa9Z,UAAUub,QACtC3b,KAAKQ,OAAS0Z,EAAa9Z,UAAUI,OACrCR,KAAK4b,KAAO1B,EAAa9Z,UAAUwb,KACnC5b,KAAK6b,KAAO3B,EAAa9Z,UAAUyb,KAEnC7b,KAAK8b,QAooEP,SAASC,EAAQC,GAEf,IAsDIxe,EAtDAye,EAAO5b,UAGP6b,EAAUF,EAKd,GAHA,GAAGG,MAAMtX,MAAMoX,IAGVtF,EAAQC,QAAS,CAEpB,IACED,EAAQG,MAAOvc,EAAGsL,GAAGkR,SAASC,YAAYC,SAAW,IAAIC,MAAK,KAAM,GAAGA,MAAK,KAC5E,MAAOC,GAEH+C,EAAakC,iBACfzF,EAAQG,KAAOoD,EAAakC,iBAAiBlF,MAAK,KAAM,GAAGA,MAAK,MAEhEP,EAAQG,KAAO,CAACH,EAAQE,MAAO,IAAK,KAEpCwF,QAAQC,KACN,0RAGAnF,IAKNR,EAAQE,MAAQF,EAAQG,KAAK,GAC7BH,EAAQC,SAAU,EAGpB,GAAsB,MAAlBD,EAAQE,MAAe,CAGzB,IAAI0F,EAAW,GAEXrC,EAAasC,SAASC,QAAUnF,EAAWQ,aAAayE,EAAS5Y,KAAI,CAAG+Y,KAAM,QAAShE,UAAW,gBAClGwB,EAAasC,SAAS1C,WAAaxC,EAAWU,UAAUuE,EAAS5Y,KAAI,CAAG+Y,KAAM,WAAYhE,UAAW,aACrGwB,EAAasC,SAASG,WAAarF,EAAWW,UAAUsE,EAAS5Y,KAAI,CAAG+Y,KAAM,WAAYhE,UAAW,aAEzGpB,EAAWE,QAAU,mBACrBF,EAAWG,KAAO,OAClBH,EAAWQ,YAAc,YACzBR,EAAWS,cAAgB,iBAC3BT,EAAWU,SAAW,GACtBV,EAAWW,SAAW,gBAEtB,IAAK,IAAItc,EAAI,EAAGA,EAAI4gB,EAAS5e,OAAQhC,IAAK,CACpCqgB,EAASO,EAAS5gB,GACtBue,EAAasC,SAASR,EAAOU,MAAQpF,EAAW0E,EAAOtD,YAK3D,IAAIkE,EAAQ5c,KAAK6c,KAAK,WACpB,IAAIC,EAAQviB,EAAEyF,MACd,GAAG8c,EAAOC,GAAE,UAAY,CACtB,IAAInY,EAAOkY,EAAMlY,KAAI,gBACjBpB,EAA4B,iBAAX0Y,GAAuBA,EAE5C,GAAKtX,GAYE,GAAIpB,EACT,IAAK,IAAI7H,KAAK6H,EACRA,EAAQa,eAAe1I,KACzBiJ,EAAKpB,QAAQ7H,GAAK6H,EAAQ7H,QAfrB,CACT,IAAIqhB,EAAiBF,EAAMlY,OAE3B,IAAK,IAAIqY,KAAYD,EACfA,EAAe3Y,eAAe4Y,KAA6D,IAAhD1iB,EAAE0C,QAAQggB,EAAUziB,WAC1DwiB,EAAeC,GAI1B,IAAIC,EAAS3iB,EAAE4iB,OAAM,GAAKjD,EAAasC,SAAUjiB,EAAEsL,GAAG4U,aAAa2C,UAAY,GAAIJ,EAAgBxZ,GACnG0Z,EAAOG,SAAW9iB,EAAE4iB,OAAM,GAAKjD,EAAasC,SAASa,SAAU9iB,EAAGsL,GAAG4U,aAAa2C,SAAW7iB,EAAEsL,GAAG4U,aAAa2C,SAASC,SAAW,GAAKL,EAAeK,SAAU7Z,EAAQ6Z,UACzKP,EAAMlY,KAAI,eAAkBA,EAAO,IAAIsV,EAAala,KAAMkd,IAStC,iBAAXhB,IAEP1e,EADEoH,EAAKsX,aAAoBoB,SACnB1Y,EAAKsX,GAASrX,MAAMD,EAAMqX,GAE1BrX,EAAKpB,QAAQ0Y,OAM7B,YAAqB,IAAV1e,EAEFA,EAEAof,EAluEX1C,EAAajD,QAAU,UAGvBiD,EAAasC,SAAW,CACtBe,iBAAkB,mBAClBC,gBAAiB,yBACjBC,kBAAmB,SAAUC,EAAaC,GACxC,OAAuB,GAAfD,EAAoB,oBAAsB,sBAEpDE,eAAgB,SAAUC,EAAQC,GAChC,MAAO,CACM,GAAVD,EAAe,+BAAiC,gCACpC,GAAZC,EAAiB,qCAAuC,wCAG7DC,cAAe,aACfC,gBAAiB,eACjBC,YAAY,EACZC,eAAgB,QAChBC,kBAAmB,KACnBC,UAAW,MACX3B,MAAOnF,EAAWQ,YAClBuG,KAAM,OACNnD,MAAO,KACPoD,mBAAoB,SACpBC,OAAO,EACPC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,QAAQ,EACRC,YAAY,EACZC,sBAAuB,KACvBC,qBAAqB,EACrBC,gBAAiB,WACjBC,YAAY,EACZrF,SAAUxC,EAAWU,SACrB2E,SAAUrF,EAAWW,SACrBmH,UAAU,EACV/B,SAAU,CACRgC,MAAO,+BAETC,YAAY,EACZC,QAAQ,EACRC,aAAa,EACbC,oBAAoB,EACpBrE,cAAe,EACfsE,cAAe,IACfzF,SAAS,EACT0F,UAAU,EACV5hB,WAAY,KACZD,UAAWpD,GAGbwf,EAAa9Z,UAAY,CAEvBwf,YAAa1F,EAEb4B,KAAM,WACJ,IAAI1B,EAAOpa,KACP6f,EAAK7f,KAAIqa,SAAUzd,KAAI,MAE3Bwa,IACApX,KAAKoX,SAAW,aAAeA,EAE/BpX,KAAIqa,SAAU,GAAG1Y,UAAU1B,IAAG,oBAE9BD,KAAK6D,SAAW7D,KAAIqa,SAAUyF,KAAI,YAClC9f,KAAK+f,UAAY/f,KAAIqa,SAAUyF,KAAI,aAE/B9f,KAAIqa,SAAU,GAAG1Y,UAAUd,SAAQ,eACrCb,KAAKwD,QAAQ4b,UAAW,GAG1Bpf,KAAIsa,YAAeta,KAAKggB,iBACxBhgB,KAAKigB,YACLjgB,KAAIqa,SACD6F,MAAMlgB,KAAIsa,aACV6F,UAAUngB,KAAIsa,aAEjBta,KAAIua,QAAWva,KAAIsa,YAAa8F,SAAQ,UACxCpgB,KAAIwa,MAASxa,KAAIsa,YAAa8F,SAASlI,EAASP,MAChD3X,KAAIqgB,WAAcrgB,KAAIwa,MAAO4F,SAAQ,UACrCpgB,KAAIsgB,WAActgB,KAAIwa,MAAO+F,KAAI,SAEjCvgB,KAAIqa,SAAU,GAAG1Y,UAAUnB,OAAM,qBAEO,IAApCR,KAAKwD,QAAQic,oBAA6Bzf,KAAIwa,MAAO,GAAG7Y,UAAU1B,IAAIqX,EAAWM,gBAEnE,IAAPiI,GACT7f,KAAIua,QAAS3d,KAAI,UAAYijB,GAG/B7f,KAAKwgB,gBACLxgB,KAAKygB,gBAEDzgB,KAAKwD,QAAQub,YACf/e,KAAK0gB,qBACL1gB,KAAK2gB,cAAgB3gB,KAAIsgB,WAAY,IAErCtgB,KAAK2gB,cAAgB3gB,KAAIqgB,WAAY,GAGvCrgB,KAAKwb,WACLxb,KAAKsb,SACLtb,KAAK4gB,WACD5gB,KAAKwD,QAAQgb,UACfxe,KAAK6gB,iBAEL7gB,KAAIqa,SAAUyG,GAAE,OAAUzJ,EAAW,WACnC,GAAI+C,EAAK2G,YAAa,CAEpB,IAAIC,EAAY5G,EAAIiG,WAAY,GAC5BY,EAAYD,EAAUE,WAAWtI,WAAU,GAG/CoI,EAAUG,aAAaF,EAAWD,EAAUE,YAC5CF,EAAUI,UAAY,KAI5BphB,KAAIwa,MAAO5V,KAAI,OAAS5E,MACxBA,KAAIsa,YAAa1V,KAAI,OAAS5E,MAC1BA,KAAKwD,QAAQ+b,QAAQvf,KAAKuf,SAE9Bvf,KAAIsa,YAAawG,GAAE,CACjBO,mBAAoB,SAAUpc,GAC5BmV,EAAIC,SAAU7T,QAAO,OAAU6Q,EAAWpS,IAE5Cqc,qBAAsB,SAAUrc,GAC9BmV,EAAIC,SAAU7T,QAAO,SAAY6Q,EAAWpS,IAE9Csc,mBAAoB,SAAUtc,GAC5BmV,EAAIC,SAAU7T,QAAO,OAAU6Q,EAAWpS,IAE5Cuc,oBAAqB,SAAUvc,GAC7BmV,EAAIC,SAAU7T,QAAO,QAAW6Q,EAAWpS,MAI3CmV,EAAIC,SAAU,GAAGoH,aAAY,aAC/BzhB,KAAIqa,SAAUyG,GAAE,UAAazJ,EAAW,WACtC+C,EAAIG,QAAS,GAAG5Y,UAAU1B,IAAG,cAE7Bma,EAAIC,SACDyG,GAAE,QAAWzJ,EAAY,WAAY,WACpC+C,EAAIC,SACDgB,IAAIjB,EAAIC,SAAUgB,OAClBqG,IAAG,QAAWrK,EAAY,cAE9ByJ,GAAE,WAAczJ,EAAW,WAEtBrX,KAAK2hB,SAASC,OAAOxH,EAAIG,QAAS,GAAG5Y,UAAUnB,OAAM,cACzD4Z,EAAIC,SAAUqH,IAAG,WAAcrK,KAGnC+C,EAAIG,QAASuG,GAAE,OAAUzJ,EAAW,WAClC+C,EAAIC,SAAU7T,QAAO,SAAUA,QAAO,QACtC4T,EAAIG,QAASmH,IAAG,OAAUrK,OAKhC2D,WAAW,WACTZ,EAAKyH,YACLzH,EAAIC,SAAU7T,QAAO,SAAY6Q,MAIrC2I,eAAgB,WAGd,IAAIZ,EAAYpf,KAAK6D,UAAY7D,KAAKwD,QAAQ4b,SAAY,aAAe,GACrE0C,EAAkB9hB,KAAK6D,SAAW,+BAAiC,GACnEke,EAAa,GACbhC,EAAY/f,KAAK+f,UAAY,aAAe,GAE5CpJ,EAAQE,MAAQ,GAAK7W,KAAIqa,SAAU2H,SAASlhB,SAAQ,iBACtDihB,EAAa,oBAIf,IAAIE,EACAnD,EAAS,GACToD,EAAY,GACZC,EAAa,GACbC,EAAa,GA4EjB,OA1EIpiB,KAAKwD,QAAQsb,SACfA,EACE,eAAiBxH,EAAWS,cAAgB,4EAExC/X,KAAKwD,QAAQsb,OACjB,UAGA9e,KAAKwD,QAAQub,aACfmD,EACE,0FAG6C,OAAvCliB,KAAKwD,QAAQwb,sBAAiC,GAE9C,iBAAmBhM,EAAWhT,KAAKwD,QAAQwb,uBAAyB,KAEtE,uDAAyDhf,KAAKoX,SAAW,qCAI7EpX,KAAK6D,UAAY7D,KAAKwD,QAAQ2b,aAChCgD,EACE,uIAEoE7K,EAAWQ,YAAc,KACvF9X,KAAKwD,QAAQua,cACf,yEACkEzG,EAAWQ,YAAc,KACzF9X,KAAKwD,QAAQwa,gBACf,yBAKJhe,KAAK6D,UAAY7D,KAAKwD,QAAQya,aAChCmE,EACE,uGAEiD9K,EAAWQ,YAAc,KACpE9X,KAAKwD,QAAQ0a,eACf,yBAKR+D,EACE,wCAA0C7C,EAAW2C,EAAa,kCAC9B/hB,KAAKwD,QAAQ4a,UAAY,sBAAiD,WAAzBpe,KAAKwD,QAAQyW,QAAuB,wBAA0B,IAAM,yBAA2B8F,EAAY,+BAAiC/f,KAAKoX,SAAW,0KAOzN,MAAlBT,EAAQE,MAAgB,GAExB,0BACE7W,KAAKwD,QAAQ6Z,SAASgC,MACxB,WAEJ,wBACiB/H,EAAWK,KAAO,KAAyB,MAAlBhB,EAAQE,MAAgB,GAAKS,EAAWG,MAAQ,KACxFqH,EACAoD,EACAC,EACA,qBAAuB7K,EAAWG,KAAO,wBAA0BzX,KAAKoX,SAAW,mBAAqB0K,EAAkB,eACtGxK,EAAWK,KAAO,WAA+B,MAAlBhB,EAAQE,MAAgBS,EAAWG,KAAO,IAAM,oCAGnG2K,EACF,eAGG7nB,EAAE0nB,IAGXI,gBAAiB,WACfriB,KAAKya,aAAajb,KAAK8iB,aAAe,GAGtC,IAAK,IAAI3mB,EAFTqE,KAAKya,aAAajb,KAAK6e,KAAO,EAEd1iB,EAAIqE,KAAKya,aAAaE,QAAQ/V,KAAKjH,OAAQhC,IAAK,CAC9D,IAAIE,EAAKmE,KAAKya,aAAaE,QAAQ/V,KAAKjJ,GACpC2mB,GAAe,EAEH,YAAZzmB,EAAG0mB,MACLD,GAAe,EACfzmB,EAAG2mB,OAASxiB,KAAKib,SAASwH,eACL,mBAAZ5mB,EAAG0mB,MACZD,GAAe,EACfzmB,EAAG2mB,OAASxiB,KAAKib,SAASyH,sBAE1B7mB,EAAG2mB,OAASxiB,KAAKib,SAAS0H,SAGxB9mB,EAAG4H,WAAU6e,GAAe,GAEhCtiB,KAAKya,aAAajb,KAAK8iB,aAAa3e,KAAK2e,GAErCA,IACFtiB,KAAKya,aAAajb,KAAK6e,OACvBxiB,EAAG+mB,SAAW5iB,KAAKya,aAAajb,KAAK6e,MAGvCxiB,EAAG8G,UAAkB,IAANhH,EAAU,EAAIqE,KAAKya,aAAaE,QAAQ/V,KAAKjJ,EAAI,GAAGgH,UAAY9G,EAAG2mB,SAItFzB,UAAW,WACT,OAAuC,IAA/B/gB,KAAKwD,QAAQkc,eAA6B1f,KAAKya,aAAaC,KAAKtc,SAAST,QAAUqC,KAAKwD,QAAQkc,gBAAiD,IAA/B1f,KAAKwD,QAAQkc,eAG1ImD,WAAY,SAAUjI,EAAakI,EAASvH,GAC1C,IAGIwH,EACAC,EAJA5I,EAAOpa,KACPohB,EAAY,EACZ6B,EAAS,GASb,GALAjjB,KAAKya,aAAaG,YAAcA,EAChC5a,KAAKya,aAAaE,QAAUC,EAAc5a,KAAKya,aAAarY,OAASpC,KAAKya,aAAaC,KAEvF1a,KAAKqiB,kBAEDS,EACF,GAAIvH,EACF6F,EAAYphB,KAAIqgB,WAAY,GAAGe,eAC1B,IAAKhH,EAAKvW,SAAU,CACzB,IAAIsW,EAAUC,EAAIC,SAAU,GACxB6I,GAAiB/I,EAAQ3W,QAAQ2W,EAAQ+I,gBAAkB,IAAIC,QAEnE,GAA6B,iBAAlBD,IAAoD,IAAtB9I,EAAK5W,QAAQ6a,KAAgB,CACpE,IAAI+E,EAAehJ,EAAKK,aAAaC,KAAK9V,KAAKse,GAC3CvgB,EAAWygB,GAAgBA,EAAazgB,SAExCA,IACFye,EAAYze,GAAayX,EAAKa,SAASoI,gBAAkBjJ,EAAKa,SAAS0H,UAAY,IAa3F,SAASW,EAAQlC,EAAWtF,GAC1B,IAEIyH,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EATAzF,EAAOjE,EAAKK,aAAaE,QAAQvc,SAAST,OAC1ComB,EAAS,GASTC,GAAkB,EAClBjD,EAAY3G,EAAK2G,YAErB3G,EAAKK,aAAajb,KAAK4hB,UAAYA,EAEnCmC,EAAYxgB,KAAKkhB,KAAK7J,EAAKa,SAASoI,gBAAkBjJ,EAAKa,SAAS0H,SAAW,KAC/Ea,EAAazgB,KAAKmhB,MAAM7F,EAAOkF,IAAc,EAE7C,IAAK,IAAI5nB,EAAI,EAAGA,EAAI6nB,EAAY7nB,IAAK,CACnC,IAAIwoB,GAAcxoB,EAAI,GAAK4nB,EAW3B,GATI5nB,IAAM6nB,EAAa,IACrBW,EAAa9F,GAGf0F,EAAOpoB,GAAK,CACV,EAAM4nB,GAAc5nB,EAAQ,EAAJ,GACxBwoB,IAGG9F,EAAM,WAEUhd,IAAjBsiB,GAA8BvC,EAAY,GAAKhH,EAAKK,aAAaE,QAAQ/V,KAAKuf,EAAa,GAAGxhB,SAAWyX,EAAKa,SAASoI,kBACzHM,EAAehoB,GAsCnB,QAlCqB0F,IAAjBsiB,IAA4BA,EAAe,GAE/CC,EAAgB,CAACxJ,EAAKK,aAAajb,KAAK4kB,UAAWhK,EAAKK,aAAajb,KAAK6kB,WAG1EZ,EAAa1gB,KAAKE,IAAI,EAAG0gB,EAAe,GACxCD,EAAY3gB,KAAKC,IAAIwgB,EAAa,EAAGG,EAAe,GAEpDvJ,EAAKK,aAAajb,KAAK4kB,WAA0B,IAAdrD,EAAsB,EAAKhe,KAAKE,IAAI,EAAG8gB,EAAON,GAAY,KAAO,EACpGrJ,EAAKK,aAAajb,KAAK6kB,WAA0B,IAAdtD,EAAsB1C,EAAQtb,KAAKC,IAAIqb,EAAM0F,EAAOL,GAAW,KAAO,EAEzGG,EAAsBD,EAAc,KAAOxJ,EAAKK,aAAajb,KAAK4kB,WAAaR,EAAc,KAAOxJ,EAAKK,aAAajb,KAAK6kB,eAElGhjB,IAArB+Y,EAAKkK,cACPtB,EAAa5I,EAAKK,aAAaC,KAAKtc,SAASgc,EAAKmK,iBAClDtB,EAAS7I,EAAKK,aAAaC,KAAKtc,SAASgc,EAAKkK,aAC9CvB,EAAW3I,EAAKK,aAAaC,KAAKtc,SAASgc,EAAK8I,eAE5CpH,IACE1B,EAAKkK,cAAgBlK,EAAK8I,eAC5B9I,EAAKoK,YAAYvB,GAEnB7I,EAAKkK,iBAAcjjB,GAGjB+Y,EAAKkK,aAAelK,EAAKkK,cAAgBlK,EAAK8I,eAChD9I,EAAKoK,YAAYzB,SAIQ1hB,IAAzB+Y,EAAKmK,iBAAiCnK,EAAKmK,kBAAoBnK,EAAKkK,aAAelK,EAAKmK,kBAAoBnK,EAAK8I,eACnH9I,EAAKoK,YAAYxB,IAGflH,GAAQ+H,KACVC,EAAmB1J,EAAKK,aAAajb,KAAKilB,gBAAkBrK,EAAKK,aAAajb,KAAKilB,gBAAgB7lB,QAAU,GAG3Gwb,EAAKK,aAAajb,KAAKilB,iBADP,IAAd1D,EACuC3G,EAAKK,aAAaE,QAAQvc,SAE1Bgc,EAAKK,aAAaE,QAAQvc,SAASQ,MAAMwb,EAAKK,aAAajb,KAAK4kB,UAAWhK,EAAKK,aAAajb,KAAK6kB,WAG7IjK,EAAKsK,mBAID9J,IAA8B,IAAdmG,GAAuBjF,KAAOkI,GA5hC1D,SAAkBW,EAAQC,GACxB,OAAOD,EAAOhnB,SAAWinB,EAAOjnB,QAAUgnB,EAAOE,MAAM,SAAU1K,EAAS5c,GACxE,OAAO4c,IAAYyK,EAAOrnB,KA0hC+CunB,CAAQhB,EAAkB1J,EAAKK,aAAajb,KAAKilB,mBAIjH3I,IAAsB,IAAdiF,IAAuBiD,GAAiB,CACnD,IAGIe,EACAC,EAJAhE,EAAY5G,EAAIiG,WAAY,GAC5B4E,EAAe3lB,SAASkZ,yBACxByI,EAAYD,EAAUE,WAAWtI,WAAU,GAG3Cxa,EAAWgc,EAAKK,aAAajb,KAAKilB,gBAClCS,EAAa,GAGjBlE,EAAUG,aAAaF,EAAWD,EAAUE,YAEnCvlB,EAAI,EAAb,IAAK,IAAWwpB,EAAqB/mB,EAAST,OAAQhC,EAAIwpB,EAAoBxpB,IAAK,CACjF,IACIypB,EACAC,EAFAlL,EAAU/b,EAASzC,GAInBye,EAAK5W,QAAQmc,WACfyF,EAASjL,EAAQmL,aAGfD,EAAcjL,EAAKK,aAAaE,QAAQ/V,KAAKjJ,EAAIye,EAAKK,aAAajb,KAAK4kB,aAErDiB,EAAYpM,UAAYoM,EAAYE,YACrDL,EAAWvhB,KAAKyhB,GAChBC,EAAYE,WAAY,GAK9BN,EAAa7L,YAAYe,GAsB3B,GAnBIC,EAAK5W,QAAQmc,UAAYuF,EAAWvnB,QACtCC,EAAasnB,EAAY9K,EAAK5W,QAAQ1F,UAAWsc,EAAK5W,QAAQzF,aAG9C,IAAdgjB,GACFgE,EAAkD,IAArC3K,EAAKK,aAAajb,KAAK4kB,UAAkB,EAAIhK,EAAKK,aAAaE,QAAQ/V,KAAKwV,EAAKK,aAAajb,KAAK4kB,UAAY,GAAGzhB,SAC/HqiB,EAAgB5K,EAAKK,aAAajb,KAAK6kB,UAAYhG,EAAO,EAAI,EAAIjE,EAAKK,aAAaE,QAAQ/V,KAAKyZ,EAAO,GAAG1b,SAAWyX,EAAKK,aAAaE,QAAQ/V,KAAKwV,EAAKK,aAAajb,KAAK6kB,UAAY,GAAG1hB,SAE3Lqe,EAAUE,WAAWzE,MAAMsI,UAAYA,EAAY,KACnD/D,EAAUE,WAAWzE,MAAMuI,aAAeA,EAAe,OAEzDhE,EAAUE,WAAWzE,MAAMsI,UAAY,EACvC/D,EAAUE,WAAWzE,MAAMuI,aAAe,GAG5ChE,EAAUE,WAAW9H,YAAY6L,IAIf,IAAdlE,GAAsB3G,EAAKa,SAASuK,aAAc,CACpD,IAAIC,EAAsBzE,EAAUE,WAAWwE,YAE/C,GAAI5J,GAAQ2J,EAAsBrL,EAAKa,SAASwK,qBAAuBrL,EAAKa,SAAS0K,eAAiBvL,EAAKa,SAAS2K,YAClH5E,EAAUE,WAAWzE,MAAMoJ,SAAWzL,EAAKa,SAASwK,oBAAsB,UACrE,GAAIA,EAAsBrL,EAAKa,SAASwK,oBAAqB,CAElErL,EAAII,MAAO,GAAGiC,MAAMoJ,SAAW,EAE/B,IAAIC,EAAkB9E,EAAUE,WAAWwE,YAEvCI,EAAkB1L,EAAKa,SAASwK,sBAClCrL,EAAKa,SAASwK,oBAAsBK,EACpC9E,EAAUE,WAAWzE,MAAMoJ,SAAWzL,EAAKa,SAASwK,oBAAsB,MAI5ErL,EAAII,MAAO,GAAGiC,MAAMoJ,SAAW,KAQvC,GAFAzL,EAAKmK,gBAAkBnK,EAAKkK,YAEvBlK,EAAK5W,QAAQub,YAEX,GAAInE,GAAekB,EAAM,CAC9B,IACIiK,EADAxoB,EAAQ,EAGP6c,EAAKK,aAAajb,KAAK8iB,aAAa/kB,KACvCA,EAAQ,EAAI6c,EAAKK,aAAajb,KAAK8iB,aAAa1jB,MAAM,GAAGF,SAAQ,IAGnEqnB,EAAY3L,EAAKK,aAAajb,KAAKilB,gBAAgBlnB,GAEnD6c,EAAKoK,YAAYpK,EAAKK,aAAajb,KAAKwmB,eAExC5L,EAAKkK,aAAelK,EAAKK,aAAaE,QAAQ/V,KAAKrH,IAAU,IAAIA,MAEjE6c,EAAK6L,UAAUF,SAff3L,EAAIiG,WAAY7Z,QAAO,SA9K3B8c,EAAOlC,GAAW,GAElBphB,KAAIqgB,WAAYqB,IAAG,qBAAsBZ,GAAE,oBAAsB,SAAU7b,EAAGihB,GACvE9L,EAAK+L,UAAU7C,EAAOtjB,KAAKohB,UAAW8E,GAC3C9L,EAAK+L,UAAW,IA6LlB5rB,EAAEiH,QACCkgB,IAAG,SAAYrK,EAAY,IAAMrX,KAAKoX,SAAW,eACjD0J,GAAE,SAAYzJ,EAAY,IAAMrX,KAAKoX,SAAW,cAAe,WAC/CgD,EAAIE,YAAaxZ,SAASwW,EAAWG,OAEtC6L,EAAOlJ,EAAIiG,WAAY,GAAGe,cAI9C6E,UAAW,SAAUpqB,EAAIuqB,EAAQC,GAC/B,GAAIxqB,EAAI,CACNuqB,EAASA,GAAUpmB,KAAKya,aAAaC,KAAK9V,KAAK5E,KAAKskB,aACpD,IAAI1pB,EAAIiB,EAAGqlB,WAEPtmB,IACFA,EAAE6d,aAAY,eAAiBzY,KAAKya,aAAajb,KAAK6e,MACtDzjB,EAAE6d,aAAY,gBAAkB2N,EAAOxD,WAEvB,IAAZyD,IACFrmB,KAAK2gB,cAAclI,aAAY,wBAA0B7d,EAAEilB,IAC3DhkB,EAAG8F,UAAU1B,IAAG,UAChBrF,EAAE+G,UAAU1B,IAAG,cAMvBukB,YAAa,SAAU3oB,GACjBA,IACFA,EAAG8F,UAAUnB,OAAM,UACf3E,EAAGqlB,YAAYrlB,EAAGqlB,WAAWvf,UAAUnB,OAAM,YAIrD8lB,eAAgB,WACd,IAAIC,GAAc,EAElB,GAAIvmB,KAAKwD,QAAQ0X,QAAUlb,KAAK6D,SAAU,CACnC7D,KAAKya,aAAajb,KAAKgnB,cAAaxmB,KAAKya,aAAajb,KAAKgnB,YAAclnB,SAASC,cAAa,WAIpGgnB,GAAc,EAEd,IAAIpM,EAAUna,KAAIqa,SAAU,GACxBoM,GAAa,EACbC,GAAoB1mB,KAAKya,aAAajb,KAAKgnB,YAAYpnB,WAE3D,GAAIsnB,EAEF1mB,KAAKya,aAAajb,KAAKgnB,YAAY9N,UAAY,kBAC/C1Y,KAAKya,aAAajb,KAAKgnB,YAAYhpB,MAAQ,GAM3CipB,OAAuCplB,IAD5B9G,EAAE4f,EAAQ3W,QAAQ2W,EAAQ+I,gBACnBtmB,KAAI,kBAAiEyE,IAAnCrB,KAAIqa,SAAUzV,KAAI,aAGpE8hB,GAAiE,IAA7C1mB,KAAKya,aAAajb,KAAKgnB,YAAYjpB,OACzD4c,EAAQwM,aAAa3mB,KAAKya,aAAajb,KAAKgnB,YAAarM,EAAQ+G,YAM/DuF,IAAYtM,EAAQ+I,cAAgB,GAG1C,OAAOqD,GAGTtG,UAAW,WACT,IAAI2G,EAAiB,2CACjBC,EAAW,GACXC,EAAQ,EACRC,EAAa/mB,KAAKsmB,iBAAmB,EAAI,EAEzCtmB,KAAKwD,QAAQib,eAAcmI,GAAkB,mBAEjD,IAAII,EAAgBhnB,KAAIqa,SAAU,GAAGhc,iBAAgB,aAAgBuoB,GAErE,SAASK,EAAY/J,GACnB,IAAIgK,EAAeL,EAASA,EAASlpB,OAAS,GAI5CupB,GACsB,YAAtBA,EAAa3E,OACZ2E,EAAaJ,OAAS5J,EAAO4J,UAKhC5J,EAASA,GAAU,IACZqF,KAAO,UAEdsE,EAASljB,KAAKuZ,IAGhB,SAASiK,EAAWnL,EAAQkB,GAK1B,IAJAA,EAASA,GAAU,IAEZkK,QAAkD,SAAxCpL,EAAOqL,aAAY,gBAEhCnK,EAAOkK,QACTH,EAAU,CACRH,MAAO5J,EAAO4J,YAEX,CACL,IAAI3D,EAAU0D,EAASlpB,OACnB2pB,EAAUtL,EAAOS,MAAM6K,QACvBC,EAAcD,EAAUtU,EAAWsU,GAAW,GAC9CE,GAAexL,EAAOtD,WAAa,KAAOwE,EAAOuK,eAAiB,IAElEvK,EAAO4J,QAAOU,EAAc,OAASA,GAEzCtK,EAAOsK,YAAcA,EAAYE,OACjCxK,EAAOqK,YAAcA,EACrBrK,EAAOvE,KAAOqD,EAAOpC,YAErBsD,EAAOjE,QAAU+C,EAAOqL,aAAY,gBACpCnK,EAAOyK,OAAS3L,EAAOqL,aAAY,eACnCnK,EAAO9E,QAAU4D,EAAOqL,aAAY,gBACpCnK,EAAOrD,KAAOmC,EAAOqL,aAAY,aAEjCrL,EAAOmH,QAAUA,EAEjBjG,EAAOjD,QAAUiD,EAAOjE,SAAWiE,EAAOvE,KAC1CuE,EAAOqF,KAAO,SACdrF,EAAO3f,MAAQ4lB,EACfjG,EAAOlB,OAASA,EAChBkB,EAAO6F,WAAa/G,EAAO+G,SAC3B7F,EAAOzZ,SAAWyZ,EAAOzZ,YAAcuY,EAAOvY,SAE9CojB,EAASljB,KAAKuZ,IAIlB,SAAS0K,EAAarqB,EAAOypB,GAC3B,IAAI9N,EAAW8N,EAAczpB,GACzBsqB,EAAWb,EAAczpB,EAAQ,GACjCuqB,EAAOd,EAAczpB,EAAQ,GAC7BiG,EAAU0V,EAAS7a,iBAAgB,SAAYuoB,GAEnD,GAAKpjB,EAAQ7F,OAAb,CAEA,IAOIoqB,EACAC,EARA9K,EAAS,CACPjD,QAASjH,EAAWkG,EAASc,OAC7B5B,QAASc,EAASmO,aAAY,gBAC9BxN,KAAMX,EAASmO,aAAY,aAC3B9E,KAAM,iBACNkF,cAAe,KAAOvO,EAASR,WAAa,KAKlDoO,IAEIe,GACFZ,EAAU,CAAGH,MAAOA,IAGtB5J,EAAO4J,MAAQA,EAEfD,EAASljB,KAAKuZ,GAEd,IAAK,IAAI5e,EAAI,EAAGH,EAAMqF,EAAQ7F,OAAQW,EAAIH,EAAKG,IAAK,CAClD,IAAI0d,EAASxY,EAAQlF,GAEX,IAANA,IAEF0pB,GADAD,EAAclB,EAASlpB,OAAS,GACNQ,GAG5BgpB,EAAUnL,EAAQ,CAChB+L,YAAaA,EACbC,UAAWA,EACXlB,MAAO5J,EAAO4J,MACdW,cAAevK,EAAOuK,cACtBhkB,SAAUyV,EAASzV,WAInBqkB,GACFb,EAAU,CAAGH,MAAOA,KAIxB,IAAK,IAAI3oB,EAAM6oB,EAAcrpB,OAAQopB,EAAa5oB,EAAK4oB,IAAc,CACnE,IAAIkB,EAAOjB,EAAcD,GAEJ,aAAjBkB,EAAKvkB,QACPyjB,EAAUc,EAAM,IAEhBL,EAAYb,EAAYC,GAI5BhnB,KAAKya,aAAaC,KAAK9V,KAAO5E,KAAKya,aAAaE,QAAQ/V,KAAOiiB,GAGjEhF,UAAW,WACT,IAAIzH,EAAOpa,KACPkoB,EAAaloB,KAAKya,aAAaC,KAAK9V,KACpCujB,EAAe,GACfC,EAAqB,EAOzB,SAASC,EAAcJ,GACrB,IAAIK,EACAC,EAAiB,EAErB,OAAQN,EAAK1F,MACX,IAAK,UACH+F,EAAYtP,EAAend,IACzB,EACAyb,EAAWE,QACVyQ,EAAKnB,MAAQmB,EAAKnB,MAAQ,WAAQzlB,GAGrC,MAEF,IAAK,UACHinB,EAAYtP,EAAend,GACzBmd,EAAepe,EACboe,EAAeL,KAAK9Z,KAAKub,EAAM6N,GAC/BA,EAAKT,YACLS,EAAKV,aAEP,GACAU,EAAKnB,QAGO5F,aACZoH,EAAUpH,WAAWrB,GAAKzF,EAAKhD,SAAW,IAAM6Q,EAAK1qB,OAGvD,MAEF,IAAK,iBACH+qB,EAAYtP,EAAend,GACzBmd,EAAegB,MAAMnb,KAAKub,EAAM6N,GAChC,kBAAoBA,EAAKR,cACzBQ,EAAKnB,OAMXqB,EAAaxkB,KAAK2kB,GAGdL,EAAKhO,UAASsO,GAAkBN,EAAKhO,QAAQtc,QAC7CsqB,EAAK7P,UAASmQ,GAAkBN,EAAK7P,QAAQza,QAE7CsqB,EAAKpO,OAAM0O,GAAkB,GAEZH,EAAjBG,IACFH,EAAqBG,EAKrBnO,EAAKK,aAAajb,KAAKgpB,aAAeL,EAAaA,EAAaxqB,OAAS,KA5DxEyc,EAAK5W,QAAQ4b,WAAYhF,EAAKvW,UAAcsU,EAAiBU,UAAUzZ,aAC1E+Y,EAAiBU,UAAUH,UAAY1Y,KAAKwD,QAAQsW,SAAW,IAAMM,EAAK5W,QAAQmZ,SAAW,cAC7FxE,EAAiBvd,EAAEwe,YAAYjB,EAAiBU,YA8DlD,IAAK,IAAI1a,EAAM+pB,EAAWvqB,OAAQhC,EAAI,EAAGA,EAAIwC,EAAKxC,IAAK,CAGrD0sB,EAFWH,EAAWvsB,IAKxBqE,KAAKya,aAAaC,KAAKtc,SAAW4B,KAAKya,aAAaE,QAAQvc,SAAW+pB,GAGzEM,QAAS,WACP,OAAOzoB,KAAIqgB,WAAYE,KAAI,gBAG7BjF,OAAQ,WACN,IAWIoN,EAXAtO,EAAOpa,KACPma,EAAUna,KAAIqa,SAAU,GAExBsO,EAAsB3oB,KAAKsmB,kBAA8C,IAA1BnM,EAAQ+I,cACvD3f,EAAkBJ,EAAmBgX,EAASna,KAAKwD,QAAQib,cAC3DmK,EAAgBrlB,EAAgB5F,OAChCkrB,EAAS7oB,KAAIua,QAAS,GACtBuO,EAAcD,EAAOE,cAAa,8BAClC5K,EAAoB7e,SAASgZ,eAAetY,KAAKwD,QAAQ2a,mBACzD6K,EAAgB7Q,EAAiBI,SAASK,WAAU,GAGpDqQ,GAAa,EAMjB,GAJAJ,EAAOlnB,UAAUjB,OAAM,iBAAmB0Z,EAAKvW,UAAY+kB,GAAiBhlB,EAAgBuW,EAAS5W,IAErGvD,KAAKkpB,WAEmC,WAApClpB,KAAKwD,QAAQ8a,mBACf0K,EAAgBhQ,EAAeL,KAAK9Z,KAAKmB,KAAM,CAAE2Y,KAAM3Y,KAAKwD,QAAQ0X,QAAS,QAW7E,IAAkB,KATNlb,KAAK6D,WAAkE,IAAtD7D,KAAKwD,QAAQ8a,mBAAmB5f,QAAO,UAAoC,EAAhBkqB,IAKvD,GAD/BF,EAAW1oB,KAAKwD,QAAQ8a,mBAAmBpH,MAAK,MAC1BvZ,QAAcirB,EAAgBF,EAAS,IAA4B,IAApBA,EAAS/qB,QAAiC,GAAjBirB,KAK9F,IAAKD,EAAqB,CACxB,IAAK,IAAIzF,EAAgB,EAAGA,EAAgB0F,GACtC1F,EAAgB,GADqCA,IAAiB,CAExE,IAAIlH,EAASzY,EAAgB2f,GACzBiG,EAAWnpB,KAAKya,aAAaC,KAAK9V,KAAKoX,EAAOmH,SAC9CiG,EAAe,GAEfppB,KAAK6D,UAA4B,EAAhBqf,GACnB8F,EAAc5P,YAAY+E,EAAkBvF,WAAU,IAGpDoD,EAAOd,MACTkO,EAAazQ,KAAOqD,EAAOd,MAClBiO,IACLA,EAASlQ,SAAWmB,EAAK5W,QAAQob,aACnCwK,EAAanQ,QAAUkQ,EAASlQ,QAAQxX,WACxCwnB,GAAa,IAET7O,EAAK5W,QAAQmb,WACfyK,EAAavP,KAAOsP,EAAStP,MAE3BO,EAAK5W,QAAQkb,cAAgBtE,EAAKvW,UAAYslB,EAAS/Q,UAASgR,EAAahR,QAAU,IAAM+Q,EAAS/Q,SAC1GgR,EAAazQ,KAAOqD,EAAOpC,YAAY8N,SAI3CsB,EAAc5P,YAAYJ,EAAeL,KAAK9Z,KAAKmB,KAAMopB,GAAc,IAOvD,GAAhBR,GACFI,EAAc5P,YAAY9Z,SAASgZ,eAAc,aAGhD,CACL,IAAIsO,EAAiB,sEACjB5mB,KAAKwD,QAAQib,eAAcmI,GAAkB,mBAGjD,IAAIyC,EAAarpB,KAAIqa,SAAU,GAAGhc,iBAAgB,kBAAqBuoB,EAAiB,aAAeA,EAAiB,UAAYA,GAAgBjpB,OAChJ2rB,EAAsD,mBAAnCtpB,KAAKwD,QAAQia,kBAAoCzd,KAAKwD,QAAQia,kBAAkBmL,EAAeS,GAAcrpB,KAAKwD,QAAQia,kBAEjJuL,EAAgBhQ,EAAeL,KAAK9Z,KAAKmB,KAAM,CAC7C2Y,KAAM2Q,EAAS9jB,QAAO,MAAQojB,EAAcnnB,YAAY+D,QAAO,MAAQ6jB,EAAW5nB,cACjF,GA0BP,GAtB0BJ,MAAtBrB,KAAKwD,QAAQ0X,QAEflb,KAAKwD,QAAQ0X,MAAQlb,KAAIqa,SAAUzd,KAAI,UAIpCosB,EAAcjP,WAAWpc,SAC5BqrB,EAAgBhQ,EAAeL,KAAK9Z,KAAKmB,KAAM,CAC7C2Y,UAAoC,IAAvB3Y,KAAKwD,QAAQ0X,MAAwBlb,KAAKwD,QAAQ0X,MAAQlb,KAAKwD,QAAQ+Z,mBACnF,IAILsL,EAAO3N,MAAQ8N,EAAcpP,YAAYpU,QAAO,YAAc,IAAIkiB,OAE9D1nB,KAAKwD,QAAQmc,UAAYsJ,GAC3BrrB,EAAY,CAAEorB,GAAgB5O,EAAK5W,QAAQ1F,UAAWsc,EAAK5W,QAAQzF,YAGrE+qB,EAAYzP,UAAY,GACxByP,EAAY1P,YAAY4P,GAEpBrS,EAAQE,MAAQ,GAAK7W,KAAIsa,YAAa,GAAG3Y,UAAUd,SAAQ,iBAAmB,CAChF,IAAI0oB,EAAeV,EAAOE,cAAa,kBACnCS,EAAQV,EAAYlQ,WAAU,GAElC4Q,EAAM9Q,UAAY,gBAEd6Q,EACFV,EAAO1H,aAAaqI,EAAOD,GAE3BV,EAAOzP,YAAYoQ,GAIvBxpB,KAAIqa,SAAU7T,QAAO,WAAc6Q,IAOrCmE,SAAU,SAAUiO,EAAUC,GAC5B,IAGIC,EAHAd,EAAS7oB,KAAIua,QAAS,GACtBqP,EAAa5pB,KAAIsa,YAAa,GAC9BmC,EAAQzc,KAAKwD,QAAQiZ,MAAMiL,OAG3B1nB,KAAIqa,SAAUzd,KAAI,UACpBoD,KAAIsa,YAAa/Z,SAASP,KAAIqa,SAAUzd,KAAI,SAAU4I,QAAO,+DAAiE,KAG5HmR,EAAQE,MAAQ,IAClB+S,EAAWjoB,UAAU1B,IAAG,OAEpB2pB,EAAWxqB,WAAWuC,UAAUd,SAAQ,iBACvC+oB,EAAWC,wBAA0BD,EAAWE,sBAChDF,EAAWC,wBAA0BD,EAAWE,oBAAoBnoB,UAAUd,SAAQ,sBAEzF+oB,EAAWjoB,UAAU1B,IAAG,kBAK1B0pB,EADEF,EACYA,EAAS/B,OAETjL,EAGF,OAAViN,EACEC,GAAad,EAAOlnB,UAAU1B,IAAI4E,MAAMgkB,EAAOlnB,UAAWgoB,EAAYzS,MAAK,MAC5D,UAAVwS,EACLC,GAAad,EAAOlnB,UAAUnB,OAAOqE,MAAMgkB,EAAOlnB,UAAWgoB,EAAYzS,MAAK,OAE9EuF,GAAOoM,EAAOlnB,UAAUnB,OAAOqE,MAAMgkB,EAAOlnB,UAAW8a,EAAMvF,MAAK,MAClEyS,GAAad,EAAOlnB,UAAU1B,IAAI4E,MAAMgkB,EAAOlnB,UAAWgoB,EAAYzS,MAAK,QAInFyL,SAAU,SAAUpH,GAClB,GAAKA,IAAkC,IAAtBvb,KAAKwD,QAAQ6a,OAAkBpgB,OAAOC,KAAK8B,KAAKib,UAAUtd,OAA3E,CAEA,IAAIisB,EAAatqB,SAASC,cAAa,OACnCwqB,EAAOzqB,SAASC,cAAa,OAC7ByhB,EAAY1hB,SAASC,cAAa,OAClCyqB,EAAiB1qB,SAASC,cAAa,MACvC6nB,EAAU9nB,SAASC,cAAa,MAChC0qB,EAAiB3qB,SAASC,cAAa,MACvC1D,EAAKyD,SAASC,cAAa,MAC3B3E,EAAI0E,SAASC,cAAa,KAC1BoZ,EAAOrZ,SAASC,cAAa,QAC7Buf,EAAS9e,KAAKwD,QAAQsb,QAAmE,EAAzD9e,KAAIwa,MAAO+F,KAAI,IAAOjJ,EAAWS,eAAepa,OAAaqC,KAAIwa,MAAO+F,KAAI,IAAOjJ,EAAWS,eAAe,GAAGa,WAAU,GAAQ,KAClKxW,EAASpC,KAAKwD,QAAQub,WAAazf,SAASC,cAAa,OAAU,KACnE2qB,EAAUlqB,KAAKwD,QAAQ2b,YAAcnf,KAAK6D,UAAuD,EAA3C7D,KAAIwa,MAAO+F,KAAI,kBAAmB5iB,OAAaqC,KAAIwa,MAAO+F,KAAI,kBAAmB,GAAG3H,WAAU,GAAQ,KAC5JqF,EAAaje,KAAKwD,QAAQya,YAAcje,KAAK6D,UAAuD,EAA3C7D,KAAIwa,MAAO+F,KAAI,kBAAmB5iB,OAAaqC,KAAIwa,MAAO+F,KAAI,kBAAmB,GAAG3H,WAAU,GAAQ,KAC/JuR,EAAcnqB,KAAIqa,SAAUkG,KAAI,UAAW,GA4B/C,GA1BAvgB,KAAKib,SAAS2K,YAAc5lB,KAAIsa,YAAa,GAAGoL,YAEhD/M,EAAKD,UAAY,OACjB9d,EAAE8d,UAAY,kBAAoByR,EAAcA,EAAYzR,UAAY,IACxEkR,EAAWlR,UAAY1Y,KAAIwa,MAAO,GAAGpb,WAAWsZ,UAAY,IAAMpB,EAAWG,KAC7EmS,EAAWnN,MAAM8B,MAAQ,EACE,SAAvBve,KAAKwD,QAAQ+a,QAAkBwL,EAAKtN,MAAMoJ,SAAW,GACzDkE,EAAKrR,UAAYpB,EAAWK,KAAO,IAAML,EAAWG,KACpDuJ,EAAUtI,UAAY,SAAWpB,EAAWG,KAC5CuS,EAAetR,UAAYpB,EAAWK,KAAO,WAA+B,MAAlBhB,EAAQE,MAAgBS,EAAWG,KAAO,IACpG2P,EAAQ1O,UAAYpB,EAAWE,QAC/ByS,EAAevR,UAAY,kBAE3BC,EAAKS,YAAY9Z,SAASgZ,eAAc,WACxC1d,EAAEwe,YAAYT,GACd9c,EAAGud,YAAYxe,GACfqvB,EAAe7Q,YAAYT,EAAKC,WAAU,IAEtC5Y,KAAKya,aAAajb,KAAKgpB,cACzBwB,EAAe5Q,YAAYpZ,KAAKya,aAAajb,KAAKgpB,aAAa5P,WAAU,IAG3EoR,EAAe5Q,YAAYvd,GAC3BmuB,EAAe5Q,YAAYgO,GAC3B4C,EAAe5Q,YAAY6Q,GACvBnL,GAAQiL,EAAK3Q,YAAY0F,GACzB1c,EAAQ,CACV,IAAIgoB,EAAQ9qB,SAASC,cAAa,SAClC6C,EAAOsW,UAAY,eACnB0R,EAAM1R,UAAY,eAClBtW,EAAOgX,YAAYgR,GACnBL,EAAK3Q,YAAYhX,GAEf8nB,GAASH,EAAK3Q,YAAY8Q,GAC9BlJ,EAAU5H,YAAY4Q,GACtBD,EAAK3Q,YAAY4H,GACb/C,GAAY8L,EAAK3Q,YAAY6E,GACjC2L,EAAWxQ,YAAY2Q,GAEvBzqB,SAAS+qB,KAAKjR,YAAYwQ,GAE1B,IA6BIU,EA7BA3H,EAAW9mB,EAAG0uB,aACd7H,EAAuBuH,EAAiBA,EAAeM,aAAe,EACtEC,EAAe1L,EAASA,EAAOyL,aAAe,EAC9CE,EAAeroB,EAASA,EAAOmoB,aAAe,EAC9CG,EAAgBR,EAAUA,EAAQK,aAAe,EACjDI,EAAmB1M,EAAaA,EAAWsM,aAAe,EAC1D9H,EAAgBloB,EAAE6sB,GAASwD,aAAY,GAEvCC,IAAYrpB,OAAOspB,kBAAmBtpB,OAAOspB,iBAAiBf,GAC9DgB,EAAYhB,EAAKrE,YACjBlL,EAAQqQ,EAAY,KAAOtwB,EAAEwvB,GAC7BiB,EAAc,CACZC,KAAMtlB,EAAUklB,EAAYA,EAAUK,WAAa1Q,EAAM2Q,IAAG,eACtDxlB,EAAUklB,EAAYA,EAAUO,cAAgB5Q,EAAM2Q,IAAG,kBACzDxlB,EAAUklB,EAAYA,EAAUQ,eAAiB7Q,EAAM2Q,IAAG,mBAC1DxlB,EAAUklB,EAAYA,EAAUS,kBAAoB9Q,EAAM2Q,IAAG,sBACnEI,MAAO5lB,EAAUklB,EAAYA,EAAUW,YAAchR,EAAM2Q,IAAG,gBACxDxlB,EAAUklB,EAAYA,EAAUY,aAAejR,EAAM2Q,IAAG,iBACxDxlB,EAAUklB,EAAYA,EAAUa,gBAAkBlR,EAAM2Q,IAAG,oBAC3DxlB,EAAUklB,EAAYA,EAAUc,iBAAmBnR,EAAM2Q,IAAG,sBAEpES,EAAa,CACXX,KAAMD,EAAYC,KACZtlB,EAAUklB,EAAYA,EAAU9F,UAAYvK,EAAM2Q,IAAG,cACrDxlB,EAAUklB,EAAYA,EAAU7F,aAAexK,EAAM2Q,IAAG,iBAAoB,EAClFI,MAAOP,EAAYO,MACb5lB,EAAUklB,EAAYA,EAAUgB,WAAarR,EAAM2Q,IAAG,eACtDxlB,EAAUklB,EAAYA,EAAUiB,YAActR,EAAM2Q,IAAG,gBAAmB,GAItFnK,EAAUvE,MAAMsP,UAAY,SAE5BzB,EAAiBP,EAAKrE,YAAcqF,EAEpCzrB,SAAS+qB,KAAKhrB,YAAYuqB,GAE1B5pB,KAAKib,SAAS0H,SAAWA,EACzB3iB,KAAKib,SAASyH,qBAAuBA,EACrC1iB,KAAKib,SAASuP,aAAeA,EAC7BxqB,KAAKib,SAASwP,aAAeA,EAC7BzqB,KAAKib,SAASyP,cAAgBA,EAC9B1qB,KAAKib,SAAS0P,iBAAmBA,EACjC3qB,KAAKib,SAASwH,cAAgBA,EAC9BziB,KAAKib,SAAS+P,YAAcA,EAC5BhrB,KAAKib,SAAS2Q,WAAaA,EAC3B5rB,KAAKib,SAAS8P,UAAYA,EAC1B/qB,KAAKib,SAASwK,oBAAsBsF,EAAYC,EAAYO,MAC5DvrB,KAAKib,SAAS0K,eAAiB3lB,KAAKib,SAAS8P,UAC7C/qB,KAAKib,SAASqP,eAAiBA,EAC/BtqB,KAAKib,SAAS+Q,aAAehsB,KAAIsa,YAAa,GAAGiQ,aAEjDvqB,KAAKqiB,oBAGP4J,kBAAmB,WACjB,IAIIC,EAHAC,EAAU5xB,EAAEiH,QACZoB,EAFO5C,KAEGsa,YAAa8R,SACvBC,EAAa9xB,EAHNyF,KAGawD,QAAQgb,WAHrBxe,KAMFwD,QAAQgb,WAAa6N,EAAW1uB,SAAU0uB,EAAYtP,GAAE,UAC/DmP,EAAeG,EAAWD,UACbE,KAAO1mB,SAAQymB,EAAYlB,IAAG,mBAC3Ce,EAAaK,MAAQ3mB,SAAQymB,EAAYlB,IAAG,qBAE5Ce,EAAe,CAAEI,IAAK,EAAGC,KAAM,GAGjC,IAAIpR,EAdOnb,KAcOwD,QAAQ4X,cAE1Bpb,KAAKib,SAASuR,gBAAkB5pB,EAAI0pB,IAAMJ,EAAaI,IAAMH,EAAQ/K,YACrEphB,KAAKib,SAASwR,gBAAkBN,EAAQ3J,SAAWxiB,KAAKib,SAASuR,gBAAkBxsB,KAAKib,SAAS+Q,aAAeE,EAAaI,IAAMnR,EAAO,GAC1Inb,KAAKib,SAASyR,iBAAmB9pB,EAAI2pB,KAAOL,EAAaK,KAAOJ,EAAQQ,aACxE3sB,KAAKib,SAAS2R,kBAAoBT,EAAQ5N,QAAUve,KAAKib,SAASyR,iBAAmB1sB,KAAKib,SAAS2K,YAAcsG,EAAaK,KAAOpR,EAAO,GAC5Inb,KAAKib,SAASuR,iBAAmBrR,EAAO,GACxCnb,KAAKib,SAASyR,kBAAoBvR,EAAO,IAG3C0R,YAAa,SAAUC,GACrB9sB,KAAKisB,oBAEL,IAQI5I,EACA0J,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAhBAzH,EAAc5lB,KAAKib,SAAS2K,YAC5BjD,EAAW3iB,KAAKib,SAAS0H,SACzB6H,EAAexqB,KAAKib,SAASuP,aAC7BC,EAAezqB,KAAKib,SAASwP,aAC7BC,EAAgB1qB,KAAKib,SAASyP,cAC9BC,EAAmB3qB,KAAKib,SAAS0P,iBACjC2C,EAAYttB,KAAKib,SAASwH,cAC1BuI,EAAchrB,KAAKib,SAAS+P,YAG5BuC,EAAY,EA0BhB,GAlBIvtB,KAAKwD,QAAQqb,aAKfuO,EAAWzK,EAAW3iB,KAAKya,aAAaE,QAAQvc,SAAST,OAASqtB,EAAYC,KAE9EoC,EAAWrtB,KAAKib,SAASuR,gBAAkBxsB,KAAKib,SAASwR,gBAAkBzsB,KAAKib,SAAS2Q,WAAWX,MAAQmC,EAAWptB,KAAKib,SAAS2Q,WAAWX,KAAO,GAAKjrB,KAAKib,SAASwR,iBAGpI,IAAlCzsB,KAAKya,aAAaG,cACpByS,EAAWrtB,KAAKya,aAAa+S,QAG/BxtB,KAAIsa,YAAa1Z,YAAY0W,EAAWI,OAAQ2V,GAChDrtB,KAAKya,aAAa+S,OAASH,GAGH,SAAtBrtB,KAAKwD,QAAQ6a,KACf4O,EAAyD,EAA5CjtB,KAAKya,aAAaE,QAAQvc,SAAST,OAAsC,EAAzBqC,KAAKib,SAAS0H,SAAe3iB,KAAKib,SAAS2Q,WAAWX,KAAO,EAAI,EAC9H8B,EAAa/sB,KAAKib,SAASwR,gBAAkBzsB,KAAKib,SAAS2Q,WAAWX,KACtE+B,EAAYC,EAAazC,EAAeC,EAAeC,EAAgBC,EACvEwC,EAAqBpqB,KAAKE,IAAIgqB,EAAajC,EAAYC,KAAM,GAEzDjrB,KAAIsa,YAAaxZ,SAASwW,EAAWI,UACvCqV,EAAa/sB,KAAKib,SAASuR,gBAAkBxsB,KAAKib,SAAS2Q,WAAWX,MAIxE5H,GADA6J,EAAYH,GACmBvC,EAAeC,EAAeC,EAAgBC,EAAmBK,EAAYC,UACvG,GAAIjrB,KAAKwD,QAAQ6a,MAA6B,QAArBre,KAAKwD,QAAQ6a,MAAkBre,KAAKya,aAAaE,QAAQvc,SAAST,OAASqC,KAAKwD,QAAQ6a,KAAM,CAC5H,IAAK,IAAI1iB,EAAI,EAAGA,EAAIqE,KAAKwD,QAAQ6a,KAAM1iB,IACU,YAA3CqE,KAAKya,aAAaE,QAAQ/V,KAAKjJ,GAAG4mB,MAAoBgL,IAI5DlK,GADA0J,EAAapK,EAAW3iB,KAAKwD,QAAQ6a,KAAOkP,EAAYD,EAAYtC,EAAYC,MACjDD,EAAYC,KAC3CiC,EAAYH,EAAavC,EAAeC,EAAeC,EAAgBC,EACvEqC,EAAYG,EAAqB,GAGnCntB,KAAIwa,MAAO2Q,IAAG,CACZsC,aAAcP,EAAY,KAC1BQ,SAAY,SACZC,aAAcX,EAAY,OAG5BhtB,KAAIqgB,WAAY8K,IAAG,CACjBsC,aAAcpK,EAAkB,KAChCuK,aAAc,OACdD,aAAcR,EAAqB,OAIrCntB,KAAKib,SAASoI,gBAAkBtgB,KAAKE,IAAIogB,EAAiB,GAEtDrjB,KAAKya,aAAaE,QAAQ/V,KAAKjH,QAAUqC,KAAKya,aAAaE,QAAQ/V,KAAK5E,KAAKya,aAAaE,QAAQ/V,KAAKjH,OAAS,GAAGgF,SAAW3C,KAAKib,SAASoI,kBAC9IrjB,KAAKib,SAASuK,cAAe,EAC7BxlB,KAAKib,SAAS0K,eAAiB3lB,KAAKib,SAAS8P,UAAY/qB,KAAKib,SAASqP,gBAGjC,SAApCtqB,KAAKwD,QAAQic,oBACfzf,KAAIwa,MAAO5Z,YAAY0W,EAAWM,UAAW5X,KAAKib,SAASyR,iBAAmB1sB,KAAKib,SAAS2R,mBAAqB5sB,KAAKib,SAAS2R,kBAAqB5sB,KAAKib,SAAS0K,eAAiBC,GAGjL5lB,KAAK+W,UAAY/W,KAAK+W,SAAS8W,SAAS7tB,KAAK+W,SAAS8W,QAAQC,UAGpEhL,QAAS,SAAUvH,GAKjB,GAJAvb,KAAK2iB,SAASpH,GAEVvb,KAAKwD,QAAQsb,QAAQ9e,KAAIwa,MAAO2Q,IAAG,cAAgB,IAE7B,IAAtBnrB,KAAKwD,QAAQ6a,KAAgB,CAC/B,IAAIjE,EAAOpa,KACPmsB,EAAU5xB,EAAEiH,QAEhBxB,KAAK6sB,cAED7sB,KAAKwD,QAAQub,YACf/e,KAAIsgB,WACDoB,IAAG,gDACHZ,GAAE,+CAAiD,WAClD,OAAO1G,EAAKyS,gBAIQ,SAAtB7sB,KAAKwD,QAAQ6a,KACf8N,EACGzK,IAAG,SAAYrK,EAAY,IAAMrX,KAAKoX,SAAW,sBAA6BC,EAAY,IAAMrX,KAAKoX,SAAW,gBAChH0J,GAAE,SAAYzJ,EAAY,IAAMrX,KAAKoX,SAAW,sBAA6BC,EAAY,IAAMrX,KAAKoX,SAAW,eAAgB,WAC9H,OAAOgD,EAAKyS,gBAEP7sB,KAAKwD,QAAQ6a,MAA6B,QAArBre,KAAKwD,QAAQ6a,MAAkBre,KAAKya,aAAaE,QAAQvc,SAAST,OAASqC,KAAKwD,QAAQ6a,MACtH8N,EAAQzK,IAAG,SAAYrK,EAAY,IAAMrX,KAAKoX,SAAW,sBAA6BC,EAAY,IAAMrX,KAAKoX,SAAW,gBAI5HpX,KAAK6iB,YAAW,GAAO,EAAMtH,IAG/BqF,SAAU,WACR,IAAIxG,EAAOpa,KAEgB,SAAvBA,KAAKwD,QAAQ+a,MACfwP,sBAAsB,WACpB3T,EAAII,MAAO2Q,IAAG,YAAc,KAE5B/Q,EAAIC,SAAUyG,GAAE,SAAYzJ,EAAW,WACrC+C,EAAKuI,WACLvI,EAAKyS,cAGL,IAAImB,EAAe5T,EAAIE,YAAakP,QAAQyE,SAAQ,QAChDC,EAAWF,EAAa7C,IAAG,QAAU,QAAQ/K,SAAQ,UAAW+N,aAEpEH,EAAaxtB,SAGb4Z,EAAKa,SAAS2K,YAAc7iB,KAAKE,IAAImX,EAAKa,SAAS0K,eAAgBuI,GACnE9T,EAAIE,YAAa6Q,IAAG,QAAU/Q,EAAKa,SAAS2K,YAAc,UAG9B,QAAvB5lB,KAAKwD,QAAQ+a,OAEtBve,KAAIwa,MAAO2Q,IAAG,YAAc,IAC5BnrB,KAAIsa,YAAa6Q,IAAG,QAAU,IAAI5qB,SAAQ,cACjCP,KAAKwD,QAAQ+a,OAEtBve,KAAIwa,MAAO2Q,IAAG,YAAc,IAC5BnrB,KAAIsa,YAAa6Q,IAAG,QAAUnrB,KAAKwD,QAAQ+a,SAG3Cve,KAAIwa,MAAO2Q,IAAG,YAAc,IAC5BnrB,KAAIsa,YAAa6Q,IAAG,QAAU,KAG5BnrB,KAAIsa,YAAaxZ,SAAQ,cAAwC,QAAvBd,KAAKwD,QAAQ+a,OACzDve,KAAIsa,YAAa,GAAG3Y,UAAUnB,OAAM,cAIxCqgB,eAAgB,WACd7gB,KAAIouB,aAAgB7zB,EAAA,gCAOD,SAAf8zB,EAAwBhU,GACtB,IAAIiU,EAAoB,GAEpBrU,EAAUG,EAAK5W,QAAQyW,WAErB1f,EAAEsL,GAAGkR,SAASC,YAAYuX,SAAUh0B,EAAEsL,GAAGkR,SAASC,YAAYuX,QAAQtU,QAI5EG,EAAIgU,aAAc7tB,SAAQ8Z,EAAUzd,KAAI,SAAU4I,QAAO,2BAA6B,KAAK5E,YAAY0W,EAAWI,OAAQ2C,EAASvZ,SAASwW,EAAWI,SACvJ9U,EAAMyX,EAAS+R,SAEZC,EAAatP,GAAE,QAKhBmP,EAAe,CAAEI,IAAK,EAAGC,KAAM,KAJ/BL,EAAeG,EAAWD,UACbE,KAAO1mB,SAAQymB,EAAYlB,IAAG,mBAAsBkB,EAAWjL,YAC5E8K,EAAaK,MAAQ3mB,SAAQymB,EAAYlB,IAAG,oBAAuBkB,EAAWM,cAKhF6B,EAAenU,EAASvZ,SAASwW,EAAWI,QAAU,EAAI2C,EAAS,GAAGkQ,cAGlE5T,EAAQE,MAAQ,GAAiB,WAAZoD,KACvBqU,EAAkBhC,IAAM1pB,EAAI0pB,IAAMJ,EAAaI,IAAMkC,EACrDF,EAAkB/B,KAAO3pB,EAAI2pB,KAAOL,EAAaK,MAGnD+B,EAAkB/P,MAAQlE,EAAS,GAAGqL,YAEtCtL,EAAIgU,aAAcjD,IAAImD,GAnC5B,IAEI1rB,EACAspB,EACAsC,EAJApU,EAAOpa,KACPqsB,EAAa9xB,EAAEyF,KAAKwD,QAAQgb,WAqChCxe,KAAIua,QAASuG,GAAE,6BAA+B,WACxC1G,EAAKqU,eAITJ,EAAajU,EAAIE,aAEjBF,EAAIgU,aACDH,SAAS7T,EAAK5W,QAAQgb,WACtB5d,YAAY0W,EAAWG,MAAO2C,EAAIG,QAASzZ,SAASwW,EAAWG,OAC/DiX,OAAOtU,EAAII,UAGhBjgB,EAAEiH,QACCkgB,IAAG,SAAYrK,EAAY,IAAMrX,KAAKoX,SAAW,UAAYC,EAAY,IAAMrX,KAAKoX,UACpF0J,GAAE,SAAYzJ,EAAY,IAAMrX,KAAKoX,SAAW,UAAYC,EAAY,IAAMrX,KAAKoX,SAAU,WAC7EgD,EAAIE,YAAaxZ,SAASwW,EAAWG,OAEtC4W,EAAajU,EAAIE,eAGnCta,KAAIqa,SAAUyG,GAAE,OAAUzJ,EAAW,WACnC+C,EAAII,MAAO5V,KAAI,SAAWwV,EAAII,MAAOgI,UACrCpI,EAAIgU,aAAcO,YAItBjK,gBAAiB,SAAUkK,GACzB,IAAIxU,EAAOpa,KAIX,GAFAoa,EAAK+L,UAAW,EAEZ/L,EAAKK,aAAajb,KAAKilB,iBAAmBrK,EAAKK,aAAajb,KAAKilB,gBAAgB9mB,OACnF,IAAK,IAAIhC,EAAI,EAAGA,EAAIye,EAAKK,aAAajb,KAAKilB,gBAAgB9mB,OAAQhC,IAAK,CACtE,IAAIyqB,EAAShM,EAAKK,aAAaE,QAAQ/V,KAAKjJ,EAAIye,EAAKK,aAAajb,KAAK4kB,WACnEpI,EAASoK,EAAOpK,OAEhBA,KACmB,IAAjB4S,GACFxU,EAAKyU,YACHzI,EAAO7oB,MACP6oB,EAAO3iB,UAIX2W,EAAK0U,YACH1I,EAAO7oB,MACPye,EAAO+G,aAWjB+L,YAAa,SAAUvxB,EAAOwlB,GAC5B,IAIIC,EACApoB,EALAiB,EAAKmE,KAAKya,aAAaC,KAAKtc,SAASb,GACrC6oB,EAASpmB,KAAKya,aAAaC,KAAK9V,KAAKrH,GACrCwxB,OAAwC1tB,IAArBrB,KAAKskB,YAWxB0K,EAVehvB,KAAKskB,cAAgB/mB,GAUNwlB,IAAa/iB,KAAK6D,WAAakrB,EAEjE3I,EAAOrD,SAAWA,EAElBnoB,EAAIiB,EAAGqlB,WAEH6B,IACF/iB,KAAKkjB,cAAgB3lB,GAGvB1B,EAAG8F,UAAUjB,OAAM,WAAaqiB,GAE5BiM,GACFhvB,KAAKimB,UAAUpqB,EAAIuqB,GACnBpmB,KAAKya,aAAajb,KAAKwmB,cAAgBnqB,EACvCmE,KAAKskB,YAAc/mB,GAEnByC,KAAKwkB,YAAY3oB,GAGfjB,IACFA,EAAE+G,UAAUjB,OAAM,WAAaqiB,GAE3BA,EACFnoB,EAAE6d,aAAY,iBAAkB,GAE5BzY,KAAK6D,SACPjJ,EAAE6d,aAAY,iBAAkB,GAEhC7d,EAAEuE,gBAAe,kBAKlB6vB,GAAeD,IAAoBhM,QAAqC1hB,IAAzBrB,KAAKukB,kBACvDvB,EAAahjB,KAAKya,aAAaC,KAAKtc,SAAS4B,KAAKukB,iBAElDvkB,KAAKwkB,YAAYxB,KAQrB6L,YAAa,SAAUtxB,EAAOkG,GAC5B,IACI7I,EADAiB,EAAKmE,KAAKya,aAAaC,KAAKtc,SAASb,GAGzCyC,KAAKya,aAAaC,KAAK9V,KAAKrH,GAAOkG,SAAWA,EAE9C7I,EAAIiB,EAAGqlB,WAEPrlB,EAAG8F,UAAUjB,OAAO4W,EAAWC,SAAU9T,GAErC7I,IACoB,MAAlB+b,EAAQE,OAAejc,EAAE+G,UAAUjB,OAAO4W,EAAWC,SAAU9T,GAE/DA,GACF7I,EAAE6d,aAAY,gBAAkBhV,GAChC7I,EAAE6d,aAAY,YAAc,KAE5B7d,EAAEuE,gBAAe,iBACjBvE,EAAE6d,aAAY,WAAa,MAKjCgW,WAAY,WACV,OAAOzuB,KAAIqa,SAAU,GAAG5W,UAG1B+c,cAAe,WACTxgB,KAAKyuB,cACPzuB,KAAIsa,YAAa,GAAG3Y,UAAU1B,IAAIqX,EAAWC,UAC7CvX,KAAIua,QAASha,SAAS+W,EAAWC,UAAU3a,KAAI,YAAc,GAAGA,KAAI,iBAAkB,KAElFoD,KAAIua,QAAS,GAAG5Y,UAAUd,SAASyW,EAAWC,YAChDvX,KAAIsa,YAAa,GAAG3Y,UAAUnB,OAAO8W,EAAWC,UAChDvX,KAAIua,QAAS9Z,YAAY6W,EAAWC,UAAU3a,KAAI,iBAAkB,KAGhC,GAAlCoD,KAAIua,QAAS3d,KAAI,aAAuBoD,KAAIqa,SAAUzV,KAAI,aAC5D5E,KAAIua,QAAS0U,WAAU,cAK7B/F,SAAU,WACJlpB,KAAIqa,SAAUzV,KAAI,cAAiB5E,KAAIqa,SAAUzd,KAAI,cAClB,KAApCoD,KAAIqa,SAAUzd,KAAI,aAA2D,QAAnCoD,KAAIqa,SAAUzd,KAAI,cAC7DoD,KAAIqa,SAAUzV,KAAI,WAAa5E,KAAIqa,SAAUzd,KAAI,aACjDoD,KAAIua,QAAS3d,KAAI,WAAaoD,KAAIqa,SAAUzV,KAAI,cAGlD5E,KAAIqa,SAAUzd,KAAI,YAAc,KAGlC6jB,cAAe,WACb,IAAIrG,EAAOpa,KACPkvB,EAAY30B,EAAE+E,UAwBlB,SAAS6vB,IACH/U,EAAK5W,QAAQub,WACf3E,EAAIkG,WAAY9Z,QAAO,SAEvB4T,EAAIiG,WAAY7Z,QAAO,SAI3B,SAAS4oB,IACHhV,EAAKrD,UAAYqD,EAAKrD,SAAS8W,SAAWzT,EAAKrD,SAAS8W,QAAQwB,MAAMC,UACxEH,IAEApB,sBAAsBqB,GAlC1BF,EAAUtqB,KAAI,eAAgB,GAE9B5E,KAAIua,QAASuG,GAAE,QAAU,SAAU7b,GAC9B,OAAQsO,KAAKtO,EAAEsqB,QAAQ9tB,SAAS,MAAQytB,EAAUtqB,KAAI,iBACvDK,EAAEuqB,iBACFN,EAAUtqB,KAAI,eAAgB,MAIlC5E,KAAIsa,YAAawG,GAAE,mBAAqB,WAClB,EAAhBnK,EAAQE,QAAcuD,EAAKrD,WAC7BqD,EAAKrD,SAAWqD,EAAIG,QAAS3V,KAAI,eACjCwV,EAAKrD,SAAS0Y,MAAQrV,EAAII,MAAO,MAIrCxa,KAAIua,QAASuG,GAAE,6BAA+B,WACvC1G,EAAIE,YAAaxZ,SAASwW,EAAWG,OACxC2C,EAAK0I,YAoBT9iB,KAAIqa,SAAUyG,GAAE,QAAWzJ,EAAW,WAChC+C,EAAIiG,WAAY,GAAGe,YAAchH,EAAKK,aAAajb,KAAK4hB,YAC1DhH,EAAIiG,WAAY,GAAGe,UAAYhH,EAAKK,aAAajb,KAAK4hB,WAGpC,EAAhBzK,EAAQE,MACVkX,sBAAsBqB,GAEtBD,MAKJnvB,KAAIqgB,WAAYS,GAAE,aAAe,OAAQ,SAAU7b,GACjD,IAAIyqB,EAAU1vB,KAAK2vB,cACfvL,EAAYhK,EAAK2G,YAAc3G,EAAKK,aAAajb,KAAK4kB,UAAY,EAClE7mB,EAAQ4C,MAAMC,UAAU1B,QAAQG,KAAK6wB,EAAQC,cAAcvP,SAAUsP,GACrEE,EAAYxV,EAAKK,aAAaE,QAAQ/V,KAAKrH,EAAQ6mB,GAEvDhK,EAAK6L,UAAUyJ,EAASE,GAAW,KAGrC5vB,KAAIqgB,WAAYS,GAAE,QAAU,OAAQ,SAAU7b,EAAG4qB,GAC/C,IAAI/S,EAAQviB,EAAEyF,MACVma,EAAUC,EAAIC,SAAU,GACxB+J,EAAYhK,EAAK2G,YAAc3G,EAAKK,aAAajb,KAAK4kB,UAAY,EAClE0L,EAAc1V,EAAKK,aAAaE,QAAQ/V,KAAIkY,EAAOkF,SAASzkB,QAAU6mB,GACtE2L,EAAeD,EAAYvyB,MAC3ByyB,EAAYpsB,EAAgBuW,GAC5B8V,EAAY9V,EAAQ+I,cACpBgN,EAAa/V,EAAQ3W,QAAQysB,GAC7BE,GAAgB,EAUpB,GAPI/V,EAAKvW,UAAwC,IAA5BuW,EAAK5W,QAAQ8b,YAChCra,EAAEmrB,kBAGJnrB,EAAEuqB,kBAGGpV,EAAKqU,eAAgB3R,EAAOkF,SAASlhB,SAASwW,EAAWC,UAAW,CACvE,IAAIyE,EAAS8T,EAAY9T,OACrBqU,EAAU91B,EAAEyhB,GACZqT,EAAQrT,EAAO+G,SACfuN,EAAYD,EAAQrO,OAAM,YAC1BuO,EAAmBD,EAAU/P,KAAI,UACjCjB,EAAalF,EAAK5W,QAAQ8b,WAC1BkR,EAAgBF,EAAU1rB,KAAI,gBAAkB,EASpD,GAPImrB,IAAiB3V,EAAKkK,cAAauL,GAAe,GAEjDA,IACHzV,EAAKmK,gBAAkBnK,EAAKkK,YAC5BlK,EAAKkK,iBAAcjjB,GAGhB+Y,EAAKvW,UAUR,GALAmY,EAAO+G,UAAYsM,EAEnBjV,EAAK0U,YAAYiB,GAAeV,GAChCvS,EAAMtW,QAAO,SAEM,IAAf8Y,IAA0C,IAAlBkR,EAAyB,CACnD,IAAIC,EAAanR,EAAanc,EAAmBgX,GAASxc,OACtD+yB,EAAgBF,EAAgBF,EAAU/P,KAAI,mBAAoB5iB,OAEtE,GAAK2hB,GAAcmR,GAAgBD,GAAiBE,EAClD,GAAIpR,GAA4B,GAAdA,EAChBnF,EAAQ+I,eAAiB,EACzBlH,EAAO+G,UAAW,EAClB3I,EAAKsK,iBAAgB,QAChB,GAAI8L,GAAkC,GAAjBA,EAAoB,CAC9C,IAAK,IAAI70B,EAAI,EAAGA,EAAI40B,EAAiB5yB,OAAQhC,IAAK,CAChD,IAAIugB,EAAUqU,EAAiB50B,GAC/BugB,EAAQ6G,UAAW,EACnB3I,EAAK0U,YAAY5S,EAAQiH,SAAS,GAGpCnH,EAAO+G,UAAW,EAClB3I,EAAK0U,YAAYiB,GAAc,OAC1B,CACL,IAAInS,EAAwD,iBAAhCxD,EAAK5W,QAAQoa,eAA8B,CAACxD,EAAK5W,QAAQoa,eAAgBxD,EAAK5W,QAAQoa,gBAAkBxD,EAAK5W,QAAQoa,eAC7I+S,EAA0C,mBAAnB/S,EAAgCA,EAAe0B,EAAYkR,GAAiB5S,EACnGgT,EAASD,EAAc,GAAGnrB,QAAO,MAAQ8Z,GACzCuR,EAAYF,EAAc,GAAGnrB,QAAO,MAAQgrB,GAC5CM,EAAUv2B,EAAA,8BAGVo2B,EAAc,KAChBC,EAASA,EAAOprB,QAAO,QAAUmrB,EAAc,GAAgB,EAAbrR,EAAiB,EAAI,IACvEuR,EAAYA,EAAUrrB,QAAO,QAAUmrB,EAAc,GAAmB,EAAhBH,EAAoB,EAAI,KAGlFxU,EAAO+G,UAAW,EAElB3I,EAAII,MAAOkU,OAAMoC,GAEbxR,GAAcmR,IAChBK,EAAQpC,OAAMn0B,EAAA,QAAaq2B,EAAS,WACpCT,GAAgB,EAChB/V,EAAIC,SAAU7T,QAAO,aAAgB6Q,IAGnCmZ,GAAiBE,IACnBI,EAAQpC,OAAMn0B,EAAA,QAAas2B,EAAY,WACvCV,GAAgB,EAChB/V,EAAIC,SAAU7T,QAAO,gBAAmB6Q,IAG1C2D,WAAW,WACTZ,EAAK0U,YAAYiB,GAAc,IAC9B,IAEHe,EAAQ,GAAGnvB,UAAU1B,IAAG,WAExB+a,WAAW,WACT8V,EAAQtwB,UACP,aAhEL0vB,IAAYA,EAAWnN,UAAW,GACtC/G,EAAO+G,UAAW,EAClB3I,EAAK0U,YAAYiB,GAAc,IAoE5B3V,EAAKvW,UAAauW,EAAKvW,UAAwC,IAA5BuW,EAAK5W,QAAQ8b,WACnDlF,EAAIG,QAAS/T,QAAO,SACX4T,EAAK5W,QAAQub,YACtB3E,EAAIkG,WAAY9Z,QAAO,SAIrB2pB,KACE/V,EAAKvW,UAAYosB,IAAc9V,EAAQ+I,gBAEzCpe,EAAmB,CAACkX,EAAOze,MAAO8yB,EAAQvQ,KAAI,YAAckQ,GAC5D5V,EAAIC,SACDvU,cAAa,eAMxB9F,KAAIwa,MAAOsG,GAAE,QAAU,MAAQxJ,EAAWC,SAAW,QAAUD,EAAWS,cAAgB,MAAQT,EAAWS,cAAgB,gBAAiB,SAAU9S,GAClJA,EAAE8rB,eAAiB/wB,OACrBiF,EAAEuqB,iBACFvqB,EAAEmrB,kBACEhW,EAAK5W,QAAQub,aAAcxkB,EAAG0K,EAAE+rB,QAAQlwB,SAAQ,SAClDsZ,EAAIkG,WAAY9Z,QAAO,SAEvB4T,EAAIG,QAAS/T,QAAO,YAK1BxG,KAAIqgB,WAAYS,GAAE,QAAU,6BAA8B,SAAU7b,GAClEA,EAAEuqB,iBACFvqB,EAAEmrB,kBACEhW,EAAK5W,QAAQub,WACf3E,EAAIkG,WAAY9Z,QAAO,SAEvB4T,EAAIG,QAAS/T,QAAO,WAIxBxG,KAAIwa,MAAOsG,GAAE,QAAU,IAAMxJ,EAAWS,cAAgB,UAAW,WACjEqC,EAAIG,QAAS/T,QAAO,WAGtBxG,KAAIsgB,WAAYQ,GAAE,QAAU,SAAU7b,GACpCA,EAAEmrB,oBAGJpwB,KAAIwa,MAAOsG,GAAE,QAAU,eAAgB,SAAU7b,GAC3CmV,EAAK5W,QAAQub,WACf3E,EAAIkG,WAAY9Z,QAAO,SAEvB4T,EAAIG,QAAS/T,QAAO,SAGtBvB,EAAEuqB,iBACFvqB,EAAEmrB,kBAEC71B,EAAGyF,MAAMc,SAAQ,iBAClBsZ,EAAKqB,YAELrB,EAAKsB,gBAIT1b,KAAIqa,SACDyG,GAAE,SAAYzJ,EAAW,WACxB+C,EAAKkB,SACLlB,EAAIC,SAAU7T,QAAO,UAAa6Q,EAAWvS,GAC7CA,EAAmB,OAEpBgc,GAAE,QAAWzJ,EAAW,WAClB+C,EAAK5W,QAAQ+b,QAAQnF,EAAIG,QAAS/T,QAAO,YAIpDka,mBAAoB,WAClB,IAAItG,EAAOpa,KACPixB,EAAY3xB,SAASC,cAAa,MAEtCS,KAAIua,QAASuG,GAAE,6BAA+B,WACtC1G,EAAIkG,WAAYjF,OACpBjB,EAAIkG,WAAYjF,IAAG,MAIvBrb,KAAIsgB,WAAYQ,GAAE,sFAAwF,SAAU7b,GAClHA,EAAEmrB,oBAGJpwB,KAAIsgB,WAAYQ,GAAE,uBAAyB,WACzC,IAAIoQ,EAAc9W,EAAIkG,WAAYjF,MAKlC,GAHAjB,EAAKK,aAAarY,OAAOhE,SAAW,GACpCgc,EAAKK,aAAarY,OAAOwC,KAAO,GAE5BssB,EAAa,CACf,IACIC,EAAc,GACdC,EAAIF,EAAYxrB,cAChB2rB,EAAQ,GACRC,EAAW,GACXC,EAAcnX,EAAKoX,eACnBC,EAAkBrX,EAAK5W,QAAQyb,oBAE/BwS,IAAiBL,EAAI3rB,EAAgB2rB,IAEzC,IAAK,IAAIz1B,EAAI,EAAGA,EAAIye,EAAKK,aAAaC,KAAK9V,KAAKjH,OAAQhC,IAAK,CAC3D,IAAIE,EAAKue,EAAKK,aAAaC,KAAK9V,KAAKjJ,GAEhC01B,EAAM11B,KACT01B,EAAM11B,GAAKuJ,EAAarJ,EAAIu1B,EAAGG,EAAaE,IAG1CJ,EAAM11B,SAAyB0F,IAAnBxF,EAAGksB,cAAmE,IAAtCuJ,EAAS5yB,QAAQ7C,EAAGksB,eAC7C,EAAjBlsB,EAAGksB,cACLsJ,EAAMx1B,EAAGksB,YAAc,IAAK,EAC5BuJ,EAAS3tB,KAAK9H,EAAGksB,YAAc,IAGjCsJ,EAAMx1B,EAAGksB,cAAe,EACxBuJ,EAAS3tB,KAAK9H,EAAGksB,aAEjBsJ,EAAMx1B,EAAGmsB,UAAY,IAAK,GAGxBqJ,EAAM11B,IAAkB,mBAAZE,EAAG0mB,MAA2B+O,EAAS3tB,KAAKhI,GAGrDA,EAAI,EAAb,IAAK,IAAW+1B,EAAWJ,EAAS3zB,OAAQhC,EAAI+1B,EAAU/1B,IAAK,CAC7D,IAAI4B,EAAQ+zB,EAAS31B,GACjBs0B,EAAYqB,EAAS31B,EAAI,GAEzBg2B,GADA91B,EAAKue,EAAKK,aAAaC,KAAK9V,KAAKrH,GACxB6c,EAAKK,aAAaC,KAAK9V,KAAKqrB,KAEzB,YAAZp0B,EAAG0mB,MAAmC,YAAZ1mB,EAAG0mB,MAAsBoP,GAA0B,YAAhBA,EAAOpP,MAAsBmP,EAAW,IAAM/1B,KAC7Gye,EAAKK,aAAarY,OAAOwC,KAAKjB,KAAK9H,GACnCs1B,EAAYxtB,KAAKyW,EAAKK,aAAaC,KAAKtc,SAASb,KAIrD6c,EAAKkK,iBAAcjjB,EACnB+Y,EAAK+L,UAAW,EAChB/L,EAAIiG,WAAYe,UAAU,GAC1BhH,EAAKK,aAAarY,OAAOhE,SAAW+yB,EACpC/W,EAAKyI,YAAW,GAEXsO,EAAYxzB,SACfszB,EAAUvY,UAAY,aACtBuY,EAAU5X,UAAYe,EAAK5W,QAAQga,gBAAgBhY,QAAO,MAAQ,IAAMwN,EAAWke,GAAe,KAClG9W,EAAIiG,WAAY,GAAGa,WAAW9H,YAAY6X,SAG5C7W,EAAIiG,WAAYe,UAAU,GAC1BhH,EAAKyI,YAAW,MAKtB2O,aAAc,WACZ,OAAOxxB,KAAKwD,QAAQ0b,iBAAmB,YAGzC7D,IAAK,SAAU7d,GACb,IAAI2c,EAAUna,KAAIqa,SAAU,GAE5B,QAAqB,IAAV7c,EA4BT,OAAOwC,KAAIqa,SAAUgB,MA3BrB,IAAI2U,EAAYpsB,EAAgBuW,GAQhC,GANArV,EAAmB,CAAC,KAAM,KAAMkrB,GAEhChwB,KAAIqa,SACDgB,IAAI7d,GACJgJ,QAAO,UAAa6Q,EAAWvS,GAE9B9E,KAAIsa,YAAaxZ,SAASwW,EAAWG,MACvC,GAAIzX,KAAK6D,SACP7D,KAAK0kB,iBAAgB,OAChB,CACL,IAAIkN,GAAmBzX,EAAQ3W,QAAQ2W,EAAQ+I,gBAAkB,IAAIC,QAEtC,iBAApByO,IACT5xB,KAAK8uB,YAAY9uB,KAAKkjB,eAAe,GACrCljB,KAAK8uB,YAAY8C,GAAiB,IASxC,OAJA5xB,KAAKsb,SAELxW,EAAmB,KAEZ9E,KAAIqa,UAMfwX,UAAW,SAAUnI,GACnB,GAAK1pB,KAAK6D,SAAV,MACsB,IAAX6lB,IAAwBA,GAAS,GAE5C,IAAIvP,EAAUna,KAAIqa,SAAU,GACxByX,EAAmB,EACnBC,EAAkB,EAClB/B,EAAYpsB,EAAgBuW,GAEhCA,EAAQxY,UAAU1B,IAAG,oBAErB,IAAK,IAAItE,EAAI,EAAGiJ,EAAO5E,KAAKya,aAAaE,QAAQ/V,KAAMzG,EAAMyG,EAAKjH,OAAQhC,EAAIwC,EAAKxC,IAAK,CACtF,IAAIyqB,EAASxhB,EAAKjJ,GACdqgB,EAASoK,EAAOpK,OAEhBA,IAAWoK,EAAO3iB,UAA4B,YAAhB2iB,EAAO7D,OACnC6D,EAAOrD,UAAU+O,KAEN,KADf9V,EAAO+G,SAAW2G,IACGqI,KAIzB5X,EAAQxY,UAAUnB,OAAM,oBAEpBsxB,IAAqBC,IAEzB/xB,KAAK0kB,kBAEL5f,EAAmB,CAAC,KAAM,KAAMkrB,GAEhChwB,KAAIqa,SACDvU,cAAa,aAGlB2V,UAAW,WACT,OAAOzb,KAAK6xB,WAAU,IAGxBnW,YAAa,WACX,OAAO1b,KAAK6xB,WAAU,IAGxBnxB,OAAQ,SAAUuE,IAChBA,EAAIA,GAAKzD,OAAOwE,QAETf,EAAEmrB,kBAETpwB,KAAIua,QAAS/T,QAAO,+BAGtBqU,QAAS,SAAU5V,GACjB,IAKI1H,EACAy0B,EACAC,EACAC,EACA9F,EATAtP,EAAQviB,EAAEyF,MACVmyB,EAAWrV,EAAMhc,SAAQ,mBAEzBsZ,GADU+X,EAAWrV,EAAMsV,QAAO,aAAgBtV,EAAMsV,QAAQla,EAASP,OAC1D/S,KAAI,QACnBytB,EAASjY,EAAKqO,UAMd6J,GAAe,EACfC,EAAYttB,EAAEutB,QAAU9b,IAAiByb,IAAa/X,EAAK5W,QAAQgc,YACnEiT,EAAa3Z,EAAavF,KAAKtO,EAAEutB,QAAUD,EAC3CnR,EAAYhH,EAAIiG,WAAY,GAAGe,UAE/BgD,GAA0B,IADdhK,EAAK2G,YACgB3G,EAAKK,aAAajb,KAAK4kB,UAAY,EAGxE,KAAe,KAAXnf,EAAEutB,OAAgBvtB,EAAEutB,OAAS,KAIjC,KAFAR,EAAW5X,EAAIE,YAAaxZ,SAASwW,EAAWG,SAK5Cgb,GACY,IAAXxtB,EAAEutB,OAAevtB,EAAEutB,OAAS,IACjB,IAAXvtB,EAAEutB,OAAevtB,EAAEutB,OAAS,KACjB,IAAXvtB,EAAEutB,OAAevtB,EAAEutB,OAAS,MAG/BpY,EAAIG,QAAS/T,QAAO,8BAEhB4T,EAAK5W,QAAQub,YACf3E,EAAIkG,WAAY9Z,QAAO,aAZ3B,CAsBA,GALIvB,EAAEutB,QAAU9b,GAAmBsb,IACjC/sB,EAAEuqB,iBACFpV,EAAIG,QAAS/T,QAAO,8BAA+BA,QAAO,UAGxDisB,EAAY,CACd,IAAGJ,EAAS10B,OAAQ,QAKL,KAFfJ,GADA00B,EAAW7X,EAAKK,aAAaC,KAAKtc,SAASgc,EAAKkK,cAC7BnkB,MAAMC,UAAU1B,QAAQG,KAAKozB,EAAStC,cAAcvP,SAAU6R,IAAa,IAG5F7X,EAAKoK,YAAYyN,GAGfhtB,EAAEutB,QAAU9b,IACC,IAAXnZ,GAAcA,IACdA,EAAQ6mB,EAAY,IAAG7mB,GAAS80B,EAAO10B,QAEtCyc,EAAKK,aAAajb,KAAK8iB,aAAa/kB,EAAQ6mB,KAEhC,KADf7mB,EAAQ6c,EAAKK,aAAajb,KAAK8iB,aAAa1jB,MAAM,EAAGrB,EAAQ6mB,GAAWsO,aAAY,GAAQtO,KAC1E7mB,EAAQ80B,EAAO10B,OAAS,IAEnCsH,EAAEutB,QAAU9b,IAAuB6b,MAC5Ch1B,EACY6mB,GAAahK,EAAKK,aAAajb,KAAK8iB,aAAa3kB,SAAQJ,EAAQ,GAExE6c,EAAKK,aAAajb,KAAK8iB,aAAa/kB,EAAQ6mB,KAC/C7mB,EAAQA,EAAQ,EAAI6c,EAAKK,aAAajb,KAAK8iB,aAAa1jB,MAAMrB,EAAQ6mB,EAAY,GAAG1lB,SAAQ,KAIjGuG,EAAEuqB,iBAEF,IAAImD,EAAgBvO,EAAY7mB,EAE5B0H,EAAEutB,QAAU9b,EAEI,IAAd0N,GAAmB7mB,IAAU80B,EAAO10B,OAAS,GAC/Cyc,EAAIiG,WAAY,GAAGe,UAAYhH,EAAIiG,WAAY,GAAGuS,aAElDD,EAAgBvY,EAAKK,aAAaE,QAAQvc,SAAST,OAAS,GAK5D20B,GAFAlG,GADA8F,EAAW9X,EAAKK,aAAaE,QAAQ/V,KAAK+tB,IACxBhwB,SAAWuvB,EAAS1P,QAEdpB,EAEjBnc,EAAEutB,QAAU9b,IAAuB6b,IAE9B,IAAVh1B,EAGFo1B,EAFAvY,EAAIiG,WAAY,GAAGe,UAAY,EAO/BkR,EAAwBlR,GAFxBgL,GADA8F,EAAW9X,EAAKK,aAAaE,QAAQ/V,KAAK+tB,IACxBhwB,SAAWyX,EAAKa,SAASoI,kBAM/C4O,EAAW7X,EAAKK,aAAaE,QAAQvc,SAASu0B,GAE9CvY,EAAKkK,YAAclK,EAAKK,aAAaE,QAAQ/V,KAAK+tB,GAAep1B,MAEjE6c,EAAK6L,UAAUgM,GAEf7X,EAAKK,aAAajb,KAAKwmB,cAAgBiM,EAEnCK,IAAclY,EAAIiG,WAAY,GAAGe,UAAYgL,GAE7ChS,EAAK5W,QAAQub,WACf3E,EAAIkG,WAAY9Z,QAAO,SAEvBsW,EAAMtW,QAAO,cAEV,IACLsW,EAAQC,GAAE,WAAchE,EAAqBxF,KAAKtO,EAAEutB,QACnDvtB,EAAEutB,QAAU9b,GAAkB0D,EAAKK,aAAaI,QAAQC,WACzD,CACA,IAAIqW,EAEArW,EADA+X,EAAU,GAGd5tB,EAAEuqB,iBAEFpV,EAAKK,aAAaI,QAAQC,YAAcrH,EAAWxO,EAAEutB,OAEjDpY,EAAKK,aAAaI,QAAQE,gBAAgB+X,QAAQC,aAAa3Y,EAAKK,aAAaI,QAAQE,gBAAgB+X,QAC7G1Y,EAAKK,aAAaI,QAAQE,gBAAgB+X,OAAS1Y,EAAKK,aAAaI,QAAQE,gBAAgBjY,QAE7FgY,EAAaV,EAAKK,aAAaI,QAAQC,WAGpC,WAAYvH,KAAKuH,KAClBA,EAAaA,EAAWkY,OAAO,IAIjC,IAAK,IAAIr3B,EAAI,EAAGA,EAAIye,EAAKK,aAAaE,QAAQ/V,KAAKjH,OAAQhC,IAAK,CAC9D,IAAIE,EAAKue,EAAKK,aAAaE,QAAQ/V,KAAKjJ,GAG7BuJ,EAAarJ,EAAIif,EAAY,cAAc,IAEtCV,EAAKK,aAAajb,KAAK8iB,aAAa3mB,IAClDk3B,EAAQlvB,KAAK9H,EAAG0B,OAIpB,GAAIs1B,EAAQl1B,OAAQ,CAClB,IAAIs1B,EAAa,EAEjBZ,EAAO5xB,YAAW,UAAW8f,KAAI,KAAM9f,YAAW,UAGxB,IAAtBqa,EAAWnd,UAGO,KAFpBs1B,EAAaJ,EAAQn0B,QAAQ0b,EAAKkK,eAET2O,IAAeJ,EAAQl1B,OAAS,EACvDs1B,EAAa,EAEbA,KAIJ9B,EAAc0B,EAAQI,GAMpBX,EAFkC,EAAhClR,GAFJ8Q,EAAW9X,EAAKK,aAAaC,KAAK9V,KAAKusB,IAEdxuB,UACvBypB,EAAS8F,EAASvvB,SAAWuvB,EAAS1P,QACvB,IAEf4J,EAAS8F,EAASvvB,SAAWyX,EAAKa,SAASoI,gBAE5B6O,EAASvvB,SAAWye,EAAYhH,EAAKa,SAASoI,iBAG/D4O,EAAW7X,EAAKK,aAAaC,KAAKtc,SAAS+yB,GAE3C/W,EAAKkK,YAAcuO,EAAQI,GAE3B7Y,EAAK6L,UAAUgM,GAEXA,GAAUA,EAAS/Q,WAAWgS,QAE9BZ,IAAclY,EAAIiG,WAAY,GAAGe,UAAYgL,GAEjDtP,EAAMtW,QAAO,UAMfwrB,IAEG/sB,EAAEutB,QAAU9b,IAAmB0D,EAAKK,aAAaI,QAAQC,YAC1D7V,EAAEutB,QAAU9b,GACXzR,EAAEutB,QAAU9b,GAAgB0D,EAAK5W,QAAQgc,eAGxCva,EAAEutB,QAAU9b,GAAgBzR,EAAEuqB,iBAE7BpV,EAAK5W,QAAQub,YAAc9Z,EAAEutB,QAAU9b,IAC1C0D,EAAIiG,WAAYE,KAAI,aAAc/Z,QAAO,SAAU,GACnDsW,EAAMtW,QAAO,SAER4T,EAAK5W,QAAQub,aAEhB9Z,EAAEuqB,iBAEFj1B,EAAE+E,UAAUsF,KAAI,eAAgB,QAMxC2a,OAAQ,WACNvf,KAAIqa,SAAU,GAAG1Y,UAAU1B,IAAG,kBAGhCsb,QAAS,WAEP,IAAI2B,EAAS3iB,EAAE4iB,OAAM,GAAKnd,KAAKwD,QAASxD,KAAIqa,SAAUzV,QACtD5E,KAAKwD,QAAU0Z,EAEfld,KAAKwgB,gBACLxgB,KAAKwb,WACLxb,KAAKsb,SACLtb,KAAKigB,YACLjgB,KAAK6hB,YACL7hB,KAAK4gB,WAEL5gB,KAAK8iB,SAAQ,GAEb9iB,KAAIqa,SAAU7T,QAAO,YAAe6Q,IAGtCwE,KAAM,WACJ7b,KAAIsa,YAAauB,QAGnBD,KAAM,WACJ5b,KAAIsa,YAAasB,QAGnBpb,OAAQ,WACNR,KAAIsa,YAAa9Z,SACjBR,KAAIqa,SAAU7Z,UAGhBmb,QAAS,WACP3b,KAAIsa,YAAa6Y,OAAOnzB,KAAIqa,UAAW7Z,SAEnCR,KAAIouB,aACNpuB,KAAIouB,aAAc5tB,SAElBR,KAAIwa,MAAOha,SAGbR,KAAIqa,SACDqH,IAAIrK,GACJ+b,WAAU,gBACV3yB,YAAW,iCAEdlG,EAAEiH,QAAQkgB,IAAIrK,EAAY,IAAMrX,KAAKoX,YA2GzC,IAAIic,EAAM94B,EAAEsL,GAAG4U,aACflgB,EAAEsL,GAAG4U,aAAesB,EACpBxhB,EAAEsL,GAAG4U,aAAazD,YAAckD,EAIhC3f,EAAEsL,GAAG4U,aAAa6Y,WAAa,WAE7B,OADA/4B,EAAEsL,GAAG4U,aAAe4Y,EACbrzB,MAIT,IAAIuzB,EAAmBh5B,EAAEsL,GAAGkR,SAASC,YAAYwc,wBAA0Bj5B,EAAEsL,GAAGkR,SAASC,YAAY5W,UAAUya,QAE/GtgB,EAAE+E,UACCoiB,IAAG,gCACHZ,GAAE,+BAAiC,qDAAsDyS,GACzFzS,GAAE,+BAAiC,2CAA4CyS,GAC/EzS,GAAE,UAAazJ,EAAW,wHAAyH6C,EAAa9Z,UAAUya,SAC1KiG,GAAE,gBAAkB,wHAAyH,SAAU7b,GACtJA,EAAEmrB,oBAKN71B,EAAEiH,QAAQsf,GAAE,OAAUzJ,EAAY,YAAa,WAC7C9c,EAAA,iBAAmBsiB,KAAK,WACtB,IAAI4W,EAAgBl5B,EAAEyF,MACtB+b,EAAOld,KAAI40B,EAAgBA,EAAc7uB,YA5kG/C,CA+kGG8uB","file":"bootstrap-select.min.js"}
\ No newline at end of file
diff --git a/web/js/bootstrap.min.js b/web/js/bootstrap.min.js
deleted file mode 100644
index dd1f6802e0..0000000000
--- a/web/js/bootstrap.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap v3.3.5 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under the MIT license
- */
-if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.5",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.5",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.5",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.5",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.5",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.5",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.5",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),
-d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.5",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.5",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/web/js/clockpicker/bootstrap-clockpicker.min.js b/web/js/clockpicker/bootstrap-clockpicker.min.js
deleted file mode 100644
index ad8b54f299..0000000000
--- a/web/js/clockpicker/bootstrap-clockpicker.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * ClockPicker v0.0.7 (http://weareoutman.github.io/clockpicker/)
- * Copyright 2014 Wang Shenwei.
- * Licensed under MIT (https://github.com/weareoutman/clockpicker/blob/master/LICENSE)
- */
-!function(){function t(t){return document.createElementNS(a,t)}function i(t){return(10>t?"0":"")+t}function e(t){var i=++v+"";return t?t+i:i}function s(s,n){function a(t,i){var e=h.offset(),s=/^touch/.test(t.type),c=e.left+m,a=e.top+m,l=(s?t.originalEvent.touches[0]:t).pageX-c,u=(s?t.originalEvent.touches[0]:t).pageY-a,f=Math.sqrt(l*l+u*u),v=!1;if(!i||!(g-w>f||f>g+w)){t.preventDefault();var b=setTimeout(function(){o.addClass("clockpicker-moving")},200);p&&h.append(H.canvas),H.setHand(l,u,!i,!0),r.off(k).on(k,function(t){t.preventDefault();var i=/^touch/.test(t.type),e=(i?t.originalEvent.touches[0]:t).pageX-c,s=(i?t.originalEvent.touches[0]:t).pageY-a;(v||e!==l||s!==u)&&(v=!0,H.setHand(e,s,!1,!0))}),r.off(d).on(d,function(t){r.off(d),t.preventDefault();var e=/^touch/.test(t.type),s=(e?t.originalEvent.changedTouches[0]:t).pageX-c,p=(e?t.originalEvent.changedTouches[0]:t).pageY-a;(i||v)&&s===l&&p===u&&H.setHand(s,p),"hours"===H.currentView?H.toggleView("minutes",M/2):n.autoclose&&(H.minutesView.addClass("clockpicker-dial-out"),setTimeout(function(){H.done()},M/2)),h.prepend(O),clearTimeout(b),o.removeClass("clockpicker-moving"),r.off(k)})}}var l=c(A),h=l.find(".clockpicker-plate"),f=l.find(".clockpicker-hours"),v=l.find(".clockpicker-minutes"),T=l.find(".clockpicker-am-pm-block"),V="INPUT"===s.prop("tagName"),C=V?s:s.find("input"),P=s.find(".input-group-addon"),H=this;if(this.id=e("cp"),this.element=s,this.options=n,this.isAppended=!1,this.isShown=!1,this.currentView="hours",this.isInput=V,this.input=C,this.addon=P,this.popover=l,this.plate=h,this.hoursView=f,this.minutesView=v,this.amPmBlock=T,this.spanHours=l.find(".clockpicker-span-hours"),this.spanMinutes=l.find(".clockpicker-span-minutes"),this.spanAmPm=l.find(".clockpicker-span-am-pm"),this.amOrPm="PM",n.twelvehour){{var x=['<div class="clockpicker-am-pm-block">','<button type="button" class="btn btn-sm btn-default clockpicker-button clockpicker-am-button">',"AM</button>",'<button type="button" class="btn btn-sm btn-default clockpicker-button clockpicker-pm-button">',"PM</button>","</div>"].join("");c(x)}c('<button type="button" class="btn btn-sm btn-default clockpicker-button am-button">AM</button>').on("click",function(){H.amOrPm="AM",c(".clockpicker-span-am-pm").empty().append("AM")}).appendTo(this.amPmBlock),c('<button type="button" class="btn btn-sm btn-default clockpicker-button pm-button">PM</button>').on("click",function(){H.amOrPm="PM",c(".clockpicker-span-am-pm").empty().append("PM")}).appendTo(this.amPmBlock)}n.autoclose||c('<button type="button" class="btn btn-sm btn-default btn-block clockpicker-button">'+n.donetext+"</button>").click(c.proxy(this.done,this)).appendTo(l),"top"!==n.placement&&"bottom"!==n.placement||"top"!==n.align&&"bottom"!==n.align||(n.align="left"),"left"!==n.placement&&"right"!==n.placement||"left"!==n.align&&"right"!==n.align||(n.align="top"),l.addClass(n.placement),l.addClass("clockpicker-align-"+n.align),this.spanHours.click(c.proxy(this.toggleView,this,"hours")),this.spanMinutes.click(c.proxy(this.toggleView,this,"minutes")),C.on("focus.clockpicker click.clockpicker",c.proxy(this.show,this)),P.on("click.clockpicker",c.proxy(this.toggle,this));var E,S,I,D=c('<div class="clockpicker-tick"></div>');if(n.twelvehour)for(E=1;13>E;E+=1){S=D.clone(),I=E/6*Math.PI;var B=g;S.css("font-size","120%"),S.css({left:m+Math.sin(I)*B-w,top:m-Math.cos(I)*B-w}),S.html(0===E?"00":E),f.append(S),S.on(u,a)}else for(E=0;24>E;E+=1){S=D.clone(),I=E/6*Math.PI;var z=E>0&&13>E,B=z?b:g;S.css({left:m+Math.sin(I)*B-w,top:m-Math.cos(I)*B-w}),z&&S.css("font-size","120%"),S.html(0===E?"00":E),f.append(S),S.on(u,a)}for(E=0;60>E;E+=5)S=D.clone(),I=E/30*Math.PI,S.css({left:m+Math.sin(I)*g-w,top:m-Math.cos(I)*g-w}),S.css("font-size","120%"),S.html(i(E)),v.append(S),S.on(u,a);if(h.on(u,function(t){0===c(t.target).closest(".clockpicker-tick").length&&a(t,!0)}),p){var O=l.find(".clockpicker-canvas"),j=t("svg");j.setAttribute("class","clockpicker-svg"),j.setAttribute("width",y),j.setAttribute("height",y);var L=t("g");L.setAttribute("transform","translate("+m+","+m+")");var U=t("circle");U.setAttribute("class","clockpicker-canvas-bearing"),U.setAttribute("cx",0),U.setAttribute("cy",0),U.setAttribute("r",2);var W=t("line");W.setAttribute("x1",0),W.setAttribute("y1",0);var N=t("circle");N.setAttribute("class","clockpicker-canvas-bg"),N.setAttribute("r",w);var X=t("circle");X.setAttribute("class","clockpicker-canvas-fg"),X.setAttribute("r",3.5),L.appendChild(W),L.appendChild(N),L.appendChild(X),L.appendChild(U),j.appendChild(L),O.append(j),this.hand=W,this.bg=N,this.fg=X,this.bearing=U,this.g=L,this.canvas=O}}var o,c=window.jQuery,n=c(window),r=c(document),a="http://www.w3.org/2000/svg",p="SVGAngle"in window&&function(){var t,i=document.createElement("div");return i.innerHTML="<svg/>",t=(i.firstChild&&i.firstChild.namespaceURI)==a,i.innerHTML="",t}(),l=function(){var t=document.createElement("div").style;return"transition"in t||"WebkitTransition"in t||"MozTransition"in t||"msTransition"in t||"OTransition"in t}(),h="ontouchstart"in window,u="mousedown"+(h?" touchstart":""),k="mousemove.clockpicker"+(h?" touchmove.clockpicker":""),d="mouseup.clockpicker"+(h?" touchend.clockpicker":""),f=navigator.vibrate?"vibrate":navigator.webkitVibrate?"webkitVibrate":null,v=0,m=100,g=80,b=54,w=13,y=2*m,M=l?350:1,A=['<div class="popover clockpicker-popover">','<div class="arrow"></div>','<div class="popover-title">','<span class="clockpicker-span-hours text-primary"></span>'," : ",'<span class="clockpicker-span-minutes"></span>','<span class="clockpicker-span-am-pm"></span>',"</div>",'<div class="popover-content">','<div class="clockpicker-plate">','<div class="clockpicker-canvas"></div>','<div class="clockpicker-dial clockpicker-hours"></div>','<div class="clockpicker-dial clockpicker-minutes clockpicker-dial-out"></div>',"</div>",'<span class="clockpicker-am-pm-block">',"</span>","</div>","</div>"].join("");s.DEFAULTS={"default":"",fromnow:0,placement:"bottom",align:"left",donetext:"完成",autoclose:!1,twelvehour:!1,vibrate:!0},s.prototype.toggle=function(){this[this.isShown?"hide":"show"]()},s.prototype.locate=function(){var t=this.element,i=this.popover,e=t.offset(),s=t.outerWidth(),o=t.outerHeight(),c=this.options.placement,n=this.options.align,r={};switch(i.show(),c){case"bottom":r.top=e.top+o;break;case"right":r.left=e.left+s;break;case"top":r.top=e.top-i.outerHeight();break;case"left":r.left=e.left-i.outerWidth()}switch(n){case"left":r.left=e.left;break;case"right":r.left=e.left+s-i.outerWidth();break;case"top":r.top=e.top;break;case"bottom":r.top=e.top+o-i.outerHeight()}i.css(r)},s.prototype.show=function(){if(!this.isShown){var t=this;this.isAppended||(o=c(document.body).append(this.popover),n.on("resize.clockpicker"+this.id,function(){t.isShown&&t.locate()}),this.isAppended=!0);var e=((this.input.prop("value")||this.options["default"]||"")+"").split(":");if("now"===e[0]){var s=new Date(+new Date+this.options.fromnow);e=[s.getHours(),s.getMinutes()]}this.hours=+e[0]||0,this.minutes=+e[1]||0,this.spanHours.html(i(this.hours)),this.spanMinutes.html(i(this.minutes)),this.toggleView("hours"),this.locate(),this.isShown=!0,r.on("click.clockpicker."+this.id+" focusin.clockpicker."+this.id,function(i){var e=c(i.target);0===e.closest(t.popover).length&&0===e.closest(t.addon).length&&0===e.closest(t.input).length&&t.hide()}),r.on("keyup.clockpicker."+this.id,function(i){27===i.keyCode&&t.hide()})}},s.prototype.hide=function(){this.isShown=!1,r.off("click.clockpicker."+this.id+" focusin.clockpicker."+this.id),r.off("keyup.clockpicker."+this.id),this.popover.hide()},s.prototype.toggleView=function(t,i){var e="hours"===t,s=e?this.hoursView:this.minutesView,o=e?this.minutesView:this.hoursView;this.currentView=t,this.spanHours.toggleClass("text-primary",e),this.spanMinutes.toggleClass("text-primary",!e),o.addClass("clockpicker-dial-out"),s.css("visibility","visible").removeClass("clockpicker-dial-out"),this.resetClock(i),clearTimeout(this.toggleViewTimer),this.toggleViewTimer=setTimeout(function(){o.css("visibility","hidden")},M)},s.prototype.resetClock=function(t){var i=this.currentView,e=this[i],s="hours"===i,o=Math.PI/(s?6:30),c=e*o,n=s&&e>0&&13>e?b:g,r=Math.sin(c)*n,a=-Math.cos(c)*n,l=this;p&&t?(l.canvas.addClass("clockpicker-canvas-out"),setTimeout(function(){l.canvas.removeClass("clockpicker-canvas-out"),l.setHand(r,a)},t)):this.setHand(r,a)},s.prototype.setHand=function(t,e,s,o){var n,r=Math.atan2(t,-e),a="hours"===this.currentView,l=Math.PI/(a||s?6:30),h=Math.sqrt(t*t+e*e),u=this.options,k=a&&(g+b)/2>h,d=k?b:g;if(u.twelvehour&&(d=g),0>r&&(r=2*Math.PI+r),n=Math.round(r/l),r=n*l,u.twelvehour?a?0===n&&(n=12):(s&&(n*=5),60===n&&(n=0)):a?(12===n&&(n=0),n=k?0===n?12:n:0===n?0:n+12):(s&&(n*=5),60===n&&(n=0)),this[this.currentView]!==n&&f&&this.options.vibrate&&(this.vibrateTimer||(navigator[f](10),this.vibrateTimer=setTimeout(c.proxy(function(){this.vibrateTimer=null},this),100))),this[this.currentView]=n,this[a?"spanHours":"spanMinutes"].html(i(n)),!p)return void this[a?"hoursView":"minutesView"].find(".clockpicker-tick").each(function(){var t=c(this);t.toggleClass("active",n===+t.html())});o||!a&&n%5?(this.g.insertBefore(this.hand,this.bearing),this.g.insertBefore(this.bg,this.fg),this.bg.setAttribute("class","clockpicker-canvas-bg clockpicker-canvas-bg-trans")):(this.g.insertBefore(this.hand,this.bg),this.g.insertBefore(this.fg,this.bg),this.bg.setAttribute("class","clockpicker-canvas-bg"));var v=Math.sin(r)*d,m=-Math.cos(r)*d;this.hand.setAttribute("x2",v),this.hand.setAttribute("y2",m),this.bg.setAttribute("cx",v),this.bg.setAttribute("cy",m),this.fg.setAttribute("cx",v),this.fg.setAttribute("cy",m)},s.prototype.done=function(){this.hide();var t=this.input.prop("value"),e=i(this.hours)+":"+i(this.minutes);this.options.twelvehour&&(e+=this.amOrPm),this.input.prop("value",e),e!==t&&(this.input.triggerHandler("change"),this.isInput||this.element.trigger("change")),this.options.autoclose&&this.input.trigger("blur")},s.prototype.remove=function(){this.element.removeData("clockpicker"),this.input.off("focus.clockpicker click.clockpicker"),this.addon.off("click.clockpicker"),this.isShown&&this.hide(),this.isAppended&&(n.off("resize.clockpicker"+this.id),this.popover.remove())},c.fn.clockpicker=function(t){var i=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=c(this),o=e.data("clockpicker");if(o)"function"==typeof o[t]&&o[t].apply(o,i);else{var n=c.extend({},s.DEFAULTS,e.data(),"object"==typeof t&&t);e.data("clockpicker",new s(e,n))}})}}();
\ No newline at end of file
diff --git a/web/js/core.js b/web/js/core.js
deleted file mode 100644
index 0b74fedb29..0000000000
--- a/web/js/core.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(t){var e=window.am4internal_webpackJsonp;window.am4internal_webpackJsonp=function(i,o,a){for(var s,u,l,h=0,c=[];h<i.length;h++)u=i[h],n[u]&&c.push(n[u][0]),n[u]=0;for(s in o)Object.prototype.hasOwnProperty.call(o,s)&&(t[s]=o[s]);for(e&&e(i,o,a);c.length;)c.shift()();if(a)for(h=0;h<a.length;h++)l=r(r.s=a[h]);return l};var i={},n={a74a:0};function r(e){if(i[e])return i[e].exports;var n=i[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(t){var e=n[t];if(0===e)return new Promise(function(t){t()});if(e)return e[2];var i=new Promise(function(i,r){e=n[t]=[i,r]});e[2]=i;var o=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,r.nc&&a.setAttribute("nonce",r.nc),a.src=r.p+"deps/"+({"0471":"canvg","076f":"pdfmake",bf3e:"xlsx"}[t]||t)+".js";var s=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(s);var e=n[t];0!==e&&(e&&e[1](new Error("Loading chunk "+t+" failed.")),n[t]=void 0)}return a.onerror=a.onload=u,o.appendChild(a),i},r.m=t,r.c=i,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r.oe=function(t){throw console.error(t),t},r(r.s=0)}({"+6ht":function(t,e,i){var n=i("rkh7"),r=i("pmYy"),o=i("snR7"),a=i("T9LF").Reflect;t.exports=a&&a.ownKeys||function(t){var e=n.f(o(t)),i=r.f;return i?e.concat(i(t)):e}},"+gRV":function(t,e,i){var n=i("Gb1H");n(n.G+n.W+n.F*!i("xSzy").ABV,{DataView:i("LNZc").DataView})},"+qIf":function(t,e,i){"use strict";i.d(e,"b",function(){return l}),i.d(e,"a",function(){return h}),i.d(e,"c",function(){return c});var n=i("m4/l"),r=i("hD5A"),o=i("o0Lc"),a=i("Qkdp"),s=i("Wglt"),u=i("wUYf"),l=function(t){function e(e){var i=e.events.on("removed",function(t){t.oldValue.dispose()},void 0,!1);return t.call(this,function(){i.dispose(),s.each(e.iterator(),function(t){t[1].dispose()})})||this}return n.c(e,t),e}(r.b),h=function(){function t(){this.events=new o.a,this._dictionary={}}return t.prototype.hasKey=function(t){return a.hasKey(this._dictionary,t)},t.prototype.getKey=function(t){return this._dictionary[t]},t.prototype.insertKey=function(t,e){if(a.hasKey(this._dictionary,t))throw new Error("Key "+t+" already exists in dictionary");this._dictionary[t]=e,this.events.isEnabled("insertKey")&&this.events.dispatchImmediately("insertKey",{type:"insertKey",target:this,key:t,newValue:e})},t.prototype.setKey=function(t,e){if(a.hasKey(this._dictionary,t)){var i=this._dictionary[t];i!==e&&(this._dictionary[t]=e,this.events.isEnabled("setKey")&&this.events.dispatchImmediately("setKey",{type:"setKey",target:this,key:t,oldValue:i,newValue:e}),this.events.isEnabled("removed")&&this.events.dispatchImmediately("removed",{type:"removed",target:this,oldValue:i}))}else this._dictionary[t]=e,this.events.isEnabled("insertKey")&&this.events.dispatchImmediately("insertKey",{type:"insertKey",target:this,key:t,newValue:e})},t.prototype.updateKey=function(t,e){if(!a.hasKey(this._dictionary,t))throw new Error("Key "+t+" doesn't exist in dictionary");var i=this._dictionary[t],n=e(i);i!==n&&(this._dictionary[t]=n,this.events.isEnabled("setKey")&&this.events.dispatchImmediately("setKey",{type:"setKey",target:this,key:t,oldValue:i,newValue:n}),this.events.isEnabled("removed")&&this.events.dispatchImmediately("removed",{type:"removed",target:this,oldValue:i}))},t.prototype.removeKey=function(t){if(a.hasKey(this._dictionary,t)){var e=this._dictionary[t];delete this._dictionary[t],this.events.isEnabled("removeKey")&&this.events.dispatchImmediately("removeKey",{type:"removeKey",target:this,key:t,oldValue:e}),this.events.isEnabled("removed")&&this.events.dispatchImmediately("removed",{type:"removed",target:this,oldValue:e})}},t.prototype.insertKeyIfEmpty=function(t,e){return this.hasKey(t)||this.insertKey(t,e()),this.getKey(t)},t.prototype.clear=function(){var t=this;this.events.isEnabled("removed")&&a.each(this._dictionary,function(e,i){t.events.dispatchImmediately("removed",{type:"removed",target:t,oldValue:i})}),this._dictionary={},this.events.isEnabled("cleared")&&this.events.dispatchImmediately("cleared",{type:"cleared",target:this})},t.prototype.copyFrom=function(t){var e=this;s.each(t.iterator(),function(t){e.setKey(t[0],t[1])})},t.prototype.iterator=function(){return a.entries(this._dictionary)},t.prototype[Symbol.iterator]=function(){var t,e,i,r;return n.d(this,function(n){switch(n.label){case 0:for(e in t=[],this._dictionary)t.push(e);i=0,n.label=1;case 1:return i<t.length?(r=t[i],a.hasKey(this._dictionary,r)?[4,[r,this._dictionary[r]]]:[3,3]):[3,4];case 2:n.sent(),n.label=3;case 3:return i++,[3,1];case 4:return[2]}})},t.prototype.each=function(t){s.each(this.iterator(),function(e){var i=n.e(e,2),r=i[0],o=i[1];return t(r,o)})},t.prototype.sortedIterator=function(){return s.sort(this.iterator(),function(t,e){return u.order(t[0],e[0])})},t}(),c=function(t){function e(e){var i=t.call(this)||this;return i.template=e,i}return n.c(e,t),Object.defineProperty(e.prototype,"template",{get:function(){return this._template},set:function(t){t.isTemplate=!0,this._template=t},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(t){var e=this;s.each(t.iterator(),function(t){e.setKey(t[0],t[1].clone())})},e.prototype.create=function(t){var e=this;return this.insertKeyIfEmpty(t,function(){return e.template.clone()})},e}(h)},"+wz8":function(t,e,i){var n=i("DvJ+"),r=i("T9LF").document,o=n(r)&&n(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},"/9XX":function(t,e,i){"use strict";i.d(e,"b",function(){return l}),e.a=function(t){o.push(t),c()},e.c=function(t){a.push(t),c()},e.f=function(t){s.push(t),c()},e.e=function(t){u.push(t)},e.d=function(){for(var t=Date.now(),e=u.length,i=0;i<e;++i)u.shift()(t)};var n=i("hJ5i"),r=!1,o=[],a=[],s=[],u=[],l="function"==typeof requestAnimationFrame?function(t){requestAnimationFrame(t)}:function(t){setTimeout(t,1e3/60)};function h(){for(var t=Date.now(),e=o.length,i=0;i<e;++i)o[i](t);n.shiftLeft(o,e);for(i=0;i<a.length;++i)a[i](t);a.length=0;for(i=0;i<s.length;++i)s[i](t);s.length=0,0===o.length&&0===a.length?r=!1:l(h)}function c(){r||(r=!0,l(h))}},"/IEW":function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("Tjl+"),o=i("aCit"),a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._invalid=!1,e}return n.c(e,t),e.prototype.invalidate=function(){!1===this._invalid&&(this._invalid=!0,o.b.events.on("exitframe",this.validate,this))},e.prototype.validate=function(){!0===this._invalid&&(this._invalid=!1,o.b.events.off("exitframe",this.validate,this))},e}(r.b)},"/NC3":function(t,e,i){var n=i("Gb1H"),r=i("0v9/");n(n.G+n.B,{setImmediate:r.set,clearImmediate:r.clear})},"/Oef":function(t,e,i){"use strict";var n=i("MfZA"),r={};r[i("YEtG")("toStringTag")]="z",r+""!="[object z]"&&i("wDk4")(Object.prototype,"toString",function(){return"[object "+n(this)+"]"},!0)},"/URX":function(t,e,i){var n=i("Gb1H"),r=Math.abs;n(n.S,"Math",{hypot:function(t,e){for(var i,n,o=0,a=0,s=arguments.length,u=0;a<s;)u<(i=r(arguments[a++]))?(o=o*(n=u/i)*n+1,u=i):o+=i>0?(n=i/u)*n:i;return u===1/0?1/0:u*Math.sqrt(o)}})},"/Xnt":function(t,e,i){"use strict";var n=i("T9LF"),r=i("Gb1H"),o=i("wDk4"),a=i("cA+3"),s=i("kFp5"),u=i("hpnp"),l=i("ypVE"),h=i("DvJ+"),c=i("AEc5"),p=i("ID9o"),d=i("bPwn"),f=i("6/bx");t.exports=function(t,e,i,g,m,y){var b=n[t],v=b,_=m?"set":"add",x=v&&v.prototype,P={},w=function(t){var e=x[t];o(x,t,"delete"==t?function(t){return!(y&&!h(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(y&&!h(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return y&&!h(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,i){return e.call(this,0===t?0:t,i),this})};if("function"==typeof v&&(y||x.forEach&&!c(function(){(new v).entries().next()}))){var O=new v,S=O[_](y?{}:-0,1)!=O,T=c(function(){O.has(1)}),C=p(function(t){new v(t)}),k=!y&&c(function(){for(var t=new v,e=5;e--;)t[_](e,e);return!t.has(-0)});C||((v=e(function(e,i){l(e,v,t);var n=f(new b,e,v);return void 0!=i&&u(i,m,n[_],n),n})).prototype=x,x.constructor=v),(T||k)&&(w("delete"),w("has"),m&&w("get")),(k||S)&&w(_),y&&x.clear&&delete x.clear}else v=g.getConstructor(e,t,m,_),a(v.prototype,i),s.NEED=!0;return d(v,t),P[t]=v,r(r.G+r.W+r.F*(v!=b),P),y||g.setStrong(v,t,m),v}},"/dMO":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("sc+R");n(n.P+n.F*!i("GQop")([].reduce,!0),"Array",{reduce:function(t){return r(this,t,arguments.length,arguments[1],!1)}})},"/e9j":function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("sxA1"),o=i("3/51"),a=i("aCit"),s=function(t){function e(){var e=t.call(this)||this;return e.className="LinearGradientModifier",e.gradient=new r.a,e.applyTheme(),e}return n.c(e,t),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.gradient=e.gradient.clone()},e}(o.a);a.b.registeredClasses.LinearGradientModifier=s},0:function(t,e,i){i("bcCe"),t.exports=i("Nv8/")},"0B2R":function(t,e,i){var n=i("Gb1H");n(n.S,"Object",{setPrototypeOf:i("7GtY").set})},"0C8c":function(t,e){var i=Math.expm1;t.exports=!i||i(10)>22025.465794806718||i(10)<22025.465794806718||-2e-17!=i(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:i},"0Czv":function(t,e,i){"use strict";i("Mvcd")("sup",function(t){return function(){return t(this,"sup","","")}})},"0FpR":function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.linear=function(t){return+t},e.quadIn=function(t){return t*t},e.quadOut=function(t){return t*(2-t)},e.quadInOut=function(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2},e.polyIn=r,e.polyOut=o,e.polyInOut=a,e.polyIn3=function(t){return r(t,3)},e.polyOut3=function(t){return o(t,3)},e.polyInOut3=function(t){return a(t,3)},e.expIn=function(t){return Math.pow(2,10*t-10)},e.expOut=function(t){return 1-Math.pow(2,-10*t)},e.expInOut=function(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2},e.sinIn=function(t){return 1-Math.cos(t*n.HALFPI)},e.sinOut=function(t){return Math.sin(t*n.HALFPI)},e.sinInOut=function(t){return(1-Math.cos(n.PI*t))/2},e.cubicIn=function(t){return t*t*t},e.cubicOut=function(t){return--t*t*t+1},e.cubicInOut=function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2},e.circleIn=function(t){return 1-Math.sqrt(1-t*t)},e.circleOut=function(t){return Math.sqrt(1- --t*t)},e.circleInOut=function(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2},e.bounceIn=function(t){return 1-y(1-t)},e.bounceOut=y,e.bounceInOut=function(t){return((t*=2)<=1?1-y(1-t):y(t-1)+1)/2},e.elasticIn=function(t){return b*Math.pow(2,10*--t)*Math.sin((_-t)/v)},e.elasticOut=function(t){return 1-b*Math.pow(2,-10*(t=+t))*Math.sin((t+_)/v)},e.elasticInOut=function(t){return((t=2*t-1)<0?b*Math.pow(2,10*t)*Math.sin((_-t)/v):2-b*Math.pow(2,-10*t)*Math.sin((_+t)/v))/2};var n=i("Gg2j");function r(t,e){return Math.pow(t,e)}function o(t,e){return 1-Math.pow(1-t,e)}function a(t,e){return((t*=2)<=1?Math.pow(t,e):2-Math.pow(2-t,e))/2}var s=4/11,u=6/11,l=8/11,h=.75,c=9/11,p=10/11,d=.9375,f=21/22,g=63/64,m=1/s/s;function y(t){return(t=+t)<s?m*t*t:t<l?m*(t-=u)*t+h:t<p?m*(t-=c)*t+d:m*(t-=f)*t+g}var b=1,v=.3/(2*Math.PI),_=Math.asin(1/b)*v},"0PyG":function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("Tjl+"),o=i("zhwk"),a=i("1yyj"),s=i("Mtpk"),u=function(t){function e(e,i,n,r){var o=t.call(this)||this;return o.animations=[],o.className="Inertia",o.interaction=e,o.type=i,o.point=n,o.startPoint=r,o._disposers.push(new a.b(o.animations)),o}return n.c(e,t),Object.defineProperty(e.prototype,"x",{get:function(){return this.point.x},set:function(t){s.isNumber(t)&&(this.point.x=t,this.handleMove())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y",{get:function(){return this.point.y},set:function(t){s.isNumber(t)&&(this.point.y=t,this.handleMove())},enumerable:!0,configurable:!0}),e.prototype.handleMove=function(){if(this.interaction.events.isEnabled("drag")){var t={type:"drag",target:this.interaction,shift:{x:this.x-this.startPoint.x,y:this.y-this.startPoint.y},startPoint:this.startPoint,point:{x:this.x,y:this.y}};this.interaction.events.dispatchImmediately("drag",t)}},e.prototype.done=function(){this.interaction.inertias.removeKey(this.type),"move"===this.type&&Object(o.b)().processDragStop(this.interaction),this.dispose()},e}(r.a)},"0YcW":function(t,e,i){"use strict";var n=i("cA+3"),r=i("kFp5").getWeak,o=i("snR7"),a=i("DvJ+"),s=i("ypVE"),u=i("hpnp"),l=i("dstF"),h=i("U3hN"),c=i("rFJX"),p=l(5),d=l(6),f=0,g=function(t){return t._l||(t._l=new m)},m=function(){this.a=[]},y=function(t,e){return p(t.a,function(t){return t[0]===e})};m.prototype={get:function(t){var e=y(this,t);if(e)return e[1]},has:function(t){return!!y(this,t)},set:function(t,e){var i=y(this,t);i?i[1]=e:this.a.push([t,e])},delete:function(t){var e=d(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,i,o){var l=t(function(t,n){s(t,l,e,"_i"),t._t=e,t._i=f++,t._l=void 0,void 0!=n&&u(n,i,t[o],t)});return n(l.prototype,{delete:function(t){if(!a(t))return!1;var i=r(t);return!0===i?g(c(this,e)).delete(t):i&&h(i,this._i)&&delete i[this._i]},has:function(t){if(!a(t))return!1;var i=r(t);return!0===i?g(c(this,e)).has(t):i&&h(i,this._i)}}),l},def:function(t,e,i){var n=r(o(e),!0);return!0===n?g(t).set(e,i):n[t._i]=i,t},ufstore:g}},"0Zt3":function(t,e,i){var n=i("DvJ+"),r=i("DVYA"),o=i("YEtG")("match");t.exports=function(t){var e;return n(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==r(t))}},"0jav":function(t,e,i){var n=i("Gb1H"),r=i("DVYA");n(n.S,"Error",{isError:function(t){return"Error"===r(t)}})},"0v9/":function(t,e,i){var n,r,o,a=i("20m4"),s=i("yOPk"),u=i("Ax3V"),l=i("+wz8"),h=i("T9LF"),c=h.process,p=h.setImmediate,d=h.clearImmediate,f=h.MessageChannel,g=h.Dispatch,m=0,y={},b=function(){var t=+this;if(y.hasOwnProperty(t)){var e=y[t];delete y[t],e()}},v=function(t){b.call(t.data)};p&&d||(p=function(t){for(var e=[],i=1;arguments.length>i;)e.push(arguments[i++]);return y[++m]=function(){s("function"==typeof t?t:Function(t),e)},n(m),m},d=function(t){delete y[t]},"process"==i("DVYA")(c)?n=function(t){c.nextTick(a(b,t,1))}:g&&g.now?n=function(t){g.now(a(b,t,1))}:f?(o=(r=new f).port2,r.port1.onmessage=v,n=a(o.postMessage,o,1)):h.addEventListener&&"function"==typeof postMessage&&!h.importScripts?(n=function(t){h.postMessage(t+"","*")},h.addEventListener("message",v,!1)):n="onreadystatechange"in l("script")?function(t){u.appendChild(l("script")).onreadystatechange=function(){u.removeChild(this),b.call(t)}}:function(t){setTimeout(a(b,t,1),0)}),t.exports={set:p,clear:d}},"0yJt":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("mntN")(!0);n(n.P,"Array",{includes:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),i("M/YL")("includes")},"17ao":function(t,e,i){var n=i("T9LF").parseInt,r=i("nAZS").trim,o=i("brDO"),a=/^[-+]?0[xX]/;t.exports=8!==n(o+"08")||22!==n(o+"0x16")?function(t,e){var i=r(String(t),3);return n(i,e>>>0||(a.test(i)?16:10))}:n},"1Vzv":function(t,e,i){var n=i("Gb1H"),r=i("17ao");n(n.G+n.F*(parseInt!=r),{parseInt:r})},"1lef":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("kcsd"),o=i("FmWr"),a=i("0Zt3"),s=i("x2K9"),u=RegExp.prototype,l=function(t,e){this._r=t,this._s=e};i("Cekr")(l,"RegExp String",function(){var t=this._r.exec(this._s);return{value:t,done:null===t}}),n(n.P,"String",{matchAll:function(t){if(r(this),!a(t))throw TypeError(t+" is not a regexp!");var e=String(this),i="flags"in u?String(t.flags):s.call(t),n=new RegExp(t.source,~i.indexOf("g")?i:"g"+i);return n.lastIndex=o(t.lastIndex),new l(n,e)}})},"1pVS":function(t,e,i){"use strict";i.d(e,"b",function(){return u}),i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("aM7D"),o=i("aCit"),a=i("Wglt"),s=i("Mtpk"),u=function(t){function e(){var e=t.call(this)||this;return e.className="MapSeriesDataItem",e.values.value={},e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.values.value.value},set:function(t){this.setValue("value",t)},enumerable:!0,configurable:!0}),e.prototype.updateExtremes=function(t){for(var e=0;e<t.length;e++){var i=t[e].longitude,n=t[e].latitude;(this.west>i||!s.isNumber(this.west))&&(this.west=i),(this.east<i||!s.isNumber(this.east))&&(this.east=i),(this.north<n||!s.isNumber(this.north))&&(this.north=n),(this.south>n||!s.isNumber(this.south))&&(this.south=n)}},Object.defineProperty(e.prototype,"zoomLevel",{get:function(){return this.properties.zoomLevel},set:function(t){this.setProperty("zoomLevel",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"zoomGeoPoint",{get:function(){return this.properties.zoomGeoPoint},set:function(t){this.setProperty("zoomGeoPoint",t)},enumerable:!0,configurable:!0}),e}(r.b),l=function(t){function e(){var e=t.call(this)||this;return e.className="MapSeries",e.isMeasured=!1,e.nonScalingStroke=!0,e.dataFields.value="value",e.applyTheme(),e}return n.c(e,t),e.prototype.createDataItem=function(){return new u},e.prototype.validateData=function(){var e=this;t.prototype.validateData.call(this),a.each(this.dataItems.iterator(),function(t){(e.west>t.west||!s.isNumber(e.west))&&(e.west=t.west),(e.east<t.east||!s.isNumber(e.east))&&(e.east=t.east),(e.north<t.north||!s.isNumber(e.north))&&(e.north=t.north),(e.south>t.south||!s.isNumber(e.south))&&(e.south=t.south)}),this.chart&&this.chart.updateExtremes()},e.prototype.checkInclude=function(t,e,i){if(t){if(0==t.length)return!1;if(-1==t.indexOf(i))return!1}return!(e&&e.length>0&&-1!=e.indexOf(i))},Object.defineProperty(e.prototype,"useGeodata",{get:function(){return this.getPropertyValue("useGeodata")},set:function(t){this.setPropertyValue("useGeodata",t)&&this.invalidateData()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"include",{get:function(){return this.getPropertyValue("include")},set:function(t){this.setPropertyValue("include",t)&&this.processIncExc()},enumerable:!0,configurable:!0}),e.prototype.processIncExc=function(){this.invalidateData()},Object.defineProperty(e.prototype,"exclude",{get:function(){return this.getPropertyValue("exclude")},set:function(t){this.setPropertyValue("exclude",t)&&this.processIncExc()},enumerable:!0,configurable:!0}),e.prototype.handleObjectAdded=function(t){var e=t.newValue;e.parent=this,e.series=this,e.strokeWidth=e.strokeWidth},Object.defineProperty(e.prototype,"geodata",{get:function(){return this._geodata},set:function(t){t!=this._geodata&&(this._geodata=t,this.invalidateData(),a.each(this._dataUsers.iterator(),function(t){t.invalidateData()}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"geodataSource",{get:function(){return this._dataSources.geodata||this.getDataSource("geodata"),this._dataSources.geodata},set:function(t){var e=this;this._dataSources.geodata&&this.removeDispose(this._dataSources.geodata),this._dataSources.geodata=t,this._dataSources.geodata.component=this,this.events.on("inited",function(){e.loadData("geodata")},void 0,!1),this.setDataSourceEvents(t,"geodata")},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.MapSeries=l,o.b.registeredClasses.MapSeriesDataItem=u},"1qam":function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("Vs7R"),o=i("Mtpk"),a=function(t){function e(){var e=t.call(this)||this;return e.className="PointedShape",e.pointerBaseWidth=15,e.pointerLength=10,e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this),o.isNumber(this.pointerX)||(this.pointerX=this.pixelWidth/2),o.isNumber(this.pointerY)||(this.pointerY=this.pixelHeight+10)},Object.defineProperty(e.prototype,"pointerBaseWidth",{get:function(){return this.getPropertyValue("pointerBaseWidth")},set:function(t){this.setPropertyValue("pointerBaseWidth",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pointerLength",{get:function(){return this.getPropertyValue("pointerLength")},set:function(t){this.setPropertyValue("pointerLength",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pointerX",{get:function(){return this.getPropertyValue("pointerX")},set:function(t){this.setPropertyValue("pointerX",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pointerY",{get:function(){return this.getPropertyValue("pointerY")},set:function(t){this.setPropertyValue("pointerY",t,!0)},enumerable:!0,configurable:!0}),e}(r.a)},"1yyj":function(t,e,i){"use strict";e.c=function(t,e){var i=!1,n=Date.now();return l.a(function r(o){if(!i){var a=o-n;a>=t?e(1):(l.a(r),e(a/t))}}),new a.b(function(){i=!0})},i.d(e,"d",function(){return m}),i.d(e,"b",function(){return x}),i.d(e,"a",function(){return P});var n=i("m4/l"),r=i("Tjl+"),o=i("hpNl"),a=i("hD5A"),s=i("8ZqG"),u=i("tjMS"),l=i("/9XX"),h=i("0FpR"),c=i("hxI2"),p=i("Gg2j"),d=i("hJ5i"),f=i("Mtpk"),g=i("Rpw0");var m=[];function y(t,e,i){return e+(i-e)*t}function b(t,e,i){return new u.a(y(t,e.percent,i.percent))}function v(t,e,i){return new s.a(c.interpolate(e.rgb,i.rgb,t))}function _(t,e){return e+t.charAt(0).toUpperCase()+t.substr(1)}var x=function(){function t(t){this._disposer=new a.b(function(){for(;0!==t.length;)t[0].dispose()})}return t.prototype.isDisposed=function(){return this._disposer.isDisposed()},t.prototype.dispose=function(){this._disposer.dispose()},t}(),P=function(t){function e(e,i,n,r){var o=t.call(this)||this;return o.duration=0,o.easing=h.linear,o.progress=0,o._loop=0,o._pause=!1,o._delayTimeout=null,o._time=0,o._isFinished=!1,o.className="Animation",o.object=e,o.animationOptions=d.toArray(i),o.duration=n,r&&(o.easing=r),o.applyTheme(),o}return n.c(e,t),e.prototype.debug=function(){},e.prototype.dispose=function(){t.prototype.dispose.call(this),this.pause()},e.prototype.delay=function(t){var e=this;if(t>0){this.pause(),d.move(this.object.animations,this);var i=setTimeout(function(){e._delayTimeout=null,e.start()},t);this._delayTimeout=new a.b(function(){clearTimeout(i)})}return this},e.prototype._start=function(){this._isFinished=!1,this._delayTimeout&&(this.removeDispose(this._delayTimeout),this._delayTimeout=null),this.stopSameAnimations(),this._pause=!1,d.move(m,this),d.move(this.object.animations,this),g.b.requestFrame()},e.prototype.start=function(){this._start(),this._startTime=Date.now(),this._time=0,this.staticOptions=[];for(var t=this.animationOptions.length-1;t>=0;t--){var e=this.animationOptions[t];if(f.hasValue(e.from)||(e.childObject?e.from=e.childObject[e.property]:(e.from=this.object[e.property],f.hasValue(e.from)||(e.from=o.a[e.property]))),e.from==e.to)d.remove(this.animationOptions,e);else if(f.hasValue(e.from))if(f.isNumber(e.to)){if(e.updateMethod=y,e.from instanceof u.a){var i=this.object[_(e.property,"pixel")];isNaN(i)||(e.from=i)}}else if(e.to instanceof s.a)e.from?e.updateMethod=v:(this.staticOptions.push(e),d.remove(this.animationOptions,e));else if(e.to instanceof u.a){if(e.updateMethod=b,!isNaN(e.from)){i=this.object[_(e.property,"relative")];isNaN(i)||(e.from=Object(u.c)(100*i))}}else this.staticOptions.push(e),d.remove(this.animationOptions,e);else this.staticOptions.push(e),d.remove(this.animationOptions,e)}if(this.applyStaticOptions(),this.events.isEnabled("animationstarted")){var n={type:"animationstarted",target:this,progress:this.progress};this.events.dispatchImmediately("animationstarted",n)}return this.update(),0===this.duration&&this.end(),this},e.prototype.loop=function(t){return f.isNumber(t)||(t=1/0),this._loop=t,this},e.prototype.pause=function(){return this._pause=!0,this._delayTimeout&&(this.removeDispose(this._delayTimeout),this._delayTimeout=null),d.remove(m,this),d.remove(this.object.animations,this),this},e.prototype.resume=function(){return this._start(),this._startTime=Date.now()-this._time,this},e.prototype.end=function(){if(0==this._loop&&this.pause(),this.setProgress(1),this.applyStaticOptions(),this.events.isEnabled("animationended")){var t={type:"animationended",target:this,progress:this.progress};this.events.dispatchImmediately("animationended",t)}return this._loop>0?(this._loop--,this.start()):(this.stop(),this._isFinished=!0),this},e.prototype.kill=function(){this.pause(),this._isFinished=!0},e.prototype.isFinished=function(){return this._isFinished},e.prototype.applyStaticOptions=function(){var t=this;d.each(this.staticOptions,function(e){e.childObject?e.childObject[e.property]=1==t.progress?e.to:e.from:t.object[e.property]=1==t.progress?e.to:e.from})},e.prototype.stop=function(t){if(this.pause(),!t&&this.events.isEnabled("animationstopped")){var e={type:"animationstopped",target:this,progress:this.progress};this.events.dispatchImmediately("animationstopped",e)}return this},e.prototype.setProgress=function(t){var e=this;if(this._time=this.duration*t,d.each(this.animationOptions,function(i){if(i.updateMethod&&f.hasValue(i.from)){var n=i.updateMethod(t,i.from,i.to);i.childObject?i.childObject[i.property]=n:e.object[i.property]=n}}),this.progress=t,this.events.isEnabled("animationprogress")){var i={type:"animationprogress",target:this,progress:this.progress};this.events.dispatchImmediately("animationprogress",i)}g.b.requestFrame()},e.prototype.update=function(){if(!this._pause){var t=void 0;this._time=p.fitToRange(Date.now()-this._startTime,0,this.duration);var e=this._time/this.duration;t=this.easing(e),(0==this.duration||!f.isNumber(t)||e>=1)&&(t=1),this.setProgress(t),1==p.round(this._time/this.duration,6)&&this.end()}return this},Object.defineProperty(e.prototype,"delayed",{get:function(){return!!this._delayTimeout},enumerable:!0,configurable:!0}),e.prototype.stopSameAnimations=function(){var t=this;d.each(d.copy(this.object.animations),function(e){if(e!==t&&!e.delayed){var i=[];d.each(t.animationOptions,function(t){d.each(e.animationOptions,function(n){t.property==n.property&&t.childObject==n.childObject&&(i.push(n),0==e.animationOptions.length&&e.kill())})}),d.each(i,function(t){d.remove(e.animationOptions,t)})}})},e}(r.b)},"2/6D":function(t,e,i){"use strict";var n=i("M/YL"),r=i("36h5"),o=i("9BM3"),a=i("EhJv");t.exports=i("Uobz")(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,i=this._i++;return!t||i>=t.length?(this._t=void 0,r(1)):r(0,"keys"==e?i:"values"==e?t[i]:[i,t[i]])},"values"),o.Arguments=o.Array,n("keys"),n("values"),n("entries")},"20m4":function(t,e,i){var n=i("DbOM");t.exports=function(t,e,i){if(n(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,n){return t.call(e,i,n)};case 3:return function(i,n,r){return t.call(e,i,n,r)}}return function(){return t.apply(e,arguments)}}},"2Dqo":function(t,e,i){var n=i("6MWL"),r=i("snR7"),o=i("K0ev"),a=n.has,s=n.key,u=function(t,e,i){if(a(t,e,i))return!0;var n=o(e);return null!==n&&u(t,n,i)};n.exp({hasMetadata:function(t,e){return u(t,r(e),arguments.length<3?void 0:s(arguments[2]))}})},"2I/e":function(t,e,i){"use strict";i.d(e,"b",function(){return f}),i.d(e,"a",function(){return g});var n=i("m4/l"),r=i("VIOb"),o=i("vMqJ"),a=i("C6dT"),s=i("aM7D"),u=i("tjMS"),l=i("DHte"),h=i("aCit"),c=i("Wglt"),p=i("Mtpk"),d=i("hD5A"),f=function(t){function e(){var e=t.call(this)||this;return e.className="SerialChartDataItem",e.applyTheme(),e}return n.c(e,t),e}(r.b),g=function(t){function e(){var e=t.call(this)||this;e.className="SerialChart",e.colors=new l.a;var i=e.chartContainer.createChild(a.a);i.shouldClone=!1,i.width=Object(u.c)(100),i.height=Object(u.c)(100),i.isMeasured=!1,i.layout="none",i.zIndex=2,e.seriesContainer=i;var n=e.chartContainer.createChild(a.a);return n.shouldClone=!1,n.width=Object(u.c)(100),n.height=Object(u.c)(100),n.isMeasured=!1,n.zIndex=3,n.layout="none",e.bulletsContainer=n,e.applyTheme(),e}return n.c(e,t),e.prototype.dispose=function(){t.prototype.dispose.call(this),this.colors&&this.colors.dispose()},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),p.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Serial chart"))},Object.defineProperty(e.prototype,"series",{get:function(){var t=this;return this._series||(this._series=new o.e(this.createSeries()),this._series.events.on("inserted",function(e){t.handleSeriesAdded(e)},void 0,!1),this._series.events.on("removed",function(e){var i=e.oldValue;t.dataUsers.removeValue(i),t.dataUsers.each(function(t){t.invalidateDataItems()}),i.autoDispose&&i.dispose(),t.feedLegend()},void 0,!1),this._disposers.push(new o.c(this._series)),this._disposers.push(this._series.template)),this._series},enumerable:!0,configurable:!0}),e.prototype.handleSeriesAdded=function(t){var e=this,i=t.newValue;i.chart=this,i.parent=this.seriesContainer,i.bulletsContainer.parent=this.bulletsContainer,this._dataUsers.moveValue(i),i.addDisposer(new d.b(function(){e.dataUsers.removeValue(i)})),this.feedLegend()},e.prototype.feedLegend=function(){var t=this.legend;if(t){var e=[];c.each(this.series.iterator(),function(t){t.hiddenInLegend||e.push(t)}),t.dataFields.name="name",t.data=e}},e.prototype.createSeries=function(){return new s.a},Object.defineProperty(e.prototype,"colors",{get:function(){return this.getPropertyValue("colors")},set:function(t){this.setPropertyValue("colors",t,!0)},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.series.copyFrom(e.series)},e}(r.a);h.b.registeredClasses.SerialChart=g},"2Nze":function(t,e,i){"use strict";var n=i("x2K9"),r=RegExp.prototype.exec,o=String.prototype.replace,a=r,s=function(){var t=/a/,e=/b*/g;return r.call(t,"a"),r.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),u=void 0!==/()??/.exec("")[1];(s||u)&&(a=function(t){var e,i,a,l,h=this;return u&&(i=new RegExp("^"+h.source+"$(?!\\s)",n.call(h))),s&&(e=h.lastIndex),a=r.call(h,t),s&&a&&(h.lastIndex=h.global?a.index+a[0].length:e),u&&a&&a.length>1&&o.call(a[0],i,function(){for(l=1;l<arguments.length-2;l++)void 0===arguments[l]&&(a[l]=void 0)}),a}),t.exports=a},"2OOH":function(t,e,i){var n=i("Gb1H"),r=i("snR7"),o=Object.isExtensible;n(n.S,"Reflect",{isExtensible:function(t){return r(t),!o||o(t)}})},"2OXf":function(t,e,i){"use strict";i.d(e,"a",function(){return y});var n=i("m4/l"),r=i("C6dT"),o=i("sxA1"),a=i("aCit"),s=i("8ZqG"),u=i("vMqJ"),l=i("tjMS"),h=i("pR7v"),c=i("k6kv"),p=i("OXm9"),d=i("Wglt"),f=i("Mtpk"),g=i("hxI2"),m=i("CnhP"),y=function(t){function e(){var e=t.call(this)||this;e.className="HeatLegend",e.markerContainer=e.createChild(r.a),e.markerContainer.shouldClone=!1,e.markerCount=1;var i=new m.a;return i.minHeight=20,i.minWidth=20,i.interactionsEnabled=!1,i.fillOpacity=1,i.cornerRadius(0,0,0,0),e.markerContainer.minHeight=20,e.markerContainer.minWidth=20,e.orientation="horizontal",e.markers=new u.e(i),e._disposers.push(new u.c(e.markers)),e._disposers.push(e.markers.template),e.applyTheme(),e}return n.c(e,t),e.prototype.getMinFromRules=function(t){var e,i=this.series;if(i)return d.eachContinue(i.heatRules.iterator(),function(i){return i.property!=t||(e=i.min,!1)}),e},e.prototype.getMaxFromRules=function(t){var e,i=this.series;if(i)return d.each(i.heatRules.iterator(),function(i){return i.property!=t||(e=i.max,!1)}),e},e.prototype.validate=function(){t.prototype.validate.call(this);var e=this.series,i=this.minColor,n=this.maxColor;if(f.hasValue(i)||(i=Object(s.e)(this.getMinFromRules("fill"))),f.hasValue(n)||(n=Object(s.e)(this.getMaxFromRules("fill"))),e){var r=e.fill;!f.hasValue(i)&&r instanceof s.a&&(i=r),!f.hasValue(n)&&r instanceof s.a&&(n=r)}f.hasValue(n)||(n=Object(s.e)(this.getMaxFromRules("fill")));var a=f.toNumber(this.getMinFromRules("fillOpacity"));f.isNumber(a)||(a=1);var u=f.toNumber(this.getMaxFromRules("fillOpacity"));f.isNumber(u)||(u=1);var h=f.toNumber(this.getMinFromRules("strokeOpacity"));f.isNumber(h)||(h=1);var c=f.toNumber(this.getMaxFromRules("strokeOpacity"));f.isNumber(c)||(c=1);for(var p=Object(s.e)(this.getMinFromRules("stroke")),d=Object(s.e)(this.getMaxFromRules("stroke")),m=0;m<this.markerCount;m++){var y=this.markers.getIndex(m);if(y||((y=this.markers.create()).parent=this.markerContainer,y.height=Object(l.c)(100),y.width=Object(l.c)(100)),1==this.markerCount){var b=new o.a;if(b.addColor(i,a),b.addColor(n,u),"vertical"==this.orientation&&(b.rotation=-90),y.fill=b,f.hasValue(p)&&f.hasValue(d)){var v=new o.a;v.addColor(p,h),v.addColor(d,c),"vertical"==this.orientation&&(v.rotation=-90),y.stroke=v}}else{var _=new s.a(g.interpolate(i.rgb,n.rgb,m/this.markerCount));y.fill=_;var x=a+(u-a)*m/this.markerCount;if(y.fillOpacity=x,f.hasValue(p)&&f.hasValue(d)){var P=new s.a(g.interpolate(p.rgb,d.rgb,m/this.markerCount));y.stroke=P;var w=h+(c-h)*m/this.markerCount;y.strokeOpacity=w}}}var O=this.valueAxis.renderer;this.markerCount>1&&("horizontal"==this.orientation?O.minGridDistance=this.measuredWidth/this.markerCount:O.minGridDistance=this.measuredHeight/this.markerCount),this.valueAxis.invalidate();m=this.markerCount;for(var S=this.markers.length;m<S;m++)this.markers.getIndex(m).parent=void 0},Object.defineProperty(e.prototype,"minColor",{get:function(){return this.getPropertyValue("minColor")},set:function(t){t instanceof s.a||(t=Object(s.e)(t)),this.setColorProperty("minColor",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxColor",{get:function(){return this.getPropertyValue("maxColor")},set:function(t){f.isObject(t)||(t=Object(s.e)(t)),this.setColorProperty("maxColor",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"markerCount",{get:function(){return this.getPropertyValue("markerCount")},set:function(t){this.setPropertyValue("markerCount",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minValue",{get:function(){return this.getPropertyValue("minValue")},set:function(t){this.setPropertyValue("minValue",t),this.valueAxis.min=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxValue",{get:function(){return this.getPropertyValue("maxValue")},set:function(t){this.setPropertyValue("maxValue",t),this.valueAxis.max=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t,!0);var e=this.markerContainer,i=this.valueAxis;"horizontal"==t?(f.hasValue(this.width)||(this.width=200),this.height=void 0,i.width=Object(l.c)(100),i.height=void 0,i.tooltip.pointerOrientation="vertical",this.layout="vertical",e.width=Object(l.c)(100),e.height=void 0,i.renderer instanceof c.a||(i.renderer=new c.a)):(f.hasValue(this.height)||(this.height=200),this.width=void 0,this.layout="horizontal",e.width=void 0,e.height=Object(l.c)(100),i.height=Object(l.c)(100),i.width=void 0,i.tooltip.pointerOrientation="horizontal",i.renderer instanceof p.a||(i.renderer=new p.a),i.renderer.inside=!0,i.renderer.labels.template.inside=!0,this.markerContainer.reverseOrder=!0);var n=i.renderer;n.grid.template.disabled=!0,n.axisFills.template.disabled=!0,n.baseGrid.disabled=!0,n.labels.template.padding(2,3,2,3),n.minHeight=void 0,n.minWidth=void 0,this.markerContainer.layout=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valueAxis",{get:function(){return this._valueAxis||(this.valueAxis=this.createChild(h.a),this.valueAxis.shouldClone=!1),this._valueAxis},set:function(t){this._valueAxis=t,t.parent=this,t.strictMinMax=!0,this.orientation=this.orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"series",{get:function(){return this._series},set:function(t){var e=this;this._series=t;var i="value";try{var n=t.heatRules.getIndex(0).dataField;n&&(i=n)}catch(t){}this.updateMinMax(t.dataItem.values[i].low,t.dataItem.values[i].high),t.dataItem.events.on("calculatedvaluechanged",function(n){e.updateMinMax(t.dataItem.values[i].low,t.dataItem.values[i].high)},void 0,!1),t.heatRules.events.on("inserted",this.invalidate,this,!1),t.heatRules.events.on("removed",this.invalidate,this,!1)},enumerable:!0,configurable:!0}),e.prototype.updateMinMax=function(t,e){var i=this.valueAxis;f.isNumber(this.minValue)||(i.min=t,i.invalidate()),f.isNumber(this.maxValue)||(i.max=e,i.invalidate())},e.prototype.processConfig=function(e){if(e&&f.hasValue(e.series)&&f.isString(e.series)&&f.isString(e.series))if(this.map.hasKey(e.series))e.series=this.map.getKey(e.series);else{var i=e.series,n=this.map.events.on("insertKey",function(t){t.key==i&&(this.series=t.newValue,n.dispose())},this);this._disposers.push(n),delete e.series}t.prototype.processConfig.call(this,e)},e}(r.a);a.b.registeredClasses.HeatLegend=y},"2i0j":function(t,e,i){"use strict";var n=i("MfZA"),r=RegExp.prototype.exec;t.exports=function(t,e){var i=t.exec;if("function"==typeof i){var o=i.call(t,e);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==n(t))throw new TypeError("RegExp#exec called on incompatible receiver");return r.call(t,e)}},"3/+B":function(t,e,i){"use strict";t.exports=i("pb4Y")||!i("AEc5")(function(){var t=Math.random();__defineSetter__.call(null,t,function(){}),delete i("T9LF")[t]})},"3/51":function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("DA7/"),o=i("aCit"),a=i("Gg2j"),s=i("Mtpk"),u=function(t){function e(){var e=t.call(this)||this;return e.lightnesses=[],e.brightnesses=[],e.opacities=[],e.offsets=[],e.className="GradientModifier",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"lightnesses",{get:function(){return this._lightnesses},set:function(t){this._lightnesses=t,this._brightnesses=[]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"brightnesses",{get:function(){return this._brightnesses},set:function(t){this._brightnesses=t,this._lightnesses=[]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"opacities",{get:function(){return this._opacities},set:function(t){this._opacities=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"offsets",{get:function(){return this._offsets},set:function(t){this._offsets=t},enumerable:!0,configurable:!0}),e.prototype.modify=function(t){this.gradient.clear();var e=0;this.opacities&&(e=a.max(e,this.opacities.length)),this.lightnesses&&(e=a.max(e,this.lightnesses.length)),this.brightnesses&&(e=a.max(e,this.brightnesses.length));for(var i,n,r=1,o=0;o<e;o++){var u=t;this.opacities&&s.isNumber(this.opacities[o])&&(r=this.opacities[o]),this.lightnesses&&s.isNumber(this.lightnesses[o])&&(i=this.lightnesses[o],n=void 0),this.brightnesses&&s.isNumber(this.brightnesses[o])&&(n=this.brightnesses[o],i=void 0),s.isNumber(n)?u=t.brighten(this.brightnesses[o]):s.isNumber(i)&&(u=t.lighten(this.lightnesses[o]));var l=this.offsets[o];this.gradient.addColor(u,r,l)}return this.gradient},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this._offsets=e.offsets,this._brightnesses=e.brightnesses,this._lightnesses=e.lightnesses,this._opacities=e.opacities},e}(r.a);o.b.registeredClasses.GradientModifier=u},"31Mu":function(t,e,i){var n=i("Gb1H"),r=i("9i/o");n(n.P+n.F*(Date.prototype.toISOString!==r),"Date",{toISOString:r})},"36h5":function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},"3BzE":function(t,e,i){var n=i("ODWe"),r=i("heQh");t.exports=Object.keys||function(t){return n(t,r)}},"3Cxr":function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.order=function(t,e){return t===e?0:t<e?-1:1}},"3X+j":function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{RAD_PER_DEG:180/Math.PI})},"3fx7":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("AEc5"),o=i("GIxq"),a=1..toPrecision;n(n.P+n.F*(r(function(){return"1"!==a.call(1,void 0)})||!r(function(){a.call({})})),"Number",{toPrecision:function(t){var e=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?a.call(e):a.call(e,t)}})},"3mH9":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("DbOM"),o=i("20m4"),a=i("hpnp");t.exports=function(t){n(n.S,t,{from:function(t){var e,i,n,s,u=arguments[1];return r(this),(e=void 0!==u)&&r(u),void 0==t?new this:(i=[],e?(n=0,s=o(u,arguments[2],2),a(t,!1,function(t){i.push(s(t,n++))})):a(t,!1,i.push,i),new this(i))}})}},"3xrs":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("dstF")(4);n(n.P+n.F*!i("GQop")([].every,!0),"Array",{every:function(t){return r(this,t,arguments[1])}})},"4BRe":function(t,e){var i=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:i)(t)}},"4DCw":function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("mIpt"),o=i("Mtpk"),a=i("hJ5i"),s=[",",";","\t"],u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.contentType="text/csv",e.options={delimiter:"",reverse:!1,skipRows:0,skipEmpty:!0,useColumnNames:!1},e}return n.c(e,t),e.isCSV=function(t){return!!e.getDelimiterFromData(t)},e.getDelimiterFromData=function(t){var e,i=t.split("\n"),n=i.length;return a.each(s,function(t){for(var r=0,o=0,a=0;a<n;++a){if(!((r=i[a].split(t).length)>1)){o=0;break}if(0===o)o=r;else if(r!=o){o=0;break}}o&&(e=t)}),e},e.prototype.parse=function(t){this.options.delimiter||(this.options.delimiter=e.getDelimiterFromData(t));var i,n,r,a=this.CSVToArray(t,this.options.delimiter),s=o.hasValue(this.options.emptyAs),u=this.parsableNumbers,l=this.parsableDates,h=[],c=[];if(this.options.useColumnNames){c=a.shift();for(var p=0;p<c.length;p++)""===(i=o.hasValue(c[p])?c[p].replace(/^\s+|\s+$/gm,""):"")&&(i="col"+p),c[p]=i;0<this.options.skipRows&&this.options.skipRows--}for(n=0;n<this.options.skipRows;n++)a.shift();for(;r=this.options.reverse?a.pop():a.shift();)if(!this.options.skipEmpty||1!==r.length||""!==r[0]){var d={};for(n=0;n<r.length;n++)d[i=void 0===c[n]?"col"+n:c[n]]=""===r[n]?this.options.emptyAs:r[n],s&&(d[i]=this.maybeToEmpty(d[i])),u&&(d[i]=this.maybeToNumber(i,d[i])),l&&(d[i]=this.maybeToDate(i,d[i]));h.push(d)}return h},e.prototype.CSVToArray=function(t,e){e=e||",";for(var i=new RegExp("(\\"+e+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+e+"\\r\\n]*))","gi"),n=[[]],r=null;r=i.exec(t);){var o=r[1];o.length&&o!==e&&n.push([]);var a=void 0;a=r[2]?r[2].replace(new RegExp('""',"g"),'"'):r[3],n[n.length-1].push(a)}return n},e}(r.a)},"4McO":function(t,e,i){"use strict";var n=i("0Zt3"),r=i("snR7"),o=i("QXbb"),a=i("YxCF"),s=i("FmWr"),u=i("2i0j"),l=i("2Nze"),h=Math.min,c=[].push,p=!!function(){try{return new RegExp("x","y")}catch(t){}}();i("7V6K")("split",2,function(t,e,i,d){var f;return f="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,e){var r=String(this);if(void 0===t&&0===e)return[];if(!n(t))return i.call(r,t,e);for(var o,a,s,u=[],h=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),p=0,d=void 0===e?4294967295:e>>>0,f=new RegExp(t.source,h+"g");(o=l.call(f,r))&&!((a=f.lastIndex)>p&&(u.push(r.slice(p,o.index)),o.length>1&&o.index<r.length&&c.apply(u,o.slice(1)),s=o[0].length,p=a,u.length>=d));)f.lastIndex===o.index&&f.lastIndex++;return p===r.length?!s&&f.test("")||u.push(""):u.push(r.slice(p)),u.length>d?u.slice(0,d):u}:"0".split(void 0,0).length?function(t,e){return void 0===t&&0===e?[]:i.call(this,t,e)}:i,[function(i,n){var r=t(this),o=void 0==i?void 0:i[e];return void 0!==o?o.call(i,r,n):f.call(String(r),i,n)},function(t,e){var n=d(f,t,this,e,f!==i);if(n.done)return n.value;var l=r(t),c=String(this),g=o(l,RegExp),m=l.unicode,y=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(p?"y":"g"),b=new g(p?l:"^(?:"+l.source+")",y),v=void 0===e?4294967295:e>>>0;if(0===v)return[];if(0===c.length)return null===u(b,c)?[c]:[];for(var _=0,x=0,P=[];x<c.length;){b.lastIndex=p?x:0;var w,O=u(b,p?c:c.slice(x));if(null===O||(w=h(s(b.lastIndex+(p?0:x)),c.length))===_)x=a(c,x,m);else{if(P.push(c.slice(_,x)),P.length===v)return P;for(var S=1;S<=O.length-1;S++)if(P.push(O[S]),P.length===v)return P;x=_=w}}return P.push(c.slice(_)),P}]})},"5+SK":function(t,e,i){var n=i("snR7"),r=i("p3CN"),o=i("heQh"),a=i("VYrJ")("IE_PROTO"),s=function(){},u=function(){var t,e=i("+wz8")("iframe"),n=o.length;for(e.style.display="none",i("Ax3V").appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),u=t.F;n--;)delete u.prototype[o[n]];return u()};t.exports=Object.create||function(t,e){var i;return null!==t?(s.prototype=n(t),i=new s,s.prototype=null,i[a]=t):i=u(),void 0===e?i:r(i,e)}},"57Qg":function(t,e,i){var n=i("Gb1H"),r=i("sxbc");n(n.S,"Math",{cbrt:function(t){return r(t=+t)*Math.pow(Math.abs(t),1/3)}})},"58Sn":function(t,e,i){"use strict";i.d(e,"a",function(){return h}),i.d(e,"e",function(){return c}),i.d(e,"d",function(){return p}),e.g=function(t,e,i,n){return t.addEventListener(e,i,n||!1),new o.b(function(){t.removeEventListener(e,i,n||!1)})},e.o=function(t){if(l.isString(t)){var e=document.getElementById(t);if(null==e&&(e=document.getElementsByClassName(t)[0]),e instanceof HTMLElement)return e}else if(t instanceof HTMLElement)return t},e.f=function(t,e){if(t.classList)t.classList.add(e);else{var i=t.getAttribute("class");i?t.setAttribute("class",i.split(" ").filter(function(t){return t!==e}).join(" ")+" "+e):t.setAttribute("class",e)}},e.s=function(t,e){if(t.classList)t.classList.remove(e);else{var i=t.getAttribute("class");i&&t.setAttribute("class",i.split(" ").filter(function(t){return t!==e}).join(" "))}},e.t=function(t,e,i){t.style[e]=i},e.h=function(){var t=document.createElement("input");t.style.position="fixed",t.style.top="0px",t.style.left="-10000px",document.body.appendChild(t),t.focus(),t.blur(),document.body.removeChild(t)},e.n=function(t){if(t instanceof HTMLElement)t.focus();else{var e=document.createElement("input"),i=document.createElementNS(h,"foreignObject");i.appendChild(e),t.appendChild(i),e.focus(),e.disabled=!0,i.remove()}},e.q=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div"),i=t.cloneNode(!0);e.appendChild(i);var n=e.innerHTML;return n},e.p=function(t){return t instanceof Object&&t&&1===t.nodeType},e.i=function(t,e){return t!==e&&(t.contains?t.contains(e):!t.compareDocumentPosition||!!(16&t.compareDocumentPosition(e)))},e.j=function(t,e){u.each(t.attributes,function(t){null!=t.value&&e.setAttribute(t.name,t.value)})},e.m=function(t){Object(a.c)(function(){try{var e=t.getBoundingClientRect(),i=e.left-Math.round(e.left),n=e.top-Math.round(e.top);0!==i&&Object(a.f)(function(){t.style.left=i+"px"}),0!==n&&Object(a.f)(function(){t.style.top=n+"px"})}catch(t){}})},i.d(e,"c",function(){return f}),i.d(e,"b",function(){return m}),e.r=function(t){if("loading"!==document.readyState)t();else{var e=function(){"loading"!==document.readyState&&(document.removeEventListener("readystatechange",e),t())};document.addEventListener("readystatechange",e)}},e.k=function t(e){var i="";e.currentStyle?i=e.currentStyle["font-family"]:window.getComputedStyle&&(i=document.defaultView.getComputedStyle(e,null).getPropertyValue("font-family"));if(i)return i;var n=e.parentElement||e.parentNode;return n?t(n):void 0},e.l=function t(e){var i="";e.currentStyle?i=e.currentStyle["font-size"]:window.getComputedStyle&&(i=document.defaultView.getComputedStyle(e,null).getPropertyValue("font-size"));if(i)return i;var n=e.parentElement||e.parentNode;return n?t(n):void 0};var n,r=i("m4/l"),o=i("hD5A"),a=i("/9XX"),s=i("Qkdp"),u=i("hJ5i"),l=i("Mtpk"),h="http://www.w3.org/2000/svg",c="http://www.w3.org/2000/xmlns/",p="http://www.w3.org/1999/xlink";function d(){if(!l.hasValue(n)){var t=document.createElement("style");t.type="text/css",document.head.appendChild(t),n=t.sheet}return n}var f=function(t){function e(e,i){var n=t.call(this,function(){var t=d(),e=u.indexOf(t.cssRules,n._rule);if(-1===e)throw new Error("Could not dispose StyleRule");t.deleteRule(e)})||this;return n._rule=function(t){var e=d(),i=e.cssRules.length;return e.insertRule(t+"{}",i),e.cssRules[i]}(e),s.each(i,function(t,e){n.setStyle(t,e)}),n}return r.c(e,t),Object.defineProperty(e.prototype,"selector",{get:function(){return this._rule.selectorText},set:function(t){this._rule.selectorText=t},enumerable:!0,configurable:!0}),e.prototype._setVendorPrefixName=function(t,e){var i=this._rule.style;i.setProperty("-webkit-"+t,e,""),i.setProperty("-moz-"+t,e,""),i.setProperty("-ms-"+t,e,""),i.setProperty("-o-"+t,e,""),i.setProperty(t,e,"")},e.prototype.setStyle=function(t,e){"transition"===t?this._setVendorPrefixName(t,e):this._rule.style.setProperty(t,e,"")},e}(o.b),g=0,m=function(t){function e(e,i){var n=this,r=l.hasValue(i)?i:"__style_"+ ++g+"__";return(n=t.call(this,"."+r,e)||this)._className=r,n}return r.c(e,t),Object.defineProperty(e.prototype,"className",{get:function(){return this._className},set:function(t){this._className=t,this.selector="."+t},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this._className},e}(f)},"5BRL":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("EhJv"),o=[].join;n(n.P+n.F*(i("sHIJ")!=Object||!i("GQop")(o)),"Array",{join:function(t){return o.call(r(this),void 0===t?",":t)}})},"5LIN":function(t,e,i){var n=i("Gb1H"),r=i("AzI1"),o=Math.sqrt,a=Math.acosh;n(n.S+n.F*!(a&&710==Math.floor(a(Number.MAX_VALUE))&&a(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:r(t-1+o(t-1)*o(t+1))}})},"5Les":function(t,e,i){var n=i("Gb1H");n(n.S,"Number",{isInteger:i("hcxM")})},"5lay":function(t,e,i){var n=i("Gb1H"),r=i("G5U1"),o=i("AEc5");t.exports=function(t,e){var i=(r.Object||{})[t]||Object[t],a={};a[t]=e(i),n(n.S+n.F*o(function(){i(1)}),"Object",a)}},"6+x4":function(t,e,i){"use strict";var n=i("Gb1H");t.exports=function(t){n(n.S,t,{of:function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)}})}},"6/bx":function(t,e,i){var n=i("DvJ+"),r=i("7GtY").set;t.exports=function(t,e,i){var o,a=e.constructor;return a!==i&&"function"==typeof a&&(o=a.prototype)!==i.prototype&&n(o)&&r&&r(t,o),t}},"68eo":function(t,e,i){i("3mH9")("WeakSet")},"6MWL":function(t,e,i){var n=i("dLrC"),r=i("Gb1H"),o=i("OB1/")("metadata"),a=o.store||(o.store=new(i("BYDm"))),s=function(t,e,i){var r=a.get(t);if(!r){if(!i)return;a.set(t,r=new n)}var o=r.get(e);if(!o){if(!i)return;r.set(e,o=new n)}return o};t.exports={store:a,map:s,has:function(t,e,i){var n=s(e,i,!1);return void 0!==n&&n.has(t)},get:function(t,e,i){var n=s(e,i,!1);return void 0===n?void 0:n.get(t)},set:function(t,e,i,n){s(i,n,!0).set(t,e)},keys:function(t,e){var i=s(t,e,!1),n=[];return i&&i.forEach(function(t,e){n.push(e)}),n},key:function(t){return void 0===t||"symbol"==typeof t?t:String(t)},exp:function(t){r(r.S,"Reflect",t)}}},"6PqY":function(t,e,i){var n=i("Gb1H"),r=i("5+SK"),o=i("DbOM"),a=i("snR7"),s=i("DvJ+"),u=i("AEc5"),l=i("lLkc"),h=(i("T9LF").Reflect||{}).construct,c=u(function(){function t(){}return!(h(function(){},[],t)instanceof t)}),p=!u(function(){h(function(){})});n(n.S+n.F*(c||p),"Reflect",{construct:function(t,e){o(t),a(e);var i=arguments.length<3?t:o(arguments[2]);if(p&&!c)return h(t,e,i);if(t==i){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(l.apply(t,n))}var u=i.prototype,d=r(s(u)?u:Object.prototype),f=Function.apply.call(t,d,e);return s(f)?f:d}})},"6l3Y":function(t,e,i){var n=i("Gb1H");n(n.P+n.R,"Map",{toJSON:i("dJEq")("Map")})},"6mHT":function(t,e,i){for(var n=i("2/6D"),r=i("3BzE"),o=i("wDk4"),a=i("T9LF"),s=i("Vng0"),u=i("9BM3"),l=i("YEtG"),h=l("iterator"),c=l("toStringTag"),p=u.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},f=r(d),g=0;g<f.length;g++){var m,y=f[g],b=d[y],v=a[y],_=v&&v.prototype;if(_&&(_[h]||s(_,h,p),_[c]||s(_,c,y),u[y]=p,b))for(m in n)_[m]||o(_,m,n[m],!0)}},"6w17":function(t,e,i){"use strict";var n=i("DbOM");t.exports.f=function(t){return new function(t){var e,i;this.promise=new t(function(t,n){if(void 0!==e||void 0!==i)throw TypeError("Bad Promise constructor");e=t,i=n}),this.resolve=n(e),this.reject=n(i)}(t)}},"7DgU":function(t,e,i){i("YJIw")("Uint32",4,function(t){return function(e,i,n){return t(this,e,i,n)}})},"7GtY":function(t,e,i){var n=i("DvJ+"),r=i("snR7"),o=function(t,e){if(r(t),!n(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,n){try{(n=i("20m4")(Function.call,i("nHHr").f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,i){return o(t,i),e?t.__proto__=i:n(t,i),t}}({},!1):void 0),check:o}},"7V6K":function(t,e,i){"use strict";i("zy/o");var n=i("wDk4"),r=i("Vng0"),o=i("AEc5"),a=i("kcsd"),s=i("YEtG"),u=i("2Nze"),l=s("species"),h=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),c=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var i="ab".split(t);return 2===i.length&&"a"===i[0]&&"b"===i[1]}();t.exports=function(t,e,i){var p=s(t),d=!o(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),f=d?!o(function(){var e=!1,i=/a/;return i.exec=function(){return e=!0,null},"split"===t&&(i.constructor={},i.constructor[l]=function(){return i}),i[p](""),!e}):void 0;if(!d||!f||"replace"===t&&!h||"split"===t&&!c){var g=/./[p],m=i(a,p,""[t],function(t,e,i,n,r){return e.exec===u?d&&!r?{done:!0,value:g.call(e,i,n)}:{done:!0,value:t.call(i,e,n)}:{done:!1}}),y=m[0],b=m[1];n(String.prototype,t,y),r(RegExp.prototype,p,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}}},"7Va9":function(t,e,i){var n=i("Gb1H"),r=i("T9LF").isFinite;n(n.S,"Number",{isFinite:function(t){return"number"==typeof t&&r(t)}})},"7XB+":function(t,e,i){"use strict";i.d(e,"a",function(){return c});var n=i("m4/l"),r=i("P/bD"),o=i("Tjl+"),a=i("MipW"),s=i("aCit"),u=i("ScGY"),l=i("v9UT"),h=i("Mtpk"),c=function(t){function e(){var e=t.call(this)||this;return e._dateFormat="yyyy-MM-dd",e._inputDateFormat="yyyy-MM-dd",e._utc=!1,e._firstDayOfWeek=1,e._months=["January","February","March","April","May","June","July","August","September","October","November","December"],e._monthsShort=["Jan","Feb","Mar","Apr","May(short)","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],e._weekdays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],e._weekdaysShort=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],e._outputFormat="svg",e.capitalize=!0,e.className="DateFormatter",e.applyTheme(),e}return n.c(e,t),e.prototype.format=function(t,e){this.language||(this.sprite?this.language=this.sprite.language:this.language=new r.a),void 0!==e&&""!==e||(e=this._dateFormat),e=l.cleanFormat(e);var i,n=this.parseFormat(e);if(i=h.isString(t)?this.parse(t):l.anyToDate(t),!h.isNumber(i.getTime()))return this.language.translate("Invalid date");var o=this.applyFormat(i,n,this.language);return this.capitalize&&(o=o.replace(/^.{1}/,o.substr(0,1).toUpperCase())),o},e.prototype.parseFormat=function(t){var e=this.getCache(t);if(h.hasValue(e))return e;for(var i={template:"",parts:[]},n=Object(a.b)().chunk(t,!0),r=0;r<n.length;r++){var o=n[r];if("value"===o.type){o.text.match(/^date$/i)&&(o.text=this._dateFormat);var s=o.text.match(/G|yyyy|yyy|yy|y|YYYY|YYY|YY|Y|u|MMMMM|MMMM|MMM|MM|M|ww|w|W|dd|d|DDD|DD|D|F|g|EEEEE|EEEE|EEE|EE|E|eeeee|eeee|eee|ee|e|aaa|aa|a|hh|h|HH|H|KK|K|kk|k|mm|m|ss|s|SSS|SS|S|A|zzzz|zzz|zz|z|ZZ|Z|t|x|nnn|nn|n|i|I/g);if(s)for(var l=0;l<s.length;l++)i.parts.push(s[l]),o.text=o.text.replace(s[l],u.d)}i.template+=o.text}return this.setCache(t,i),i},e.prototype.applyFormat=function(t,e,i){var n,r,o,a,s,h,c,p,d=e.template,f=t.getTimezoneOffset(),g=t.getTime();this.utc?(n=t.getUTCFullYear(),r=t.getUTCMonth(),o=t.getUTCDay(),a=t.getUTCDate(),s=t.getUTCHours(),h=t.getUTCMinutes(),c=t.getUTCSeconds(),p=t.getUTCMilliseconds()):(n=t.getFullYear(),r=t.getMonth(),o=t.getDay(),a=t.getDate(),s=t.getHours(),h=t.getMinutes(),c=t.getSeconds(),p=t.getMilliseconds());for(var m=0,y=e.parts.length;m<y;m++){var b="";switch(e.parts[m]){case"G":b=i.translate(n<0?"_era_bc":"_era_ad");break;case"yyyy":b=Math.abs(n).toString(),n<0&&(b+=i.translate("_era_bc"));break;case"yyy":case"yy":case"y":b=Math.abs(n).toString().substr(-e.parts[m].length),n<0&&(b+=i.translate("_era_bc"));break;case"YYYY":case"YYY":case"YY":case"Y":var v=n;1==l.getWeek(t)&&o>1&&v--,b="YYYY"==e.parts[m]?Math.abs(v).toString():Math.abs(v).toString().substr(-e.parts[m].length),v<0&&(b+=i.translate("_era_bc"));break;case"u":break;case"MMMMM":b=i.translate(this._months[r]).substr(0,1);break;case"MMMM":b=i.translate(this._months[r]);break;case"MMM":b=i.translate(this._monthsShort[r]);break;case"MM":b=l.padString(r+1,2,"0");break;case"M":b=(r+1).toString();break;case"ww":b=l.padString(l.getWeek(t,this.utc),2,"0");break;case"w":b=l.getWeek(t,this.utc).toString();break;case"W":b=l.getMonthWeek(t,this.utc).toString();break;case"dd":b=l.padString(a,2,"0");break;case"d":b=a.toString();break;case"DD":case"DDD":b=l.padString(l.getYearDay(t,this.utc).toString(),e.parts[m].length,"0");break;case"D":b=l.getYearDay(t,this.utc).toString();break;case"F":case"g":break;case"t":b=i.translateFunc("_dateOrd").call(this,a);break;case"E":b=(o||7).toString();break;case"EE":b=l.padString((o||7).toString(),2,"0");break;case"EEE":case"eee":b=i.translate(this._weekdaysShort[o]);break;case"EEEE":case"eeee":b=i.translate(this._weekdays[o]);break;case"EEEEE":case"eeeee":b=i.translate(this._weekdays[o]).substr(0,1);break;case"e":case"ee":b=(o-this.firstDayOfWeek+1).toString(),"ee"==e.parts[m]&&(b=l.padString(b,2,"0"));break;case"a":b=s>=12?i.translate("PM"):i.translate("AM");break;case"aa":b=s>=12?i.translate("P.M."):i.translate("A.M.");break;case"aaa":b=s>=12?i.translate("P"):i.translate("A");break;case"h":b=l.get12Hours(s).toString();break;case"hh":b=l.padString(l.get12Hours(s),2,"0");break;case"H":b=s.toString();break;case"HH":b=l.padString(s,2,"0");break;case"K":b=l.get12Hours(s,0).toString();break;case"KK":b=l.padString(l.get12Hours(s,0),2,"0");break;case"k":b=(s+1).toString();break;case"kk":b=l.padString(s+1,2,"0");break;case"m":b=h.toString();break;case"mm":b=l.padString(h,2,"0");break;case"s":b=c.toString();break;case"ss":b=l.padString(c,2,"0");break;case"S":case"SS":case"SSS":b=Math.round(p/1e3*Math.pow(10,e.parts[m].length)).toString();break;case"x":b=g.toString();break;case"n":case"nn":case"nnn":b=l.padString(p,e.parts[m].length,"0");break;case"z":b=l.getTimeZone(t,!1,!1,this.utc);break;case"zz":b=l.getTimeZone(t,!0,!1,this.utc);break;case"zzz":b=l.getTimeZone(t,!1,!0,this.utc);break;case"zzzz":b=l.getTimeZone(t,!0,!0,this.utc);break;case"Z":case"ZZ":var _=Math.abs(f)/60,x=Math.floor(_),P=60*_-60*x;this.utc&&(x=0,P=0),"Z"==e.parts[m]?(b="GMT",b+=f>0?"-":"+",b+=l.padString(x,2)+":"+l.padString(P,2)):(b=f>0?"-":"+",b+=l.padString(x,2)+l.padString(P,2));break;case"i":b=t.toISOString();break;case"I":b=t.toUTCString()}d=d.replace(u.d,b)}return d},e.prototype.parse=function(t,e){if(h.hasValue(e)||(e=this.inputDateFormat),t instanceof Date)return t;if("number"==typeof t)return new Date(t);"string"!=typeof t&&(t=t.toString()),this.language||(this.sprite?this.language=this.sprite.language:this.language=new r.a);var i=new Date(1970,0,1,0,0,0),n="";e=(e=l.cleanFormat(e)).substr(0,t.length);for(var o=this.parseFormat(e),a={year:-1,year3:-1,year2:-1,year1:-1,month:-1,monthShort:-1,monthLong:-1,weekdayShort:-1,weekdayLong:-1,day:-1,yearDay:-1,week:-1,hourBase0:-1,hour12Base0:-1,hourBase1:-1,hour12Base1:-1,minute:-1,second:-1,millisecond:-1,millisecondDigits:-1,am:-1,zone:-1,timestamp:-1,iso:-1},s=0,u=0,c=0;c<o.parts.length;c++){switch(u=c+s+1,o.parts[c]){case"yyyy":case"YYYY":n+="([0-9]{4,})",a.year=u;break;case"yyy":case"YYY":n+="([0-9]{3})",a.year3=u;break;case"yy":case"YY":n+="([0-9]{2})",a.year2=u;break;case"y":case"Y":n+="([0-9]{1})",a.year1=u;break;case"MMMM":n+="("+this.getStringList(this._months).join("|")+")",a.monthLong=u;break;case"MMM":n+="("+this.getStringList(this._monthsShort).join("|")+")",a.monthShort=u;break;case"MM":case"M":n+="([0-9]{2}|[0-9]{1})",a.month=u;break;case"ww":case"w":n+="([0-9]{2}|[0-9]{1})",a.week=u;break;case"dd":case"d":n+="([0-9]{2}|[0-9]{1})",a.day=u;break;case"DDD":case"DD":case"D":n+="([0-9]{3}|[0-9]{2}|[0-9]{1})",a.yearDay=u;break;case"dddd":n+="("+this.getStringList(this._weekdays).join("|")+")",a.weekdayLong=u;break;case"ddd":n+="("+this.getStringList(this._weekdaysShort).join("|")+")",a.weekdayShort=u;break;case"aaa":case"aa":case"a":n+="("+this.getStringList(["AM","PM","A.M.","P.M.","A","P"]).join("|")+")",a.am=u;break;case"hh":case"h":n+="([0-9]{2}|[0-9]{1})",a.hour12Base1=u;break;case"HH":case"H":n+="([0-9]{2}|[0-9]{1})",a.hourBase0=u;break;case"KK":case"K":n+="([0-9]{2}|[0-9]{1})",a.hour12Base0=u;break;case"kk":case"k":n+="([0-9]{2}|[0-9]{1})",a.hourBase1=u;break;case"mm":case"m":n+="([0-9]{2}|[0-9]{1})",a.minute=u;break;case"ss":case"s":n+="([0-9]{2}|[0-9]{1})",a.second=u;break;case"SSS":case"SS":case"S":n+="([0-9]{3}|[0-9]{2}|[0-9]{1})",a.millisecond=u,a.millisecondDigits=o.parts[c].length;break;case"nnn":case"nn":case"n":n+="([0-9]{3}|[0-9]{2}|[0-9]{1})",a.millisecond=u;break;case"x":n+="([0-9]{1,})",a.timestamp=u;break;case"Z":n+="GMT([-+]+[0-9]{2}:[0-9]{2})",a.zone=u;break;case"ZZ":n+="([\\-+]+[0-9]{2}[0-9]{2})",a.zone=u;break;case"i":n+="([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2}).([0-9]{3})([Zz]?)",a.iso=u,s+=7;break;case"G":case"YYYY":case"YYY":case"YY":case"Y":case"MMMMM":case"W":case"EEEEE":case"EEEE":case"EEE":case"EE":case"E":case"eeeee":case"eeee":case"eee":case"ee":case"e":case"zzzz":case"zzz":case"zz":case"z":case"t":s--}n+="[^0-9]*"}var p,d=new RegExp(n);if(p=t.match(d)){if(a.year>-1){var f=parseInt(p[a.year]);this.utc?i.setUTCFullYear(f):i.setFullYear(f)}if(a.year3>-1){f=parseInt(p[a.year3]);f+=1e3,this.utc?i.setUTCFullYear(f):i.setFullYear(f)}if(a.year2>-1){f=parseInt(p[a.year2]);f+=f>50?1e3:2e3,this.utc?i.setUTCFullYear(f):i.setFullYear(f)}if(a.year1>-1){f=parseInt(p[a.year1]);f=10*Math.floor((new Date).getFullYear()/10)+f,this.utc?i.setUTCFullYear(f):i.setFullYear(f)}if(a.monthLong>-1){f=this.resolveMonth(p[a.monthLong]);this.utc?i.setUTCMonth(f):i.setMonth(f)}if(a.monthShort>-1){f=this.resolveShortMonth(p[a.monthShort]);this.utc?i.setUTCMonth(f):i.setMonth(f)}if(a.month>-1){f=parseInt(p[a.month])-1;this.utc?i.setUTCMonth(f):i.setMonth(f)}if(a.week>-1&&-1===a.day){f=l.getDayFromWeek(parseInt(p[a.week]),this.utc?i.getUTCFullYear():i.getFullYear(),1,this.utc);this.utc?(i.setUTCMonth(0),i.setUTCDate(f)):(i.setMonth(0),i.setDate(f))}if(a.day>-1){f=parseInt(p[a.day]);this.utc?i.setUTCDate(f):i.setDate(f)}if(a.yearDay>-1){f=parseInt(p[a.yearDay]);this.utc?(i.setUTCMonth(0),i.setUTCDate(f)):(i.setMonth(0),i.setDate(f))}if(a.hourBase0>-1){f=parseInt(p[a.hourBase0]);this.utc?i.setUTCHours(f):i.setHours(f)}if(a.hourBase1>-1){f=parseInt(p[a.hourBase1])-1;this.utc?i.setUTCHours(f):i.setHours(f)}if(a.hour12Base0>-1)11==(f=parseInt(p[a.hour12Base0]))&&(f=0),a.am>-1&&!this.isAm(p[a.am])&&(f+=12),this.utc?i.setUTCHours(f):i.setHours(f);if(a.hour12Base1>-1)12==(f=parseInt(p[a.hour12Base1]))&&(f=0),a.am>-1&&!this.isAm(p[a.am])&&(f+=12),this.utc?i.setUTCHours(f):i.setHours(f);if(a.minute>-1){f=parseInt(p[a.minute]);this.utc?i.setUTCMinutes(f):i.setMinutes(f)}if(a.second>-1){f=parseInt(p[a.second]);this.utc?i.setUTCSeconds(f):i.setSeconds(f)}if(a.millisecond>-1){f=parseInt(p[a.millisecond]);2==a.millisecondDigits?f*=10:1==a.millisecondDigits&&(f*=100),this.utc?i.setUTCMilliseconds(f):i.setMilliseconds(f)}if(a.timestamp>-1&&i.setTime(parseInt(p[a.timestamp])),a.zone>-1){var g=p[a.zone].replace(/:/,""),m=h.getValue(g.match(/([+\-]?)([0-9]{2})([0-9]{2})/)),y=m[1],b=m[2],v=m[3],_=60*parseInt(b)+parseInt(v);"+"==y&&(_*=-1);var x=_-i.getTimezoneOffset();0!=x&&i.setMinutes(i.getMinutes()+x)}a.iso>-1&&("Z"==p[a.iso+7]||"z"==p[a.iso+7]?((i=new Date).setUTCFullYear(h.toNumber(p[a.iso+0])),i.setUTCMonth(h.toNumber(p[a.iso+1])-1),i.setUTCDate(h.toNumber(p[a.iso+2])),i.setUTCHours(h.toNumber(p[a.iso+3])),i.setUTCMinutes(h.toNumber(p[a.iso+4])),i.setUTCSeconds(h.toNumber(p[a.iso+5])),i.setUTCMilliseconds(h.toNumber(p[a.iso+6]))):i=new Date(h.toNumber(p[a.iso+0]),h.toNumber(p[a.iso+1])-1,h.toNumber(p[a.iso+2]),h.toNumber(p[a.iso+3]),h.toNumber(p[a.iso+4]),h.toNumber(p[a.iso+5]),h.toNumber(p[a.iso+6])))}else i=new Date(t);return i},e.prototype.resolveMonth=function(t){var e=this._months.indexOf(t);return e>-1?e:this.language&&!this.language.isDefault()&&(e=this.language.translateAll(this._months).indexOf(t))>-1?e:0},e.prototype.resolveShortMonth=function(t){var e=this._monthsShort.indexOf(t);return e>-1?e:this.language&&!this.language.isDefault()&&(e=this.language.translateAll(this._monthsShort).indexOf(t))>-1?e:0},e.prototype.isAm=function(t){return this.getStringList(["AM","A.M.","A"]).indexOf(t.toUpperCase())>-1},e.prototype.invalidateSprite=function(){this.sprite&&this.sprite.invalidate()},e.prototype.getStringList=function(t){for(var e=[],i=0;i<t.length;i++)e.push(l.escapeForRgex(t[i])),this.language&&!this.language.isDefault()&&e.push(l.escapeForRgex(this.language.translate(t[i])));return e},Object.defineProperty(e.prototype,"dateFormat",{get:function(){return this._dateFormat},set:function(t){this._dateFormat=t,this.invalidateSprite()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputDateFormat",{get:function(){return this._inputDateFormat},set:function(t){this._inputDateFormat=t,this.invalidateSprite()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"utc",{get:function(){return this._utc},set:function(t){this._utc=t,this.invalidateSprite()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"firstDayOfWeek",{get:function(){return this._firstDayOfWeek},set:function(t){this._firstDayOfWeek=t,this.invalidateSprite()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputFormat",{get:function(){return this._outputFormat},set:function(t){this._outputFormat=t.toLowerCase(),this.invalidateSprite()},enumerable:!0,configurable:!0}),e}(o.a);s.b.registeredClasses.DateFormatter=c},"7bL/":function(t,e){var i=0,n=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++i+n).toString(36))}},"7xho":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("vJiZ"),o=i("W0fk");n(n.P+n.F*i("AEc5")(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(t){var e=r(this),i=o(e);return"number"!=typeof i||isFinite(i)?e.toISOString():null}})},"85D4":function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("ohjg"),o=i("aCit"),a=function(t){function e(){var e=t.call(this)||this;return e.className="DesaturateFilter",e.feColorMatrix=e.paper.add("feColorMatrix"),e.feColorMatrix.attr({type:"saturate"}),e.filterPrimitives.push(e.feColorMatrix),e.width=120,e.height=120,e.saturation=0,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"saturation",{get:function(){return this.properties.saturation},set:function(t){this.properties.saturation=t,this.feColorMatrix.attr({values:t.toString()})},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.DesaturateFilter=a},"8EhG":function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("Vs7R"),o=i("aCit"),a=i("MIZb"),s=i("Mtpk"),u=function(t){function e(e){var i=t.call(this)||this;i.axis=e,i.element=i.paper.add("path"),i.className="AxisFill",i.isMeasured=!1,i.location=0;var n=new a.a;return i.fill=n.getFor("alternativeBackground"),i.fillOpacity=0,i.applyTheme(),i}return n.c(e,t),e.prototype.setDisabled=function(e){var i=t.prototype.setDisabled.call(this,e);return this.axis&&this.axis.invalidateDataItems(),i},e.prototype.draw=function(){t.prototype.draw.call(this),this.axis&&s.isNumber(this.startPosition)&&s.isNumber(this.endPosition)&&(this.fillPath=this.axis.getPositionRangePath(this.startPosition,this.endPosition),this.path=this.fillPath)},Object.defineProperty(e.prototype,"startPosition",{get:function(){return this.getPropertyValue("startPosition")},set:function(t){this.setPropertyValue("startPosition",t),this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endPosition",{get:function(){return this.getPropertyValue("endPosition")},set:function(t){this.setPropertyValue("endPosition",t),this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"location",{get:function(){return this.getPropertyValue("location")},set:function(t){this.setPropertyValue("location",t,!0)},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.AxisFill=u},"8LiO":function(t,e,i){"use strict";i("Mvcd")("sub",function(t){return function(){return t(this,"sub","","")}})},"8LwG":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("6w17"),o=i("wYgt");n(n.S,"Promise",{try:function(t){var e=r.f(this),i=o(t);return(i.e?e.reject:e.resolve)(i.v),e.promise}})},"8NlW":function(t,e,i){"use strict";i("Mvcd")("fontsize",function(t){return function(e){return t(this,"font","size",e)}})},"8ZqG":function(t,e,i){"use strict";i.d(e,"a",function(){return a}),e.c=s,e.d=u,e.b=l,e.e=function(t){if(o.hasValue(t)&&!u(t))return l(t);return t};var n=i("aCit"),r=i("hxI2"),o=i("Mtpk"),a=function(){function t(t){this._value=t}return Object.defineProperty(t.prototype,"rgb",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hex",{get:function(){return this._value?r.rgbToHex(this._value):"none"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rgba",{get:function(){return this._value?r.rgbToRGBA(this._value):"none"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"alpha",{get:function(){return null!=this._value&&null!=this._value.a?this._value.a:1},set:function(t){this._value&&(this._value.a=t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lightColor",{get:function(){return this._lightColor||(this._lightColor=new t({r:255,g:255,b:255})),this._lightColor},set:function(t){this._lightColor=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"darkColor",{get:function(){return this._darkColor||(this._darkColor=new t({r:0,g:0,b:0})),this._darkColor},set:function(t){this._darkColor=t},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this.alpha<1?this.rgba:this.hex},t.prototype.lighten=function(e){return new t(r.lighten(this.rgb,e))},t.prototype.brighten=function(e){return new t(r.brighten(this.rgb,e))},t.prototype.saturate=function(e){return new t(r.saturate(this.rgb,e))},Object.defineProperty(t.prototype,"alternative",{get:function(){if(null!=this.rgb)return r.isLight(this.rgb)?this.darkColor:this.lightColor;throw new Error("Color does not exist")},enumerable:!0,configurable:!0}),t}();function s(t,e){if(!o.hasValue(t))return new a(void 0);if("string"==typeof t){var i="_color_"+t+"_"+(e||"1"),s=n.b.getCache(i);if(s)return new a({r:s.r,g:s.g,b:s.b,a:s.a});var u=r.rgb(t,e);return n.b.setCache(i,u),new a(u)}return t instanceof a?(o.hasValue(e)&&(t.alpha=e),t):new a(t)}function u(t){return t instanceof a}function l(t){return s(t)}},"8aZA":function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{clamp:function(t,e,i){return Math.min(i,Math.max(e,t))}})},"8oRD":function(t,e,i){var n=i("DvJ+");i("5lay")("isExtensible",function(t){return function(e){return!!n(e)&&(!t||t(e))}})},"8rbL":function(t,e,i){var n=i("EhJv"),r=i("rkh7").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==o.call(t)?function(t){try{return r(t)}catch(t){return a.slice()}}(t):r(n(t))}},"8tDI":function(t,e,i){var n=i("Gb1H"),r=Math.imul;n(n.S+n.F*i("AEc5")(function(){return-5!=r(4294967295,5)||2!=r.length}),"Math",{imul:function(t,e){var i=+t,n=+e,r=65535&i,o=65535&n;return 0|r*o+((65535&i>>>16)*o+r*(65535&n>>>16)<<16>>>0)}})},"8ujI":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("dstF")(2);n(n.P+n.F*!i("GQop")([].filter,!0),"Array",{filter:function(t){return r(this,t,arguments[1])}})},"9BM3":function(t,e){t.exports={}},"9MGJ":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("vJiZ"),o=i("DbOM"),a=i("hjwn");i("gD3S")&&n(n.P+i("3/+B"),"Object",{__defineSetter__:function(t,e){a.f(r(this),t,{set:o(e),enumerable:!0,configurable:!0})}})},"9UcF":function(t,e,i){var n=i("Gb1H");n(n.S,"Object",{create:i("5+SK")})},"9i/o":function(t,e,i){"use strict";var n=i("AEc5"),r=Date.prototype.getTime,o=Date.prototype.toISOString,a=function(t){return t>9?t:"0"+t};t.exports=n(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!n(function(){o.call(new Date(NaN))})?function(){if(!isFinite(r.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),i=t.getUTCMilliseconds(),n=e<0?"-":e>9999?"+":"";return n+("00000"+Math.abs(e)).slice(n?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(i>99?i:"0"+a(i))+"Z"}:o},A6AV:function(t,e,i){"use strict";i.d(e,"a",function(){return c});var n=i("m4/l"),r=i("Tjl+"),o=i("x79X"),a=i("1yyj"),s=i("v9UT"),u=i("hJ5i"),l=i("Qkdp"),h=i("Mtpk"),c=function(t){function e(){var e=t.call(this)||this;return e.adapter=new o.a(e),e._disabled=!1,e.hasProperties=!1,e.values={},e.categories={},e.dates={},e.locations={},e.workingLocations={},e.properties={},e.sprites=[],e.isTemplate=!1,e._index=null,e._visible=!0,e._hidden=!1,e._ignoreMinMax=!1,e.hasChildren={},e.isHiding=!1,e._valueAnimations={},e._locationAnimations={},e.className="DataItem",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"index",{get:function(){return this.component&&null!=this._index?this._index:-1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animations",{get:function(){return this._animations||(this._animations=[],this._disposers.push(new a.b(this._animations))),this._animations},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"visible",{get:function(){return!this._hidden&&this._visible},set:function(t){t&&(this.hidden=!1),this._visible!=t&&this.setVisibility(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hidden",{get:function(){return this._hidden},set:function(t){this._hidden!=t&&(this._hidden=t,t?this.setVisibility(!1):this.setVisibility(!0,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"__disabled",{get:function(){return this._disabled},set:function(t){this._disabled=t,u.each(this.sprites,function(e){e.__disabled=t})},enumerable:!0,configurable:!0}),e.prototype.setVisibility=function(t,e){if(u.each(this.sprites,function(e){t?e.visible=e.defaultState.properties.visible:e.hiddenState?e.visible=e.hiddenState.properties.visible:e.visible=!1}),this._visible=t,this.events.isEnabled("visibilitychanged")){var i={type:"visibilitychanged",target:this,visible:t};this.events.dispatchImmediately("visibilitychanged",i)}},e.prototype.show=function(t,e,i){var n,r=this;if(!this.hidden)return this.setVisibility(!0,!0),this.isHiding=!1,this._hideDisposer&&this.removeDispose(this._hideDisposer),i&&u.each(i,function(i){n=r.setWorkingValue(i,r.values[i].value,t,e)}),u.each(this.sprites,function(i){var n=i.show(t);null==n||n.isFinished()||(r._disposers.push(n),null!=e&&e>0&&n.delay(e))}),n},e.prototype.dispose=function(){t.prototype.dispose.call(this),u.each(this.sprites,function(t){t.dispose()}),this.sprites=[]},e.prototype.hide=function(t,e,i,n){var r=this;if(this.isHiding=!0,u.each(this.sprites,function(i){var n=i.hide(t);null==n||n.isFinished()||(r._disposers.push(n),null!=e&&e>0&&n.delay(e))}),h.isNumber(i)&&n){var o;if(u.each(n,function(n){var a=r.setWorkingValue(n,i,t,e);a&&(o=a)}),o&&!o.isFinished())return this._hideDisposer=o.events.on("animationended",function(){r.setVisibility(!1,!0),r.isHiding=!1}),this._disposers.push(this._hideDisposer),o;this.isHiding=!1,this.setVisibility(!1,!0)}else this.isHiding=!1,this.setVisibility(!1)},e.prototype.getDuration=function(t){if(!h.isNumber(t)){var e=this.component;e&&(t=e.interpolationDuration)}if(null!=t)return this.adapter.apply("duration",t)},e.prototype.getValue=function(t,e){if(t&&this.component){e||(e=this.component.dataFields[t+"Show"])||(e="value");var i=this.values[t][e];return this.adapter.isEnabled("value")?this.adapter.apply("value",{value:i,field:t}).value:i}},e.prototype.getWorkingValue=function(t){if(t&&this.component){var e=this.component.dataFields[t+"Show"];return e||(e="workingValue"),this.adapter.apply("workingValue",{workingValue:this.values[t][e],field:t}).workingValue}},e.prototype.getActualWorkingValue=function(t){return this.values[t].workingValue},e.prototype.setValue=function(t,e,i,n){var r=this.values[t].value,o=this.getDuration(i);if(r!==(e=h.toNumber(e))){if(this.values[t].value=e,this.events.isEnabled("valuechanged")){var a={type:"valuechanged",target:this,property:t};this.events.dispatchImmediately("valuechanged",a)}this.component&&this.component.handleDataItemValueChange(this,t)}this.setWorkingValue(t,e,o,n)},e.prototype.setCalculatedValue=function(t,e,i){if(this.values[t][i]!==e&&h.isNumber(e)){if(this.values[t][i]=e,this.events.isEnabled("calculatedvaluechanged")){var n={type:"calculatedvaluechanged",target:this,property:t};this.events.dispatchImmediately("calculatedvaluechanged",n)}this.component&&this.component.handleDataItemCalculatedValueChange(this,t)}},e.prototype.setWorkingValue=function(t,e,i,n){if(h.isNumber(this.values[t].value)){var r=this.getDuration(i),o=this.values[t].workingValue;if(null!=r&&r>0&&h.isNumber(o)&&this.component){if(o!=e){var a=this.animate({childObject:this.values[t],property:"workingValue",from:o,to:e,dummyData:t},r,this.component.interpolationEasing);return null!=n&&a.delay(n),a.events.on("animationstarted",this.handleInterpolationProgress,this),a.events.on("animationprogress",this.handleInterpolationProgress,this),a.events.on("animationended",this.handleInterpolationProgress,this),this._valueAnimations[t]=a,a}(s=this._valueAnimations[t])&&s.stop(),this.values[t].workingValue=e}else{var s;if((s=this._valueAnimations[t])&&s.stop(),this.values[t].workingValue=e,this.events.isEnabled("workingvaluechanged")){var u={type:"workingvaluechanged",target:this,property:t};this.events.dispatchImmediately("workingvaluechanged",u)}this.component&&this.component.handleDataItemWorkingValueChange(this,t)}}},e.prototype.setLocation=function(t,e,i,n){if(this.locations[t]!==e){if(this.locations[t]=e,this.events.isEnabled("locationchanged")){var r={type:"locationchanged",target:this,property:t};this.events.dispatchImmediately("locationchanged",r)}this.component&&this.component.handleDataItemValueChange(this,t),this.setWorkingLocation(t,e,i,n)}},e.prototype.setWorkingLocation=function(t,e,i,n){var r=this.getDuration(i),o=this.workingLocations[t];if(null!=r&&r>0&&h.isNumber(o)&&this.component){if(o!=e){var a=this.animate({childObject:this.workingLocations,property:t,from:o,to:e,dummyData:t},r,this.component.interpolationEasing);return null!=n&&a.delay(n),a.events.on("animationstarted",this.handleInterpolationProgress,this),a.events.on("animationprogress",this.handleInterpolationProgress,this),a.events.on("animationended",this.handleInterpolationProgress,this),this._locationAnimations[t]=a,a}(s=this._locationAnimations[t])&&s.stop(),this.workingLocations[t]=e}else{var s;if((s=this._locationAnimations[t])&&s.stop(),this.workingLocations[t]=e,this.events.isEnabled("workinglocationchanged")){var u={type:"workinglocationchanged",target:this,property:t};this.events.dispatchImmediately("workinglocationchanged",u)}this.component&&this.component.handleDataItemWorkingLocationChange(this,t)}},e.prototype.setDate=function(t,e,i){!h.isDate(e)&&this.component&&(e=this.component.dateFormatter.parse(e)),this.dates[t]!==e&&(this.dates[t]=e,this.setValue(t,e.getTime(),i))},e.prototype.getDate=function(t){return this.adapter.apply("date",{date:this.dates[t],field:t}).date},e.prototype.setProperty=function(t,e){if(this.properties[t]!==e){if(this.hasProperties=!0,this.properties[t]=e,this.events.isEnabled("propertychanged")){var i={type:"propertychanged",target:this,property:t,value:e};this.events.dispatchImmediately("propertychanged",i)}this.component&&this.component.handleDataItemPropertyChange(this,t)}},e.prototype.setCategory=function(t,e){h.isString(e)||(e=h.castString(e)),this.categories[t]!==e&&(this.categories[t]=e)},e.prototype.clone=function(e){var i=t.prototype.clone.call(this,e);return this.dataContext&&(i.dataContext=s.copy(this.dataContext,{})),s.copyProperties(this.locations,i.locations),s.copyProperties(this.properties,i.properties),s.copyProperties(this.categories,i.categories),s.copyProperties(this.values,i.values),s.copyProperties(this.dates,i.dates),l.each(this.values,function(t,e){i.values[t]=l.copy(e)}),i.adapter.copyFrom(this.adapter),i.events.copyFrom(this.events),i.component=this.component,i},Object.defineProperty(e.prototype,"opacity",{set:function(t){u.each(this.sprites,function(e){e.opacity=t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ignoreMinMax",{get:function(){return this._ignoreMinMax},set:function(t){if(this._ignoreMinMax=t,this.events.isEnabled("propertychanged")){var e={type:"propertychanged",target:this,property:"ignoreMinMax",value:t};this.events.dispatchImmediately("propertychanged",e)}this.component&&this.component.handleDataItemPropertyChange(this,"ignoreMinMax")},enumerable:!0,configurable:!0}),e.prototype.animate=function(t,e,i){return new a.a(this,t,e,i).start()},e.prototype.handleInterpolationProgress=function(t){var e=t.target.animationOptions[0];if(e){if(this.events.isEnabled("workingvaluechanged")){var i={type:"workingvaluechanged",target:this,property:e.dummyData};this.events.dispatchImmediately("workingvaluechanged",i)}this.component&&this.component.handleDataItemWorkingValueChange(this,e.dummyData)}},e.prototype.hasValue=function(t){for(var e=0,i=t.length;e<i;e++)if(!h.hasValue(this.values[t[e]].value))return!1;return!0},Object.defineProperty(e.prototype,"depth",{get:function(){return this.parent?this.parent.depth+1:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataContext",{get:function(){return this._dataContext},set:function(t){this._dataContext=t},enumerable:!0,configurable:!0}),e.prototype.addSprite=function(t){t.dataItem&&t.dataItem!=this&&u.remove(t.dataItem.sprites,t),this.visible||t.hide(0),this.isHiding&&t.hide(),this.sprites.push(t),t.dataItem=this},e}(r.b)},AAkI:function(t,e,i){"use strict";i.d(e,"b",function(){return w}),i.d(e,"a",function(){return O});var n,r=i("m4/l"),o=i("Y9w3"),a=i("C6dT"),s=i("A6AV"),u=i("Uslz"),l=i("p9TX"),h=i("cxKZ"),c=i("VGgz"),p=i("vMqJ"),d=i("hD5A"),f=i("aCit"),g=i("MIZb"),m=i("Wglt"),y=i("Gg2j"),b=i("v9UT"),v=i("3Cxr"),_=i("hJ5i"),x=i("Mtpk"),P=i("TGuK"),w=function(t){function e(){var e=t.call(this)||this;return e.className="AxisDataItem",e.applyTheme(),e}return r.c(e,t),Object.defineProperty(e.prototype,"grid",{get:function(){if(!this._grid){var t=this.component;if(t){var e,i=void 0;if(this.isRange){if((i=t.axisRanges.template.grid).disabled)return;e=i.clone()}else{if((i=t.renderer.grid.template).disabled)return;e=t.renderer.grid.create(),this._disposers.push(new d.b(function(){t.renderer.grid.removeValue(e)}))}this.grid=e,e.shouldClone=!1,this._disposers.push(e),e.axis=this.component}}return this._grid},set:function(t){this._grid&&this._grid!=t&&(_.remove(this.sprites,this._grid),this._grid.dataItem=void 0),t&&(t.dataItem&&t.dataItem!=this&&(_.remove(t.dataItem.sprites,t),t.dataItem.grid=void 0),this.addSprite(t)),this._grid=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tick",{get:function(){if(!this._tick){var t=this.component;if(t){var e,i=void 0;if(this.isRange){if((i=t.axisRanges.template.tick).disabled)return;e=i.clone()}else{if((i=t.renderer.ticks.template).disabled)return;e=t.renderer.ticks.create(),this._disposers.push(new d.b(function(){t.renderer.ticks.removeValue(e)}))}this.tick=e,e.axis=this.component,e.shouldClone=!1,this._disposers.push(e)}}return this._tick},set:function(t){this._tick&&this._tick!=t&&(_.remove(this.sprites,this._tick),this._tick.dataItem=void 0),t&&(t.dataItem&&t.dataItem!=this&&(_.remove(t.dataItem.sprites,t),t.dataItem.tick=void 0),this.addSprite(t)),this._tick=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){if(!this._label){var t=this.component;if(t){var e,i=void 0;if(this.isRange){if((i=t.axisRanges.template.label).disabled)return;e=i.clone()}else{if((i=t.renderer.labels.template).disabled)return;e=t.renderer.labels.create(),this._disposers.push(new d.b(function(){t.renderer.labels.removeValue(e)}))}this._disposers.push(e),this.label=e,e.shouldClone=!1,e.axis=this.component,e.virtualParent=t}}return this._label},set:function(t){this._label&&this._label!=t&&(_.remove(this.sprites,this._label),this._label.dataItem=void 0),t&&(t.dataItem&&t.dataItem!=this&&(_.remove(t.dataItem.sprites,t),t.dataItem.label=void 0),this.addSprite(t)),this._label=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"axisFill",{get:function(){if(!this._axisFill){var t=this.component;if(t){var e,i=void 0;if(this.isRange){if(i=t.axisRanges.template.axisFill,!this.isTemplate&&i.disabled)return;e=i.clone()}else{if((i=t.renderer.axisFills.template).disabled)return;e=t.renderer.axisFills.create(),this._disposers.push(new d.b(function(){t.renderer.axisFills.removeValue(e)}))}this.axisFill=e,e.shouldClone=!1,this._disposers.push(e)}}return this._axisFill},set:function(t){this._axisFill&&this._axisFill!=t&&(_.remove(this.sprites,this._axisFill),this._axisFill.dataItem=void 0),t&&(t.dataItem&&t.dataItem!=this&&(_.remove(t.dataItem.sprites,t),t.dataItem.axisFill=void 0),t.axis=this.component,this.addSprite(t)),this._axisFill=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"text",{get:function(){return this._text},set:function(t){this._text=t,this._label&&(this._label.text=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mask",{get:function(){return this._mask},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contents",{get:function(){if(!this._contents){var t=new a.a;this.addSprite(t),t.isMeasured=!1,this._contents=t;var e=this.component;if(e){var i=e.renderer.createFill(this.component);i.disabled=!1,i.axis=e,this.addSprite(i),this._mask=i,t.mask=i}}return this._contents},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"axisBreak",{get:function(){return this._axisBreak},set:function(t){this._axisBreak&&this._axisBreak.dataItems.removeValue(this),t&&t.dataItems.push(this),this._axisBreak=t},enumerable:!0,configurable:!0}),e.prototype.validate=function(){this.component&&this.component.validateDataElement(this)},e.prototype.appendChildren=function(){this.component&&this.component.appendDataItem(this)},e.prototype.configOrder=function(t,e){return t==e?0:"language"==t?-1:"language"==e?1:"component"==t?-1:"component"==e?1:0},e.prototype.hasProperty=function(e){return"component"==e||t.prototype.hasProperty.call(this,e)},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.text=e.text},e}(s.a);!function(t){t[t.Start=0]="Start",t[t.Middle=.5]="Middle",t[t.End=1]="End"}(n||(n={}));var O=function(t){function e(){var e=t.call(this)||this;e._gridCount=10,e._series=new p.b,e.autoDispose=!0,e.className="Axis",e.shouldClone=!1,e.setPropertyValue("cursorTooltipEnabled",!0);var i=new g.a;e.title=new l.a,e.title.shouldClone=!1,e._disposers.push(e.title),e.setPropertyValue("startLocation",0),e.setPropertyValue("endLocation",1),e._dataItemsIterator=new m.ListIterator(e.dataItems,function(){return e.dataItems.create()}),e._dataItemsIterator.createNewItems=!0;var n=new h.a;e._disposers.push(n),n.label.padding(5,10,5,10),n.background.pointerLength=5,n.fitPointerToBounds=!0,n.background.filters.clear(),n.virtualParent=e;var r=n.background;return r.cornerRadius=0,r.fill=i.getFor("alternativeBackground"),r.stroke=r.fill,r.strokeWidth=1,r.fillOpacity=1,n.label.fill=i.getFor("alternativeText"),e.tooltip=n,e.applyTheme(),e}return r.c(e,t),e.prototype.fillRule=function(t,e){x.isNumber(e)||(e=t.index),e/2==Math.round(e/2)?(t.axisFill.__disabled=!0,t.axisFill.opacity=0):(t.axisFill.opacity=1,t.axisFill.__disabled=!1)},e.prototype.createDataItem=function(){return new w},e.prototype.invalidateLayout=function(){t.prototype.invalidateLayout.call(this),m.each(this.series.iterator(),function(t){t.invalidateLayout()})},e.prototype.invalidateSeries=function(){m.each(this.series.iterator(),function(t){t.invalidate()})},e.prototype.validateDataElements=function(){this.ghostLabel&&this.renderer.updateLabelElement(this.ghostLabel,this.start,this.end)},e.prototype.updateGridCount=function(){this.renderer&&(this._gridCount=this.axisLength/this.renderer.minGridDistance)},e.prototype.validateLayout=function(){this.axisFullLength=this.axisLength/(this.end-this.start),t.prototype.validateLayout.call(this),this.updateGridCount(),this.renderer.updateAxisLine(),this.renderer.updateTooltip(),this.renderer.updateBaseGridElement(),this._prevLength!=this.axisLength&&(this.dispatchImmediately("lengthchanged"),this._prevLength=this.axisLength)},e.prototype.initRenderer=function(){},e.prototype.appendDataItem=function(t){var e=this.renderer;t.tick&&(t.tick.parent=e.gridContainer),t.label&&(t.label.parent=e),t.grid&&(t.grid.parent=e.gridContainer),t.axisFill&&(t.axisFill.parent=e.gridContainer)},e.prototype.validate=function(){t.prototype.validate.call(this),this.validateLayout(),this.renderer.updateGridContainer()},e.prototype.validateAxisRanges=function(){var t=this;m.each(this.axisRanges.iterator(),function(e){t.appendDataItem(e),t.validateDataElement(e),e.grid&&e.grid.validate(),e.tick&&e.tick.validate(),e.axisFill&&e.axisFill.validate(),e.label&&e.label.validate()})},e.prototype.validateBreaks=function(){m.each(this.axisBreaks.iterator(),function(t){t.invalidate()})},e.prototype.processBreak=function(t){var e=t.newValue;e.parent=this.renderer.breakContainer,e.axis=this},e.prototype.registerSeries=function(t){var e=this;return this.series.moveValue(t),new d.c([new d.b(function(){e.series.removeValue(t)}),this.events.on("lengthchanged",t.invalidate,t,!1),this.events.on("startchanged",t.invalidate,t,!1),this.events.on("endchanged",t.invalidate,t,!1)])},Object.defineProperty(e.prototype,"renderer",{get:function(){return this._renderer},set:function(t){if(t!=this._renderer){this._renderer=t,t.chart=this.chart,t.axis=this,t.parent=this,this.title.parent=this,this.initRenderer(),this._disposers.push(t.gridContainer.events.on("maxsizechanged",this.invalidate,this,!1));var e=this.renderer.labels.create();this._disposers.push(e),e.dataItem=this.dataItems.template.clone(),e.text="L",e.parent=this.renderer,e.shouldClone=!1,e.fillOpacity=0,e.opacity=0,e.strokeOpacity=0,e.validate(),this.ghostLabel=e,this.events.on("beforedatavalidated",function(){e.text="L"},void 0,!1)}},enumerable:!0,configurable:!0}),e.prototype.positionToAngle=function(t){return this.renderer.positionToAngle(t)},e.prototype.pointToPosition=function(t){return this.renderer.pointToPosition(t)},e.prototype.getAnyRangePath=function(t,e){return this.renderer.getPositionRangePath(t,e)},e.prototype.anyToPosition=function(t){return 0},e.prototype.anyToPoint=function(t){return{x:0,y:0,angle:0}},e.prototype.getPositionRangePath=function(t,e){return this.renderer.getPositionRangePath(t,e)},Object.defineProperty(e.prototype,"axisLength",{get:function(){return this.renderer.axisLength},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cursorTooltipEnabled",{get:function(){return this.getPropertyValue("cursorTooltipEnabled")},set:function(t){this.setPropertyValue("cursorTooltipEnabled",t)&&t&&this.renderer&&this.renderer.updateTooltip()},enumerable:!0,configurable:!0}),e.prototype.showTooltipAtPosition=function(t,e){var i=this._tooltip;if(e||(t=this.toAxisPosition(t)),!x.isNumber(t)||t<0||t>1)i.hide(0);else{var n=this.renderer;if(i&&this.dataItems.length>0){i&&!i.parent&&(i.parent=this.tooltipContainer);var r=n.tooltipLocation,o=this.getCellStartPosition(t),a=this.getCellEndPosition(t);"fixed"==this.tooltipPosition&&(t=o+(a-o)*r),t=y.fitToRange(t,this.start,this.end);var s=n.positionToPoint(o),u=n.positionToPoint(a);this.currentItemStartPoint=s,this.currentItemEndPoint=u,n.fullWidthTooltip&&(i.width=u.x-s.x,i.height=u.y-s.y);var l=n.positionToPoint(t),h=b.spritePointToSvg(l,this.renderer.line);i.text=this.getTooltipText(t),i.text&&(i.pointTo(h),i.show()),this.cursorTooltipEnabled||i.hide(0)}}},e.prototype.toAxisPosition=function(t){if(void 0!=(t=this.renderer.toAxisPosition(t)))return t*=this.end-this.start,t=this.renderer.inversed?this.end-t:this.start+t},e.prototype.toGlobalPosition=function(t){return this.renderer.inversed?t=this.end-t:t-=this.start,t/(this.end-this.start)},e.prototype.getTooltipText=function(t){},e.prototype.updateTooltip=function(t,e){var i=this._tooltip;i&&(i.pointerOrientation=t,i.setBounds(b.spriteRectToSvg(e,this.renderer.line)))},e.prototype.roundPosition=function(t,e){return t},e.prototype.getCellStartPosition=function(t){return t},e.prototype.getCellEndPosition=function(t){return t},Object.defineProperty(e.prototype,"axisRanges",{get:function(){if(!this._axisRanges){var t=this.createDataItem();t.isRange=!0,t.axisFill=this.renderer.axisFills.template.clone(),t.grid=this.renderer.grid.template.clone(),t.tick=this.renderer.ticks.template.clone(),t.label=this.renderer.labels.template.clone(),t.isTemplate=!0,t.component=this,t.axisFill.disabled=!1,t.tick.disabled=!1,t.grid.disabled=!1,t.label.disabled=!1,this._axisRanges=new p.e(t),this._axisRanges.events.on("inserted",this.processAxisRange,this,!1),this._disposers.push(new p.c(this._axisRanges)),this._disposers.push(this._axisRanges.template)}return this._axisRanges},enumerable:!0,configurable:!0}),e.prototype.processAxisRange=function(t){var e=t.newValue;e.component=this,e.isRange=!0},Object.defineProperty(e.prototype,"axisBreaks",{get:function(){return this._axisBreaks||(this._axisBreaks=new c.d(this.createAxisBreak(),function(t,e){return v.order(t.adjustedStartValue,e.adjustedStartValue)}),this._axisBreaks.events.on("inserted",this.processBreak,this,!1),this._disposers.push(new p.c(this._axisBreaks)),this._disposers.push(this._axisBreaks.template)),this._axisBreaks},enumerable:!0,configurable:!0}),e.prototype.createAxisBreak=function(){return new u.a},Object.defineProperty(e.prototype,"series",{get:function(){return this._series||(this._series=new p.b),this._series},enumerable:!0,configurable:!0}),e.prototype.processSeriesDataItems=function(){},e.prototype.processSeriesDataItem=function(t,e){},e.prototype.postProcessSeriesDataItems=function(){},e.prototype.postProcessSeriesDataItem=function(t){},e.prototype.updateAxisBySeries=function(){},e.prototype.hideUnusedDataItems=function(){var t=this,e=this._dataItemsIterator;e.createNewItems=!1,m.each(e.iterator(),function(e){t.validateDataElement(e),e.__disabled=!0}),e.clear(),e.createNewItems=!0},e.prototype.getSeriesDataItem=function(t,e,i){},e.prototype.getAngle=function(t,e,i,n){},e.prototype.getX=function(t,e,i,n){},e.prototype.getY=function(t,e,i,n){},Object.defineProperty(e.prototype,"basePoint",{get:function(){return{x:0,y:0}},enumerable:!0,configurable:!0}),e.prototype.dataChangeUpdate=function(){},e.prototype.seriesDataChangeUpdate=function(t){},e.prototype.adjustDifference=function(t,e){var i=e-t;if(x.isNumber(i))return m.eachContinue(this.axisBreaks.iterator(),function(n){var r=n.adjustedStartValue,o=n.adjustedEndValue;if(x.isNumber(r)&&x.isNumber(o)){if(r>e)return!1;if(o>=t&&x.isNumber(r)&&x.isNumber(o)){var a=n.breakSize,s=y.intersection({start:r,end:o},{start:t,end:e});s&&(i-=(s.end-s.start)*(1-a))}return!0}}),i},e.prototype.isInBreak=function(t){return m.find(this.axisBreaks.iterator(),function(e){return t>=e.adjustedStartValue&&t<=e.adjustedEndValue})},e.prototype.fixAxisBreaks=function(){var t=this,e=this.axisBreaks;if(e.length>0){_.each(m.toArray(e.iterator()),function(e){var i=y.min(e.startValue,e.endValue),n=y.max(e.startValue,e.endValue);e.adjustedStartValue=i,e.adjustedEndValue=n,t.axisBreaks.update(e)});var i=e.first,n=Math.min(i.startValue,i.endValue);m.each(this.axisBreaks.iterator(),function(t){var e=t.adjustedStartValue,i=t.adjustedEndValue;e<n&&(e=n,i<n&&(i=n)),t.adjustedStartValue=e,t.adjustedEndValue=i})}},Object.defineProperty(e.prototype,"startIndex",{get:function(){return 0},set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endIndex",{get:function(){return this.dataItems.length},set:function(t){},enumerable:!0,configurable:!0}),e.prototype.getPositionLabel=function(t){return Math.round(100*t)+"%x"},Object.defineProperty(e.prototype,"chart",{get:function(){return this._chart},set:function(t){this._chart=t},enumerable:!0,configurable:!0}),e.prototype.createSeriesRange=function(t){var e=this.axisRanges.create();return e.component=this,e.axisFill=this.renderer.axisFills.template.clone(),e.axisFill.disabled=!1,e.axisFill.fillOpacity=0,e.grid=this.renderer.grid.template.clone(),e.grid.disabled=!0,e.tick=this.renderer.ticks.template.clone(),e.tick.disabled=!0,e.label=this.renderer.labels.template.clone(),e.label.disabled=!0,t.axisRanges.push(e),e},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.renderer?this.renderer.copyFrom(e.renderer):e.renderer&&(this.renderer=e.renderer.clone()),e.title&&(this.title=e.title.clone())},e.prototype.resetIterators=function(){this._dataItemsIterator.reset()},e.prototype.processConfig=function(e){if(e&&x.hasValue(e.axisRanges)&&x.isArray(e.axisRanges))for(var i=0,n=e.axisRanges.length;i<n;i++){var r=e.axisRanges[i];x.hasValue(r.series)&&x.isString(r.series)&&this.map.hasKey(r.series)&&(e.axisRanges[i]=this.createSeriesRange(this.map.getKey(r.series)),delete r.series,e.axisRanges[i].config=r)}t.prototype.processConfig.call(this,e)},Object.defineProperty(e.prototype,"startLocation",{get:function(){return this.getPropertyValue("startLocation")},set:function(t){this.setPropertyValue("startLocation",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endLocation",{get:function(){return this.getPropertyValue("endLocation")},set:function(t){this.setPropertyValue("endLocation",t,!0)},enumerable:!0,configurable:!0}),e}(o.a);f.b.registeredClasses.Axis=O,f.b.registeredClasses.AxisDataItem=w,P.c.push({relevant:P.b.maybeXS,state:function(t,e){if(t instanceof O&&t.tooltip){var i=t.states.create(e);return i.properties.cursorTooltipEnabled=!1,i}return null}})},AC2I:function(t,e,i){"use strict";i.d(e,"b",function(){return m}),i.d(e,"a",function(){return y});var n=i("m4/l"),r=i("aM7D"),o=i("Vs7R"),a=i("p9TX"),s=i("qzbU"),u=i("vMqJ"),l=i("C6dT"),h=i("DHte"),c=i("aCit"),p=i("Wglt"),d=i("0FpR"),f=i("hD5A"),g=i("TGuK"),m=function(t){function e(){var e=t.call(this)||this;return e.className="PercentSeriesDataItem",e.applyTheme(),e}return n.c(e,t),e.prototype.uidAttr=function(){return this.slice.uidAttr()},e.prototype.hide=function(e,i,n,r){return r||(r=["value"]),t.prototype.hide.call(this,e,i,0,r)},e.prototype.setVisibility=function(e,i){i||(e?this.setWorkingValue("value",this.values.value.value,0,0):this.setWorkingValue("value",0,0,0)),t.prototype.setVisibility.call(this,e,i)},e.prototype.show=function(e,i,n){return n||(n=["value"]),t.prototype.show.call(this,e,i,n)},Object.defineProperty(e.prototype,"category",{get:function(){return this.properties.category},set:function(t){this.setProperty("category",t)},enumerable:!0,configurable:!0}),e.prototype.createLegendMarker=function(t){this.component.createLegendMarker(t,this)},Object.defineProperty(e.prototype,"legendDataItem",{get:function(){return this._legendDataItem},set:function(t){this._legendDataItem=t,t.label&&(t.label.dataItem=this),t.valueLabel&&(t.valueLabel.dataItem=this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tick",{get:function(){var t=this;if(!this._tick){var e=this.component.ticks.create();this._tick=e,this._disposers.push(e),e.parent=this.component.ticksContainer,this._disposers.push(new f.b(function(){t.component&&t.component.ticks.removeValue(e)})),this.addSprite(e),e.visible=this.visible}return this._tick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){var t=this;if(!this._label){var e=this.component.labels.create();this._label=e,this._disposers.push(e),e.parent=this.component.labelsContainer,this._disposers.push(new f.b(function(){t.component&&t.component.labels.removeValue(e)})),this.addSprite(e),e.visible=this.visible}return this._label},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"slice",{get:function(){var t=this;if(!this._slice){var e=this.component,i=e.slices.create();this._slice=i,this._disposers.push(i),i.parent=e.slicesContainer,this._disposers.push(new f.b(function(){e.slices.removeValue(i)})),this.addSprite(i),i.visible=this.visible,e.itemsFocusable()?(i.role="menuitem",i.focusable=!0):(i.role="listitem",i.focusable=!1),i.focusable&&(i.events.once("focus",function(n){i.readerTitle=e.populateString(e.itemReaderText,t)},void 0,!1),i.events.once("blur",function(t){i.readerTitle=""},void 0,!1)),i.hoverable&&(i.events.once("over",function(n){i.readerTitle=e.populateString(e.itemReaderText,t)},void 0,!1),i.events.once("out",function(t){i.readerTitle=""},void 0,!1))}return this._slice},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hiddenInLegend",{get:function(){return this.properties.hiddenInLegend},set:function(t){this.setProperty("hiddenInLegend",t)},enumerable:!0,configurable:!0}),e}(r.b),y=function(t){function e(){var e=t.call(this)||this;e.className="PercentSeries",e._addAllDataItems=!1,e.colors=new h.a,e.colors.step=1,e.isMeasured=!0,e.calculatePercent=!0;var i=e.createChild(l.a);i.shouldClone=!1,i.isMeasured=!1,e.slicesContainer=i;var n=e.createChild(l.a);n.shouldClone=!1,n.isMeasured=!1,n.layout="none",e.ticksContainer=n;var r=e.createChild(l.a);return r.shouldClone=!1,r.isMeasured=!1,r.layout="none",e.labelsContainer=r,e.alignLabels=!1,e.bulletsContainer.toFront(),e.skipFocusThreshold=50,e.defaultState.transitionEasing=d.sinOut,e.itemReaderText="{category}: {value.percent.formatNumber('#.#')}%",e.applyTheme(),e}return n.c(e,t),e.prototype.createSlice=function(){return new o.a},e.prototype.createTick=function(){return new s.a},e.prototype.createLabel=function(){return new a.a},Object.defineProperty(e.prototype,"slices",{get:function(){if(!this._slices){var t=this.createSlice();t.applyOnClones=!0,this._disposers.push(t),this.initSlice(t),this._slices=new u.e(t),this._disposers.push(new u.c(this._slices))}return this._slices},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ticks",{get:function(){if(!this._ticks){var t=this.createTick();t.applyOnClones=!0,this._disposers.push(t),this.initTick(t),this._ticks=new u.e(t),this._disposers.push(new u.c(this._ticks))}return this._ticks},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"labels",{get:function(){if(!this._labels){var t=this.createLabel();t.applyOnClones=!0,this._disposers.push(t),this.initLabel(t),this._labels=new u.e(t),this._disposers.push(new u.c(this._labels))}return this._labels},enumerable:!0,configurable:!0}),e.prototype.createDataItem=function(){return new m},e.prototype.initSlice=function(t){},e.prototype.initLabel=function(t){t.text="{category}: {value.percent.formatNumber('#.0')}%",t.isMeasured=!1,t.padding(5,5,5,5)},e.prototype.initTick=function(t){},e.prototype.validateDataElement=function(e){var i=e.slice;i&&(void 0==i.fill&&(i.fill=this.colors.getIndex(e.index*this.colors.step)),void 0==i.stroke&&(i.stroke=this.colors.getIndex(e.index*this.colors.step))),t.prototype.validateDataElement.call(this,e),i&&e.bullets.each(function(t,e){void 0==e.fill&&(e.fill=i.fill),void 0==e.stroke&&(e.stroke=i.stroke)})},e.prototype.validateData=function(){t.prototype.validateData.call(this),this.chart&&this.chart.feedLegend()},e.prototype.arrangeLabels=function(t){for(var e=0,i=t.length;e<i;e++){var n=t[e].label;if(n){var r=this.getNextLabel(e+1,t);n.invalid&&n.validate();var o=n.pixelY+n.measuredHeight;r&&r.y<o&&(r.y=o)}}},e.prototype.arrangeLabels2=function(t){for(var e=this.maxHeight/2,i=t.length-1;i>=0;i--){var n=t[i].label;n&&n.pixelY+n.measuredHeight>e&&(n.y=e-n.measuredHeight,e=n.y)}},e.prototype.getNextLabel=function(t,e){if(e.length>=t){var i=e[t];if(i)return i.label?i.label:this.getNextLabel(t+1,e)}},Object.defineProperty(e.prototype,"colors",{get:function(){return this.getPropertyValue("colors")},set:function(t){this.setPropertyValue("colors",t,!0)},enumerable:!0,configurable:!0}),e.prototype.createLegendMarker=function(t,e){p.each(t.children.iterator(),function(i){var n=e.slice;i.defaultState.properties.fill=n.fill,i.defaultState.properties.stroke=n.stroke,i.defaultState.properties.fillOpacity=n.fillOpacity,i.defaultState.properties.strokeOpacity=n.strokeOpacity,i.fill=n.fill,i.stroke=n.stroke,i.fillOpacity=n.fillOpacity,i.strokeOpacity=n.strokeOpacity,void 0==i.fill&&(i.__disabled=!0);var r=t.dataItem;r.color=n.fill,r.colorOrig=n.fill,n.events.on("propertychanged",function(t){"fill"==t.property&&(i.__disabled=!1,i.isActive||(i.fill=n.fill),i.defaultState.properties.fill=n.fill,r.color=n.fill,r.colorOrig=n.fill),"stroke"==t.property&&(i.isActive||(i.stroke=n.stroke),i.defaultState.properties.stroke=n.stroke)},void 0,!1)})},e.prototype.handleSliceScale=function(t){var e=this,i=t.target.dataItem;p.each(i.bullets.iterator(),function(t){var i=t[1];e.positionBullet(i)})},e.prototype.handleSliceMove=function(t){},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.slices.template.copyFrom(e.slices.template),this.labels.template.copyFrom(e.labels.template),this.ticks.template.copyFrom(e.ticks.template)},Object.defineProperty(e.prototype,"alignLabels",{get:function(){return this.getPropertyValue("alignLabels")},set:function(t){this.setAlignLabels(t)},enumerable:!0,configurable:!0}),e.prototype.setAlignLabels=function(t){this.setPropertyValue("alignLabels",t,!0)},e}(r.a);c.b.registeredClasses.PercentSeries=y,c.b.registeredClasses.PercentSeriesDataItem=m,g.c.push({relevant:g.b.maybeXS,state:function(t,e){if(t instanceof y){var i=t.states.create(e);return t.labels.template.states.create(e).properties.disabled=!0,t.ticks.template.states.create(e).properties.disabled=!0,i}return null}})},AEc5:function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},AaJ4:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("Vs7R"),o=i("aCit"),a=i("8ZqG"),s=i("MIZb"),u=i("TGuK"),l=function(t){function e(){var e=t.call(this)||this;e.className="Grid",e.element=e.paper.add("path"),e.location=.5,e.isMeasured=!1;var i=new s.a;return e.stroke=i.getFor("grid"),e.pixelPerfect=!0,e.strokeOpacity=.15,e.fill=Object(a.c)(),e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"location",{get:function(){return this.getPropertyValue("location")},set:function(t){this.setPropertyValue("location",t,!0)},enumerable:!0,configurable:!0}),e.prototype.setDisabled=function(e){var i=t.prototype.setDisabled.call(this,e);return this.axis&&this.axis.invalidateDataItems(),i},e}(r.a);o.b.registeredClasses.Grid=l,u.c.push({relevant:u.b.maybeXS,state:function(t,e){if(t instanceof l){var i=t.states.create(e);return i.properties.disabled=!0,i}return null}})},AiPC:function(t,e,i){i("YJIw")("Uint16",2,function(t){return function(e,i,n){return t(this,e,i,n)}})},Ax3V:function(t,e,i){var n=i("T9LF").document;t.exports=n&&n.documentElement},AzI1:function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},"B+tY":function(t,e,i){var n=i("Gb1H");n(n.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},B2g9:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("FUSD"),o=i("vSjZ");n(n.P+n.F*/Version\/10\.\d+(\.\d+)? Safari\//.test(o),"String",{padEnd:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},BEgH:function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("aGXA"),o=i("Vs7R"),a=i("aCit"),s=i("MIZb"),u=i("hGwe"),l=i("Mtpk"),h=function(t){function e(){var e=t.call(this)||this;e.className="ZoomOutButton",e.padding(9,9,9,9),e.showSystemTooltip=!0;var i=new s.a,n=e.background;n.cornerRadius(20,20,20,20),n.fill=i.getFor("primaryButton"),n.stroke=i.getFor("primaryButtonStroke"),n.strokeOpacity=0,n.states.getKey("hover").properties.fill=i.getFor("primaryButtonHover"),n.states.getKey("down").properties.fill=i.getFor("primaryButtonActive");var r=new o.a;r.element=e.paper.add("path");var a=u.moveTo({x:0,y:0});return a+=u.lineTo({x:11,y:0}),r.path=a,r.pixelPerfect=!0,r.padding(8,3,8,3),r.stroke=i.getFor("primaryButtonText"),e.icon=r,e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),l.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Zoom Out"))},e}(r.a);a.b.registeredClasses.ZoomOutButton=h},BTtL:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{signbit:function(t){return(t=+t)!=t?t:0==t?1/t==1/0:t>0}})},BYDm:function(t,e,i){"use strict";var n,r=i("dstF")(0),o=i("wDk4"),a=i("kFp5"),s=i("bdjS"),u=i("0YcW"),l=i("DvJ+"),h=i("AEc5"),c=i("rFJX"),p=a.getWeak,d=Object.isExtensible,f=u.ufstore,g={},m=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(t){if(l(t)){var e=p(t);return!0===e?f(c(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return u.def(c(this,"WeakMap"),t,e)}},b=t.exports=i("/Xnt")("WeakMap",m,y,u,!0,!0);h(function(){return 7!=(new b).set((Object.freeze||Object)(g),7).get(g)})&&(s((n=u.getConstructor(m,"WeakMap")).prototype,y),a.NEED=!0,r(["delete","has","get","set"],function(t){var e=b.prototype,i=e[t];o(e,t,function(e,r){if(l(e)&&!d(e)){this._f||(this._f=new n);var o=this._f[t](e,r);return"set"==t?this:o}return i.call(this,e,r)})}))},BmDP:function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("qzbU"),o=i("hD5A"),a=i("aCit"),s=function(t){function e(){var e=t.call(this)||this;return e._label=new o.d,e._slice=new o.d,e.className="PieTick",e.element=e.paper.add("polyline"),e._disposers.push(e._label),e._disposers.push(e._slice),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.slice,i=this.label,n=e.dataItem.component;if(e&&e.radius>0&&i&&i.text){var r=e.dx+e.slice.dx+e.pixelX+e.ix*e.radius*e.scale,o=e.dy+e.slice.dy+e.pixelY+e.iy*e.radiusY*e.scale,a=void 0,s=void 0,u=void 0,l=void 0;if(n.alignLabels)a=i.pixelX-this.length,s=i.pixelY,u=i.pixelX,l=s,"right"==i.horizontalCenter&&(u=(a+=2*this.length)-this.length);else{var h=i.pixelRadius(e.radius);u=a=r+h*e.ix,l=s=o+h*e.iy}this.element.attr({points:[r,o,a,s,u,l]})}},Object.defineProperty(e.prototype,"slice",{get:function(){return this._slice.get()},set:function(t){this._slice.set(t,new o.c([t.events.on("transformed",this.invalidate,this),t.events.on("validated",this.invalidate,this)]))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return this._label.get()},set:function(t){this._label.set(t,t.events.on("transformed",this.invalidate,this,!1))},enumerable:!0,configurable:!0}),e}(r.a);a.b.registeredClasses.PieTick=s},C2uA:function(t,e,i){i("YJIw")("Int16",2,function(t){return function(e,i,n){return t(this,e,i,n)}})},C6dT:function(t,e,i){"use strict";i.d(e,"a",function(){return b});var n=i("m4/l"),r=i("Vs7R"),o=i("ux7t"),a=i("vMqJ"),s=i("hD5A"),u=i("+qIf"),l=i("GtDR"),h=i("tjMS"),c=i("aCit"),p=i("MIZb"),d=i("Wglt"),f=i("hJ5i"),g=i("Gg2j"),m=i("Mtpk"),y=i("Rpw0"),b=function(t){function e(){var e=t.call(this)||this;return e._childrenByLayout=[],e._childrenDisposers=new u.a,e.hasFocused=!1,e.setStateOnSprites=[],e.layoutInvalid=!1,e._absoluteWidth=0,e._absoluteHeight=0,e._shouldBeReady=[],e.className="Container",e._element=e.paper.addGroup("g"),e.group.add(e.element),e.setPropertyValue("pixelPerfect",!1),e.setPropertyValue("layout","absolute"),e.setPropertyValue("fixedWidthGrid",!1),e.setPropertyValue("verticalCenter","none"),e.setPropertyValue("horizontalCenter","none"),e._positionPrecision=4,e._disposers.push(new u.b(e._childrenDisposers)),e.children.events.on("inserted",e.handleChildAdded,e),e.children.events.on("removed",e.handleChildRemoved,e),e.applyTheme(),e}return n.c(e,t),e.prototype.handleChildAdded=function(t){this.processChild(t.newValue)},e.prototype.processChild=function(t){try{this._childrenDisposers.insertKey(t.uid,new s.c([t.events.on("transformed",this.handleChildTransform,this),t.events.on("zIndexChanged",this.sortAndAdd,this)]))}catch(t){}this.element&&!t.disabled&&this.element.add(t.group);t.parent=this,t.paper=this.paper,this.dispatchImmediately("childadded",{type:"childadded",newValue:t}),this.invalidate()},e.prototype.sortAndAdd=function(){this.sortChildren(),this.addChildren()},e.prototype.handleChildRemoved=function(t){var e=t.oldValue;(this._childrenDisposers.removeKey(e.uid),this.element)&&this.element.removeElement(e.group);e.isMeasured&&this.invalidateLayout(),this.dispatchImmediately("childremoved",{type:"childremoved",oldValue:e})},e.prototype.handleChildTransform=function(t){t.target.isMeasured&&this.invalidateLayout()},e.prototype.invalidateLayout=function(){this.layoutInvalid||this.disabled||this.isTemplate||"none"==this.layout||this.__disabled||(this.layoutInvalid=!0,c.b.addToInvalidLayouts(this),y.b.requestFrame())},e.prototype.invalidate=function(){t.prototype.invalidate.call(this),this.invalidateLayout()},e.prototype.deepInvalidate=function(){t.prototype.invalidate.call(this),f.each(this._childrenByLayout,function(t){t instanceof e?t.deepInvalidate():t.invalidate()}),this.invalidateLayout()},Object.defineProperty(e.prototype,"children",{get:function(){return this._children||(this._children=new a.b),this._children},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minWidth",{get:function(){return this.getPropertyValue("minWidth")},set:function(t){this.setPropertyValue("minWidth",t)&&this.invalidateLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minHeight",{get:function(){return this.getPropertyValue("minHeight")},set:function(t){this.setPropertyValue("minHeight",t)&&this.invalidateLayout()},enumerable:!0,configurable:!0}),e.prototype.removeElement=function(){},e.prototype.sortChildren=function(){var t=this;if(this._childrenByLayout=[],"none"!=this.layout&&"absolute"!=this.layout&&this.layout){var e=[],i=[];d.each(this.children.iterator(),function(n){"horizontal"==t.layout||"grid"==t.layout?m.isNumber(n.percentWidth)?i.push(n):e.push(n):"vertical"==t.layout&&m.isNumber(n.percentHeight)?i.push(n):e.push(n)}),this._childrenByLayout=e.concat(i)}else this._childrenByLayout=this.children.values;this.calculateRelativeSize()},e.prototype.calculateRelativeSize=function(){var t=this,e=0,i=0;f.each(this._childrenByLayout,function(t){t.isMeasured&&(m.isNumber(t.percentWidth)&&(e+=t.percentWidth),m.isNumber(t.percentHeight)&&(i+=t.percentHeight))}),f.each(this._childrenByLayout,function(n){n.isMeasured&&("horizontal"==t.layout&&(m.isNumber(n.percentWidth)&&(n.relativeWidth=n.percentWidth/e),m.isNumber(n.percentHeight)&&(n.relativeHeight=n.percentHeight/100)),"vertical"==t.layout&&(m.isNumber(n.percentHeight)&&(n.relativeHeight=n.percentHeight/i),m.isNumber(n.percentWidth)&&(n.relativeWidth=n.percentWidth/100)),"grid"==t.layout&&(m.isNumber(n.percentHeight)&&(n.relativeHeight=n.percentHeight/100),m.isNumber(n.percentWidth)&&(n.relativeWidth=n.percentWidth/100))),"absolute"!=t.layout&&n.isMeasured||(m.isNumber(n.percentWidth)&&(n.relativeWidth=n.percentWidth/100),m.isNumber(n.percentHeight)&&(n.relativeHeight=n.percentHeight/100))})},e.prototype.addChildren=function(){if(this.element){var t=f.copy(this.children.values),e=t.map(function(t,e){return{idx:e,data:t}});e.sort(function(t,e){var i=t.data.zIndex||0,n=e.data.zIndex||0;return i<n?-1:i>n?1:t.idx-e.idx}),t=e.map(function(t){return t.data});var i=this.element,n=!0;if(i.node&&i.node.childNodes)for(var r=0,o=i.node.childNodes.length;r<o;r++)if(i.node.childNodes[r]!=t[r].group.node){n=!1;break}n||(f.each(t,function(t){t.group&&i.add(t.group)}),this._background&&this.group.addToBack(this._background.group),this.invalidateLayout())}},e.prototype.createChild=function(t){var e=new t;return e.parent=this,e},e.prototype.removeChildren=function(){for(;this.children.length>0;){var t=this.children.getIndex(0);t.parent=void 0,this.children.removeValue(t)}},e.prototype.disposeChildren=function(){for(;this.children.length>0;){var t=this.children.getIndex(0);t.dispose(),this.children.removeValue(t)}},Object.defineProperty(e.prototype,"background",{get:function(){return this._background||(this._background=this.createBackground(),this.processBackground()),this._background},set:function(t){this._background&&this.background!=t&&this.removeDispose(this._background),t&&(this._background=t,this._disposers.push(t),this.processBackground())},enumerable:!0,configurable:!0}),e.prototype.handleGlobalScale=function(){t.prototype.handleGlobalScale.call(this),this.children.each(function(t){t.handleGlobalScale()})},e.prototype.createBackground=function(){return new l.a},e.prototype.processBackground=function(){var t=this._background;t&&(t.isMeasured=!1,this._background.fill=(new p.a).getFor("background"),t.parent=this,t.isMeasured=!1,this.children.removeValue(t),this._disposers.push(t),this.group.addToBack(this._background.group))},e.prototype.validateLayout=function(){var t=this;c.b.removeFromInvalidLayouts(this),this.layoutInvalid=!1,this._availableWidth=this.innerWidth,this._availableHeight=this.innerHeight;var e=0,i=0,n=!0;this.children&&(this.sortChildren(),f.each(this._childrenByLayout,function(r){var o,a;if(m.isNumber(r.relativeWidth)?(o=g.round(t._availableWidth*r.relativeWidth,2),"horizontal"==t.layout&&(o-=r.pixelMarginRight+r.pixelMarginLeft)):"horizontal"==t.layout&&r.invalid&&r.validate(),m.isNumber(r.relativeHeight)?(a=g.round(t._availableHeight*r.relativeHeight,2),"vertical"==t.layout&&(a-=r.pixelMarginTop+r.pixelMarginBottom)):"vertical"==t.layout&&r.invalid&&r.validate(),0==r.invalid){if(m.isNumber(r.relativeWidth)&&(r.maxWidth=o),m.isNumber(r.relativeHeight)&&(r.maxHeight=a),r.isMeasured){"horizontal"==t.layout&&(m.isNumber(r.percentWidth)||r.measuredWidth>0&&(t._availableWidth-=r.measuredWidth+r.pixelMarginLeft+r.pixelMarginRight)),"vertical"==t.layout&&(m.isNumber(r.percentHeight)||r.measuredHeight>0&&(t._availableHeight-=r.measuredHeight+r.pixelMarginTop+r.pixelMarginBottom));var s=r.measuredWidth,u=r.measuredHeight;"none"!=r.align&&(s+=r.pixelMarginLeft+r.pixelMarginRight),"none"!=r.valign&&(u+=r.pixelMarginTop+r.pixelMarginBottom),e=Math.max(e,s),i=Math.max(i,u)}}else r.isMeasured&&(m.isNumber(r.relativeWidth)&&r.maxWidth!=o&&(r.maxWidth=o,n=!1),m.isNumber(r.relativeHeight)&&r.maxHeight!=a&&(r.maxHeight=a,n=!1))})),this._absoluteWidth=e,this._absoluteHeight=i,n&&this.arrange()},e.prototype.arrange=function(){var t,e,i,n,r,o,a,s,u,l,c,p=this,y=this.children,b=0,v=0,_=g.max(this.innerWidth,this._absoluteWidth),x=g.max(this.innerHeight,this._absoluteHeight),P=this.pixelPaddingLeft,w=this.pixelPaddingRight,O=this.pixelPaddingTop,S=this.pixelPaddingBottom,T=0,C=0,k=0,I=0,M=[],j=[],V=this.maxWidth,D=this.maxHeight,E=this.minWidth,F=this.minHeight,N=f.copy(y.values);if(this.reverseOrder&&N.reverse(),"grid"==this.layout){o=V,r=1;for(var R=0,A=N.length;R<A;R++){if((H=N[R]).isMeasured&&!H.disabled&&!H.__disabled){var L=H.measuredWidth;L<o&&(o=L),L>r&&(r=L)}}o=g.fitToRange(o,1,V),r=g.fitToRange(r,1,V),a=this.fixedWidthGrid?V/r:V/o,a=g.max(1,Math.floor(a)),a=g.min(this.maxColumns,a),M=this.getColumnWidth(N,a,r)}for(R=0,A=N.length;R<A;R++){var H;if(!(H=N[R]).isMeasured||H.disabled||H.__disabled)H.validatePosition();else{var B=void 0,G=void 0,W=H.pixelMarginLeft,z=H.pixelMarginRight,U=H.pixelMarginTop,Y=H.pixelMarginBottom,X=H.measuredWidth,K=H.measuredHeight,J=void 0,Z=void 0,q=void 0,Q=void 0;switch(this.layout){case"none":break;case"absolute":switch(H.align){case"left":B=W-H.maxLeft;break;case"center":B=(_-X)/2-H.maxLeft;break;case"right":B=_-z-H.maxRight;break;default:H.x instanceof h.a||(B=H.pixelX)}switch(H.valign){case"top":G=U-H.maxTop;break;case"middle":G=(x-K)/2-H.maxTop;break;case"bottom":G=x-Y-H.maxBottom;break;default:H.y instanceof h.a||(G=H.pixelY)}break;case"vertical":switch(H.align){case"left":B=W-H.maxLeft;break;case"center":B=(_-X)/2-H.maxLeft;break;case"right":B=_-z-H.maxRight;break;default:B=H.pixelX}C=(G=C+U-H.maxTop)+H.maxBottom+Y;break;case"horizontal":switch(H.valign){case"top":G=U-H.maxTop;break;case"middle":G=(x-K)/2-H.maxTop;break;case"bottom":G=x-Y-H.maxBottom;break;default:G=H.pixelY}T=(B=T+W-H.maxLeft)+H.maxRight+z;break;case"grid":switch(B=T+W-H.maxLeft,H.valign){case"top":G=C+U-H.maxTop;break;case"middle":G=C+(x-K)/2-H.maxTop;break;case"bottom":G=C+x-Y-H.maxBottom;break;default:G=C-H.maxTop}T+=M[I],j[k]=g.max(j[k],K);var $=M[++I];if(m.isNumber($)||($=r),T>g.min(this.innerWidth,V)-$+1&&I<a){a=I,T=0,C=0,k=0,I=0,M=this.getColumnWidth(N,a,r),j=[],R=-1;continue}I>=a&&(I=0,C+=j[k],k++,T=0)}"none"!==this.layout&&(H.moveTo({x:B,y:G}),J=B+H.maxLeft-W,Z=B+H.maxRight+z,q=G+H.maxTop-U,Q=G+H.maxBottom+Y,(Z>e||!m.isNumber(e))&&(e=Z),(J<t||!m.isNumber(t))&&(t=J),(q<i||!m.isNumber(i))&&(i=q),(Q>n||!m.isNumber(n))&&(n=Q),(Z>u||!m.isNumber(u))&&(u=Z),(J<s||!m.isNumber(s))&&(s=J),(q<l||!m.isNumber(l))&&(l=q),(Q>c||!m.isNumber(c))&&(c=c))}}if("none"==this.layout){var tt=this.bbox;t=tt.x,e=tt.x+tt.width,i=tt.y,n=tt.y+tt.height}m.isNumber(t)||(t=0,s=0),m.isNumber(e)||(u=e=this._availableWidth),m.isNumber(i)||(i=0,l=0),m.isNumber(n)||(c=n=this._availableHeight),m.isNumber(l)||(l=0),m.isNumber(c)||(c=l),m.isNumber(s)||(s=0),m.isNumber(u)||(u=s),b=e-t,v=n-i,m.isNumber(this.relativeWidth)&&(t=0,e=b=V-P-w),m.isNumber(this.relativeHeight)&&(i=0,n=v=D-O-S),m.isNumber(this._pixelWidth)&&(t=0,b=this._pixelWidth-P-w),m.isNumber(E)&&b<E&&(t=0,b=this.minWidth-P-w),m.isNumber(this._pixelHeight)&&(i=0,v=this._pixelHeight-O-S),m.isNumber(F)&&v<F&&(i=0,v=F-O-S);var et=u-s,it=c-l;if("none"!=this.layout&&(this.contentAlign||this.contentValign)&&y.length>0){var nt,rt,ot=b,at=v;ot<et&&(ot=et),at<it&&(at=it),"center"==this.contentAlign&&(nt=(ot-et)/2),"right"==this.contentAlign&&(nt=ot-et),"middle"==this.contentValign&&(rt=(at-it)/2),"bottom"==this.contentValign&&(rt=at-it),m.isNumber(nt)&&d.each(y.iterator(),function(t){var e=t.maxLeft,i=nt;"horizontal"==p.layout&&(t.x=t.pixelX+i),"grid"==p.layout&&(t.x=t.pixelX+i),"vertical"==p.layout&&(i+=t.pixelMarginLeft,"none"==t.align&&(t.x=i-e)),"absolute"==p.layout&&(i+=t.pixelMarginLeft,"none"==t.align&&(t.x=i-e))}),m.isNumber(rt)&&d.each(y.iterator(),function(t){var e=t.maxTop,i=rt;"horizontal"==p.layout&&(i+=t.pixelMarginTop,"none"==t.valign&&(t.y=i-e)),"grid"==p.layout&&(i+=t.pixelMarginTop,t.y=i-e),"vertical"==p.layout&&(t.y=t.pixelY+i),"absolute"==p.layout&&(i+=t.pixelMarginTop,"none"==t.valign&&(t.y=i-e))})}var st=this.bbox;b=g.max(b,E),v=g.max(v,F),this.contentWidth=b,this.contentHeight=v,b=g.min(b,V),v=g.min(v,D),this._bbox={x:t,y:i,width:b,height:v};var ut=this.maxLeft,lt=this.maxTop,ht=this.maxBottom,ct=this.maxRight;if(this.measure(),(ut!=this.maxLeft||ct!=this.maxRight||lt!=this.maxTop||ht!=this.maxBottom)&&this.events.isEnabled("transformed")){var pt={type:"transformed",target:this};st&&(pt.dummyData=st.width+" "+b+"  "+st.height+" "+v),this.events.dispatchImmediately("transformed",pt)}},e.prototype.updateCenter=function(){t.prototype.updateCenter.call(this),this.updateBackground()},e.prototype.updateBackground=function(){var t=this._background;t&&(t.x=this.maxLeft,t.y=this.maxTop,t.width=this.maxRight-this.maxLeft,t.height=this.maxBottom-this.maxTop)},e.prototype.getColumnWidth=function(t,e,i){var n=this,r=[],o=0;return f.each(t,function(t){t.isMeasured&&(n.fixedWidthGrid?r[o]=i:r[o]=g.max(r[o],t.measuredWidth+t.pixelMarginRight+t.pixelMarginLeft),++o==e&&(o=0))}),r},Object.defineProperty(e.prototype,"layout",{get:function(){return this.getPropertyValue("layout")},set:function(t){this.setPropertyValue("layout",t)&&this.invalidateLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contentValign",{get:function(){return this.getPropertyValue("contentValign")},set:function(t){this.setPropertyValue("contentValign",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contentAlign",{get:function(){return this.getPropertyValue("contentAlign")},set:function(t){this.setPropertyValue("contentAlign",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fixedWidthGrid",{get:function(){return this.getPropertyValue("fixedWidthGrid")},set:function(t){this.setPropertyValue("fixedWidthGrid",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxColumns",{get:function(){return this.getPropertyValue("maxColumns")},set:function(t){this.setPropertyValue("maxColumns",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"reverseOrder",{get:function(){return this.getPropertyValue("reverseOrder")},set:function(t){this.setPropertyValue("reverseOrder",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"setStateOnChildren",{get:function(){return this.getPropertyValue("setStateOnChildren")},set:function(t){this.setPropertyValue("setStateOnChildren",t,!0)},enumerable:!0,configurable:!0}),e.prototype.fitsToBounds=function(t){var e=t.x,i=t.y;return e>=-.5&&e<=this.pixelWidth+.5&&i>=-.5&&i<=this.pixelHeight+.5},e.prototype.copyFrom=function(e){var i=this;t.prototype.copyFrom.call(this,e),this.layout=e.layout,this.setStateOnChildren=e.setStateOnChildren,e._background&&(this.background=e._background.clone(),this.background.copyFrom(e._background)),d.each(e.children.iterator(),function(t){t.shouldClone&&(t.clone().parent=i)})},Object.defineProperty(e.prototype,"preloader",{get:function(){var t=this._preloader;return t||(this.parent?this.parent.preloader:void 0)},set:function(t){this._preloader&&this.removeDispose(this._preloader),this._preloader=t,t&&(t.parent=this.tooltipContainer,this._disposers.push(t))},enumerable:!0,configurable:!0}),e.prototype.setPaper=function(e){var i=this,n=t.prototype.setPaper.call(this,e);return n&&(this._background&&(this._background.paper=e,this._background.topParent=this.topParent),this.children.each(function(t){t.setPaper(e),t.topParent=i.topParent})),n},e.prototype.removeFromInvalids=function(){t.prototype.removeFromInvalids.call(this),c.b.removeFromInvalidLayouts(this)},e.prototype.setDataItem=function(e){this._dataItem!=e&&d.each(this.children.iterator(),function(t){t.dataItem=e}),t.prototype.setDataItem.call(this,e)},e.prototype.measureElement=function(){this.disabled||this.isTemplate||"none"==this.layout||this.__disabled||this.validateLayout()},e.prototype.getTooltipX=function(){return t.prototype.getTooltipX.call(this)},e.prototype.getTooltipY=function(){return t.prototype.getTooltipY.call(this)},Object.defineProperty(e.prototype,"fontFamily",{get:function(){return this.getPropertyValue("fontFamily")},set:function(t){this.setPropertyValue("fontFamily",t,!0)&&(this.setSVGAttribute({"font-family":t}),this.invalidateLabels())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fontSize",{get:function(){return this.getPropertyValue("fontSize")},set:function(t){this.setPropertyValue("fontSize",t,!0)&&(this.setSVGAttribute({"font-size":t}),this.invalidateLabels())},enumerable:!0,configurable:!0}),e.prototype.invalidateLabels=function(){this.children.each(function(t){t.hardInvalidate?t.hardInvalidate():t instanceof e&&t.invalidateLabels()})},Object.defineProperty(e.prototype,"fontWeight",{get:function(){return this.getPropertyValue("fontWeight")},set:function(t){this.setPropertyValue("fontWeight",t),this.setSVGAttribute({"font-weight":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textDecoration",{get:function(){return this.getPropertyValue("textDecoration")},set:function(t){this.setPropertyValue("textDecoration",t),this.setSVGAttribute({"text-decoration":t})},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._background&&this._background.dispose(),this._shouldBeReady=[],this.disposeChildren(),t.prototype.dispose.call(this)},e.prototype.setState=function(e,i,n){var r=e;return e instanceof o.a&&(r=e.name),this.setStateOnChildren&&d.each(this.children.iterator(),function(t){t.setState(r,i,n),"active"!=r&&(t.isActive=!1)}),this._background&&this._background.setState(r),this.setStateOnSprites.length&&f.each(this.setStateOnSprites,function(t){t.setState(r,i,n)}),t.prototype.setState.call(this,e,i,n)},e.prototype.setActive=function(e){t.prototype.setActive.call(this,e),this._background&&(this._background.isActive=e)},e.prototype.dispatchReady=function(){var e=this;if(!this.isReady()&&!this.isDisposed()){var i=!0;this.children.each(function(t){t.__disabled||t.disabled||t.isReady()||(i=!1)}),f.each(this._shouldBeReady,function(t){t.__disabled||t.disabled||t.isReady()||(i=!1)}),i?t.prototype.dispatchReady.call(this):c.b.events.once("exitframe",function(){e.dispatchReady(),y.b.requestFrame()},void 0,!1)}},e}(r.a);c.b.registeredClasses.Container=b},C84C:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("ohjg"),o=i("aCit"),a=function(t){function e(){var e=t.call(this)||this;return e.className="LightenFilter",e.feColorMatrix=e.paper.add("feColorMatrix"),e.feColorMatrix.attr({type:"matrix"}),e.filterPrimitives.push(e.feColorMatrix),e.lightness=0,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"lightness",{get:function(){return this.properties.lightness},set:function(t){this.properties.lightness=t;var e=t+1;this.feColorMatrix.attr({values:e+" 0 0 0 0 0 "+e+" 0 0 0 0 0 "+e+" 0 0 0 0 0 1 0"})},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.LightenFilter=a},CTEm:function(t,e,i){"use strict";i.d(e,"a",function(){return p});var n=i("m4/l"),r=i("P/bD"),o=i("Tjl+"),a=i("MipW"),s=i("aCit"),u=i("ScGY"),l=i("Qkdp"),h=i("v9UT"),c=i("Mtpk"),p=function(t){function e(){var e=t.call(this)||this;return e._negativeBase=0,e._numberFormat="#,###.#####",e._outputFormat="svg",e.className="NumberFormatter",e.applyTheme(),e}return n.c(e,t),e.prototype.dispose=function(){t.prototype.dispose.call(this),this.language&&this.language.dispose()},Object.defineProperty(e.prototype,"language",{get:function(){return this._language||(this.sprite?this._language=this.sprite.language:this._language=new r.a),this._language},set:function(t){this._language=t},enumerable:!0,configurable:!0}),e.prototype.format=function(t,e){void 0!==e&&"number"!==e.toLowerCase()||(e=this._numberFormat),e=h.cleanFormat(e);var i,n=this.parseFormat(e,this.language),r=Number(t);return(i=r>this._negativeBase?n.positive:r<this._negativeBase?n.negative:n.zero).template.split(u.d).join(this.applyFormat(r,i))},e.prototype.parseFormat=function(t,e){var i=this,n=this.getCache(t);if(c.hasValue(n))return n;var r={positive:{thousands:{active:-1,passive:-1,interval:-1,separator:e.translateEmpty("_thousandSeparator")},decimals:{active:-1,passive:-1,separator:e.translateEmpty("_decimalSeparator")},template:"",source:"",parsed:!1},negative:{thousands:{active:-1,passive:-1,interval:-1,separator:e.translateEmpty("_thousandSeparator")},decimals:{active:-1,passive:-1,separator:e.translateEmpty("_decimalSeparator")},template:"",source:"",parsed:!1},zero:{thousands:{active:-1,passive:-1,interval:-1,separator:e.translateEmpty("_thousandSeparator")},decimals:{active:-1,passive:-1,separator:e.translateEmpty("_decimalSeparator")},template:"",source:"",parsed:!1}},o=(t=t.replace("||",u.e)).split("|");return r.positive.source=o[0],void 0===o[2]?r.zero=r.positive:r.zero.source=o[2],void 0===o[1]?r.negative=r.positive:r.negative.source=o[1],l.each(r,function(t,e){if(!e.parsed)if(void 0===i.getCache(e.source)){var n=e.source;"number"===n.toLowerCase()&&(n=i._numberFormat);for(var o=Object(a.b)().chunk(n,!0),s=0;s<o.length;s++){var l=o[s];if(l.text=l.text.replace(u.e,"|"),"value"===l.type){var h=[];if(h=l.text.match(/[#0.,]+[ ]?[abesABES%]?[abesABES‰]?/))if(null===h||""===h[0])e.template+=l.text;else{var p=[];(p=h[0].match(/[abesABES%‰]{2}|[abesABES%‰]{1}$/))&&(e.mod=p[0].toLowerCase(),e.modSpacing=!!h[0].match(/[ ]{1}[abesABES%‰]{1}$/));var d=h[0].split(".");if(""===d[0]);else{e.thousands.active=(d[0].match(/0/g)||[]).length,e.thousands.passive=(d[0].match(/\#/g)||[]).length+e.thousands.active;var f=d[0].split(",");1===f.length||(e.thousands.interval=c.getValue(f.pop()).length,0===e.thousands.interval&&(e.thousands.interval=-1))}void 0===d[1]||(e.decimals.active=(d[1].match(/0/g)||[]).length,e.decimals.passive=(d[1].match(/\#/g)||[]).length+e.decimals.active),e.template+=l.text.split(h[0]).join(u.d)}}else e.template+=l.text}i.setCache(e.source,e),e.parsed=!0}else r[t]=i.getCache(e.source)}),this.setCache(t,r),r},e.prototype.applyFormat=function(t,e){var i=t<0;t=Math.abs(t);var n="",r="",o=e.mod?e.mod.split(""):[];if(-1!==o.indexOf("b")){var a=this.applyPrefix(t,this.bytePrefixes);t=a[0],n=a[1],r=a[2],e.modSpacing&&(r=" "+r)}else if(-1!==o.indexOf("a")){var s=this.applyPrefix(t,t<1?this.smallNumberPrefixes:this.bigNumberPrefixes);t=s[0],n=s[1],r=s[2],e.modSpacing&&(r=" "+r)}else-1!==o.indexOf("%")?(t*=100,r="%"):-1!==o.indexOf("‰")&&(t*=1e3,r="‰");if(-1!==o.indexOf("e")){var u=void 0;u=e.decimals.passive>=0?t.toExponential(e.decimals.passive).split("e"):t.toExponential().split("e"),t=Number(u[0]),r="e"+u[1],e.modSpacing&&(r=" "+r)}else if(0===e.decimals.passive)t=Math.round(t);else if(e.decimals.passive>0){var l=Math.pow(10,e.decimals.passive);t=Math.round(t*l)/l}var c="",p=h.numberToString(t).split("."),d=p[0];if(d.length<e.thousands.active&&(d=Array(e.thousands.active-d.length+1).join("0")+d),e.thousands.interval>0){for(var f=[],g=d.split("").reverse().join(""),m=0,y=d.length;m<=y;m+=e.thousands.interval){var b=g.substr(m,e.thousands.interval).split("").reverse().join("");""!==b&&f.unshift(b)}d=f.join(e.thousands.separator)}c+=d,1===p.length&&p.push("");var v=p[1];return v.length<e.decimals.active&&(v+=Array(e.decimals.active-v.length+1).join("0")),""!==v&&(c+=e.decimals.separator+v),""===c&&(c="0"),0!==t&&i&&-1===o.indexOf("s")&&(c="-"+c),n&&(c=n+c),r&&(c+=r),c},e.prototype.applyPrefix=function(t,e){for(var i=t,n="",r="",o=0,a=e.length;o<a;o++)e[o].number<=t&&(i=0===e[o].number?0:t/e[o].number,n=e[o].prefix,r=e[o].suffix);return[i,n,r]},e.prototype.invalidateSprite=function(){this.sprite&&this.sprite.invalidate()},Object.defineProperty(e.prototype,"numberFormat",{get:function(){return this._numberFormat},set:function(t){this._numberFormat=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"negativeBase",{get:function(){return this._negativeBase},set:function(t){this._negativeBase=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bigNumberPrefixes",{get:function(){return c.hasValue(this._bigNumberPrefixes)||(this._bigNumberPrefixes=[{number:1e3,suffix:this.language.translate("_big_number_suffix_3")},{number:1e6,suffix:this.language.translate("_big_number_suffix_6")},{number:1e9,suffix:this.language.translate("_big_number_suffix_9")},{number:1e12,suffix:this.language.translate("_big_number_suffix_12")},{number:1e15,suffix:this.language.translate("_big_number_suffix_15")},{number:1e18,suffix:this.language.translate("_big_number_suffix_18")},{number:1e21,suffix:this.language.translate("_big_number_suffix_21")},{number:1e24,suffix:this.language.translate("_big_number_suffix_24")}]),this._bigNumberPrefixes},set:function(t){this._bigNumberPrefixes=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"smallNumberPrefixes",{get:function(){return c.hasValue(this._smallNumberPrefixes)||(this._smallNumberPrefixes=[{number:1e-24,suffix:this.language.translate("_small_number_suffix_24")},{number:1e-21,suffix:this.language.translate("_small_number_suffix_21")},{number:1e-18,suffix:this.language.translate("_small_number_suffix_18")},{number:1e-15,suffix:this.language.translate("_small_number_suffix_15")},{number:1e-12,suffix:this.language.translate("_small_number_suffix_12")},{number:1e-9,suffix:this.language.translate("_small_number_suffix_9")},{number:1e-6,suffix:this.language.translate("_small_number_suffix_6")},{number:.001,suffix:this.language.translate("_small_number_suffix_3")}]),this._smallNumberPrefixes},set:function(t){this._smallNumberPrefixes=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bytePrefixes",{get:function(){return c.hasValue(this._bytePrefixes)||(this._bytePrefixes=[{number:0,suffix:this.language.translate("_byte_suffix_B")},{number:1024,suffix:this.language.translate("_byte_suffix_KB")},{number:1048576,suffix:this.language.translate("_byte_suffix_MB")},{number:1073741824,suffix:this.language.translate("_byte_suffix_GB")},{number:1099511627776,suffix:this.language.translate("_byte_suffix_TB")},{number:0x4000000000000,suffix:this.language.translate("_byte_suffix_PB")}]),this._bytePrefixes},set:function(t){this._bytePrefixes=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputFormat",{get:function(){return this._outputFormat},set:function(t){this._outputFormat=t.toLowerCase(),this.invalidateSprite()},enumerable:!0,configurable:!0}),e.prototype.escape=function(t){return t.replace("||",u.e)},e.prototype.unescape=function(t){return t.replace(u.e,"|")},e}(o.a);s.b.registeredClasses.NumberFormatter=p},Cekr:function(t,e,i){"use strict";var n=i("5+SK"),r=i("Wbjh"),o=i("bPwn"),a={};i("Vng0")(a,i("YEtG")("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=n(a,{next:r(1,i)}),o(t,e+" Iterator")}},CnhP:function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("Vs7R"),o=i("aCit"),a=i("Gg2j"),s=i("Mtpk"),u=function(t){function e(){var e=t.call(this)||this;return e.className="RoundedRectangle",e.element=e.paper.add("path"),e.cornerRadius(3,3,3,3),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.innerWidth,i=this.innerHeight;if(s.isNumber(e)&&s.isNumber(i)){var n=a.min(Math.abs(e/2),Math.abs(i/2)),r=a.fitToRange(this.cornerRadiusTopLeft,0,n),o=a.fitToRange(this.cornerRadiusTopRight,0,n),u=a.fitToRange(this.cornerRadiusBottomRight,0,n),l=a.fitToRange(this.cornerRadiusBottomLeft,0,n),h="M"+r+",0 L"+(e-o)+",0"+(" a"+o+","+o+" 0 0 1 "+o+","+o)+(" L"+e+","+(i-u))+(" a"+u+","+u+" 0 0 1 -"+u+","+u)+(" L"+l+","+i)+(" a"+l+","+l+" 0 0 1 -"+l+",-"+l)+(" L0,"+r)+(" a"+r+","+r+" 0 0 1 "+r+",-"+r)+" Z";this.path=h}},e.prototype.cornerRadius=function(t,e,i,n){this.cornerRadiusTopLeft=t,this.cornerRadiusTopRight=e,this.cornerRadiusBottomLeft=i,this.cornerRadiusBottomRight=n},Object.defineProperty(e.prototype,"cornerRadiusTopLeft",{get:function(){return this.getPropertyValue("cornerRadiusTopLeft")},set:function(t){this.setPropertyValue("cornerRadiusTopLeft",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cornerRadiusTopRight",{get:function(){return this.getPropertyValue("cornerRadiusTopRight")},set:function(t){this.setPropertyValue("cornerRadiusTopRight",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cornerRadiusBottomRight",{get:function(){return this.getPropertyValue("cornerRadiusBottomRight")},set:function(t){this.setPropertyValue("cornerRadiusBottomRight",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cornerRadiusBottomLeft",{get:function(){return this.getPropertyValue("cornerRadiusBottomLeft")},set:function(t){this.setPropertyValue("cornerRadiusBottomLeft",t,!0)},enumerable:!0,configurable:!0}),e.prototype.measureElement=function(){},Object.defineProperty(e.prototype,"bbox",{get:function(){return this.definedBBox?this.definedBBox:this.isMeasured?{x:0,y:0,width:this.innerWidth,height:this.innerHeight}:{x:0,y:0,width:0,height:0}},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.RoundedRectangle=u},CuFa:function(t,e,i){"use strict";i.d(e,"a",function(){return c});var n=i("m4/l"),r=i("Tjl+"),o=i("vMqJ"),a=i("P7v+"),s=i("aCit"),u=i("Wglt"),l=i("Mtpk"),h=i("tjMS"),c=function(t){function e(){var e=t.call(this)||this;return e._stops=new o.b,e.element=e.paper.addGroup("radialGradient"),e.id="gradient-"+s.b.getUniqueId(),e.element.attr({id:e.id}),e._disposers.push(e.element),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){var t,e=this,i=this.element;l.isNumber(this.cx)&&((t=this.cx)instanceof h.a&&(t=t.percent+"%"),i.attr({cx:t}));l.isNumber(this.cy)&&((t=this.cy)instanceof h.a&&(t=t.percent+"%"),i.attr({cy:t}));this.fx&&((t=this.fx)instanceof h.a&&(t=t.percent+"%"),i.attr({fx:t}));this.fy&&((t=this.fy)instanceof h.a&&(t=t.percent+"%"),i.attr({fy:t}));i.removeChildNodes(),u.each(u.indexed(this._stops.iterator()),function(t){var n=t[0],r=t[1],o=r.offset;l.isNumber(o)||(o=n/(e._stops.length-1));var a=e.paper.add("stop");a.attr({"stop-color":r.color}),l.isNumber(r.opacity)&&a.attr({"stop-opacity":r.opacity}),l.isNumber(o)&&a.attr({offset:o}),i.add(a)})},e.prototype.addColor=function(t,e,i){this._stops.push({color:t,opacity:e,offset:i}),this.draw()},Object.defineProperty(e.prototype,"paper",{get:function(){return this._paper?this._paper:Object(a.b)()},set:function(t){this._paper!=t&&(this._paper=t,this.draw(),t.appendDef(this.element))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cx",{get:function(){return this._cx},set:function(t){this._cx=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cy",{get:function(){return this._cy},set:function(t){this._cy=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fx",{get:function(){return this._fx},set:function(t){this._fx=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fy",{get:function(){return this._fy},set:function(t){this._fy=t,this.draw()},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.stops.copyFrom(e.stops),this.cx=e.cx,this.cy=e.cy,this.fx=e.fx,this.fy=e.fy},Object.defineProperty(e.prototype,"stops",{get:function(){return this._stops},enumerable:!0,configurable:!0}),e.prototype.clear=function(){this._stops.clear()},e}(r.a);s.b.registeredClasses.RadialGradient=c},"DA7/":function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("Tjl+"),o=i("aCit"),a=function(t){function e(){var e=t.call(this)||this;return e.className="ColorModifier",e.applyTheme(),e}return n.c(e,t),e.prototype.modify=function(t){return t},e}(r.a);o.b.registeredClasses.ColorModifier=a},DG6Q:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("C6dT"),o=i("CnhP"),a=i("aCit"),s=i("tjMS"),u=i("Gg2j"),l=function(t){function e(){var e=t.call(this)||this;return e.className="Column",e.width=Object(s.c)(80),e.height=Object(s.c)(80),e.applyOnClones=!0,e.strokeOpacity=1,e.layout="none",e.createAssets(),e.events.on("childadded",e.handleKidAdded,e,!1),e}return n.c(e,t),e.prototype.handleKidAdded=function(){"none"==this.layout&&(this.layout="absolute")},e.prototype.createAssets=function(){this.column=this.createChild(o.a),this.column.shouldClone=!1,this.column.cornerRadius(0,0,0,0),this._disposers.push(this.column)},e.prototype.validate=function(){t.prototype.validate.call(this);var e=this.column;e&&(e.width=u.min(this.pixelWidth,this.maxWidth),e.height=u.min(this.pixelHeight,this.maxHeight),e.invalid&&e.validate())},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.column&&this.column.copyFrom(e.column)},Object.defineProperty(e.prototype,"bbox",{get:function(){return this.definedBBox?this.definedBBox:this.column?{x:0,y:0,width:this.column.measuredWidth,height:this.column.measuredHeight}:{x:0,y:0,width:u.min(this.pixelWidth,this.maxWidth),height:u.min(this.pixelHeight,this.maxHeight)}},enumerable:!0,configurable:!0}),e}(r.a);a.b.registeredClasses.Column=l},DHte:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("Tjl+"),o=i("8ZqG"),a=i("hxI2"),s=i("Mtpk"),u=i("v9UT"),l=function(t){function e(){var e=t.call(this)||this;return e._list=[],e._currentStep=0,e._currentPass=0,e.baseColor=new o.a({r:103,g:183,b:220}),e.stepOptions={},e.passOptions={brighten:-.2},e.step=1,e.minColors=20,e.minLightness=.2,e.maxLightness=.9,e.shuffle=!1,e.wrap=!0,e.reuse=!1,e.saturation=1,e.className="ColorSet",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"list",{get:function(){return this._list||this.generate(this.minColors),this._list},set:function(t){this._list=t,this.reset()},enumerable:!0,configurable:!0}),e.prototype.next=function(){this.list.length<=this._currentStep&&(this.reuse&&0==this._currentPass&&this._list.length&&(this.minColors=this._list.length),this.generate(this.minColors));var t=this.list[this._currentStep];return this._currentStep+=this.step,t.saturate(this.saturation)},e.prototype.getIndex=function(t){return this.list.length<=t?(this.reuse&&0==this._currentPass&&this._list.length&&(this.minColors=this._list.length),this.generate(this.minColors),this.getIndex(t)):this.list[t].saturate(this.saturation)},e.prototype.reset=function(){this._currentStep=0},Object.defineProperty(e.prototype,"currentStep",{get:function(){return this._currentStep},set:function(t){this._currentStep=t},enumerable:!0,configurable:!0}),e.prototype.generate=function(t){var e=this.currentColor,i=a.rgbToHsl(s.getValue(e.rgb)),n=s.hasValue(this.stepOptions.hue)?this.stepOptions.hue:1/t,r={brighten:0,lighten:0,hue:i.h,lightness:i.l,saturation:i.s},l=[];if(this.reuse)for(var h=0;h<t;h++)l.push(a.rgbToHsl(s.getValue(this._list[h].rgb)).h);else for(h=0;h<t;h++){var c=i.h+n*h;this.wrap&&c>1&&(c-=1),l.push(c)}this.shuffle&&l.sort(function(t,e){return Math.random()-.5});for(h=0;h<t;h++){this.reuse?i=a.rgbToHsl(s.getValue(this._list[h].rgb)):i.h=l.shift(),this.applyStepOptions(i,r,h+1,this._currentPass);var p=Object(o.c)(a.hslToRgb(i)),d=(this.stepOptions.brighten||0)*(h+1)+(this.passOptions.brighten||0)*this._currentPass;0!=d&&(d=this.wrap?u.fitNumberRelative(d,this.minLightness,this.maxLightness):u.fitNumber(d,this.minLightness,this.maxLightness),p=p.brighten(d));var f=(this.stepOptions.lighten||0)*(h+1)+(this.passOptions.lighten||0)*this._currentPass;0!=f&&(f=this.wrap?u.fitNumberRelative(f,this.minLightness,this.maxLightness):u.fitNumber(f,this.minLightness,this.maxLightness),p=p.lighten(f)),this._list.push(p)}this._currentPass++},Object.defineProperty(e.prototype,"currentColor",{get:function(){return 0==this._list.length?this.baseColor.saturate(this.saturation):this._list[this._list.length-1].saturate(this.saturation)},enumerable:!0,configurable:!0}),e.prototype.applyStepOptions=function(t,e,i,n){t.l=e.lightness+(this.stepOptions.lightness||0)*i+(this.passOptions.lightness||0)*n,this.wrap?(t.l>1?t.l=t.l-Math.floor(t.l):t.l<0&&(t.l=-(t.l-Math.floor(t.l))),t.l=u.fitNumberRelative(t.l,this.minLightness,this.maxLightness)):(t.l>1?t.l=1:t.l<0&&(t.l=0),t.l=u.fitNumber(t.l,this.minLightness,this.maxLightness))},e.prototype.processConfig=function(e){if(e&&s.hasValue(e.list)&&s.isArray(e.list))for(var i=0,n=e.list.length;i<n;i++)e.list[i]instanceof o.a||(e.list[i]=Object(o.c)(e.list[i]));t.prototype.processConfig.call(this,e)},e}(r.a)},DVYA:function(t,e){var i={}.toString;t.exports=function(t){return i.call(t).slice(8,-1)}},DVvQ:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},DXFp:function(t,e,i){"use strict";i.d(e,"b",function(){return u}),i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("2I/e"),o=i("AC2I"),a=i("aCit"),s=i("Wglt"),u=function(t){function e(){var e=t.call(this)||this;return e.className="PercentChartDataItem",e.applyTheme(),e}return n.c(e,t),e}(r.b),l=function(t){function e(){var e=t.call(this)||this;return e.className="PercentChart",e.align="none",e.valign="none",e.chartContainer.minHeight=50,e.chartContainer.minWidth=50,e.applyTheme(),e}return n.c(e,t),e.prototype.validateData=function(){t.prototype.validateData.call(this),this.feedLegend()},e.prototype.feedLegend=function(){var t=this.legend;if(t){var e=[];s.each(this.series.iterator(),function(i){i.hiddenInLegend||s.each(i.dataItems.iterator(),function(n){if(!n.hiddenInLegend){e.push(n);var r=i.legendSettings;r&&(r.labelText&&(t.labels.template.text=r.labelText),r.itemLabelText&&(t.labels.template.text=r.itemLabelText),r.valueText&&(t.valueLabels.template.text=r.valueText),r.itemValueText&&(t.valueLabels.template.text=r.itemValueText))}})}),t.data=e,t.dataFields.name="category"}},e.prototype.createSeries=function(){return new o.a},e.prototype.setLegend=function(e){t.prototype.setLegend.call(this,e),e&&(e.labels.template.text="{category}",e.valueLabels.template.text="{value.percent.formatNumber('#.0')}%",e.itemContainers.template.events.on("over",function(t){var e=t.target.dataItem.dataContext;e.visible&&!e.isHiding&&(e.slice.isHover=!0)}),e.itemContainers.template.events.on("out",function(t){t.target.dataItem.dataContext.slice.isHover=!1}))},e}(r.a);a.b.registeredClasses.PercentChart=l,a.b.registeredClasses.PercentChartDataItem=u},DbOM:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"DvJ+":function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},DziZ:function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("Vs7R"),o=i("tjMS"),a=i("aCit"),s=i("v9UT"),u=i("Mtpk"),l=i("hGwe"),h=function(t){function e(){var e=t.call(this)||this;return e.className="Trapezoid",e.element=e.paper.add("path"),e.topSide=Object(o.c)(100),e.bottomSide=Object(o.c)(100),e.leftSide=Object(o.c)(100),e.rightSide=Object(o.c)(100),e.isMeasured=!1,e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.pixelWidth,i=this.pixelHeight,n=s.relativeToValue(this.topSide,e),r=s.relativeToValue(this.bottomSide,e),o=s.relativeToValue(this.leftSide,i),a=s.relativeToValue(this.rightSide,i),h=(e-n)/2,c=(i-o)/2,p=e-(e-n)/2,d=(i-a)/2,f=e-(e-r)/2,g=i-(i-a)/2,m=(e-r)/2,y=i-(i-o)/2,b="",v="",_="",x="";if(u.hasValue(this.horizontalNeck)){var P=this.horizontalNeck.value;b=l.lineTo({x:e*P,y:Math.max(c,d)}),_=l.lineTo({x:e*P,y:Math.min(g,y)})}if(u.hasValue(this.verticalNeck)){var w=this.verticalNeck.value;v=l.lineTo({x:Math.min(p,f),y:i*w}),x=l.lineTo({x:Math.max(h,m),y:i*w})}var O=l.moveTo({x:h,y:c})+b+l.lineTo({x:p,y:d})+v+l.lineTo({x:f,y:g})+_+l.lineTo({x:m,y:y})+x;this.path=O},Object.defineProperty(e.prototype,"topSide",{get:function(){return this.getPropertyValue("topSide")},set:function(t){this.setPercentProperty("topSide",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottomSide",{get:function(){return this.getPropertyValue("bottomSide")},set:function(t){this.setPercentProperty("bottomSide",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"leftSide",{get:function(){return this.getPropertyValue("leftSide")},set:function(t){this.setPercentProperty("leftSide",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rightSide",{get:function(){return this.getPropertyValue("rightSide")},set:function(t){this.setPercentProperty("rightSide",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"horizontalNeck",{get:function(){return this.getPropertyValue("horizontalNeck")},set:function(t){this.setPropertyValue("horizontalNeck",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"verticalNeck",{get:function(){return this.getPropertyValue("verticalNeck")},set:function(t){this.setPropertyValue("verticalNeck",t,!0)},enumerable:!0,configurable:!0}),e}(r.a);a.b.registeredClasses.Trapezoid=h},"E+Sg":function(t,e,i){var n=i("hjwn").f,r=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in r||i("gD3S")&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},EEf7:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("vJiZ"),o=i("W0fk"),a=i("K0ev"),s=i("nHHr").f;i("gD3S")&&n(n.P+i("3/+B"),"Object",{__lookupSetter__:function(t){var e,i=r(this),n=o(t,!0);do{if(e=s(i,n))return e.set}while(i=a(i))}})},EMhK:function(t,e,i){var n=i("Gb1H");n(n.S,"Reflect",{ownKeys:i("+6ht")})},EOVy:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{sign:i("sxbc")})},EVjk:function(t,e,i){var n=i("Gb1H");n(n.S,"Array",{isArray:i("kHwJ")})},EhJv:function(t,e,i){var n=i("sHIJ"),r=i("kcsd");t.exports=function(t){return n(r(t))}},EjGA:function(t,e,i){"use strict";i.d(e,"a",function(){return f});var n=i("m4/l"),r=i("Mpxm"),o=i("ZhuL"),a=i("4DCw"),s=i("Tjl+"),u=i("x79X"),l=i("P/bD"),h=i("7XB+"),c=i("aCit"),p=i("Mtpk"),d=i("Qkdp"),f=function(t){function e(e,i){var n=t.call(this)||this;return n.adapter=new u.a(n),n._requestOptions={},n._incremental=!1,n._incrementalParams={},n._keepCount=!1,n.showPreloader=!0,n.className="DataSource",e&&(n.url=e),i&&(n.parser="string"==typeof i?r.b.getParserByType(i):i),n}return n.c(e,t),e.prototype.processData=function(t,e){if(this.dispatchImmediately("parsestarted"),this.parser||(this.parser=r.b.getParserByData(t,e),this.parser)){if(this.parser.options=this.adapter.apply("parserOptions",this.parser.options),this.parser.options.dateFields=this.adapter.apply("dateFields",this.parser.options.dateFields||[]),this.parser.options.numberFields=this.adapter.apply("numberFields",this.parser.options.numberFields||[]),this.parser.options.dateFields&&!this.parser.options.dateFormatter&&(this.parser.options.dateFormatter=this.dateFormatter),this.data=this.adapter.apply("parsedData",this.parser.parse(this.adapter.apply("unparsedData",t))),!p.hasValue(this.data)&&this.events.isEnabled("parseerror")){var i={type:"parseerror",message:this.language.translate("Error parsing file: %1",null,this.url),target:this};this.events.dispatchImmediately("parseerror",i)}this.dispatchImmediately("parseended"),p.hasValue(this.data)&&this.dispatchImmediately("done",{data:this.data}),this.lastLoad=new Date}else{if(this.events.isEnabled("parseerror")){var n={type:"parseerror",message:this.language.translate("No parser available for file: %1",null,this.url),target:this};this.events.dispatchImmediately("parseerror",n)}this.dispatchImmediately("parseended")}},Object.defineProperty(e.prototype,"url",{get:function(){var t=this.disableCache?this.timestampUrl(this._url):this._url;return this.incremental&&this.component.data.length&&(t=this.addUrlParams(t,this.incrementalParams)),this.adapter.apply("url",t)},set:function(t){this._url=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"requestOptions",{get:function(){return this.adapter.apply("requestOptions",this._requestOptions)},set:function(t){this._requestOptions=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parser",{get:function(){return this._parser||(this._parser=new o.a),this.adapter.apply("parser",this._parser)},set:function(t){this._parser=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"reloadFrequency",{get:function(){return this.adapter.apply("reloadTimeout",this._reloadFrequency)},set:function(t){var e=this;this._reloadFrequency!=t&&(this._reloadFrequency=t,t?p.hasValue(this._reloadDisposer)||(this._reloadDisposer=this.events.on("ended",function(t){e._reloadTimeout=setTimeout(function(){e.load()},e.reloadFrequency)})):p.hasValue(this._reloadDisposer)&&(this._reloadDisposer.dispose(),this._reloadDisposer=void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"incremental",{get:function(){return this.adapter.apply("incremental",this._incremental)},set:function(t){this._incremental=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"incrementalParams",{get:function(){return this.adapter.apply("incrementalParams",this._incrementalParams)},set:function(t){this._incrementalParams=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"keepCount",{get:function(){return this.adapter.apply("keepCount",this._keepCount)},set:function(t){this._keepCount=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"language",{get:function(){return this._language?this._language:this.component?(this._language=this.component.language,this._language):(this.language=new l.a,this.language)},set:function(t){this._language=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dateFormatter",{get:function(){return this._dateFormatter?this._dateFormatter:this.component?(this._dateFormatter=this.component.dateFormatter,this._dateFormatter):(this.dateFormatter=new h.a,this.dateFormatter)},set:function(t){this._dateFormatter=t},enumerable:!0,configurable:!0}),e.prototype.timestampUrl=function(t){var e={};return e[(new Date).getTime().toString()]="",this.addUrlParams(t,e)},e.prototype.dispose=function(){t.prototype.dispose.call(this),this._reloadTimeout&&clearTimeout(this._reloadTimeout)},e.prototype.load=function(){this._reloadTimeout&&clearTimeout(this._reloadTimeout),r.b.load(this)},e.prototype.addUrlParams=function(t,e){var i=t.match(/\?/)?"&":"?",n=[];return d.each(e,function(t,e){""!=e?n.push(t+"="+encodeURIComponent(e)):n.push(t)}),n.length?t+i+n.join("&"):t},e.prototype.processConfig=function(e){c.b.registeredClasses.json=o.a,c.b.registeredClasses.JSONParser=o.a,c.b.registeredClasses.csv=a.a,c.b.registeredClasses.CSVParser=a.a,t.prototype.processConfig.call(this,e)},e}(s.b)},F2Gx:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("dstF")(6),o="findIndex",a=!0;o in[]&&Array(1)[o](function(){a=!1}),n(n.P+n.F*a,"Array",{findIndex:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),i("M/YL")(o)},FSsr:function(t,e,i){var n=i("6MWL"),r=i("snR7"),o=i("DbOM"),a=n.key,s=n.set;n.exp({metadata:function(t,e){return function(i,n){s(t,e,(void 0!==n?r:o)(i),a(n))}}})},FUSD:function(t,e,i){var n=i("FmWr"),r=i("lhvN"),o=i("kcsd");t.exports=function(t,e,i,a){var s=String(o(t)),u=s.length,l=void 0===i?" ":String(i),h=n(e);if(h<=u||""==l)return s;var c=h-u,p=r.call(l,Math.ceil(c/l.length));return p.length>c&&(p=p.slice(0,c)),a?p+s:s+p}},FmWr:function(t,e,i){var n=i("4BRe"),r=Math.min;t.exports=function(t){return t>0?r(n(t),9007199254740991):0}},FzPm:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("Vs7R"),o=i("tjMS"),a=i("aCit"),s=i("v9UT"),u=i("Gg2j"),l=function(t){function e(){var e=t.call(this)||this;return e.className="Circle",e.element=e.paper.add("circle"),e.setPercentProperty("radius",Object(o.c)(100)),e.setPropertyValue("horizontalCenter","middle"),e.setPropertyValue("verticalCenter","middle"),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this),this.element.attr({r:this.pixelRadius})},Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelRadius",{get:function(){return s.relativeToValue(this.radius,u.min(this.innerWidth/2,this.innerHeight/2))},enumerable:!0,configurable:!0}),e.prototype.measureElement=function(){var t=this.pixelRadius;this._bbox={x:-t,y:-t,width:2*t,height:2*t}},e}(r.a);a.b.registeredClasses.Circle=l},G0iN:function(t,e,i){var n=i("3BzE"),r=i("pmYy"),o=i("eBSV");t.exports=function(t){var e=n(t),i=r.f;if(i)for(var a,s=i(t),u=o.f,l=0;s.length>l;)u.call(t,a=s[l++])&&e.push(a);return e}},G5U1:function(t,e){var i=t.exports={version:"2.6.1"};"number"==typeof __e&&(__e=i)},GAaQ:function(t,e,i){"use strict";i.d(e,"a",function(){return k});var n,r=i("m4/l"),o=i("qJno"),a=i("x79X"),s=i("Vs7R"),u=i("W8Sc"),l=i("vMqJ"),h=i("+qIf"),c=i("7XB+"),p=i("akNo"),d=i("P/bD"),f=i("/IEW"),g=i("8ZqG"),m=i("aCit"),y=i("Q4nc"),b=i("58Sn"),v=i("Qkdp"),_=i("OVUc"),x=i("Mtpk"),P=i("v9UT"),w=i("hJ5i"),O=i("Gg2j");var S=/src: ([^;]+);/;function T(t,e){return r.b(this,void 0,void 0,function(){var i,n;return r.d(this,function(r){switch(r.label){case 0:return[4,_.a(t)];case 1:i=r.sent(),(n=document.createElement("style")).textContent=i.response,document.head.appendChild(n),r.label=2;case 2:return r.trys.push([2,,4,5]),[4,e(n.sheet)];case 3:return[2,r.sent()];case 4:return document.head.removeChild(n),[7];case 5:return[2]}})})}function C(t,e,i){return r.b(this,void 0,void 0,function(){var n,o,a;return r.d(this,function(r){switch(r.label){case 0:for(n=[],o=function(r){var o=e.cssRules[r];if(o.type===CSSRule.IMPORT_RULE){var a=o.href;a&&(a=P.joinUrl(t,a),n.push(T(a,function(t){return C(a,t,i)})))}else i(t,o)},a=0;a<e.cssRules.length;a++)o(a);return n.length?[4,Promise.all(n)]:[3,2];case 1:r.sent(),r.label=2;case 2:return[2]}})})}var k=function(t){function e(e){var i=t.call(this)||this;return i.adapter=new a.a(i),i._formatOptions=new h.a,i._extraSprites=[],i._dynamicDataFields=!0,i._removedObjects=new l.b,i._hiddenObjects=[],i._objectsAlreadyHidden=!1,i._filePrefix="amCharts",i.useWebFonts=!0,i.useRetina=!0,i.timeoutDelay=2e3,i._container=e,i.className="Export",i._formatOptions.setKey("png",{}),i._formatOptions.setKey("jpg",{quality:.8}),i._formatOptions.setKey("gif",{}),i._formatOptions.setKey("svg",{}),i._formatOptions.setKey("pdf",{fontSize:14,imageFormat:"png",addURL:!0}),i._formatOptions.setKey("json",{indent:2,useLocale:!0}),i._formatOptions.setKey("csv",{addColumnNames:!0,emptyAs:""}),i._formatOptions.setKey("xlsx",{addColumnNames:!0,useLocale:!0,emptyAs:""}),i._formatOptions.setKey("print",{delay:500,printMethod:"iframe"}),i.adapter.add("options",function(t){var e=i._formatOptions.getKey(t.type);return t.options?t.options=v.merge(t.options,e):t.options=e,t}),i.applyTheme(),i.dispatchImmediately("inited"),i}return r.c(e,t),Object.defineProperty(e.prototype,"menu",{get:function(){return this._menu},set:function(t){var e=this;this._menu&&this.removeDispose(this._menu),this._menu=t,this._menu.container=this.container,this._menu.language=this._language,this._menu.adapter.add("branch",function(t){return t.branch.unsupported=!e.typeSupported(t.branch.type),t}),this._menu.events.on("hit",function(t){e.export(t.branch.type,t.branch.options),e.menu.close()}),this._menu.events.on("enter",function(t){e.export(t.branch.type,t.branch.options),e.menu.close()}),this._menu.events.on("over",function(t){e._disablePointers()}),this._menu.events.on("out",function(t){e._releasePointers()}),this.dispatchImmediately("menucreated"),this._menu.adapter.add("classPrefix",function(t){return t.classPrefix=y.a.classNamePrefix+t.classPrefix,t}),this._disposers.push(this._menu)},enumerable:!0,configurable:!0}),e.prototype.typeSupported=function(t){var e=!0;return"pdf"===t?e=this.downloadSupport():"xlsx"===t?e=!(!this.downloadSupport()||!this._hasData()):("print"!=t||window.print)&&(-1===["json","csv"].indexOf(t)||this._hasData())||(e=!1),this.adapter.apply("supported",{supported:e,type:t}).supported},e.prototype._hasData=function(){return this.data&&this.data.length},e.prototype._getFunction=function(t){switch(t){case"png":case"gif":case"jpg":return this.getImage;case"svg":return this.getSVG;case"pdf":return this.getPDF;case"xlsx":return this.getExcel;case"csv":return this.getCSV;case"json":return this.getJSON;case"print":return this.getPrint;default:return this.unsupported}},e.prototype.export=function(t,e){return r.b(this,void 0,void 0,function(){var i,n,o,a,s,u=this;return r.d(this,function(r){switch(r.label){case 0:return this.events.isEnabled("exportstarted")&&(i={type:"exportstarted",target:this,format:t,options:e},this.events.dispatchImmediately("exportstarted",i)),"custom"==t?(this.handleCustom(e),[2,!0]):(this.showPreloader(),this.timeoutDelay&&(this.hideTimeout(),this._timeoutTimeout=this.setTimeout(function(){if(u.events.isEnabled("exporttimedout")){var i={type:"exporttimedout",target:u,format:t,options:e};u.events.dispatchImmediately("exporttimedout",i)}u.showTimeout()},this.timeoutDelay)),this.hideNonExportableSprites(),n=this._getFunction(t),e=this.adapter.apply("options",{options:e,type:t}).options,[4,(n=this.adapter.apply("exportFunction",{func:n,type:t,options:e}).func).call(this,t,e)]);case 1:return o=r.sent(),this.restoreNonExportableSprites(),o?(this.events.isEnabled("exportfinished")&&(a={type:"exportfinished",target:this,format:t,options:e},this.events.dispatchImmediately("exportfinished",a)),this.hidePreloader(),this.hideTimeout(),this.menu.close(),"print"===t?[2,this.print(o,e,this.adapter.apply("title",{title:this.title,options:e}).title)]:[2,this.download(o,this.filePrefix+"."+t)]):(this.events.isEnabled("error")&&(s={type:"error",target:this,format:t,options:e},this.events.dispatchImmediately("error",s)),[2,!1])}})})},e.prototype.unsupported=function(t,e){return r.b(this,void 0,void 0,function(){return r.d(this,function(t){return[2,""]})})},e.prototype.handleCustom=function(t){x.hasValue(t.callback)&&t.callback.call(this,t)},e.prototype.getPrint=function(t,e){return r.b(this,void 0,void 0,function(){return r.d(this,function(t){return[2,this.getImage("png",e)]})})},e.prototype.getFontFamilies=function(){return r.b(this,void 0,void 0,function(){var t,e,i,n,o=this;return r.d(this,function(a){switch(a.label){case 0:return t=this.getDOMURL(),e=[],i=[],[4,function(t){return r.b(this,void 0,void 0,function(){return r.d(this,function(e){switch(e.label){case 0:return[4,Promise.all(w.map(document.styleSheets,function(e){var i=e.href;return null==i?C(location.href,e,t):T(i=P.joinUrl(location.href,i),function(e){return C(i,e,t)})}))];case 1:return e.sent(),[2]}})})}(function(n,a){if(a.type===CSSRule.FONT_FACE_RULE){var s=a.cssText,u=S.exec(s);if(null!==u){var l=u[1].split(/ *, */).map(function(i){return r.b(o,void 0,void 0,function(){var o,a,s,u,l,h;return r.d(this,function(r){switch(r.label){case 0:return null!==(o=/^url\(["']?([^"'\)]+)["']?\)([^,]*)$/.exec(i))?[3,1]:[2,i];case 1:a=o[2],s=P.joinUrl(n,o[1]),r.label=2;case 2:return r.trys.push([2,7,,8]),[4,_.a(s,void 0,{responseType:"blob"})];case 3:return u=r.sent(),null==window.navigator.msSaveOrOpenBlob?[3,4]:(l=t.createObjectURL(u.blob),e.push(l),[3,6]);case 4:return[4,function(t){return new Promise(function(e,i){var n=new FileReader;n.onload=function(t){e(n.result)},n.onerror=function(t){i(t)},n.readAsDataURL(t)})}(u.blob)];case 5:l=r.sent(),r.label=6;case 6:return[2,'url("'+l+'")'+a];case 7:return h=r.sent(),console.error("Failed to load font",s,h),[2,null];case 8:return[2]}})})});i.push(Promise.all(l).then(function(t){return 0===(t=t.filter(function(t){return null!=t})).length?"":s.replace(S,"src: "+t.join(", ")+";")}))}}})];case 1:return a.sent(),[4,Promise.all(i)];case 2:return n=a.sent(),[2,{blobs:e,cssText:n.filter(function(t){return!!t}).join("\n")}]}})})},e.prototype.getImage=function(t,e,i){return r.b(this,void 0,void 0,function(){var n,o,a,s;return r.d(this,function(r){switch(r.label){case 0:return(n=this._objectsAlreadyHidden)||this.hideNonExportableSprites(),x.hasValue(e)||(e=this.getFormatOptions(t)),[4,this.simplifiedImageExport()];case 1:if(!r.sent())return[3,9];r.label=2;case 2:return r.trys.push([2,6,,8]),[4,this.getCanvas(e)];case 3:return o=r.sent(),!1===i?[3,5]:[4,this.addExtras(o,e)];case 4:o=r.sent(),r.label=5;case 5:return a=o.toDataURL(this.getContentType(t),e.quality),this.disposeCanvas(o),n||this.restoreNonExportableSprites(),[2,a];case 6:return r.sent(),[4,this.getImageAdvanced(t,e,i)];case 7:return s=r.sent(),n||this.restoreNonExportableSprites(),[2,s];case 8:return[3,11];case 9:return[4,this.getImageAdvanced(t,e,i)];case 10:return s=r.sent(),n||this.restoreNonExportableSprites(),[2,s];case 11:return[2]}})})},e.prototype.addExtras=function(t,e,i){return r.b(this,void 0,void 0,function(){var n,o,a,u,l,h,c,p,d,f,g,m,y,b,v=this;return r.d(this,function(_){switch(_.label){case 0:return this.extraSprites.length?(n=0,o=0,a=t.width,u=t.height,l=t.width,h=t.height,[4,Promise.all(w.map(this.extraSprites,function(t){return r.b(v,void 0,void 0,function(){var c,p,d,f;return r.d(this,function(r){switch(r.label){case 0:return(c=t instanceof s.a?{sprite:t,position:"bottom"}:t).position=c.position||"bottom",c.marginTop=c.marginTop||0,c.marginRight=c.marginRight||0,c.marginBottom=c.marginBottom||0,c.marginLeft=c.marginLeft||0,i?[4,c.sprite.exporting.getCanvasAdvanced(e)]:[3,2];case 1:return p=r.sent(),[3,4];case 2:return[4,c.sprite.exporting.getCanvas(e)];case 3:p=r.sent(),r.label=4;case 4:return d=p.width+c.marginLeft+c.marginRight,f=p.height+c.marginTop+c.marginBottom,"top"==c.position?(a=O.max(a,d),h+=f,o+=f):"right"==c.position?(u=O.max(u,f),l+=d):"left"==c.position?(u=O.max(u,f),l+=d,n+=d):"bottom"===c.position&&(a=O.max(a,d),h+=f),[2,{canvas:p,position:c.position,left:c.marginLeft,top:c.marginTop,width:d,height:f}]}})})}))]):[3,2];case 1:return c=_.sent(),(p=this.getDisposableCanvas()).width=l,p.height=h,d=p.getContext("2d"),(f=this.backgroundColor||this.findBackgroundColor(this.sprite.dom))&&(d.fillStyle=f.toString(),d.fillRect(0,0,p.width,p.height)),g=n,m=o,y=a,b=u,w.each(c,function(t){"top"==t.position?(m-=t.height,d.drawImage(t.canvas,n+t.left,m+t.top)):"right"==t.position?(d.drawImage(t.canvas,y+t.left,o+t.top),y+=t.width):"left"==t.position?(g-=t.width,d.drawImage(t.canvas,g+t.left,o+t.top)):"bottom"===t.position&&(d.drawImage(t.canvas,n+t.left,b+t.top),b+=t.height),v.disposeCanvas(t.canvas)}),d.drawImage(t,n,o),[2,p];case 2:return[2,t]}})})},e.prototype.getCanvas=function(t){return r.b(this,void 0,void 0,function(){var e,i,n,o,a,s,u,l,h,c,p,d,f,g,m,y;return r.d(this,function(r){switch(r.label){case 0:x.hasValue(t)||(t={}),e=this.backgroundColor||this.findBackgroundColor(this.sprite.dom),i=this.getDOMURL(),n=null,o=null,r.label=1;case 1:return r.trys.push([1,,4,5]),a=this.sprite.pixelWidth,s=this.sprite.pixelHeight,u=b.k(this.sprite.dom),l=b.l(this.sprite.dom),h=this.getDisposableCanvas(),c=this.getPixelRatio(t),h.style.width=a+"px",h.style.height=s+"px",h.width=a*c,h.height=s*c,p=h.getContext("2d"),1!=c&&p.setTransform(c,0,0,c,0,0),e&&(p.fillStyle=e.toString(),p.fillRect(0,0,a,s)),d=[],this.useWebFonts&&d.push(this.getFontFamilies().then(function(t){return o=t.blobs,t.cssText})),d.push(this.imagesToDataURI(this.sprite.dom,t)),d.push(this.prepForeignObjects(this.sprite.dom,t)),[4,Promise.all(d)];case 2:return f=r.sent(),g=this.normalizeSVG("<style>"+f[0]+"</style>"+this.serializeElement(this.sprite.paper.defs)+this.serializeElement(this.sprite.dom),t,a,s,u,l),m=new Blob([g],{type:"image/svg+xml"}),n=i.createObjectURL(m),[4,this.loadNewImage(n,a,s,"anonymous")];case 3:return y=r.sent(),p.drawImage(y,0,0),[3,5];case 4:return null!==n&&i.revokeObjectURL(n),null!==o&&w.each(o,function(t){i.revokeObjectURL(t)}),this.restoreRemovedObjects(),[7];case 5:return[2,h]}})})},e.prototype.getCanvasAdvanced=function(t){return r.b(this,void 0,void 0,function(){var e,i,n,o,a,s,u,l,h,c;return r.d(this,function(r){switch(r.label){case 0:return x.hasValue(t)||(t={}),[4,this.imagesToDataURI(this.sprite.dom,t)];case 1:return r.sent(),e=this.backgroundColor||this.findBackgroundColor(this.sprite.dom),[4,this.canvg];case 2:return i=r.sent(),n=this.sprite.pixelWidth,o=this.sprite.pixelHeight,a=b.k(this.sprite.dom),s=b.l(this.sprite.dom),u=this.normalizeSVG(this.serializeElement(this.sprite.paper.defs)+this.serializeElement(this.sprite.dom),t,n,o,a,s,e),l=this.getDisposableCanvas(),h=this.getPixelRatio(t),l.style.width=n*h+"px",l.style.height=o*h+"px",l.width=n*h,l.height=o*h,c={useCORS:!0},1!=h&&(c.ignoreDimensions=!0,c.scaleWidth=n*h,c.scaleHeight=o*h),i(l,u,c),[2,l]}})})},e.prototype.getImageAdvanced=function(t,e,i){return r.b(this,void 0,void 0,function(){var n,o,a;return r.d(this,function(r){switch(r.label){case 0:return(n=this._objectsAlreadyHidden)||this.hideNonExportableSprites(),x.hasValue(e)||(e=this.getFormatOptions(t)),[4,this.getCanvasAdvanced(e)];case 1:return o=r.sent(),!1===i?[3,3]:[4,this.addExtras(o,e,!0)];case 2:o=r.sent(),r.label=3;case 3:return a=o.toDataURL(this.getContentType(t),e.quality),this.disposeCanvas(o),n||this.restoreNonExportableSprites(),[2,a]}})})},e.prototype.getDisposableCanvas=function(){var t=document.createElement("canvas");return t.style.position="fixed",t.style.top="-10000px",document.body.appendChild(t),t},e.prototype.disposeCanvas=function(t){document.body.removeChild(t)},e.prototype.getPixelRatio=function(t){var e=t&&t.scale?t.scale:1;return(this.useRetina?P.getPixelRatio():1)*e},e.prototype.imagesToDataURI=function(t,i){return r.b(this,void 0,void 0,function(){var n,o,a,s,u,l;return r.d(this,function(r){switch(r.label){case 0:if(!(n=t.querySelectorAll("image")).length)return[3,2];for(o=[],a=n.length,s=0;s<a;s++)u=n[s],(l=u.getAttributeNS(e.XLINK,"href"))&&(-1!==l.indexOf("data:image")||(-1!==l.indexOf(".svg")?o.push(this.svgToDataURI(u,i)):o.push(this.imageToDataURI(u,i))));return[4,Promise.all(o)];case 1:return r.sent(),[2];case 2:return[2]}})})},e.prototype.prepForeignObjects=function(t,e){return r.b(this,void 0,void 0,function(){var e,i,n;return r.d(this,function(r){if((e=t.querySelectorAll("foreignObject")).length)for(i=e.length,n=0;n<i;n++)this.temporarilyRemoveObject(e[n]);return[2]})})},e.prototype.imageToDataURI=function(t,i){return r.b(this,void 0,void 0,function(){var n,o,a;return r.d(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,this.loadNewImage(t.getAttributeNS(e.XLINK,"href"),null,null,"anonymous")];case 1:n=r.sent(),(o=document.createElement("canvas")).width=n.width,o.height=n.height,o.getContext("2d").drawImage(n,0,0);try{return a=o.toDataURL(),t.setAttribute("href",a),[2,a]}catch(e){return!1!==i.keepTainted&&this.temporarilyRemoveObject(t),[2,void 0]}return[3,3];case 2:return r.sent(),i&&!1===i.keepTainted||this.temporarilyRemoveObject(t),[2,void 0];case 3:return[2]}})})},e.prototype.svgToDataURI=function(t,i){return r.b(this,void 0,void 0,function(){var n,o,a,s;return r.d(this,function(r){switch(r.label){case 0:n=t.getAttributeNS(e.XLINK,"href"),r.label=1;case 1:return r.trys.push([1,3,,4]),[4,_.a(n)];case 2:return o=r.sent(),a=this.adapter.apply("charset",{charset:"base64",type:"svg",options:i}).charset,s=this.adapter.apply("svgToDataURI",{data:"data:"+this.getContentType("svg")+";"+a+","+btoa(o.response),options:i}).data,t.setAttributeNS(e.XLINK,"href",s),[2,s];case 3:return r.sent(),i&&!1===i.keepTainted||this.temporarilyRemoveObject(t),[2,void 0];case 4:return[2]}})})},e.prototype.temporarilyRemoveObject=function(t,e){var i=t.parentElement||t.parentNode;e||(e=this.sprite.paper.add("g").node),i.insertBefore(e,t),t.textContent,i.removeChild(t),this._removedObjects.push({element:t,placeholder:e})},e.prototype.restoreRemovedObjects=function(){for(var t;t=this._removedObjects.pop();){(t.placeholder.parentElement||t.placeholder.parentNode).insertBefore(t.element,t.placeholder)}},e.prototype.simplifiedImageExport=function(){return r.b(this,void 0,void 0,function(){var t,e,i,n,o,a,s;return r.d(this,function(r){switch(r.label){case 0:if(!1===(t=m.b.getCache("simplifiedImageExport"))||!0===t)return[2,t];r.label=1;case 1:return r.trys.push([1,3,,4]),(e=document.createElement("canvas")).width=1,e.height=1,i=e.getContext("2d"),n=this.getDOMURL(),o=new Blob([this.normalizeSVG("<g></g>",{},1,1)],{type:"image/svg+xml"}),a=n.createObjectURL(o),[4,this.loadNewImage(a,1,1)];case 2:s=r.sent(),i.drawImage(s,0,0),n.revokeObjectURL(a);try{return m.b.setCache("simplifiedImageExport",!0),[2,!0]}catch(t){return m.b.setCache("simplifiedImageExport",!1),[2,!1]}return[3,4];case 3:return r.sent(),m.b.setCache("simplifiedImageExport",!1),[2,!1];case 4:return[2]}})})},e.prototype.loadNewImage=function(t,e,i,n){return new Promise(function(r,o){var a;function s(){if(n){var e=a.src;a.onerror=function(){o(new Error('Loading image "'+t+'" failed'))},a.removeAttribute("crossorigin"),a.src="",a.src=e}else o(new Error('Loading image "'+t+'" failed'))}a=e&&i?new Image(e,i):new Image,n&&a.setAttribute("crossOrigin",n),a.onload=function(){r(a)},a.onabort=s,a.onerror=s,a.src=t})},e.prototype.getDOMURL=function(){return self.URL||self.webkitURL||self},e.prototype.getSVG=function(t,e){return r.b(this,void 0,void 0,function(){var i,n,o,a,s,u,l,h;return r.d(this,function(r){return(i=this._objectsAlreadyHidden)||this.hideNonExportableSprites(),n=this.sprite.pixelWidth,o=this.sprite.pixelHeight,a=b.k(this.sprite.dom),s=b.l(this.sprite.dom),u=this.normalizeSVG(this.serializeElement(this.sprite.paper.defs)+this.serializeElement(this.sprite.dom),e,n,o,a,s),l=this.adapter.apply("charset",{charset:"charset=utf-8",type:"svg",options:e}).charset,h=this.adapter.apply("getSVG",{data:"data:"+this.getContentType(t)+";"+l+","+encodeURIComponent(u),options:e}).data,i||this.restoreNonExportableSprites(),[2,h]})})},e.prototype._isIE=function(){return/MSIE |Trident\//.test(navigator.userAgent)},e.prototype.normalizeSVG=function(t,e,i,n,r,o,a){var s="";i&&(s+='width="'+i+'px" '),n&&(s+='height="'+n+'px" ');var u="";r&&(u+="font-family: "+r.replace(/"/g,"")+";"),o&&(u+="font-size: "+o+";"),t.match(/<svg/)?""!==s&&(t=(t=(t=t.replace(/(<svg[^>]*)width="[^"]*"/,"$1")).replace(/(<svg[^>]*)height="[^"]*"/,"$1")).replace(/(<svg)/,"$1"+s)):t='<?xml version="1.0" encoding="utf-8"?><svg '+s+' style="'+u+'" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">'+t+"</svg>",a&&(t=t.replace(/(<svg[^>]*>)/,'$1<rect width="100%" height="100%" fill="'+a.rgba+'"/>')),this._isIE()&&(t=t.replace(/<feColorMatrix [^\/>]*\/>/gi,""));var l=new RegExp("url\\("+P.escapeForRgex(P.getBaseURI()),"g");return t=t.replace(l,"url(#"),t=this.adapter.apply("normalizeSVG",{data:t,options:e}).data},e.prototype.serializeElement=function(t){return(new XMLSerializer).serializeToString(t)},e.prototype.getPDF=function(t,e){return r.b(this,void 0,void 0,function(){var t,i,n,o,a;return r.d(this,function(r){switch(r.label){case 0:return[4,this.getImage(e.imageFormat||"png",e)];case 1:return t=r.sent(),[4,this.pdfmake];case 2:return i=r.sent(),n=[30,30,30,30],o={pageSize:e.pageSize||"A4",pageOrientation:e.pageOrientation||"portrait",pageMargins:e.pageMargins||n,content:[]},(a=this.adapter.apply("title",{title:this.title,options:e}).title)&&o.content.push({text:a,fontSize:e.fontSize,bold:!0,margin:[0,0,0,15]}),e.addURL&&o.content.push({text:this.language.translate("Saved from")+": "+document.location.href,fontSize:e.fontSize,margin:[0,0,0,15]}),o.content.push({image:t,fit:this.getPageSizeFit(o.pageSize,o.pageMargins)}),o=this.adapter.apply("pdfmakeDocument",{doc:o,options:e}).doc,[4,new Promise(function(t,e){i.createPdf(o).getDataUrl(function(e){t(e)})})];case 3:return[2,r.sent()]}})})},e.prototype.getPageSizeFit=function(t,e){var i=[0,0,0,0];"number"==typeof e?i=[e,e,e,e]:2==e.length?i=[e[0],e[1],e[0],e[1]]:4==e.length&&(i=e);var n={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]}[t];return n[0]-=i[0]+i[2],n[1]-=i[1]+i[3],n},e.prototype.getExcel=function(t,e){return r.b(this,void 0,void 0,function(){var i,n,o,a,s,u,l,h;return r.d(this,function(r){switch(r.label){case 0:return[4,this.xlsx];case 1:for(i=r.sent(),n=this.adapter.apply("xlsxWorkbookOptions",{options:{bookType:"xlsx",bookSST:!1,type:"base64"}}).options,o=this.normalizeExcelSheetName(this.adapter.apply("xlsxSheetName",{name:this.title||this.language.translate("Data")}).name),a={SheetNames:[o],Sheets:{}},s=[],u=this.dataFields,e.addColumnNames&&s.push(this.getExcelRow(u,e)),l=this.data.length,h=0;h<l;h++)s.push(this.getExcelRow(this.data[h],e,u));return a.Sheets[o]=i.utils.aoa_to_sheet(s),[2,this.adapter.apply("getExcel",{data:"data:"+this.getContentType(t)+";base64,"+i.write(a,n),options:e}).data]}})})},e.prototype.normalizeExcelSheetName=function(t){return t=t.replace(/([:\\\/?*\[\]]+)/g," "),P.truncateWithEllipsis(t,31,"...",!0)},e.prototype.getExcelRow=function(t,e,i){var n=this,r=[];return i||(i=t),v.each(i,function(i,o){var a=n.convertEmptyValue(i,t[i],e);r.push(n.convertToDateOrDuration(i,a,e,!0))}),r},e.prototype.getCSV=function(t,e){return r.b(this,void 0,void 0,function(){var i,n,o,a,s,u,l,h;return r.d(this,function(r){for(i="",n=this.dataFields,o="",a=this.data,s=a.length,u=0;u<s;u++)l=this.getCSVRow(a[u],e,n),e.reverse?i=l+o+i:i+=o+l,o="\n";return e.addColumnNames&&(i=this.getCSVRow(n,e)+o+i),h=this.adapter.apply("charset",{charset:"charset=utf-8",type:t,options:e}).charset,[2,this.adapter.apply("getCSV",{data:"data:"+this.getContentType(t)+";"+h+","+encodeURIComponent(i),options:e}).data]})})},e.prototype.getCSVRow=function(t,e,i){var n=this,r=e.separator||",",o=[];return i||(i=t),v.each(i,function(i,a){var s=n.convertEmptyValue(i,t[i],e),u=n.convertToDateOrDuration(i,s,e);u=(u=""+u).replace(/"/g,'""'),(e.forceQuotes||u.search(new RegExp('"|\n|'+r,"g"))>=0)&&(u='"'+u+'"'),o.push(u)}),o.join(r)},e.prototype.getJSON=function(t,e){return r.b(this,void 0,void 0,function(){var i,n,o=this;return r.d(this,function(r){return i=JSON.stringify(this.data,function(t,i){return"object"==typeof i&&v.each(i,function(t,n){i[t]=o.convertToDateOrDuration(t,n,e)}),i},e.indent),n=this.adapter.apply("charset",{charset:"charset=utf-8",type:t,options:e}).charset,[2,this.adapter.apply("getJSON",{data:"data:"+this.getContentType(t)+";"+n+","+encodeURIComponent(i),options:e}).data]})})},e.prototype.convertToDateOrDuration=function(t,e,i,n){if("number"==typeof e)if(this.isDateField(t))e=new Date(e);else if(this.isDurationField(t))return this.durationFormatter.format(e,this.durationFormat);return e instanceof Date&&(i.useTimestamps?e=e.getTime():i.useLocale?n||(e=e.toLocaleString()):e=this.dateFormatter.format(e,this.dateFormat)),e},e.prototype.convertEmptyValue=function(t,e,i){return x.hasValue(e)?e:i.emptyAs},e.prototype.download=function(t,e){return r.b(this,void 0,void 0,function(){var i,n,o,a,s,u,l,h,c,p,d,f,g,m;return r.d(this,function(r){if(this.linkDownloadSupport()&&!this.msBlobDownloadSupport())if((i=document.createElement("a")).download=e,t.length>1048576){if(d=t.split(";"),f=d.shift().replace(/data:/,""),t=decodeURIComponent(d.join(";").replace(/^[^,]*,/,"")),-1!=["image/svg+xml","application/json","text/csv"].indexOf(f))return n=new Blob([t],{type:f}),o=window.URL.createObjectURL(n),i.href=o,i.download=e,i.click(),window.URL.revokeObjectURL(o),[2,!0];try{s=atob(t),t=s}catch(t){return[2,!1]}for(l=new Array(t.length),h=0;h<t.length;++h)c=t.charCodeAt(h),l[h]=c;p=new Blob([new Uint8Array(l)],{type:f}),a=window.URL.createObjectURL(p),i.href=a,i.download=e,i.click(),window.URL.revokeObjectURL(a)}else i.href=t,document.body.appendChild(i),i.click(),document.body.removeChild(i);else if(x.hasValue(window.navigator.msSaveBlob)){if(d=t.split(";"),f=d.shift().replace(/data:/,""),t=decodeURIComponent(d.join(";").replace(/^[^,]*,/,"")),-1!=["image/svg+xml","application/json","text/csv"].indexOf(f))return u=new Blob([t],{type:f}),window.navigator.msSaveBlob(u,e),[2,!0];try{s=atob(t),t=s}catch(t){return[2,!1]}for(l=new Array(t.length),h=0;h<t.length;++h)c=t.charCodeAt(h),l[h]=c;p=new Blob([new Uint8Array(l)],{type:f}),window.navigator.msSaveBlob(p,e)}else this.legacyIE()&&4===(d=t.match(/^data:(.*);[ ]*([^,]*),(.*)$/)).length&&("base64"==d[2]?d[1].match(/^image\//)&&this.showModal('<img src="'+t+'" style="float: left; max-width: 50%; max-height: 80%; margin: 0 1em 0.5em 0; border: 1px solid #eee;" /><p>'+this.language.translate('To save the image, right-click thumbnail on the left and choose "Save picture as..."')+'</p><p style="text-align: center;"><small>'+this.language.translate("(Press ESC to close this message)")+"</small></p>",this.language.translate("Image Export Complete")):(f=void 0,e.match(/\.svg$/)?f="image/svg+xml":(f="text/plain",e+=".txt"),(g=document.createElement("iframe")).width="1px",g.height="1px",g.style.display="none",document.body.appendChild(g),(m=g.contentDocument).open(f,"replace"),m.write(decodeURIComponent(d[3])),m.close(),m.execCommand("SaveAs",!0,e),document.body.removeChild(g)));return[2,!0]})})},e.prototype.downloadSupport=function(){return this.linkDownloadSupport()||this.msBlobDownloadSupport()},e.prototype.linkDownloadSupport=function(){var t=m.b.getCache("linkDownloadSupport");if(!1===t||!0===t)return t;var e=void 0!==document.createElement("a").download;return m.b.setCache("linkDownloadSupport",e),e},e.prototype.msBlobDownloadSupport=function(){return x.hasValue(window.navigator.msSaveOrOpenBlob)},e.prototype.legacyIE=function(){var t=document.createElement("div");return t.innerHTML="\x3c!--[if lt IE 10]><i></i><![endif]--\x3e",1==t.getElementsByTagName("i").length},e.prototype.print=function(t,e,i){return r.b(this,void 0,void 0,function(){return r.d(this,function(n){return"css"==e.printMethod?[2,this.printViaCSS(t,e,i)]:[2,this.printViaIframe(t,e,i)]})})},e.prototype.printViaCSS=function(t,e,i){return r.b(this,void 0,void 0,function(){var n,o,a,s;return r.d(this,function(r){return n=document.documentElement.scrollTop||document.body.scrollTop,o=new b.c("body > *",{display:"none",position:"fixed",visibility:"hidden",opacity:"0",clipPath:"polygon(0px 0px,0px 0px,0px 0px,0px 0px);"}),i&&document&&document.title&&(a=document.title,document.title=i),(s=new Image).src=t,s.style.maxWidth="100%",s.style.display="block",s.style.position="relative",s.style.visibility="visible",s.style.opacity="1",s.style.clipPath="none",document.body.appendChild(s),this.setTimeout(function(){window.print()},50),/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream&&e.delay<1e3?e.delay=1e3:e.delay<100&&(e.delay=100),this.setTimeout(function(){document.body.removeChild(s),o.dispose(),a&&(document.title=document.title),document.documentElement.scrollTop=document.body.scrollTop=n},e.delay||500),[2,!0]})})},e.prototype.printViaIframe=function(t,e,i){return r.b(this,void 0,void 0,function(){var n,o;return r.d(this,function(r){return(n=document.createElement("iframe")).style.visibility="hidden",document.body.appendChild(n),n.contentWindow.document.open(),n.contentWindow.document.close(),(o=new Image).src=t,o.style.maxWidth="100%",i&&(n.contentWindow.document.title=i),n.contentWindow.document.body.appendChild(o),n.load=function(){n.contentWindow.document.body.appendChild(o)},this.setTimeout(function(){try{n.contentWindow.document.execCommand("print",!1,null)||n.contentWindow.print()}catch(t){n.contentWindow.print()}},e.delay||50),/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream&&e.delay<1e3?e.delay=1e3:e.delay<100&&(e.delay=100),this.setTimeout(function(){document.body.removeChild(n)},e.delay+50||100),[2,!0]})})},e.prototype.findBackgroundColor=function(t){var e=1,i="";if(t.currentStyle?i=t.currentStyle["background-color"]:window.getComputedStyle&&(i=document.defaultView.getComputedStyle(t,null).getPropertyValue("background-color")),(i.match(/[^,]*,[^,]*,[^,]*,[ ]?0/)||"transparent"==i)&&(e=0),0==e){var n=t.parentElement;return n?this.findBackgroundColor(n):Object(g.c)("#fff")}return Object(g.c)(i,e)},Object.defineProperty(e.prototype,"container",{get:function(){return this.adapter.apply("container",{container:this._container}).container},set:function(t){this._container=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sprite",{get:function(){return this.adapter.apply("sprite",{sprite:this._sprite}).sprite},set:function(t){this._sprite=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"extraSprites",{get:function(){return this.adapter.apply("extraSprites",{extraSprites:this._extraSprites}).extraSprites},set:function(t){this._extraSprites=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"data",{get:function(){return this.adapter.apply("data",{data:this._data}).data},set:function(t){this._data=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataFields",{get:function(){return this._dataFields||this.generateDataFields(),this.adapter.apply("dataFields",{dataFields:this._dataFields}).dataFields},set:function(t){this._dataFields=t,this._dynamicDataFields=!1},enumerable:!0,configurable:!0}),e.prototype.handleDataUpdated=function(){this._dynamicDataFields&&(this._dataFields=void 0)},Object.defineProperty(e.prototype,"dateFormatter",{get:function(){return this._dateFormatter||(this._dateFormatter=new c.a),this.adapter.apply("dateFormatter",{dateFormatter:this._dateFormatter}).dateFormatter},set:function(t){this._dateFormatter=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dateFormat",{get:function(){return this.adapter.apply("dateFormat",{dateFormat:this._dateFormat}).dateFormat},set:function(t){this._dateFormat=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dateFields",{get:function(){return this._dateFields||(this._dateFields=new l.b),this.adapter.apply("dateFields",{dateFields:this._dateFields}).dateFields},set:function(t){this._dateFields=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"durationFormatter",{get:function(){return this._durationFormatter||(this._durationFormatter=new p.a),this.adapter.apply("durationFormatter",{durationFormatter:this._durationFormatter}).durationFormatter},set:function(t){this._durationFormatter=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"durationFormat",{get:function(){return this.adapter.apply("durationFormat",{durationFormat:this._durationFormat}).durationFormat},set:function(t){this._durationFormat=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"durationFields",{get:function(){return this._durationFields||(this._durationFields=new l.b),this.adapter.apply("durationFields",{durationFields:this._durationFields}).durationFields},set:function(t){this._durationFields=t},enumerable:!0,configurable:!0}),e.prototype.generateDataFields=function(){var t=this;this._dataFields={},this.data.length&&w.each(this.data,function(e){v.each(e,function(e,i){x.hasValue(t._dataFields[e])||(t._dataFields[e]=t.adapter.apply("dataFieldName",{name:e,field:e}).name)})})},e.prototype.isDateField=function(t){return this.adapter.apply("isDateField",{isDateField:this.dateFields.contains(t),field:t}).isDateField},e.prototype.isDurationField=function(t){return this.adapter.apply("isDurationField",{isDurationField:this.durationFields.contains(t),field:t}).isDurationField},e.prototype.getContentType=function(t){var e="";switch(t){case"png":case"gif":e="image/"+t;break;case"jpg":e="image/jpeg";break;case"svg":e="image/svg+xml";break;case"csv":e="text/csv";break;case"json":e="application/json";break;case"pdf":e="application/pdf";break;case"xlsx":e="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}return this.adapter.apply("contentType",{contentType:e,type:t}).contentType},Object.defineProperty(e.prototype,"filePrefix",{get:function(){return this.adapter.apply("filePrefix",{filePrefix:this._filePrefix}).filePrefix},set:function(t){this._filePrefix=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"backgroundColor",{get:function(){return this.adapter.apply("backgroundColor",{backgroundColor:this._backgroundColor}).backgroundColor},set:function(t){this._backgroundColor=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"title",{get:function(){return this.adapter.apply("title",{title:this._title}).title},set:function(t){this._title=t},enumerable:!0,configurable:!0}),e.prototype.showPreloader=function(){var t=this.preloader;t&&(t.progress=.5,t.label.text="...")},e.prototype.hidePreloader=function(){var t=this.preloader;t&&(t.progress=1)},Object.defineProperty(e.prototype,"preloader",{get:function(){return this._sprite&&this._sprite.parent&&this._sprite.parent.preloader?this._sprite.parent.preloader:void 0},enumerable:!0,configurable:!0}),e.prototype.showTimeout=function(){this.showModal(this.adapter.apply("timeoutMessage",{message:this.language.translate("Export operation took longer than expected. Something might have gone wrong.")}).message)},e.prototype.hideTimeout=function(){this._timeoutTimeout&&(this.removeDispose(this._timeoutTimeout),this._timeoutTimeout=null),this.hideModal()},Object.defineProperty(e.prototype,"language",{get:function(){return this._language||(this._language=new d.a),this._language},set:function(t){this._language=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"modal",{get:function(){return this._modal||(this._modal=new u.a,this._modal.adapter.add("classPrefix",function(t){return t=y.a.classNamePrefix+t})),this._modal},enumerable:!0,configurable:!0}),e.prototype.showModal=function(t,e){this.hideModal(),this.hidePreloader();var i=this.modal;i.container=this.sprite.svgContainer.SVGContainer,i.content=t,i.readerTitle=e,i.open()},e.prototype.hideModal=function(){this._modal&&this.modal.close()},e.prototype._canvg=function(){return r.b(this,void 0,void 0,function(){var t;return r.d(this,function(e){switch(e.label){case 0:return[4,i.e("0471").then(i.bind(null,"pu93"))];case 1:return null!=(t=e.sent()).default?[2,t.default]:[2,t]}})})},Object.defineProperty(e.prototype,"canvg",{get:function(){return this._canvg()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pdfmake",{get:function(){return null==n&&(n=function(){return r.b(this,void 0,void 0,function(){var t,e,n,o;return r.d(this,function(r){switch(r.label){case 0:return[4,Promise.all([i.e("076f").then(i.bind(null,"o2M+")),i.e("076f").then(i.bind(null,"/9Au"))])];case 1:return t=r.sent(),e=t[0],n=t[1],(o=window).pdfMake=o.pdfMake||{},o.pdfMake.vfs=n.default,e.vfs=n.default,[2,e]}})})}()),n},enumerable:!0,configurable:!0}),e.prototype._xlsx=function(){return r.b(this,void 0,void 0,function(){return r.d(this,function(t){switch(t.label){case 0:return[4,i.e("bf3e").then(i.bind(null,"s5xg"))];case 1:return[2,t.sent()]}})})},Object.defineProperty(e.prototype,"xlsx",{get:function(){return this._xlsx()},enumerable:!0,configurable:!0}),e.prototype.setFormatOptions=function(t,e){this._formatOptions.setKey(t,e)},e.prototype.getFormatOptions=function(t){return this._formatOptions.getKey(t)},e.prototype._disablePointers=function(){x.hasValue(this._spriteInteractionsEnabled)||(this._spriteInteractionsEnabled=this.sprite.interactionsEnabled),this.sprite.interactionsEnabled=!1},e.prototype._releasePointers=function(){x.hasValue(this._spriteInteractionsEnabled)&&(this.sprite.interactionsEnabled=this._spriteInteractionsEnabled)},e.prototype.hideNonExportableSprites=function(){var t=this;if(!this._objectsAlreadyHidden){var e=this.sprite.svgContainer;e&&w.each(e.nonExportableSprites,function(e){e.isHidden||e.isHiding||t._hiddenObjects.push(e),e.hide(0)}),this._objectsAlreadyHidden=!0}},e.prototype.restoreNonExportableSprites=function(){this._objectsAlreadyHidden&&(w.each(this._hiddenObjects,function(t){t.show(0)}),this._hiddenObjects=[],this._objectsAlreadyHidden=!1)},e.prototype.processConfig=function(e){m.b.registeredClasses.ExportMenu=o.a,e&&x.hasValue(e.menu)&&!x.hasValue(e.menu.type)&&(e.menu.type="ExportMenu"),t.prototype.processConfig.call(this,e)},e.XLINK="http://www.w3.org/1999/xlink",e}(f.a)},GIxq:function(t,e,i){var n=i("DVYA");t.exports=function(t,e){if("number"!=typeof t&&"Number"!=n(t))throw TypeError(e);return+t}},GQop:function(t,e,i){"use strict";var n=i("AEc5");t.exports=function(t,e){return!!t&&n(function(){e?t.call(null,function(){},1):t.call(null)})}},Gb1H:function(t,e,i){var n=i("T9LF"),r=i("G5U1"),o=i("Vng0"),a=i("wDk4"),s=i("20m4"),u=function(t,e,i){var l,h,c,p,d=t&u.F,f=t&u.G,g=t&u.S,m=t&u.P,y=t&u.B,b=f?n:g?n[e]||(n[e]={}):(n[e]||{}).prototype,v=f?r:r[e]||(r[e]={}),_=v.prototype||(v.prototype={});for(l in f&&(i=e),i)c=((h=!d&&b&&void 0!==b[l])?b:i)[l],p=y&&h?s(c,n):m&&"function"==typeof c?s(Function.call,c):c,b&&a(b,l,c,t&u.U),v[l]!=c&&o(v,l,p),m&&_[l]!=c&&(_[l]=c)};n.core=r,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},Gg2j:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),i.d(e,"PI",function(){return r}),i.d(e,"HALFPI",function(){return o}),i.d(e,"RADIANS",function(){return a}),i.d(e,"DEGREES",function(){return s}),e.toNumberRange=function(t,e,i){if(n.hasValue(t))return l(t=n.toNumber(t),e,i);return t},e.round=u,e.ceil=function(t,e){if(!n.isNumber(e)||e<=0)return Math.ceil(t);var i=Math.pow(10,e);return Math.ceil(t*i)/i},e.stretch=function(t,e,i){return t*(i-e)+e},e.fitToRange=l,e.sin=h,e.tan=function(t){return u(Math.tan(a*t),10)},e.cos=c,e.max=p,e.min=d,e.closest=function(t,e){return t.reduce(function(t,i){return Math.abs(i-e)<Math.abs(t-e)?i:t})},e.intersect=function(t,e){var i=n.getValue(t.start),r=n.getValue(e.start),o=n.getValue(t.end),a=n.getValue(e.end);return Math.max(i,r)<=Math.min(o,a)},e.invertRange=function(t){var e=n.getValue(t.start);return{start:1-n.getValue(t.end),end:1-e}},e.intersection=function(t,e){var i=n.getValue(t.start),r=n.getValue(e.start),o=n.getValue(t.end),a=n.getValue(e.end),s=Math.max(i,r),u=Math.min(o,a);return u<s?void 0:{start:s,end:u}},e.getDistance=f,e.getScale=function(t,e,i,n){var r=f(e,n),o=f(t,i);return Math.abs(o/r)},e.getMidPoint=function(t,e,i){n.isNumber(i)||(i=.5);return{x:t.x+(e.x-t.x)*i,y:t.y+(e.y-t.y)*i}},e.getRotation=g,e.getAngle=m,e.getCenterShift=function(t,e,i,n,r){var o=g(e,i,n,r)-90;o<0&&(o+=360);var a=f(e,n),s=Math.cos(o)/a+e.x,u=Math.cos(o)/a+e.y;return{x:s-t.x,y:u-t.y}},e.getBBox=function(t){if(t){var e=t.length;if(0!==e){for(var i,r=void 0,o=void 0,a=void 0,s=0;s<e;s++){var u=t[s];(!n.isNumber(o)||u.x>o)&&(o=u.x),(!n.isNumber(r)||u.x<r)&&(r=u.x),(!n.isNumber(i)||u.y<i)&&(i=u.y),(!n.isNumber(a)||u.y>a)&&(a=u.y)}return{x:r,y:i,width:o-r,height:a-i}}}return{x:0,y:0,width:0,height:0}},e.getCommonRectangle=function(t){var e=t.length;if(0!==e){for(var i=void 0,n=void 0,r=void 0,o=void 0,a=0;a<e;a++){var s=t[a];i=d(s.x,i),n=d(s.y,n),r=p(s.x+s.width,r),o=p(s.y+s.height,o)}return{x:i,y:n,width:r-i,height:o-n}}},e.getPointOnQuadraticCurve=function(t,e,i,n){var r=(1-n)*(1-n)*t.x+2*(1-n)*n*i.x+n*n*e.x,o=(1-n)*(1-n)*t.y+2*(1-n)*n*i.y+n*n*e.y;return{x:r,y:o}},e.getPointOnCubicCurve=function(t,e,i,n,r){var o={x:0,y:0},a=1-r,s=a*a,u=s*a;return o.x=t.x*u+3*i.x*s*r+3*n.x*a*r*r+e.x*r*r*r,o.y=t.y*u+3*i.y*s*r+3*n.y*a*r*r+e.y*r*r*r,o},e.getCubicControlPointA=function(t,e,i,n,r,o){return r=y(r),o=y(o),{x:(-t.x+e.x/r+i.x)*r,y:(-t.y+e.y/o+i.y)*o}},e.getCubicControlPointB=function(t,e,i,n,r,o){return r=y(r),o=y(o),{x:(e.x+i.x/r-n.x)*r,y:(e.y+i.y/o-n.y)*o}},e.adjustTension=y,e.normalizeAngle=b,e.fitAngleToRange=function(t,e,i){if(e>i){var n=e;e=i,i=n}t=b(t);var r=(e-b(e))/360;t<e&&(t+=360*(r+1));t>i&&(t-360>e?t-=360:t=t<e+(i-e)/2+180?i:e);t<e&&(t=t>e+(i-e)/2-180?e:i);return t},e.getArcRect=function(t,e,i){var r=Number.MAX_VALUE,o=Number.MAX_VALUE,a=-Number.MAX_VALUE,s=-Number.MAX_VALUE,u=[];n.isNumber(i)||(i=1);u.push(v(i,t)),u.push(v(i,e));for(var l=Math.min(90*Math.floor(t/90),90*Math.floor(e/90)),h=Math.max(90*Math.ceil(t/90),90*Math.ceil(e/90)),c=l;c<=h;c+=90)c>=t&&c<=e&&u.push(v(i,c));for(var p=0;p<u.length;p++){var d=u[p];d.x<r&&(r=d.x),d.y<o&&(o=d.y),d.x>a&&(a=d.x),d.y>s&&(s=d.y)}return{x:r,y:o,width:a-r,height:s-o}},e.getArcPoint=v,e.isInRectangle=function(t,e){if(t.x>=e.x&&t.x<=e.x+e.width&&t.y>e.y&&t.y<e.y+e.height)return!0;return!1},e.getLineIntersection=function(t,e,i,n){var r=((t.x*e.y-e.x*t.y)*(i.x-n.x)-(t.x-e.x)*(i.x*n.y-i.y*n.x))/((t.x-e.x)*(i.y-n.y)-(t.y-e.y)*(i.x-n.x)),o=((t.x*e.y-e.x*t.y)*(i.y-n.y)-(t.y-e.y)*(i.x*n.y-i.y*n.x))/((t.x-e.x)*(i.y-n.y)-(t.y-e.y)*(i.x-n.x));return{x:r,y:o}};var n=i("Mtpk"),r=Math.PI,o=r/2,a=r/180,s=180/r;function u(t,e,i){if(!n.isNumber(e)||e<=0){var r=Math.round(t);return i&&r-t==.5&&r--,r}var o=Math.pow(10,e);return Math.round(t*o)/o}function l(t,e,i){if(n.isNumber(e)){if(n.isNumber(i)&&i<e){var r=i;i=e,e=r}t<e&&(t=e)}return n.isNumber(i)&&t>i&&(t=i),t}function h(t){return u(Math.sin(a*t),10)}function c(t){return u(Math.cos(a*t),10)}function p(t,e){return n.isNumber(t)?n.isNumber(e)&&e>t?e:t:n.isNumber(e)?e:null}function d(t,e){return n.isNumber(t)?n.isNumber(e)&&e<t?e:t:n.isNumber(e)?e:null}function f(t,e){return t?(e||(e={x:0,y:0}),Math.sqrt(Math.pow(Math.abs(t.x-e.x),2)+Math.pow(Math.abs(t.y-e.y),2))):0}function g(t,e,i,n){var r=m(e,n)-m(t,i);return r<0&&(r+=360),r}function m(t,e){e||(e={x:2*t.x,y:2*t.y});var i=e.x-t.x,n=e.y-t.y,r=Math.atan2(n,i)*s;return r<0&&(r+=360),b(r)}function y(t){return 1-t+1e-5}function b(t){return 360==t?360:t%360}function v(t,e){return{x:t*c(e),y:t*h(e)}}},GqPQ:function(t,e,i){var n=i("Gb1H"),r=i("7GtY");r&&n(n.S,"Reflect",{setPrototypeOf:function(t,e){r.check(t,e);try{return r.set(t,e),!0}catch(t){return!1}}})},GtDR:function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("Vs7R"),o=i("aCit"),a=i("Gg2j"),s=function(t){function e(){var e=t.call(this)||this;return e.className="Rectangle",e.element=e.paper.add("rect"),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this._positionPrecision;this.pixelPerfect&&(e=0);var i=a.round(this.innerWidth,e),n=a.round(this.innerHeight,e);this.element.attr({width:i,height:n})},e.prototype.measureElement=function(){},Object.defineProperty(e.prototype,"bbox",{get:function(){return this.definedBBox?this.definedBBox:this.isMeasured?{x:0,y:0,width:this.innerWidth,height:this.innerHeight}:{x:0,y:0,width:0,height:0}},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.Rectangle=s},GuW4:function(t,e,i){var n=i("Gb1H");n(n.S+n.F,"Object",{assign:i("bdjS")})},Gxer:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("aZcm"),o=i("vJiZ"),a=i("FmWr"),s=i("4BRe"),u=i("L2Mu");n(n.P,"Array",{flatten:function(){var t=arguments[0],e=o(this),i=a(e.length),n=u(e,0);return r(n,e,e,i,0,void 0===t?1:s(t)),n}}),i("M/YL")("flatten")},HDh7:function(t,e,i){"use strict";i.d(e,"b",function(){return d}),i.d(e,"a",function(){return f});var n=i("hD5A"),r=i("UsNi"),o=i("W8Sc"),a=i("vMqJ"),s=i("v9UT"),u=i("58Sn"),l=i("hJ5i"),h=i("Mtpk"),c=i("NlGZ"),p=i.n(c),d=[],f=function(){function t(t){var e=this;this._disposed=!1,this.autoResize=!0,this.nonExportableSprites=[],this._disposers=[],this.cssScale=1,this.htmlElement=t;var i=function(){e.measure()};this.resizeSensor=new p.a(t,i),this._disposers.push(new n.b(function(){e.resizeSensor.detach(i)})),d.push(this);var r=document.createElement("div"),o=r.style;o.width="100%",o.height="100%",o.position="relative",t.appendChild(r),this.SVGContainer=r}return t.prototype.measure=function(){var t=s.width(this.htmlElement),e=s.height(this.htmlElement),i=this.container;i&&(this.width==t&&this.height==e||(this.width=t,this.height=e,t>0&&(i.maxWidth=t),e>0&&(i.maxHeight=e),u.m(this.SVGContainer)),i.maxWidth||(i.maxWidth=0),i.maxHeight||(i.maxHeight=0),this.cssScale=1,this.checkTransform(this.htmlElement))},Object.defineProperty(t.prototype,"container",{get:function(){return this._container},set:function(t){this._container=t,this.measure()},enumerable:!0,configurable:!0}),t.prototype.isDisposed=function(){return this._disposed},t.prototype.dispose=function(){this._disposed||l.remove(d,this),l.each(this._disposers,function(t){t.dispose()})},Object.defineProperty(t.prototype,"hideOverflow",{set:function(t){this.SVGContainer.style.overflow=t?"hidden":""},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"modal",{get:function(){return h.hasValue(this._modal)||(this._modal=new o.a,this._modal.container=this.SVGContainer,this._disposers.push(this._modal)),this._modal},enumerable:!0,configurable:!0}),t.prototype.openModal=function(t,e){this.closeModal();var i=this.modal;return i.content=t,i.readerTitle=e,i.open(),i},t.prototype.closeModal=function(){this._modal&&this.modal.close()},Object.defineProperty(t.prototype,"popups",{get:function(){if(!h.hasValue(this._popups)){var t=new r.a;t.container=this.SVGContainer,this._popups=new a.e(t),this._disposers.push(new a.c(this._popups)),this._disposers.push(this._popups.template)}return this._popups},enumerable:!0,configurable:!0}),t.prototype.openPopup=function(t,e){var i=this.popups.create();return i.content=t,h.hasValue(e)&&(i.title=e),i.open(),i},t.prototype.closeAllPopups=function(){this.popups.each(function(t){t.close()})},t.prototype.checkTransform=function(t){if(window.getComputedStyle){if(t&&t.style){var e=window.getComputedStyle(t,null);if(e){var i=e.getPropertyValue("-webkit-transform")||e.getPropertyValue("-moz-transform")||e.getPropertyValue("-ms-transform")||e.getPropertyValue("-o-transform")||e.getPropertyValue("transform");if(i&&"none"!==i){var n=i.split("(")[1].split(")")[0].split(","),r=Number(n[0]),o=Number(n[1]),a=Math.sqrt(r*r+o*o);isNaN(a)||(this.cssScale*=a)}}}t.parentNode&&t.parentNode instanceof HTMLElement&&this.checkTransform(t.parentNode)}},t}()},HW78:function(t,e,i){t.exports=!i("gD3S")&&!i("AEc5")(function(){return 7!=Object.defineProperty(i("+wz8")("div"),"a",{get:function(){return 7}}).a})},HfWV:function(t,e,i){"use strict";var n=i("m4/l"),r=i("AC2I"),o=i("d+vC"),a=i("qzbU"),s=i("hD5A"),u=i("aCit"),l=i("v9UT"),h=i("hGwe"),c=function(t){function e(){var e=t.call(this)||this;return e._label=new s.d,e._slice=new s.d,e.className="FunnelTick",e.element=e.paper.add("path"),e._disposers.push(e._label),e._disposers.push(e._slice),e.setPropertyValue("locationX",0),e.setPropertyValue("locationY",0),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.slice,i=e.getPoint(this.locationX,this.locationY);if(i){var n=this.label,r=e.dataItem.component;if("vertical"==r.orientation){var o=n.pixelX,a=n.pixelY;r.labelsOpposite||(o+=n.maxRight);var s=l.spritePointToSprite(i,e,this.parent),u=l.spritePointToSprite({x:o,y:a},n.parent,this.parent);this.path=h.moveTo(s)+h.lineTo(u)}else{o=n.pixelX,a=n.pixelY;r.labelsOpposite||(a+=n.maxBottom);s=l.spritePointToSprite(i,e,this.parent),u=l.spritePointToSprite({x:o,y:a},n.parent,this.parent);this.path=h.moveTo(s)+h.lineTo(u)}}},Object.defineProperty(e.prototype,"slice",{get:function(){return this._slice.get()},set:function(t){this._slice.set(t,new s.c([t.events.on("transformed",this.invalidate,this,!1),t.events.on("validated",this.invalidate,this,!1)]))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return this._label.get()},set:function(t){this._label.set(t,t.events.on("transformed",this.invalidate,this,!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"locationX",{get:function(){return this.getPropertyValue("locationX")},set:function(t){this.setPropertyValue("locationX",t,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"locationY",{get:function(){return this.getPropertyValue("locationY")},set:function(t){this.setPropertyValue("locationY",t,!1,!0)},enumerable:!0,configurable:!0}),e}(a.a);u.b.registeredClasses.FunnelTick=c;var p=i("vMqJ"),d=i("Gg2j"),f=i("Wglt"),g=i("Mtpk"),m=i("tjMS");i.d(e,"b",function(){return y}),i.d(e,"a",function(){return b});var y=function(t){function e(){var e=t.call(this)||this;return e.className="FunnelSeriesDataItem",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"sliceLink",{get:function(){var t=this;if(!this._sliceLink){var e=this.component.sliceLinks.create();this._sliceLink=e,this._disposers.push(e),e.parent=this.component.slicesContainer,this._disposers.push(new s.b(function(){t.component&&t.component.sliceLinks.removeValue(e)})),this.addSprite(e),e.visible=this.visible}return this._sliceLink},enumerable:!0,configurable:!0}),e}(r.b),b=function(t){function e(){var e=t.call(this)||this;return e._nextY=0,e.className="FunnelSeries",e.orientation="vertical",e.width=Object(m.c)(100),e.height=Object(m.c)(100),e.slicesContainer.width=Object(m.c)(100),e.slicesContainer.height=Object(m.c)(100),e._disposers.push(e.slicesContainer.events.on("maxsizechanged",e.invalidateDataItems,e,!1)),e.labelsOpposite=!0,e.labelsContainer.layout="absolute",e.bottomRatio=0,e.applyTheme(),e}return n.c(e,t),e.prototype.createSlice=function(){return new o.a},e.prototype.createTick=function(){return new c},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),g.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Funnel Series"))},e.prototype.createDataItem=function(){return new y},e.prototype.initSlice=function(t){t.isMeasured=!1,t.defaultState.properties.scale=1,t.observe("scale",this.handleSliceScale,this),t.observe(["dx","dy","x","y"],this.handleSliceMove,this),t.tooltipText="{category}: {value.percent.formatNumber('#.#')}% ({value.value})",t.states.create("hover").properties.expandDistance=.2},e.prototype.initLabel=function(e){t.prototype.initLabel.call(this,e),e.verticalCenter="middle",e.horizontalCenter="middle",e.isMeasured=!0,e.padding(5,5,5,5)},e.prototype.validate=function(){t.prototype.validate.call(this),this._nextY=0},e.prototype.validateDataElements=function(){var e=this.slicesContainer,i=this.labelsContainer,n=this.labels.template;this.alignLabels?(n.interactionsEnabled=!0,e.isMeasured=!0,i.isMeasured=!0):(n.interactionsEnabled=!1,e.isMeasured=!1,i.isMeasured=!1);var r=0,o=0;this.dataItems.each(function(t){g.hasValue(t.value)&&(o++,t.value>0?r+=t.getWorkingValue("value")/t.value:r+=1)}),this._total=1/o*r,this._count=o,t.prototype.validateDataElements.call(this),this.arrangeLabels()},e.prototype.getNextValue=function(t){var e=t.index,i=t.getWorkingValue("value");if(e<this.dataItems.length-1){var n=this.dataItems.getIndex(e+1);if(i=n.getWorkingValue("value"),!n.visible||n.isHiding)return this.getNextValue(n)}return i},e.prototype.formDataElement=function(){},e.prototype.validateDataElement=function(e){if(g.hasValue(e.value)){var i=e.slice;i.orientation=this.orientation;var n=e.sliceLink;n.orientation=this.orientation;var r=e.tick,o=e.label;r.slice=i,r.label=o,this.decorateSlice(e),n.fill=i.fill,e.index==this.dataItems.length-1&&(n.disabled=!0),t.prototype.validateDataElement.call(this,e)}},e.prototype.decorateSlice=function(t){var e=t.slice,i=t.sliceLink,n=t.label,r=t.tick,o=this.slicesContainer.innerWidth,a=this.slicesContainer.innerHeight,s=this.getNextValue(t),u=t.getWorkingValue("value"),l=this.bottomRatio,h=1;if(t.value>0&&(h=u/t.value),"vertical"==this.orientation){var c=i.pixelHeight*h;a+=c,e.topWidth=u/this.dataItem.values.value.high*o,e.bottomWidth=(u-(u-s)*l)/this.dataItem.values.value.high*o,i.topWidth=e.bottomWidth,i.bottomWidth=(u-(u-s))/this.dataItem.values.value.high*o,e.y=this._nextY,e.height=d.max(0,a/this._count*h/this._total-c),e.x=o/2,this.alignLabels?n.x=void 0:n.x=e.x,n.y=e.pixelY+e.pixelHeight*r.locationY,this._nextY+=e.pixelHeight+c,i.y=this._nextY-c,i.x=e.x}else{var p=i.pixelWidth*h;o+=p,e.topWidth=u/this.dataItem.values.value.high*a,e.bottomWidth=(u-(u-s)*l)/this.dataItem.values.value.high*a,i.topWidth=e.bottomWidth,i.bottomWidth=(u-(u-s))/this.dataItem.values.value.high*a,e.x=this._nextY,e.width=o/this._count*h*1/this._total-p,e.y=a/2,this.alignLabels?n.y=this.labelsContainer.measuredHeight:n.y=e.y,n.x=e.pixelX+e.pixelWidth*r.locationX,this._nextY+=e.pixelWidth+p,i.x=this._nextY-p,i.y=e.y}},e.prototype.arrangeLabels=function(){if(this.alignLabels){var t=this.labels.length;if(t>1){var e=this.labels.getIndex(t-1),i=e.pixelY,n=e.pixelX;if(t>1){for(var r=t-2;r>=0;r--){(o=this.labels.getIndex(r)).visible&&(o.invalid&&o.validate(),"vertical"==this.orientation?o.pixelY+o.measuredHeight>i&&(o.y=i-o.measuredHeight):o.pixelX+o.measuredWidth>n&&(o.x=n-o.measuredWidth),i=o.pixelY,n=o.pixelX)}i=0,n=0;for(r=0;r<t;r++){var o;(o=this.labels.getIndex(r)).visible&&(o.invalid&&o.validate(),"vertical"==this.orientation?o.pixelY<i&&(o.y=i):o.pixelX<n&&(o.x=n),i+=o.measuredHeight,n+=o.measuredWidth)}}}}},e.prototype.positionBullet=function(e){t.prototype.positionBullet.call(this,e);var i=e.dataItem.slice,n=e.locationX;g.isNumber(n)||(n=.5);var r=e.locationY;g.isNumber(r)||(r=1),e.x=i.pixelX+i.measuredWidth*n,e.y=i.pixelY+i.measuredHeight*r},Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t)&&(this.labelsOpposite=this.labelsOpposite,this.invalidate(),"vertical"==t?(this.ticks.template.locationX=1,this.ticks.template.locationY=.5,this.labels.template.rotation=0,this.layout="horizontal"):(this.ticks.template.locationX=.5,this.ticks.template.locationY=1,this.labels.template.rotation=-90,this.layout="vertical"))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottomRatio",{get:function(){return this.getPropertyValue("bottomRatio")},set:function(t){this.setPropertyValue("bottomRatio",t)&&this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sliceLinks",{get:function(){if(!this._sliceLinks){var t=new o.a;t.applyOnClones=!0,t.fillOpacity=.5,t.expandDistance=-.3,t.hiddenState.properties.opacity=0,this._disposers.push(t),this._sliceLinks=new p.e(t),this._disposers.push(new p.c(this._sliceLinks))}return this._sliceLinks},enumerable:!0,configurable:!0}),e.prototype.show=function(e){var i=this,n=this.startIndex,r=this.endIndex,o=this.defaultState.transitionDuration;g.isNumber(e)&&(o=e);var a=0;return f.each(f.indexed(this.dataItems.iterator()),function(t){var e=t[0],s=t[1];i.sequencedInterpolation&&(a=i.sequencedInterpolationDelay*e+o*(e-n)/(r-n)),s.show(o,a,["value"])}),t.prototype.show.call(this,e)},e.prototype.hide=function(e){var i=this,n=["value"],r=this.startIndex,o=this.endIndex,a=0,s=this.hiddenState.transitionDuration;g.isNumber(e)&&(s=e),f.each(f.indexed(this.dataItems.iterator()),function(t){var e=t[0],u=t[1];i.sequencedInterpolation&&(a=i.sequencedInterpolationDelay*e+s*(e-r)/(o-r)),u.hide(s,a,0,n)});var u=t.prototype.hide.call(this,e);return u&&!u.isFinished()&&u.delay(a),u},e.prototype.setAlignLabels=function(e){t.prototype.setAlignLabels.call(this,e),this.ticks.template.disabled=!e;var i=this.labelsContainer;i&&(e?(i.height=void 0,i.width=void 0,i.margin(10,10,10,10)):(i.width=Object(m.c)(100),i.height=Object(m.c)(100))),this.labelsOpposite=this.labelsOpposite},Object.defineProperty(e.prototype,"labelsOpposite",{get:function(){return this.getPropertyValue("labelsOpposite")},set:function(t){this.setPropertyValue("labelsOpposite",t);var e=this.labels.template,i="none",n="none";this.alignLabels?t?(this.labelsContainer.toFront(),"vertical"==this.orientation?(this.ticks.template.locationX=1,e.horizontalCenter="left",i="right"):(this.ticks.template.locationY=1,e.horizontalCenter="right",n="bottom")):(this.labelsContainer.toBack(),"vertical"==this.orientation?(this.ticks.template.locationX=0,i="left"):(n="top",this.ticks.template.locationY=0)):"vertical"==this.orientation?i="center":n="middle",e.align=i,e.valign=n,this.validateLayout(),this.ticks.each(function(t){t.invalidate()}),this.invalidateDataItems()},enumerable:!0,configurable:!0}),e}(r.a);u.b.registeredClasses.FunnelSeries=b,u.b.registeredClasses.FunnelSeriesDataItem=y},Hg48:function(t,e,i){"use strict";i.d(e,"b",function(){return v}),i.d(e,"a",function(){return _});var n=i("m4/l"),r=i("VIOb"),o=i("vMqJ"),a=i("+qIf"),s=i("C6dT"),u=i("aCit"),l=i("eske"),h=i("s9al"),c=i("/e9j"),p=i("DHte"),d=i("8ZqG"),f=i("Wglt"),g=i("Mtpk"),m=i("3Cxr"),y=i("MlsF"),b=i("hD5A"),v=function(t){function e(){var e=t.call(this)||this;return e.className="FlowDiagramDataItem",e.values.value={},e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"fromName",{get:function(){return this.properties.fromName},set:function(t){this.setProperty("fromName",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"toName",{get:function(){return this.properties.toName},set:function(t){this.setProperty("toName",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){return this.properties.color},set:function(t){this.setProperty("color",Object(d.e)(t))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.values.value.value},set:function(t){this.setValue("value",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"link",{get:function(){var t=this;if(!this._link){var e=this.component.links.create();this._link=e,this.addSprite(e),this._disposers.push(new b.b(function(){t.component&&t.component.links.removeValue(e)}))}return this._link},enumerable:!0,configurable:!0}),e}(r.b),_=function(t){function e(){var e=t.call(this)||this;e.colors=new p.a,e.className="FlowDiagram",e.nodePadding=20,e.sortBy="none",e.sequencedInterpolation=!0,e.colors.step=2,e.minNodeSize=.02;var i=e.chartContainer.createChild(s.a);i.shouldClone=!1,i.layout="none",i.isMeasured=!1,e.linksContainer=i;var n=e.chartContainer.createChild(s.a);return n.shouldClone=!1,n.layout="none",n.isMeasured=!1,e.nodesContainer=n,e.dataItem=e.createDataItem(),e.dataItem.component=e,e.applyTheme(),e}return n.c(e,t),e.prototype.dispose=function(){t.prototype.dispose.call(this),this.dataItem.dispose()},e.prototype.validateData=function(){var e=this;0==this._parseDataFrom&&this.nodes.clear(),this.sortNodes(),this.colors.reset(),t.prototype.validateData.call(this);var i,n,r=0,o=0;f.each(this.dataItems.iterator(),function(t){var a=t.fromName;a&&((s=e.nodes.getKey(a))||((s=e.nodes.create(a)).name=a,s.chart=e,s.dataItem=t),t.fromNode=s,t.fromNode.outgoingDataItems.push(t));var s,u=t.toName;u&&((s=e.nodes.getKey(u))||((s=e.nodes.create(u)).name=u,s.chart=e,s.dataItem=t),t.toNode=s,t.toNode.incomingDataItems.push(t));if(!t.fromNode){var l=new c.a;l.opacities=[0,1],t.link.strokeModifier=l}if(!t.toNode){var h=new c.a;h.opacities=[1,0],t.link.strokeModifier=h}var p=t.value;g.isNumber(p)&&(r+=p,o++,(i>p||!g.isNumber(i))&&(i=p),(n<p||!g.isNumber(n))&&(n=p))});var a="value";this.dataItem.setCalculatedValue(a,n,"high"),this.dataItem.setCalculatedValue(a,i,"low"),this.dataItem.setCalculatedValue(a,r,"sum"),this.dataItem.setCalculatedValue(a,r/o,"average"),this.dataItem.setCalculatedValue(a,o,"count"),f.each(this.nodes.iterator(),function(t){var i=t[1];i.fill instanceof d.a&&(i.color=i.fill),void 0==i.color&&(i.color=e.colors.next()),void 0!=i.dataItem.color&&(i.color=i.dataItem.color),i.dataItem.visible||i.hide(0),e.getNodeValue(i)}),this.sortNodes(),this.feedLegend()},e.prototype.handleDataItemWorkingValueChange=function(t,e){this.invalidate()},e.prototype.sortNodes=function(){"name"==this.sortBy?this._sorted=this.nodes.sortedIterator():"value"==this.sortBy?this._sorted=f.sort(this.nodes.iterator(),function(t,e){return y.b(m.order(t[1].total,e[1].total))}):this._sorted=this.nodes.iterator()},e.prototype.getNodeValue=function(t){var e=0,i=0;f.each(t.incomingDataItems.iterator(),function(t){var i=t.getWorkingValue("value");g.isNumber(i)&&(e+=i)}),f.each(t.outgoingDataItems.iterator(),function(t){var e=t.getWorkingValue("value");g.isNumber(e)&&(i+=e)}),t.total=e+i,t.totalIncoming=e,t.totalOutgoing=i},e.prototype.changeSorting=function(){this.sortNodes()},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),g.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Flow diagram"))},e.prototype.createDataItem=function(){return new v},Object.defineProperty(e.prototype,"nodePadding",{get:function(){return this.getPropertyValue("nodePadding")},set:function(t){this.setPropertyValue("nodePadding",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sortBy",{get:function(){return this.getPropertyValue("sortBy")},set:function(t){this.setPropertyValue("sortBy",t),this.changeSorting()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minNodeSize",{get:function(){return this.getPropertyValue("minNodeSize")},set:function(t){this.setPropertyValue("minNodeSize",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nodes",{get:function(){return this._nodes||(this._nodes=new a.c(this.createNode()),this._disposers.push(new a.b(this._nodes))),this._nodes},enumerable:!0,configurable:!0}),e.prototype.createNode=function(){var t=new l.a;return this._disposers.push(t),t},Object.defineProperty(e.prototype,"links",{get:function(){return this._links||(this._links=new o.e(this.createLink()),this._disposers.push(new o.c(this._links))),this._links},enumerable:!0,configurable:!0}),e.prototype.createLink=function(){var t=new h.a;return this._disposers.push(t),t},e.prototype.feedLegend=function(){var t=this.legend;if(t){var e=[];this.nodes.each(function(t,i){e.push(i)}),t.data=e,t.dataFields.name="name"}},e.prototype.disposeData=function(){t.prototype.disposeData.call(this),this.nodes.clear()},e}(r.a);u.b.registeredClasses.FlowDiagram=_},HyzE:function(t,e,i){var n=i("Gb1H"),r=i("aPa3");n(n.G+n.F*(parseFloat!=r),{parseFloat:r})},ID9o:function(t,e,i){var n=i("YEtG")("iterator"),r=!1;try{var o=[7][n]();o.return=function(){r=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!r)return!1;var i=!1;try{var o=[7],a=o[n]();a.next=function(){return{done:i=!0}},o[n]=function(){return a},t(o)}catch(t){}return i}},IGCA:function(t,e,i){"use strict";i("Mvcd")("blink",function(t){return function(){return t(this,"blink","","")}})},ISWh:function(t,e,i){"use strict";i.d(e,"a",function(){return b});var n=i("m4/l"),r=i("C6dT"),o=i("xIv9"),a=i("aGXA"),s=i("zhwk"),u=i("qCRI"),l=i("CnhP"),h=i("aCit"),c=i("WYhe"),p=i("MIZb"),d=i("tjMS"),f=i("Gg2j"),g=i("0FpR"),m=i("Mtpk"),y=i("v9UT"),b=function(t){function e(){var e=t.call(this)||this;e._prevStart=0,e._prevEnd=1,e._isBusy=!1,e._skipRangeEvents=!1,e.updateWhileMoving=!0,e.className="Scrollbar",e.minHeight=12,e.minWidth=12,e.animationDuration=0,e.animationEasing=g.cubicOut,e.margin(10,10,10,10);var i=new p.a,n=e.background;return n.cornerRadius(10,10,10,10),n.fill=i.getFor("fill"),n.fillOpacity=.5,e.startGrip=new o.a,e.endGrip=new o.a,e.events.on("transformed",e.updateThumb,e,!1),e.start=0,e.end=1,e.role="scrollbar",e.thumb.role="slider",e.thumb.readerLive="polite",e.startGrip.role="slider",e.endGrip.role="slider",e.events.once("inited",function(){e._previousStart=void 0,e.dispatchRangeChange()},void 0,!1),e.hideGrips=!1,e.orientation="horizontal",e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),"horizontal"===this.orientation?(m.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Use TAB to select grip buttons or left and right arrows to change selection")),m.hasValue(this.thumb.readerDescription)||(this.thumb.readerDescription=this.language.translate("Use left and right arrows to move selection")),m.hasValue(this.startGrip.readerDescription)||(this.startGrip.readerDescription=this.language.translate("Use left and right arrows to move left selection")),m.hasValue(this.endGrip.readerDescription)||(this.endGrip.readerDescription=this.language.translate("Use left and right arrows to move right selection"))):(m.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Use TAB select grip buttons or up and down arrows to change selection")),m.hasValue(this.thumb.readerDescription)||(this.thumb.readerDescription=this.language.translate("Use up and down arrows to move selection")),m.hasValue(this.startGrip.readerDescription)||(this.startGrip.readerDescription=this.language.translate("Use up and down arrows to move upper selection")),m.hasValue(this.endGrip.readerDescription)||(this.endGrip.readerDescription=this.language.translate("Use up and down arrows to move lower selection")))},e.prototype.validateLayout=function(){this.updateSize(),t.prototype.validateLayout.call(this),this.updateExtremes()},e.prototype.processBackground=function(){t.prototype.processBackground.call(this);var e=this.background;e.clickable=!0,e.events.on("hit",this.handleBgHit,this,void 0)},e.prototype.handleBgHit=function(t){this.makeBusy();var e=t.spritePoint;e=y.spritePointToSprite(e,this.background,this);var i=this.thumb;if("horizontal"==this.orientation){var n=e.x-i.pixelWidth/2;n=f.fitToRange(n,0,this.innerWidth-i.pixelWidth),this._thumbAnimation=i.animate({property:"x",to:n},this.animationDuration,this.animationEasing)}else{var r=e.y-i.pixelHeight/2;r=f.fitToRange(r,0,this.innerHeight-i.pixelHeight),this._thumbAnimation=i.animate({property:"y",to:r},this.animationDuration,this.animationEasing)}this.animationDuration>0?this._thumbAnimation.events.on("animationended",this.makeUnbusy,this,!1):(this._thumb.validate(),this.makeUnbusy())},e.prototype.makeBusy=function(){this._isBusy=!0,this._skipRangeEvents=!1,this._unbusyTimeout&&this.removeDispose(this._unbusyTimeout),this._unbusyTimeout=void 0,this.stopAnimations()},e.prototype.stopAnimations=function(){this._thumbAnimation&&this._thumbAnimation.stop(!0),this._zoomAnimation&&this._zoomAnimation.stop(!0)},e.prototype.makeUnbusy=function(){this._unbusyTimeout=this.setTimeout(this.makeUnbusyReal.bind(this),1.1*this.animationDuration)},e.prototype.makeUnbusyReal=function(){this._usingGrip=void 0,this._isBusy=!1,this.updateWhileMoving||this.dispatchRangeChange()},e.prototype.dispatchRangeChange=function(){this._previousEnd==this.end&&this._previousStart==this.start||(this._previousStart=this.start,this._previousEnd=this.end,this.dispatch("rangechanged"))},e.prototype.updateThumb=function(){if(this.parent){var t=this.thumb,e=this.start,i=this.end,n=this.startGrip,r=this.endGrip;if("horizontal"==this.orientation){var o=this.innerWidth;t.width=o*(i-e),t.maxX=o-t.pixelWidth,t.x=e*o,n.moveTo({x:t.pixelX,y:0},void 0,void 0,!0),r.moveTo({x:t.pixelX+t.pixelWidth,y:0},void 0,void 0,!0),n.readerTitle=this.language.translate("From %1",void 0,this.adapter.apply("positionValue",{value:Math.round(100*e)+"%",position:e}).value),r.readerTitle=this.language.translate("To %1",void 0,this.adapter.apply("positionValue",{value:Math.round(100*i)+"%",position:i}).value)}else{var a=this.innerHeight;t.height=a*(i-e),t.maxY=a-t.pixelHeight,t.y=(1-i)*a,n.moveTo({x:0,y:t.pixelY+t.pixelHeight},void 0,void 0,!0),r.moveTo({x:0,y:t.pixelY},void 0,void 0,!0),n.readerTitle=this.language.translate("To %1",void 0,this.adapter.apply("positionValue",{value:Math.round(100*(1-e))+"%",position:1-e}).value),r.readerTitle=this.language.translate("From %1",void 0,this.adapter.apply("positionValue",{value:Math.round(100*(1-i))+"%",position:1-i}).value)}t.readerTitle=this.language.translate("From %1 to %2",void 0,this.adapter.apply("positionValue",{value:Math.round(100*e)+"%",position:e}).value,this.adapter.apply("positionValue",{value:Math.round(100*i)+"%",position:i}).value),!this._skipRangeEvents&&this.updateWhileMoving&&this.dispatchRangeChange()}},e.prototype.updateExtremes=function(){var t=0,e=0,i=0,n=0;"horizontal"==this.orientation?(i=this.innerWidth,e=n=this.innerHeight/2):(n=this.innerHeight,t=i=this.innerWidth/2);var r=this.startGrip;r.minX=t,r.maxX=i,r.minY=e,r.maxY=n;var o=this.endGrip;o.minX=t,o.maxX=i,o.minY=e,o.maxY=n;var a=this.thumb;a.minX=t,a.maxX=i,a.minY=e,a.maxY=n},e.prototype.updateSize=function(){var t=this.orientation,e=this.startGrip;e&&(e.orientation=t),this.endGrip&&(this.endGrip.orientation=t);var i=this.thumb;i&&("horizontal"==t?(m.isNumber(this._pixelWidth)||(this.width=Object(d.c)(100)),m.hasValue(this.percentHeight)&&(this.height=this.minHeight),i.height=this.innerHeight,i.verticalCenter="middle",i.horizontalCenter="left"):(m.isNumber(this._pixelHeight)||(this.height=Object(d.c)(100)),m.hasValue(this.percentWidth)&&(this.width=this.minWidth),i.width=this.innerWidth,i.verticalCenter="top",i.horizontalCenter="middle"))},Object.defineProperty(e.prototype,"start",{get:function(){return Math.min(this.getPosition(this._start),this.getPosition(this._end))},set:function(t){this._isBusy||(this.__start=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"__start",{get:function(){return this._start},set:function(t){this._start=this.getPosition(t),this.updateThumb()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"end",{get:function(){return Math.max(this.getPosition(this._start),this.getPosition(this._end))},set:function(t){this._isBusy||(this.__end=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"__end",{get:function(){return this._end},set:function(t){this._end=this.getPosition(t),this.updateThumb()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"range",{get:function(){return{start:this.start,end:this.end,priority:this._usingGrip}},enumerable:!0,configurable:!0}),e.prototype.skipRangeEvents=function(){this._isBusy||(this._skipRangeEvents=!0)},e.prototype.fixRange=function(t){t.start==f.round(this._start,2)&&t.end==f.round(this._end,2)||(this._start=t.start,this._end=t.end,this._skipRangeEvents=!0,this.updateThumb(),this._skipRangeEvents=!1,this.thumb.validate(),this.thumb.background.validate())},e.prototype.getPosition=function(t){return f.fitToRange(f.round(t,4),0,1)},Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t)&&("horizontal"===t?(this.startGrip.cursorOverStyle=u.a.horizontalResize,this.endGrip.cursorOverStyle=u.a.horizontalResize):(this.startGrip.cursorOverStyle=u.a.verticalResize,this.endGrip.cursorOverStyle=u.a.verticalResize),this.updateByOrientation(),this.invalidate())},enumerable:!0,configurable:!0}),e.prototype.updateByOrientation=function(){},Object.defineProperty(e.prototype,"startGrip",{get:function(){return this._startGrip},set:function(t){this._startGrip&&this.removeDispose(this._startGrip),this._startGrip=t,this.processGrip(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endGrip",{get:function(){return this._endGrip},set:function(t){this._endGrip&&this.removeDispose(this._endGrip),this._endGrip=t,this.processGrip(t)},enumerable:!0,configurable:!0}),e.prototype.processGrip=function(t){t.parent=this,t.isMeasured=!1,t.focusable=!0,t.shouldClone=!1,t.showSystemTooltip=!0,t.zIndex=100,t.events.on("drag",this.handleGripDrag,this,!1),t.events.on("dragstop",this.makeUnbusy,this,!1),t.events.on("down",this.makeBusy,this,!1),this._disposers.push(t)},e.prototype.handleGripDrag=function(t){this.makeBusy(),t.target===this._startGrip?this._usingGrip="start":this._usingGrip="end","horizontal"==this.orientation?(this._start=this.startGrip.pixelX/this.innerWidth,this._end=this.endGrip.pixelX/this.innerWidth):(this._start=1-this.startGrip.pixelY/this.innerHeight,this._end=1-this.endGrip.pixelY/this.innerHeight),this.updateThumb()},Object.defineProperty(e.prototype,"thumb",{get:function(){if(!this._thumb){var t=new a.a;t.background.cornerRadius(10,10,10,10),t.padding(0,0,0,0),this.thumb=t}return this._thumb},set:function(t){var e=this;t&&(this._thumb&&this.removeDispose(this._thumb),this._thumb=t,t.parent=this,t.isMeasured=!1,t.inert=!0,t.draggable=!0,t.clickable=!0,t.hoverable=!0,t.focusable=!0,t.shouldClone=!1,t.zIndex=0,t.cursorOverStyle=u.a.grab,t.cursorDownStyle=u.a.grabbing,t.events.on("dragstart",this.makeBusy,this,!1),t.events.on("dragstop",this.makeUnbusy,this,!1),t.events.on("positionchanged",this.handleThumbPosition,this,!1),t.events.on("sizechanged",this.handleThumbPosition,this,!1),t.events.on("doublehit",this.handleDoubleClick,this,!1),this._disposers.push(Object(s.b)().body.events.on("keyup",function(t){c.b.isKey(t.event,["space","enter"])&&e.thumb.isFocused&&(t.event.preventDefault(),e.handleDoubleClick())})),this._disposers.push(this._thumb))},enumerable:!0,configurable:!0}),e.prototype.handleDoubleClick=function(){this.makeBusy();var t=0,e=1;0!=this.start||1!=this.end?(this._prevStart=this.start,this._prevEnd=this.end):(t=this._prevStart,e=this._prevEnd);var i=this.animate([{property:"__start",to:t},{property:"__end",to:e}],this.animationDuration,this.animationEasing);i&&!i.isFinished()?(i.events.on("animationended",this.makeUnbusy,this,!1),this._zoomAnimation=i):this.makeUnbusy()},e.prototype.handleThumbPosition=function(){var t=this.thumb;if("horizontal"==this.orientation){var e=this.innerWidth,i=t.innerWidth,n=t.pixelX;this._start=n/e,this._end=(n+i)/e,this.updateThumb()}else{var r=this.innerHeight,o=t.innerHeight,a=t.pixelY;this._start=1-(a+o)/r,this._end=1-a/r,this.updateThumb()}},e.prototype.createBackground=function(){return new l.a},Object.defineProperty(e.prototype,"hideGrips",{get:function(){return this._hideGrips},set:function(t){var e=this;this._hideGrips=t,this._overDisposer&&this.removeDispose(this._overDisposer),this._outDisposer&&this.removeDispose(this._outDisposer),t?(this._overDisposer=this.events.on("over",function(){e.startGrip.show(),e.endGrip.show()},void 0,!1),this._outDisposer=this.events.on("out",function(){e.startGrip.hide(),e.endGrip.hide()},void 0,!1),this.startGrip.hide(),this.endGrip.hide()):(this.startGrip.show(),this.endGrip.show())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animationDuration",{get:function(){return this.getPropertyValue("animationDuration")},set:function(t){this.setPropertyValue("animationDuration",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animationEasing",{get:function(){return this.getPropertyValue("animationEasing")},set:function(t){this.setPropertyValue("animationEasing",t)},enumerable:!0,configurable:!0}),e}(r.a);h.b.registeredClasses.Scrollbar=b},ITVZ:function(t,e,i){var n=i("Gb1H"),r=Math.PI/180;n(n.S,"Math",{radians:function(t){return t*r}})},IYrR:function(t,e,i){var n=i("YEtG")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(i){try{return e[n]=!1,!"/./"[t](e)}catch(t){}}return!0}},IbTV:function(t,e,i){"use strict";i.d(e,"a",function(){return c});var n=i("m4/l"),r=i("TDx+"),o=i("aCit"),a=i("Gg2j"),s=i("Mtpk"),u=i("hGwe"),l=i("v9UT"),h=i("tjMS"),c=function(t){function e(){var e=t.call(this)||this;return e.fdx=0,e.fdy=0,e.className="AxisLabelCircular",e.padding(0,0,0,0),e.location=.5,e.radius=0,e.isMeasured=!1,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"relativeRotation",{get:function(){return this.getPropertyValue("relativeRotation")},set:function(t){this.setPropertyValue("relativeRotation",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bent",{get:function(){return this.getPropertyValue("bent")},set:function(t){this.setPropertyValue("bent",t,!0),t&&(this.textAlign="middle")},enumerable:!0,configurable:!0}),e.prototype.pixelRadius=function(t){var e=1;return this.inside&&(e=-1),l.relativeToValue(this.radius,t)*e},e.prototype.pixelRadiusY=function(t,e){var i=1;this.inside&&(i=-1);var n=this.radius;return s.isNumber(n)?(n*=e/t,l.relativeToValue(n,t)*i):l.relativeToValue(n,e)*i},e.prototype.fixPosition=function(t,e,i,n,r){s.isNumber(i)||(i=e),s.isNumber(n)||(n=0),s.isNumber(r)||(r=0);var o={x:e*a.cos(t),y:i*a.sin(t)};this.invalid&&this.validate();var l=!1,c=this.radius;c instanceof h.a&&c.value<0?l=!0:c<0&&(l=!0);var p=this.relativeRotation,d=this.pixelRadius(e);if(this.bent){var f={x:e*a.cos(t+180),y:i*a.sin(t+180)};return this.path=u.moveTo(f)+u.arcTo(t+180,360,e+d,i+d*i/e),void(this.locationOnPath=.5)}if(s.isNumber(p)){this.horizontalCenter="none",this.verticalCenter="none",t=a.fitAngleToRange(t,-180,180);var g=this.bbox.width,m=this.bbox.height,y=this.pixelPaddingBottom,b=this.pixelPaddingTop,v=this.pixelPaddingLeft,_=this.pixelPaddingRight;t>90||t<-90?-90==p&&(p=90,g=0):(-90==p&&(m=-m),90==p&&(p=-90,g=-v-_,m=-m-b-y)),this.rotation=p+t+90;var x=a.sin(p)/2,P=a.cos(p)/2,w=this.rotation;this.dx=m*x*a.sin(w)-g*P*a.cos(w),this.dy=-m*x*a.cos(w)-g*P*a.sin(w),this.inside?t>90||t<-90?d-=(y+b)*a.cos(p)+(v+_)*a.sin(p):d+=(y+this.bbox.height+b)*a.cos(p)+(v+_+this.bbox.width)*a.sin(p):d+=(m+y+b)*a.cos(p)+(g+v+_)*a.sin(p),o.x+=a.cos(t)*d,o.y+=a.sin(t)*d*i/e}else this.horizontalCenter="middle",this.verticalCenter="middle",l?(this.dx=0,this.dy=0,o.x=(e+d)*a.cos(t),o.y=(i+d*i/e)*a.sin(t)):(this.dy=this._measuredHeight/2*a.sin(t),this.dx=this._measuredWidth/2*a.cos(t),o.x+=a.cos(t)*d,o.y+=a.sin(t)*d*i/e);o.x+=n,o.y+=r,this.fdx=this.dx,this.fdy=this.dy,this.moveTo(o)},e}(r.a);o.b.registeredClasses.AxisLabelCircular=c},IcXr:function(t,e,i){var n=i("Gb1H"),r=i("DbOM"),o=i("snR7"),a=(i("T9LF").Reflect||{}).apply,s=Function.apply;n(n.S+n.F*!i("AEc5")(function(){a(function(){})}),"Reflect",{apply:function(t,e,i){var n=r(t),u=o(i);return a?a(n,e,u):s.call(n,e,u)}})},"Ijb/":function(t,e,i){var n=i("Gb1H"),r=i("0C8c");n(n.S+n.F*(r!=Math.expm1),"Math",{expm1:r})},Inf5:function(t,e,i){"use strict";i.d(e,"a",function(){return p});var n=i("m4/l"),r=i("C6dT"),o=i("Vs7R"),a=i("aCit"),s=i("Gg2j"),u=i("hGwe"),l=i("Mtpk"),h=i("v9UT"),c=i("CuFa"),p=function(t){function e(){var e=t.call(this)||this;return e.className="Slice",e.setPropertyValue("cornerRadius",0),e.setPropertyValue("startAngle",0),e.setPercentProperty("innerRadius",0),e.setPercentProperty("radius",0),e.setPropertyValue("arc",0),e.setPropertyValue("shiftRadius",0),e.strokeOpacity=1,e.setPropertyValue("layout","none"),e.slice=e.createChild(o.a),e.slice.isMeasured=!1,e._disposers.push(e.slice),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this),this.slice.path=u.arc(this.startAngle,this.arc,this.radius,this.pixelInnerRadius,this.radiusY,this.cornerRadius,this.innerCornerRadius),this.slice.invalidate(),this.shiftRadius=this.shiftRadius,this.realFill instanceof c.a&&this.updateGradient(this.realFill),this.realStroke instanceof c.a&&this.updateGradient(this.realStroke)},e.prototype.updateGradient=function(t){t.element.attr({gradientUnits:"userSpaceOnUse"}),t.element.attr({r:this.radius}),t.cx=0,t.cy=0,t.element.attr({radius:this.radius})},Object.defineProperty(e.prototype,"bbox",{get:function(){if(this.definedBBox)return this.definedBBox;if(this.isMeasured){var t=s.getArcRect(this.startAngle,this.startAngle+this.arc,this.pixelInnerRadius),e=s.getArcRect(this.startAngle,this.startAngle+this.arc,this.radius);return s.getCommonRectangle([t,e])}return{x:0,y:0,width:0,height:0}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",s.normalizeAngle(t),!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"arc",{get:function(){return this.getPropertyValue("arc")},set:function(t){l.isNumber(t)||(t=0),this.setPropertyValue("arc",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){var t=this.getPropertyValue("radius");return l.isNumber(t)||(t=0),t},set:function(t){this.setPropertyValue("radius",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radiusY",{get:function(){var t=this.getPropertyValue("radiusY");return l.isNumber(t)||(t=this.radius),t},set:function(t){this.setPropertyValue("radiusY",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelInnerRadius",{get:function(){return h.relativeToValue(this.innerRadius,this.radius)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cornerRadius",{get:function(){return this.getPropertyValue("cornerRadius")},set:function(t){this.setPropertyValue("cornerRadius",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerCornerRadius",{get:function(){return this.getPropertyValue("innerCornerRadius")},set:function(t){this.setPropertyValue("innerCornerRadius",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shiftRadius",{get:function(){return this.getPropertyValue("shiftRadius")},set:function(t){this.setPropertyValue("shiftRadius",t),this.dx=t*this.radius*this.ix,this.dy=t*this.radiusY*this.iy},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ix",{get:function(){return s.cos(this.middleAngle)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iy",{get:function(){return this.radius,s.sin(this.middleAngle)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"middleAngle",{get:function(){return this.startAngle+this.arc/2},enumerable:!0,configurable:!0}),e.prototype.getTooltipX=function(){var t=this.getPropertyValue("tooltipX");if(!l.isNumber(t)){var e=h.relativeToValue(this.innerRadius,this.radius);t=this.ix*(e+(this.radius-e)/2)}return t},e.prototype.getTooltipY=function(){var t=this.getPropertyValue("tooltipY");if(!l.isNumber(t)){var e=h.relativeToValue(this.innerRadius,this.radius);t=this.iy*(e+(this.radius-e)/2)}return t},e}(r.a);a.b.registeredClasses.Slice=p},Iz1H:function(t,e,i){"use strict";i.d(e,"a",function(){return n});var n=function(){function t(){this._disposed=!1,this._disposers=[]}return t.prototype.init=function(){},t.prototype.isDisposed=function(){return this._disposed},t.prototype.dispose=function(){if(!this._disposed){this._disposed=!0;var t=this._disposers;for(this._disposers=null;0!==t.length;){t.shift().dispose()}}},t}()},JNIx:function(t,e,i){"use strict";e.a={_decimalSeparator:".",_thousandSeparator:",",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_second:"HH:mm:ss",_date_minute:"HH:mm",_date_hour:"HH:mm",_date_day:"MMM dd",_date_week:"ww",_date_month:"MMM",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"AD",_era_bc:"BC",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"",February:"",March:"",April:"",May:"",June:"",July:"",August:"",September:"",October:"",November:"",December:"",Jan:"",Feb:"",Mar:"",Apr:"","May(short)":"May",Jun:"",Jul:"",Aug:"",Sep:"",Oct:"",Nov:"",Dec:"",Sunday:"",Monday:"",Tuesday:"",Wednesday:"",Thursday:"",Friday:"",Saturday:"",Sun:"",Mon:"",Tue:"",Wed:"",Thu:"",Fri:"",Sat:"",_dateOrd:function(t){var e="th";if(t<11||t>13)switch(t%10){case 1:e="st";break;case 2:e="nd";break;case 3:e="rd"}return e},"Zoom Out":"",Play:"",Stop:"",Legend:"","Click, tap or press ENTER to toggle":"",Loading:"",Home:"",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"",Image:"",Data:"",Print:"","Click, tap or press ENTER to open":"","Click, tap or press ENTER to print.":"","Click, tap or press ENTER to export as %1.":"",'To save the image, right-click this link and choose "Save picture as..."':"",'To save the image, right-click thumbnail on the left and choose "Save picture as..."':"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"","From %1":"","To %1":"","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}},JqbS:function(t,e,i){var n=i("snR7"),r=i("DvJ+"),o=i("6w17");t.exports=function(t,e){if(n(t),r(e)&&e.constructor===t)return e;var i=o.f(t);return(0,i.resolve)(e),i.promise}},Jwb0:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("TXRX"),o=i("p9TX"),a=i("aCit"),s=i("8ZqG"),u=i("MIZb"),l=function(t){function e(){var e=t.call(this)||this;e.className="LabelBullet";var i=e.createChild(o.a);return i.shouldClone=!1,i.verticalCenter="middle",i.horizontalCenter="middle",i.truncate=!0,i.hideOversized=!0,i.maxWidth=500,i.maxHeight=500,i.stroke=Object(s.c)(),i.strokeOpacity=0,i.fill=(new u.a).getFor("text"),e.events.on("maxsizechanged",e.handleMaxSize,e,!1),e.label=i,e}return n.c(e,t),e.prototype.handleMaxSize=function(){this.label.maxWidth=this.maxWidth,this.label.maxHeight=this.maxHeight},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.label.copyFrom(e.label)},e}(r.a);a.b.registeredClasses.LabelBullet=l},K0ev:function(t,e,i){var n=i("U3hN"),r=i("vJiZ"),o=i("VYrJ")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),n(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},K2Eo:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("oGmz")(!0);n(n.P,"String",{at:function(t){return r(this,t)}})},KfrQ:function(t,e,i){var n=i("Gb1H"),r=i("0C8c"),o=Math.exp;n(n.S,"Math",{tanh:function(t){var e=r(t=+t),i=r(-t);return e==1/0?1:i==1/0?-1:(e-i)/(o(t)+o(-t))}})},Kg3M:function(t,e,i){"use strict";var n=i("oGmz")(!0);i("Uobz")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=n(e,i),this._i+=t.length,{value:t,done:!1})})},Kmds:function(t,e,i){var n=i("Gb1H"),r=Math.asinh;n(n.S+n.F*!(r&&1/r(0)>0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},L2Mu:function(t,e,i){var n=i("ua0L");t.exports=function(t,e){return new(n(t))(e)}},L8kC:function(t,e,i){var n=i("6MWL"),r=i("snR7"),o=n.has,a=n.key;n.exp({hasOwnMetadata:function(t,e){return o(t,r(e),arguments.length<3?void 0:a(arguments[2]))}})},L91H:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),i.d(e,"timeUnitDurations",function(){return r}),e.getNextUnit=o,e.getDuration=function(t,e){n.hasValue(e)||(e=1);return r[t]*e},e.now=a,e.getTime=function(){return a().getTime()},e.copy=function(t){return new Date(t.getTime())},e.checkChange=function t(e,i,n,r){e=new Date(e.getTime());i=new Date(i.getTime());var a=0;var s=0;r||(a=e.getTimezoneOffset(),e.setUTCMinutes(e.getUTCMinutes()-a),s=i.getTimezoneOffset(),i.setUTCMinutes(i.getUTCMinutes()-s));var u=!1;switch(n){case"year":e.getUTCFullYear()!=i.getUTCFullYear()&&(u=!0);break;case"month":e.getUTCFullYear()!=i.getUTCFullYear()?u=!0:e.getUTCMonth()!=i.getUTCMonth()&&(u=!0);break;case"day":e.getUTCMonth()!=i.getUTCMonth()?u=!0:e.getUTCDate()!=i.getUTCDate()&&(u=!0);break;case"hour":e.getUTCHours()!=i.getUTCHours()&&(u=!0);break;case"minute":e.getUTCMinutes()!=i.getUTCMinutes()&&(u=!0);break;case"second":e.getUTCSeconds()!=i.getUTCSeconds()&&(u=!0);break;case"millisecond":e.getTime()!=i.getTime()&&(u=!0)}if(u)return!0;var l=o(n);return!!l&&t(e,i,l,r)},e.add=function(t,e,i,n){var r=0;n||(r=t.getTimezoneOffset(),t.setUTCMinutes(t.getUTCMinutes()-r));switch(e){case"day":var o=t.getUTCDate();t.setUTCDate(o+i);break;case"second":var a=t.getUTCSeconds();t.setUTCSeconds(a+i);break;case"millisecond":var s=t.getUTCMilliseconds();t.setUTCMilliseconds(s+i);break;case"hour":var u=t.getUTCHours();t.setUTCHours(u+i);break;case"minute":var l=t.getUTCMinutes();t.setUTCMinutes(l+i);break;case"year":var h=t.getUTCFullYear();t.setUTCFullYear(h+i);break;case"month":var c=t.getUTCMonth();t.setUTCMonth(c+i);break;case"week":var p=t.getUTCDate();t.setUTCDate(p+7*i)}if(!n&&(t.setUTCMinutes(t.getUTCMinutes()+r),"day"==e||"week"==e||"month"==e||"year"==e)){var d=t.getTimezoneOffset();if(d!=r){var f=d-r;t.setUTCMinutes(t.getUTCMinutes()+f),t.getTimezoneOffset()!=d&&t.setUTCMinutes(t.getUTCMinutes()-f)}}return t},e.round=function(t,e,i,r,o){n.isNumber(i)||(i=1);var a=0;o||(a=t.getTimezoneOffset(),t.setUTCMinutes(t.getUTCMinutes()-a));switch(e){case"day":var s=t.getUTCDate();i>1&&(s=Math.floor(s/i)*i),t.setUTCDate(s),t.setUTCHours(0,0,0,0);break;case"second":var u=t.getUTCSeconds();i>1&&(u=Math.floor(u/i)*i),t.setUTCSeconds(u,0);break;case"millisecond":if(1==i)return t;var l=t.getUTCMilliseconds();l=Math.floor(l/i)*i,t.setUTCMilliseconds(l);break;case"hour":var h=t.getUTCHours();i>1&&(h=Math.floor(h/i)*i),t.setUTCHours(h,0,0,0);break;case"minute":var c=t.getUTCMinutes();l=t.getUTCMilliseconds(),i>1&&(c=Math.floor(c/i)*i),t.setUTCMinutes(c,0,0);break;case"month":var p=t.getUTCMonth();i>1&&(p=Math.floor(p/i)*i),t.setUTCMonth(p,1),t.setUTCHours(0,0,0,0);break;case"year":var d=t.getUTCFullYear();i>1&&(d=Math.floor(d/i)*i),t.setUTCFullYear(d,0,1),t.setUTCHours(0,0,0,0);break;case"week":var f=t.getUTCDate(),g=t.getUTCDay();n.isNumber(r)||(r=1),f=g>=r?f-g+r:f-(7+g)+r,t.setUTCDate(f),t.setUTCHours(0,0,0,0)}if(!o&&(t.setUTCMinutes(t.getUTCMinutes()+a),"day"==e||"week"==e||"month"==e||"year"==e)){var m=t.getTimezoneOffset();if(m!=a){var y=m-a;t.setUTCMinutes(t.getUTCMinutes()+y)}}return t};var n=i("Mtpk"),r={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6};function o(t){switch(t){case"year":return;case"month":return"year";case"week":case"day":return"month";case"hour":return"day";case"minute":return"hour";case"second":return"minute";case"millisecond":return"second"}}function a(){return new Date}},"LGy/":function(t,e,i){i("YJIw")("Float64",8,function(t){return function(e,i,n){return t(this,e,i,n)}})},LHMX:function(t,e,i){var n=i("T9LF"),r=i("6/bx"),o=i("hjwn").f,a=i("rkh7").f,s=i("0Zt3"),u=i("x2K9"),l=n.RegExp,h=l,c=l.prototype,p=/a/g,d=/a/g,f=new l(p)!==p;if(i("gD3S")&&(!f||i("AEc5")(function(){return d[i("YEtG")("match")]=!1,l(p)!=p||l(d)==d||"/a/i"!=l(p,"i")}))){l=function(t,e){var i=this instanceof l,n=s(t),o=void 0===e;return!i&&n&&t.constructor===l&&o?t:r(f?new h(n&&!o?t.source:t,e):h((n=t instanceof l)?t.source:t,n&&o?u.call(t):e),i?this:c,l)};for(var g=function(t){t in l||o(l,t,{configurable:!0,get:function(){return h[t]},set:function(e){h[t]=e}})},m=a(h),y=0;m.length>y;)g(m[y++]);c.constructor=l,l.prototype=c,i("wDk4")(n,"RegExp",l)}i("vdWU")("RegExp")},LLsa:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("sc+R");n(n.P+n.F*!i("GQop")([].reduceRight,!0),"Array",{reduceRight:function(t){return r(this,t,arguments.length,arguments[1],!0)}})},LMet:function(t,e,i){i("xdw4")("asyncIterator")},LNZc:function(t,e,i){"use strict";var n=i("T9LF"),r=i("gD3S"),o=i("pb4Y"),a=i("xSzy"),s=i("Vng0"),u=i("cA+3"),l=i("AEc5"),h=i("ypVE"),c=i("4BRe"),p=i("FmWr"),d=i("bytU"),f=i("rkh7").f,g=i("hjwn").f,m=i("lgQj"),y=i("bPwn"),b="prototype",v="Wrong index!",_=n.ArrayBuffer,x=n.DataView,P=n.Math,w=n.RangeError,O=n.Infinity,S=_,T=P.abs,C=P.pow,k=P.floor,I=P.log,M=P.LN2,j=r?"_b":"buffer",V=r?"_l":"byteLength",D=r?"_o":"byteOffset";function E(t,e,i){var n,r,o,a=new Array(i),s=8*i-e-1,u=(1<<s)-1,l=u>>1,h=23===e?C(2,-24)-C(2,-77):0,c=0,p=t<0||0===t&&1/t<0?1:0;for((t=T(t))!=t||t===O?(r=t!=t?1:0,n=u):(n=k(I(t)/M),t*(o=C(2,-n))<1&&(n--,o*=2),(t+=n+l>=1?h/o:h*C(2,1-l))*o>=2&&(n++,o/=2),n+l>=u?(r=0,n=u):n+l>=1?(r=(t*o-1)*C(2,e),n+=l):(r=t*C(2,l-1)*C(2,e),n=0));e>=8;a[c++]=255&r,r/=256,e-=8);for(n=n<<e|r,s+=e;s>0;a[c++]=255&n,n/=256,s-=8);return a[--c]|=128*p,a}function F(t,e,i){var n,r=8*i-e-1,o=(1<<r)-1,a=o>>1,s=r-7,u=i-1,l=t[u--],h=127&l;for(l>>=7;s>0;h=256*h+t[u],u--,s-=8);for(n=h&(1<<-s)-1,h>>=-s,s+=e;s>0;n=256*n+t[u],u--,s-=8);if(0===h)h=1-a;else{if(h===o)return n?NaN:l?-O:O;n+=C(2,e),h-=a}return(l?-1:1)*n*C(2,h-e)}function N(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function R(t){return[255&t]}function A(t){return[255&t,t>>8&255]}function L(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function H(t){return E(t,52,8)}function B(t){return E(t,23,4)}function G(t,e,i){g(t[b],e,{get:function(){return this[i]}})}function W(t,e,i,n){var r=d(+i);if(r+e>t[V])throw w(v);var o=t[j]._b,a=r+t[D],s=o.slice(a,a+e);return n?s:s.reverse()}function z(t,e,i,n,r,o){var a=d(+i);if(a+e>t[V])throw w(v);for(var s=t[j]._b,u=a+t[D],l=n(+r),h=0;h<e;h++)s[u+h]=l[o?h:e-h-1]}if(a.ABV){if(!l(function(){_(1)})||!l(function(){new _(-1)})||l(function(){return new _,new _(1.5),new _(NaN),"ArrayBuffer"!=_.name})){for(var U,Y=(_=function(t){return h(this,_),new S(d(t))})[b]=S[b],X=f(S),K=0;X.length>K;)(U=X[K++])in _||s(_,U,S[U]);o||(Y.constructor=_)}var J=new x(new _(2)),Z=x[b].setInt8;J.setInt8(0,2147483648),J.setInt8(1,2147483649),!J.getInt8(0)&&J.getInt8(1)||u(x[b],{setInt8:function(t,e){Z.call(this,t,e<<24>>24)},setUint8:function(t,e){Z.call(this,t,e<<24>>24)}},!0)}else _=function(t){h(this,_,"ArrayBuffer");var e=d(t);this._b=m.call(new Array(e),0),this[V]=e},x=function(t,e,i){h(this,x,"DataView"),h(t,_,"DataView");var n=t[V],r=c(e);if(r<0||r>n)throw w("Wrong offset!");if(r+(i=void 0===i?n-r:p(i))>n)throw w("Wrong length!");this[j]=t,this[D]=r,this[V]=i},r&&(G(_,"byteLength","_l"),G(x,"buffer","_b"),G(x,"byteLength","_l"),G(x,"byteOffset","_o")),u(x[b],{getInt8:function(t){return W(this,1,t)[0]<<24>>24},getUint8:function(t){return W(this,1,t)[0]},getInt16:function(t){var e=W(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=W(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return N(W(this,4,t,arguments[1]))},getUint32:function(t){return N(W(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return F(W(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return F(W(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){z(this,1,t,R,e)},setUint8:function(t,e){z(this,1,t,R,e)},setInt16:function(t,e){z(this,2,t,A,e,arguments[2])},setUint16:function(t,e){z(this,2,t,A,e,arguments[2])},setInt32:function(t,e){z(this,4,t,L,e,arguments[2])},setUint32:function(t,e){z(this,4,t,L,e,arguments[2])},setFloat32:function(t,e){z(this,4,t,B,e,arguments[2])},setFloat64:function(t,e){z(this,8,t,H,e,arguments[2])}});y(_,"ArrayBuffer"),y(x,"DataView"),s(x[b],a.VIEW,!0),e.ArrayBuffer=_,e.DataView=x},LSPs:function(t,e,i){var n=i("Gb1H");n(n.S,"Date",{now:function(){return(new Date).getTime()}})},"Ly/W":function(t,e,i){"use strict";i("Mvcd")("strike",function(t){return function(){return t(this,"strike","","")}})},"M/YL":function(t,e,i){var n=i("YEtG")("unscopables"),r=Array.prototype;void 0==r[n]&&i("Vng0")(r,n,{}),t.exports=function(t){r[n][t]=!0}},MIZb:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("Tjl+"),o=i("8ZqG"),a=function(t){function e(){var e=t.call(this)||this;return e._purposes={stroke:Object(o.c)("#e5e5e5"),fill:Object(o.c)("#f3f3f3"),primaryButton:Object(o.c)("#6794dc"),primaryButtonHover:Object(o.c)("#6771dc"),primaryButtonDown:Object(o.c)("#68dc75"),primaryButtonActive:Object(o.c)("#68dc75"),primaryButtonText:Object(o.c)("#FFFFFF"),primaryButtonStroke:Object(o.c)("#FFFFFF"),secondaryButton:Object(o.c)("#d9d9d9"),secondaryButtonHover:Object(o.c)("#d9d9d9").brighten(-.25),secondaryButtonDown:Object(o.c)("#d9d9d9").brighten(-.35),secondaryButtonActive:Object(o.c)("#d9d9d9").brighten(.35),secondaryButtonText:Object(o.c)("#000000"),secondaryButtonStroke:Object(o.c)("#FFFFFF"),grid:Object(o.c)("#000000"),background:Object(o.c)("#ffffff"),alternativeBackground:Object(o.c)("#000000"),text:Object(o.c)("#000000"),alternativeText:Object(o.c)("#FFFFFF"),disabledBackground:Object(o.c)("#999999"),positive:Object(o.c)("#67dc75"),negative:Object(o.c)("#dc6788")},e.className="InterfaceColorSet",e.applyTheme(),e}return n.c(e,t),e.prototype.debug=function(){},e.prototype.getFor=function(t){return this._purposes[t]},e.prototype.setFor=function(t,e){this._purposes[t]=e},e}(r.a)},"MT+g":function(t,e,i){i("6+x4")("WeakSet")},MXvJ:function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("jfaP"),o=i("aCit"),a=i("Gg2j"),s=i("hGwe"),u=function(t){function e(){var e=t.call(this)||this;return e.className="Polyarc",e.controlPointDistance=.5,e.controlPointPosition=.5,e.applyTheme(),e}return n.c(e,t),e.prototype.makePath=function(){this._distance=0;var t=this.segments;if(t&&t.length>0){var e="";this._realSegments=[];for(var i=0,n=t.length;i<n;i++){var r=t[i],o=[];if(this._realSegments.push(o),r.length>0){e+=s.moveTo(r[0]);for(var u=1;u<r.length;u++){var l=r[u-1],h=r[u],c=a.getDistance(h,l),p=c*this.controlPointDistance,d=this.controlPointPosition,f=-a.getAngle(l,h),g={x:l.x+(h.x-l.x)*d*.5-p*a.sin(f),y:l.y+(h.y-l.y)*d*.5-p*a.cos(f)},m={x:l.x+(h.x-l.x)*d*1.5-p*a.sin(f),y:l.y+(h.y-l.y)*d*1.5-p*a.cos(f)};e+=s.cubicCurveTo(h,g,m);var y=Math.ceil(c),b=l;if(y>0)for(var v=0;v<=y;v++){var _=a.getPointOnCubicCurve(l,h,g,m,v/y);o.push(_),this._distance+=a.getDistance(b,_),b=_}else o.push(l)}}}this.path=e}},Object.defineProperty(e.prototype,"controlPointPosition",{get:function(){return this.getPropertyValue("controlPointPosition")},set:function(t){this.setPropertyValue("controlPointPosition",t),this.makePath()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"controlPointDistance",{get:function(){return this.getPropertyValue("controlPointDistance")},set:function(t){this.setPropertyValue("controlPointDistance",t),this.makePath()},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.Polyarc=u},MZQ8:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("1qam"),o=i("Gg2j"),a=function(t){function e(){var e=t.call(this)||this;return e.className="PointedRectangle",e.element=e.paper.add("path"),e.cornerRadius=0,e.cornerRadius=6,e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.cornerRadius,i=this.innerWidth,n=this.innerHeight;if(i>0&&n>0){var r,a,s=this.pointerX,u=this.pointerY,l=this.pointerBaseWidth/2,h=o.min(i/2,n/2),c=o.fitToRange(e,0,h),p=o.fitToRange(e,0,h),d=o.fitToRange(e,0,h),f=o.fitToRange(e,0,h),g=void 0,m=void 0,y=void 0,b=void 0,v=(s-0)*(n-0)-(u-0)*(i-0),_=(s-0)*(0-n)-(u-n)*(i-0);if(v>0&&_>0)g="M"+c+",0 L"+((r=o.fitToRange(s,c+l,i-l-p))-l)+",0 L"+s+","+(u=o.fitToRange(u,-1/0,0))+" L"+(r+l)+",0 L"+(i-p)+",0";else g="M"+c+",0 L"+(i-p)+",0";if(v<0&&_<0)y=" L"+(i-d)+","+n+" L"+((r=o.fitToRange(s,f+l,i-l-d))+l)+","+n+" L"+s+","+(u=o.fitToRange(u,n,1/0))+" L"+(r-l)+","+n+" L"+f+","+n;else y=" L"+f+","+n;if(v<0&&_>0)b=" L0,"+(n-f)+" L0,"+((a=o.fitToRange(u,c+l,n-f-l))+l)+" L"+(s=o.fitToRange(s,-1/0,0))+","+u+" L0,"+(a-l)+" L0,"+c;else b=" L0,"+c;if(v>0&&_<0)m=" L"+i+","+p+" L"+i+","+((a=o.fitToRange(u,p+l,n-l-d))-l)+" L"+(s=o.fitToRange(s,i,1/0))+","+u+" L"+i+","+(a+l)+" L"+i+","+(n-d);else m=" L"+i+","+(n-d);var x=" a"+p+","+p+" 0 0 1 "+p+","+p,P=" a"+d+","+d+" 0 0 1 -"+d+","+d,w=" a"+f+","+f+" 0 0 1 -"+f+",-"+f,O=" a"+c+","+c+" 0 0 1 "+c+",-"+c;this.path=g+x+m+P+y+w+b+O}},Object.defineProperty(e.prototype,"cornerRadius",{get:function(){return this.getPropertyValue("cornerRadius")},set:function(t){this.setPropertyValue("cornerRadius",t,!0)},enumerable:!0,configurable:!0}),e}(r.a)},MbWG:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("e8Nv");n(n.S+n.F*i("AEc5")(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,e=arguments.length,i=new("function"==typeof this?this:Array)(e);e>t;)r(i,t,arguments[t++]);return i.length=e,i}})},Meme:function(t,e,i){"use strict";i.d(e,"a",function(){return g});var n=i("m4/l"),r=i("C6dT"),o=i("hD5A"),a=i("eAid"),s=i("8EhG"),u=i("AaJ4"),l=i("TDx+"),h=i("eN1s"),c=i("vMqJ"),p=i("aCit"),d=i("tjMS"),f=i("Gg2j"),g=function(t){function e(){var e=t.call(this)||this;e._chart=new o.d,e.className="AxisRenderer",e.minGridDistance=50,e.inside=!1,e.inversed=!1,e.tooltipLocation=.5,e.fullWidthTooltip=!1,e.cellStartLocation=0,e.cellEndLocation=1,e.minLabelPosition=0,e.maxLabelPosition=1,e.shouldClone=!1;var i=e.createChild(r.a);i.shouldClone=!1,i.layout="none",i.width=Object(d.c)(100),i.height=Object(d.c)(100),e.gridContainer=i,i.events.on("maxsizechanged",function(){e.inited&&e.invalidateAxisItems()},e,!1);var n=e.createChild(r.a);n.shouldClone=!1,n.isMeasured=!1,n.layout="none",n.width=Object(d.c)(100),n.height=Object(d.c)(100),e.breakContainer=n,e.line=e.createChild(a.a),e.line.shouldClone=!1,e.line.strokeOpacity=0;var s=e.createChild(u.a);s.shouldClone=!1,e.baseGrid=s;var l=e._disposers;return l.push(s),l.push(e.line),l.push(i),l.push(n),l.push(e._chart),e.ticks.template.disabled=!0,e.axisFills.template.disabled=!0,e.axisFills.template.interactionsEnabled=!1,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"axis",{get:function(){return this._axis},set:function(t){this.setAxis(t)},enumerable:!0,configurable:!0}),e.prototype.setAxis=function(t){this._axis=t,this.baseGrid.parent=t,this.line.parent=t,this.gridContainer.bind("opacity",t)},e.prototype.processRenderer=function(){this.events.on("sizechanged",this.updateTooltip,this,!1),this.events.on("positionchanged",this.updateTooltip,this,!1),this.labels.template.inside=this.inside,this.ticks.template.inside=this.inside},e.prototype.updateTooltip=function(){},Object.defineProperty(e.prototype,"axisLength",{get:function(){return 0},enumerable:!0,configurable:!0}),e.prototype.positionItem=function(t,e){t&&t.moveTo(e)},e.prototype.positionToPoint=function(t){return{x:0,y:0}},e.prototype.positionToAngle=function(t){return 0},e.prototype.positionToCoordinate=function(t){var e=this.axis,i=e.axisFullLength;return e.renderer.inversed?(e.end-t)*i:(t-e.start)*i},e.prototype.updateGridContainer=function(){},e.prototype.getHeight=function(){var t=this.axis;if(t&&t.chart){var e=this.axis.chart;if(e.plotContainer)return e.plotContainer.pixelHeight||0}return this.gridContainer.pixelHeight||0},e.prototype.getWidth=function(){var t=this.axis;if(t&&t.chart){var e=this.axis.chart;if(e.plotContainer)return e.plotContainer.pixelWidth||0}return this.gridContainer.pixelWidth||0},e.prototype.coordinateToPosition=function(t){var e,i=this.axis,n=i.axisFullLength;return e=i.renderer.inversed?i.end-t/n:t/n+i.start,f.round(e,5)},e.prototype.pointToPosition=function(t){return 0},e.prototype.getPositionRangePath=function(t,e){return""},e.prototype.invalidateAxisItems=function(){var t=this.axis;t&&t.invalidateDataItems()},e.prototype.updateGridElement=function(t,e,i){},e.prototype.updateTickElement=function(t,e,i){},e.prototype.updateLabelElement=function(t,e,i,n){},e.prototype.updateFillElement=function(t,e,i){t.startPosition=e,t.endPosition=i},e.prototype.updateAxisLine=function(){},e.prototype.updateBaseGridElement=function(){},e.prototype.updateBreakElement=function(t){this.positionItem(t.startLine,t.startPoint),this.toggleVisibility(t.startLine,t.startPosition,0,1),this.positionItem(t.endLine,t.endPoint),this.toggleVisibility(t.endLine,t.endPosition,0,1)},Object.defineProperty(e.prototype,"minGridDistance",{get:function(){return this.getPropertyValue("minGridDistance")},set:function(t){this.setPropertyValue("minGridDistance",t)&&this.axis&&this.axis.invalidateLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"chart",{get:function(){return this._chart.get()},set:function(t){this._chart.set(t,null)},enumerable:!0,configurable:!0}),e.prototype.toggleVisibility=function(t,e,i,n){var r=this.axis,o=r.start+(r.end-r.start)*(i-1e-5),a=r.start+(r.end-r.start)*(n+1e-5);t.disabled||(t.__disabled=e<o||e>a)},e.prototype.createBreakSprites=function(t){},Object.defineProperty(e.prototype,"axisFills",{get:function(){if(!this._axisFills){var t=this.createFill(this.axis);this._axisFills=new c.e(t),t.applyOnClones=!0,t.events.on("enabled",this.invalidateAxisItems,this,!1),this._disposers.push(new c.c(this._axisFills)),this._disposers.push(this._axisFills.template)}return this._axisFills},enumerable:!0,configurable:!0}),e.prototype.createFill=function(t){return new s.a(t)},Object.defineProperty(e.prototype,"grid",{get:function(){if(!this._grid){var t=this.createGrid();this._grid=new c.e(t),t.applyOnClones=!0,t.events.on("enabled",this.invalidateAxisItems,this,!1),this._disposers.push(new c.c(this._grid)),this._disposers.push(this._grid.template)}return this._grid},enumerable:!0,configurable:!0}),e.prototype.createGrid=function(){return new u.a},Object.defineProperty(e.prototype,"ticks",{get:function(){if(!this._ticks){var t=this.createTick();t.applyOnClones=!0,t.isMeasured=!1,t.events.on("enabled",this.invalidateAxisItems,this,!1),this._ticks=new c.e(t),this._disposers.push(new c.c(this._ticks)),this._disposers.push(this._ticks.template)}return this._ticks},enumerable:!0,configurable:!0}),e.prototype.createTick=function(){return new h.a},Object.defineProperty(e.prototype,"labels",{get:function(){if(!this._labels){var t=this.createLabel();this._labels=new c.e(t),t.applyOnClones=!0,t.events.on("enabled",this.invalidateAxisItems,this,!1),this._disposers.push(new c.c(this._labels)),this._disposers.push(this._labels.template)}return this._labels},enumerable:!0,configurable:!0}),e.prototype.createLabel=function(){return new l.a},Object.defineProperty(e.prototype,"inside",{get:function(){return this.getPropertyValue("inside")},set:function(t){this.setPropertyValue("inside",t)&&this.axis&&this.axis.invalidate(),t?(this.width=0,this.height=0):(this.width=void 0,this.height=void 0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"opposite",{get:function(){return this.getPropertyValue("opposite")},set:function(t){this.setPropertyValue("opposite",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullWidthTooltip",{get:function(){return this.getPropertyValue("fullWidthTooltip")},set:function(t){this.setPropertyValue("fullWidthTooltip",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipLocation",{get:function(){return this.getPropertyValue("tooltipLocation")},set:function(t){this.setPropertyValue("tooltipLocation",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cellStartLocation",{get:function(){return this.getPropertyValue("cellStartLocation")},set:function(t){this.setPropertyValue("cellStartLocation",t)&&this.axis&&this.axis.invalidateSeries()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cellEndLocation",{get:function(){return this.getPropertyValue("cellEndLocation")},set:function(t){this.setPropertyValue("cellEndLocation",t)&&this.axis&&this.axis.invalidateSeries()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inversed",{get:function(){return this.getPropertyValue("inversed")},set:function(t){this.setPropertyValue("inversed",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minLabelPosition",{get:function(){return this.getPropertyValue("minLabelPosition")},set:function(t){this.setPropertyValue("minLabelPosition",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxLabelPosition",{get:function(){return this.getPropertyValue("maxLabelPosition")},set:function(t){this.setPropertyValue("maxLabelPosition",t,!0)},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.grid.template.copyFrom(e.grid.template),this.ticks.template.copyFrom(e.ticks.template),this.labels.template.copyFrom(e.labels.template),this.axisFills.template.copyFrom(e.axisFills.template),this.line.copyFrom(e.line),this.baseGrid.copyFrom(e.baseGrid)},e.prototype.toAxisPosition=function(t){return t},e}(r.a);p.b.registeredClasses.AxisRenderer=g},MfZA:function(t,e,i){var n=i("DVYA"),r=i("YEtG")("toStringTag"),o="Arguments"==n(function(){return arguments}());t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),r))?i:o?n(e):"Object"==(a=n(e))&&"function"==typeof e.callee?"Arguments":a}},MipW:function(t,e,i){"use strict";i.d(e,"a",function(){return c}),e.b=function(){null==n&&(n=new c);return n};var n,r=i("m4/l"),o=i("Tjl+"),a=i("pzs1"),s=i("x79X"),u=i("aCit"),l=i("ScGY"),h=i("Mtpk"),c=function(t){function e(){var e=t.call(this)||this;return e.adapter=new s.a(e),e.className="TextFormatter",e.applyTheme(),e}return r.c(e,t),e.prototype.debug=function(){},e.prototype.format=function(t,e){h.hasValue(e)||(e="svg");var i="",n=(t=this.escape(t)).match(/\[([^\]]*?)\]/gm);if(!n)return this.wrap(t,"",e);for(var r=t.split(/\[[^\[\]]*\]/),o=0,a=r.length;o<a;o++){var s=r[o];if(""!==s){s=this.adapter.apply("chunk",s);var u="";o>0&&(u=n[o-1].replace("[","").replace("]","")),i+=this.wrap(s,u,e)}}return i=this.unescape(i),this.cleanUp(i)},e.prototype.escape=function(t){return t.replace(/\[\[/g,u.b.getPlaceholder("1")).replace(/([^\/]{1})\]\]/g,"$1"+u.b.getPlaceholder("2")).replace(/\{\{/g,u.b.getPlaceholder("3")).replace(/\}\}/g,u.b.getPlaceholder("4")).replace(/\'\'/g,u.b.getPlaceholder("5"))},e.prototype.unescape=function(t){return t.replace(new RegExp(u.b.getPlaceholder("1"),"g"),"[[").replace(new RegExp(u.b.getPlaceholder("2"),"g"),"]]").replace(new RegExp(u.b.getPlaceholder("3"),"g"),"{{").replace(new RegExp(u.b.getPlaceholder("4"),"g"),"}}").replace(new RegExp(u.b.getPlaceholder("5"),"g"),"'")},e.prototype.cleanUp=function(t){return t.replace(/\[\[/g,"[").replace(/\]\]/g,"]").replace(/\{\{/g,"{").replace(/\}\}/g,"}").replace(/\'\'/g,"'")},e.prototype.wrap=function(t,e,i){switch(""!==e&&"/"!==e||(e=""),i){case"html":return this.wrapHtml(t,this.translateStyleShortcuts(e));default:return this.wrapSvg(t,this.translateStyleShortcuts(e))}},e.prototype.wrapSvg=function(t,e){return""===e?"<tspan>"+t+"</tspan>":"<tspan style='"+e+"'>"+t+"</tspan>"},e.prototype.getSvgElement=function(t,e){var i=new a.a("tspan");return i.textContent=t,e&&i.node.setAttribute("style",e),i},e.prototype.wrapHtml=function(t,e){return""===e?"<span>"+t+"</span>":"<span style='"+this.styleSvgToHtml(e)+"'>"+t+"</span>"},e.prototype.getHtmlElement=function(t,e){var i=document.createElement("span");return i.innerHTML=t,e&&i.setAttribute("style",e),i},e.prototype.styleSvgToHtml=function(t){return t=t.replace(/fill:/,"color:")},e.prototype.translateStyleShortcuts=function(t){if(""==t||"[ ]"==t)return"";var e=u.b.getCache("translateStyleShortcuts_"+t);if(e)return e;var i=t.match(/([\w\-]*:[\s]?[^;\s\]]*)|(\#[\w]{1,6})|([\w]+)|(\/)/gi);if(!i)return t;for(var n=0;n<i.length;n++)i[n].match(/^bold$/i)?i[n]="font-weight:"+i[n]:"/"==i[n]?i[n]="":i[n].match(/:/)||(i[n]="fill:"+i[n]);var r=i.join(";");return u.b.setCache("translateStyleShortcuts_"+t,r),r},e.prototype.chunk=function(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=[];t=this.escape(t);for(var r=e?t.split("'"):[t],o=0;o<r.length;o++){var a=r[o];if(""!==a)if(o%2==0)for(var s=(a=(a=a.replace(/\]\[/g,"]"+l.d+"[")).replace(/\[\]/g,"[ ]")).split(/[\[\]]+/),u=0;u<s.length;u++){(h=this.cleanUp(this.unescape(s[u])))!==l.d&&(""!==h&&(u%2==0?n.push({type:"value",text:this.adapter.apply("chunk",h)}):n.push({type:i?"value":"format",text:"["+h+"]"})))}else for(s=a.split(/[\[\]]+/),u=0;u<s.length;u++){var h;""!==(h=this.cleanUp(this.unescape(s[u])))&&(u%2==0?n.push({type:"text",text:h}):this.isImage(h)?n.push({type:"image",text:"["+h+"]"}):n.push({type:"format",text:"["+h+"]"}))}}return n},e.prototype.isImage=function(t){return!!t.match(/img[ ]?:/)},e}(o.a);u.b.registeredClasses.TextFormatter=c},MlsF:function(t,e,i){"use strict";e.b=function(t){switch(t){case 0:return 0;case-1:return 1;case 1:return-1}},e.a=function(t,e){return 0===t?e:t}},Mpxm:function(t,e,i){"use strict";i.d(e,"a",function(){return u}),i.d(e,"b",function(){return l});var n=i("4DCw"),r=i("ZhuL"),o=i("x79X"),a=i("OVUc"),s=i("hJ5i"),u=function(){function t(){this.adapter=new o.a(this)}return t.prototype.load=function(t){var e=Array.isArray(t)?t:[t],i=s.map(e,function(t){return t.dispatchImmediately("started"),t.dispatchImmediately("loadstarted"),a.a(t.url,t,t.requestOptions)});Promise.all(i).then(function(t){s.each(t,function(t){var e=t.target;e.dispatchImmediately("loadended"),t.error?e.events.isEnabled("error")&&e.events.dispatchImmediately("error",{type:"error",code:t.xhr.status,message:e.language.translate("Unable to load file: %1",null,e.url),target:e}):e.processData(t.response,t.type),e.dispatchImmediately("ended")})}).catch(function(t){t.target&&(t.target.dispatchImmediately("loadended"),t.target.events.isEnabled("error")&&t.target.events.dispatchImmediately("error",{type:"error",code:t.xhr.status,message:t.target.language.translate("Unable to load file: %1",null,t.target.url),target:t.target}),t.target.dispatchImmediately("ended"))})},t.prototype.getParserByType=function(t){var e;return(e=this.adapter.apply("getParserByType",{parser:null,type:t}).parser)?e:"csv"==t||"text/csv"==t||"application/vnd.ms-excel"==t?new n.a:"json"==t||"application/json"==t?new r.a:void 0},t.prototype.getParserByData=function(t,e){var i=this.adapter.apply("getParserByData",{parser:null,data:t,type:e}).parser;if(!i){if(i=this.getParserByType(e))return i;if(r.a.isJSON(t))return this.getParserByType("json");if(n.a.isCSV(t))return this.getParserByType("csv")}return i},t}(),l=new u},Mr4Y:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("C6dT"),o=i("Vs7R"),a=i("C84C"),s=i("Gg2j"),u=i("hGwe"),l=function(t){function e(){var e=t.call(this)||this;e.angle=30,e.depth=30,e.className="Rectangle3D",e.layout="none";var i=e.createChild(o.a);i.shouldClone=!1,i.setElement(e.paper.add("path")),i.isMeasured=!1;var n=new a.a;n.lightness=-.2,i.filters.push(n),e.sideBack=i,e._disposers.push(e.sideBack);var r=e.createChild(o.a);r.shouldClone=!1,r.setElement(e.paper.add("path")),r.isMeasured=!1;var s=new a.a;s.lightness=-.5,r.filters.push(s),e.sideBottom=r,e._disposers.push(e.sideBottom);var u=e.createChild(o.a);u.shouldClone=!1,u.setElement(e.paper.add("path")),u.isMeasured=!1;var l=new a.a;l.lightness=-.4,u.filters.push(l),e.sideLeft=u,e._disposers.push(e.sideLeft);var h=e.createChild(o.a);h.shouldClone=!1,h.setElement(e.paper.add("path")),h.isMeasured=!1;var c=new a.a;c.lightness=-.2,h.filters.push(c),e.sideRight=h,e._disposers.push(e.sideRight);var p=e.createChild(o.a);p.shouldClone=!1,p.setElement(e.paper.add("path")),p.isMeasured=!1;var d=new a.a;d.lightness=-.1,p.filters.push(d),e.sideTop=p,e._disposers.push(e.sideTop);var f=e.createChild(o.a);return f.shouldClone=!1,f.setElement(e.paper.add("path")),f.isMeasured=!1,e.sideFront=f,e._disposers.push(e.sideFront),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.innerWidth,i=this.innerHeight,n=this.depth,r=this.angle,o=s.sin(r),a=s.cos(r),l={x:0,y:0},h={x:e,y:0},c={x:e,y:i},p={x:0,y:i},d={x:n*a,y:-n*o},f={x:n*a+e,y:-n*o},g={x:n*a+e,y:-n*o+i},m={x:n*a,y:-n*o+i};this.sideFront.path=u.moveTo(l)+u.lineTo(h)+u.lineTo(c)+u.lineTo(p)+u.closePath(),this.sideBack.path=u.moveTo(d)+u.lineTo(f)+u.lineTo(g)+u.lineTo(m)+u.closePath(),this.sideLeft.path=u.moveTo(l)+u.lineTo(d)+u.lineTo(m)+u.lineTo(p)+u.closePath(),this.sideRight.path=u.moveTo(h)+u.lineTo(f)+u.lineTo(g)+u.lineTo(c)+u.closePath(),this.sideBottom.path=u.moveTo(p)+u.lineTo(m)+u.lineTo(g)+u.lineTo(c)+u.closePath(),this.sideTop.path=u.moveTo(l)+u.lineTo(d)+u.lineTo(f)+u.lineTo(h)+u.closePath()},Object.defineProperty(e.prototype,"depth",{get:function(){return this.getPropertyValue("depth")},set:function(t){this.setPropertyValue("depth",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"angle",{get:function(){return this.getPropertyValue("angle")},set:function(t){this.setPropertyValue("angle",t,!0)},enumerable:!0,configurable:!0}),e}(r.a)},MrGI:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("zAAN");n(n.P+n.F*i("IYrR")("includes"),"String",{includes:function(t){return!!~r(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},MsQa:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{scale:i("eh+x")})},MtRv:function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("eske"),o=i("Jwb0"),a=i("aCit"),s=i("MIZb"),u=i("Wglt"),l=i("Mtpk"),h=function(t){function e(){var e=t.call(this)||this;e.nextInCoord=0,e.nextOutCoord=0,e.className="SankeyNode",e.width=10,e.height=10;var i=e.createChild(o.a);i.shouldClone=!1,i.locationX=1,i.locationY=.5,i.label.text="{name}",i.width=150,i.height=150,i.label.horizontalCenter="left",i.label.padding(0,5,0,5),e.nameLabel=i;var n=e.createChild(o.a);n.shouldClone=!1,n.label.hideOversized=!1,n.locationX=.5,n.locationY=.5,n.width=150,n.height=150,n.label.horizontalCenter="middle",e.valueLabel=n;var r=e.hiddenState;return r.properties.fill=(new s.a).getFor("disabledBackground"),r.properties.opacity=.5,r.properties.visible=!0,e.background.hiddenState.copyFrom(r),e}return n.c(e,t),e.prototype.invalidateLinks=function(){var e=this;t.prototype.invalidateLinks.call(this),this.nextInCoord=0,this.nextOutCoord=0;var i=this.chart;if(i){var n=i.orientation;this._incomingSorted&&u.each(this._incomingSorted,function(t){var r=t.link,o=t.getWorkingValue("value");if(l.isNumber(o)){r.parent=e.chart.linksContainer;var a=void 0,s=void 0,u=void 0;if("horizontal"==n?(a=e.pixelX+e.dx,s=e.nextInCoord+e.pixelY+e.dy,u=0):(s=e.pixelY+e.dy,a=e.nextInCoord+e.pixelX+e.dx,u=90),r.endX=a,r.endY=s,r.startAngle=u,r.endAngle=u,r.gradient.rotation=u,r.linkWidth=o*i.valueHeight,!t.fromNode){"horizontal"==n?(r.maxWidth=200,r.startX=e.pixelX+e.dx-r.maxWidth,r.startY=r.endY):(r.maxHeight=200,r.startX=r.endX,r.startY=e.pixelY+e.dy-r.maxHeight),r.gradient,r.fill=t.toNode.color;var h=r.gradient.stops.getIndex(0);h&&("gradient"==r.colorMode&&(h.color=e.color),h.opacity=0,r.fill=r.gradient,r.stroke=r.gradient,r.gradient.validate())}e.nextInCoord+=r.linkWidth}}),this._outgoingSorted&&u.each(this._outgoingSorted,function(t){var i=t.link;i.parent=e.chart.linksContainer;var r=t.getWorkingValue("value");if(l.isNumber(r)){var o=void 0,a=void 0,s=void 0;if("horizontal"==n?(s=0,o=e.pixelX+e.pixelWidth+e.dx-1,a=e.nextOutCoord+e.pixelY+e.dy):(s=90,o=e.nextOutCoord+e.pixelX+e.dx,a=e.pixelY+e.pixelHeight+e.dy-1),i.startX=o,i.startY=a,i.startAngle=s,i.endAngle=s,i.gradient.rotation=s,i.linkWidth=r*e.chart.valueHeight,!t.toNode){"horizontal"==n?(i.maxWidth=200,i.endX=e.pixelX+i.maxWidth+e.dx,i.endY=i.startY):(i.maxHeight=200,i.endX=i.startX,i.endY=e.pixelY+i.maxHeight+e.dy),i.opacity=e.opacity;var u=i.gradient.stops.getIndex(1);u&&("gradient"==i.colorMode&&(u.color=e.color),u.opacity=0,i.fill=i.gradient,i.stroke=i.gradient,i.gradient.validate())}e.nextOutCoord+=i.linkWidth}})}this.positionBullet(this.nameLabel),this.positionBullet(this.valueLabel)},e.prototype.positionBullet=function(t){t&&(t.x=this.measuredWidth*t.locationX,t.y=this.measuredHeight*t.locationY)},Object.defineProperty(e.prototype,"level",{get:function(){return this.getPropertyValue("level")},set:function(t){this.setPropertyValue("level",t,!0)},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.nameLabel.copyFrom(e.nameLabel),this.valueLabel.copyFrom(e.valueLabel)},e}(r.a);a.b.registeredClasses.SankeyNode=h},Mtpk:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isNaN=r,e.getType=o,e.getDefault=function(t,e){return t||e},e.checkString=function(t){if("string"==typeof t)return!0;throw new Error("Expected a string but got "+o(t))},e.checkBoolean=function(t){if("boolean"==typeof t)return!0;throw new Error("Expected a boolean but got "+o(t))},e.checkNumber=function(t){if("number"!=typeof t)throw new Error("Expected a number but got "+o(t));if(r(t))throw new Error("Expected a number but got NaN");return!0},e.checkObject=function(t){var e=o(t);if("[object Object]"===e)return!0;throw new Error("Expected an object but got "+e)},e.checkArray=function(t){if(Array.isArray(t))return!0;throw new Error("Expected an array but got "+o(t))},e.checkDate=function(t){var e=o(t);if("[object Date]"===e)return!0;throw new Error("Expected a date but got "+e)},e.castString=a,e.castNumber=function(t){if("string"==typeof t){var e=+t;if(r(e))throw new Error("Cannot cast string "+JSON.stringify(t)+" to a number");return e}if("number"==typeof t){if(r(t))throw new Error("Expected a number but got NaN");return t}var i=o(t);if("[object Date]"===i)return t.getTime();throw new Error("Expected a string, number, or date but got "+i)},e.toBoolean=function(t){return!!t},e.toNumber=s,e.toText=function(t){if(u(t)&&!l(t)){if(h(t))return a(t);if(c(t))return t.toString()}return t},e.toNumberOrPercent=function(t){if(!u(t)||h(t)||Object(n.b)(t))return t;if(l(t)&&-1!=t.indexOf("%"))return Object(n.c)(s(t));return s(t)},e.hasValue=u,e.getValue=function(t){if(u(t))return t;throw new Error("Value doesn't exist")},e.getValueDefault=function(t,e){return u(t)?t:e},e.isDate=function(t){return"[object Date]"===o(t)},e.isString=l,e.isNumber=h,e.isObject=c,e.isArray=function(t){return Array.isArray(t)};var n=i("tjMS");function r(t){return Number(t)!==t}function o(t){return{}.toString.call(t)}function a(t){if("string"==typeof t)return t;if("number"==typeof t)return""+t;throw new Error("Expected a string or number but got "+o(t))}function s(t){if(u(t)&&!h(t)){var e=Number(t);return r(e)&&l(t)&&""!=t?s(t.replace(/[^0-9.\-]+/g,"")):e}return t}function u(t){return null!=t}function l(t){return"string"==typeof t}function h(t){return"number"==typeof t&&Number(t)==t}function c(t){return"object"==typeof t}},Mvcd:function(t,e,i){var n=i("Gb1H"),r=i("AEc5"),o=i("kcsd"),a=/"/g,s=function(t,e,i,n){var r=String(o(t)),s="<"+e;return""!==i&&(s+=" "+i+'="'+String(n).replace(a,"&quot;")+'"'),s+">"+r+"</"+e+">"};t.exports=function(t,e){var i={};i[t]=e(s),n(n.P+n.F*r(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",i)}},"N/Yk":function(t,e,i){i("vdWU")("Array")},"ND2/":function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("PTiM"),o=i("8ZqG"),a=i("aFzC"),s=i("hGwe"),u=function(t){function e(){var e=t.call(this)||this;return e.className="WavedLine",e.element=e.paper.add("path"),e.waveLength=16,e.waveHeight=4,e.tension=.8,e.pixelPerfect=!1,e.fill=Object(o.c)(),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){var t={x:this.x1,y:this.y1},e={x:this.x2,y:this.y2};this.path=s.moveTo(t)+Object(a.c)(t,e,this.waveLength,this.waveHeight,this.tension,!0)},Object.defineProperty(e.prototype,"waveLength",{get:function(){return this.getPropertyValue("waveLength")},set:function(t){this.setPropertyValue("waveLength",t),this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"waveHeight",{get:function(){return this.getPropertyValue("waveHeight")},set:function(t){this.setPropertyValue("waveHeight",t),this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tension",{get:function(){return this.getPropertyValue("tension")},set:function(t){this.setPropertyValue("tension",t),this.invalidate()},enumerable:!0,configurable:!0}),e}(r.a)},NKpi:function(t,e,i){var n=i("xCMl"),r=i("WtL7"),o=i("6MWL"),a=i("snR7"),s=i("K0ev"),u=o.keys,l=o.key,h=function(t,e){var i=u(t,e),o=s(t);if(null===o)return i;var a=h(o,e);return a.length?i.length?r(new n(i.concat(a))):a:i};o.exp({getMetadataKeys:function(t){return h(a(t),arguments.length<2?void 0:l(arguments[1]))}})},NSvu:function(t,e,i){i("YJIw")("Uint8",1,function(t){return function(e,i,n){return t(this,e,i,n)}},!0)},NlGZ:function(t,e,i){"use strict";var n,r;!function(o,a){void 0===(r="function"==typeof(n=a)?n.call(e,i,e,t):n)||(t.exports=r)}("undefined"!=typeof window&&window,function(){if("undefined"==typeof window)return null;var t=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(t){return window.setTimeout(t,20)};function e(t,e){var i=Object.prototype.toString.call(t),n="[object Array]"===i||"[object NodeList]"===i||"[object HTMLCollection]"===i||"[object Object]"===i||"undefined"!=typeof jQuery&&t instanceof jQuery||"undefined"!=typeof Elements&&t instanceof Elements,r=0,o=t.length;if(n)for(;r<o;r++)e(t[r]);else e(t)}function i(t){if(!t.getBoundingClientRect)return{width:t.offsetWidth,height:t.offsetHeight};var e=t.getBoundingClientRect();return{width:Math.round(e.width),height:Math.round(e.height)}}var n=function(r,o){function a(e,n){if(e)if(e.resizedAttached)e.resizedAttached.add(n);else{e.resizedAttached=new function(){var t,e,i=[];this.add=function(t){i.push(t)},this.call=function(n){for(t=0,e=i.length;t<e;t++)i[t].call(this,n)},this.remove=function(n){var r=[];for(t=0,e=i.length;t<e;t++)i[t]!==n&&r.push(i[t]);i=r},this.length=function(){return i.length}},e.resizedAttached.add(n),e.resizeSensor=document.createElement("div"),e.resizeSensor.dir="ltr",e.resizeSensor.className="resize-sensor";var r="pointer-events: none; position: absolute; left: 0px; top: 0px; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden; max-width: 100%;",o="position: absolute; left: 0; top: 0; transition: 0s;";e.resizeSensor.style.cssText=r,e.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="'+r+'"><div style="'+o+'"></div></div><div class="resize-sensor-shrink" style="'+r+'"><div style="'+o+' width: 200%; height: 200%"></div></div>',e.appendChild(e.resizeSensor);var a=window.getComputedStyle(e),s=a?a.getPropertyValue("position"):null;"absolute"!==s&&"relative"!==s&&"fixed"!==s&&(e.style.position="relative");var u,l,h=e.resizeSensor.childNodes[0],c=h.childNodes[0],p=e.resizeSensor.childNodes[1],d=i(e),f=d.width,g=d.height,m=!0,y=0,b=function(){if(m){if(0===e.offsetWidth&&0===e.offsetHeight)return void(y||(y=t(function(){y=0,b()})));m=!1}!function(){var t=e.offsetWidth,i=e.offsetHeight;c.style.width=t+10+"px",c.style.height=i+10+"px",h.scrollLeft=t+10,h.scrollTop=i+10,p.scrollLeft=t+10,p.scrollTop=i+10}()};e.resizeSensor.resetSensor=b;var v=function(){l=0,u&&(f=d.width,g=d.height,e.resizedAttached&&e.resizedAttached.call(d))},_=function(){d=i(e),(u=d.width!==f||d.height!==g)&&!l&&(l=t(v)),b()},x=function(t,e,i){t.attachEvent?t.attachEvent("on"+e,i):t.addEventListener(e,i)};x(h,"scroll",_),x(p,"scroll",_),t(b)}}e(r,function(t){a(t,o)}),this.detach=function(t){n.detach(r,t)},this.reset=function(){r.resizeSensor.resetSensor()}};if(n.reset=function(t){e(t,function(t){t.resizeSensor.resetSensor()})},n.detach=function(t,i){e(t,function(t){t&&(t.resizedAttached&&"function"==typeof i&&(t.resizedAttached.remove(i),t.resizedAttached.length())||t.resizeSensor&&(t.contains(t.resizeSensor)&&t.removeChild(t.resizeSensor),delete t.resizeSensor,delete t.resizedAttached))})},"undefined"!=typeof MutationObserver){var r=new MutationObserver(function(t){for(var e in t)if(t.hasOwnProperty(e))for(var i=t[e].addedNodes,r=0;r<i.length;r++)i[r].resizeSensor&&n.reset(i[r])});document.addEventListener("DOMContentLoaded",function(t){r.observe(document.body,{childList:!0,subtree:!0})})}return n})},"Nv8/":function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n={};i.d(n,"System",function(){return r.a}),i.d(n,"system",function(){return r.b}),i.d(n,"BaseObject",function(){return o.a}),i.d(n,"BaseObjectEvents",function(){return o.b}),i.d(n,"Component",function(){return a.a}),i.d(n,"Container",function(){return s.a}),i.d(n,"DataItem",function(){return u.a}),i.d(n,"Sprite",function(){return l.a}),i.d(n,"SpriteEventDispatcher",function(){return h.a}),i.d(n,"SpriteState",function(){return c.a}),i.d(n,"registry",function(){return p.b}),i.d(n,"Registry",function(){return p.a}),i.d(n,"options",function(){return d.a}),i.d(n,"CSVParser",function(){return f.a}),i.d(n,"DataLoader",function(){return g.a}),i.d(n,"dataLoader",function(){return g.b}),i.d(n,"DataParser",function(){return m.a}),i.d(n,"DataSource",function(){return y.a}),i.d(n,"JSONParser",function(){return b.a}),i.d(n,"SVGDefaults",function(){return v.a}),i.d(n,"Button",function(){return _.a}),i.d(n,"Circle",function(){return x.a}),i.d(n,"Ellipse",function(){return P.a}),i.d(n,"Image",function(){return T}),i.d(n,"Label",function(){return C.a}),i.d(n,"Line",function(){return k.a}),i.d(n,"Popup",function(){return I.a}),i.d(n,"Modal",function(){return M.a}),i.d(n,"PointedRectangle",function(){return j.a}),i.d(n,"PointedShape",function(){return V.a}),i.d(n,"Polyarc",function(){return D.a}),i.d(n,"Polygon",function(){return E.a}),i.d(n,"Polyline",function(){return F.a}),i.d(n,"Polyspline",function(){return N.a}),i.d(n,"Preloader",function(){return R.a}),i.d(n,"Rectangle",function(){return A.a}),i.d(n,"ResizeButton",function(){return L.a}),i.d(n,"RoundedRectangle",function(){return H.a}),i.d(n,"Scrollbar",function(){return B.a}),i.d(n,"Slider",function(){return G}),i.d(n,"Slice",function(){return W.a}),i.d(n,"TextLink",function(){return z.a}),i.d(n,"Tooltip",function(){return U.a}),i.d(n,"Trapezoid",function(){return Y.a}),i.d(n,"Triangle",function(){return X.a}),i.d(n,"WavedCircle",function(){return K.a}),i.d(n,"WavedLine",function(){return J.a}),i.d(n,"WavedRectangle",function(){return Z.a}),i.d(n,"ZoomOutButton",function(){return q.a}),i.d(n,"PlayButton",function(){return $}),i.d(n,"Cone",function(){return tt.a}),i.d(n,"Rectangle3D",function(){return et.a}),i.d(n,"Slice3D",function(){return it.a}),i.d(n,"Export",function(){return nt.a}),i.d(n,"ExportMenu",function(){return rt.a}),i.d(n,"DateFormatter",function(){return ot.a}),i.d(n,"DurationFormatter",function(){return at.a}),i.d(n,"NumberFormatter",function(){return st.a}),i.d(n,"TextFormatter",function(){return ut.a}),i.d(n,"getTextFormatter",function(){return ut.b}),i.d(n,"Inertia",function(){return lt.a}),i.d(n,"Interaction",function(){return ht.a}),i.d(n,"getInteraction",function(){return ht.b}),i.d(n,"InteractionKeyboardObject",function(){return ct.a}),i.d(n,"InteractionObject",function(){return pt.a}),i.d(n,"InteractionObjectEventDispatcher",function(){return dt.a}),i.d(n,"MouseCursorStyle",function(){return ft.a}),i.d(n,"AMElement",function(){return gt.a}),i.d(n,"Group",function(){return mt.a}),i.d(n,"Paper",function(){return yt.a}),i.d(n,"Tension",function(){return bt.b}),i.d(n,"Basis",function(){return bt.a}),i.d(n,"SVGContainer",function(){return vt.a}),i.d(n,"ColorModifier",function(){return _t.a}),i.d(n,"LinearGradient",function(){return xt.a}),i.d(n,"LinearGradientModifier",function(){return Pt.a}),i.d(n,"RadialGradientModifier",function(){return Ot}),i.d(n,"LinePattern",function(){return Tt}),i.d(n,"Pattern",function(){return St.a}),i.d(n,"RadialGradient",function(){return wt.a}),i.d(n,"RectPattern",function(){return Ct}),i.d(n,"ColorizeFilter",function(){return It}),i.d(n,"DesaturateFilter",function(){return Mt.a}),i.d(n,"DropShadowFilter",function(){return jt.a}),i.d(n,"BlurFilter",function(){return Vt}),i.d(n,"Filter",function(){return kt.a}),i.d(n,"FocusFilter",function(){return Dt}),i.d(n,"LightenFilter",function(){return Et.a}),i.d(n,"GlobalAdapter",function(){return Ft.b}),i.d(n,"globalAdapter",function(){return Ft.c}),i.d(n,"Adapter",function(){return Ft.a}),i.d(n,"Animation",function(){return Nt.a}),i.d(n,"animate",function(){return Nt.c}),i.d(n,"nextFrame",function(){return Rt.a}),i.d(n,"readFrame",function(){return Rt.c}),i.d(n,"writeFrame",function(){return Rt.f}),i.d(n,"whenIdle",function(){return Rt.e}),i.d(n,"triggerIdle",function(){return Rt.d}),i.d(n,"Cache",function(){return At.a}),i.d(n,"cache",function(){return At.b}),i.d(n,"Color",function(){return Lt.a}),i.d(n,"color",function(){return Lt.c}),i.d(n,"isColor",function(){return Lt.d}),i.d(n,"castColor",function(){return Lt.b}),i.d(n,"ColorSet",function(){return Ht.a}),i.d(n,"InterfaceColorSet",function(){return Q.a}),i.d(n,"DictionaryDisposer",function(){return Bt.b}),i.d(n,"Dictionary",function(){return Bt.a}),i.d(n,"DictionaryTemplate",function(){return Bt.c}),i.d(n,"Disposer",function(){return Gt.b}),i.d(n,"MultiDisposer",function(){return Gt.c}),i.d(n,"MutableValueDisposer",function(){return Gt.d}),i.d(n,"CounterDisposer",function(){return Gt.a}),i.d(n,"StyleRule",function(){return O.c}),i.d(n,"StyleClass",function(){return O.b}),i.d(n,"getElement",function(){return O.o}),i.d(n,"addClass",function(){return O.f}),i.d(n,"removeClass",function(){return O.s}),i.d(n,"blur",function(){return O.h}),i.d(n,"focus",function(){return O.n}),i.d(n,"outerHTML",function(){return O.q}),i.d(n,"isElement",function(){return O.p}),i.d(n,"copyAttributes",function(){return O.j}),i.d(n,"fixPixelPerfect",function(){return O.m}),i.d(n,"ready",function(){return O.r}),i.d(n,"EventDispatcher",function(){return Wt.a}),i.d(n,"TargetedEventDispatcher",function(){return Wt.b}),i.d(n,"ListIterator",function(){return zt.ListIterator}),i.d(n,"min",function(){return zt.min}),i.d(n,"max",function(){return zt.max}),i.d(n,"join",function(){return zt.join}),i.d(n,"Keyboard",function(){return Ut.a}),i.d(n,"keyboard",function(){return Ut.b}),i.d(n,"Language",function(){return Yt.a}),i.d(n,"IndexedIterable",function(){return Xt.a}),i.d(n,"ListGrouper",function(){return Xt.d}),i.d(n,"ListDisposer",function(){return Xt.c}),i.d(n,"List",function(){return Xt.b}),i.d(n,"ListTemplate",function(){return Xt.e}),i.d(n,"Morpher",function(){return Kt.a}),i.d(n,"reverse",function(){return Jt.b}),i.d(n,"or",function(){return Jt.a}),i.d(n,"Percent",function(){return Zt.a}),i.d(n,"percent",function(){return Zt.c}),i.d(n,"isPercent",function(){return Zt.b}),i.d(n,"Plugin",function(){return qt.a}),i.d(n,"Responsive",function(){return Qt.a}),i.d(n,"ResponsiveBreakpoints",function(){return Qt.b}),i.d(n,"defaultRules",function(){return Qt.c}),i.d(n,"OrderedList",function(){return $t.a}),i.d(n,"SortedList",function(){return $t.c}),i.d(n,"OrderedListTemplate",function(){return $t.b}),i.d(n,"SortedListTemplate",function(){return $t.d}),i.d(n,"PX",function(){return te.f}),i.d(n,"STRING",function(){return te.g}),i.d(n,"NUMBER",function(){return te.c}),i.d(n,"DATE",function(){return te.a}),i.d(n,"DURATION",function(){return te.b}),i.d(n,"PLACEHOLDER",function(){return te.d}),i.d(n,"PLACEHOLDER2",function(){return te.e}),i.d(n,"isNaN",function(){return S.isNaN}),i.d(n,"checkString",function(){return S.checkString}),i.d(n,"checkBoolean",function(){return S.checkBoolean}),i.d(n,"checkNumber",function(){return S.checkNumber}),i.d(n,"checkObject",function(){return S.checkObject}),i.d(n,"castString",function(){return S.castString}),i.d(n,"castNumber",function(){return S.castNumber}),i.d(n,"isString",function(){return S.isString}),i.d(n,"isNumber",function(){return S.isNumber}),i.d(n,"isObject",function(){return S.isObject}),i.d(n,"isArray",function(){return S.isArray}),i.d(n,"Validatable",function(){return ee.a}),i.d(n,"path",function(){return ie}),i.d(n,"colors",function(){return ne}),i.d(n,"ease",function(){return re}),i.d(n,"math",function(){return oe}),i.d(n,"array",function(){return ae}),i.d(n,"number",function(){return se}),i.d(n,"object",function(){return ue}),i.d(n,"string",function(){return le}),i.d(n,"time",function(){return he}),i.d(n,"utils",function(){return ce}),i.d(n,"iter",function(){return zt}),i.d(n,"type",function(){return S}),i.d(n,"create",function(){return fe}),i.d(n,"createFromConfig",function(){return ge}),i.d(n,"useTheme",function(){return me}),i.d(n,"unuseTheme",function(){return ye}),i.d(n,"unuseAllThemes",function(){return be});var r=i("Rpw0"),o=i("Tjl+"),a=i("Y9w3"),s=i("C6dT"),u=i("A6AV"),l=i("Vs7R"),h=i("kQxV"),c=i("ux7t"),p=i("aCit"),d=i("Q4nc"),f=i("4DCw"),g=i("Mpxm"),m=i("mIpt"),y=i("EjGA"),b=i("ZhuL"),v=i("hpNl"),_=i("aGXA"),x=i("FzPm"),P=i("Ybtf"),w=i("m4/l"),O=i("58Sn"),S=i("Mtpk"),T=function(t){function e(){var e=t.call(this)||this;return e.className="Image",e.element=e.paper.add("image"),e.applyTheme(),e.width=50,e.height=50,e}return w.c(e,t),e.prototype.draw=function(){if(t.prototype.draw.call(this),this.href){var e=this.innerWidth,i=this.innerHeight;S.isNumber(this.widthRatio)&&(e=i*this.widthRatio,this.width=e),S.isNumber(this.heightRatio)&&(i=e*this.heightRatio,this.height=i),this.element.attr({width:e,height:i}),this.element.attrNS(O.d,"xlink:href",this.href)}},Object.defineProperty(e.prototype,"href",{get:function(){return this.getPropertyValue("href")},set:function(t){this.setPropertyValue("href",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"widthRatio",{get:function(){return this.getPropertyValue("widthRatio")},set:function(t){this.setPropertyValue("widthRatio",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"heightRatio",{get:function(){return this.getPropertyValue("heightRatio")},set:function(t){this.setPropertyValue("heightRatio",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bbox",{get:function(){return{x:0,y:0,width:this.pixelWidth,height:this.pixelHeight}},enumerable:!0,configurable:!0}),e}(l.a);p.b.registeredClasses.Image=T;var C=i("p9TX"),k=i("PTiM"),I=i("UsNi"),M=i("W8Sc"),j=i("MZQ8"),V=i("1qam"),D=i("MXvJ"),E=i("R6wv"),F=i("jfaP"),N=i("xgTw"),R=i("vGbf"),A=i("GtDR"),L=i("xIv9"),H=i("CnhP"),B=i("ISWh"),G=function(t){function e(){var e=t.call(this)||this;return e.className="Slider",e.thumb.opacity=0,e.thumb.interactionsEnabled=!1,e.endGrip.opacity=0,e.endGrip.interactionsEnabled=!1,e.startGrip.events.on("drag",function(){e.endGrip.x=e.startGrip.x,e.endGrip.y=e.startGrip.y}),e.applyTheme(),e}return w.c(e,t),Object.defineProperty(e.prototype,"__end",{get:function(){return this._start},set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"end",{get:function(){return this._start},set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"start",{get:function(){return this._start},set:function(t){this._isBusy||(this.__start=t)},enumerable:!0,configurable:!0}),e}(B.a);p.b.registeredClasses.Slider=G;var W=i("Inf5"),z=i("Trvg"),U=i("cxKZ"),Y=i("DziZ"),X=i("Rnbi"),K=i("Vk33"),J=i("ND2/"),Z=i("w4m0"),q=i("BEgH"),Q=i("MIZb"),$=function(t){function e(){var e=t.call(this)||this;e.className="PlayButton",e.padding(12,12,12,12),e.showSystemTooltip=!0;var i=new Q.a,n=e.background;n.cornerRadius(25,25,25,25),n.fill=i.getFor("primaryButton"),n.stroke=i.getFor("primaryButtonStroke"),n.strokeOpacity=0,n.states.getKey("hover").properties.fill=i.getFor("primaryButtonHover"),n.states.getKey("down").properties.fill=i.getFor("primaryButtonActive");var r=new X.a;r.direction="right",r.width=9,r.height=11,r.marginLeft=1,r.marginRight=1,r.horizontalCenter="middle",r.verticalCenter="middle",r.stroke=i.getFor("primaryButtonText"),r.fill=r.stroke,e.icon=r;var o=new H.a;o.width=11,o.height=11,o.horizontalCenter="middle",o.verticalCenter="middle",o.cornerRadius(0,0,0,0),o.stroke=i.getFor("primaryButtonText"),o.fill=r.stroke,e.togglable=!0;var a=e.states.create("active");return a.transitionDuration=0,a.properties.icon=o,e.defaultState.transitionDuration=0,e.applyTheme(),e}return w.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),S.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Play"))},e}(_.a);p.b.registeredClasses.PlayButton=$;var tt=i("ncT3"),et=i("Mr4Y"),it=i("nPzZ"),nt=i("GAaQ"),rt=i("qJno"),ot=i("7XB+"),at=i("akNo"),st=i("CTEm"),ut=i("MipW"),lt=i("0PyG"),ht=i("zhwk"),ct=i("Oe1l"),pt=i("vbOF"),dt=i("YotE"),ft=i("qCRI"),gt=i("pzs1"),mt=i("cOH5"),yt=i("P7v+"),bt=i("aFzC"),vt=i("HDh7"),_t=i("DA7/"),xt=i("sxA1"),Pt=i("/e9j"),wt=i("CuFa"),Ot=function(t){function e(){var e=t.call(this)||this;return e.className="RadialGradientModifier",e.gradient=new wt.a,e.applyTheme(),e}return w.c(e,t),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.gradient=e.gradient.clone()},e}(i("3/51").a);p.b.registeredClasses.RadialGradientModifier=Ot;var St=i("ZLF9"),Tt=function(t){function e(){var e=t.call(this)||this;return e._line=e.paper.add("line"),e.addElement(e._line),e}return w.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this),this._line&&this._line.attr({x2:2*this.width})},e}(St.a);p.b.registeredClasses.LinePattern=Tt;var Ct=function(t){function e(){var e=t.call(this)||this;return e.rectHeight=1,e.rectWidth=1,e}return w.c(e,t),e.prototype.draw=function(){this._rect&&this.removeElement(this._rect),this._rect=this.paper.add("rect"),this._rect.attr({width:this.rectWidth,height:this.rectHeight}),this.addElement(this._rect),t.prototype.draw.call(this)},Object.defineProperty(e.prototype,"rectWidth",{get:function(){return this.properties.rectWidth},set:function(t){this.properties.rectWidth=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rectHeight",{get:function(){return this.properties.rectHeight},set:function(t){this.properties.rectHeight=t,this.draw()},enumerable:!0,configurable:!0}),e}(St.a);p.b.registeredClasses.RectPattern=Ct;var kt=i("ohjg"),It=function(t){function e(){var e=t.call(this)||this;return e.className="ColorizeFilter",e.feColorMatrix=e.paper.add("feColorMatrix"),e.feColorMatrix.attr({type:"matrix"}),e.filterPrimitives.push(e.feColorMatrix),e.intensity=1,e.applyTheme(),e}return w.c(e,t),e.prototype.applyFilter=function(){var t,e,i,n=this.intensity,r=1-n,o=this.color;o&&o.rgb?(t=o.rgb.r/255*n,e=o.rgb.g/255*n,i=o.rgb.b/255*n):(t=0,e=0,i=0),this.feColorMatrix.attr({values:r+" 0 0 0 "+t+" 0 "+r+" 0 0 "+e+" 0 0 "+r+" 0 "+i+" 0 0 0 1 0"})},Object.defineProperty(e.prototype,"color",{get:function(){return this.properties.color},set:function(t){this.properties.color=t,this.applyFilter()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"intensity",{get:function(){return this.properties.intensity},set:function(t){this.properties.intensity=t,this.applyFilter()},enumerable:!0,configurable:!0}),e}(kt.a);p.b.registeredClasses.ColorizeFilter=It;var Mt=i("85D4"),jt=i("VAFc"),Vt=function(t){function e(){var e=t.call(this)||this;return e.className="BlurFilter",e.feGaussianBlur=e.paper.add("feGaussianBlur"),e.feGaussianBlur.attr({result:"blurOut",in:"SourceGraphic"}),e.filterPrimitives.push(e.feGaussianBlur),e.width=200,e.height=200,e.blur=1.5,e.applyTheme(),e}return w.c(e,t),Object.defineProperty(e.prototype,"blur",{get:function(){return this.properties.blur},set:function(t){this.properties.blur=t,this.feGaussianBlur.attr({stdDeviation:t/this.scale})},enumerable:!0,configurable:!0}),e}(kt.a);p.b.registeredClasses.BlurFilter=Vt;var Dt=function(t){function e(){var e=t.call(this)||this;return e.className="FocusFilter",e.feFlood=e.paper.add("feFlood"),e.feFlood.attr({"flood-color":(new Q.a).getFor("primaryButtonHover"),result:"base"}),e.filterPrimitives.push(e.feFlood),e.feMorphology=e.paper.add("feMorphology"),e.feMorphology.attr({result:"bigger",in:"SourceGraphic",operator:"dilate",radius:"2"}),e.filterPrimitives.push(e.feMorphology),e.feColorMatrix=e.paper.add("feColorMatrix"),e.feColorMatrix.attr({result:"mask",in:"bigger",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"}),e.filterPrimitives.push(e.feColorMatrix),e.feComposite=e.paper.add("feComposite"),e.feComposite.attr({result:"drop",in:"base",in2:"mask",operator:"in"}),e.filterPrimitives.push(e.feComposite),e.feBlend=e.paper.add("feBlend"),e.feBlend.attr({in:"SourceGraphic",in2:"drop",mode:"normal"}),e.filterPrimitives.push(e.feBlend),e.width=130,e.height=130,e.applyTheme(),e}return w.c(e,t),Object.defineProperty(e.prototype,"stroke",{get:function(){return this.properties.stroke},set:function(t){this.properties.stroke=t,this.feFlood.attr({"flood-color":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strokeWidth",{get:function(){return this.properties.strokeWidth},set:function(t){this.properties.strokeWidth=t,this.feMorphology.attr({radius:t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"opacity",{get:function(){return this.properties.opacity},set:function(t){this.properties.opacity=t,this.feColorMatrix.attr({values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "+t+" 0"})},enumerable:!0,configurable:!0}),e.prototype.setSprite=function(e){this._sprite&&this._sprite!=e&&this._sprite.group.removeStyle("outline"),e.group.addStyle({outline:"none"}),t.prototype.setSprite.call(this,e)},e}(kt.a),Et=i("C84C"),Ft=i("x79X"),Nt=i("1yyj"),Rt=i("/9XX"),At=i("eCqC"),Lt=i("8ZqG"),Ht=i("DHte"),Bt=i("+qIf"),Gt=i("hD5A"),Wt=i("o0Lc"),zt=i("Wglt"),Ut=i("WYhe"),Yt=i("P/bD"),Xt=i("vMqJ"),Kt=i("oC3T"),Jt=i("MlsF"),Zt=i("tjMS"),qt=i("Iz1H"),Qt=i("TGuK"),$t=i("VGgz"),te=i("ScGY"),ee=i("/IEW"),ie=i("hGwe"),ne=i("hxI2"),re=i("0FpR"),oe=i("Gg2j"),ae=i("hJ5i"),se=i("3Cxr"),ue=i("Qkdp"),le=i("wUYf"),he=i("L91H"),ce=i("v9UT"),pe=function(t){function e(){var e=t.call(this)||this;e.className="AmChartsLogo",e.valign="bottom";var i=.3;e.opacity=.3,e.defaultState.properties.opacity=.4,e.url="https://www.amcharts.com/",e.urlTarget="_blank",e.showSystemTooltip=!0,e.readerTitle="Chart created using amCharts library",e.width=6,e.height=1,e.background.opacity=0;var n=Object(Lt.c)("#474758");"#ffffff"==(new Q.a).getFor("background").alternative.hex&&(n=Object(Lt.c)("#ffffff"));var r=new xt.a;r.addColor(n),r.addColor(n,1,.75),r.addColor(Object(Lt.c)("#3cabff"),1,.755),r.rotation=-10;var o=r,a=e.createChild(N.a);a.shouldClone=!1,a.isMeasured=!1,a.segments=[[{x:15,y:15},{x:27,y:15},{x:36,y:6},{x:40.5,y:10.5},{x:45,y:6},{x:54,y:15},{x:60,y:15}]],a.strokeWidth=6*i,a.tensionX=.8,a.tensionY=1,a.stroke=Object(Lt.c)("#3cabff");var s=e.createChild(N.a);s.shouldClone=!1,s.isMeasured=!1,s.segments=[[{x:6,y:15},{x:15,y:15},{x:27,y:12*i},{x:39.9,y:15},{x:51,y:15},{x:60,y:15}]],s.strokeWidth=6*i,s.tensionX=.75,s.tensionY=1,s.stroke=o,e._disposers.push(s);var u=new Mt.a;e.filters.push(u);var l=new Mt.a;l.saturation=1;var h=e.states.create("hover");return h.properties.opacity=1,h.filters.push(l),e.applyTheme(),e}return w.c(e,t),e}(s.a);function de(t,e){var i=O.o(t);if(i){i.innerHTML="";var n=new vt.a(i),o=new yt.a(n.SVGContainer,"svg-"+(vt.b.length-1)),a=new s.a;a.htmlContainer=i,a.svgContainer=n,a.width=Object(Zt.c)(100),a.height=Object(Zt.c)(100),a.background.fillOpacity=0,a.paper=o,o.append(a.group),a.relativeWidth=1,a.relativeHeight=1,n.container=a;var u=a.createChild(e);u.topParent=a;var l=u.uid;p.b.invalidSprites[l]=[],p.b.invalidDatas[l]=[],p.b.invalidPositions[l]=[],p.b.invalidLayouts[l]=[],a.baseId=l,u.isBaseSprite=!0,u.focusFilter=new Dt,p.b.baseSprites.push(u),p.b.baseSpritesByUid[l]=u,u.maskRectangle={x:0,y:0,width:n.width,height:n.height},a.events.on("maxsizechanged",function(t){0!=t.previousWidth&&0!=t.previousHeight||a.deepInvalidate(),u.maskRectangle&&(u.maskRectangle={x:0,y:0,width:n.width,height:n.height})}),u.addDisposer(new Gt.b(function(){ae.remove(p.b.baseSprites,u),p.b.baseSpritesByUid[u.uid]=void 0})),u.addDisposer(a);var h=a.createChild(s.a);h.topParent=a,h.width=Object(Zt.c)(100),h.height=Object(Zt.c)(100),h.isMeasured=!1,a.tooltipContainer=h,u.tooltip=new U.a,u.tooltip.hide(0),u.tooltip.setBounds({x:0,y:0,width:h.maxWidth,height:h.maxHeight}),h.events.on("maxsizechanged",function(){S.getValue(u.tooltip).setBounds({x:0,y:0,width:h.maxWidth,height:h.maxHeight})},void 0,!1);var c=new R.a;if(c.events.on("inited",function(){c.__disabled=!0},void 0,!1),a.preloader=c,!d.a.commercialLicense){var f=h.createChild(pe);h.events.on("maxsizechanged",function(t){h.maxWidth<=100||h.maxHeight<=50?f.hide():(f.isHidden||f.isHiding)&&f.show()},void 0,!1),u.logo=f,f.align="left",f.valign="bottom"}return u.numberFormatter,a.isStandaloneInstance=!0,u}throw r.b.log("html container not found"),new Error("html container not found")}function fe(t,e){var i;S.isString(e)&&(S.hasValue(p.b.registeredClasses[e])?e=p.b.registeredClasses[e]:(e=p.b.registeredClasses.Container,i=new Error("Class ["+e+"] is not loaded.")));var n=de(t,e);return i&&n.raiseCriticalError(i),n}function ge(t,e,i){var n,r;if(S.hasValue(i)||(i=t.type,delete t.type),S.hasValue(e)||(e=t.container,delete t.container),S.isString(i)&&S.hasValue(p.b.registeredClasses[i])?n=p.b.registeredClasses[i]:"function"!=typeof i?(n=s.a,r=new Error("Class ["+i+"] is not loaded.")):n=i,S.hasValue(t.geodata)&&S.isString(t.geodata))if(S.hasValue(window["am4geodata_"+t.geodata]))t.geodata=window["am4geodata_"+t.geodata];else try{t.geodata=JSON.parse(t.geodata)}catch(t){r=new Error("<code>geodata</code> is incorrect or the map file is not loaded.")}var o=de(e,n);return r?o.raiseCriticalError(r):o.config=t,o}function me(t){-1===p.b.themes.indexOf(t)&&p.b.themes.push(t)}function ye(t){ae.remove(p.b.themes,t)}function be(){p.b.themes=[]}window.am4core=n,i.p=function(t){return/(.*\/)[^\/]*$/.exec(t)[1]}(function(){if(document.currentScript)return document.currentScript;var t=document.getElementsByTagName("script");return t[t.length-1]}().src)},O8xK:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("G5U1"),o=i("T9LF"),a=i("QXbb"),s=i("JqbS");n(n.P+n.R,"Promise",{finally:function(t){var e=a(this,r.Promise||o.Promise),i="function"==typeof t;return this.then(i?function(i){return s(e,t()).then(function(){return i})}:t,i?function(i){return s(e,t()).then(function(){throw i})}:t)}})},"OB1/":function(t,e,i){var n=i("G5U1"),r=i("T9LF"),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:i("pb4Y")?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},ODWe:function(t,e,i){var n=i("U3hN"),r=i("EhJv"),o=i("mntN")(!1),a=i("VYrJ")("IE_PROTO");t.exports=function(t,e){var i,s=r(t),u=0,l=[];for(i in s)i!=a&&n(s,i)&&l.push(i);for(;e.length>u;)n(s,i=e[u++])&&(~o(l,i)||l.push(i));return l}},OKlB:function(t,e,i){var n=i("Gb1H");n(n.S,"Number",{isNaN:function(t){return t!=t}})},OVUc:function(t,e,i){"use strict";e.a=function(t,e,i){return new Promise(function(r,o){var a=n.hasValue(i)&&"blob"==i.responseType,s=new XMLHttpRequest;if(s.onload=function(){if(200===s.status){var t=void 0,i=void 0;a?i=s.response:t=s.responseText||s.response;var n={xhr:s,error:!1,response:t,blob:i,type:s.getResponseHeader("Content-Type"),target:e};r(n)}else o({xhr:s,error:!0,type:s.getResponseHeader("Content-Type"),target:e})},s.onerror=function(){o({xhr:s,error:!0,type:s.getResponseHeader("Content-Type"),target:e})},s.open("GET",t,!0),i&&i.withCredentials&&(s.withCredentials=!0),n.hasValue(i)){if(n.hasValue(i.requestHeaders))for(var u=0;u<i.requestHeaders.length;u++){var l=i.requestHeaders[u];s.setRequestHeader(l.key,l.value)}n.hasValue(i.responseType)&&(s.responseType=i.responseType)}s.send()})};var n=i("Mtpk")},OWpl:function(t,e,i){var n=i("vJiZ"),r=i("3BzE");i("5lay")("keys",function(){return function(t){return r(n(t))}})},OXm9:function(t,e,i){"use strict";i.d(e,"a",function(){return f});var n=i("m4/l"),r=i("Meme"),o=i("ND2/"),a=i("w4m0"),s=i("aCit"),u=i("tjMS"),l=i("Gg2j"),h=i("hGwe"),c=i("v9UT"),p=i("Mtpk"),d=i("TGuK"),f=function(t){function e(){var e=t.call(this)||this;return e.className="AxisRendererY",e.minGridDistance=40,e.opposite=!1,e.height=Object(u.c)(100),e.labels.template.verticalCenter="middle",e.applyTheme(),e}return n.c(e,t),e.prototype.setAxis=function(e){t.prototype.setAxis.call(this,e),e.layout="horizontal"},e.prototype.updateGridContainer=function(){var t=this.axis;if(t){var e=this.gridContainer;e.y=t.pixelY,e.height=t.pixelHeight}},e.prototype.toAxisPosition=function(t){var e=1-t,i=this.axis,n=i.parent;return i&&n?1-(e-i.pixelY/n.innerHeight)/(i.pixelHeight/n.innerHeight):t},e.prototype.processRenderer=function(){t.prototype.processRenderer.call(this);var e=this.axis;if(e){var i=e.title;i.valign="middle",e.height=Object(u.c)(100),this.opposite?(i.rotation=90,this.line.toBack(),i.toFront()):(i.rotation=-90,i.toBack(),this.line.toFront())}},e.prototype.updateTooltip=function(){if(this.axis){var t=0,e=2e3,i=this.axisLength;this.opposite?this.inside&&(t=-2e3,e=2e3):this.inside||(t=-2e3,e=2e3),this.axis.updateTooltip("horizontal",{x:t,y:0,width:e,height:i})}},Object.defineProperty(e.prototype,"axisLength",{get:function(){var t=this.axis;return t.measuredHeight-t.pixelPaddingTop-t.pixelPaddingBottom||0},enumerable:!0,configurable:!0}),e.prototype.positionToPoint=function(t){return{x:0,y:this.positionToCoordinate(t)}},e.prototype.pointToPosition=function(t){return this.coordinateToPosition(t.y)},e.prototype.getPositionRangePath=function(t,e){var i=l.fitToRange(this.positionToCoordinate(t),0,this.axisLength),n=l.fitToRange(this.positionToCoordinate(e),0,this.axisLength),r=Math.abs(n-i),o=this.getWidth(),a=Math.min(i,n);return h.rectToPath({x:0,y:a,width:o,height:r},!0)},e.prototype.updateGridElement=function(t,e,i){e+=(i-e)*t.location;var n=this.positionToPoint(e);t.path=h.moveTo({x:0,y:0})+h.lineTo({x:this.getWidth(),y:0}),this.positionItem(t,n),this.toggleVisibility(t,e,0,1)},e.prototype.updateTickElement=function(t,e,i){var n=this.positionToPoint(e),r=t.length;try{c.used(this.axis.title.measuredWidth)}catch(t){}this.opposite?(n.x=this.gridContainer.pixelWidth,r*=t.inside?-1:1):(r*=t.inside?1:-1,n.x=0),t.path=h.moveTo({x:0,y:0})+h.lineTo({x:r,y:0}),this.positionItem(t,n),this.toggleVisibility(t,e,0,1)},e.prototype.updateAxisLine=function(){this.line.path=h.moveTo({x:0,y:0})+h.lineTo({x:0,y:this.axisLength})},e.prototype.updateBaseGridElement=function(){t.prototype.updateBaseGridElement.call(this);var e=this.axis,i=this.getWidth(),n=this.pixelHeight,r=e.basePoint.y,o=this.baseGrid;if(r<0||r>n)o.hide(0);else{var a=c.spritePointToSprite({x:0,y:0},this.gridContainer,o.parent).x;o.path=h.moveTo({x:0,y:0})+h.lineTo({x:i,y:0}),o.moveTo({x:a,y:r}),o.show(0)}},e.prototype.updateLabelElement=function(t,e,i,n){p.hasValue(n)||(n=t.location),e+=(i-e)*n,t.isMeasured=!t.inside;var r,o=this.positionToPoint(e),a=0;this.opposite?(t.inside?(r="right","left"==t.align&&(a=-this.gridContainer.maxWidth,r="left")):r="left",o.x=0+a):(t.inside?(r="left","right"==t.align&&(a=this.gridContainer.maxWidth,r="right")):r="right",o.x=this.measuredWidth+a),0==t.rotation&&(t.horizontalCenter=r),this.positionItem(t,o),this.toggleVisibility(t,e,this.minLabelPosition,this.maxLabelPosition)},e.prototype.updateBreakElement=function(e){t.prototype.updateBreakElement.call(this,e);var i=e.startLine,n=e.endLine,r=e.fillShape,o=e.startPoint,a=e.endPoint,s=e.pixelMarginLeft,u=this.getWidth()-e.pixelMarginLeft-e.pixelMarginRight;o.y=l.fitToRange(o.y,-1,this.pixelHeight+1),a.y=l.fitToRange(a.y,-1,this.pixelHeight+1),o.y==a.y&&(o.y<0||o.y>this.pixelHeight)?e.fillShape.__disabled=!0:e.fillShape.__disabled=!1;var h=Math.abs(u-s);i.x=s,i.height=0,i.width=h,n.x=s,n.height=0,n.width=h,r.width=h,r.height=Math.abs(a.y-o.y),r.x=s,r.y=a.y},e.prototype.createBreakSprites=function(t){t.startLine=new o.a,t.endLine=new o.a;var e=new a.a;e.setWavedSides(!0,!1,!0,!1),t.fillShape=e},e.prototype.positionToCoordinate=function(t){var e,i=this.axis,n=i.axisFullLength;return e=i.renderer.inversed?(t-i.start)*n:(i.end-t)*n,l.round(e,1)},e}(r.a);s.b.registeredClasses.AxisRendererY=f,d.c.push({relevant:d.b.widthS,state:function(t,e){if(t instanceof f){var i=t.states.create(e);return i.properties.inside=!0,i.properties.maxLabelPosition=.9,i.properties.minLabelPosition=.1,i}return null}}),d.c.push({relevant:d.b.widthXS,state:function(t,e){if(t instanceof f){var i=t.states.create(e);return i.properties.disabled=!0,i}return null}})},Obr2:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("vJiZ"),o=i("W0fk"),a=i("K0ev"),s=i("nHHr").f;i("gD3S")&&n(n.P+i("3/+B"),"Object",{__lookupGetter__:function(t){var e,i=r(this),n=o(t,!0);do{if(e=s(i,n))return e.get}while(i=a(i))}})},Oe1l:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("zhwk"),r=i("1yyj"),o=i("hJ5i"),a=function(){function t(t,e){this._disposed=!1,this.directionX=0,this.directionY=0,this.interaction=t,this.keyboardEvent=e,this._startedOn=(new Date).getTime(),Object(n.b)().processDragStart(t),r.d.push(this),this.update()}return t.prototype.update=function(){var t=this.interaction,e=Object(n.b)().getKeyboardOption(t,"speed"),i=Object(n.b)().getKeyboardOption(t,"accelleration"),r=Object(n.b)().getKeyboardOption(t,"accellerationDelay"),o={x:0,y:0};this.keyboardEvent.shiftKey?(e*=.5,i=1):this.keyboardEvent.ctrlKey&&(e*=2);var a=(new Date).getTime()-this._startedOn,s=a-r;if(i>0&&s>0){var u=a/r;a=r,o.x+=this.directionX*(e*i*u*s),o.y+=this.directionY*(e*i*u*s)}o.x+=this.directionX*(e*a),o.y+=this.directionY*(e*a),Object(n.b)().handleTransformMove(t,o,{x:0,y:0},this.keyboardEvent,!0)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.dispose=function(){this._disposed||(Object(n.b)().processDragStop(this.interaction),o.remove(r.d,this))},t}()},"Oko+":function(t,e,i){"use strict";var n=i("Gb1H"),r=i("dstF")(3);n(n.P+n.F*!i("GQop")([].some,!0),"Array",{some:function(t){return r(this,t,arguments[1])}})},OuXI:function(t,e,i){var n=i("Gb1H"),r=i("iAlL")(!0);n(n.S,"Object",{entries:function(t){return r(t)}})},OxI3:function(t,e,i){var n=i("Gb1H"),r=i("0C8c"),o=Math.exp;n(n.S+n.F*i("AEc5")(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(r(t)-r(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},"P/bD":function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("Tjl+"),o=i("x79X"),a=i("hJ5i"),s=i("Mtpk"),u=i("JNIx"),l=i("Q4nc"),h=function(t){function e(){var e=t.call(this)||this;return e.adapter=new o.a(e),e._locale=u.a,e._defaultLocale=u.a,e.className="Language",s.hasValue(l.a.defaultLocale)&&(e.locale=l.a.defaultLocale),e.applyTheme(),e}return n.c(e,t),e.prototype.getLocale=function(t){return null==t&&(t=this._locale),this.adapter.apply("locale",{locale:t}).locale},e.prototype.translate=function(t,e){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];e=this.getLocale(e);var o=t,a=this.getTranslations(e)[t];if(null===a)a="";else if(s.hasValue(a))a&&(o=a);else if(e!==this._defaultLocale)return this.translate.apply(this,n.f([t,this._defaultLocale],i));if(i.length)for(var u=i.length,l=0;l<u;++l)o=o.split("%"+(l+1)).join(i[l]);return this.adapter.apply("translate",{translation:o,locale:e}).translation},e.prototype.translateEmpty=function(t,e){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];var o=this.translate.apply(this,n.f([t,e],i));return o==t?"":o},e.prototype.translateFunc=function(t,e){e=this.getLocale(e);var i=this.getTranslations(e)[t];return null!=i?i:e!==this._defaultLocale?this.translateFunc(t,this._defaultLocale):function(){return""}},e.prototype.translateAll=function(t,e){var i=this;return this.isDefault()?t:a.map(t,function(t){return i.translate(t,e)})},e.prototype.isDefault=function(){return this._defaultLocale===this._locale},Object.defineProperty(e.prototype,"locale",{get:function(){return this._locale},set:function(t){if(this._locale!=t&&(this._locale=t,this.events.isEnabled("localechanged"))){var e={type:"localechanged",locale:t,target:this};this.events.dispatchImmediately("localechanged",e)}},enumerable:!0,configurable:!0}),e.prototype.getTranslations=function(t){return this.adapter.apply("translations",{translations:t,locale:t}).translations},e}(r.b)},"P7v+":function(t,e,i){"use strict";i.d(e,"a",function(){return s}),e.b=function(){if(null===u){var t=document.createElement("div");t.hidden=!0,document.body.appendChild(t);var e=new o.a(t);u=new s(e.SVGContainer,"ghost")}return u};var n=i("pzs1"),r=i("cOH5"),o=i("HDh7"),a=i("58Sn"),s=function(){function t(t,e){this.container=t,this.id=e;var i=document.createElementNS(a.a,"svg");i.setAttribute("version","1.1"),i.setAttributeNS(a.e,"xmlns",a.a),i.setAttributeNS(a.e,"xmlns:xlink",a.d),i.setAttribute("role","group"),this.container.appendChild(i);var n=document.createElementNS(a.a,"desc");n.appendChild(document.createTextNode("JavaScript chart by amCharts")),i.appendChild(n),this.defs=document.createElementNS(a.a,"defs"),i.appendChild(this.defs),i.style.width="100%",i.style.height="100%",i.style.overflow="visible",this.svg=i}return t.prototype.add=function(t){return new n.a(t)},t.prototype.addGroup=function(t){return new r.a(t)},t.prototype.append=function(t){t&&this.svg.appendChild(t.node)},t.prototype.appendDef=function(t){t&&this.defs.appendChild(t.node)},t.prototype.foreignObject=function(){return new n.a("foreignObject")},t.prototype.supportsForeignObject=function(){return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Extensibility","1.1")},t}(),u=null},PTiM:function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("Vs7R"),o=i("8ZqG"),a=i("sxA1"),s=i("aCit"),u=i("Mtpk"),l=i("Gg2j"),h=function(t){function e(){var e=t.call(this)||this;return e.className="Line",e.element=e.paper.add("line"),e.fill=Object(o.c)(),e.x1=0,e.y1=0,e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this),this.x1==this.x2||this.y1==this.y2?this.pixelPerfect=!0:this.pixelPerfect=!1,this.x1=this.x1,this.x2=this.x2,this.y1=this.y1,this.y2=this.y2},Object.defineProperty(e.prototype,"x1",{get:function(){return this.getPropertyValue("x1")},set:function(t){u.isNumber(t)||(t=0);var e=0;this.pixelPerfect&&this.stroke instanceof a.a&&(e=1e-5),this.setPropertyValue("x1",t,!0),this.element.attr({x1:t+e})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"x2",{get:function(){var t=this.getPropertyValue("x2");return u.isNumber(t)||(t=this.pixelWidth),t},set:function(t){u.isNumber(t)||(t=0),this.setPropertyValue("x2",t,!0),this.element.attr({x2:t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y1",{get:function(){return this.getPropertyValue("y1")},set:function(t){u.isNumber(t)||(t=0);var e=0;this.pixelPerfect&&this.stroke instanceof a.a&&(e=1e-5),this.setPropertyValue("y1",t,!0),this.element.attr({y1:t+e})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y2",{get:function(){var t=this.getPropertyValue("y2");return u.isNumber(t)||(t=this.pixelHeight),t},set:function(t){u.isNumber(t)||(t=0),this.setPropertyValue("y2",t,!0),this.element.attr({y2:t})},enumerable:!0,configurable:!0}),e.prototype.positionToPoint=function(t){var e={x:this.x1,y:this.y1},i={x:this.x2,y:this.y2},n=l.getMidPoint(e,i,t),r=l.getAngle(e,i);return{x:n.x,y:n.y,angle:r}},e}(r.a);s.b.registeredClasses.Line=h},PXSi:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("xSzy"),o=i("LNZc"),a=i("snR7"),s=i("UwWU"),u=i("FmWr"),l=i("DvJ+"),h=i("T9LF").ArrayBuffer,c=i("QXbb"),p=o.ArrayBuffer,d=o.DataView,f=r.ABV&&h.isView,g=p.prototype.slice,m=r.VIEW;n(n.G+n.W+n.F*(h!==p),{ArrayBuffer:p}),n(n.S+n.F*!r.CONSTR,"ArrayBuffer",{isView:function(t){return f&&f(t)||l(t)&&m in t}}),n(n.P+n.U+n.F*i("AEc5")(function(){return!new p(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function(t,e){if(void 0!==g&&void 0===e)return g.call(a(this),t);for(var i=a(this).byteLength,n=s(t,i),r=s(void 0===e?i:e,i),o=new(c(this,p))(u(r-n)),l=new d(this),h=new d(o),f=0;n<r;)h.setUint8(f++,l.getUint8(n++));return o}}),i("vdWU")("ArrayBuffer")},Pr7S:function(t,e,i){var n=i("DvJ+");i("5lay")("isFrozen",function(t){return function(e){return!n(e)||!!t&&t(e)}})},Puh1:function(t,e,i){"use strict";i.d(e,"b",function(){return p}),i.d(e,"a",function(){return d});var n=i("m4/l"),r=i("AC2I"),o=i("Inf5"),a=i("IbTV"),s=i("BmDP"),u=i("aCit"),l=i("Gg2j"),h=i("Mtpk"),c=i("tjMS"),p=function(t){function e(){var e=t.call(this)||this;return e.className="PieSeriesDataItem",e.values.radiusValue={},e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"radiusValue",{get:function(){return this.values.radiusValue.value},set:function(t){this.setValue("radiusValue",t)},enumerable:!0,configurable:!0}),e.prototype.hide=function(e,i,n,r){return t.prototype.hide.call(this,e,i,0,["value","radiusValue"])},e.prototype.show=function(e,i,n){return t.prototype.show.call(this,e,i,["value","radiusValue"])},e}(r.b),d=function(t){function e(){var e=t.call(this)||this;return e.className="PieSeries",e.alignLabels=!0,e.startAngle=-90,e.endAngle=270,e.labels.template.radius=Object(c.c)(5),e.applyTheme(),e}return n.c(e,t),e.prototype.createSlice=function(){return new o.a},e.prototype.createTick=function(){return new s.a},e.prototype.createLabel=function(){return new a.a},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),h.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Pie Slice Series"))},e.prototype.createDataItem=function(){return new p},e.prototype.initSlice=function(t){t.isMeasured=!1,t.defaultState.properties.scale=1,t.observe("scale",this.handleSliceScale,this),t.observe(["dx","dy","x","y","shiftRadius"],this.handleSliceMove,this),t.tooltipText="{category}: {value.percent.formatNumber('#.#')}% ({value.value})",t.states.create("hover").properties.scale=1.05,t.defaultState.properties.shiftRadius=0,t.togglable=!0,t.events.on("toggled",function(t){t.target.hideTooltip()}),t.states.create("active").properties.shiftRadius=.1},e.prototype.validate=function(){this._leftItems=[],this._rightItems=[],this._currentStartAngle=this.startAngle,this._arcRect=l.getArcRect(this.startAngle,this.endAngle),this._maxRadiusPercent=0;for(var e=this.startIndex;e<this.endIndex;e++){var i=this.dataItems.getIndex(e).values.radiusValue.percent;i>this._maxRadiusPercent&&(this._maxRadiusPercent=i)}t.prototype.validate.call(this),this.alignLabels&&(this.startAngle>this.endAngle?this._rightItems.reverse():this._leftItems.reverse(),this._rightItems.sort(function(t,e){var i=(t.slice.middleAngle+360)%360,n=(e.slice.middleAngle+360)%360;return i>270&&(i-=360),n>270&&(n-=360),i<n?-1:1}),this._leftItems.sort(function(t,e){return(t.slice.middleAngle+360)%360<(e.slice.middleAngle+360)%360?1:-1}),this.arrangeLabels(this._rightItems),this.arrangeLabels2(this._rightItems),this.arrangeLabels(this._leftItems),this.arrangeLabels2(this._leftItems))},e.prototype.validateDataElement=function(e){if(this.pixelRadius>0){var i=e.slice;i.radius=this.pixelRadius,h.isNumber(e.radiusValue)&&(i.radius=this.pixelInnerRadius+(this.pixelRadius-this.pixelInnerRadius)*e.values.radiusValue.percent/this._maxRadiusPercent),i.innerRadius instanceof c.a||(i.innerRadius=this.pixelInnerRadius),i.startAngle=this._currentStartAngle,i.arc=e.values.value.percent*(this.endAngle-this.startAngle)/100;var n=e.label,r=e.tick;r.slice=i,r.label=n;var o=(i.middleAngle+360)%360,a=void 0;if(this.alignLabels){var s=n.pixelRadius(i.radius),u=r.length+s;n.dx=0,n.dy=0,n.verticalCenter="middle";var l=this._arcRect;o>=270||o<=90?(u+=(l.width+l.x)*this.pixelRadius,n.horizontalCenter="left",this._rightItems.push(e)):(u-=l.x*this.pixelRadius,n.horizontalCenter="right",this._leftItems.push(e),u*=-1);var p=i.radius+r.length+s;a={x:u,y:i.iy*p},n.moveTo(a)}else{var d=i.depth;h.isNumber(d)||(d=0),n.fixPosition(i.middleAngle,i.radius,i.radiusY,0,-d)}this._currentStartAngle+=i.arc,t.prototype.validateDataElement.call(this,e)}},Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)&&this.invalidateDataItems()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelRadius",{get:function(){return this._pixelRadius},set:function(t){this._pixelRadius!=t&&(this._pixelRadius=t,this.invalidateDataItems())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelInnerRadius",{get:function(){return this._pixelInnerRadius},set:function(t){this._pixelInnerRadius!=t&&(this._pixelInnerRadius=t,this.invalidateDataItems())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",l.normalizeAngle(t),!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t,!0)},enumerable:!0,configurable:!0}),e.prototype.positionBullet=function(e){t.prototype.positionBullet.call(this,e);var i=e.dataItem.slice,n=e.locationX;h.isNumber(n)||(n=.5);var r=e.locationY;h.isNumber(r)||(r=1);var o=i.startAngle+i.arc*n;e.x=r*i.radius*l.cos(o),e.y=r*i.radiusY*l.sin(o)},e.prototype.handleSliceMove=function(t){if(!this.alignLabels){var e=t.target,i=e.dataItem;if(i){var n=i.label;n&&(n.dx=n.fdx+e.dx+e.pixelX,n.dy=n.fdy+e.dy+e.pixelY)}}},Object.defineProperty(e.prototype,"bbox",{get:function(){if(this.definedBBox)return this.definedBBox;var t=this.chart;return t?l.getArcRect(t.startAngle,t.endAngle,this.pixelRadius):l.getArcRect(this.startAngle,this.endAngle,this.pixelRadius)},enumerable:!0,configurable:!0}),e}(r.a);u.b.registeredClasses.PieSeries=d,u.b.registeredClasses.PieSeriesDataItem=p},Q4nc:function(t,e,i){"use strict";i.d(e,"a",function(){return n});var n={verbose:!0,commercialLicense:!1,classNamePrefix:"amcharts-",autoSetClassName:!1}},QXbb:function(t,e,i){var n=i("snR7"),r=i("DbOM"),o=i("YEtG")("species");t.exports=function(t,e){var i,a=n(t).constructor;return void 0===a||void 0==(i=n(a)[o])?e:r(i)}},QZG2:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("mntN")(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0;n(n.P+n.F*(a||!i("GQop")(o)),"Array",{indexOf:function(t){return a?o.apply(this,arguments)||0:r(this,t,arguments[1])}})},Qgck:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{imulh:function(t,e){var i=+t,n=+e,r=65535&i,o=65535&n,a=i>>16,s=n>>16,u=(a*o>>>0)+(r*o>>>16);return a*s+(u>>16)+((r*s>>>0)+(65535&u)>>16)}})},Qkdp:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.entries=function(t){return function(e){for(var i in t)if(s(t,i)&&!e([i,t[i]]))break}},e.keys=o,e.keysOrdered=a,e.hasKey=s,e.getKey=function(t,e){return t[e]},e.eachContinue=u,e.each=function(t,e){u(t,function(t,i){return e(t,i),!0})},e.eachOrdered=function(t,e,i){n.each(a(t,i),function(i){e(i,t[i])})},e.copy=function(t){return Object.assign({},t)},e.merge=function(t,e){return Object.assign({},t,e)},e.copyProperties=l,e.softCopyProperties=function(t,e,i){n.each(i,function(i){r.hasValue(t[i])&&!r.hasValue(e[i])&&(e[i]=t[i])})},e.forceCopyProperties=function(t,e,i){n.each(i,function(i){e[i]=t[i]})},e.copyAllProperties=function(t,e){l(t,e,o(t))};var n=i("hJ5i"),r=i("Mtpk");function o(t){var e=[];for(var i in t)s(t,i)&&e.push(i);return e}function a(t,e){return o(t).sort(e)}function s(t,e){return{}.hasOwnProperty.call(t,e)}function u(t,e){for(var i in t)if(s(t,i)&&!e(i,t[i]))break}function l(t,e,i){n.each(i,function(i){r.hasValue(t[i])&&(e[i]=t[i])})}},QtEf:function(t,e,i){var n=i("Gb1H"),r=Math.atanh;n(n.S+n.F*!(r&&1/r(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},R6wv:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("Vs7R"),o=i("oC3T"),a=i("aCit"),s=i("hGwe"),u=i("Mtpk"),l=function(t){function e(){var e=t.call(this)||this;return e.className="Polygon",e.element=e.paper.add("path"),e.shapeRendering="auto",e._currentPoints=[],e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"points",{get:function(){return this.getPropertyValue("points")},set:function(t){this.setPropertyValue("points",t,!0),this._currentPoints=this.points},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentPoints",{get:function(){return this._currentPoints},set:function(t){this._currentPoints!=t&&(this._currentPoints=t,this.draw())},enumerable:!0,configurable:!0}),e.prototype.draw=function(){var t,e,i,n,r="",o=this._currentPoints;if(o.length>0){for(var a=0,l=o.length;a<l;a++){var h=o[a][0],c=o[a][1];if(h&&h.length>0){var p=h[0];r+=s.moveTo(p);for(var d=0;d<h.length;d++)p=h[d],r+=s.lineTo(p),(!u.isNumber(e)||e<p.x)&&(e=p.x),(!u.isNumber(t)||t>p.x)&&(t=p.x),(!u.isNumber(i)||i>p.y)&&(i=p.y),(!u.isNumber(n)||n<p.y)&&(n=p.y)}if(c&&c.length>0){p=c[0];r+=s.moveTo(p);for(var f=0,g=c.length;f<g;f++)p=c[f],r+=s.lineTo(p)}}r&&(r+=s.closePath()),this.bbox.x=t,this.bbox.y=i,this.bbox.width=e-t,this.bbox.height=n-i}this.path=r},e.prototype.measureElement=function(){},Object.defineProperty(e.prototype,"centerPoint",{get:function(){return{x:this.bbox.x+this.bbox.width/2,y:this.bbox.y+this.bbox.height/2}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"morpher",{get:function(){return this._morpher||(this._morpher=new o.a(this),this._disposers.push(this._morpher)),this._morpher},enumerable:!0,configurable:!0}),e}(r.a);a.b.registeredClasses.Polygon=l},RC2a:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("FmWr"),o=i("zAAN"),a="".endsWith;n(n.P+n.F*i("IYrR")("endsWith"),"String",{endsWith:function(t){var e=o(this,t,"endsWith"),i=arguments.length>1?arguments[1]:void 0,n=r(e.length),s=void 0===i?n:Math.min(r(i),n),u=String(t);return a?a.call(e,u,s):e.slice(s-u.length,s)===u}})},Rnbi:function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("Vs7R"),o=i("aCit"),a=i("hGwe"),s=function(t){function e(){var e=t.call(this)||this;return e.className="Triangle",e.element=e.paper.add("path"),e.direction="top",e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e,i=this.pixelWidth,n=this.pixelHeight;switch(this.direction){case"right":e=a.moveTo({x:0,y:0})+a.lineTo({x:i,y:n/2})+a.lineTo({x:0,y:n})+a.closePath();break;case"left":e=a.moveTo({x:i,y:0})+a.lineTo({x:0,y:n/2})+a.lineTo({x:i,y:n})+a.closePath();break;case"bottom":e=a.moveTo({x:0,y:0})+a.lineTo({x:i,y:0})+a.lineTo({x:i/2,y:n})+a.closePath();break;case"top":e=a.moveTo({x:i/2,y:0})+a.lineTo({x:i,y:n})+a.lineTo({x:0,y:n})+a.closePath()}this.path=e},Object.defineProperty(e.prototype,"direction",{get:function(){return this.getPropertyValue("direction")},set:function(t){this.setPropertyValue("direction",t,!0)},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.Triangle=s},RpVB:function(t,e,i){"use strict";i("Mvcd")("fontcolor",function(t){return function(e){return t(this,"font","color",e)}})},Rpw0:function(t,e,i){"use strict";i.d(e,"a",function(){return c}),i.d(e,"b",function(){return p});var n=i("aCit"),r=i("C6dT"),o=i("Y9w3"),a=i("Q4nc"),s=i("/9XX"),u=i("1yyj"),l=i("hJ5i"),h=i("Qkdp"),c=function(){function t(){this._isPaused=!1,this.uid=n.b.getUniqueId(),this.dummyCounter=0,this._frameRequested=!1,this.updateStepDuration=45,this.time=Date.now()}return t.prototype.reportTime=function(t,e){this.dummyCounter,e&&(this.time=Date.now())},t.prototype.update=function(){var t=this;if(!this._isPaused){this._frameRequested=!1;var e=Date.now();n.b.dispatchImmediately("enterframe");for(var i in n.b.invalidDatas)if(h.hasKey(n.b.invalidDatas,i)){for(var o=n.b.invalidDatas[i];o.length>0;){var a=(c=o[0]).dataProvider;if(c.isDisposed())l.remove(o,c);else if(a&&a.dataInvalid)try{if(a.validateData(),a.dataValidationProgress<1)break}catch(t){l.remove(o,a),a.raiseCriticalError(t)}else try{if(c.validateData(),c.dataValidationProgress<1)break}catch(t){l.remove(o,c),c.raiseCriticalError(t)}}if(Date.now()-e>this.updateStepDuration)break}for(;n.b.invalidRawDatas.length>0;){if((c=n.b.invalidRawDatas[0]).isDisposed())l.remove(n.b.invalidRawDatas,c);else try{c.validateRawData()}catch(t){l.remove(n.b.invalidRawDatas,c),c.raiseCriticalError(t)}}for(;n.b.invalidDataItems.length>0;){a=(c=n.b.invalidDataItems[0]).dataProvider;if(c.isDisposed()||c.dataInvalid||a&&a.dataInvalid);else try{c.validateDataItems()}catch(t){l.remove(n.b.invalidDataItems,c),c.raiseCriticalError(t)}l.remove(n.b.invalidDataItems,c)}for(;n.b.invalidDataRange.length>0;){var c;a=(c=n.b.invalidDataRange[0]).dataProvider;if(c.isDisposed()||c.dataInvalid||a&&a.dataInvalid);else try{c.validateDataRange(),c.skipRangeEvent||c.dispatchImmediately("datarangechanged"),c.skipRangeEvent=!1}catch(t){l.remove(n.b.invalidDataRange,c),c.raiseCriticalError(t)}l.remove(n.b.invalidDataRange,c)}var p=[];h.each(n.b.invalidLayouts,function(e){t.validateLayouts(e)}),h.each(n.b.invalidPositions,function(e){t.validatePositions(e)});var d=!1;if(e=Date.now(),h.each(n.b.invalidSprites,function(i,o){for(var a=0;o.length>0;){if(t.validateLayouts(i),t.validatePositions(i),5==++a){if(Date.now()-e>t.updateStepDuration)break;a=0}var s=o[o.length-1];if(s&&!s.isDisposed()){if(t.checkIfValidate(s))if(t.checkIfValidate2(s))try{s instanceof r.a&&s.children.each(function(e){e.invalid&&(t.checkIfValidate(e)?e.dataItem&&e.dataItem.component&&e.dataItem.component.dataInvalid?p.push(e):e.validate():p.push(e))}),s.validate()}catch(t){s.invalid=!1,l.remove(o,s),s.raiseCriticalError(t)}else p.push(s);else p.push(s);s.invalid=!1}l.remove(o,s)}n.b.invalidSprites[i]=n.b.invalidSprites[i].concat(p)}),h.each(n.b.invalidSprites,function(t,e){e.length>0&&(d=!0)}),h.each(n.b.invalidDatas,function(t,e){e.length>0&&(d=!0)}),l.each(l.copy(u.d),function(t){t.update()}),h.each(n.b.invalidLayouts,function(e){t.validateLayouts(e)}),h.each(n.b.invalidPositions,function(e){t.validatePositions(e)}),Object(s.d)(),h.each(n.b.invalidLayouts,function(e){t.validateLayouts(e)}),h.each(n.b.invalidPositions,function(e){t.validatePositions(e)}),n.b.dispatchImmediately("exitframe"),(d||u.d.length>0||[].length>0)&&this.requestFrame(),this.updateStepDuration<200){var f=!0;h.each(n.b.invalidDatas,function(t,e){e.length>0&&(f=!1)}),h.each(n.b.invalidSprites,function(t,e){e.length>0&&(f=!1)}),f&&(this.updateStepDuration=200)}}},t.prototype.checkIfValidate=function(t){return!(t instanceof o.a&&(t.dataInvalid||t.dataProvider&&t.dataProvider.dataInvalid))},t.prototype.checkIfValidate2=function(t){return!(t.dataItem&&t.dataItem.component&&t.dataItem.component.dataInvalid&&!t.dataItem.component.isTemplate)},t.prototype.requestFrame=function(){var t=this;this._frameRequested||(Object(s.b)(function(){t.update()}),this._frameRequested=!0)},t.prototype.validatePositions=function(t){for(var e=n.b.invalidPositions[t];e.length>0;){var i=e[e.length-1];if(i.isDisposed())l.remove(e,i);else try{i instanceof r.a&&i.children.each(function(t){t.positionInvalid&&t.validatePosition()}),i.validatePosition()}catch(t){i.positionInvalid=!1,l.remove(e,i),i.raiseCriticalError(t)}}},t.prototype.validateLayouts=function(t){for(var e=n.b.invalidLayouts[t];e.length>0;){var i=e[e.length-1];if(i.isDisposed())l.remove(e,i);else try{i.children.each(function(t){t instanceof r.a&&t.layoutInvalid&&!t.isDisposed()&&t.validateLayout()}),i.validateLayout()}catch(t){i.layoutInvalid=!1,l.remove(e,i),i.raiseCriticalError(t)}}},t.prototype.log=function(t){a.a.verbose&&console&&console.log(t)},Object.defineProperty(t.prototype,"isPaused",{get:function(){return this._isPaused},set:function(t){this._isPaused=t,t||(this._frameRequested=!1,this.requestFrame())},enumerable:!0,configurable:!0}),t.VERSION="4.2.2",t}(),p=new c},RzG0:function(t,e,i){var n=i("T9LF"),r=i("0v9/").set,o=n.MutationObserver||n.WebKitMutationObserver,a=n.process,s=n.Promise,u="process"==i("DVYA")(a);t.exports=function(){var t,e,i,l=function(){var n,r;for(u&&(n=a.domain)&&n.exit();t;){r=t.fn,t=t.next;try{r()}catch(n){throw t?i():e=void 0,n}}e=void 0,n&&n.enter()};if(u)i=function(){a.nextTick(l)};else if(!o||n.navigator&&n.navigator.standalone)if(s&&s.resolve){var h=s.resolve(void 0);i=function(){h.then(l)}}else i=function(){r.call(n,l)};else{var c=!0,p=document.createTextNode("");new o(l).observe(p,{characterData:!0}),i=function(){p.data=c=!c}}return function(n){var r={fn:n,next:void 0};e&&(e.next=r),t||(t=r,i()),e=r}}},S9D9:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{log1p:i("AzI1")})},ScGY:function(t,e,i){"use strict";i.d(e,"f",function(){return n}),i.d(e,"g",function(){return r}),i.d(e,"c",function(){return o}),i.d(e,"a",function(){return a}),i.d(e,"b",function(){return s}),i.d(e,"d",function(){return u}),i.d(e,"e",function(){return l});var n="px",r="string",o="number",a="date",s="duration",u="__§§§__",l="__§§§§__"},T3RA:function(t,e,i){"use strict";var n=i("T9LF"),r=i("U3hN"),o=i("DVYA"),a=i("6/bx"),s=i("W0fk"),u=i("AEc5"),l=i("rkh7").f,h=i("nHHr").f,c=i("hjwn").f,p=i("nAZS").trim,d=n.Number,f=d,g=d.prototype,m="Number"==o(i("5+SK")(g)),y="trim"in String.prototype,b=function(t){var e=s(t,!1);if("string"==typeof e&&e.length>2){var i,n,r,o=(e=y?e.trim():p(e,3)).charCodeAt(0);if(43===o||45===o){if(88===(i=e.charCodeAt(2))||120===i)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:n=2,r=49;break;case 79:case 111:n=8,r=55;break;default:return+e}for(var a,u=e.slice(2),l=0,h=u.length;l<h;l++)if((a=u.charCodeAt(l))<48||a>r)return NaN;return parseInt(u,n)}}return+e};if(!d(" 0o1")||!d("0b1")||d("+0x1")){d=function(t){var e=arguments.length<1?0:t,i=this;return i instanceof d&&(m?u(function(){g.valueOf.call(i)}):"Number"!=o(i))?a(new f(b(e)),i,d):b(e)};for(var v,_=i("gD3S")?l(f):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),x=0;_.length>x;x++)r(f,v=_[x])&&!r(d,v)&&c(d,v,h(f,v));d.prototype=g,g.constructor=d,i("wDk4")(n,"Number",d)}},T3m9:function(t,e,i){"use strict";var n,r,o,a,s=i("pb4Y"),u=i("T9LF"),l=i("20m4"),h=i("MfZA"),c=i("Gb1H"),p=i("DvJ+"),d=i("DbOM"),f=i("ypVE"),g=i("hpnp"),m=i("QXbb"),y=i("0v9/").set,b=i("RzG0")(),v=i("6w17"),_=i("wYgt"),x=i("vSjZ"),P=i("JqbS"),w=u.TypeError,O=u.process,S=O&&O.versions,T=S&&S.v8||"",C=u.Promise,k="process"==h(O),I=function(){},M=r=v.f,j=!!function(){try{var t=C.resolve(1),e=(t.constructor={})[i("YEtG")("species")]=function(t){t(I,I)};return(k||"function"==typeof PromiseRejectionEvent)&&t.then(I)instanceof e&&0!==T.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),V=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},D=function(t,e){if(!t._n){t._n=!0;var i=t._c;b(function(){for(var n=t._v,r=1==t._s,o=0,a=function(e){var i,o,a,s=r?e.ok:e.fail,u=e.resolve,l=e.reject,h=e.domain;try{s?(r||(2==t._h&&N(t),t._h=1),!0===s?i=n:(h&&h.enter(),i=s(n),h&&(h.exit(),a=!0)),i===e.promise?l(w("Promise-chain cycle")):(o=V(i))?o.call(i,u,l):u(i)):l(n)}catch(t){h&&!a&&h.exit(),l(t)}};i.length>o;)a(i[o++]);t._c=[],t._n=!1,e&&!t._h&&E(t)})}},E=function(t){y.call(u,function(){var e,i,n,r=t._v,o=F(t);if(o&&(e=_(function(){k?O.emit("unhandledRejection",r,t):(i=u.onunhandledrejection)?i({promise:t,reason:r}):(n=u.console)&&n.error&&n.error("Unhandled promise rejection",r)}),t._h=k||F(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},F=function(t){return 1!==t._h&&0===(t._a||t._c).length},N=function(t){y.call(u,function(){var e;k?O.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})})},R=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),D(e,!0))},A=function(t){var e,i=this;if(!i._d){i._d=!0,i=i._w||i;try{if(i===t)throw w("Promise can't be resolved itself");(e=V(t))?b(function(){var n={_w:i,_d:!1};try{e.call(t,l(A,n,1),l(R,n,1))}catch(t){R.call(n,t)}}):(i._v=t,i._s=1,D(i,!1))}catch(t){R.call({_w:i,_d:!1},t)}}};j||(C=function(t){f(this,C,"Promise","_h"),d(t),n.call(this);try{t(l(A,this,1),l(R,this,1))}catch(t){R.call(this,t)}},(n=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=i("cA+3")(C.prototype,{then:function(t,e){var i=M(m(this,C));return i.ok="function"!=typeof t||t,i.fail="function"==typeof e&&e,i.domain=k?O.domain:void 0,this._c.push(i),this._a&&this._a.push(i),this._s&&D(this,!1),i.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new n;this.promise=t,this.resolve=l(A,t,1),this.reject=l(R,t,1)},v.f=M=function(t){return t===C||t===a?new o(t):r(t)}),c(c.G+c.W+c.F*!j,{Promise:C}),i("bPwn")(C,"Promise"),i("vdWU")("Promise"),a=i("G5U1").Promise,c(c.S+c.F*!j,"Promise",{reject:function(t){var e=M(this);return(0,e.reject)(t),e.promise}}),c(c.S+c.F*(s||!j),"Promise",{resolve:function(t){return P(s&&this===a?C:this,t)}}),c(c.S+c.F*!(j&&i("ID9o")(function(t){C.all(t).catch(I)})),"Promise",{all:function(t){var e=this,i=M(e),n=i.resolve,r=i.reject,o=_(function(){var i=[],o=0,a=1;g(t,!1,function(t){var s=o++,u=!1;i.push(void 0),a++,e.resolve(t).then(function(t){u||(u=!0,i[s]=t,--a||n(i))},r)}),--a||n(i)});return o.e&&r(o.v),i.promise},race:function(t){var e=this,i=M(e),n=i.reject,r=_(function(){g(t,!1,function(t){e.resolve(t).then(i.resolve,n)})});return r.e&&n(r.v),i.promise}})},"T9+M":function(t,e,i){i("6+x4")("Set")},T9LF:function(t,e){var i=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},"TDx+":function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("p9TX"),o=i("aCit"),a=function(t){function e(){var e=t.call(this)||this;return e.className="AxisLabel",e.isMeasured=!1,e.padding(10,10,10,10),e.location=.5,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"location",{get:function(){return this.getPropertyValue("location")},set:function(t){this.setPropertyValue("location",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inside",{get:function(){return this.getPropertyValue("inside")},set:function(t){this.setPropertyValue("inside",t,!0)},enumerable:!0,configurable:!0}),e.prototype.setDisabled=function(e){var i=t.prototype.setDisabled.call(this,e);return this.axis&&this.axis.invalidateDataItems(),i},e}(r.a);o.b.registeredClasses.AxisLabel=a},TGuK:function(t,e,i){"use strict";i.d(e,"a",function(){return c}),i.d(e,"c",function(){return p}),i.d(e,"b",function(){return d});var n=i("m4/l"),r=i("Tjl+"),o=i("vMqJ"),a=i("x79X"),s=i("aCit"),u=i("Wglt"),l=i("hJ5i"),h=i("Mtpk"),c=function(t){function e(){var e=t.call(this)||this;return e._rules=new o.b,e._appliedRules={},e._useDefault=!0,e.adapter=new a.a(e),e._enabled=!1,e._noStates=[],e.className="Responsive",e.rules.events.on("inserted",e.checkRules,!0),e.rules.events.on("removed",e.checkRules,!0),e._disposers.push(e.rules.events),e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"component",{get:function(){return this._component},set:function(t){t!=this._component&&(this._sizeEventDisposer&&this.removeDispose(this._sizeEventDisposer),this._component=t,this._sizeEventDisposer=h.getValue(this.component).events.on("sizechanged",this.checkRules,this),this._disposers.push(this._sizeEventDisposer),this.enabled=!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"enabled",{get:function(){return this.adapter.apply("enabled",this._enabled)},set:function(t){this._enabled!=t&&(this._enabled=t,this.applyRules())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useDefault",{get:function(){return this.adapter.apply("useDefault",this._useDefault)},set:function(t){this._useDefault!=t&&(this._useDefault=!0,this.applyRules())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rules",{get:function(){return this.adapter.apply("rules",this._rules)},set:function(t){this._rules=t,this._enabled=!0,this.applyRules()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultRules",{get:function(){return this.adapter.apply("defaultRules",p)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"allRules",{get:function(){var t=new o.b;return this.useDefault&&t.copyFrom(this.defaultRules),t.copyFrom(this.rules),this.adapter.apply("allRules",t)},enumerable:!0,configurable:!0}),e.prototype.isApplied=function(t){var e=this._appliedRules[t];return!!h.hasValue(e)&&e},e.prototype.checkRules=function(){var t=this,e=this.allRules;if(e&&0!=e.length){var i=!1,n=h.getValue(this.component);u.each(e.iterator(),function(e){e.id||(e.id=s.b.getUniqueId());var r=e.relevant(n);(r&&!t.isApplied(e.id)||!r&&t.isApplied(e.id))&&(i=!0),t._appliedRules[e.id]=r}),i&&this.applyRules()}},e.prototype.applyRules=function(t){var e=this,i=h.hasValue(t)?t:h.getValue(this.component),n=!1;this.enabled&&u.each(this.allRules.iterator(),function(t){var r=e.getState(t,i);r&&(n||(i.applyCurrentState(0),n=!0),e.isApplied(h.getValue(t.id))&&i.setState(r))}),i.children&&u.each(i.children.iterator(),function(t){e.applyRules(t)})},e.prototype.getState=function(t,e){var i="responsive-"+t.id,n=e.uid+"_"+i;if(-1===l.indexOf(this._noStates,n)){if(e.states.hasKey(i))return e.states.getKey(i);var r=t.state(e,i);return r||this._noStates.push(n),r}},e.prototype.getValue=function(t,e){var i=t.getPropertyValue(e);return!h.hasValue(i)&&h.hasValue(t[e])&&(i=t[e]),i},e}(r.b),p=new o.b;p.events.on("inserted",function(t){t.newValue.id=s.b.getUniqueId()});var d=function(){function t(){}return t.widthXXS=function(e){return e.pixelWidth<=t.XXS},t.widthXS=function(e){return e.pixelWidth<=t.XS},t.widthS=function(e){return e.pixelWidth<=t.S},t.widthM=function(e){return e.pixelWidth<=t.M},t.widthL=function(e){return e.pixelWidth<=t.L},t.widthXL=function(e){return e.pixelWidth<=t.XL},t.widthXXL=function(e){return e.pixelWidth<=t.XXL},t.heightXXS=function(e){return e.pixelHeight<=t.XXS},t.heightXS=function(e){return e.pixelHeight<=t.XS},t.heightS=function(e){return e.pixelHeight<=t.S},t.heightM=function(e){return e.pixelHeight<=t.M},t.heightL=function(e){return e.pixelHeight<=t.L},t.heightXL=function(e){return e.pixelHeight<=t.XL},t.heightXXL=function(e){return e.pixelHeight<=t.XXL},t.isXXS=function(e){return e.pixelWidth<=t.XXS&&e.pixelHeight<=t.XXS},t.isXS=function(e){return e.pixelWidth<=t.XS&&e.pixelHeight<=t.XS},t.isS=function(e){return e.pixelWidth<=t.S&&e.pixelHeight<=t.S},t.isM=function(e){return e.pixelWidth<=t.M&&e.pixelHeight<=t.M},t.isL=function(e){return e.pixelWidth<=t.L&&e.pixelHeight<=t.L},t.isXL=function(e){return e.pixelWidth<=t.XL&&e.pixelHeight<=t.XL},t.isXXL=function(e){return e.pixelWidth<=t.XXL&&e.pixelHeight<=t.XXL},t.maybeXXS=function(e){return e.pixelWidth<=t.XXS||e.pixelHeight<=t.XXS},t.maybeXS=function(e){return e.pixelWidth<=t.XS||e.pixelHeight<=t.XS},t.maybeS=function(e){return e.pixelWidth<=t.S||e.pixelHeight<=t.S},t.maybeM=function(e){return e.pixelWidth<=t.M||e.pixelHeight<=t.M},t.maybeL=function(e){return e.pixelWidth<=t.L||e.pixelHeight<=t.L},t.maybeXL=function(e){return e.pixelWidth<=t.XL||e.pixelHeight<=t.XL},t.maybeXXL=function(e){return e.pixelWidth<=t.XXL||e.pixelHeight<=t.XXL},t.XXS=100,t.XS=200,t.S=300,t.M=400,t.L=600,t.XL=800,t.XXL=1e3,t}()},TXRX:function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("C6dT"),o=i("aCit"),a=i("TGuK"),s=function(t){function e(){var e=t.call(this)||this;return e.className="Bullet",e.isMeasured=!1,e.tooltipX=0,e.tooltipY=0,e.layout="none",e.applyOnClones=!0,e.copyToLegendMarker=!0,e}return n.c(e,t),Object.defineProperty(e.prototype,"locationX",{get:function(){return this.getPropertyValue("locationX")},set:function(t){this.setPropertyValue("locationX",t,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"locationY",{get:function(){return this.getPropertyValue("locationY")},set:function(t){this.setPropertyValue("locationY",t,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"xField",{get:function(){return this.getPropertyValue("xField")},set:function(t){this.setPropertyValue("xField",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yField",{get:function(){return this.getPropertyValue("yField")},set:function(t){this.setPropertyValue("yField",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDynamic",{get:function(){return this.getPropertyValue("isDynamic")},set:function(t){this.setPropertyValue("isDynamic",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"copyToLegendMarker",{get:function(){return this.getPropertyValue("copyToLegendMarker")},set:function(t){this.setPropertyValue("copyToLegendMarker",t)},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.Bullet=s,a.c.push({relevant:a.b.isXS,state:function(t,e){if(t instanceof s){var i=t.states.create(e);return i.properties.disabled=!0,i}return null}})},"Tjl+":function(t,e,i){"use strict";i.d(e,"a",function(){return m}),i.d(e,"b",function(){return y});var n=i("m4/l"),r=i("vMqJ"),o=i("+qIf"),a=i("hD5A"),s=i("o0Lc"),u=i("x79X"),l=i("8ZqG"),h=i("tjMS"),c=i("aCit"),p=i("eCqC"),d=i("hJ5i"),f=i("Qkdp"),g=i("Mtpk"),m=function(){function t(){this._disposed=!1,this._disposers=[],this.className="BaseObject"}return t.prototype.debug=function(){},Object.defineProperty(t.prototype,"uid",{get:function(){return this._uid||(this._uid=c.b.getUniqueId(),c.b.map.setKey(this._uid,this)),this._uid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},set:function(t){this._id=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"map",{get:function(){return this._map||(this._map=new o.a),this._map},enumerable:!0,configurable:!0}),t.prototype.applyTheme=function(){var t=this;if(c.b){var e=this.getCurrentThemes();e&&d.each(e,function(e,i){e(t)})}},Object.defineProperty(t.prototype,"themes",{get:function(){return this._themes},set:function(t){this._themes=t},enumerable:!0,configurable:!0}),t.prototype.getCurrentThemes=function(){return this.themes||c.b.themes},t.prototype.isDisposed=function(){return this._disposed},t.prototype.dispose=function(){if(!this._disposed){this._disposed=!0;var t=this._disposers;for(this._disposers=null;0!==t.length;){t.shift().dispose()}this.clearCache(),this.clonedFrom&&this.clonedFrom.clones.removeValue(this);var e=this._uid;null!=e&&c.b.map.removeKey(e)}},t.prototype.addDisposer=function(t){this._disposers.push(t)},t.prototype.removeDispose=function(t){if(!this._disposed){var e=d.indexOf(this._disposers,t);e>-1&&this._disposers.splice(e,1)}t.dispose()},t.prototype.clone=function(t){t||(t="clone-"+c.b.getUniqueId());var e=new this.constructor;return e.cloneId=t,e.copyFrom(this),e},Object.defineProperty(t.prototype,"clones",{get:function(){return this._clones||(this._clones=new r.b),this._clones},enumerable:!0,configurable:!0}),t.prototype.copyFrom=function(t){t.clones.push(this),this.clonedFrom=t},Object.defineProperty(t.prototype,"className",{get:function(){return this._className},set:function(t){this._className=t},enumerable:!0,configurable:!0}),t.prototype.setCache=function(t,e,i){p.b.set(this.uid,t,e,i)},t.prototype.getCache=function(t,e){return void 0===e&&(e=void 0),p.b.get(this.uid,t,e)},t.prototype.clearCache=function(){p.b.clear(this.uid)},t.prototype.setTimeout=function(t,e){var i=this,n=setTimeout(function(){i.removeDispose(r),t()},e),r=new a.b(function(){clearTimeout(n)});return this._disposers.push(r),r},t.prototype.setInterval=function(t,e){var i=this,n=setInterval(function(){i.removeDispose(r),t()},e),r=new a.b(function(){clearTimeout(n)});return this._disposers.push(r),r},Object.defineProperty(t.prototype,"config",{set:function(t){try{this.processConfig(t)}catch(t){this.raiseCriticalError(t)}},enumerable:!0,configurable:!0}),t.prototype.processConfig=function(e){var i=this;if(e){var n=this;if(f.eachOrdered(e,function(e,a){var c,p=a;if("callback"==e&&"function"==typeof a&&a.call(n),i.hasProperty(e))if(g.isObject(p)&&g.hasValue(p.type)&&(c=i.createClassInstance(p.type))?n[e]=c:c=n[e],c instanceof u.a)i.processAdapters(c,p);else if(c instanceof s.a)i.processEvents(c,p);else if(i.asIs(e))n[e]=p;else if(p instanceof t)n[e]=p;else if(c instanceof t)c.config=p;else if(c instanceof r.e){if(g.isArray(p))i.processListTemplate(p,c);else if(g.isObject(p))if(p instanceof t)c.template=p;else{var d=void 0;d=g.hasValue(p.template)?p.template:p,c.template instanceof t?c.template.config=d:f.each(d,function(e,n){var a=c.template[e];a instanceof u.a?i.processAdapters(a,n):a instanceof s.a?i.processEvents(a,n):a instanceof o.c?i.processDictionaryTemplate(a,n):c.template[e]instanceof t?c.template[e].config=n:g.isObject(n)&&g.hasValue(n.type)?(a=i.createClassInstance(n.type))?(a instanceof t&&(a.config=n),c.template[e]=a):c.template[e]=n:a instanceof r.b?i.processList(n,a):c.template[e]=i.maybeColorOrPercent(n)}),g.hasValue(p.values)&&i.processListTemplate(p.values,c)}}else c instanceof r.b?"children"==e?i.processList(p,c,i):i.processList(p,c):c instanceof o.c?i.processDictionaryTemplate(c,p):c instanceof o.a?i.processDictionary(c,p):c instanceof l.a||c instanceof h.a?n[e]=i.maybeColorOrPercent(p):g.isObject(c)&&g.isObject(p)?f.copyAllProperties(p,c):(p=i.maybeColorOrPercent(p),n[e]=p);else i.isReserved(e)||(n[e]=p)},this.configOrder),this.processingErrors.length){var a=this.processingErrors.join("\n");throw this._processingErrors=[],Error(a)}}},t.prototype.maybeColorOrPercent=function(t){if(g.isString(t)){if(t.match(/^[\-]?[0-9.]+\%$/))return Object(h.c)(g.toNumber(t));if(t.match(/^\#[0-9abcdef]{3,}$/i))return Object(l.c)(t)}return t},t.prototype.processAdapters=function(t,e){var i=this;g.isArray(e)?d.each(e,function(e,n){t.add(e.key,e.callback,e.priority||0,i)}):g.isObject(e)&&f.each(e,function(e,i){t.has(e,i)||t.add(e,i)})},t.prototype.processEvents=function(t,e){var i=this;g.isObject(e)?f.each(e,function(e,i){t.has(e,i)||t.on(e,i)}):g.isArray(e)&&d.each(e,function(e,n){t.on(e.type,e.callback,i)})},t.prototype.processDictionaryTemplate=function(e,i){g.isObject(i)&&f.each(i,function(i,n){var r;(r="template"==i?e.template:e.hasKey(i)?e.getKey(i):e.create(i))instanceof t?r.config=n:g.isObject(r)&&g.isObject(n)?f.copyAllProperties(n,r):r.setKey(i,n)})},t.prototype.processDictionary=function(t,e){g.isObject(e)&&f.each(e,function(e,i){t.setKey(e,i)})},t.prototype.processListTemplate=function(e,i){var n=this;for(d.each(e,function(e,r){var o,a=n.getConfigEntryType(e);if(i.hasIndex(r)&&!e.forceCreate)o=i.getIndex(r);else{if(e instanceof t)return void i.push(e);o=a?i.create(a):i.create()}g.isObject(e)&&(o instanceof t?o.config=e:g.isObject(o)&&g.isObject(e)?f.copyAllProperties(e,o):i.setIndex(i.indexOf(o),e))});e.length>i.length;)i.pop()},t.prototype.processList=function(e,i,n){var r=this;g.isArray(e)||(e=[e]);var o=i.length;for(d.each(e,function(e,a){if(g.isObject(e)){var s=void 0;if(a<o&&!e.forceCreate)s=i.getIndex(a);else{if(e instanceof t)return void i.push(e);s=r.createEntryInstance(e),n?s.parent=n:i.push(s)}s instanceof t&&(s.config=e)}else i.hasIndex(a)?i.setIndex(a,e):i.push(e)});e.length>i.length;)i.pop()},t.prototype.configOrder=function(t,e){return t==e?0:"language"==t?-1:"language"==e?1:0},t.prototype.asIs=function(t){return-1!=d.indexOf(["locale"],t)},t.prototype.createClassInstance=function(t){if(g.hasValue(c.b.registeredClasses[t]))return new c.b.registeredClasses[t]},t.prototype.createEntryInstance=function(t){var e;return g.hasValue(t.type)&&(e=this.createClassInstance(t.type)),e||t},t.prototype.getConfigEntryType=function(t){if(g.hasValue(t.type)){if(g.hasValue(c.b.registeredClasses[t.type]))return c.b.registeredClasses[t.type];throw Error('Invalid type: "'+t.type+'".')}},t.prototype.hasProperty=function(t){return t in this},t.prototype.isReserved=function(t){return-1!==["type","forceCreate"].indexOf(t)},Object.defineProperty(t.prototype,"processingErrors",{get:function(){return this._processingErrors||(this._processingErrors=[]),this._processingErrors},enumerable:!0,configurable:!0}),t}(),y=function(t){function e(){var e=t.call(this)||this;return e.events=new s.a,e.className="BaseObjectEvents",e._disposers.push(e.events),e}return n.c(e,t),e.prototype.dispatch=function(t,e){this.events.isEnabled(t)&&(e?(e.type=t,e.target=e.target||this,this.events.dispatch(t,{type:t,target:this})):this.events.dispatch(t,{type:t,target:this}))},e.prototype.dispatchImmediately=function(t,e){this.events.isEnabled(t)&&(e?(e.type=t,e.target=e.target||this,this.events.dispatchImmediately(t,e)):this.events.dispatchImmediately(t,{type:t,target:this}))},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.events.copyFrom(e.events)},e}(m)},Trvg:function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("p9TX"),o=i("qCRI"),a=i("MIZb"),s=i("aCit"),u=function(t){function e(){var e=t.call(this)||this;e.className="TextLink",e.selectable=!0;var i=new a.a;return e.fill=i.getFor("primaryButton").brighten(.3),e.states.create("hover").properties.fill=i.getFor("primaryButtonHover").brighten(.3),e.states.create("down").properties.fill=i.getFor("primaryButtonDown").brighten(.3),e.cursorOverStyle=o.a.pointer,e.applyTheme(),e}return n.c(e,t),e}(r.a);s.b.registeredClasses.TextLink=u},U1Gp:function(t,e,i){"use strict";var n=i("20m4"),r=i("Gb1H"),o=i("vJiZ"),a=i("sNEp"),s=i("a8UT"),u=i("FmWr"),l=i("e8Nv"),h=i("iOZG");r(r.S+r.F*!i("ID9o")(function(t){Array.from(t)}),"Array",{from:function(t){var e,i,r,c,p=o(t),d="function"==typeof this?this:Array,f=arguments.length,g=f>1?arguments[1]:void 0,m=void 0!==g,y=0,b=h(p);if(m&&(g=n(g,f>2?arguments[2]:void 0,2)),void 0==b||d==Array&&s(b))for(i=new d(e=u(p.length));e>y;y++)l(i,y,m?g(p[y],y):p[y]);else for(c=b.call(p),i=new d;!(r=c.next()).done;y++)l(i,y,m?a(c,g,[r.value,y],!0):r.value);return i.length=y,i}})},U3hN:function(t,e){var i={}.hasOwnProperty;t.exports=function(t,e){return i.call(t,e)}},UPxv:function(t,e,i){var n=i("Gb1H");n(n.S,"System",{global:i("T9LF")})},UXfn:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("FmWr"),o=i("zAAN"),a="".startsWith;n(n.P+n.F*i("IYrR")("startsWith"),"String",{startsWith:function(t){var e=o(this,t,"startsWith"),i=r(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return a?a.call(e,n,i):e.slice(i,i+n.length)===n}})},Uobz:function(t,e,i){"use strict";var n=i("pb4Y"),r=i("Gb1H"),o=i("wDk4"),a=i("Vng0"),s=i("9BM3"),u=i("Cekr"),l=i("bPwn"),h=i("K0ev"),c=i("YEtG")("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,i,f,g,m,y){u(i,e,f);var b,v,_,x=function(t){if(!p&&t in S)return S[t];switch(t){case"keys":case"values":return function(){return new i(this,t)}}return function(){return new i(this,t)}},P=e+" Iterator",w="values"==g,O=!1,S=t.prototype,T=S[c]||S["@@iterator"]||g&&S[g],C=T||x(g),k=g?w?x("entries"):C:void 0,I="Array"==e&&S.entries||T;if(I&&(_=h(I.call(new t)))!==Object.prototype&&_.next&&(l(_,P,!0),n||"function"==typeof _[c]||a(_,c,d)),w&&T&&"values"!==T.name&&(O=!0,C=function(){return T.call(this)}),n&&!y||!p&&!O&&S[c]||a(S,c,C),s[e]=C,s[P]=d,g)if(b={values:w?C:x("values"),keys:m?C:x("keys"),entries:k},y)for(v in b)v in S||o(S,v,b[v]);else r(r.P+r.F*(p||O),e,b);return b}},UsNi:function(t,e,i){"use strict";var n=i("m4/l"),r=i("58Sn"),o=i("+qIf"),a=i("hD5A"),s=new o.a,u=i("x79X"),l=i("Tjl+"),h=i("zhwk"),c=i("WYhe"),p=i("Mtpk"),d=i("Qkdp");i.d(e,"a",function(){return f});var f=function(t){function e(){var e=t.call(this)||this;return e.adapter=new u.a(e),e._elements={},e._IOs={},e._content="",e._title="",e._classPrefix="ampopup",e._defaultStyles=!0,e._showCurtain=!1,e._draggable=!0,e._align="center",e._verticalAlign="middle",e._shift={x:0,y:0},e._tempShift={x:0,y:0},e._readerTitle="",e._closable=!0,e._cssLoaded=!1,e._fitTo="window",e.isTemplate=!1,e._sized=!1,e.className="Popup",e}return n.c(e,t),e.prototype.open=function(){this.container&&(this._elements.wrapper&&this.container.appendChild(this._elements.wrapper),this._elements.curtain&&(this.container.appendChild(this._elements.curtain),this.showCurtain=this.showCurtain),this.positionElement(),this.dispatchImmediately("opened"))},e.prototype.close=function(){this._elements.wrapper&&this._elements.wrapper.parentElement&&this._elements.wrapper.parentElement.removeChild(this._elements.wrapper),this._elements.curtain&&this._elements.curtain.parentElement&&this._elements.curtain.parentElement.removeChild(this._elements.curtain),this.dispatchImmediately("closed"),this.releasePointers()},e.prototype.dispose=function(){this.close(),t.prototype.dispose.call(this)},e.prototype.positionElement=function(t){var e=this;void 0===t&&(t=!0),this._elements.wrapper&&setTimeout(function(){if(e._elements.wrapper){if(t||!e._sized){if(e._elements.wrapper.style.opacity="0.01",e._elements.wrapper.style.left="0",e._elements.wrapper.style.top="0",e._elements.wrapper.style.margin="0 0 0 0",!e._elements.wrapper.style.width){var i=e._elements.wrapper.getBoundingClientRect();e._elements.wrapper.style.width=i.width+"px",e._elements.wrapper.style.height=i.height+"px"}e._sized=!0}setTimeout(function(){if(e._elements.wrapper){var i;switch(!t&&e._sized||!e._bbox?(i=e._elements.wrapper.getBoundingClientRect(),e._elements.wrapper.style.opacity=""):i=e._bbox,e.align){case"left":e._elements.wrapper.style.left="0",e._elements.wrapper.style.right="auto",e._elements.wrapper.style.marginLeft=e.toStyle(e._shift.x+e._tempShift.x);break;case"center":e._elements.wrapper.style.left="50%",e._elements.wrapper.style.right="auto",e._elements.wrapper.style.marginLeft=e.toStyle(Math.round(-i.width/2)+(e._shift.x+e._tempShift.x));break;case"right":e._elements.wrapper.style.left="auto",e._elements.wrapper.style.right="0",e._elements.wrapper.style.marginLeft=e.toStyle(e._shift.x+e._tempShift.x);break;default:e._elements.wrapper.style.left=e.toStyle(e.left)||"auto",e._elements.wrapper.style.right=e.toStyle(e.right)||"auto",e._elements.wrapper.style.marginLeft=e.toStyle(e._shift.x+e._tempShift.x)}switch(e.verticalAlign){case"top":e._elements.wrapper.style.top="0",e._elements.wrapper.style.bottom="auto",e._elements.wrapper.style.marginTop=e.toStyle(e._shift.y+e._tempShift.y);break;case"middle":e._elements.wrapper.style.top="50%",e._elements.wrapper.style.bottom="auto",e._elements.wrapper.style.marginTop=e.toStyle(Math.round(-i.height/2)+(e._shift.y+e._tempShift.y));break;case"bottom":e._elements.wrapper.style.top="auto",e._elements.wrapper.style.bottom="0",e._elements.wrapper.style.marginTop=e.toStyle(e._shift.y+e._tempShift.y);break;default:e._elements.wrapper.style.top=e.toStyle(e.top)||"auto",e._elements.wrapper.style.bottom=e.toStyle(e.bottom)||"auto",e._elements.wrapper.style.marginTop=e.toStyle(e._shift.y+e._tempShift.y)}}},1)}},1)},e.prototype.setupDragging=function(){var t=this;this.draggable&&(this._IOs.wrapper.events.has("drag")||this._IOs.wrapper.events.on("drag",function(e){t._tempShift.x=e.shift.x,t._tempShift.y=e.shift.y,t.positionElement(!1)}),this._IOs.wrapper.events.has("dragstop")||this._IOs.wrapper.events.on("dragstop",function(e){t._shift.x+=t._tempShift.x,t._shift.y+=t._tempShift.y,t._tempShift.x=0,t._tempShift.y=0,t.positionElement(!1)}))},e.prototype.toStyle=function(t){return p.hasValue(t)?p.isNumber(t)?t+"px":t.toString():null},Object.defineProperty(e.prototype,"classPrefix",{get:function(){return this.adapter.apply("classPrefix",this._classPrefix)},set:function(t){this._classPrefix=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"classPrefixRaw",{get:function(){return this._classPrefix},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"content",{get:function(){return this.adapter.apply("content",this._content)},set:function(t){this._content!=t&&(this._content=t,this._elements.content||this.createContentElement(),this._elements.content.innerHTML=t,this.positionElement())},enumerable:!0,configurable:!0}),e.prototype.getClassNames=function(){return this.adapter.apply("classNames",{wrapperClass:this.classPrefix+"",titleClass:this.classPrefix+"-title",contentClass:this.classPrefix+"-content",curtainClass:this.classPrefix+"-curtain",closeClass:this.classPrefix+"-close"})},e.prototype.createContentElement=function(){if(!this._elements.wrapper){var t=this.getClassNames(),e=document.createElement("div");e.className=t.contentClass,e.style.opacity="0.01";var i=document.createElement("a");i.className=t.closeClass;var n=document.createElement("div");n.innerHTML=this.title,n.className=t.titleClass,this.title||(n.style.display="none");var r=document.createElement("div");r.innerHTML=this.content,this._IOs.wrapper=Object(h.b)().getInteraction(e),this._disposers.push(this._IOs.wrapper),this._IOs.wrapper.events.on("over",this.disablePointers,this),this._IOs.wrapper.events.on("out",this.releasePointers,this),this._IOs.close=Object(h.b)().getInteraction(i),this._disposers.push(this._IOs.close),i.style.visibility="hidden",e.setAttribute("role","dialog"),e.appendChild(i),e.appendChild(n),e.appendChild(r),this.container.appendChild(e),this._elements.wrapper=e,this._elements.content=r,this._elements.title=n,this._elements.close=i,this.defaultStyles&&this.loadDefaultCSS(),this.createCurtainElement(),this.applyEvents(),this.applyReaderSettings(),this.setupDragging()}},Object.defineProperty(e.prototype,"title",{get:function(){return this.adapter.apply("title",this._title)},set:function(t){this._title!=t&&(this._title=t,this._elements.content||this.createContentElement(),this._elements.title.innerHTML=t,this.positionElement(),this.applyReaderSettings())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readerTitle",{get:function(){return this.adapter.apply("readerTitle",""!=this._readerTitle?this._readerTitle:this.title)},set:function(t){this._readerTitle!=t&&(this._readerTitle=t,this.applyReaderSettings())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"closable",{get:function(){return this.adapter.apply("closable",this._closable)},set:function(t){t!==this._closable&&(this._closable=t,this.applyEvents())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fitTo",{get:function(){return this.adapter.apply("fitTo",this._fitTo)},set:function(t){t!=this._fitTo&&(this._fitTo=t,this.positionElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultStyles",{get:function(){return this.adapter.apply("defaultStyles",this._defaultStyles)},set:function(t){this._defaultStyles!=t&&(this._defaultStyles=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showCurtain",{get:function(){return this.adapter.apply("showCurtain",this._showCurtain)},set:function(t){this._showCurtain!=t&&(this._showCurtain=t,this._elements.curtain&&(this._elements.curtain.style.display=t?"block":"none"))},enumerable:!0,configurable:!0}),e.prototype.createCurtainElement=function(){var t=this.getClassNames(),e=document.createElement("div");e.className=t.curtainClass,this.container.appendChild(e),this._IOs.curtain=Object(h.b)().getInteraction(e),this._disposers.push(this._IOs.curtain),this._IOs.curtain.events.on("over",this.disablePointers,this),this._IOs.curtain.events.on("out",this.releasePointers,this),e.style.display=this.showCurtain?"block":"none",this._elements.curtain=e},Object.defineProperty(e.prototype,"draggable",{get:function(){return this.adapter.apply("draggable",this._draggable)},set:function(t){this._draggable!=t&&(this._draggable=t,this.setupDragging())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"align",{get:function(){return this.adapter.apply("align",this._align)},set:function(t){this._align!=t&&(this._align=t,this.positionElement())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"verticalAlign",{get:function(){return this.adapter.apply("verticalAlign",this._verticalAlign)},set:function(t){this._verticalAlign!=t&&(this._verticalAlign=t,this.positionElement())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"left",{get:function(){return this.adapter.apply("left",this._left)},set:function(t){this.left!=t&&(this._left=t,this._align="none",this.positionElement())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"right",{get:function(){return this.adapter.apply("right",this._right)},set:function(t){this.right!=t&&(this._right=t,this._align="none",this.positionElement())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"top",{get:function(){return this.adapter.apply("top",this._top)},set:function(t){this.top!=t&&(this._top=t,this._verticalAlign="none",this.positionElement())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottom",{get:function(){return this.adapter.apply("bottom",this._bottom)},set:function(t){this.bottom!=t&&(this._bottom=t,this._verticalAlign="none",this.positionElement())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elements",{get:function(){return this._elements},enumerable:!0,configurable:!0}),e.prototype.loadDefaultCSS=function(){this._cssLoaded||(this._disposers.push(function(t){return t||(t="ampopup"),s.insertKeyIfEmpty(t,function(){var e=new a.c([new r.c("."+t,{overflow:"visible",position:"absolute",top:"0",left:"0","z-index":"2000"}),new r.c("."+t+"-curtain",{width:"100%",height:"100%",position:"absolute",top:"0",left:"0","z-index":"2001",background:"#fff",opacity:"0.5"}),new r.c("."+t+"-title",{"font-weight":"bold","font-size":"120%"}),new r.c("."+t+"-content",{padding:"1em 2em",background:"rgb(255, 255, 255);","background-color":"rgba(255, 255, 255, 0.8)",display:"inline-block",position:"absolute",top:"0",left:"0","max-width":"90%","max-height":"90%",overflow:"auto","z-index":"2002"}),new r.c("."+t+"-close",{display:"block",position:"absolute",top:"0.3em",right:"0.3em","background-color":"rgb(100, 100, 100)",background:"rgba(100, 100, 100, 0.1) url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgdmVyc2lvbj0iMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ0NS4yIDEwOS4ybC00Mi40LTQyLjRMMjU2IDIxMy42IDEwOS4yIDY2LjhsLTQyLjQgNDIuNEwyMTMuNiAyNTYgNjYuOCA0MDIuOGw0Mi40IDQyLjRMMjU2IDI5OC40bDE0Ni44IDE0Ni44IDQyLjQtNDIuNEwyOTguNCAyNTYiLz48L3N2Zz4=) no-repeat center","background-size":"80%",width:"1.2em",height:"1.2em",cursor:"pointer"})]);return new a.a(function(){s.removeKey(t),e.dispose()})}).increment()}(this.classPrefix)),d.each(this._elements,function(t,e){e.style.display=""}),this._cssLoaded=!0)},e.prototype.applyEvents=function(){var t=this;if(this._IOs.close)if(this.closable){this._IOs.close.element.style.visibility="visible";var e=[Object(h.b)().body.events.on("keyup",function(e){c.b.isKey(e.event,"esc")&&t.closable&&t.close()}),this._IOs.close.events.on("hit",function(e){t.close()})];e.push(this._IOs.curtain.events.on("hit",function(e){t.showCurtain&&t.close()})),this._disposers.push(new a.c(e))}else this._IOs.close.element.style.visibility="hidden"},e.prototype.disablePointers=function(){this.sprite&&(this._spriteInteractionsEnabled=this.sprite.interactionsEnabled,this.sprite.interactionsEnabled=!1)},e.prototype.releasePointers=function(){p.hasValue(this._spriteInteractionsEnabled)&&(this.sprite.interactionsEnabled=this._spriteInteractionsEnabled,this._spriteInteractionsEnabled=void 0)},e.prototype.applyReaderSettings=function(){this.elements.wrapper.setAttribute("aria-label",this.readerTitle)},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.container=e.container,this.sprite=e.sprite,this.classPrefix=e.classPrefixRaw,this.content=e.content,this.title=e.title,this.readerTitle=e.readerTitle,this.defaultStyles=e.defaultStyles,this.showCurtain=e.showCurtain,this.align=e.align,this.verticalAlign=e.verticalAlign,this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.adapter.copyFrom(e.adapter)},e}(l.b)},Uslz:function(t,e,i){"use strict";i.d(e,"a",function(){return c});var n=i("m4/l"),r=i("C6dT"),o=i("hD5A"),a=i("ND2/"),s=i("vMqJ"),u=i("aCit"),l=i("8ZqG"),h=i("MIZb"),c=function(t){function e(){var e=t.call(this)||this;e._axis=new o.d,e.dataItems=new s.b,e.className="AxisBreak",e.breakSize=.01,e.marginLeft=-5,e.marginRight=-5,e.marginTop=-5,e.marginBottom=-5;var i=new h.a,n=new a.a;n.fill=i.getFor("background"),n.stroke=Object(l.c)(),n.fillOpacity=.9,n.zIndex=0,e._fillShape=n;var r=new a.a;r.fill=Object(l.c)(),r.stroke=i.getFor("grid"),r.strokeOpacity=.3,r.zIndex=1,e._startLine=r;var u=new a.a;return u.fill=Object(l.c)(),u.stroke=Object(l.c)("#000000"),u.strokeOpacity=.3,u.zIndex=2,e._endLine=u,e._disposers.push(e._axis),e.applyTheme(),e}return n.c(e,t),e.prototype.dispose=function(){t.prototype.dispose.call(this),this._fillShape&&this._fillShape.dispose(),this._startLine&&this._startLine.dispose(),this._endLine&&this._endLine.dispose()},Object.defineProperty(e.prototype,"startLine",{get:function(){return this._startLine},set:function(t){this._startLine&&this._startLine.dispose(),this._startLine=t,this.addBreakSprite(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endLine",{get:function(){return this._endLine},set:function(t){this._endLine&&this._endLine.dispose(),this._endLine=t,this.addBreakSprite(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fillShape",{get:function(){return this._fillShape},set:function(t){this._fillShape&&this._fillShape.dispose(),this._fillShape=t,this.addBreakSprite(t)},enumerable:!0,configurable:!0}),e.prototype.addBreakSprite=function(t){t.parent=this,t.isMeasured=!1,this._disposers.push(t)},Object.defineProperty(e.prototype,"axis",{get:function(){return this._axis.get()},set:function(t){if(this._axis.get()!==t){this._axis.set(t,t.renderer.gridContainer.events.on("transformed",this.invalidate,this,!1)),t.renderer.createBreakSprites(this);var e=t.axisBreaks.template;this.startLine.copyFrom(e.startLine),this.endLine.copyFrom(e.endLine),this.fillShape.copyFrom(e.fillShape)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"breakSize",{get:function(){return this.getPropertyValue("breakSize")},set:function(t){this.setPropertyValue("breakSize",t)&&this.axis&&(this.axis.invalidate(),this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startPoint",{get:function(){var t=this.axis.renderer;if(t)return t.positionToPoint(this.startPosition)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endPoint",{get:function(){var t=this.axis.renderer;if(t)return t.positionToPoint(this.endPosition)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startPosition",{get:function(){},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endPosition",{get:function(){},enumerable:!0,configurable:!0}),e.prototype.draw=function(){(t.prototype.draw.call(this),this.axis)&&this.axis.renderer.updateBreakElement(this)},Object.defineProperty(e.prototype,"startValue",{get:function(){return this.getPropertyValue("startValue")},set:function(t){this.setPropertyValue("startValue",t)&&this.axis&&(this.axis.invalidate(),this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endValue",{get:function(){return this.getPropertyValue("endValue")},set:function(t){this.setPropertyValue("endValue",t)&&this.axis&&(this.axis.invalidate(),this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),e}(r.a);u.b.registeredClasses.AxisBreak=c},UwWU:function(t,e,i){var n=i("4BRe"),r=Math.max,o=Math.min;t.exports=function(t,e){return(t=n(t))<0?r(t+e,0):o(t,e)}},VAFc:function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("ohjg"),o=i("8ZqG"),a=i("aCit"),s=function(t){function e(){var e=t.call(this)||this;return e.className="DropShadowFilter",e.color=Object(o.c)("#000"),e.feGaussianBlur=e.paper.add("feGaussianBlur"),e.feGaussianBlur.attr({result:"blurOut",in:"SourceGraphic"}),e.filterPrimitives.push(e.feGaussianBlur),e.feOffset=e.paper.add("feOffset"),e.feOffset.attr({result:"offsetBlur"}),e.filterPrimitives.push(e.feOffset),e.feFlood=e.paper.add("feFlood"),e.feFlood.attr({"flood-color":e.color}),e.filterPrimitives.push(e.feFlood),e.feComposite=e.paper.add("feComposite"),e.feComposite.attr({in2:"offsetBlur",operator:"in"}),e.filterPrimitives.push(e.feComposite),e.feMerge=e.paper.addGroup("feMerge"),e.feMerge.add(e.paper.add("feMergeNode")),e.feMerge.add(e.paper.add("feMergeNode").attr({in:"SourceGraphic"})),e.filterPrimitives.push(e.feMerge),e.width=200,e.height=200,e.blur=1.5,e.dx=3,e.dy=3,e.opacity=.5,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"color",{get:function(){return this.properties.color},set:function(t){this.properties.color=t,this.feFlood&&this.feFlood.attr({"flood-color":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"opacity",{get:function(){return this.properties.opacity},set:function(t){this.properties.opacity=t,this.feFlood.attr({"flood-opacity":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dx",{get:function(){return this.properties.dx},set:function(t){this.properties.dx=t,this.feOffset.attr({dx:t/this.scale})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dy",{get:function(){return this.properties.dy},set:function(t){this.properties.dy=t,this.feOffset.attr({dy:t/this.scale})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"blur",{get:function(){return this.properties.blur},set:function(t){this.properties.blur=t,this.feGaussianBlur.attr({stdDeviation:t/this.scale})},enumerable:!0,configurable:!0}),e.prototype.updateScale=function(){this.dx=this.dx,this.dy=this.dy,this.blur=this.blur},e}(r.a);a.b.registeredClasses.DropShadowFilter=s},VCCo:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("FUSD"),o=i("vSjZ");n(n.P+n.F*/Version\/10\.\d+(\.\d+)? Safari\//.test(o),"String",{padStart:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},VGgz:function(t,e,i){"use strict";i.d(e,"a",function(){return u}),i.d(e,"c",function(){return l}),i.d(e,"b",function(){return h}),i.d(e,"d",function(){return c});var n=i("m4/l"),r=i("o0Lc"),o=i("hJ5i"),a=i("Wglt"),s=i("Mtpk"),u=function(){function t(t){this._values=[],this.events=new r.a,null!=t&&this.setAll(t)}return Object.defineProperty(t.prototype,"values",{get:function(){return this._values},enumerable:!0,configurable:!0}),t.prototype._insert=function(t){return this._values.push(t),this._values.length-1},Object.defineProperty(t.prototype,"length",{get:function(){return this._values.length},enumerable:!0,configurable:!0}),t.prototype.indexOf=function(t){return o.indexOf(this._values,t)},t.prototype.contains=function(t){return-1!==this.indexOf(t)},t.prototype.getIndex=function(t){return this._values[t]},Object.defineProperty(t.prototype,"first",{get:function(){return this._values[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this._values[this._values.length-1]},enumerable:!0,configurable:!0}),t.prototype.insert=function(t){var e=this._insert(t);this.events.isEnabled("inserted")&&this.events.dispatchImmediately("inserted",{type:"inserted",target:this,index:e,newValue:t})},t.prototype.remove=function(t){var e=this.indexOf(t);if(-1!==e){var i=this._values[e];o.removeIndex(this._values,e),this.events.isEnabled("removed")&&this.events.dispatchImmediately("removed",{type:"removed",target:this,index:e,oldValue:i})}},t.prototype.setAll=function(t){var e=this;o.eachReverse(this._values,function(t,i){e._values.pop(),e.events.isEnabled("removed")&&e.events.dispatchImmediately("removed",{type:"removed",target:e,index:i,oldValue:t})}),o.each(t,function(t){e.insert(t)})},t.prototype.clear=function(){this.setAll([])},t.prototype.slice=function(e,i){var n=new t;return n._values=this._values.slice(e,i),n},t.prototype.findClosestIndex=function(t,e,i){void 0===i&&(i="any");var n,r,o=-1,u=0;return a.eachContinue(this.iterator(),function(a){var l=e(a);if("any"===i){if(l===t)return o=u,!1;var h=Math.abs(t-l);(!s.hasValue(r)||r>h)&&(o=u,n=l,r=h)}else"left"===i&&l<=t?(!s.hasValue(n)||n<=l)&&(o=u,n=l):"right"===i&&l>=t&&(!s.hasValue(n)||n>=l)&&(o=u,n=l);return++u,!0}),-1===o&&("left"===i?o=0:"right"===i&&(o=this.length-1)),o},t.prototype.iterator=function(){return a.fromArray(this._values)},t.prototype[Symbol.iterator]=function(){var t,e;return n.d(this,function(i){switch(i.label){case 0:t=this._values.length,e=0,i.label=1;case 1:return e<t?[4,this._values[e]]:[3,4];case 2:i.sent(),i.label=3;case 3:return++e,[3,1];case 4:return[2]}})},t.prototype.each=function(t){o.each(this._values,t)},t}(),l=function(t){function e(e){var i=t.call(this)||this;return i._ordering=e,i}return n.c(e,t),e.prototype._insert=function(t){var e=o.getSortedIndex(this._values,this._ordering,t).index;return o.insertIndex(this._values,e,t),e},e.prototype.indexOf=function(t){var e=o.getSortedIndex(this._values,this._ordering,t),i=e.found,n=e.index;return i?n:-1},e.prototype.update=function(t){var e=o.indexOf(this._values,t);if(-1!==e){var i=this._values.length-1;(0===e||this._ordering(this._values[e-1],t)<0)&&(e===i||this._ordering(t,this._values[e+1])<0)||(o.removeIndex(this._values,e),this._insert(t))}},e}(u),h=function(t){function e(e){var i=t.call(this)||this;return i.template=e,i}return n.c(e,t),Object.defineProperty(e.prototype,"template",{get:function(){return this._template},set:function(t){t.isTemplate=!0,this._template=t},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(t){var e=this;a.each(t.iterator(),function(t){e.insert(t.clone())})},e.prototype.slice=function(t,i){var n=new e(this.template);return n._values=this._values.slice(t,i),n},e.prototype.create=function(t){var e=null!=t?new t:this.template.clone();return this.insert(e),e},e}(u),c=function(t){function e(e,i){var n=t.call(this,i)||this;return n.template=e,n}return n.c(e,t),Object.defineProperty(e.prototype,"template",{get:function(){return this._template},set:function(t){t.isTemplate=!0,this._template=t},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(t){var e=this;a.each(t.iterator(),function(t){e.insert(t.clone())})},e.prototype.create=function(t){var e=null!=t?new t:this.template.clone();return this.insert(e),e},e}(l)},VIOb:function(t,e,i){"use strict";i.d(e,"b",function(){return f}),i.d(e,"a",function(){return g});var n=i("m4/l"),r=i("Y9w3"),o=i("hD5A"),a=i("vMqJ"),s=i("C6dT"),u=i("p9TX"),l=i("A6AV"),h=i("tjMS"),c=i("Wglt"),p=i("Mtpk"),d=i("TGuK"),f=function(t){function e(){var e=t.call(this)||this;return e.className="ChartDataItem",e.applyTheme(),e}return n.c(e,t),e}(l.a),g=function(t){function e(){var e=t.call(this)||this;e._legend=new o.d,e.className="Chart";var i=new u.a;e.titles=new a.e(i),e._disposers.push(new a.c(e.titles)),e._disposers.push(i),e.width=Object(h.c)(100),e.height=Object(h.c)(100),e.layout="vertical";var n=e.createChild(s.a);n.shouldClone=!1,n.layout="vertical",n.width=Object(h.c)(100),n.height=Object(h.c)(100),e.chartAndLegendContainer=n;var r=n.createChild(s.a);return r.shouldClone=!1,r.width=Object(h.c)(100),r.height=Object(h.c)(100),e.chartContainer=r,e.showOnInit=!0,e._disposers.push(e._legend),e.titles.events.on("inserted",function(t){e.processTitle(t),e.updateReaderTitleReferences()},e,!1),e.titles.events.on("removed",function(t){e.updateReaderTitleReferences()},e,!1),e.role="region",e.defaultState.transitionDuration=1,e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),p.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Chart"))},e.prototype.draw=function(){this.fixLayout(),t.prototype.draw.call(this)},e.prototype.fixLayout=function(){var t=this.legend;if(t){var e=this.chartAndLegendContainer,i=this.chartContainer;switch(i.x=void 0,i.y=void 0,t.x=void 0,t.y=void 0,t.position){case"left":e.layout="horizontal",p.isNumber(t.width)||(t.width=200),t.toBack();break;case"right":e.layout="horizontal",p.isNumber(t.width)||(t.width=200),t.toFront();break;case"top":e.layout="vertical",t.maxWidth=void 0,t.width=Object(h.c)(100),t.toBack();break;case"bottom":e.layout="vertical",t.maxWidth=void 0,t.width=Object(h.c)(100),t.toFront()}}},e.prototype.feedLegend=function(){},e.prototype.processTitle=function(t){var e=t.newValue;return e.parent=this,e.toBack(),e.shouldClone=!1,e.align="center",e.uidAttr(),e},e.prototype.updateReaderTitleReferences=function(){if(this.titles.length){var t=[];c.each(this.titles.iterator(),function(e){t.push(e.uid)}),this.setSVGAttribute({"aria-labelledby":t.join(" ")})}else this.removeSVGAttribute("aria-labelledby")},Object.defineProperty(e.prototype,"legend",{get:function(){return this._legend.get()},set:function(t){this.setLegend(t)},enumerable:!0,configurable:!0}),e.prototype.setLegend=function(t){var e=this;this._legend.get()!==t&&(t?(t.parent=this.chartAndLegendContainer,this._legend.set(t,t.events.on("propertychanged",function(t){"position"!=t.property&&"width"!=t.property||e.fixLayout()},void 0,!1))):this._legend.reset(),this.feedLegend())},e.prototype.processConfig=function(e){e&&p.hasValue(e.legend)&&!p.hasValue(e.legend.type)&&(e.legend.type="Legend"),t.prototype.processConfig.call(this,e)},e.prototype.copyFrom=function(e){this.titles.copyFrom(e.titles),e.legend&&(this.legend=e.legend.clone(),this.legend.removeChildren()),t.prototype.copyFrom.call(this,e)},e}(r.a);d.c.push({relevant:d.b.widthXS,state:function(t,e){if(t instanceof g){var i=t.states.create(e);return t.pixelPaddingLeft>10&&(i.properties.paddingLeft=10),t.pixelPaddingRight>10&&(i.properties.paddingRight=10),i}return null}}),d.c.push({relevant:d.b.heightXS,state:function(t,e){if(t instanceof g){var i=t.states.create(e);return t.pixelPaddingTop>10&&(i.properties.paddingTop=10),t.pixelPaddingBottom>10&&(i.properties.paddingBottom=10),i}return null}}),d.c.push({relevant:d.b.widthXXS,state:function(t,e){if(t instanceof g){var i=t.states.create(e);return i.properties.paddingLeft=0,i.properties.paddingRight=0,i}return null}}),d.c.push({relevant:d.b.heightXXS,state:function(t,e){if(t instanceof g){var i=t.states.create(e);return i.properties.paddingTop=0,i.properties.paddingBottom=0,i}return null}})},VYrJ:function(t,e,i){var n=i("OB1/")("keys"),r=i("7bL/");t.exports=function(t){return n[t]||(n[t]=r(t))}},Vk33:function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("FzPm"),o=i("aCit"),a=i("hGwe"),s=i("Gg2j"),u=i("v9UT"),l=i("aFzC"),h=function(t){function e(){var e=t.call(this)||this;return e.className="WavedCircle",e.element=e.paper.add("path"),e.waveLength=16,e.waveHeight=4,e.fill=void 0,e.fillOpacity=0,e.tension=.8,e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){var t="",e=this.pixelRadius;if(e>0){var i=this.getPoints(e);t=a.moveTo(i[0])+new l.b(this.tension,this.tension).smooth(i)}var n=this.pixelInnerRadius;n>0&&((i=this.getPoints(n)).reverse(),t+=a.moveTo(i[0])+new l.b(this.tension,this.tension).smooth(i));this.path=t},e.prototype.getPoints=function(t){for(var e=t*Math.PI*2,i=this.waveHeight/2,n=e/Math.round(e/this.waveLength),r=n/2,o=[],a=e/n,u=0;u<=a;u++){var l=u*n/e*360,h=(u*n+r)/e*360;o.push({x:(t-i)*s.cos(l),y:(t-i)*s.sin(l)}),o.push({x:(t+i)*s.cos(h),y:(t+i)*s.sin(h)})}return o.pop(),o},Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1),this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelInnerRadius",{get:function(){return u.relativeToValue(this.innerRadius,s.min(this.innerWidth/2,this.innerHeight/2))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"waveLength",{get:function(){return this.getPropertyValue("waveLength")},set:function(t){this.setPropertyValue("waveLength",t),this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"waveHeight",{get:function(){return this.getPropertyValue("waveHeight")},set:function(t){this.setPropertyValue("waveHeight",t),this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tension",{get:function(){return this.getPropertyValue("tension")},set:function(t){this.setPropertyValue("tension",t),this.invalidate()},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.WavedCircle=h},Vng0:function(t,e,i){var n=i("hjwn"),r=i("Wbjh");t.exports=i("gD3S")?function(t,e,i){return n.f(t,e,r(1,i))}:function(t,e,i){return t[e]=i,t}},Vs7R:function(t,e,i){"use strict";i.d(e,"b",function(){return R}),i.d(e,"a",function(){return A});var n=i("m4/l"),r=i("ux7t"),o=i("kQxV"),a=i("Tjl+"),s=i("x79X"),u=i("+qIf"),l=i("vMqJ"),h=i("hD5A"),c=i("1yyj"),p=i("P7v+"),d=i("C6dT"),f=i("ZLF9"),g=i("sxA1"),m=i("CuFa"),y=i("8ZqG"),b=i("zhwk"),v=i("qCRI"),_=i("Q4nc"),x=i("aCit"),P=i("CTEm"),w=i("7XB+"),O=i("akNo"),S=i("MipW"),T=i("P/bD"),C=i("GAaQ"),k=i("v9UT"),I=i("Gg2j"),M=i("ScGY"),j=i("hJ5i"),V=i("Qkdp"),D=i("Mtpk"),E=i("Wglt"),F=i("Rpw0"),N=i("tjMS"),R=["fill","fillOpacity","stroke","strokeOpacity","strokeWidth","strokeDasharray","strokeDashoffset"],A=function(t){function e(){var e=t.call(this)||this;return e.properties={},e.events=new o.a(e),e.adapter=new s.a(e),e._bindings={},e._isTemplate=!1,e._inited=!1,e._ready=!1,e.isHiding=!1,e._isHidden=!1,e.isShowing=!1,e.isStandaloneInstance=!1,e._isActive=!1,e._mask=new h.d,e._positionPrecision=3,e._language=new h.d,e._rtl=!1,e._exporting=new h.d,e._exportable=!0,e._bbox={x:0,y:0,width:0,height:0},e.invalid=!1,e.positionInvalid=!1,e.propertyFields={},e.applyOnClones=!1,e.maxLeft=0,e.maxRight=0,e.maxTop=0,e.maxBottom=0,e._isDragged=!1,e._disabled=!1,e._internalDisabled=!1,e._updateDisabled=!1,e._internalDefaultsApplied=!1,e.rollOutDelay=0,e.isBaseSprite=!1,e.shouldClone=!0,e.appeared=!1,e.ex=0,e.ey=0,e.className="Sprite",e.uid,e.group=e.paper.addGroup("g"),e.setPropertyValue("scale",1),e.setPropertyValue("rotation",0),e.setPropertyValue("align","none"),e.setPropertyValue("valign","none"),e.setPropertyValue("pixelPerfect",!1),e.setPropertyValue("visible",!0),e.setPropertyValue("tooltipPosition","fixed"),e.setPropertyValue("verticalCenter","none"),e.setPropertyValue("horizontalCenter","none"),e.setPropertyValue("marginTop",0),e.setPropertyValue("marginBottom",0),e.setPropertyValue("marginLeft",0),e.setPropertyValue("marginRight",0),e.setPropertyValue("dx",0),e.setPropertyValue("dy",0),e.setPropertyValue("paddingTop",0),e.setPropertyValue("paddingBottom",0),e.setPropertyValue("paddingRight",0),e.setPropertyValue("paddingLeft",0),e.setPropertyValue("togglable",!1),e.setPropertyValue("hidden",!1),e.setPropertyValue("urlTarget","_self"),e._prevMeasuredWidth=0,e._prevMeasuredHeight=0,e._measuredWidth=0,e._measuredHeight=0,e._isMeasured=!0,e.invalidate(),e.applyTheme(),e._disposers.push(e.events),e._disposers.push(e.group),e._disposers.push(e._mask),e._disposers.push(e._language),e._disposers.push(e._exporting),e._disposers.push(new h.b(function(){V.each(e._bindings,function(t,e){e.dispose()})})),e.setPropertyValue("interactionsEnabled",!0),e}return n.c(e,t),e.prototype.applyTheme=function(){t.prototype.applyTheme.call(this),_.a.autoSetClassName&&this.setClassName()},e.prototype.getCurrentThemes=function(){var t=this._themes;if(t)return t;var e=this.parent;return e?e.getCurrentThemes():x.b.themes},e.prototype.applyInternalDefaults=function(){this._internalDefaultsApplied=!0},e.prototype.invalidate=function(){this.disabled||this._isTemplate||this.invalid||(this.invalid=!0,x.b.addToInvalidSprites(this),F.b.requestFrame())},e.prototype.validate=function(){this.dispatchImmediately("beforevalidated"),this._internalDefaultsApplied||this.applyInternalDefaults(),this.beforeDraw(),this.draw(),this.invalid=!1,x.b.removeFromInvalidSprites(this),this.afterDraw()},e.prototype.invalidatePosition=function(){this.disabled||this._isTemplate||this.positionInvalid||(this.positionInvalid=!0,x.b.addToInvalidPositions(this),F.b.requestFrame())},e.prototype.validatePosition=function(){var t=this.pixelX,e=this.pixelY,i=this.dx,n=this.dy,r=t+i,o=e+n;this._updateDisabled&&(this._internalDisabled?this.group.attr({display:"none"}):this.disabled||this.removeSVGAttribute("display"),this._updateDisabled=!1);var a=this.measure(),s=this.group.transformString;this.group.moveTo({x:r,y:o}),this.group.rotation=this.rotation,this.nonScaling?this.group.scale=this.scale/this.globalScale:this.group.scale=this.scale,(s!=this.group.transformString||a)&&(null==s?this.dispatch("transformed"):this.dispatchImmediately("transformed"),this.dispatch("positionchanged")),t+i==r&&e+n==o&&(x.b.removeFromInvalidPositions(this),this.positionInvalid=!1);var u=this._maskRectangle;u&&this._clipElement.moveTo({x:u.x-t,y:u.y-e})},e.prototype.beforeDraw=function(){},e.prototype.draw=function(){},e.prototype.afterDraw=function(){if((this.isMeasured||"none"!==this.horizontalCenter||"none"!==this.verticalCenter)&&this.measureElement(),this._inited)this.dispatch("validated");else{try{for(var t=n.g(this.adapter.keys()),e=t.next();!e.done;e=t.next()){var i=e.value;switch(i){case"mask":case"fill":case"opacity":case"fillOpacity":case"stroke":case"strokeOpacity":case"strokeWidth":case"shapeRendering":case"strokeDasharray":case"strokeDashoffset":case"textDecoration":case"fontSize":case"fontFamily":case"fontWeight":this[i]=this[i]}}}catch(t){r={error:t}}finally{try{e&&!e.done&&(o=t.return)&&o.call(t)}finally{if(r)throw r.error}}this.applyFilters(),this.visible=this.visible,this.interactionsEnabled=this.getPropertyValue("interactionsEnabled"),this._inited=!0,this.showOnInit||(this.appeared=!0),this.hidden&&this.hide(0),this.applyMask(),this.dispatch("validated"),this.dispatch("inited"),this.dispatchReady()}var r,o},e.prototype.dispatchReady=function(){this.isReady()||(this._ready=!0,this.dispatch("ready"))},e.prototype.reinit=function(){this._inited=!1,this.setState(this.defaultState),this.invalidate()},e.prototype.handleGlobalScale=function(){this.dispatch("globalscalechanged"),this.nonScalingStroke&&(this.strokeWidth=this.strokeWidth),this.nonScaling&&this.validatePosition(),this.updateFilterScale()},e.prototype.updateFilterScale=function(){var t=this;E.each(this.filters.iterator(),function(e){e.scale=t.globalScale})},e.prototype.removeFromInvalids=function(){x.b.removeFromInvalidSprites(this),x.b.removeFromInvalidPositions(this)},e.prototype.copyFrom=function(e){var i=this;t.prototype.copyFrom.call(this,e),this.events.copyFrom(e.events),this.isMeasured=e.isMeasured,this.states.copyFrom(e.states),e.filters.length>0&&e.filters.each(function(t){i.filters.push(t.clone())}),this.adapter.copyFrom(e.adapter),e._interaction&&this.interactions.copyFrom(e.interactions),e._plugins&&this.plugins.copyFrom(e.plugins),this.configField=e.configField,this.applyOnClones=e.applyOnClones,this.disabled=e.disabled,this.virtualParent=e.virtualParent,this.exportable=e.exportable,e._tooltip&&(this._tooltip?this._tooltip.copyFrom(e.tooltip):this.tooltip=e.tooltip.clone()),this._showSystemTooltip=e.showSystemTooltip,k.copyProperties(e.propertyFields,this.propertyFields),k.copyProperties(e.properties,this),e.fillModifier&&(this.fillModifier=e.fillModifier.clone()),e.strokeModifier&&(this.strokeModifier=e.strokeModifier.clone())},e.prototype.dispose=function(){if(!this.isDisposed()){if(this.dispatchImmediately("beforedisposed"),this.isBaseSprite){if(this.htmlContainer)for(;this.htmlContainer.childNodes.length>0;)this.htmlContainer.removeChild(this.htmlContainer.firstChild);this.isBaseSprite=!1}if(t.prototype.dispose.call(this),this.adapter.clear(),this.applyOnClones&&this._clones)for(var e=this._clones.length-1;e>=0;e--){this._clones.getIndex(e).dispose()}if(this._svgContainer&&this._svgContainer.dispose(),this._interactionDisposer&&(this._interactionDisposer.dispose(),this._interactionDisposer=void 0),this._urlDisposer&&this._urlDisposer.dispose(),this.removeFromInvalids(),this.element&&this.element.dispose(),this.group&&this.group.dispose(),this._numberFormatter&&this._numberFormatter.dispose(),this._focusFilter&&this._focusFilter.dispose(),!this.stroke||this.stroke instanceof y.a||this.stroke.dispose(),!this.fill||this.fill instanceof y.a||this.fill.dispose(),D.hasValue(this.id)&&this.map.removeKey(this.id),this.parent=void 0,this._filters)for(;this._filters.length>0;){var i=this._filters.getIndex(0);i.dispose(),this._filters.removeValue(i)}}},Object.defineProperty(e.prototype,"isTemplate",{get:function(){return this._isTemplate},set:function(t){t=D.toBoolean(t),this._isTemplate!=t&&(this._isTemplate=t,this instanceof d.a&&E.each(this.children.iterator(),function(e){e.isTemplate=t}),t?(this.parent=this.parent,this.removeFromInvalids()):this.invalidate())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showSystemTooltip",{get:function(){return D.hasValue(this._showSystemTooltip)?this._showSystemTooltip:!!this.parent&&this.parent.showSystemTooltip},set:function(t){t=D.toBoolean(t),this._showSystemTooltip=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"topParent",{get:function(){return this._topParent?this._topParent:this.parent?this.parent.topParent:void 0},set:function(t){this._topParent=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},set:function(t){if(!this._isTemplate){k.used(this.paper);var e=this._parent;e!=t&&(e&&e.children.removeValue(this),this._parent=t,t?(this.topParent=t.topParent,t.isTemplate&&(this.isTemplate=!0),this.baseId=t.baseId,t.children.push(this),this._tooltip&&!this._tooltipContainer&&(this._tooltip.parent=t.tooltipContainer),this._dataItem||(this.dataItem=t.dataItem)):this.topParent=void 0)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"virtualParent",{get:function(){return this._virtualParent},set:function(t){this._virtualParent=t},enumerable:!0,configurable:!0}),e.prototype.appendDefs=function(){this.filterElement&&this.paper.appendDef(this.filterElement);var t=this.fill;t&&t.element&&this.paper.appendDef(t.element);var e=this.stroke;if(e&&e.element&&this.paper.appendDef(e.element),this.fillModifier&&this.fill instanceof y.a){var i=this.fillModifier.modify(this.fill);i&&i.element&&this.paper.appendDef(i.element)}if(this.strokeModifier&&this.stroke instanceof y.a){var n=this.strokeModifier.modify(this.stroke);n&&n.element&&this.paper.appendDef(n.element)}this._clipPath&&this.paper.appendDef(this._clipPath),!1===this._exportable&&(this.exportable=!1)},Object.defineProperty(e.prototype,"map",{get:function(){var t=this.topParent;return t?t.map:(this._map||(this._map=new u.a),this._map)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._id},set:function(t){if(this._id!=t){if(this._id=t,this.map.hasKey(t))throw Error("Duplicate id ("+t+") used on multiple objects.");this.map.setKey(t,this),_.a.autoSetClassName&&this.setClassName()}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dom",{get:function(){return this.group.node},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paper",{get:function(){return this._paper?this._paper:this.parent?this.parent.paper:Object(p.b)()},set:function(t){this.setPaper(t)},enumerable:!0,configurable:!0}),e.prototype.setPaper=function(t){return this._paper!=t&&(this._paper=t,this.appendDefs(),!0)},Object.defineProperty(e.prototype,"htmlContainer",{get:function(){return this._htmlContainer?this._htmlContainer:this.parent?this.parent.htmlContainer:void 0},set:function(t){this._htmlContainer=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"titleElement",{get:function(){return this._titleElement||(this._titleElement=this.paper.add("title"),this.group.add(this._titleElement)),this._titleElement},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"descriptionElement",{get:function(){return this._descriptionElement||(this._descriptionElement=this.paper.add("desc"),this.group.add(this._descriptionElement)),this._descriptionElement},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"filters",{get:function(){return this._filters||(this._filters=new l.b,this._disposers.push(this._filters.events.onAll(this.applyFilters,this)),this._disposers.push(new l.c(this._filters))),this._filters},enumerable:!0,configurable:!0}),e.prototype.setSVGAttributes=function(){this.fill=this.fill,this.opacity=this.opacity,this.fillOpacity=this.fillOpacity,this.stroke=this.stroke,this.strokeOpacity=this.strokeOpacity,this.shapeRendering=this.shapeRendering,this.strokeDasharray=this.strokeDasharray,this.strokeDashoffset=this.strokeDashoffset,this.focusable=this.focusable,this.tabindex=this.tabindex,this.role=this.role},e.prototype.setSVGAttribute=function(t){this.group.attr(t)},e.prototype.removeSVGAttribute=function(t){this.group.removeAttr(t)},e.prototype.setClassName=function(){var t=this.className,e=_.a.classNamePrefix;this.element&&this.element.addClass(e+t),this.group.addClass(e+t+"-group"),D.hasValue(this.id)&&this.group.addClass(e+this.id)},e.prototype.uidAttr=function(){return this.setSVGAttribute({id:this.uid}),this.uid},e.prototype.updateClipPath=function(){var t=this._clipElement;t&&t.moveTo({x:this.mask.pixelX,y:this.mask.pixelY})},e.prototype.createClipPath=function(){if(!this._clipPath){this._clipPath=this.paper.addGroup("clipPath"),this.paper.appendDef(this._clipPath),this._disposers.push(this._clipPath);var t=x.b.getUniqueId();this._clipPath.attr({id:t}),this.group.attr({"clip-path":'url("'+k.getBaseURI()+t+'")'})}},e.prototype.applyMask=function(){var t=this.mask;if(this._clipPath&&t)if(t instanceof d.a){this._clipElement.attr({width:I.max(0,t.pixelWidth),height:I.max(0,t.pixelHeight)});var e=k.spritePointToSprite({x:t.pixelX,y:t.pixelY},t.parent,this);this._clipPath.x=e.x,this._clipPath.y=e.y}else t.element&&t.element!=this._clipElement&&(this._clipElement=t.element,this._clipPath.add(this._clipElement)),this._clipPath.scale=t.scale,this._clipPath.x=t.pixelX,this._clipPath.y=t.pixelY,this._clipPath.rotation=t.rotation},e.prototype.applyFilters=function(){var t=this;if(this._filters&&this._filters.length>0){var e=100,i=100;this.filterElement?this.filterElement.removeChildNodes():(this.filterElement=this.paper.addGroup("filter"),this._disposers.push(this.filterElement)),this.paper.appendDef(this.filterElement);var n="filter-"+this.uid;this.filterElement.attr({id:n}),E.each(this.filters.iterator(),function(n){n.sprite=t,n.paper=t.paper,n.appendPrimitives(t.filterElement),n.width>e&&(e=n.width),n.height>i&&(i=n.height),n.scale=t.globalScale});var r=e+"%",o=i+"%";this.filterElement.attr({width:r,height:o,x:-(e-100)/2+"%",y:-(i-100)/2+"%"}),this.group.attr({filter:'url("'+k.getBaseURI()+n+'")'})}else this.filterElement&&(this.group.removeAttr("filter"),this.filterElement.removeChildNodes())},e.prototype.removeClipPath=function(){this._clipPath&&(this.removeDispose(this._clipPath),this._clipPath=void 0)},e.prototype.setElement=function(t){this.element=t,this.setSVGAttributes(),this.applyAccessibility()},Object.defineProperty(e.prototype,"element",{get:function(){return this._element},set:function(t){this.removeElement(),this._element=t,this.group.add(t),this.invalid||this.validate(),_.a.autoSetClassName&&this.setClassName()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"svgContainer",{get:function(){return this._svgContainer?this._svgContainer:this.parent?this.parent.svgContainer:void 0},set:function(t){this._svgContainer=t},enumerable:!0,configurable:!0}),e.prototype.measureElement=function(){if(this.element)if(this.definedBBox)this._bbox=this.definedBBox;else{var t=this.element.getBBox();this._bbox={x:t.x,y:t.y,width:t.width,height:t.height}}},e.prototype.updateCenter=function(){if(this.element){var t=this.element.transformString,e=this.bbox,i=0,n=0,r=e.x,o=e.y,a=e.width,s=e.height,u=this.pixelPaddingLeft,l=this.pixelPaddingRight,h=this.pixelPaddingTop,c=this.pixelPaddingBottom,p=I.max(a+u+l,this.pixelWidth),d=I.max(s+h+c,this.pixelHeight),f=e.x,g=e.x+p,m=e.y,y=e.y+d,b=this.horizontalCenter,v=this.verticalCenter;switch(b){case"none":i=r+u;break;case"left":i=u;break;case"middle":i=u-(a+l+u)/2;break;case"right":i=-l-a}switch(v){case"none":n=o+h;break;case"top":n=h;break;case"middle":n=h-(s+c+h)/2;break;case"bottom":n=-c-s}this._measuredHeight=d,this._measuredWidth=p;var _=I.round(i-r,this._positionPrecision,!0),x=I.round(n-o,this._positionPrecision,!0);this.ex=_-u,this.ey=x-h,this.maxLeft=f+_-u,this.maxRight=g+_-u,this.maxTop=m+x-h,this.maxBottom=y+x-h,this.pixelPerfect&&(_-=.5,x-=.5),this.element.moveTo({x:_,y:x}),t!=this.element.transformString&&this.dispatchImmediately("transformed")}},e.prototype.measure=function(){this.updateCenter();var t=this._measuredWidth,e=this._measuredHeight,i=this.maxLeft,n=this.maxRight,r=this.maxTop,o=this.maxBottom;this._measuredWidthSelf=t,this._measuredHeightSelf=e;var a=this._positionPrecision;if(0!==this.rotation||1!==this.scale){this.nonScalingStroke&&(this.strokeWidth=this.strokeWidth);var s=this.paper.svg,u=s.createSVGMatrix(),l=this.rotation;u.a=I.cos(l)*this.scale,u.c=-I.sin(l)*this.scale,u.e=0,u.b=I.sin(l)*this.scale,u.d=I.cos(l)*this.scale,u.f=0;var h=s.createSVGPoint();h.x=i,h.y=r;var c=s.createSVGPoint();c.x=n,c.y=r;var p=s.createSVGPoint();p.x=n,p.y=o;var d=s.createSVGPoint();d.x=i,d.y=o;var f=h.matrixTransform(u),g=c.matrixTransform(u),m=p.matrixTransform(u),y=d.matrixTransform(u);i=Math.min(f.x,g.x,m.x,y.x),n=Math.max(f.x,g.x,m.x,y.x),r=Math.min(f.y,g.y,m.y,y.y),t=n-i,e=(o=Math.max(f.y,g.y,m.y,y.y))-r,this.maxLeft=I.round(i,a,!0),this.maxRight=I.round(n,a,!0),this.maxTop=I.round(r,a,!0),this.maxBottom=I.round(o,a,!0)}return this._measuredWidth=I.round(t,a,!0),this._measuredHeight=I.round(e,a,!0),(this._measuredWidth!=this._prevMeasuredWidth||this._measuredHeight!=this._prevMeasuredHeight)&&(this._prevMeasuredHeight=this._measuredHeight,this._prevMeasuredWidth=this._measuredWidth,this.dispatch("sizechanged"),this.isHover&&this.tooltip&&this.tooltip.visible&&this.updateTooltipPosition(),!0)},e.prototype.insertBefore=function(t){var e=this.parent;if(e){var i=e.children.indexOf(t);-1!==i&&(e.children.moveValue(this,i),e.sortChildren())}return this},e.prototype.insertAfter=function(t){var e=this.parent;if(e){var i=e.children.indexOf(t);-1!==i&&(e.children.moveValue(this,i+1),e.sortChildren())}return this},e.prototype.removeElement=function(){this._element&&(this.removeDispose(this._element),this._element=void 0)},e.prototype.getRelativeX=function(t){return t instanceof N.a?t.value:this.parent?t/this.parent.innerWidth:0},e.prototype.getRelativeY=function(t){return t instanceof N.a?t.value:this.parent?t/this.parent.innerHeight:0},e.prototype.getPixelX=function(t){var e=0;if(D.isNumber(t))e=t;else if(t instanceof N.a){var i=t.value;this.parent&&(e=I.round(this.parent.innerWidth*i,this._positionPrecision,!0))}return e},e.prototype.getPixelY=function(t){var e=0;if(D.isNumber(t))e=t;else if(t instanceof N.a){var i=t.value;this.parent&&(e=I.round(this.parent.innerHeight*i,this._positionPrecision,!0))}return e},e.prototype.moveTo=function(t,e,i,n){this.isDragged&&!n||(t&&(D.isNumber(t.x)&&this.setPropertyValue("x",t.x),D.isNumber(t.y)&&this.setPropertyValue("y",t.y)),D.isNumber(e)&&(this.rotation=e),D.isNumber(i)&&(this.scale=i),this.invalidatePosition())},Object.defineProperty(e.prototype,"mask",{get:function(){return this.adapter.apply("mask",this._mask.get())},set:function(t){var e=this;this._mask.get()!==t&&(t?(this.createClipPath(),t instanceof d.a?this._clipElement=this.paper.add("rect"):(t.isMeasured=!1,t.element&&(this._clipElement=t.element)),this._clipElement&&this._clipPath.add(this._clipElement),this._mask.set(t,new h.c([t.events.on("maxsizechanged",function(){e.inited&&e.applyMask},void 0,!1),t.events.on("validated",this.applyMask,this,!1),t.events.on("positionchanged",this.applyMask,this,!1)])),this.applyMask()):(this._mask.reset(),this.group.removeAttr("clip-path"),this.removeClipPath()))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maskRectangle",{get:function(){return this._maskRectangle},set:function(t){t?(this.createClipPath(),this._clipElement||(this._clipElement=this.paper.add("rect"),this._clipPath.add(this._clipElement)),this._clipElement.attr({width:t.width,height:t.height})):(this.removeClipPath(),this._clipElement=void 0),this._maskRectangle=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isMeasured",{get:function(){return this._isMeasured},set:function(t){(t=D.toBoolean(t))||(this._measuredWidth=0,this._measuredHeight=0),this._isMeasured!=t&&(this._isMeasured=t,this.invalidatePosition())},enumerable:!0,configurable:!0}),e.prototype.hitTest=function(t){this.invalid&&this.validate(),t.invalid&&t.validate();var e=this.pixelX,i=this.pixelY,n=e+this.measuredWidth,r=i+this.measuredHeight,o=t.pixelX,a=t.pixelY,s=o+t.measuredWidth,u=a+t.measuredHeight;return!(o>n||s<e||a>r||u<i)},Object.defineProperty(e.prototype,"inited",{get:function(){return this._inited},enumerable:!0,configurable:!0}),e.prototype.isReady=function(){return this._ready},Object.defineProperty(e.prototype,"states",{get:function(){if(!this._states){var t=new r.a;this._states=new u.c(t),this._disposers.push(this._states.events.on("insertKey",this.processState,this,!1)),this._disposers.push(this._states.events.on("setKey",this.processState,this,!1)),this._disposers.push(new u.b(this._states)),this._disposers.push(t)}return this._states},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hiddenState",{get:function(){if(!this.states.getKey("hidden")){var t=this.states.create("hidden");t.properties.opacity=0,t.properties.visible=!1}return this.states.getKey("hidden")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultState",{get:function(){this.states.getKey("default")||(this.states.create("default").properties.opacity=1);return this.states.getKey("default")},enumerable:!0,configurable:!0}),e.prototype.processState=function(t){var e=t.newValue;if(e.sprite=this,e.name=t.key,(this.states.hasKey("hover")||D.hasValue(this.tooltipHTML)||D.hasValue(this.tooltipText))&&(this.hoverable=!0),this.states.hasKey("down")&&(this.clickable=!0),this.states.hasKey("focus")&&(this.focusable=!0),this.applyOnClones)for(var i=this.clones.values,n=i.length,r=0;r<n;++r){var o=i[r];o.isDisposed()||o.states.setKey(e.name,e)}},Object.defineProperty(e.prototype,"animations",{get:function(){return this._animations||(this._animations=[],this._disposers.push(new c.b(this._animations))),this._animations},enumerable:!0,configurable:!0}),e.prototype.getSvgPoint=function(t){var e=this.htmlContainer.getBoundingClientRect();return{x:t.x-e.left,y:t.y-e.top}},e.prototype.animate=function(t,e,i){return new c.a(this,t,e,i).start()},e.prototype.setState=function(t,e,i){var n;if(t instanceof r.a)this.states.setKey(t.name,t),n=t;else if(!(n=this.states.getKey(t)))return;if("hover"==n.name){if(this.isHidden)return;this.isHover=!0}return"hidden"==n.name?this.isHiding=!0:this.visible||this.setVisibility(n.properties.visible||this.defaultState.properties.visible),"active"==n.name&&(this.isActive=!0),D.isNumber(e)||(e=n.transitionDuration),D.hasValue(i)||(i=n.transitionEasing),this.transitTo(n,e,i)},e.prototype.applyCurrentState=function(t){var e=this.setState(this.defaultState,t);return this.isHover&&(e=this.setState("hover",t)),this.isDown&&this.interactions.downPointers.length&&(e=this.setState("down",t)),this.isFocused=this.isFocused,this.isActive&&(e=this.setState("active",t),this.isHover&&this.states.hasKey("hoverActive")&&(e=this.setState("hoverActive",t))),e},e.prototype.transitTo=function(t,e,i){var n,r=this,o=[],a=t.allValues;if(V.each(a,function(t,e){var i=r[t];if(e!=i&&void 0==r.defaultState.properties[t]&&(r.defaultState.properties[t]=i),D.hasValue(e)){var n={from:i,to:e,property:t};o.push(n)}}),o.length>0&&((n=this.animate(o,e,i))&&!n.isFinished()?this._disposers.push(n.events.on("animationended",function(){r.dispatchImmediately("transitionended")})):this.dispatchImmediately("transitionended")),t.filters.length>0){var s=[];E.each(t.filters.iterator(),function(t){var n=t.clone();s.push(n);var o=[];E.each(r.filters.iterator(),function(t){t.className==n.className&&(E.contains(r.defaultState.filters.iterator(),function(t){return t.className===n.className})||r.defaultState.filters.push(t),V.each(n.properties,function(e,i){var n=t.properties[e];n!=i&&o.push({property:e,from:n,to:i})}))}),n.animate(o,e,i)}),this.filters.clear(),this.filters.pushAll(s)}return n},e.prototype.isInTransition=function(){return this.animations.length>0},Object.defineProperty(e.prototype,"isHover",{get:function(){return!!this.isInteractive()&&this.interactions.isHover},set:function(t){(t=D.toBoolean(t))!==this.isHover&&this.isInteractive()&&(this.interactions.isHover=t,t?this.handleOver():this.handleOut())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDragged",{get:function(){return this._isDragged},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDown",{get:function(){return!!this.isInteractive()&&this.interactions.isDown},set:function(t){t=D.toBoolean(t),this.isInteractive()&&this.isDown!=t&&(this.interactions.isDown=t,t?this.handleDown():this.handleUp())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isFocused",{get:function(){return!!this.isInteractive()&&this.interactions.isFocused},set:function(t){t=D.toBoolean(t),this.focusable&&this.isFocused!=t&&this.isInteractive()&&(this.interactions.isFocused=t,!0===t?this.handleFocus():this.handleBlur())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isActive",{get:function(){return this._isActive},set:function(t){this.setActive(t)},enumerable:!0,configurable:!0}),e.prototype.setActive=function(t){t=D.toBoolean(t),this._isActive!==t&&(this._isActive=t,t&&this.states.hasKey("active")?(this.setState("active"),this.isHover&&this.states.hasKey("hoverActive")&&this.setState("hoverActive")):this.applyCurrentState(),this.dispatchImmediately("toggled"))},Object.defineProperty(e.prototype,"disabled",{get:function(){var t=this.getPropertyValue("disabled");return D.hasValue(t)?t:this.virtualParent?this.virtualParent.disabled:!!this.parent&&this.parent.disabled},set:function(t){this.setDisabled(t)},enumerable:!0,configurable:!0}),e.prototype.setDisabled=function(t){if(t=D.toBoolean(t),this.getPropertyValue("disabled")!=t){if(this.setPropertyValue("disabled",t,!0),t)this.parent=this.parent,this.removeFromInvalids(),this.group.attr({display:"none"}),this.dispatch("disabled");else{if(this.parent){var e=this.parent.element;e.hasChild(this.group)||e.add(this.group)}this instanceof d.a?this.deepInvalidate():this.invalidate(),this.__disabled||this.removeSVGAttribute("display"),this.dispatch("enabled")}return this.dispatch("transformed"),F.b.requestFrame(),!0}return!1},Object.defineProperty(e.prototype,"__disabled",{get:function(){return this._internalDisabled},set:function(t){this._internalDisabled!=t&&(this._internalDisabled=t,this._updateDisabled=!0,this.invalidatePosition())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"numberFormatter",{get:function(){return this._numberFormatter?this._numberFormatter:this.virtualParent?this.virtualParent.numberFormatter:this.parent?this.parent.numberFormatter:(this._numberFormatter=new P.a,this._numberFormatter.language=this.language,this.numberFormatter)},set:function(t){this._numberFormatter=t,this._numberFormatter.language=this.language},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dateFormatter",{get:function(){return this._dateFormatter?this._dateFormatter:this.virtualParent?this.virtualParent.dateFormatter:this.parent?this.parent.dateFormatter:(this._dateFormatter=new w.a,this._dateFormatter.language=this.language,this.dateFormatter)},set:function(t){this._dateFormatter=t,this._dateFormatter.language=this.language},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"durationFormatter",{get:function(){return this._durationFormatter?this._durationFormatter:this.virtualParent?this.virtualParent.durationFormatter:this.parent?this.parent.durationFormatter:(this._durationFormatter=new O.a,this._durationFormatter.language=this.language,this.durationFormatter)},set:function(t){this._durationFormatter=t,this._durationFormatter.language=this.language},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"language",{get:function(){var t=this._language.get();return t||(this.virtualParent?this.virtualParent.language:this.parent?this.parent.language:(t=new T.a,this.language=t,t))},set:function(t){var e=this;this._language.get()!==t&&this._language.set(t,t.events.on("localechanged",function(t){e instanceof d.a&&e.deepInvalidate()}))},enumerable:!0,configurable:!0}),e.prototype.populateString=function(t,e){if(D.hasValue(t)){t=D.castString(t);var i=(t=Object(S.b)().escape(t)).match(/\{([^}]+)\}/g),n=void 0;if(i)for(n=0;n<i.length;n++){var r=i[n].replace(/\{([^}]+)\}/,"$1"),o=this.getTagValue(r,"",e);D.hasValue(o)||(o=""),t=t.split(i[n]).join(o)}t=Object(S.b)().unescape(t)}else t="";return this.adapter.apply("populateString",t)},e.prototype.getTagValue=function(t,e,i){var n;D.hasValue(i)||(i=this.dataItem);for(var r,o=[],a=/([^.]+)\(([^)]*)\)|([^.]+)/g;null!==(r=a.exec(t));)if(r[3])o.push({prop:r[3]});else{var s=[];if(""!=k.trim(r[2]))for(var u=/'([^']*)'|"([^"]*)"|([0-9\-]+)/g,l=void 0;null!==(l=u.exec(r[2]));)s.push(l[1]||l[2]||l[3]);o.push({method:r[1],params:s})}if(i){n=this.getTagValueFromObject(o,i.values),D.hasValue(n)&&!D.isObject(n)||(n=this.getTagValueFromObject(o,i));var h=i.dataContext;!D.hasValue(n)&&h&&(n=this.getTagValueFromObject(o,i.dataContext),!D.hasValue(n)&&h.dataContext&&(n=this.getTagValueFromObject(o,h.dataContext))),!D.hasValue(n)&&i.component&&i.component.dataItem!==i&&(n=i.component.getTagValue(t,e))}return D.hasValue(n)||(n=this.getTagValueFromObject(o,this.populateStringFrom||this)),!D.hasValue(n)&&this.parent&&(n=this.parent.getTagValue(t,e)),n},e.prototype.getTagValueFromObject=function(t,e,i){for(var n=e,r=!1,o=0,a=t.length;o<a;o++){var s=t[o];if(s.prop){if(n=n[s.prop],!D.hasValue(n))return}else switch(s.method){case"formatNumber":var u=k.anyToNumber(n);D.hasValue(u)&&(n=this.numberFormatter.format(u,i||s.params[0]||void 0),r=!0);break;case"formatDate":var l=void 0;if(l=D.isString(n)?this.dateFormatter.parse(n):k.anyToDate(n),!D.isDate(l)||D.isNaN(l.getTime()))return;D.hasValue(l)&&(n=this.dateFormatter.format(l,i||s.params[0]||void 0),r=!0);break;case"formatDuration":var h=k.anyToNumber(n);D.hasValue(h)&&(n=this.durationFormatter.format(h,i||s.params[0]||void 0,s.params[1]||void 0),r=!0);break;case"urlEncode":case"encodeURIComponent":n=encodeURIComponent(n);break;default:n[s.method]&&n[s.method].apply(this,s.params)}}if(!r){var c=[{method:"",params:i}];if(D.hasValue(i)){var p=k.getFormat(i);p===M.c?c[0].method="formatNumber":p===M.a?c[0].method="formatDate":p===M.b&&(c[0].method="formatDuration")}else D.isNumber(n)?(c[0].method="formatNumber",c[0].params=""):D.isDate(n)&&(c[0].method="formatDate",c[0].params="");c[0].method&&(n=this.getTagValueFromObject(c,n))}return n},Object.defineProperty(e.prototype,"dataItem",{get:function(){if(!this._dataItem){if(this.virtualParent)return this.virtualParent.dataItem;if(this.parent)return this.parent.dataItem}return this._dataItem},set:function(t){this.setDataItem(t)},enumerable:!0,configurable:!0}),e.prototype.setDataItem=function(t){var e=this;if(this._dataItem!=t){this._dataItem=t,this.configField&&t.dataContext&&(this.config=t.dataContext[this.configField]);var i=t.dataContext;i&&V.each(this.propertyFields,function(t,n){D.hasValue(i[n])&&(e[t]=i[n])}),this.invalidate()}},e.prototype.getPropertyValue=function(t){var e=this.properties[t];return this._isTemplate||(e=this.adapter.apply(t,e)),e},e.prototype.setColorProperty=function(t,e,i){var n=this.properties[t];return!(e instanceof y.a&&n instanceof y.a&&e.hex==n.hex)&&this.setPropertyValue(t,e,i)},e.prototype.setPercentProperty=function(t,e,i,n,r,o){if(e=D.toNumberOrPercent(e),D.isNumber(e))return e=I.round(e,r,o),this.setPropertyValue(t,e,i,n);var a=this.properties[t];return!(e instanceof N.a&&a instanceof N.a&&e.value==a.value)&&this.setPropertyValue(t,e,i,n)},e.prototype.setPropertyValue=function(t,e,i,n){if(this.properties[t]!==e){if(this.properties[t]=e,this.events.isEnabled("propertychanged")){var r={type:"propertychanged",target:this,property:t};this.events.dispatchImmediately("propertychanged",r)}if(i&&this.invalidate(),n&&this.invalidatePosition(),this.applyOnClones)for(var o=this.clones.values,a=o.length,s=0;s<a;++s){var u=o[s];u.isDisposed()||(u[t]=e)}return!0}return!1},e.prototype.bind=function(t,e,i,n){var r=this;void 0===i&&(i=t),D.hasValue(this._bindings[t])&&this._bindings[t].dispose(),this[t]=e[i],this._bindings[t]=e.events.on("propertychanged",function(o){if(o.property===i){var a=e[i];n&&(a=n(a)),r[t]=a}})},e.prototype.observe=function(t,e,i,n){var r=this;return new h.c(j.map(j.toArray(t),function(t){return r.events.on("propertychanged",function(n){n.property===t&&e.call(i,n)},i,n)}))},e.prototype.applyAccessibility=function(){var t=this.readerTitle,e=this.readerDescription,i=this.role,n=this.readerHidden,r=this.readerChecked,o=this.readerControls,a=this.readerLive,s=[],u=[],l=this.readerLabelledBy;l&&s.push(l);var h=this.readerDescribedBy;if(h&&u.push(h),!t||e||this.showSystemTooltip){if(t){var c=this.titleElement,p=this.uid+"-title";c.node.textContent!=t&&(c.node.textContent=t,c.attr({id:p})),s.push(p)}else this._titleElement&&(this.group.removeElement(this._titleElement),this._titleElement=void 0);if(e){var d=this.descriptionElement,f=this.uid+"-description";d.node.textContent!=e&&(d.node.textContent=e,d.attr({id:f})),s.push(f)}else this._descriptionElement&&(this.group.removeElement(this._descriptionElement),this._descriptionElement=void 0)}else this.setSVGAttribute({"aria-label":t}),this.removeSVGAttribute("aria-description"),this._titleElement&&(this.group.removeElement(this._titleElement),this._titleElement=void 0),this._descriptionElement&&(this.group.removeElement(this._descriptionElement),this._descriptionElement=void 0);s.length&&this.setSVGAttribute({"aria-labelledby":s.join(" ")}),u.length&&this.setSVGAttribute({"aria-describedby":u.join(" ")}),i?this.setSVGAttribute({role:i}):this.removeSVGAttribute("role"),n?this.setSVGAttribute({"aria-hidden":"true"}):this.removeSVGAttribute("aria-hidden"),r?this.setSVGAttribute({"aria-checked":"true"}):!1===r?this.setSVGAttribute({"aria-checked":"false"}):this.removeSVGAttribute("aria-checked"),o?this.setSVGAttribute({"aria-controls":o}):this.removeSVGAttribute("aria-controls"),a?this.setSVGAttribute({"aria-live":a}):this.removeSVGAttribute("aria-live")},Object.defineProperty(e.prototype,"readerTitle",{get:function(){return this.getPropertyValue("readerTitle")},set:function(t){t=D.toText(t),this.setPropertyValue("readerTitle",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readerDescription",{get:function(){return this.getPropertyValue("readerDescription")},set:function(t){t=D.toText(t),this.setPropertyValue("readerDescription",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"role",{get:function(){return this.getPropertyValue("role")},set:function(t){t=D.toText(t),this.setPropertyValue("role",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readerHidden",{get:function(){return this.getPropertyValue("readerHidden")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("readerHidden",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readerChecked",{get:function(){return this.getPropertyValue("readerChecked")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("readerChecked",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readerControls",{get:function(){return this.getPropertyValue("readerControls")},set:function(t){t=D.toText(t),this.setPropertyValue("readerControls",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readerLive",{get:function(){return this.getPropertyValue("readerLive")},set:function(t){t=D.toText(t),this.setPropertyValue("readerLive",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readerLabelledBy",{get:function(){return this.getPropertyValue("readerLabelledBy")},set:function(t){t=D.toText(t),this.setPropertyValue("readerLabelledBy",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readerDescribedBy",{get:function(){return this.getPropertyValue("readerDescribedBy")},set:function(t){t=D.toText(t),this.setPropertyValue("readerDescribedBy",t)&&this.applyAccessibility()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"keyboardOptions",{get:function(){if(!this.interactions.keyboardOptions){if(this.virtualParent)return this.virtualParent.keyboardOptions;if(this.parent)return this.parent.keyboardOptions}return this.interactions.keyboardOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"interactions",{get:function(){if(!this._interaction){var t=Object(b.b)().getInteraction(this.dom);this._interaction=t,this._interaction.clickable=this.clickable,this._interaction.hoverable=this.hoverable,this._interaction.trackable=this.trackable,this._interaction.draggable=this.draggable,this._interaction.swipeable=this.swipeable,this._interaction.resizable=this.resizable,this._interaction.wheelable=this.wheelable,this._interaction.contextMenuDisabled=this.contextMenuDisabled,this._interaction.inert=this.inert,this._interaction.sprite=this,this._disposers.push(this._interaction)}return this._interaction},enumerable:!0,configurable:!0}),e.prototype.isInteractive=function(){return!!this._interaction},Object.defineProperty(e.prototype,"focusable",{get:function(){return this.getPropertyValue("focusable")},set:function(t){var e=this;t=D.toBoolean(t),this.setPropertyValue("focusable",t)&&(t||this.isInteractive())&&(this.interactions.focusable=t,t?this.setSVGAttribute({focusable:t}):this.removeSVGAttribute("focusable"),this.interactions.setEventDisposer("sprite-focusable",t,function(){return new h.c([e.events.on("blur",e.handleBlur,e,!1),e.events.on("focus",e.handleFocus,e,!1)])}))},enumerable:!0,configurable:!0}),e.prototype.handleFocus=function(t){this.focusable&&(this.topParent&&(this.topParent.hasFocused=!0),this.focusFilter&&this.filters.push(this.focusFilter),this.hoverOnFocus&&(this.isHover=!0,this.handleOver()))},e.prototype.handleBlur=function(t){this.focusable&&(this.topParent&&(this.topParent.hasFocused=!1),this.focusFilter&&this.filters.removeValue(this.focusFilter),this.hoverOnFocus&&(this.isHover=!1,this.handleOut()))},Object.defineProperty(e.prototype,"focusFilter",{get:function(){var t=this._focusFilter;return t||(this.virtualParent?this.virtualParent.focusFilter:this.parent?this.parent.focusFilter:void 0)},set:function(t){this._focusFilter=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hoverOnFocus",{get:function(){return this.getPropertyValue("hoverOnFocus")},set:function(t){t!==this.hoverOnFocus&&this.setPropertyValue("hoverOnFocus",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tabindex",{get:function(){var t=this._tabindex;return null!=t?t:this.virtualParent?this.virtualParent.tabindex:this.parent?this.parent.tabindex:void 0},set:function(t){t=D.toNumber(t),this.setPropertyValue("tabindex",t)&&D.isNumber(t)&&(this.interactions.tabindex=t,this.setSVGAttribute({tabindex:t}),this.focusable=t>-1||void 0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inertiaOptions",{get:function(){return!this.interactions.inertiaOptions&&this.parent?this.parent.inertiaOptions:this.interactions.inertiaOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"draggable",{get:function(){return this.getPropertyValue("draggable")},set:function(t){var e=this;t=D.toBoolean(t),this.setPropertyValue("draggable",t)&&(t||this.isInteractive())&&(this.applyCursorStyle(),this.interactions.draggable=t,this.interactions.setEventDisposer("sprite-draggable",t,function(){return new h.c([e.events.on("down",e.handleDown,e,!1),e.events.on("dragstart",e.handleDragStart,e,!1),e.events.on("drag",e.handleDragMove,e,!1),e.events.on("dragstop",e.handleDragStop,e,!1)])}))},enumerable:!0,configurable:!0}),e.prototype.handleDragStart=function(){this.interactions.originalPosition={x:this.pixelX,y:this.pixelY},this._isDragged=!0,this.hideTooltip(0)},e.prototype.dragStart=function(t){this._isDragged=!0,Object(b.b)().dragStart(this.interactions,t)},e.prototype.handleDragStop=function(){this._isDragged=!1,this.showTooltip(),this.interactions.originalPosition=void 0},e.prototype.dragStop=function(t){this._isDragged=!1,Object(b.b)().dragStop(this.interactions,t)},e.prototype.handleDragMove=function(t){var e=this.interactions.originalPosition;if(e){var i=this.parent.globalScale*this.svgContainer.cssScale;this.moveTo({x:e.x+t.shift.x/i,y:e.y+t.shift.y/i},void 0,void 0,!0)}},Object.defineProperty(e.prototype,"inert",{get:function(){return this.getPropertyValue("inert")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("inert",t)&&(t||this.isInteractive())&&(this.interactions.inert=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hoverOptions",{get:function(){if(!this.interactions.hoverOptions){if(this.virtualParent)return this.virtualParent.hoverOptions;if(this.parent)return this.parent.hoverOptions}return this.interactions.hoverOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hoverable",{get:function(){return this.getPropertyValue("hoverable")},set:function(t){var e=this;t=D.toBoolean(t),this.setPropertyValue("hoverable",t)&&(t||this.isInteractive())&&(this.applyCursorStyle(),this.interactions.hoverable=t,this.interactions.setEventDisposer("sprite-hoverable",t,function(){return new h.c([e.events.on("over",e.handleOver,e,!1),e.events.on("out",e.handleOut,e,!1)])}))},enumerable:!0,configurable:!0}),e.prototype.handleOver=function(t){if(this._outTimeout&&this._outTimeout.dispose(),this.isHover){this.states.hasKey("hover")&&(this.isHidden||this.applyCurrentState());var e=void 0;t&&t.pointer&&(e=k.documentPointToSvg(t.pointer.point,this.svgContainer.SVGContainer,this.svgContainer.cssScale)),this.showTooltip(e)}else this.hideTooltip(),!this.isHidden&&this.states.hasKey("hover")&&this.applyCurrentState()},e.prototype.handleOut=function(t){var e=this;this.tooltip&&this.tooltip.targetSprite==this&&this.tooltip.keepTargetHover?this._outTimeout=this.setTimeout(function(){e.tooltip.isHover||(e.hideTooltip(),e._outTimeout=e.setTimeout(e.handleOutReal.bind(e),e.rollOutDelay))},10):(this.hideTooltip(),this._outTimeout=this.setTimeout(this.handleOutReal.bind(this),this.rollOutDelay))},e.prototype.handleOutReal=function(){this.isHidden||this.isHiding||!this.states.hasKey("hover")||this.applyCurrentState()},Object.defineProperty(e.prototype,"hitOptions",{get:function(){if(!this.interactions.hitOptions){if(this.virtualParent)return this.virtualParent.hitOptions;if(this.parent)return this.parent.hitOptions}return this.interactions.hitOptions},enumerable:!0,configurable:!0}),e.prototype.handleDown=function(t){1===this.interactions.downPointers.length&&(this.interactions.originalPosition={x:this.pixelX,y:this.pixelY},this.interactions.originalAngle=this.rotation,this.interactions.originalScale=this.scale,this.states.hasKey("down")&&this.setState("down"))},e.prototype.handleUp=function(t){this.states.hasKey("down")&&this.applyCurrentState()},Object.defineProperty(e.prototype,"clickable",{get:function(){return this.getPropertyValue("clickable")},set:function(t){var e=this;t=D.toBoolean(t),this.setPropertyValue("clickable",t)&&(t||this.isInteractive())&&(this.applyCursorStyle(),this.interactions.clickable=t,this.interactions.setEventDisposer("sprite-clickable",t,function(){return new h.c([e.events.on("down",e.handleDown,e,!1),e.events.on("up",e.handleUp,e,!1)])}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"togglable",{get:function(){return this.getPropertyValue("togglable")},set:function(t){var e=this;t=D.toBoolean(t),this.setPropertyValue("togglable",t)&&(t||this.isInteractive())&&this.interactions.setEventDisposer("sprite-togglable",t,function(){return e.events.on("hit",e.handleToggle,e,!1)})},enumerable:!0,configurable:!0}),e.prototype.handleToggle=function(t){this.isActive=!this.isActive},Object.defineProperty(e.prototype,"contextMenuDisabled",{get:function(){return this.getPropertyValue("contextMenuDisabled")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("contextMenuDisabled",t)&&(this.interactions.contextMenuDisabled=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"url",{get:function(){return this.getPropertyValue("url")},set:function(t){this.setPropertyValue("url",t)&&(this._urlDisposer&&this._urlDisposer.dispose(),k.isNotEmpty(t)&&(this._urlDisposer=this.events.on("hit",this.urlHandler,this,!1),this.clickable=!0,this.cursorOverStyle=v.a.pointer))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"baseId",{get:function(){return!this._baseId&&this.parent&&(this.baseId=this.parent.baseId),this._baseId},set:function(t){this.setBaseId(t)},enumerable:!0,configurable:!0}),e.prototype.setBaseId=function(t){t!=this._baseId&&(this.invalid&&(this.invalid=!1,x.b.removeFromInvalidSprites(this),this.invalidate()),this._baseId=t)},Object.defineProperty(e.prototype,"baseSprite",{get:function(){return this.isBaseSprite?this:this.parent?this.parent.baseSprite:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"urlTarget",{get:function(){return this.getPropertyValue("urlTarget")},set:function(t){this.setPropertyValue("urlTarget",t)},enumerable:!0,configurable:!0}),e.prototype.urlHandler=function(t){if(k.isNotEmpty(this.url)){var e=this.populateString(this.url);"_self"===this.urlTarget?window.location.href=e:window.open(e,this.urlTarget)}},Object.defineProperty(e.prototype,"swipeOptions",{get:function(){if(!this.interactions.swipeOptions){if(this.virtualParent)return this.virtualParent.swipeOptions;if(this.parent)return this.parent.swipeOptions}return this.interactions.swipeOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"swipeable",{get:function(){return this.getPropertyValue("swipeable")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("swipeable",t)&&(this.applyCursorStyle(),(t||this.isInteractive())&&(this.interactions.swipeable=t))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trackable",{get:function(){return this.getPropertyValue("trackable")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("trackable",t)&&(t||this.isInteractive())&&(this.applyCursorStyle(),this.interactions.trackable=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"wheelable",{get:function(){return this.getPropertyValue("wheelable")},set:function(t){this.setPropertyValue("wheelable",t)&&(t||this.isInteractive())&&(this.applyCursorStyle(),this.interactions.wheelable=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"resizable",{get:function(){return this.getPropertyValue("resizable")},set:function(t){var e=this;t=D.toBoolean(t),this.setPropertyValue("resizable",t)&&(t||this.isInteractive())&&(this.applyCursorStyle(),this.interactions.resizable=t,this.interactions.setEventDisposer("sprite-resizable",t,function(){return new h.c([e.events.on("down",e.handleDown,e,!1),e.events.on("resize",e.handleResize,e,!1)])}))},enumerable:!0,configurable:!0}),e.prototype.handleResize=function(t){if(this.scale=this.interactions.originalScale*t.scale,this.validatePosition(),this.draggable){var e=k.documentPointToSvg(t.point1,this.htmlContainer,this.svgContainer.cssScale),i=k.documentPointToSvg(t.point2,this.htmlContainer,this.svgContainer.cssScale),n=I.getMidPoint(e,i),r=k.documentPointToSprite(t.startPoint1,this.parent),o=k.documentPointToSprite(t.startPoint2,this.parent),a=this.interactions.originalPosition,s=this.interactions.originalScale;if(a){var u={x:(r.x-a.x)/s,y:(r.y-a.y)/s},l={x:(o.x-a.x)/s,y:(o.y-a.y)/s},h=I.getMidPoint(u,l),c=k.svgPointToSprite(n,this.parent);this.moveTo({x:c.x-h.x*this.scale,y:c.y-h.y*this.scale})}}},Object.defineProperty(e.prototype,"cursorOptions",{get:function(){if(!this.interactions.cursorOptions){if(this.virtualParent)return this.virtualParent.cursorOptions;if(this.parent)return this.parent.cursorOptions}return this.interactions.cursorOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cursorOverStyle",{set:function(t){this.cursorOptions.overStyle=t,Object(b.b)().applyCursorOverStyle(this.interactions)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cursorDownStyle",{set:function(t){this.cursorOptions.downStyle=t},enumerable:!0,configurable:!0}),e.prototype.applyCursorStyle=function(){},Object.defineProperty(e.prototype,"interactionsEnabled",{get:function(){return!1!==this.getPropertyValue("interactionsEnabled")&&(this.virtualParent?this.virtualParent.interactionsEnabled:!this.parent||this.parent.interactionsEnabled)},set:function(t){if(t=D.toBoolean(t),this.setPropertyValue("interactionsEnabled",t)){var e=null;t?this.group.node.style.pointerEvents="":e="none",this.group.node.style.pointerEvents=e}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"exporting",{get:function(){return this.getExporting()},set:function(t){this._exporting.set(t,t)},enumerable:!0,configurable:!0}),e.prototype.getExporting=function(){var t=this._exporting.get();return t||(!this.isStandaloneInstance&&this.parent?this.parent.exporting:((t=new C.a(this.svgContainer.SVGContainer)).sprite=this,t.language=this.language,t.dateFormatter=this.dateFormatter,t.durationFormatter=this.durationFormatter,this._exporting.set(t,t),t))},Object.defineProperty(e.prototype,"exportable",{get:function(){return this._exportable},set:function(t){var e=this.svgContainer;this._exportable=t,e&&(t?j.remove(e.nonExportableSprites,this):-1==j.indexOf(e.nonExportableSprites,this)&&e.nonExportableSprites.push(this))},enumerable:!0,configurable:!0}),e.prototype.modalPrefix=function(t){return t=_.a.classNamePrefix+t},Object.defineProperty(e.prototype,"modal",{get:function(){var t=this.svgContainer;if(t){var e=t.modal;return e.adapter.has("classPrefix",this.modalPrefix)||e.adapter.add("classPrefix",this.modalPrefix),e}},enumerable:!0,configurable:!0}),e.prototype.openModal=function(t,e){var i=this.svgContainer;if(i)return i.openModal(t,e)},e.prototype.closeModal=function(){var t=this.svgContainer;t&&t.closeModal()},Object.defineProperty(e.prototype,"popups",{get:function(){var t=this.svgContainer;if(t){var e=t.popups;return e.template.sprite=this,e.template.adapter.has("classPrefix",this.modalPrefix)||e.template.adapter.add("classPrefix",this.modalPrefix),e}},enumerable:!0,configurable:!0}),e.prototype.openPopup=function(t,e){var i=this.svgContainer;if(i)return i.openPopup(t,e)},e.prototype.closeAllPopups=function(){var t=this.svgContainer;if(t)return t.closeAllPopups()},Object.defineProperty(e.prototype,"x",{get:function(){return this.getPropertyValue("x")},set:function(t){this.isDragged||this.setPercentProperty("x",t,!1,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelX",{get:function(){return this.adapter.apply("pixelX",I.fitToRange(this.getPixelX(this.x),this.minX,this.maxX))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeX",{get:function(){return this.adapter.apply("relativeX",this.getRelativeX(this.x))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minX",{get:function(){return this.getPropertyValue("minX")},set:function(t){D.isNumber(t)&&(t=I.round(t,this._positionPrecision,!0),this.setPropertyValue("minX",t,!1,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxX",{get:function(){return this.getPropertyValue("maxX")},set:function(t){D.isNumber(t)&&(t=I.round(t,this._positionPrecision,!0),this.setPropertyValue("maxX",t,!1,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y",{get:function(){return this.getPropertyValue("y")},set:function(t){this.isDragged||this.setPercentProperty("y",t,!1,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelY",{get:function(){return this.adapter.apply("pixelY",I.fitToRange(this.getPixelY(this.y),this.minY,this.maxY))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeY",{get:function(){return this.adapter.apply("relativeY",this.getRelativeX(this.y))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minY",{get:function(){return this.getPropertyValue("minY")},set:function(t){D.isNumber(t)&&(t=I.round(t,this._positionPrecision,!0),this.setPropertyValue("minY",t,!1,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxY",{get:function(){return this.getPropertyValue("maxY")},set:function(t){D.isNumber(t)&&(t=I.round(t,this._positionPrecision,!0),this.setPropertyValue("maxY",t,!1,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dx",{get:function(){return this.getPropertyValue("dx")},set:function(t){D.isNumber(t)&&(t=I.round(t,this._positionPrecision,!0),this.setPropertyValue("dx",t,!1,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dy",{get:function(){return this.getPropertyValue("dy")},set:function(t){D.isNumber(t)&&(t=I.round(t,this._positionPrecision,!0),this.setPropertyValue("dy",t,!1,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotation",{get:function(){return this.getPropertyValue("rotation")},set:function(t){t=D.toNumber(t),D.isNumber(t)||(t=0),this.setPropertyValue("rotation",t,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"align",{get:function(){return this.getPropertyValue("align")},set:function(t){t=D.toText(t),this.setPropertyValue("align",t)&&this.parent&&this.parent.invalidateLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valign",{get:function(){return this.getPropertyValue("valign")},set:function(t){t=D.toText(t),this.setPropertyValue("valign",t)&&this.parent&&this.parent.invalidateLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"horizontalCenter",{get:function(){return this.getPropertyValue("horizontalCenter")},set:function(t){t=D.toText(t),this.setPropertyValue("horizontalCenter",t)&&this.updateCenter()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"verticalCenter",{get:function(){return this.getPropertyValue("verticalCenter")},set:function(t){t=D.toText(t),this.setPropertyValue("verticalCenter",t)&&this.updateCenter()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxWidth",{get:function(){var t=this.getPropertyValue("maxWidth");return!D.isNumber(t)&&this.parent?this.parent.maxWidth:t},set:function(t){this.setMaxWidth(t)},enumerable:!0,configurable:!0}),e.prototype.setMaxWidth=function(t){var e=this.maxWidth,i=this.maxHeight;if(this.setPropertyValue("maxWidth",t)){D.isNumber(this.relativeWidth)&&this.invalidate();var n={type:"maxsizechanged",target:this,previousWidth:e,previousHeight:i};this.dispatchImmediately("maxsizechanged",n)}},Object.defineProperty(e.prototype,"maxHeight",{get:function(){var t=this.getPropertyValue("maxHeight");return!D.isNumber(t)&&this.parent?this.parent.maxHeight:t},set:function(t){this.setMaxHeight(t)},enumerable:!0,configurable:!0}),e.prototype.setMaxHeight=function(t){var e=this.maxWidth,i=this.maxHeight;if(this.setPropertyValue("maxHeight",t)){D.isNumber(this.relativeHeight)&&this.invalidate();var n={type:"maxsizechanged",target:this,previousWidth:e,previousHeight:i};this.dispatchImmediately("maxsizechanged",n)}},Object.defineProperty(e.prototype,"minWidth",{get:function(){return this.getPropertyValue("minWidth")},set:function(t){this.setPropertyValue("minWidth",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minHeight",{get:function(){return this.getPropertyValue("minHeight")},set:function(t){this.setPropertyValue("minHeight",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this.getPropertyValue("width")},set:function(t){this.setPercentProperty("width",t,!0,!1,this._positionPrecision,!0)&&(this.percentWidth=void 0,this.relativeWidth=void 0,t instanceof N.a?(this.percentWidth=t.percent,D.isNumber(this._pixelWidth)&&(this.maxWidth=void 0),this._pixelWidth=void 0):(this._pixelWidth=Number(t),this.maxWidth=this._pixelWidth),this.invalidatePosition())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this.getPropertyValue("height")},set:function(t){this.setPercentProperty("height",t,!0,!1,this._positionPrecision,!0)&&(this.percentHeight=void 0,this._relativeHeight=void 0,t instanceof N.a?(this.percentHeight=t.percent,D.isNumber(this._pixelHeight)&&(this.maxHeight=void 0),this._pixelHeight=void 0):(this._pixelHeight=Number(t),this.maxHeight=this._pixelHeight),this.invalidatePosition())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelWidth",{get:function(){var t;t=D.isNumber(this.percentWidth)?this.maxWidth:D.isNumber(this._pixelWidth)?this._pixelWidth:0;var e=this.minWidth;return null!=e&&t<e&&(t=e),this.adapter.apply("pixelWidth",I.round(t,this._positionPrecision,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelHeight",{get:function(){var t;t=D.isNumber(this.percentHeight)?this.maxHeight:D.isNumber(this._pixelHeight)?this._pixelHeight:0;var e=this.minHeight;return null!=e&&t<e&&(t=e),this.adapter.apply("pixelHeight",I.round(t,this._positionPrecision,!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeWidth",{get:function(){var t=this._relativeWidth;if(D.isNumber(t))return this.adapter.apply("relativeWidth",t)},set:function(t){this._relativeWidth!=t&&(this._relativeWidth=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeHeight",{get:function(){var t=this._relativeHeight;if(D.isNumber(t))return this.adapter.apply("relativeHeight",t)},set:function(t){this._relativeHeight!=t&&(this._relativeHeight=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"measuredWidth",{get:function(){return this.disabled||this.__disabled?0:this.adapter.apply("measuredWidth",this._measuredWidth)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"measuredHeight",{get:function(){return this.disabled||this.__disabled?0:this.adapter.apply("measuredHeight",this._measuredHeight)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outerWidth",{get:function(){return this.adapter.apply("outerWidth",this.pixelWidth+this.pixelMarginRight+this.pixelMarginLeft)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outerHeight",{get:function(){return this.adapter.apply("outerHeight",this.pixelHeight+this.pixelMarginTop+this.pixelMarginBottom)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerWidth",{get:function(){return this.adapter.apply("innerWidth",Math.max(0,this.pixelWidth-this.pixelPaddingRight-this.pixelPaddingLeft))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerHeight",{get:function(){return this.adapter.apply("innerHeight",Math.max(0,this.pixelHeight-this.pixelPaddingTop-this.pixelPaddingBottom))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"globalScale",{get:function(){var t=this.scale;return this.parent&&(t*=this.parent.globalScale),this.adapter.apply("globalScale",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scale",{get:function(){return this.getPropertyValue("scale")},set:function(t){(t=D.toNumber(t))<0&&(t=0),t!=this.getPropertyValue("scale")&&(this.setPropertyValue("scale",t,!1,!0),this.handleGlobalScale())},enumerable:!0,configurable:!0}),e.prototype.margin=function(t,e,i,n){return this.marginTop=t,this.marginRight=e,this.marginBottom=i,this.marginLeft=n,this},Object.defineProperty(e.prototype,"marginLeft",{get:function(){return this.getPropertyValue("marginLeft")},set:function(t){this.setPercentProperty("marginLeft",t,!0,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"marginRight",{get:function(){return this.getPropertyValue("marginRight")},set:function(t){this.setPercentProperty("marginRight",t,!0,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"marginTop",{get:function(){return this.getPropertyValue("marginTop")},set:function(t){this.setPercentProperty("marginTop",t,!0,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"marginBottom",{get:function(){return this.getPropertyValue("marginBottom")},set:function(t){this.setPercentProperty("marginBottom",t,!0,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelMarginRight",{get:function(){return this.adapter.apply("pixelMarginRight",this.getPixelX(this.marginRight))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeMarginRight",{get:function(){return this.adapter.apply("relativeMarginRight",this.getRelativeX(this.marginRight))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelMarginLeft",{get:function(){return this.adapter.apply("pixelMarginLeft",this.getPixelX(this.marginLeft))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeMarginLeft",{get:function(){return this.adapter.apply("relativeMarginLeft",this.getRelativeX(this.marginLeft))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelMarginTop",{get:function(){return this.adapter.apply("pixelMarginTop",this.getPixelY(this.marginTop))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeMarginTop",{get:function(){return this.adapter.apply("relativeMarginTop",this.getRelativeY(this.marginTop))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelMarginBottom",{get:function(){return this.adapter.apply("pixelMarginBottom",this.getPixelY(this.marginBottom))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeMarginBottom",{get:function(){return this.adapter.apply("relativeMarginBottom",this.getRelativeY(this.marginBottom))},enumerable:!0,configurable:!0}),e.prototype.padding=function(t,e,i,n){return this.paddingTop=t,this.paddingRight=e,this.paddingBottom=i,this.paddingLeft=n,this},Object.defineProperty(e.prototype,"paddingLeft",{get:function(){return this.getPropertyValue("paddingLeft")},set:function(t){this.setPercentProperty("paddingLeft",t,!0,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paddingRight",{get:function(){return this.getPropertyValue("paddingRight")},set:function(t){this.setPercentProperty("paddingRight",t,!0,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paddingTop",{get:function(){return this.getPropertyValue("paddingTop")},set:function(t){this.setPercentProperty("paddingTop",t,!0,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paddingBottom",{get:function(){return this.getPropertyValue("paddingBottom")},set:function(t){this.setPercentProperty("paddingBottom",t,!0,!0,this._positionPrecision,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelPaddingRight",{get:function(){return this.getPixelX(this.paddingRight)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativePaddingRight",{get:function(){return this.getRelativeX(this.paddingRight)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelPaddingLeft",{get:function(){return this.getPixelX(this.paddingLeft)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativePaddingLeft",{get:function(){return this.getRelativeX(this.paddingLeft)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelPaddingTop",{get:function(){return this.getPixelY(this.paddingTop)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativePaddingTop",{get:function(){return this.getRelativeY(this.paddingTop)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelPaddingBottom",{get:function(){return this.getPixelY(this.paddingBottom)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativePaddingBottom",{get:function(){return this.getRelativeY(this.paddingBottom)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return this.getPropertyValue("path")},set:function(t){this.setPropertyValue("path",t)&&(this.element||(this.element=this.paper.add("path")),this.element.attr({d:t}),this.invalidatePosition(),this.inited||this.events.once("inited",this.validatePosition,this,!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fillModifier",{get:function(){return this.getPropertyValue("fillModifier")},set:function(t){this.setPropertyValue("fillModifier",t)&&this.setFill(this.fill)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strokeModifier",{get:function(){return this.getPropertyValue("strokeModifier")},set:function(t){this.setPropertyValue("strokeModifier",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fillOpacity",{get:function(){return this.getPropertyValue("fillOpacity")},set:function(t){t=I.toNumberRange(t,0,1),this.setPropertyValue("fillOpacity",t)&&this.setSVGAttribute({"fill-opacity":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fill",{get:function(){return this.getPropertyValue("fill")},set:function(t){this.setFill(t)},enumerable:!0,configurable:!0}),e.prototype.setFill=function(t){if(D.isObject(t)||(t=Object(y.e)(t)),this.setColorProperty("fill",t)||this.fillModifier)if(t instanceof y.a&&this.fillModifier&&(t=this.fillModifier.modify(t)),this.realFill=t,t instanceof y.a)this.setSVGAttribute({fill:t.toString()});else if(D.hasValue(t)){if(t instanceof f.a||t instanceof g.a||t instanceof m.a){var e=t;e.paper=this.paper,this.setSVGAttribute({fill:'url("'+k.getBaseURI()+e.id+'")'})}}else this.removeSVGAttribute("fill")},Object.defineProperty(e.prototype,"opacity",{get:function(){return this.getPropertyValue("opacity")},set:function(t){t=I.toNumberRange(t,0,1),this.setPropertyValue("opacity",t)&&this.setSVGAttribute({opacity:t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stroke",{get:function(){return this.getPropertyValue("stroke")},set:function(t){this.setStroke(t)},enumerable:!0,configurable:!0}),e.prototype.setStroke=function(t){if(D.isObject(t)||(t=Object(y.e)(t)),this.setColorProperty("stroke",t)||this.strokeModifier)if(t instanceof y.a&&this.strokeModifier&&(t=this.strokeModifier.modify(t)),this.realStroke=t,t instanceof y.a)"none"==t.hex?this.removeSVGAttribute("stroke"):this.setSVGAttribute({stroke:t.toString()});else if(D.hasValue(t)){if(t instanceof f.a||t instanceof g.a||t instanceof m.a){var e=t;e.paper=this.paper,this.setSVGAttribute({stroke:'url("'+k.getBaseURI()+e.id+'")'})}}else this.removeSVGAttribute("stroke")},Object.defineProperty(e.prototype,"strokeOpacity",{get:function(){return this.getPropertyValue("strokeOpacity")},set:function(t){t=I.toNumberRange(t,0,1),this.setPropertyValue("strokeOpacity",t)&&this.setSVGAttribute({"stroke-opacity":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonScalingStroke",{get:function(){return this.getPropertyValue("nonScalingStroke")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("nonScalingStroke",t)&&(this.strokeWidth=this.strokeWidth)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonScaling",{get:function(){return this.getPropertyValue("nonScaling")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("nonScaling",t,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strokeWidth",{get:function(){return this.getPropertyValue("strokeWidth")},set:function(t){t=D.toNumber(t),this.setPropertyValue("strokeWidth",t,!0),this.nonScalingStroke&&(D.isNumber(t)||(t=1),t/=this.globalScale),this.setSVGAttribute({"stroke-width":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strokeDasharray",{get:function(){return this.getPropertyValue("strokeDasharray")},set:function(t){t=D.toText(t),this.setPropertyValue("strokeDasharray",t)&&this.setSVGAttribute({"stroke-dasharray":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strokeDashoffset",{get:function(){return this.getPropertyValue("strokeDashoffset")},set:function(t){t=D.toNumber(t),this.setPropertyValue("strokeDashoffset",t)&&this.setSVGAttribute({"stroke-dashoffset":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shapeRendering",{get:function(){return this.getPropertyValue("shapeRendering")},set:function(t){t=D.toText(t),this.setPropertyValue("shapeRendering",t)&&this.setSVGAttribute({"shape-rendering":t})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelPerfect",{get:function(){return this.getPropertyValue("pixelPerfect")},set:function(t){t=D.toBoolean(t),this._positionPrecision=t?0:3,this.setPropertyValue("pixelPerfect",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rtl",{get:function(){return D.hasValue(this._rtl)?this._rtl:this.virtualParent?this.virtualParent.rtl:this.parent?this.parent.rtl:(this.rtl=!1,this.rtl)},set:function(t){t=D.toBoolean(t),this._rtl=t},enumerable:!0,configurable:!0}),e.prototype.show=function(t){return this.showReal(t)},e.prototype.showReal=function(t){var e,i=this,n=this.defaultState.properties;if(!this.disabled&&(this.isHidden||!this.visible||this.isHiding||null!=n.opacity&&this.opacity<n.opacity&&!this.isShowing)){this.invalid&&this.validate(),this.positionInvalid&&this.validatePosition(),D.isNumber(t)||(t=this.defaultState.transitionDuration),this._hideAnimation&&(this._hideAnimation.kill(),this._hideAnimation=void 0),this._showHideDisposer&&this.removeDispose(this._showHideDisposer),this._isHidden=!1,this.isHiding=!1,this.isShowing=!0,(e=this.applyCurrentState(t))&&!e.isFinished()?(this._showHideDisposer=e.events.on("animationended",function(){i.isShowing=!1}),this._disposers.push(this._showHideDisposer)):this.isShowing=!1;var r=this.defaultState.properties.visible;D.hasValue(r)||(r=!0),this.visible=r,this.readerHidden=!1,this.dispatchImmediately("shown")}return e},e.prototype.hide=function(t){return this.hideReal(t)},e.prototype.hideReal=function(t){var e,i=this;if(!this.isHiding&&this.visible){this.hideTooltip(0),this._hideAnimation&&(this._hideAnimation.kill(),this._hideAnimation=void 0),this.isShowing=!1,this._showHideDisposer&&this.removeDispose(this._showHideDisposer);var n=this.hiddenState;n?(e=this.setState(n,t,void 0))&&!e.isFinished()?(this._hideAnimation=e,this._showHideDisposer=e.events.on("animationended",function(){i.isHiding=!1,i._isHidden=!0},this),this._disposers.push(this._showHideDisposer),this._disposers.push(e)):(this.isHiding=!1,this._isHidden=!0):(this.visible=!1,this.isHiding=!1,this._isHidden=!0),this.readerHidden=!0,this.dispatchImmediately("hidden"),this.invalidate()}return D.isNumber(t)||(t=this.hiddenState.transitionDuration),e},Object.defineProperty(e.prototype,"visible",{get:function(){return this.getVisibility()},set:function(t){t=D.toBoolean(t),this.setVisibility(t)},enumerable:!0,configurable:!0}),e.prototype.getVisibility=function(){var t=this.getPropertyValue("visible");return D.hasValue(t)||(t=!0),t},e.prototype.setVisibility=function(t){if(this.setPropertyValue("visible",t)&&(t?this.group.removeAttr("visibility"):this.group.attr({visibility:"hidden"}),this.events.isEnabled("visibilitychanged"))){var e={type:"visibilitychanged",target:this,visible:t};this.events.dispatchImmediately("visibilitychanged",e)}},Object.defineProperty(e.prototype,"zIndex",{get:function(){return this.getPropertyValue("zIndex")},set:function(t){t=D.toNumber(t),this.setPropertyValue("zIndex",t)&&this.dispatch("zIndexChanged")},enumerable:!0,configurable:!0}),e.prototype.toFront=function(){var t=this.parent;t&&t.children.indexOf(this)!=t.children.length-1&&(t.children.moveValue(this,t.children.length-1),this.dispatch("zIndexChanged"))},e.prototype.toBack=function(){var t=this.parent;t&&0!=t.children.indexOf(this)&&(t.children.moveValue(this,0),this.dispatch("zIndexChanged"))},Object.defineProperty(e.prototype,"tooltip",{get:function(){return this._tooltip?this._tooltip:this.virtualParent?this.virtualParent.tooltip:this.parent?this.parent.tooltip:void 0},set:function(t){this._tooltip&&this.removeDispose(this._tooltip),this._tooltip=t,t&&(t.parent=this.tooltipContainer)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipDataItem",{get:function(){var t=this._tooltipDataItem;return t||this.dataItem},set:function(t){this._tooltipDataItem=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipColorSource",{get:function(){return this._tooltipColorSource},set:function(t){this._tooltipColorSource=t},enumerable:!0,configurable:!0}),e.prototype.showTooltip=function(t){for(var e=this;void 0!=e;){if(!e.visible||e.disabled||e.__disabled)return;e=e.parent}if(D.hasValue(this.tooltipText)||D.hasValue(this.tooltipHTML)){var i=this.tooltip,n=this.tooltipDataItem;if(i){i.targetSprite=this;var r=this,o=this.tooltipColorSource;if((i.getStrokeFromObject||i.getFillFromObject)&&o&&(o.isTemplate?n&&j.eachContinue(n.sprites,function(t){return t.clonedFrom!=o||(r=t,!1)}):r=o),i.getStrokeFromObject){for(var a=this.stroke,s=r;void 0!=s.parent&&(void 0==(a=s.stroke)&&(s=s.parent),void 0==a););a instanceof y.a?i.background.animate({property:"stroke",to:a},i.animationDuration):i.background.stroke=a}if(i.dataItem=n,i.label.populateStringFrom=this,i.getFillFromObject){var u=this.fill;for(s=r;void 0!=s.parent;)if(void 0==(u=s.fill)||u instanceof y.a&&void 0==u.rgb)s=s.parent;else if(void 0!=u)break;void 0==u&&(u=Object(y.c)("#000000")),u instanceof y.a&&i.visible?i.background.animate({property:"fill",to:u},i.animationDuration):i.background.fill=u,i.autoTextColor&&u instanceof y.a&&(i.label.fill=u.alternative)}var l="";if(this.tooltipHTML&&(i.html=this.tooltipHTML,l=this.tooltipHTML),this.tooltipText&&(i.text=this.tooltipText,l=this.tooltipText),this.updateTooltipPosition(t)){if(i.readerDescribedBy=this.uidAttr(),i.label.invalid&&i.label.validate(),void 0!=l&&""!=l&&""!=i.label.currentText){i&&!i.parent&&(i.parent=this.tooltipContainer);var h=i.defaultState.transitionDuration;return h<=0&&(h=1),i.show(h),!0}}else this.hideTooltip(0)}}return!1},e.prototype.updateTooltipPosition=function(t){var e=this;if("pointer"!=this.tooltipPosition){var i=k.spritePointToSvg({x:this.tooltipX,y:this.tooltipY},this);return this.pointTooltipTo(i)}if(this._interactionDisposer&&this._interactionDisposer.dispose(),this._interactionDisposer=Object(b.b)().body.events.on("track",function(t){return e.pointTooltipTo(k.documentPointToSvg(t.point,e.svgContainer.SVGContainer,e.svgContainer.cssScale),!0)}),t)return this.pointTooltipTo(t,!0)},e.prototype.pointTooltipTo=function(t,e){var i=this.tooltip;return!(!i||!I.isInRectangle(t,{x:0,y:0,width:this.topParent.maxWidth,height:this.topParent.maxHeight}))&&(i.pointTo(t,e),!0)},e.prototype.hideTooltip=function(t){var e=this.tooltip;e&&(e.targetSprite==this&&(e.targetSprite=void 0),e.hide(t),this._interactionDisposer&&(this._interactionDisposer.dispose(),this._interactionDisposer=void 0))},Object.defineProperty(e.prototype,"tooltipHTML",{get:function(){return this.getPropertyValue("tooltipHTML")},set:function(t){t=D.toText(t),this.hoverable=!0,this.setPropertyValue("tooltipHTML",t)&&this.tooltip&&this.tooltip.visible&&this.showTooltip()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipText",{get:function(){return this.getPropertyValue("tooltipText")},set:function(t){(t=D.toText(t))&&(this.hoverable=!0),this.setPropertyValue("tooltipText",t)&&this.tooltip&&this.tooltip.visible&&this.showTooltip()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipContainer",{get:function(){return this._tooltipContainer?this._tooltipContainer:this.parent?this.parent.tooltipContainer:void 0},set:function(t){this._tooltipContainer=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipX",{get:function(){return this.getTooltipX()},set:function(t){t=D.toNumber(t),this.setPropertyValue("tooltipX",t)&&this.tooltip&&this.tooltip.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipPosition",{get:function(){return this.getPropertyValue("tooltipPosition")},set:function(t){this.setPropertyValue("tooltipPosition",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipY",{get:function(){return this.getTooltipY()},set:function(t){t=D.toNumber(t),this.setPropertyValue("tooltipY",t)&&this.tooltip&&this.tooltip.invalidate()},enumerable:!0,configurable:!0}),e.prototype.getTooltipX=function(){var t=this.getPropertyValue("tooltipX");return D.isNumber(t)||(t=this.maxLeft+this.measuredWidth/2-this.pixelPaddingLeft-this.ex),t},e.prototype.getTooltipY=function(){var t=this.getPropertyValue("tooltipY");return D.isNumber(t)||(t=this.maxTop+this.measuredHeight/2-this.pixelPaddingTop-this.ey),t},e.prototype.raiseCriticalError=function(t){this.svgContainer&&(this.modal.content=this.adapter.apply("criticalError",t).message,this.modal.closable=!1,this.modal.open(),this.disabled=!0),_.a.verbose&&console.log(t)},e.prototype.processConfig=function(e){e&&(D.hasValue(e.tooltipColorSource)&&D.isString(e.tooltipColorSource)&&this.map.hasKey(e.tooltipColorSource)&&(e.tooltipColorSource=this.map.getKey(e.tooltipColorSource)),D.hasValue(e.cursorOverStyle)&&D.isString(e.cursorOverStyle)&&(e.cursorOverStyle=this.getCursorStyle(e.cursorOverStyle)),D.hasValue(e.cursorDowntyle)&&D.isString(e.cursorDowntyle)&&(e.cursorDowntyle=this.getCursorStyle(e.cursorDowntyle)),D.hasValue(e.cursorOptions)&&(D.hasValue(e.cursorOptions.overStyle)&&D.isString(e.cursorOptions.overStyle)&&(e.cursorOptions.overStyle=this.getCursorStyle(e.cursorOptions.overStyle)),D.hasValue(e.cursorOptions.downStyle)&&D.isString(e.cursorOptions.downStyle)&&(e.cursorOptions.downStyle=this.getCursorStyle(e.cursorOptions.downStyle)))),t.prototype.processConfig.call(this,e)},e.prototype.getCursorStyle=function(t){switch(t){case"grab":return v.a.grab;case"grabbing":return v.a.grabbing;case"pointer":return v.a.pointer;case"horizontalResize":return v.a.horizontalResize;case"verticalResize":return v.a.verticalResize;default:return v.a.default}},e.prototype.configOrder=function(e,i){return e==i?0:"tooltipColorSource"==e?1:"tooltipColorSource"==i?-1:t.prototype.configOrder.call(this,e,i)},Object.defineProperty(e.prototype,"isHidden",{get:function(){return this._isHidden?this._isHidden:!!this._parent&&this._parent.isHidden},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showOnInit",{get:function(){return this.getPropertyValue("showOnInit")},set:function(t){t=D.toBoolean(t),this.setShowOnInit(t)},enumerable:!0,configurable:!0}),e.prototype.setShowOnInit=function(t){this.setPropertyValue("showOnInit",t)&&(this.isTemplate||(!t||this.inited||this.hidden?this._showOnInitDisposer&&this._showOnInitDisposer.dispose():(this._showOnInitDisposer=new h.c([x.b.events.once("enterframe",this.hideInitially,this),this.events.once("beforevalidated",this.hideInitially,this,!1),this.events.on("inited",this.appear,this,!1)]),this._disposers.push(this._showOnInitDisposer))))},e.prototype.hideInitially=function(){this.isDisposed()||(this.appeared=!1,this.inited||this.hide(0))},e.prototype.appear=function(){var t=this;if(this.appeared=!1,this.hidden||this.isHidden||this.hide(0),this.hidden)this.appeared=!0;else{var e=this.show();e&&!e.isFinished()?e.events.on("animationended",function(){t.appeared=!0}):this.appeared=!0}},Object.defineProperty(e.prototype,"hidden",{get:function(){return this.getPropertyValue("hidden")},set:function(t){t=D.toBoolean(t),this.setPropertyValue("hidden",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bbox",{get:function(){return this.definedBBox?this.definedBBox:this._bbox},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"plugins",{get:function(){var t=this;return this._plugins||(this._plugins=new l.b,this._disposers.push(this._plugins.events.on("inserted",function(e){e.newValue.target=t,e.newValue.init()})),this._disposers.push(new l.c(this._plugins))),this._plugins},enumerable:!0,configurable:!0}),e}(a.b);x.b.registeredClasses.Sprite=A},W0fk:function(t,e,i){var n=i("DvJ+");t.exports=function(t,e){if(!n(t))return t;var i,r;if(e&&"function"==typeof(i=t.toString)&&!n(r=i.call(t)))return r;if("function"==typeof(i=t.valueOf)&&!n(r=i.call(t)))return r;if(!e&&"function"==typeof(i=t.toString)&&!n(r=i.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},W8Sc:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("UsNi"),o=i("x79X"),a=function(t){function e(){var e=t.call(this)||this;return e.adapter=new o.a(e),e.className="Modal",e.showCurtain=!0,e.draggable=!1,e}return n.c(e,t),e}(r.a)},WXwQ:function(t,e,i){var n=i("Gb1H"),r=i("hcxM"),o=Math.abs;n(n.S,"Number",{isSafeInteger:function(t){return r(t)&&o(t)<=9007199254740991}})},WYhe:function(t,e,i){"use strict";i.d(e,"a",function(){return r}),i.d(e,"b",function(){return o});var n=i("Mtpk"),r=function(){function t(){}return t.prototype.getEventKey=function(t){var e;switch(t.keyCode||t.which){case 38:e="up";break;case 40:e="down";break;case 37:e="left";break;case 39:e="right";break;case 13:e="enter";break;case 27:e="esc";break;case 36:e="home";break;case 35:e="end";break;case 9:e="tab";break;case 17:e="ctrl";break;case 18:e="alt";break;case 16:e="shift";break;case 32:e="space";break;case 36:e="home";break;case 35:e="end";break;case 33:e="pgup";break;case 34:e="pgdn";break;case 45:e="ins";break;case 46:e="del";break;case 107:e="plus";break;case 109:e="minus";break;default:e="other"}return e},t.prototype.isKey=function(t,e){var i=this.getEventKey(t);return n.isString(e)&&(e=[e]),-1!==e.indexOf(i)},t.prototype.shiftKey=function(t){return t.shiftKey},t.prototype.ctrlKey=function(t){return t.ctrlKey},t.prototype.altKey=function(t){return t.altKey},t.prototype.metaKey=function(t){return t.metaKey},t}(),o=new r},Wbjh:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Wglt:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.fromArray=r,e.length=function(t){var e=0;return t(function(t){return++e,!0}),e},e.toArray=o,e.eachContinue=function(t,e){return t(e)},e.each=function(t,e){return t(function(t){return e(t),!0})},e.sort=function(t,e){return r(o(t).sort(e))},e.map=function(t,e){return function(i){return t(function(t){return i(e(t))})}},e.filter=function(t,e){return function(i){return t(function(t){return!e(t)||i(t)})}},e.concat=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e){for(var i=!0,n=function(t){return i=e(t)},r=t.length,o=0;o<r&&(t[o](n),i);++o);}},e.flatten=function(t){return function(e){var i=!0,n=function(t){return i=e(t)};return t(function(t){return t(n),i})}},e.indexed=function(t){return function(e){var i=0;return t(function(t){return e([i++,t])})}},e.findIndex=function(t,e){var i=!1,n=0;return t(function(t){return e(t)?(i=!0,!1):(++n,!0)}),i?n:-1},e.find=function(t,e){var i;return t(function(t){return!e(t)||(i=t,!1)}),i},e.findMap=function(t,e){var i;return t(function(t){var n=e(t);return null===n||(i=n,!1)}),i},e.contains=function(t,e){var i=!1;return t(function(t){return!e(t)||(i=!0,!1)}),i},e.foldl=a,e.min=function(t){return a(t,null,s)},e.max=function(t){return a(t,null,u)},e.join=function(t,e){void 0===e&&(e="");var i=!0,n="";return t(function(t){return i?i=!1:n+=e,n+=t,!0}),n},i.d(e,"ListIterator",function(){return l});var n=i("hJ5i");function r(t){return function(e){for(var i=t.length,n=0;n<i&&e(t[n]);++n);}}function o(t){var e=[];return t(function(t){return e.push(t),!0}),e}function a(t,e,i){return t(function(t){return e=i(e,t),!0}),e}function s(t,e){return null==t||e<t?e:t}function u(t,e){return null==t||e>t?e:t}var l=function(){function t(t,e){this.createNewItems=!1,this.list=t,this._create=e,this.reset()}return t.prototype.reset=function(){this._listCopy=o(this.list.iterator())},t.prototype.clear=function(){this._listCopy.length=0},t.prototype.getFirst=function(){return this.returnItem(0)},t.prototype.getLast=function(){return this.returnItem(this._listCopy.length-1)},t.prototype.find=function(t){var e=n.findIndex(this._listCopy,t);if(-1!==e){var i=this._listCopy[e];return n.remove(this._listCopy,i),i}return this.getLast()},t.prototype.removeItem=function(t){return n.remove(this._listCopy,t)},t.prototype.returnItem=function(t){if(t>=0&&t<this._listCopy.length){var e=this._listCopy[t];return n.remove(this._listCopy,e),e}if(this.createNewItems)return this._create()},t.prototype.iterator=function(){return r(this._listCopy)},t}()},WtL7:function(t,e,i){var n=i("hpnp");t.exports=function(t,e){var i=[];return n(t,!1,i.push,i,e),i}},X3ZK:function(t,e,i){i("3mH9")("Map")},XQMn:function(t,e,i){var n=i("Gb1H"),r=i("aPa3");n(n.S+n.F*(Number.parseFloat!=r),"Number",{parseFloat:r})},"XUg+":function(t,e,i){var n=i("Gb1H");n(n.S+n.F*!i("gD3S"),"Object",{defineProperty:i("hjwn").f})},XYQ1:function(t,e,i){var n=i("Gb1H");n(n.S+n.F*!i("gD3S"),"Object",{defineProperties:i("p3CN")})},Xf1i:function(t,e,i){var n=i("Gb1H"),r=i("eh+x"),o=i("kg8J");n(n.S,"Math",{fscale:function(t,e,i,n,a){return o(r(t,e,i,n,a))}})},Xt8l:function(t,e,i){"use strict";i("Mvcd")("italics",function(t){return function(){return t(this,"i","","")}})},Y9w3:function(t,e,i){"use strict";i.d(e,"a",function(){return x});var n=i("m4/l"),r=i("C6dT"),o=i("vMqJ"),a=i("VGgz"),s=i("+qIf"),u=i("hD5A"),l=i("EjGA"),h=i("TGuK"),c=i("Rpw0"),p=i("A6AV"),d=i("aCit"),f=i("Gg2j"),g=i("hJ5i"),m=i("0FpR"),y=i("v9UT"),b=i("Wglt"),v=i("Qkdp"),_=i("Mtpk"),x=function(t){function e(){var e=t.call(this)||this;return e.dataFields={},e._dataSources={},e._parseDataFrom=0,e._dataDisposers=[],e._start=0,e._end=1,e.skipRangeEvent=!1,e.rangeChangeDuration=0,e.rangeChangeEasing=m.cubicOut,e.parsingStepDuration=50,e.dataInvalid=!1,e.rawDataInvalid=!1,e.dataRangeInvalid=!1,e.dataItemsInvalid=!1,e.interpolationDuration=0,e.interpolationEasing=m.cubicOut,e.sequencedInterpolation=!0,e.sequencedInterpolationDelay=0,e.dataValidationProgress=0,e._addAllDataItems=!0,e.className="Component",e.minZoomCount=1,e._dataItems=new a.b(e.createDataItem()),e._dataItems.events.on("inserted",e.handleDataItemAdded,e,!1),e._dataItems.events.on("removed",e.handleDataItemRemoved,e,!1),e._disposers.push(new o.c(e._dataItems)),e._disposers.push(e._dataItems.template),e.invalidateData(),e.dataUsers.events.on("inserted",e.handleDataUserAdded,e,!1),e._disposers.push(new u.c(e._dataDisposers)),e._start=0,e._end=1,e.maxZoomDeclination=1,e.applyTheme(),e}return n.c(e,t),e.prototype.createDataItem=function(){return new p.a},e.prototype.handleDataUserAdded=function(t){t.newValue.dataProvider=this},e.prototype.handleDataItemValueChange=function(t,e){this.dataItemsInvalid||this.invalidateDataItems()},e.prototype.handleDataItemWorkingValueChange=function(t,e){},e.prototype.handleDataItemWorkingLocationChange=function(t,e){},e.prototype.handleDataItemCalculatedValueChange=function(t,e){},e.prototype.handleDataItemPropertyChange=function(t,e){},e.prototype.processDataItem=function(t,e){var i=this;if(t){e||(e={}),t.dataContext=e;var n=!1;v.each(this.dataFields,function(r,s){var u=r,l=e[s];if(i.adapter.isEnabled("dataContextValue")&&(l=i.adapter.apply("dataContextValue",{field:u,value:l,dataItem:t}).value),t.hasChildren[u]){if(_.hasValue(l)){n=!0;var h=new a.b(i.createDataItem());h.events.on("inserted",i.handleDataItemAdded,i,!1),h.events.on("removed",i.handleDataItemRemoved,i,!1),i._dataDisposers.push(new o.c(h));for(var c=l.length,p=0;p<c;p++){var d=l[p],f=h.create();f.parent=t,i.processDataItem(f,d)}t[u]=h}}else _.hasValue(l)&&(n=!0,t[u]=l)}),v.each(this.propertyFields,function(i,r){var o=i,a=e[r];_.hasValue(a)&&(n=!0,t.setProperty(o,a))}),this._addAllDataItems||n||this.dataItems.remove(t)}},e.prototype.updateDataItem=function(t){var e=this;if(t){var i=t.dataContext;v.each(this.dataFields,function(n,r){var o=n,a=i[r];if(a=e.adapter.apply("dataContextValue",{field:o,value:a,dataItem:t}).value,t.hasChildren[o]){if(a){var s=t[o];b.each(s.iterator(),function(t){e.updateDataItem(t)})}}else _.hasValue(a)&&(t[o]=a)}),v.each(this.propertyFields,function(e,n){var r=e,o=i[n];_.hasValue(o)&&t.setProperty(r,o)})}},e.prototype.validateDataElements=function(){for(var t=this.endIndex,e=this.startIndex;e<t;e++){var i=this.dataItems.getIndex(e);i&&this.validateDataElement(i)}},e.prototype.validate=function(){this.validateDataElements(),t.prototype.validate.call(this)},e.prototype.validateDataElement=function(t){},e.prototype.addData=function(t,e){var i=this;this.dataInvalid||(this._parseDataFrom=this.data.length),t instanceof Array?g.each(t,function(t){i.data.push(t)}):this.data.push(t),this.removeData(e),this.invalidateData()},e.prototype.removeData=function(t){if(_.isNumber(t))for(;t>0;){var e=this.dataItems.getIndex(0);e&&this.dataItems.remove(e),this.dataUsers.each(function(t){var e=t.dataItems.getIndex(0);e&&t.dataItems.remove(e)}),this.data.shift(),this._parseDataFrom--,t--}},e.prototype.invalidateData=function(){this.disabled||this.isTemplate||(d.b.addToInvalidComponents(this),c.b.requestFrame(),this.dataInvalid=!0,b.each(this.dataUsers.iterator(),function(t){t.invalidateDataItems()}))},e.prototype.invalidateDataUsers=function(){b.each(this.dataUsers.iterator(),function(t){t.invalidate()})},e.prototype.invalidateDataItems=function(){this.disabled||this.isTemplate||(g.move(d.b.invalidDataItems,this),c.b.requestFrame(),this.dataItemsInvalid=!0,b.each(this.dataUsers.iterator(),function(t){t.invalidateDataItems()}))},e.prototype.invalidateDataRange=function(){this.disabled||this.isTemplate||(this.dataRangeInvalid=!0,g.move(d.b.invalidDataRange,this),c.b.requestFrame())},e.prototype.validateDataRange=function(){g.remove(d.b.invalidDataRange,this),this.dataRangeInvalid=!1,this.startIndex==this._prevStartIndex&&this.endIndex==this._prevEndIndex||(this.rangeChangeUpdate(),this.appendDataItems(),this.invalidate(),this.dispatchImmediately("datarangechanged"))},e.prototype.sliceData=function(){this._workingStartIndex=this.startIndex,this._workingEndIndex=this.endIndex},e.prototype.rangeChangeUpdate=function(){this.sliceData(),this._prevStartIndex=this.startIndex,this._prevEndIndex=this.endIndex},e.prototype.appendDataItems=function(){for(var t=this.endIndex,e=this.startIndex;e<t;e++){(i=this.dataItems.getIndex(e))&&(i.__disabled=!1)}for(e=0;e<this.startIndex;e++){(i=this.dataItems.getIndex(e)).__disabled=!0}for(e=this.endIndex;e<this.dataItems.length;e++){var i;(i=this.dataItems.getIndex(e)).__disabled=!0}},e.prototype.invalidateRawData=function(){this.disabled||this.isTemplate||(g.move(d.b.invalidRawDatas,this),c.b.requestFrame(),this.rawDataInvalid=!0,b.each(this.dataUsers.iterator(),function(t){t.invalidateRawData()}))},e.prototype.validateRawData=function(){var t=this;g.remove(d.b.invalidRawDatas,this),b.each(this.dataItems.iterator(),function(e){e&&t.updateDataItem(e)})},e.prototype.disposeData=function(){this.inited&&(g.each(this._dataDisposers,function(t){t.dispose()}),b.each(this.dataUsers.iterator(),function(t){t.disposeData()}),this._dataDisposers.length=0,this._startIndex=void 0,this._endIndex=void 0,this.dataItems.clear())},e.prototype.validateData=function(){if(this.dispatchImmediately("beforedatavalidated"),this.dataInvalid=!1,d.b.removeFromInvalidComponents(this),this.dataValidationProgress=0,this._prevStartIndex=void 0,this._prevEndIndex=void 0,this._startIndex=void 0,this._endIndex=void 0,this.dataFields.data&&this.dataItem){var t=this.dataItem.dataContext;this._data=t[this.dataFields.data]}if(0===this._parseDataFrom&&this.data.length>0&&this.disposeData(),this.data.length>0){var e=this.preloader;b.each(this.dataUsers.iterator(),function(t){t._startIndex=void 0,t._endIndex=void 0});for(var i=0,n=Date.now(),r=this._parseDataFrom,o=this.data.length,a=function(){var t=s.data[r],o=s.dataItems.create();if((s.processDataItem(o,t),s.dataUsers.each(function(e){if(0==e.data.length){var i=e.dataItems.create();e.processDataItem(i,t)}}),100==++i)&&(i=0,Date.now()-n>s.parsingStepDuration&&r<s.data.length-10))return s._parseDataFrom=r+1,e&&(r/s.data.length>.5&&!e.visible||(e.progress=r/s.data.length)),s.dataValidationProgress=r/s.data.length,r=s.data.length,s.invalidateData(),{value:void 0}},s=this;r<o;r++){var u=a();if("object"==typeof u)return u.value}e&&(e.progress=1)}this.dataValidationProgress=1,this._parseDataFrom=0,this.invalidateDataItems(),this._internalDefaultsApplied||this.applyInternalDefaults(),this.dispatch("datavalidated")},e.prototype.validateDataItems=function(){g.remove(d.b.invalidDataItems,this),this.dataItemsInvalid=!1,this.invalidateDataRange(),this.invalidate(),this.dispatch("dataitemsvalidated")},Object.defineProperty(e.prototype,"data",{get:function(){return this._data||(this._data=[]),this.adapter.apply("data",this._data)},set:function(t){this.disposeData(),this._data=t,t&&t.length>0&&this.invalidateData()},enumerable:!0,configurable:!0}),e.prototype.getDataSource=function(t){var e=this;return _.hasValue(this._dataSources[t])||(this._dataSources[t]=new l.a,this._dataSources[t].component=this,this.setDataSourceEvents(this._dataSources[t],t),this._dataSources[t].adapter.add("dateFields",function(t){return e.dataSourceDateFields(t)}),this._dataSources[t].adapter.add("numberFields",function(t){return e.dataSourceNumberFields(t)}),this.events.on("inited",function(){e.loadData(t)},this,!1)),this._dataSources[t]},Object.defineProperty(e.prototype,"dataSource",{get:function(){return this._dataSources.data||this.getDataSource("data"),this._dataSources.data},set:function(t){var e=this;this._dataSources.data&&this.removeDispose(this._dataSources.data),this._dataSources.data=t,this._dataSources.data.component=this,this.events.on("inited",function(){e.loadData("data")},this,!1),this.setDataSourceEvents(t,"data")},enumerable:!0,configurable:!0}),e.prototype.loadData=function(t){this._dataSources[t].load()},e.prototype.dataSourceDateFields=function(t){return t},e.prototype.dataSourceNumberFields=function(t){return t},e.prototype.populateDataSourceFields=function(t,e,i){return g.each(i,function(i){e[i]&&-1===g.indexOf(t,e[i])&&t.push(e[i])}),t},e.prototype.setDataSourceEvents=function(t,e){var i=this;t.events.on("started",function(t){var e=i.preloader;e&&(e.progress=0)},void 0,!1),t.events.on("loadstarted",function(t){var e=i.preloader;e&&(e.progress=.25)},void 0,!1),t.events.on("loadended",function(t){var e=i.preloader;e&&(e.progress=.5)},void 0,!1),t.events.on("parseended",function(t){var e=i.preloader;e&&(e.progress=.75)},void 0,!1),t.events.on("ended",function(t){var e=i.preloader;e&&(e.progress=1)},void 0,!1),t.events.on("error",function(t){var e=i.preloader;e&&(e.progress=1),i.openModal(t.message)},void 0,!1),e&&t.events.on("done",function(n){var r=i.preloader;r&&(r.progress=1),"data"!=e||_.isArray(n.data)||(n.data=[n.data]),t.incremental&&"data"==e&&i.data.length?i.addData(n.data,t.keepCount?n.data.length:0):i[e]=n.data})},Object.defineProperty(e.prototype,"responsive",{get:function(){return this._responsive||(this._responsive=new h.a,this._responsive.component=this),this._responsive},set:function(t){this._responsive=t,this._responsive.component=this},enumerable:!0,configurable:!0}),e.prototype.zoom=function(t,e,i,n){var r=this;void 0===e&&(e=!1),void 0===i&&(i=!1);var o=t.start,a=t.end,s=t.priority;if(_.isNumber(n)||(n=this.maxZoomDeclination),!_.isNumber(o)||!_.isNumber(a))return{start:this.start,end:this.end};if(this._finalStart!=o||this._finalEnd!=a){var u=this.maxZoomFactor/this.minZoomCount;if("start"==s?(1/(a-o)>u&&(a=o+1/u),a>1&&a-o<1/u&&(o=a-1/u)):(1/(a-o)>u&&(o=a-1/u),o<0&&a-o<1/u&&(a=o+1/u)),o<-n&&(o=-n),1/(a-o)>u&&(a=o+1/u),a>1+n&&(a=1+n),1/(a-o)>u&&(o=a-1/u),this._finalEnd=a,this._finalStart=o,this.skipRangeEvent=e,this.rangeChangeDuration>0&&!i){var l=this.rangeChangeAnimation;if(l&&l.progress<1){var h=l.animationOptions;if(h.length>1&&h[0].to==o&&h[1].to==a)return{start:o,end:a}}this.dispatchImmediately("rangechangestarted"),this.rangeChangeAnimation&&this.rangeChangeAnimation.kill(),l=this.animate([{property:"start",to:o},{property:"end",to:a}],this.rangeChangeDuration,this.rangeChangeEasing),this.rangeChangeAnimation=l,l&&!l.isFinished()?l.events.on("animationended",function(){r.dispatchImmediately("rangechangeended")}):this.dispatchImmediately("rangechangeended")}else this.start=o,this.end=a}return{start:o,end:a}},e.prototype.zoomToIndexes=function(t,e,i,n){if(_.isNumber(t)&&_.isNumber(e)){var r=t/this.dataItems.length,o=e/this.dataItems.length;this.zoom({start:r,end:o},i,n)}},Object.defineProperty(e.prototype,"zoomFactor",{get:function(){return f.fitToRange(1/(this.end-this.start),1,this.maxZoomFactor)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxZoomFactor",{get:function(){return this.getPropertyValue("maxZoomFactor")},set:function(t){this.setPropertyValue("maxZoomFactor",t)&&(1==t&&(this.maxZoomDeclination=0),this.invalidateDataRange())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxZoomDeclination",{get:function(){return this.getPropertyValue("maxZoomDeclination")},set:function(t){this.setPropertyValue("maxZoomDeclination",t)&&this.invalidateDataRange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startIndex",{get:function(){return _.isNumber(this._startIndex)||(this._startIndex=0),this._startIndex},set:function(t){this._startIndex=f.fitToRange(Math.round(t),0,this.dataItems.length),this.start=this.indexToPosition(this._startIndex)},enumerable:!0,configurable:!0}),e.prototype.indexToPosition=function(t){return t/this.dataItems.length},Object.defineProperty(e.prototype,"endIndex",{get:function(){return _.isNumber(this._endIndex)||(this._endIndex=this.dataItems.length),this._endIndex},set:function(t){this._endIndex=f.fitToRange(Math.round(t),0,this.dataItems.length),this.end=this.indexToPosition(this._endIndex)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"start",{get:function(){return this._start},set:function(t){if(this._start!=t){this._start=t;var e=Math.max(0,Math.floor(this.dataItems.length*t)||0);this._startIndex=Math.min(e,this.dataItems.length),this.invalidateDataRange(),this.invalidate(),this.dispatchImmediately("startchanged")}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"end",{get:function(){return this._end},set:function(t){this._end!=t&&(this._end=t,this._endIndex=Math.min(this.dataItems.length,Math.ceil(this.dataItems.length*t)||0),this.invalidateDataRange(),this.invalidate(),this.dispatchImmediately("endchanged"))},enumerable:!0,configurable:!0}),e.prototype.removeFromInvalids=function(){t.prototype.removeFromInvalids.call(this),d.b.removeFromInvalidComponents(this),g.remove(d.b.invalidDataItems,this),g.remove(d.b.invalidDataRange,this),g.remove(d.b.invalidRawDatas,this)},Object.defineProperty(e.prototype,"dataItems",{get:function(){return this._dataItems},enumerable:!0,configurable:!0}),e.prototype._updateDataItemIndexes=function(t){for(var e=this.dataItems.values,i=e.length,n=t;n<i;++n)e[n]._index=n},e.prototype.handleDataItemAdded=function(t){t.newValue.component=this,this._updateDataItemIndexes(t.index),this.dataItemsInvalid||this.invalidateDataItems()},e.prototype.handleDataItemRemoved=function(t){this._updateDataItemIndexes(t.index),this.dataItemsInvalid||this.invalidateDataItems()},Object.defineProperty(e.prototype,"dataMethods",{get:function(){return this._dataMethods||(this._dataMethods=new s.a),this._dataMethods},enumerable:!0,configurable:!0}),e.prototype.bindDataField=function(t,e){this.dataFields[t]=e,this.invalidateDataRange()},e.prototype.invalidateProcessedData=function(){this.resetProcessedRange(),this.invalidateDataRange()},e.prototype.resetProcessedRange=function(){this._prevEndIndex=null,this._prevStartIndex=null},Object.defineProperty(e.prototype,"dataUsers",{get:function(){var t=this;return this._dataUsers||(this._dataUsers=new o.b,this._disposers.push(new u.b(function(){b.each(t._dataUsers.iterator(),function(t){t.dispose()})}))),this._dataUsers},enumerable:!0,configurable:!0}),e.prototype.clone=function(){var e=t.prototype.clone.call(this);return e.dataFields=y.copyProperties(this.dataFields,{}),e},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.data=e.data,this.sequencedInterpolation=e.sequencedInterpolation,this.sequencedInterpolationDelay=e.sequencedInterpolationDelay,this.interpolationDuration=e.interpolationDuration,this.interpolationEasing=e.interpolationEasing},e.prototype.reinit=function(){this._inited=!1,this.deepInvalidate()},e.prototype.getExporting=function(){var e=t.prototype.getExporting.call(this);return e.adapter.has("data",this._exportData,null,this)||(e.adapter.add("data",this._exportData,null,this),this.events.on("datavalidated",function(t){e.menu&&e.menu.invalidate(),e.handleDataUpdated()})),e},e.prototype._exportData=function(t){return t.data=this.data,t},e.prototype.setDisabled=function(e){var i=t.prototype.setDisabled.call(this,e);return i&&this.invalidateData(),i},e.prototype.setShowOnInit=function(e){e!=this.getPropertyValue("showOnInit")&&(!e||this.inited||this.hidden?this._showOnInitDisposer2&&this._showOnInitDisposer2.dispose():(this._showOnInitDisposer2=this.events.once("dataitemsvalidated",this.hideInitially,this,!1),this._disposers.push(this._showOnInitDisposer2))),t.prototype.setShowOnInit.call(this,e)},e.prototype.setBaseId=function(e){e!=this._baseId&&this.dataInvalid&&(this.dataInvalid=!1,d.b.removeFromInvalidComponents(this),this._baseId=e,this.invalidateData()),t.prototype.setBaseId.call(this,e)},Object.defineProperty(e.prototype,"minZoomCount",{get:function(){return this.getPropertyValue("minZoomCount")},set:function(t){this.setPropertyValue("minZoomCount",t)},enumerable:!0,configurable:!0}),e}(r.a)},YDsm:function(t,e,i){"use strict";var n=i("T9LF"),r=i("U3hN"),o=i("gD3S"),a=i("Gb1H"),s=i("wDk4"),u=i("kFp5").KEY,l=i("AEc5"),h=i("OB1/"),c=i("bPwn"),p=i("7bL/"),d=i("YEtG"),f=i("xxwE"),g=i("xdw4"),m=i("G0iN"),y=i("kHwJ"),b=i("snR7"),v=i("DvJ+"),_=i("EhJv"),x=i("W0fk"),P=i("Wbjh"),w=i("5+SK"),O=i("8rbL"),S=i("nHHr"),T=i("hjwn"),C=i("3BzE"),k=S.f,I=T.f,M=O.f,j=n.Symbol,V=n.JSON,D=V&&V.stringify,E=d("_hidden"),F=d("toPrimitive"),N={}.propertyIsEnumerable,R=h("symbol-registry"),A=h("symbols"),L=h("op-symbols"),H=Object.prototype,B="function"==typeof j,G=n.QObject,W=!G||!G.prototype||!G.prototype.findChild,z=o&&l(function(){return 7!=w(I({},"a",{get:function(){return I(this,"a",{value:7}).a}})).a})?function(t,e,i){var n=k(H,e);n&&delete H[e],I(t,e,i),n&&t!==H&&I(H,e,n)}:I,U=function(t){var e=A[t]=w(j.prototype);return e._k=t,e},Y=B&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},X=function(t,e,i){return t===H&&X(L,e,i),b(t),e=x(e,!0),b(i),r(A,e)?(i.enumerable?(r(t,E)&&t[E][e]&&(t[E][e]=!1),i=w(i,{enumerable:P(0,!1)})):(r(t,E)||I(t,E,P(1,{})),t[E][e]=!0),z(t,e,i)):I(t,e,i)},K=function(t,e){b(t);for(var i,n=m(e=_(e)),r=0,o=n.length;o>r;)X(t,i=n[r++],e[i]);return t},J=function(t){var e=N.call(this,t=x(t,!0));return!(this===H&&r(A,t)&&!r(L,t))&&(!(e||!r(this,t)||!r(A,t)||r(this,E)&&this[E][t])||e)},Z=function(t,e){if(t=_(t),e=x(e,!0),t!==H||!r(A,e)||r(L,e)){var i=k(t,e);return!i||!r(A,e)||r(t,E)&&t[E][e]||(i.enumerable=!0),i}},q=function(t){for(var e,i=M(_(t)),n=[],o=0;i.length>o;)r(A,e=i[o++])||e==E||e==u||n.push(e);return n},Q=function(t){for(var e,i=t===H,n=M(i?L:_(t)),o=[],a=0;n.length>a;)!r(A,e=n[a++])||i&&!r(H,e)||o.push(A[e]);return o};B||(s((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(i){this===H&&e.call(L,i),r(this,E)&&r(this[E],t)&&(this[E][t]=!1),z(this,t,P(1,i))};return o&&W&&z(H,t,{configurable:!0,set:e}),U(t)}).prototype,"toString",function(){return this._k}),S.f=Z,T.f=X,i("rkh7").f=O.f=q,i("eBSV").f=J,i("pmYy").f=Q,o&&!i("pb4Y")&&s(H,"propertyIsEnumerable",J,!0),f.f=function(t){return U(d(t))}),a(a.G+a.W+a.F*!B,{Symbol:j});for(var $="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;$.length>tt;)d($[tt++]);for(var et=C(d.store),it=0;et.length>it;)g(et[it++]);a(a.S+a.F*!B,"Symbol",{for:function(t){return r(R,t+="")?R[t]:R[t]=j(t)},keyFor:function(t){if(!Y(t))throw TypeError(t+" is not a symbol!");for(var e in R)if(R[e]===t)return e},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!B,"Object",{create:function(t,e){return void 0===e?w(t):K(w(t),e)},defineProperty:X,defineProperties:K,getOwnPropertyDescriptor:Z,getOwnPropertyNames:q,getOwnPropertySymbols:Q}),V&&a(a.S+a.F*(!B||l(function(){var t=j();return"[null]"!=D([t])||"{}"!=D({a:t})||"{}"!=D(Object(t))})),"JSON",{stringify:function(t){for(var e,i,n=[t],r=1;arguments.length>r;)n.push(arguments[r++]);if(i=e=n[1],(v(e)||void 0!==t)&&!Y(t))return y(e)||(e=function(t,e){if("function"==typeof i&&(e=i.call(this,t,e)),!Y(e))return e}),n[1]=e,D.apply(V,n)}}),j.prototype[F]||i("Vng0")(j.prototype,F,j.prototype.valueOf),c(j,"Symbol"),c(Math,"Math",!0),c(n.JSON,"JSON",!0)},YEtG:function(t,e,i){var n=i("OB1/")("wks"),r=i("7bL/"),o=i("T9LF").Symbol,a="function"==typeof o;(t.exports=function(t){return n[t]||(n[t]=a&&o[t]||(a?o:r)("Symbol."+t))}).store=n},YF4K:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{DEG_PER_RAD:Math.PI/180})},YJIw:function(t,e,i){"use strict";if(i("gD3S")){var n=i("pb4Y"),r=i("T9LF"),o=i("AEc5"),a=i("Gb1H"),s=i("xSzy"),u=i("LNZc"),l=i("20m4"),h=i("ypVE"),c=i("Wbjh"),p=i("Vng0"),d=i("cA+3"),f=i("4BRe"),g=i("FmWr"),m=i("bytU"),y=i("UwWU"),b=i("W0fk"),v=i("U3hN"),_=i("MfZA"),x=i("DvJ+"),P=i("vJiZ"),w=i("a8UT"),O=i("5+SK"),S=i("K0ev"),T=i("rkh7").f,C=i("iOZG"),k=i("7bL/"),I=i("YEtG"),M=i("dstF"),j=i("mntN"),V=i("QXbb"),D=i("2/6D"),E=i("9BM3"),F=i("ID9o"),N=i("vdWU"),R=i("lgQj"),A=i("y2pX"),L=i("hjwn"),H=i("nHHr"),B=L.f,G=H.f,W=r.RangeError,z=r.TypeError,U=r.Uint8Array,Y=Array.prototype,X=u.ArrayBuffer,K=u.DataView,J=M(0),Z=M(2),q=M(3),Q=M(4),$=M(5),tt=M(6),et=j(!0),it=j(!1),nt=D.values,rt=D.keys,ot=D.entries,at=Y.lastIndexOf,st=Y.reduce,ut=Y.reduceRight,lt=Y.join,ht=Y.sort,ct=Y.slice,pt=Y.toString,dt=Y.toLocaleString,ft=I("iterator"),gt=I("toStringTag"),mt=k("typed_constructor"),yt=k("def_constructor"),bt=s.CONSTR,vt=s.TYPED,_t=s.VIEW,xt=M(1,function(t,e){return Tt(V(t,t[yt]),e)}),Pt=o(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),wt=!!U&&!!U.prototype.set&&o(function(){new U(1).set({})}),Ot=function(t,e){var i=f(t);if(i<0||i%e)throw W("Wrong offset!");return i},St=function(t){if(x(t)&&vt in t)return t;throw z(t+" is not a typed array!")},Tt=function(t,e){if(!(x(t)&&mt in t))throw z("It is not a typed array constructor!");return new t(e)},Ct=function(t,e){return kt(V(t,t[yt]),e)},kt=function(t,e){for(var i=0,n=e.length,r=Tt(t,n);n>i;)r[i]=e[i++];return r},It=function(t,e,i){B(t,e,{get:function(){return this._d[i]}})},Mt=function(t){var e,i,n,r,o,a,s=P(t),u=arguments.length,h=u>1?arguments[1]:void 0,c=void 0!==h,p=C(s);if(void 0!=p&&!w(p)){for(a=p.call(s),n=[],e=0;!(o=a.next()).done;e++)n.push(o.value);s=n}for(c&&u>2&&(h=l(h,arguments[2],2)),e=0,i=g(s.length),r=Tt(this,i);i>e;e++)r[e]=c?h(s[e],e):s[e];return r},jt=function(){for(var t=0,e=arguments.length,i=Tt(this,e);e>t;)i[t]=arguments[t++];return i},Vt=!!U&&o(function(){dt.call(new U(1))}),Dt=function(){return dt.apply(Vt?ct.call(St(this)):St(this),arguments)},Et={copyWithin:function(t,e){return A.call(St(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return Q(St(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return R.apply(St(this),arguments)},filter:function(t){return Ct(this,Z(St(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return $(St(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(St(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){J(St(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return it(St(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(St(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return lt.apply(St(this),arguments)},lastIndexOf:function(t){return at.apply(St(this),arguments)},map:function(t){return xt(St(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return st.apply(St(this),arguments)},reduceRight:function(t){return ut.apply(St(this),arguments)},reverse:function(){for(var t,e=St(this).length,i=Math.floor(e/2),n=0;n<i;)t=this[n],this[n++]=this[--e],this[e]=t;return this},some:function(t){return q(St(this),t,arguments.length>1?arguments[1]:void 0)},sort:function(t){return ht.call(St(this),t)},subarray:function(t,e){var i=St(this),n=i.length,r=y(t,n);return new(V(i,i[yt]))(i.buffer,i.byteOffset+r*i.BYTES_PER_ELEMENT,g((void 0===e?n:y(e,n))-r))}},Ft=function(t,e){return Ct(this,ct.call(St(this),t,e))},Nt=function(t){St(this);var e=Ot(arguments[1],1),i=this.length,n=P(t),r=g(n.length),o=0;if(r+e>i)throw W("Wrong length!");for(;o<r;)this[e+o]=n[o++]},Rt={entries:function(){return ot.call(St(this))},keys:function(){return rt.call(St(this))},values:function(){return nt.call(St(this))}},At=function(t,e){return x(t)&&t[vt]&&"symbol"!=typeof e&&e in t&&String(+e)==String(e)},Lt=function(t,e){return At(t,e=b(e,!0))?c(2,t[e]):G(t,e)},Ht=function(t,e,i){return!(At(t,e=b(e,!0))&&x(i)&&v(i,"value"))||v(i,"get")||v(i,"set")||i.configurable||v(i,"writable")&&!i.writable||v(i,"enumerable")&&!i.enumerable?B(t,e,i):(t[e]=i.value,t)};bt||(H.f=Lt,L.f=Ht),a(a.S+a.F*!bt,"Object",{getOwnPropertyDescriptor:Lt,defineProperty:Ht}),o(function(){pt.call({})})&&(pt=dt=function(){return lt.call(this)});var Bt=d({},Et);d(Bt,Rt),p(Bt,ft,Rt.values),d(Bt,{slice:Ft,set:Nt,constructor:function(){},toString:pt,toLocaleString:Dt}),It(Bt,"buffer","b"),It(Bt,"byteOffset","o"),It(Bt,"byteLength","l"),It(Bt,"length","e"),B(Bt,gt,{get:function(){return this[vt]}}),t.exports=function(t,e,i,u){var l=t+((u=!!u)?"Clamped":"")+"Array",c="get"+t,d="set"+t,f=r[l],y=f||{},b=f&&S(f),v=!f||!s.ABV,P={},w=f&&f.prototype,C=function(t,i){B(t,i,{get:function(){return function(t,i){var n=t._d;return n.v[c](i*e+n.o,Pt)}(this,i)},set:function(t){return function(t,i,n){var r=t._d;u&&(n=(n=Math.round(n))<0?0:n>255?255:255&n),r.v[d](i*e+r.o,n,Pt)}(this,i,t)},enumerable:!0})};v?(f=i(function(t,i,n,r){h(t,f,l,"_d");var o,a,s,u,c=0,d=0;if(x(i)){if(!(i instanceof X||"ArrayBuffer"==(u=_(i))||"SharedArrayBuffer"==u))return vt in i?kt(f,i):Mt.call(f,i);o=i,d=Ot(n,e);var y=i.byteLength;if(void 0===r){if(y%e)throw W("Wrong length!");if((a=y-d)<0)throw W("Wrong length!")}else if((a=g(r)*e)+d>y)throw W("Wrong length!");s=a/e}else s=m(i),o=new X(a=s*e);for(p(t,"_d",{b:o,o:d,l:a,e:s,v:new K(o)});c<s;)C(t,c++)}),w=f.prototype=O(Bt),p(w,"constructor",f)):o(function(){f(1)})&&o(function(){new f(-1)})&&F(function(t){new f,new f(null),new f(1.5),new f(t)},!0)||(f=i(function(t,i,n,r){var o;return h(t,f,l),x(i)?i instanceof X||"ArrayBuffer"==(o=_(i))||"SharedArrayBuffer"==o?void 0!==r?new y(i,Ot(n,e),r):void 0!==n?new y(i,Ot(n,e)):new y(i):vt in i?kt(f,i):Mt.call(f,i):new y(m(i))}),J(b!==Function.prototype?T(y).concat(T(b)):T(y),function(t){t in f||p(f,t,y[t])}),f.prototype=w,n||(w.constructor=f));var k=w[ft],I=!!k&&("values"==k.name||void 0==k.name),M=Rt.values;p(f,mt,!0),p(w,vt,l),p(w,_t,!0),p(w,yt,f),(u?new f(1)[gt]==l:gt in w)||B(w,gt,{get:function(){return l}}),P[l]=f,a(a.G+a.W+a.F*(f!=y),P),a(a.S,l,{BYTES_PER_ELEMENT:e}),a(a.S+a.F*o(function(){y.of.call(f,1)}),l,{from:Mt,of:jt}),"BYTES_PER_ELEMENT"in w||p(w,"BYTES_PER_ELEMENT",e),a(a.P,l,Et),N(l),a(a.P+a.F*wt,l,{set:Nt}),a(a.P+a.F*!I,l,Rt),n||w.toString==pt||(w.toString=pt),a(a.P+a.F*o(function(){new f(1).slice()}),l,{slice:Ft}),a(a.P+a.F*(o(function(){return[1,2].toLocaleString()!=new f([1,2]).toLocaleString()})||!o(function(){w.toLocaleString.call([1,2])})),l,{toLocaleString:Dt}),E[l]=I?k:M,n||I||p(w,ft,M)}}else t.exports=function(){}},Ybtf:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("FzPm"),o=i("aCit"),a=function(t){function e(){var e=t.call(this)||this;return e.className="Ellipse",e.element=e.paper.add("ellipse"),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this),this.element.attr({rx:this.radius}),this.element.attr({ry:this.radiusY})},Object.defineProperty(e.prototype,"radiusY",{get:function(){return this.innerHeight/2},set:function(t){this.height=2*t,this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.innerWidth/2},set:function(t){this.width=2*t,this.invalidate()},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.Ellipse=a},YnyG:function(t,e,i){var n=i("Gb1H"),r=i("K0ev"),o=i("snR7");n(n.S,"Reflect",{getPrototypeOf:function(t){return r(o(t))}})},YotE:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("o0Lc"),o=i("hD5A"),a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._domEvents={},e}return n.c(e,t),e.prototype._addDOMEvent=function(t,e,i,n){var r=this;if(!this._domEvents[t]){var a=function(t){i.call(n,e,t)};this.target.element.addEventListener(t,a,!1),this._domEvents[t]=new o.a(function(){delete r._domEvents[t],r.target.element.removeEventListener(t,a,!1)})}return this._domEvents[t].increment()},e.prototype._dispatchKeyboardEvent=function(t,e){this.target.events.isEnabled(t)&&this.target.events.dispatchImmediately(t,{type:t,target:this.target,event:e})},e.prototype._on=function(e,i,n,r,a,s){var u=t.prototype._on.call(this,e,i,n,r,a,s),l=[u.disposer];switch(i){case"hit":case"doublehit":case"rightclick":case"down":case"up":this.target.clickable=!0;break;case"drag":case"dragstart":case"dragstop":this.target.draggable=!0;break;case"track":this.target.trackable=!0;break;case"resize":this.target.resizable=!0;break;case"swipe":case"swipeleft":case"swiperight":this.target.swipeable=!0;break;case"wheel":case"wheelup":case"wheeldown":case"wheelleft":case"wheelright":this.target.wheelable=!0;break;case"over":case"out":this.target.hoverable=!0;break;case"focus":case"blur":case"focusin":case"focusout":this.target.focusable=!0;break;case"keydown":case"keyup":case"keypress":case"input":l.push(this._addDOMEvent(i,i,this._dispatchKeyboardEvent,this))}return u.disposer=new o.c(l),u},e}(r.b)},YxCF:function(t,e,i){"use strict";var n=i("oGmz")(!0);t.exports=function(t,e,i){return e+(i?n(t,e).length:1)}},ZLF9:function(t,e,i){"use strict";i.d(e,"a",function(){return d});var n=i("m4/l"),r=i("Tjl+"),o=i("P7v+"),a=i("vMqJ"),s=i("1yyj"),u=i("aCit"),l=i("MIZb"),h=i("Wglt"),c=i("Qkdp"),p=i("Mtpk"),d=function(t){function e(){var e=t.call(this)||this;e._elements=new a.b,e.properties={},e.className="Pattern",e.width=10,e.height=10,e.x=0,e.y=0,e.patternUnits="userSpaceOnUse";var i=new l.a;return e.backgroundFill=i.getFor("background"),e.backgroundOpacity=0,e.fillOpacity=1,e.fill=i.getFor("alternativeBackground"),e.stroke=i.getFor("alternativeBackground"),e.strokeOpacity=1,e.strokeWidth=1,e.shapeRendering="crispEdges",e.rotation=0,e.element=e.paper.addGroup("pattern"),e.id="pattern-"+u.b.getUniqueId(),e.element.attr({id:e.id}),e._disposers.push(e.element),e._disposers.push(new a.c(e._elements)),e.patternUnits=e.patternUnits,e.width=e.width,e.height=e.height,e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){var t=this,e=this.element;if(e){e.removeChildNodes();var i=this.paper.add("rect");i.attr({width:this.width,height:this.height,"shape-rendering":"crispEdges",fill:this.backgroundFill.hex,"fill-opacity":this.backgroundOpacity,stroke:this.backgroundFill.hex,"stroke-opacity":this.backgroundOpacity}),e.add(i),e.attr({x:this.x,y:this.y,width:this.width,height:this.height,stroke:this.stroke.hex,fill:this.fill.hex,"fill-opacity":this.fillOpacity,"stroke-opacity":this.strokeOpacity,"stroke-width":this.strokeWidth,"shape-rendering":this.shapeRendering,patternUnits:this.patternUnits}),h.each(this._elements.iterator(),function(e){e.rotation=t.rotation,t.element.add(e)})}},e.prototype.animate=function(t,e,i){return new s.a(this,t,e,i).start()},e.prototype.addElement=function(t){this._elements.push(t),this._disposers.push(t)},e.prototype.removeElement=function(t){this._elements.removeValue(t),this.removeDispose(t)},Object.defineProperty(e.prototype,"elements",{get:function(){return this._elements},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fillOpacity",{get:function(){return this.properties.fillOpacity},set:function(t){this.properties.fillOpacity=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fill",{get:function(){return this.properties.fill},set:function(t){this.properties.fill=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"backgroundFill",{get:function(){return this.properties.backgroundFill},set:function(t){this.properties.backgroundFill=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"backgroundOpacity",{get:function(){return this.properties.backgroundOpacity},set:function(t){this.properties.backgroundOpacity=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stroke",{get:function(){return this.properties.stroke},set:function(t){this.properties.stroke=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strokeOpacity",{get:function(){return this.properties.strokeOpacity},set:function(t){this.properties.strokeOpacity=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strokeWidth",{get:function(){return this.properties.strokeWidth},set:function(t){this.properties.strokeWidth=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shapeRendering",{get:function(){return this.properties.shapeRendering},set:function(t){this.properties.shapeRendering=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotation",{get:function(){return this.properties.rotation},set:function(t){this.properties.rotation=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"patternUnits",{get:function(){return this.properties.patternUnits},set:function(t){this.properties.patternUnits=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this.properties.width},set:function(t){this.properties.width=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this.properties.height},set:function(t){this.properties.height=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"x",{get:function(){return this.properties.x},set:function(t){this.properties.x=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y",{get:function(){return this.properties.y},set:function(t){this.properties.y=t,this.draw()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paper",{get:function(){return this._paper?this._paper:Object(o.b)()},set:function(t){this._paper!=t&&(this._paper=t,this.draw(),t.appendDef(this.element))},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){var i=this;t.prototype.copyFrom.call(this,e),c.each(e.properties,function(t,e){i[t]=e})},Object.defineProperty(e.prototype,"animations",{get:function(){return this._animations||(this._animations=[],this._disposers.push(new s.b(this._animations))),this._animations},enumerable:!0,configurable:!0}),e.prototype.processConfig=function(e){if(e&&p.hasValue(e.elements)&&p.isArray(e.elements))for(var i=0,n=e.elements.length;i<n;i++){var o=e.elements[i];if(p.hasValue(o.type)){var a=this.createEntryInstance(o);a instanceof r.a&&(a.config=o),this.addElement(p.hasValue(o.typeProperty)?a[o.typeProperty]:a.element)}}t.prototype.processConfig.call(this,e)},e}(r.a);u.b.registeredClasses.Pattern=d},ZhuL:function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("mIpt"),o=i("Qkdp"),a=i("Mtpk"),s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.contentType="application/json",e.options={},e}return n.c(e,t),e.isJSON=function(t){try{return JSON.parse(t),!0}catch(t){return!1}},e.prototype.parse=function(t){var e,i=this;try{a.hasValue(JSON)&&(e=JSON.parse(t))}catch(t){return}var n=a.hasValue(this.options.emptyAs),r=this.parsableNumbers,s=this.parsableDates;if(Array.isArray(e)&&(r||s||n))for(var u=function(t,a){var u=e[t];o.each(u,function(t,e){n&&(u[t]=i.maybeToEmpty(u[t])),r&&(u[t]=i.maybeToNumber(t,u[t])),s&&(u[t]=i.maybeToDate(t,u[t]))})},l=0,h=e.length;l<h;l++)u(l);return e},e}(r.a)},Zisa:function(t,e,i){var n=i("Gb1H"),r=180/Math.PI;n(n.S,"Math",{degrees:function(t){return t*r}})},Zljy:function(t,e,i){var n=i("DvJ+");i("5lay")("isSealed",function(t){return function(e){return!n(e)||!!t&&t(e)}})},ZoDA:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("Uslz"),o=i("aCit"),a=function(t){function e(){var e=t.call(this)||this;return e.className="ValueAxisBreak",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"startPosition",{get:function(){if(this.axis)return this.axis.valueToPosition(this.adjustedStartValue)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endPosition",{get:function(){if(this.axis)return this.axis.valueToPosition(this.adjustedEndValue)},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.ValueAxisBreak=a},ZpHf:function(t,e,i){"use strict";i.d(e,"b",function(){return f}),i.d(e,"a",function(){return g});var n=i("m4/l"),r=i("Hg48"),o=i("tjMS"),a=i("aCit"),s=i("MtRv"),u=i("uLGy"),l=i("1yyj"),h=i("Wglt"),c=i("Gg2j"),p=i("Mtpk"),d=i("Qkdp"),f=function(t){function e(){var e=t.call(this)||this;return e.className="SankeyDiagramDataItem",e.applyTheme(),e}return n.c(e,t),e}(r.b),g=function(t){function e(){var e=t.call(this)||this;return e.className="SankeyDiagram",e.orientation="horizontal",e.nodeAlign="middle",e.nodesContainer.width=Object(o.c)(100),e.nodesContainer.height=Object(o.c)(100),e.linksContainer.width=Object(o.c)(100),e.linksContainer.height=Object(o.c)(100),e.applyTheme(),e}return n.c(e,t),e.prototype.validateData=function(){var e=this;t.prototype.validateData.call(this),this._levelCount=0,this.nodes.each(function(t,i){i.level=e.getNodeLevel(i,0),e._levelCount=c.max(e._levelCount,i.level)})},e.prototype.getNodeLevel=function(t,e){var i=this,r=[e];return h.each(t.incomingDataItems.iterator(),function(t){t.fromNode&&r.push(i.getNodeLevel(t.fromNode,e+1))}),Math.max.apply(Math,n.f(r))},e.prototype.calculateValueHeight=function(){var t=this;this._levelSum={},this._levelNodesCount={},this.maxSum=0;var e,i=this.dataItem.values.value.sum;h.each(this._sorted,function(e){var i=e[1];t.getNodeValue(i)}),this.nodes.each(function(e,n){var r=n.level,o=Math.max(n.totalIncoming,n.totalOutgoing);o/i<t.minNodeSize&&(o=i*t.minNodeSize),p.isNumber(t._levelSum[r])?t._levelSum[r]+=o:t._levelSum[r]=o,p.isNumber(t._levelNodesCount[r])?t._levelNodesCount[r]++:t._levelNodesCount[r]=1}),d.each(this._levelSum,function(i,n){t.maxSum<n&&(t.maxSum=n,e=p.toNumber(i))}),this._maxSumLevel=e;var n=this._levelNodesCount[this._maxSumLevel],r=(("horizontal"==this.orientation?this.chartContainer.maxHeight-1:this.chartContainer.maxWidth-1)-(n-1)*this.nodePadding)/this.maxSum;if(p.isNumber(this.valueHeight)){var o=void 0;try{o=this._heightAnimation.animationOptions[0].to}catch(t){}if(o!=r){var a=this.interpolationDuration;try{a=this.nodes.template.states.getKey("active").transitionDuration}catch(t){}this._heightAnimation=new l.a(this,{property:"valueHeight",from:this.valueHeight,to:r},a).start(),this._disposers.push(this._heightAnimation)}}else this.valueHeight=r},e.prototype.validate=function(){var e=this;t.prototype.validate.call(this),this.calculateValueHeight();var i=this.nodesContainer,n={},r=this._levelNodesCount[this._maxSumLevel],o=this.dataItem.values.value.sum;h.each(this._sorted,function(t){var a,s,u,l=t[1],h=l.level,c=0,p=e._levelNodesCount[h];switch(e.nodeAlign){case"bottom":c=(e.maxSum-e._levelSum[h])*e.valueHeight-(p-r)*e.nodePadding;break;case"middle":c=(e.maxSum-e._levelSum[h])*e.valueHeight/2-(p-r)*e.nodePadding/2}l.parent=i;var d=Math.max(l.totalIncoming,l.totalOutgoing);if(d/o<e.minNodeSize&&(d=o*e.minNodeSize),"horizontal"==e.orientation){s=(a=(e.innerWidth-l.pixelWidth)/e._levelCount)*l.level,u=n[h]||c;var f=d*e.valueHeight;l.height=f,l.minX=s,l.maxX=s,n[h]=u+f+e.nodePadding}else{a=(e.innerHeight-l.pixelHeight)/e._levelCount,s=n[h]||c,u=a*l.level;var g=d*e.valueHeight;l.width=g,l.minY=u,l.maxY=u,n[h]=s+g+e.nodePadding}l.x=s,l.y=u})},e.prototype.showReal=function(e){var i=this;if(this.interpolationDuration>0){var n=this.nodesContainer,r=0;h.each(this.links.iterator(),function(t){t.hide(0)}),h.each(this._sorted,function(t){var e,o=t[1];"horizontal"==i.orientation?(o.dx=-(n.pixelWidth-o.pixelWidth)/i._levelCount,e="dx"):(o.dy=-(n.pixelHeight-o.pixelHeight)/i._levelCount,e="dy");var a=0,s=i.interpolationDuration;i.sequencedInterpolation&&(a=i.sequencedInterpolationDelay*r+s*r/h.length(i.nodes.iterator())),o.opacity=0,o.invalidateLinks(),o.animate([{property:"opacity",from:0,to:1},{property:e,to:0}],i.interpolationDuration,i.interpolationEasing).delay(a),h.each(o.outgoingDataItems.iterator(),function(t){var e=t.link.show(i.interpolationDuration);e&&!e.isFinished()&&e.delay(a)}),h.each(o.incomingDataItems.iterator(),function(t){if(!t.fromNode){var e=t.link.show(i.interpolationDuration);e&&!e.isFinished()&&e.delay(a)}}),r++})}return t.prototype.showReal.call(this)},e.prototype.changeSorting=function(){var t=this;this.sortNodes();var e={};h.each(this._sorted,function(i){var n,r,o=i[1],a=o.level,s=(t.maxSum-t._levelSum[a])*t.valueHeight/2;"horizontal"==t.orientation?(n="y",r=o.pixelHeight):(n="x",r=o.pixelWidth),o.animate({property:n,to:e[a]||s},t.interpolationDuration,t.interpolationEasing),e[a]=(e[a]||s)+r+t.nodePadding,o.invalidateLinks()})},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),p.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Sankey diagram"))},e.prototype.createDataItem=function(){return new f},Object.defineProperty(e.prototype,"nodeAlign",{get:function(){return this.getPropertyValue("nodeAlign")},set:function(t){this.setPropertyValue("nodeAlign",t),this.changeSorting()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t,!0);var e=this.nodes.template.nameLabel;"vertical"==t?(this.nodes.template.width=void 0,e.label.horizontalCenter="middle",e.locationX=.5):(this.nodes.template.height=void 0,e.label.horizontalCenter="left",e.locationX=1)},enumerable:!0,configurable:!0}),e.prototype.createNode=function(){var t=new s.a;return this._disposers.push(t),t},e.prototype.createLink=function(){var t=new u.a;return this._disposers.push(t),t},Object.defineProperty(e.prototype,"valueHeight",{get:function(){return this._valueHeight},set:function(t){t!=this._valueHeight&&(this._valueHeight=t,this.invalidate())},enumerable:!0,configurable:!0}),e.prototype.disposeData=function(){t.prototype.disposeData.call(this),this._sorted=this.nodes.iterator()},e}(r.a);a.b.registeredClasses.SankeyDiagram=g},Ztji:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("EhJv"),o=i("4BRe"),a=i("FmWr"),s=[].lastIndexOf,u=!!s&&1/[1].lastIndexOf(1,-0)<0;n(n.P+n.F*(u||!i("GQop")(s)),"Array",{lastIndexOf:function(t){if(u)return s.apply(this,arguments)||0;var e=r(this),i=a(e.length),n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n<0&&(n=i+n);n>=0;n--)if(n in e&&e[n]===t)return n||0;return-1}})},ZytL:function(t,e,i){i("6+x4")("Map")},a8UT:function(t,e,i){var n=i("9BM3"),r=i("YEtG")("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||o[r]===t)}},aCit:function(t,e,i){"use strict";i.d(e,"a",function(){return l}),i.d(e,"b",function(){return h});var n=i("o0Lc"),r=i("+qIf"),o=i("eCqC"),a=i("Mtpk"),s=i("wUYf"),u=i("hJ5i"),l=function(){function t(){this.events=new n.a,this.themes=[],this.loadedThemes={},this._uidCount=0,this.registeredClasses={},this._placeholders={},this.invalidSprites={},this.invalidDatas={},this.invalidRawDatas=[],this.invalidDataItems=[],this.invalidDataRange=[],this.invalidPositions={},this.invalidLayouts={},this.baseSprites=[],this.baseSpritesByUid={},this.uid=this.getUniqueId(),this.invalidSprites.noBase=[],this.invalidDatas.noBase=[],this.invalidLayouts.noBase=[],this.invalidPositions.noBase=[]}return t.prototype.getUniqueId=function(){var t=this._uidCount;return this._uidCount+=1,"id-"+t},Object.defineProperty(t.prototype,"map",{get:function(){return this._map||(this._map=new r.a),this._map},enumerable:!0,configurable:!0}),t.prototype.setCache=function(t,e,i){o.b.set(this.uid,t,e,i)},t.prototype.getCache=function(t,e){return void 0===e&&(e=void 0),o.b.get(this.uid,t,e)},t.prototype.dispatch=function(t,e){this.events.isEnabled(t)&&(e?(e.type=t,e.target=e.target||this,this.events.dispatch(t,{type:t,target:this})):this.events.dispatch(t,{type:t,target:this}))},t.prototype.dispatchImmediately=function(t,e){this.events.isEnabled(t)&&(e?(e.type=t,e.target=e.target||this,this.events.dispatchImmediately(t,e)):this.events.dispatchImmediately(t,{type:t,target:this}))},t.prototype.getPlaceholder=function(t){return a.hasValue(this._placeholders[t])?this._placeholders[t]:(this._placeholders[t]="__amcharts_"+t+"_"+s.random(8)+"__",this._placeholders[t])},t.prototype.addToInvalidComponents=function(t){t.baseId?u.move(this.invalidDatas[t.baseId],t):u.move(this.invalidDatas.noBase,t)},t.prototype.removeFromInvalidComponents=function(t){t.baseId&&u.remove(this.invalidDatas[t.baseId],t),u.remove(this.invalidDatas.noBase,t)},t.prototype.addToInvalidSprites=function(t){t.baseId?u.add(this.invalidSprites[t.baseId],t):u.add(this.invalidSprites.noBase,t)},t.prototype.removeFromInvalidSprites=function(t){t.baseId&&u.remove(this.invalidSprites[t.baseId],t),u.remove(this.invalidSprites.noBase,t)},t.prototype.addToInvalidPositions=function(t){t.baseId?u.add(this.invalidPositions[t.baseId],t):u.add(this.invalidPositions.noBase,t)},t.prototype.removeFromInvalidPositions=function(t){t.baseId&&u.remove(this.invalidPositions[t.baseId],t),u.remove(this.invalidPositions.noBase,t)},t.prototype.addToInvalidLayouts=function(t){t.baseId?u.add(this.invalidLayouts[t.baseId],t):u.add(this.invalidLayouts.noBase,t)},t.prototype.removeFromInvalidLayouts=function(t){t.baseId&&u.remove(this.invalidLayouts[t.baseId],t),u.remove(this.invalidLayouts.noBase,t)},t}(),h=new l},aFzC:function(t,e,i){"use strict";i.d(e,"b",function(){return u}),e.c=function(t,e,i,o,l,h){var c=t.x,p=t.y,d=e.x,f=e.y,g=s.getDistance(t,e);h&&(i=g/Math.round(g/i));var m=n.b.getCache(a.stringify(["wavedLine",t.x,e.x,t.y,e.y,i,o]));if(!m){if(g>0){var y=Math.atan2(f-p,d-c),b=Math.cos(y),v=Math.sin(y),_=i*b,x=i*v;if(i<=1||o<=1)m=r.lineTo(e);else{var P=Math.round(2*g/i),w=[],O=1;d<c&&(O*=-1),f<p&&(O*=-1);for(var S=0;S<=P;S++){var T=c+S*_/2+(O*=-1)*o/2*v,C=p+S*x/2-O*o/2*b;w.push({x:T,y:C})}m=new u(l,l).smooth(w)}}else m="";n.b.setCache(a.stringify(["wavedLine",t.x,e.x,t.y,e.y,i,o]),m)}return m},i.d(e,"a",function(){return l});var n=i("aCit"),r=i("hGwe"),o=i("hJ5i"),a=i("v9UT"),s=i("Gg2j"),u=function(){function t(t,e){this._tensionX=t,this._tensionY=e}return t.prototype.smooth=function(t){var e=this._tensionX,i=this._tensionY;if(t.length<3||e>=1&&i>=1)return r.polyline(t);var n=t[0],o=t[t.length-1],a=!1;s.round(n.x,3)==s.round(o.x)&&s.round(n.y)==s.round(o.y)&&(a=!0);for(var u="",l=0,h=t.length-1;l<h;l++){var c=t[l-1],p=t[l],d=t[l+1],f=t[l+2];0===l?c=a?t[t.length-2]:t[l]:l==t.length-2&&(f=a?t[1]:t[l+1]);var g=s.getCubicControlPointA(c,p,d,f,e,i),m=s.getCubicControlPointB(c,p,d,f,e,i);u+=r.cubicCurveTo(d,g,m)}return u},t}();var l=function(){function t(t){this._closed=t.closed}return t.prototype.smooth=function(t){var e=this,i=NaN,n=NaN,a=NaN,s=NaN,u=NaN,l=NaN,h=NaN,c=NaN,p=NaN,d=NaN,f=0,g="",m=function(t,e){g+=r.cubicCurveTo({x:(i+4*n+t)/6,y:(l+4*h+e)/6},{x:(2*i+n)/3,y:(2*l+h)/3},{x:(i+2*n)/3,y:(l+2*h)/3})},y=function(t){var o=t.x,y=t.y;switch(f){case 0:f=1,e._closed?(a=o,c=y):g+=r.lineTo({x:o,y:y});break;case 1:f=2,e._closed&&(s=o,p=y);break;case 2:if(f=3,e._closed){u=o,d=y,g+=r.moveTo({x:(i+4*n+o)/6,y:(l+4*h+y)/6});break}g+=r.lineTo({x:(5*i+n)/6,y:(5*l+h)/6});default:m(o,y)}i=n,n=o,l=h,h=y};if(o.each(t,y),this._closed)switch(f){case 1:g+=r.moveTo({x:a,y:c}),g+=r.closePath();break;case 2:g+=r.moveTo({x:(a+2*s)/3,y:(c+2*p)/3}),g+=r.lineTo({x:(s+2*a)/3,y:(p+2*c)/3}),g+=r.closePath();break;case 3:y({x:a,y:c}),y({x:s,y:p}),y({x:u,y:d})}else{switch(f){case 3:m(n,h);case 2:g+=r.lineTo({x:n,y:h})}g+=r.closePath()}return g},t}()},aGXA:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("C6dT"),o=i("p9TX"),a=i("CnhP"),s=i("MIZb"),u=i("aCit"),l=function(t){function e(){var e=t.call(this)||this;e.className="Button",e.tooltipY=0,e.iconPosition="left",e.layout="horizontal",e.contentAlign="center",e.contentValign="middle",e.padding(8,16,8,16);var i=new s.a,n=e.background;n.fill=i.getFor("secondaryButton"),n.stroke=i.getFor("secondaryButtonStroke"),n.fillOpacity=1,n.strokeOpacity=1,n.cornerRadius(3,3,3,3),e.label=new o.a,e.label.fill=i.getFor("secondaryButtonText");var r=n.states.create("hover");r.properties.fillOpacity=1,r.properties.fill=i.getFor("secondaryButtonHover");var a=n.states.create("down");return a.transitionDuration=100,a.properties.fill=i.getFor("secondaryButtonDown"),a.properties.fillOpacity=1,e.role="button",e.focusable=!0,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"icon",{get:function(){return this.getPropertyValue("icon")},set:function(t){var e=this.getPropertyValue("icon");e&&(e.parent=void 0),t&&(this.setPropertyValue("icon",t),t.parent=this,t.interactionsEnabled=!1,this.iconPosition=this.iconPosition,this._disposers.push(t))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconPosition",{get:function(){return this.getPropertyValue("iconPosition")},set:function(t){this.setPropertyValue("iconPosition",t),this.icon&&("left"==t?this.icon.toBack():this.icon.toFront())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return this._label},set:function(t){this._label&&this.removeDispose(this._label),this._label=t,t&&(t.parent=this,t.interactionsEnabled=!1,this._disposers.push(this._label))},enumerable:!0,configurable:!0}),e.prototype.createBackground=function(){return new a.a},e}(r.a);u.b.registeredClasses.Button=l},aHTY:function(t,e,i){"use strict";var n=i("snR7"),r=i("FmWr"),o=i("YxCF"),a=i("2i0j");i("7V6K")("match",1,function(t,e,i,s){return[function(i){var n=t(this),r=void 0==i?void 0:i[e];return void 0!==r?r.call(i,n):new RegExp(i)[e](String(n))},function(t){var e=s(i,t,this);if(e.done)return e.value;var u=n(t),l=String(this);if(!u.global)return a(u,l);var h=u.unicode;u.lastIndex=0;for(var c,p=[],d=0;null!==(c=a(u,l));){var f=String(c[0]);p[d]=f,""===f&&(u.lastIndex=o(l,r(u.lastIndex),h)),d++}return 0===d?null:p}]})},aM7D:function(t,e,i){"use strict";i.d(e,"b",function(){return O}),i.d(e,"a",function(){return S});var n=i("m4/l"),r=i("Y9w3"),o=i("Vs7R"),a=i("vMqJ"),s=i("+qIf"),u=i("A6AV"),l=i("C6dT"),h=i("cxKZ"),c=i("TXRX"),p=i("uWmK"),d=i("Q4nc"),f=i("aCit"),g=i("8ZqG"),m=i("Wglt"),y=i("Gg2j"),b=i("0FpR"),v=i("v9UT"),_=i("Qkdp"),x=i("Mtpk"),P=i("hJ5i"),w=i("hxI2"),O=function(t){function e(){var e=t.call(this)||this;return e.bullets=new s.a,e.className="SeriesDataItem",e._disposers.push(new s.b(e.bullets)),e.values.value={},e.values.value={},e.applyTheme(),e}return n.c(e,t),e.prototype.dispose=function(){this.bullets.clear(),t.prototype.dispose.call(this)},Object.defineProperty(e.prototype,"value",{get:function(){return this.values.value.value},set:function(t){this.setValue("value",t)},enumerable:!0,configurable:!0}),e}(u.a),S=function(t){function e(){var e=t.call(this)||this;e._ignoreMinMax=!1,e._showBullets=!0,e.legendSettings=new p.c,e._tmin=new s.a,e._tmax=new s.a,e._smin=new s.a,e._smax=new s.a,e.dataItemsByAxis=new s.a,e.skipFocusThreshold=20,e.calculatePercent=!1,e.autoDispose=!0,e.simplifiedProcessing=!1,e.className="Series",e.isMeasured=!1,e.layout="none",e.shouldClone=!1,e.setPropertyValue("hidden",!1),e.axisRanges=new a.b,e.axisRanges.events.on("inserted",e.processAxisRange,e,!1),e.minBulletDistance=0,e.mainContainer=e.createChild(l.a),e.mainContainer.shouldClone=!1,e.mainContainer.mask=e.createChild(o.a),e._disposers.push(e.mainContainer);var i=e.mainContainer.createChild(l.a);return e._shouldBeReady.push(i),i.shouldClone=!1,i.layout="none",i.virtualParent=e,e._disposers.push(i),e.bulletsContainer=i,e.tooltip=new h.a,e.tooltip.virtualParent=e,e._disposers.push(e.tooltip),e.hiddenState.transitionEasing=b.cubicIn,e.dataItem=e.createDataItem(),e._disposers.push(e.dataItem),e.dataItem.component=e,e.role="group",e.applyTheme(),e}return n.c(e,t),e.prototype.applyTheme=function(){t.prototype.applyTheme.call(this),d.a.autoSetClassName&&this.bulletsContainer&&(this.bulletsContainer.className=this.className+"-bullets",this.bulletsContainer.setClassName())},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),x.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Series"))},e.prototype.createDataItem=function(){return new O},Object.defineProperty(e.prototype,"chart",{get:function(){return this._chart},set:function(t){this._chart=t},enumerable:!0,configurable:!0}),e.prototype.positionBullet=function(t){},e.prototype.processBullet=function(t){var e=t.newValue;e.isTemplate=!0,this.itemsFocusable()&&(e.focusable=!0)},e.prototype.removeBullet=function(t){var e=t.oldValue;this.dataItems.each(function(t){var i=t.bullets.getKey(e.uid);i&&i.dispose()}),this.invalidate()},e.prototype.validateDataItems=function(){t.prototype.validateDataItems.call(this),this.processValues(!1)},e.prototype.getFirstValue=function(t,e){e>0&&e<this.dataItems.length-1&&e++;for(var i=e;i>=0;i--){var n=this.dataItems.getIndex(i).getActualWorkingValue(t);if(x.isNumber(n))return n}return null},e.prototype.rangeChangeUpdate=function(){t.prototype.rangeChangeUpdate.call(this),this.processValues(!0)},e.prototype.processValues=function(t){var e=this;if(!this.simplifiedProcessing){var i=this.dataItems,n={},r={},o={},a={},s={},u={},l={},h={},c=y.max(0,this._workingStartIndex);c=y.min(c,this.dataItems.length);var p=y.min(this._workingEndIndex,this.dataItems.length);if(x.isNumber(c)||(c=0),x.isNumber(p)||(p=this.dataItems.length),c>0){var d=i.getIndex(c-1);_.each(d.values,function(t,e){var i=d.getActualWorkingValue(t);x.isNumber(i)&&(l[t]=i)})}for(var f=function(t){var p=i.getIndex(t);_.each(p.values,function(t,i){var d=p.getActualWorkingValue(t);if(x.isNumber(d)){x.isNumber(n[t])||(n[t]=0),n[t]++,x.isNumber(r[t])||(r[t]=0),r[t]+=d,x.isNumber(s[t])||(s[t]=d),u[t]=d,x.isNumber(o[t])?o[t]>d&&(o[t]=d):o[t]=d,x.isNumber(a[t])?a[t]<d&&(a[t]=d):a[t]=d,x.isNumber(h[t])||(h[t]=e.getFirstValue(t,c)),p.setCalculatedValue(t,d-h[t],"change"),p.setCalculatedValue(t,(d-h[t])/h[t]*100,"changePercent");var f=l[t];x.isNumber(f)||(f=d),p.setCalculatedValue(t,d-f,"previousChange"),p.setCalculatedValue(t,(d-f)/f*100,"previousChangePercent"),l[t]=d}})},g=c;g<p;g++)f(g);if(this.calculatePercent){var m=function(t){var e=i.getIndex(t);_.each(e.values,function(t){var i=r[t],n=e.getActualWorkingValue(t);if(x.isNumber(n)&&i>0){n==i&&(i=e.values[t].value);var o=n/i*100;e.setCalculatedValue(t,o,"percent")}})};for(g=c;g<p;g++)m(g)}if(c>0){var b=i.getIndex(c-1);_.each(b.values,function(t){var e=b.values[t].value;b.setCalculatedValue(t,e-s[t],"change"),b.setCalculatedValue(t,(e-s[t])/s[t]*100,"changePercent")})}var v=this.dataItem;_.each(v.values,function(t){v.setCalculatedValue(t,r[t],"sum"),v.setCalculatedValue(t,r[t]/n[t],"average"),v.setCalculatedValue(t,s[t],"open"),v.setCalculatedValue(t,u[t],"close"),v.setCalculatedValue(t,o[t],"low"),v.setCalculatedValue(t,a[t],"high"),v.setCalculatedValue(t,n[t],"count")})}},e.prototype.validate=function(){m.each(this.axisRanges.iterator(),function(t){t.validate()}),t.prototype.validate.call(this);var e=this.bulletsContainer;if(e.fill=this.fill,e.stroke=this.stroke,e.x=this.pixelX,e.y=this.pixelY,this.bulletsContainer.children.length>0){for(var i=0;i<this.startIndex;i++){(n=this.dataItems.getIndex(i))&&n.bullets.each(function(t,e){e.__disabled=!0})}for(i=this.dataItems.length-1;i>this.endIndex;i--){var n;(n=this.dataItems.getIndex(i))&&n.bullets.each(function(t,e){e.__disabled=!0})}}this.updateTooltipBounds()},e.prototype.updateTooltipBounds=function(){this.topParent&&this.tooltip.setBounds({x:0,y:0,width:this.topParent.maxWidth,height:this.topParent.maxHeight})},e.prototype.validateDataElement=function(e){var i=this;t.prototype.validateDataElement.call(this,e),this._showBullets?(this.bulletsContainer.visible=!0,m.each(this.bullets.iterator(),function(t){var n=e.bullets.getKey(t.uid);n||((n=t.clone()).shouldClone=!1,e.addSprite(n),i.visible&&!i.isHiding||n.hide(0));var r=n.dataItem;if(r!=e){r&&r.bullets.setKey(t.uid,void 0);var o=i.itemReaderText||"{"+n.xField+"}: {"+n.yField+"}";n.focusable&&(n.events.once("focus",function(t){n.readerTitle=i.populateString(o,n.dataItem)},void 0,!1),n.events.once("blur",function(t){n.readerTitle=""},void 0,!1)),n.hoverable&&(n.events.once("over",function(t){n.readerTitle=i.populateString(o,n.dataItem)},void 0,!1),n.events.once("out",function(t){n.readerTitle=""},void 0,!1)),n.isDynamic&&(e.events.on("workingvaluechanged",n.deepInvalidate,n,!1),i.dataItem.events.on("workingvaluechanged",n.deepInvalidate,n,!1)),n.deepInvalidate()}n.parent=i.bulletsContainer,e.bullets.setKey(t.uid,n),n.maxWidth=e.itemWidth,n.maxHeight=e.itemHeight,n.__disabled=!1,i.positionBullet(n)})):this.bulletsContainer.visible=!1},e.prototype.handleDataItemWorkingValueChange=function(t,e){this.dataRangeInvalid||this.invalidateProcessedData()},Object.defineProperty(e.prototype,"ignoreMinMax",{get:function(){return this._ignoreMinMax},set:function(t){this._ignoreMinMax=t,this.invalidateDataItems()},enumerable:!0,configurable:!0}),e.prototype.createMask=function(){},e.prototype.processAxisRange=function(t){this.rangesContainer||(this.rangesContainer=this.createChild(l.a),this.rangesContainer.shouldClone=!1,this.rangesContainer.isMeasured=!1);var e=t.newValue;e&&(e.contents.parent=this.rangesContainer,e.isRange=!0)},e.prototype.getAxisField=function(t){},e.prototype.showTooltipAtPosition=function(t,e){},Object.defineProperty(e.prototype,"minBulletDistance",{get:function(){return this.getPropertyValue("minBulletDistance")},set:function(t){this.setPropertyValue("minBulletDistance",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bullets",{get:function(){return this._bullets||(this._bullets=new a.e(new c.a),this._bullets.template.virtualParent=this,this._bullets.events.on("inserted",this.processBullet,this,!1),this._bullets.events.on("removed",this.removeBullet,this,!1),this._disposers.push(new a.c(this._bullets)),this._disposers.push(this._bullets.template)),this._bullets},enumerable:!0,configurable:!0}),e.prototype.createLegendMarker=function(t){},Object.defineProperty(e.prototype,"hiddenInLegend",{get:function(){return this.getPropertyValue("hiddenInLegend")},set:function(t){this.setPropertyValue("hiddenInLegend",t)&&this.chart&&this.chart.feedLegend()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this.getPropertyValue("name")},set:function(t){this.setPropertyValue("name",t),this.readerTitle=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"itemReaderText",{get:function(){var t=this._itemReaderText;return t||(this.tooltipText?t=v.plainText(this.tooltipText):this.tooltipHTML&&(t=v.plainText(this.tooltipHTML))),this.adapter.apply("itemReaderText",t)},set:function(t){this._itemReaderText=t},enumerable:!0,configurable:!0}),e.prototype.itemsFocusable=function(){return!(this.dataItems.length>=this.skipFocusThreshold)},Object.defineProperty(e.prototype,"legendDataItem",{get:function(){return this._legendDataItem},set:function(t){this._legendDataItem=t,this._legendDataItem.itemContainer.deepInvalidate()},enumerable:!0,configurable:!0}),e.prototype.updateLegendValue=function(t){if(this.legendDataItem){var e=this.legendSettings,i=this.legendDataItem,n=i.label,r=i.valueLabel;t?(r&&(e.itemValueText&&(r.text=e.itemValueText),r.dataItem=t),n&&(e.itemLabelText&&(n.text=e.itemLabelText),n.dataItem=this.dataItem)):(n&&((e.labelText||void 0!=e.itemLabelText)&&(n.text=e.labelText),n.dataItem=this.dataItem),r&&((e.valueText||void 0!=e.itemValueText)&&(r.text=e.valueText),r.dataItem=this.dataItem))}},e.prototype.copyFrom=function(e){this.bullets.copyFrom(e.bullets),this.bulletsContainer.copyFrom(e.bulletsContainer),this.calculatePercent=e.calculatePercent,this.simplifiedProcessing=e.simplifiedProcessing,t.prototype.copyFrom.call(this,e)},e.prototype.raiseCriticalError=function(t){this._chart.modal.content=this._chart.adapter.apply("criticalError",t).message,this._chart.modal.closable=!1,this._chart.modal.open(),this._chart.disabled=!0,d.a.verbose&&console.log(t)},e.prototype.applyFilters=function(){var e=this;t.prototype.applyFilters.call(this),this.bulletsContainer.filters.clear(),m.each(this.filters.iterator(),function(t){e.bulletsContainer.filters.push(t.clone())})},Object.defineProperty(e.prototype,"heatRules",{get:function(){var t=this;return this._heatRules||(this._heatRules=new a.b,this._heatRules.events.on("inserted",function(e){var i=e.newValue,n=i.target;if(n){var r=i.dataField;x.hasValue(r)||(r="value");var a=i.min,s=i.max,u=t.dataItem,h=i.property,c=x.toNumber(i.minValue),p=x.toNumber(i.maxValue);x.isNumber(c)||x.isNumber(p)||t.dataItem.events.on("calculatedvaluechanged",function(e){e.property==r&&m.each(t.dataItems.iterator(),function(t){var e=!1;P.each(t.sprites,function(t){if(t.clonedFrom==n){var i=t;i[h]=i[h],e=!0}}),e||P.each(t.sprites,function(t){t instanceof l.a&&m.each(t.children.iterator(),function(t){if(t.className==n.className){var e=t;e[h]=e[h]}else t instanceof l.a&&t.deepInvalidate()})})})}),t.dataItems.template.events.on("workingvaluechanged",function(t){if(t.property==r){var e=t.target,i=!1;P.each(e.sprites,function(t){if(t.clonedFrom==n){var e=t;e[h]=e[h],i=!0}}),i||P.each(e.sprites,function(t){t instanceof l.a&&m.each(t.children.iterator(),function(t){if(t.className==n.className){var e=t;e[h]=e[h]}else t instanceof l.a&&t.deepInvalidate()})})}}),n.adapter.add(h,function(t,e,n){var l=x.toNumber(i.minValue),h=x.toNumber(i.maxValue);if(e instanceof o.a){var c=e.propertyFields[n];if(c&&e.dataItem){var p=e.dataItem.dataContext;if(p&&x.hasValue(p[c]))return t}}var d=e.dataItem;if((x.isNumber(l)||(l=u.values[r].low),x.isNumber(h)||(h=u.values[r].high),d)&&d.values[r]){var f=d.getActualWorkingValue(r);if(x.hasValue(a)&&x.hasValue(s)&&x.isNumber(l)&&x.isNumber(h)&&x.isNumber(f)){var m=(f-l)/(h-l);if(x.isNumber(f)&&!x.isNumber(m)&&(m=.5),x.isNumber(a))return a+(s-a)*m;if(a instanceof g.a)return new g.a(w.interpolate(a.rgb,s.rgb,m))}}return t})}})),this._heatRules},enumerable:!0,configurable:!0}),e.prototype.processConfig=function(e){var i;if(e){if(x.hasValue(e.bullets)&&x.isArray(e.bullets))for(var n=0,r=e.bullets.length;n<r;n++){var o=e.bullets[n];x.hasValue(o.type)||(o.type="Bullet")}x.hasValue(e.heatRules)&&x.isArray(e.heatRules)&&(i=e.heatRules,delete e.heatRules)}if(t.prototype.processConfig.call(this,e),i){for(n=0,r=i.length;n<r;n++){var s=i[n],u=this;if(x.hasValue(s.target)&&x.isString(s.target))if(this.map.hasKey(s.target))u=this.map.getKey(s.target);else for(var l=s.target.split("."),h=0;h<l.length;h++)if(u instanceof a.b){var c=u.getIndex(x.toNumber(l[h]));u=c||u[l[h]]}else u=u[l[h]];s.target=u,x.hasValue(s.min)&&(s.min=this.maybeColorOrPercent(s.min)),x.hasValue(s.max)&&(s.max=this.maybeColorOrPercent(s.max))}t.prototype.processConfig.call(this,{heatRules:i})}},e.prototype.configOrder=function(e,i){return e==i?0:"heatRules"==e?1:"heatRules"==i?-1:t.prototype.configOrder.call(this,e,i)},e}(r.a);f.b.registeredClasses.Series=S,f.b.registeredClasses.SeriesDataItem=O},aPa3:function(t,e,i){var n=i("T9LF").parseFloat,r=i("nAZS").trim;t.exports=1/n(i("brDO")+"-0")!=-1/0?function(t){var e=r(String(t),3),i=n(e);return 0===i&&"-"==e.charAt(0)?-0:i}:n},aZcm:function(t,e,i){"use strict";var n=i("kHwJ"),r=i("DvJ+"),o=i("FmWr"),a=i("20m4"),s=i("YEtG")("isConcatSpreadable");t.exports=function t(e,i,u,l,h,c,p,d){for(var f,g,m=h,y=0,b=!!p&&a(p,d,3);y<l;){if(y in u){if(f=b?b(u[y],y,i):u[y],g=!1,r(f)&&(g=void 0!==(g=f[s])?!!g:n(f)),g&&c>0)m=t(e,i,f,o(f.length),m,c-1)-1;else{if(m>=9007199254740991)throw TypeError();e[m]=f}m++}y++}return m}},aae5:function(t,e,i){var n=i("Gb1H");n(n.P,"String",{repeat:i("lhvN")})},akNo:function(t,e,i){"use strict";i.d(e,"a",function(){return d});var n=i("m4/l"),r=i("P/bD"),o=i("Tjl+"),a=i("MipW"),s=i("aCit"),u=i("ScGY"),l=i("Qkdp"),h=i("v9UT"),c=i("Mtpk"),p=i("Gg2j"),d=function(t){function e(){var e=t.call(this)||this;return e._negativeBase=0,e._baseUnit="second",e._outputFormat="svg",e._unitValues={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6},e._unitAliases={Y:"y",D:"d",H:"h",K:"h",k:"h",n:"S"},e.className="DurationFormatter",e.applyTheme(),e}return n.c(e,t),e.prototype.format=function(t,e,i){this.language||(this.sprite?this.language=this.sprite.language:this.language=new r.a);var n=i||this._baseUnit;void 0!==e&&""!==e||(e=c.hasValue(this.durationFormat)?this.durationFormat:this.getFormat(c.toNumber(t),null,n)),e=h.cleanFormat(e);var o,a=this.parseFormat(e,n),s=Number(t);o=s>this._negativeBase?a.positive:s<this._negativeBase?a.negative:a.zero;var u=this.applyFormat(s,o);return""!==o.color&&("svg"===this._outputFormat?u="<tspan fill='"+o.color+"'>"+u+"</tspan>":"html"===this._outputFormat&&(u="<span style='color: "+o.color+";'>"+u+"</span>")),u},e.prototype.parseFormat=function(t,e){var i=this,n=this.getCache(t);if(c.hasValue(n))return n;var r=e||this._baseUnit,o={positive:{color:"",template:"",parts:[],source:"",baseUnit:r,parsed:!1,absolute:!1},negative:{color:"",template:"",parts:[],source:"",baseUnit:r,parsed:!1,absolute:!1},zero:{color:"",template:"",parts:[],source:"",baseUnit:r,parsed:!1,absolute:!1}},s=(t=t.replace("||",u.e)).split("|");return o.positive.source=s[0],void 0===s[2]?o.zero=o.positive:o.zero.source=s[2],void 0===s[1]?o.negative=o.positive:o.negative.source=s[1],l.each(o,function(t,e){if(!e.parsed)if(void 0===i.getCache(e.source)){var n,r=e.source;(n=e.source.match(/^\[([^\]]*)\]/))&&n.length&&""!==n[0]&&(r=e.source.substr(n[0].length),e.color=n[1]);for(var s=Object(a.b)().chunk(r,!0),l=0;l<s.length;l++){var h=s[l];if(h.text=h.text.replace(u.e,"|"),"value"===h.type){h.text.match(/[yYMdDwhHKkmsSn]+a/)&&(e.absolute=!0,h.text=h.text.replace(/([yYMdDwhHKkmsSn]+)a/,"$1"));var p=h.text.match(/y+|Y+|M+|d+|D+|w+|h+|H+|K+|k+|m+|s+|S+|n+/g);if(p)for(var d=0;d<p.length;d++)c.hasValue(p[d])||(p[d]=i._unitAliases[p[d]]),e.parts.push(p[d]),h.text=h.text.replace(p[d],u.d)}e.template+=h.text}i.setCache(e.source,e),e.parsed=!0}else o[t]=i.getCache(e.source)}),this.setCache(t,o),o},e.prototype.applyFormat=function(t,e){var i=!e.absolute&&t<this._negativeBase;t=Math.abs(t);for(var n=this.toTimeStamp(t,e.baseUnit),r=e.template,o=0,a=e.parts.length;o<a;o++){var s=e.parts[o],l=this.toTimeUnit(s.substr(0,1)),c=s.length,p=Math.floor(n/this._unitValues[l]);r=r.replace(u.d,h.padString(p,c,"0")),n-=p*this._unitValues[l]}return i&&(r="-"+r),r},e.prototype.toTimeStamp=function(t,e){return t*this._unitValues[e]},e.prototype.toTimeUnit=function(t){switch(t){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year"}},e.prototype.invalidateSprite=function(){this.sprite&&this.sprite.invalidate()},Object.defineProperty(e.prototype,"baseUnit",{get:function(){return this._baseUnit},set:function(t){this._baseUnit=t,this.invalidateSprite()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputFormat",{get:function(){return this._outputFormat},set:function(t){this._outputFormat=t.toLowerCase(),this.invalidateSprite()},enumerable:!0,configurable:!0}),e.prototype.getFormat=function(t,e,i){if(c.hasValue(this.durationFormat))return this.durationFormat;if(i||(i=this.baseUnit),c.hasValue(e)&&t!=e){t=Math.abs(t),e=Math.abs(e);var n=this.getValueUnit(p.max(t,e),i);return this.durationFormats[i][n]}var r=this.getValueUnit(t,i);return this.durationFormats[i][r]},e.prototype.getValueUnit=function(t,e){var i;e||(e=this.baseUnit);var n=this.getMilliseconds(t,e);return l.eachContinue(this._unitValues,function(t,r){if(t==e||i){if(n/r<=1)return i||(i=t),!1;i=t}return!0}),i},e.prototype.getMilliseconds=function(t,e){return e||(e=this.baseUnit),t*this._unitValues[e]},Object.defineProperty(e.prototype,"durationFormat",{get:function(){return this._durationFormat},set:function(t){this._durationFormat!=t&&(this._durationFormat=t,this.invalidateSprite())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"durationFormats",{get:function(){return this._durationFormats||(this._durationFormats={millisecond:{millisecond:this.language.translate("_duration_millisecond"),second:this.language.translate("_duration_millisecond_second"),minute:this.language.translate("_duration_millisecond_minute"),hour:this.language.translate("_duration_millisecond_hour"),day:this.language.translate("_duration_millisecond_day"),week:this.language.translate("_duration_millisecond_week"),month:this.language.translate("_duration_millisecond_month"),year:this.language.translate("_duration_millisecond_year")},second:{second:this.language.translate("_duration_second"),minute:this.language.translate("_duration_second_minute"),hour:this.language.translate("_duration_second_hour"),day:this.language.translate("_duration_second_day"),week:this.language.translate("_duration_second_week"),month:this.language.translate("_duration_second_month"),year:this.language.translate("_duration_second_year")},minute:{minute:this.language.translate("_duration_minute"),hour:this.language.translate("_duration_minute_hour"),day:this.language.translate("_duration_minute_day"),week:this.language.translate("_duration_minute_week"),month:this.language.translate("_duration_minute_month"),year:this.language.translate("_duration_minute_year")},hour:{hour:this.language.translate("_duration_hour"),day:this.language.translate("_duration_hour_day"),week:this.language.translate("_duration_hour_week"),month:this.language.translate("_duration_hour_month"),year:this.language.translate("_duration_hour_year")},day:{day:this.language.translate("_duration_day"),week:this.language.translate("_duration_day_week"),month:this.language.translate("_duration_day_month"),year:this.language.translate("_duration_day_year")},week:{week:this.language.translate("_duration_week"),month:this.language.translate("_duration_week_month"),year:this.language.translate("_duration_week_year")},month:{month:this.language.translate("_duration_month"),year:this.language.translate("_duration_month_year")},year:{year:this.language.translate("_duration_year")}}),this._durationFormats},set:function(t){this._durationFormats=t,this.invalidateSprite()},enumerable:!0,configurable:!0}),e}(o.a);s.b.registeredClasses.DurationFormatter=d},bPwn:function(t,e,i){var n=i("hjwn").f,r=i("U3hN"),o=i("YEtG")("toStringTag");t.exports=function(t,e,i){t&&!r(t=i?t:t.prototype,o)&&n(t,o,{configurable:!0,value:e})}},bcCe:function(t,e,i){i("YDsm"),i("9UcF"),i("XUg+"),i("XYQ1"),i("tzvs"),i("fRTO"),i("OWpl"),i("l3wE"),i("xDSx"),i("g2OP"),i("gmzR"),i("Pr7S"),i("Zljy"),i("8oRD"),i("GuW4"),i("e/xe"),i("0B2R"),i("/Oef"),i("fyXH"),i("E+Sg"),i("pvlQ"),i("1Vzv"),i("HyzE"),i("T3RA"),i("rutD"),i("3fx7"),i("gmIO"),i("7Va9"),i("5Les"),i("OKlB"),i("WXwQ"),i("mL9U"),i("B+tY"),i("XQMn"),i("iuHC"),i("5LIN"),i("Kmds"),i("QtEf"),i("57Qg"),i("tIuN"),i("uuf2"),i("Ijb/"),i("e8Y+"),i("/URX"),i("8tDI"),i("fL7J"),i("S9D9"),i("fTgz"),i("EOVy"),i("OxI3"),i("KfrQ"),i("p4R3"),i("iTz5"),i("yl71"),i("hLmE"),i("Kg3M"),i("l9Vx"),i("RC2a"),i("MrGI"),i("aae5"),i("UXfn"),i("xEZ5"),i("hIRz"),i("IGCA"),i("t3Ma"),i("eaU5"),i("RpVB"),i("8NlW"),i("Xt8l"),i("fi6C"),i("rTLi"),i("Ly/W"),i("8LiO"),i("0Czv"),i("LSPs"),i("7xho"),i("31Mu"),i("q+2p"),i("w1yl"),i("EVjk"),i("U1Gp"),i("MbWG"),i("5BRL"),i("gc4I"),i("xwvB"),i("ssJO"),i("ds6r"),i("8ujI"),i("Oko+"),i("3xrs"),i("/dMO"),i("LLsa"),i("QZG2"),i("Ztji"),i("nZH2"),i("lKl7"),i("f5kt"),i("F2Gx"),i("N/Yk"),i("2/6D"),i("LHMX"),i("zy/o"),i("jvLk"),i("jgQn"),i("aHTY"),i("rU+O"),i("qgJR"),i("4McO"),i("T3m9"),i("dLrC"),i("xCMl"),i("BYDm"),i("vaBr"),i("PXSi"),i("+gRV"),i("dS+R"),i("rU6r"),i("NSvu"),i("C2uA"),i("AiPC"),i("vH9k"),i("7DgU"),i("z9n7"),i("LGy/"),i("IcXr"),i("6PqY"),i("ch2R"),i("oVsg"),i("iYyY"),i("hLeK"),i("oAPj"),i("YnyG"),i("necU"),i("2OOH"),i("EMhK"),i("j2vi"),i("vsTS"),i("GqPQ"),i("0yJt"),i("icDv"),i("Gxer"),i("K2Eo"),i("VCCo"),i("B2g9"),i("of/x"),i("nEmP"),i("1lef"),i("LMet"),i("uc+e"),i("wdkS"),i("mOSd"),i("OuXI"),i("vDrc"),i("9MGJ"),i("Obr2"),i("EEf7"),i("6l3Y"),i("osLN"),i("ZytL"),i("T9+M"),i("d5pU"),i("MT+g"),i("X3ZK"),i("r7ZX"),i("tYpR"),i("68eo"),i("izpu"),i("UPxv"),i("0jav"),i("8aZA"),i("YF4K"),i("Zisa"),i("Xf1i"),i("l2gh"),i("l3rq"),i("Qgck"),i("3X+j"),i("ITVZ"),i("MsQa"),i("cm0w"),i("BTtL"),i("O8xK"),i("8LwG"),i("uqxK"),i("ma7z"),i("gJSe"),i("NKpi"),i("oMjf"),i("yBbu"),i("2Dqo"),i("L8kC"),i("FSsr"),i("fDnL"),i("vFXE"),i("ybeA"),i("/NC3"),i("6mHT"),t.exports=i("G5U1")},bdjS:function(t,e,i){"use strict";var n=i("3BzE"),r=i("pmYy"),o=i("eBSV"),a=i("vJiZ"),s=i("sHIJ"),u=Object.assign;t.exports=!u||i("AEc5")(function(){var t={},e={},i=Symbol(),n="abcdefghijklmnopqrst";return t[i]=7,n.split("").forEach(function(t){e[t]=t}),7!=u({},t)[i]||Object.keys(u({},e)).join("")!=n})?function(t,e){for(var i=a(t),u=arguments.length,l=1,h=r.f,c=o.f;u>l;)for(var p,d=s(arguments[l++]),f=h?n(d).concat(h(d)):n(d),g=f.length,m=0;g>m;)c.call(d,p=f[m++])&&(i[p]=d[p]);return i}:u},brDO:function(t,e){t.exports="\t\n\v\f\r   ᠎             　\u2028\u2029\ufeff"},bytU:function(t,e,i){var n=i("4BRe"),r=i("FmWr");t.exports=function(t){if(void 0===t)return 0;var e=n(t),i=r(e);if(e!==i)throw RangeError("Wrong length!");return i}},"cA+3":function(t,e,i){var n=i("wDk4");t.exports=function(t,e,i){for(var r in e)n(t,r,e[r],i);return t}},cOH5:function(t,e,i){"use strict";i.d(e,"a",function(){return r});var n=i("m4/l"),r=function(t){function e(e){return t.call(this,e)||this}return n.c(e,t),e.prototype.add=function(t){t&&this.node.appendChild(t.node)},e.prototype.addToBack=function(t){if(t){var e=this.node.childNodes[0];e?e!=t.node&&this.node.insertBefore(t.node,e):this.node.appendChild(t.node)}},e.prototype.removeElement=function(t){if(t)try{t.node&&t.node.parentNode==this.node&&this.node.removeChild(t.node)}catch(t){}},e.prototype.hasChild=function(t){for(var e=0;e<this.node.childNodes.length;e++)if(this.node.childNodes[e]==t.node)return!0;return!1},Object.defineProperty(e.prototype,"content",{get:function(){return this.node.innerHTML},set:function(t){this.node.innerHTML=t},enumerable:!0,configurable:!0}),e.prototype.removeChildren=function(){if(this.node.childNodes)for(;this.node.childNodes.length>0;){var t=this.node.firstChild;t&&t.parentNode&&t.parentNode.removeChild(t)}},e}(i("pzs1").a)},ch2R:function(t,e,i){var n=i("hjwn"),r=i("Gb1H"),o=i("snR7"),a=i("W0fk");r(r.S+r.F*i("AEc5")(function(){Reflect.defineProperty(n.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,i){o(t),e=a(e,!0),o(i);try{return n.f(t,e,i),!0}catch(t){return!1}}})},cm0w:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{umulh:function(t,e){var i=+t,n=+e,r=65535&i,o=65535&n,a=i>>>16,s=n>>>16,u=(a*o>>>0)+(r*o>>>16);return a*s+(u>>>16)+((r*s>>>0)+(65535&u)>>>16)}})},cxKZ:function(t,e,i){"use strict";i.d(e,"a",function(){return d});var n=i("m4/l"),r=i("C6dT"),o=i("MZQ8"),a=i("p9TX"),s=i("1yyj"),u=i("8ZqG"),l=i("VAFc"),h=i("Gg2j"),c=i("0FpR"),p=i("v9UT"),d=function(t){function e(){var e=t.call(this)||this;e._boundingRect={x:-4e4,y:-4e4,width:8e4,height:8e4},e._pointTo={x:0,y:0},e.fitPointerToBounds=!1,e._verticalOrientation="up",e.className="Tooltip",e.isMeasured=!1,e.getFillFromObject=!0,e.margin(5,5,5,5),e.defaultState.transitionDuration=1,e.hiddenState.transitionDuration=1;var i=e.background;i.interactionsEnabled=!1,i.fillOpacity=.9,i.strokeWidth=1,i.strokeOpacity=1,i.stroke=Object(u.c)("#ffffff"),i.cornerRadius=3,i.pointerLength=6,i.pointerBaseWidth=10;var n=new l.a;n.dy=1,n.dx=1,n.opacity=.5,i.filters.push(n),e.autoTextColor=!0;var r=e.createChild(a.a);return r.shouldClone=!1,e.label=r,r.padding(7,12,4,12),r.interactionsEnabled=!1,r.horizontalCenter="middle",r.fill=Object(u.c)("#ffffff"),e._disposers.push(r),e.label.events.on("sizechanged",e.drawBackground,e),e.label.zIndex=1,e.pointerOrientation="vertical",e.animationDuration=0,e.animationEasing=c.cubicOut,e.role="tooltip",e.visible=!1,e.opacity=0,e.x=0,e.y=0,e.events.on("visibilitychanged",e.handleVisibility,e),e.applyTheme(),e}return n.c(e,t),e.prototype.handleVisibility=function(){this.visible&&this.label.invalidate()},Object.defineProperty(e.prototype,"getStrokeFromObject",{get:function(){return this.getPropertyValue("getStrokeFromObject")},set:function(t){this.setPropertyValue("getStrokeFromObject",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"autoTextColor",{get:function(){return this.getPropertyValue("autoTextColor")},set:function(t){this.setPropertyValue("autoTextColor",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"keepTargetHover",{get:function(){return this.getPropertyValue("keepTargetHover")},set:function(t){var e=this;this.setPropertyValue("keepTargetHover",t,!0)&&t&&(this.hoverable=!0,this.background.interactionsEnabled=!0,this._disposers.push(this.events.on("over",function(t){e.targetSprite&&e.targetSprite.hoverable&&(e.targetSprite.isHover=!0)})),this._disposers.push(this.events.on("out",function(t){e.targetSprite&&e.targetSprite.hoverable&&(e.targetSprite.isHover=!1)})))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"getFillFromObject",{get:function(){return this.getPropertyValue("getFillFromObject")},set:function(t){this.setPropertyValue("getFillFromObject",t,!0)},enumerable:!0,configurable:!0}),e.prototype.createBackground=function(){return new o.a},Object.defineProperty(e.prototype,"pointerOrientation",{get:function(){return this.getPropertyValue("pointerOrientation")},set:function(t){this.setPropertyValue("pointerOrientation",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animationDuration",{get:function(){return this.getPropertyValue("animationDuration")},set:function(t){this.setPropertyValue("animationDuration",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animationEasing",{get:function(){return this.getPropertyValue("animationEasing")},set:function(t){this.setPropertyValue("animationEasing",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"html",{get:function(){return this.label.html},set:function(t){this.label.html!=t&&(this.label.html=t,this.invalidate())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"text",{get:function(){return this.label.text},set:function(t){this.label.text!=t&&(this.label.text=t,this.invalidate())},enumerable:!0,configurable:!0}),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.label;e.invalid&&e.validate();var i,n,r=this._pointTo.x,o=this._pointTo.y,a=this._boundingRect,s=e.measuredWidth,u=e.measuredHeight,l=this.background.pointerLength;if(s>a.width){p.spritePointToDocument({x:a.x,y:a.y},this.parent);var c=p.spritePointToDocument({x:a.x+a.width,y:a.y+a.height},this.parent),d=document.body.offsetWidth;p.used(document.body.offsetHeight),c.x>d/2?a.x=a.width-s:a.width=a.x+s}"horizontal"==this.pointerOrientation?(n=-u/2,i=r>a.x+a.width/2?-s/2-l:s/2+l):(i=h.fitToRange(0,a.x-r+s/2,a.x-r+a.width-s/2),o>a.y+u+l?(n=-u-l,this._verticalOrientation="up"):(n=l,this._verticalOrientation="down")),n=h.fitToRange(n,a.y-o,a.y+a.height-u-o),e.x=i,e.y=n,this.drawBackground()},e.prototype.updateBackground=function(){this.group.addToBack(this.background.group)},e.prototype.drawBackground=function(){var t=this.label,e=this.background,i=t.measuredWidth,n=t.measuredHeight,r=this._boundingRect,o=i,a=t.pixelX-i/2,s=n,u=t.pixelY,l=this._pointTo.x,c=this._pointTo.y,p=r.x-l,d=p+r.width,f=r.y-c,g=f+r.height;e.x=a,e.y=u,e.width=o,e.height=s,this.fitPointerToBounds?(e.pointerX=h.fitToRange(-e.x,p-e.x,d-e.x),e.pointerY=h.fitToRange(-e.y,f-e.y,g-e.y)):(e.pointerX=-e.x,e.pointerY=-e.y),e.validate()},e.prototype.pointTo=function(t,e){this._pointTo.x==t.x&&this._pointTo.y==t.y||(this._pointTo=t,this.invalidate(),!this.visible||e?(this.moveTo(this._pointTo),this._animation&&this._animation.kill()):0==this.pixelX&&0==this.pixelY?this.moveTo(this._pointTo):(this._animation&&this._animation.kill(),this._animation=new s.a(this,[{property:"x",to:t.x,from:this.pixelX},{property:"y",to:t.y,from:this.pixelY}],this.animationDuration,this.animationEasing).start()))},e.prototype.setBounds=function(t){var e=this._boundingRect;e.x==t.x&&e.y==t.y&&e.width==t.width&&e.height==t.height||(this._boundingRect=t,this.invalidate())},Object.defineProperty(e.prototype,"boundingContainer",{set:function(t){this._boundingContainer=t,t.events.on("sizechanged",this.updateBounds,this),t.events.on("positionchanged",this.updateBounds,this)},enumerable:!0,configurable:!0}),e.prototype.updateBounds=function(){var t=this._boundingContainer,e=p.spriteRectToSvg({x:t.pixelX,y:t.pixelY,width:t.maxWidth,height:t.maxHeight},t);this.setBounds(e)},Object.defineProperty(e.prototype,"verticalOrientation",{get:function(){return this._verticalOrientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltip",{get:function(){},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.label.copyFrom(e.label)},e}(r.a)},"d+vC":function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("C6dT"),o=i("Vs7R"),a=i("aCit"),s=i("tjMS"),u=i("v9UT"),l=i("hGwe"),h=function(t){function e(){var e=t.call(this)||this;return e.slice=e.createChild(o.a),e.slice.shouldClone=!1,e.slice.setElement(e.paper.add("path")),e.slice.isMeasured=!1,e.orientation="vertical",e.bottomWidth=Object(s.c)(100),e.topWidth=Object(s.c)(100),e.isMeasured=!1,e.width=10,e.height=10,e.expandDistance=0,e.className="FunnelSlice",e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.pixelPaddingTop,i=this.pixelPaddingBottom,n=this.pixelPaddingRight,r=this.pixelPaddingLeft,o=this.pixelWidth-n-r,a=this.pixelHeight-e-i,s=this.expandDistance,h="";if("vertical"==this.orientation){var c={x:(o-(v=u.relativeToValue(this.topWidth,o)))/2+r,y:e},p={x:(o+v)/2+r,y:e},d={x:(o+(_=u.relativeToValue(this.bottomWidth,o)))/2+r,y:e+a},f={x:(o-_)/2+r,y:e+a},g={x:p.x+(d.x-p.x)/2+s*a,y:p.y+.5*a},m={x:c.x+(f.x-c.x)/2-s*a,y:c.y+.5*a},y=l.lineTo(d),b="";0!=s&&(y=l.quadraticCurveTo(d,g),b=l.quadraticCurveTo(c,m)),h=l.moveTo(c)+l.lineTo(p)+y+l.lineTo(f)+b,this.tickPoint={x:p.x+(d.x-p.x)/2,y:p.y+(d.y-p.y)/2}}else{var v,_,x={x:r,y:(a-(v=u.relativeToValue(this.topWidth,a)))/2+e},P={x:r,y:(a+v)/2+e},w={x:r+o,y:(a-(_=u.relativeToValue(this.bottomWidth,a)))/2+e},O={x:r+o,y:(a+_)/2+e};g={y:x.y+(w.y-x.y)/2-s*o,x:x.x+.5*o},m={y:P.y+(O.y-P.y)/2+s*o,x:P.x+.5*o},y=l.lineTo(w),b="";0!=s&&(y=l.quadraticCurveTo(w,g),b=l.quadraticCurveTo(P,m)),h=l.moveTo(P)+l.lineTo(x)+y+l.lineTo(O)+b,this.tickPoint={y:P.y+(O.y-P.y)/2,x:P.x+(O.x-P.x)/2}}this.slice.path=h,this.invalidateLayout()},e.prototype.getPoint=function(t,e){var i=this.pixelPaddingTop,n=this.pixelPaddingBottom,r=this.pixelPaddingRight,o=this.pixelPaddingLeft,a=this.pixelWidth-r-o,s=this.pixelHeight-i-n;if("vertical"==this.orientation){var l={x:(a-(d=u.relativeToValue(this.topWidth,a)))/2+o,y:i},h={x:(a+d)/2+o,y:i},c={x:(a+(f=u.relativeToValue(this.bottomWidth,a)))/2+o,y:i+s},p=l.x+({x:(a-f)/2+o,y:i+s}.x-l.x)*e;return{x:p+(h.x+(c.x-h.x)*e-p)*t,y:h.y+(c.y-h.y)*e}}var d,f,g={x:o,y:(s-(d=u.relativeToValue(this.topWidth,s)))/2+i},m={x:o,y:(s+d)/2+i},y={x:o+a,y:(s-(f=u.relativeToValue(this.bottomWidth,s)))/2+i},b=g.y+(y.y-g.y)*t;return{y:b+(m.y+({x:o+a,y:(s+f)/2+i}.y-m.y)*t-b)*e,x:g.x+(y.x-g.x)*t}},Object.defineProperty(e.prototype,"bottomWidth",{get:function(){return this.getPropertyValue("bottomWidth")},set:function(t){this.setPercentProperty("bottomWidth",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"topWidth",{get:function(){return this.getPropertyValue("topWidth")},set:function(t){this.setPercentProperty("topWidth",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expandDistance",{get:function(){return this.getPropertyValue("expandDistance")},set:function(t){this.setPropertyValue("expandDistance",t,!0)},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.slice&&this.slice.copyFrom(e.slice)},e}(r.a);a.b.registeredClasses.FunnelSlice=h},d5pU:function(t,e,i){i("6+x4")("WeakMap")},dJEq:function(t,e,i){var n=i("MfZA"),r=i("WtL7");t.exports=function(t){return function(){if(n(this)!=t)throw TypeError(t+"#toJSON isn't generic");return r(this)}}},dLrC:function(t,e,i){"use strict";var n=i("hgv4"),r=i("rFJX");t.exports=i("/Xnt")("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=n.getEntry(r(this,"Map"),t);return e&&e.v},set:function(t,e){return n.def(r(this,"Map"),0===t?0:t,e)}},n,!0)},"dS+R":function(t,e,i){i("YJIw")("Int8",1,function(t){return function(e,i,n){return t(this,e,i,n)}})},ds6r:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("dstF")(1);n(n.P+n.F*!i("GQop")([].map,!0),"Array",{map:function(t){return r(this,t,arguments[1])}})},dstF:function(t,e,i){var n=i("20m4"),r=i("sHIJ"),o=i("vJiZ"),a=i("FmWr"),s=i("L2Mu");t.exports=function(t,e){var i=1==t,u=2==t,l=3==t,h=4==t,c=6==t,p=5==t||c,d=e||s;return function(e,s,f){for(var g,m,y=o(e),b=r(y),v=n(s,f,3),_=a(b.length),x=0,P=i?d(e,_):u?d(e,0):void 0;_>x;x++)if((p||x in b)&&(m=v(g=b[x],x,y),t))if(i)P[x]=m;else if(m)switch(t){case 3:return!0;case 5:return g;case 6:return x;case 2:P.push(g)}else if(h)return!1;return c?-1:l||h?h:P}}},"e/xe":function(t,e,i){var n=i("Gb1H");n(n.S,"Object",{is:i("DVvQ")})},e8Nv:function(t,e,i){"use strict";var n=i("hjwn"),r=i("Wbjh");t.exports=function(t,e,i){e in t?n.f(t,e,r(0,i)):t[e]=i}},"e8Y+":function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{fround:i("kg8J")})},eAid:function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("Vs7R"),o=i("aCit"),a=i("8ZqG"),s=i("MIZb"),u=function(t){function e(){var e=t.call(this)||this;e.className="AxisLine",e.element=e.paper.add("path");var i=new s.a;return e.stroke=i.getFor("grid"),e.strokeOpacity=.15,e.pixelPerfect=!0,e.fill=Object(a.c)(),e.applyTheme(),e.interactionsEnabled=!1,e}return n.c(e,t),e}(r.a);o.b.registeredClasses.AxisLine=u},eBSV:function(t,e){e.f={}.propertyIsEnumerable},eCqC:function(t,e,i){"use strict";i.d(e,"a",function(){return o}),i.d(e,"b",function(){return a});var n=i("+qIf"),r=i("Mtpk"),o=function(){function t(){this._storage=new n.a,this.ttl=1e3}return t.prototype.set=function(t,e,i,o){var a=this._storage.insertKeyIfEmpty(t,function(){return new n.a}),s={touched:(new Date).getTime(),ttl:r.isNumber(o)?o:this.ttl,value:i};a.setKey(e,s)},t.prototype.get=function(t,e,i){if(void 0===i&&(i=void 0),this._storage.hasKey(t)){var n=this._storage.getKey(t);if(n.hasKey(e)){var r=n.getKey(e);return r.ttl&&r.touched+r.ttl<(new Date).getTime()&&(r.expired=!0),r.expired?(n.removeKey(e),i):r.value}return i}return i},t.prototype.clear=function(t){t?this._storage.removeKey(t):this._storage.clear()},t}(),a=new o},eN1s:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("m4/l"),r=i("qzbU"),o=i("aCit"),a=function(t){function e(){var e=t.call(this)||this;return e.className="AxisTick",e.element=e.paper.add("path"),e.location=.5,e.isMeasured=!1,e.pixelPerfect=!0,e.strokeOpacity=0,e.length=5,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"location",{get:function(){return this.getPropertyValue("location")},set:function(t){this.setPropertyValue("location",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inside",{get:function(){return this.getPropertyValue("inside")},set:function(t){this.setPropertyValue("inside",t,!0)},enumerable:!0,configurable:!0}),e.prototype.setDisabled=function(e){var i=t.prototype.setDisabled.call(this,e);return this.axis&&this.axis.invalidateDataItems(),i},e}(r.a);o.b.registeredClasses.AxisTick=a},eaU5:function(t,e,i){"use strict";i("Mvcd")("fixed",function(t){return function(){return t(this,"tt","","")}})},"eh+x":function(t,e){t.exports=Math.scale||function(t,e,i,n,r){return 0===arguments.length||t!=t||e!=e||i!=i||n!=n||r!=r?NaN:t===1/0||t===-1/0?t:(t-e)*(r-n)/(i-e)+n}},eske:function(t,e,i){"use strict";i.d(e,"a",function(){return m});var n=i("m4/l"),r=i("C6dT"),o=i("Vs7R"),a=i("vMqJ"),s=i("aCit"),u=i("MIZb"),l=i("Wglt"),h=i("wUYf"),c=i("MlsF"),p=i("3Cxr"),d=i("CnhP"),f=i("Qkdp"),g=i("uWmK"),m=function(t){function e(){var e=t.call(this)||this;return e.legendSettings=new g.c,e.className="FlowDiagramNode",e.isMeasured=!1,new u.a,e.draggable=!0,e.inert=!0,e.setStateOnChildren=!0,e.events.on("positionchanged",e.invalidateLinks,e,!1),e.events.on("sizechanged",e.invalidateLinks,e,!1),e.events.on("hit",e.handleHit,e,!1),e}return n.c(e,t),e.prototype.handleHit=function(t){this.isHidden||this.isHiding?this.show():this.hide()},e.prototype.show=function(e){var i=t.prototype.show.call(this,e);return this.outgoingDataItems.each(function(t){(!t.toNode||t.toNode&&!t.toNode.isHidden)&&t.setWorkingValue("value",t.getValue("value"),e)}),this.incomingDataItems.each(function(t){(!t.fromNode||t.fromNode&&!t.fromNode.isHidden)&&t.setWorkingValue("value",t.getValue("value"),e)}),i},e.prototype.hide=function(e){var i=t.prototype.hide.call(this,e);return this.outgoingDataItems.each(function(t){t.setWorkingValue("value",0,e)}),this.incomingDataItems.each(function(t){t.setWorkingValue("value",0,e)}),i},e.prototype.validate=function(){this.isDisposed()||(t.prototype.validate.call(this),this.invalidateLinks())},e.prototype.invalidateLinks=function(){var t=this;this.outgoingDataItems.each(function(e){var i=e.link;if("fromNode"==i.colorMode&&(i.fill=i.dataItem.fromNode.color),"gradient"==i.colorMode){i.fill=i.gradient,i.stroke=i.gradient;var n=i.gradient.stops.getIndex(0);n&&(n.color=t.color,i.gradient.validate())}}),this.incomingDataItems.each(function(e){var i=e.link;if("toNode"==i.colorMode&&(i.fill=i.dataItem.toNode.color),"gradient"==i.colorMode){i.fill=i.gradient,i.stroke=i.gradient;var n=i.gradient.stops.getIndex(1);n&&(n.color=t.color,i.gradient.validate())}})},Object.defineProperty(e.prototype,"incomingDataItems",{get:function(){var t=this;if(!this._incomingDataItems){var e=new a.b;e.events.on("inserted",function(){"name"==t.chart.sortBy?t._incomingSorted=l.sort(t._incomingDataItems.iterator(),function(t,e){return h.order(t.fromName,e.fromName)}):"value"==t.chart.sortBy?t._incomingSorted=l.sort(t._incomingDataItems.iterator(),function(t,e){return c.b(p.order(t.value,e.value))}):t._incomingSorted=t._incomingDataItems.iterator()},void 0,!1),this._incomingDataItems=e}return this._incomingDataItems},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outgoingDataItems",{get:function(){var t=this;if(!this._outgoingDataItems){var e=new a.b;e.events.on("inserted",function(){"name"==t.chart.sortBy?t._outgoingSorted=l.sort(t._outgoingDataItems.iterator(),function(t,e){return h.order(t.fromName,e.fromName)}):"value"==t.chart.sortBy?t._outgoingSorted=l.sort(t._outgoingDataItems.iterator(),function(t,e){return c.b(p.order(t.value,e.value))}):t._outgoingSorted=t._outgoingDataItems.iterator()},void 0,!1),this._outgoingDataItems=e}return this._outgoingDataItems},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this.getPropertyValue("name")},set:function(t){this.setPropertyValue("name",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"total",{get:function(){return this.getPropertyValue("total")},set:function(t){this.setPropertyValue("total",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"totalIncoming",{get:function(){return this.getPropertyValue("totalIncoming")},set:function(t){this.setPropertyValue("totalIncoming",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"totalOutgoing",{get:function(){return this.getPropertyValue("totalOutgoing")},set:function(t){this.setPropertyValue("totalOutgoing",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){return this.getPropertyValue("color")},set:function(t){this.setColorProperty("color",t),this._background&&(this._background.fill=t),this.fill=t},enumerable:!0,configurable:!0}),e.prototype.createLegendMarker=function(t){var e=t.pixelWidth,i=t.pixelHeight;t.removeChildren();var n=t.createChild(d.a);n.shouldClone=!1,f.copyProperties(this,n,o.b),n.stroke=this.fill,n.copyFrom(this),n.padding(0,0,0,0),n.width=e,n.height=i;var r=t.dataItem;r.color=n.fill,r.colorOrig=n.fill},Object.defineProperty(e.prototype,"legendDataItem",{get:function(){return this._legendDataItem},set:function(t){this._legendDataItem=t,this._legendDataItem.itemContainer.deepInvalidate()},enumerable:!0,configurable:!0}),e}(r.a);s.b.registeredClasses.FlowDiagramNode=m},f5kt:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("dstF")(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),n(n.P+n.F*o,"Array",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),i("M/YL")("find")},fDnL:function(t,e,i){var n=i("Gb1H"),r=i("RzG0")(),o=i("T9LF").process,a="process"==i("DVYA")(o);n(n.G,{asap:function(t){var e=a&&o.domain;r(e?e.bind(t):t)}})},fL7J:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},fRTO:function(t,e,i){var n=i("vJiZ"),r=i("K0ev");i("5lay")("getPrototypeOf",function(){return function(t){return r(n(t))}})},fTgz:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},fi6C:function(t,e,i){"use strict";i("Mvcd")("link",function(t){return function(e){return t(this,"a","href",e)}})},fyXH:function(t,e,i){var n=i("Gb1H");n(n.P,"Function",{bind:i("lLkc")})},g2OP:function(t,e,i){var n=i("DvJ+"),r=i("kFp5").onFreeze;i("5lay")("seal",function(t){return function(e){return t&&n(e)?t(r(e)):e}})},gD3S:function(t,e,i){t.exports=!i("AEc5")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},gJSe:function(t,e,i){var n=i("6MWL"),r=i("snR7"),o=i("K0ev"),a=n.has,s=n.get,u=n.key,l=function(t,e,i){if(a(t,e,i))return s(t,e,i);var n=o(e);return null!==n?l(t,n,i):void 0};n.exp({getMetadata:function(t,e){return l(t,r(e),arguments.length<3?void 0:u(arguments[2]))}})},gc4I:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("Ax3V"),o=i("DVYA"),a=i("UwWU"),s=i("FmWr"),u=[].slice;n(n.P+n.F*i("AEc5")(function(){r&&u.call(r)}),"Array",{slice:function(t,e){var i=s(this.length),n=o(this);if(e=void 0===e?i:e,"Array"==n)return u.call(this,t,e);for(var r=a(t,i),l=a(e,i),h=s(l-r),c=new Array(h),p=0;p<h;p++)c[p]="String"==n?this.charAt(r+p):this[r+p];return c}})},gmIO:function(t,e,i){var n=i("Gb1H");n(n.S,"Number",{EPSILON:Math.pow(2,-52)})},gmzR:function(t,e,i){var n=i("DvJ+"),r=i("kFp5").onFreeze;i("5lay")("preventExtensions",function(t){return function(e){return t&&n(e)?t(r(e)):e}})},hD5A:function(t,e,i){"use strict";i.d(e,"b",function(){return a}),i.d(e,"c",function(){return s}),i.d(e,"d",function(){return u}),i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("hJ5i"),o=i("Mtpk"),a=function(){function t(t){this._disposed=!1,this._dispose=t}return t.prototype.isDisposed=function(){return this._disposed},t.prototype.dispose=function(){this._disposed||(this._disposed=!0,this._dispose())},t}(),s=function(t){function e(e){return t.call(this,function(){r.each(e,function(t){t.dispose()})})||this}return n.c(e,t),e}(a),u=function(t){function e(){var e=t.call(this,function(){o.hasValue(e._disposer)&&(e._disposer.dispose(),e._disposer=void 0)})||this;return e}return n.c(e,t),e.prototype.get=function(){return this._value},e.prototype.set=function(t,e){o.hasValue(this._disposer)&&this._disposer.dispose(),this._disposer=e,this._value=t},e.prototype.reset=function(){this.set(void 0,void 0)},e}(a),l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._counter=0,e}return n.c(e,t),e.prototype.increment=function(){var t=this;return++this._counter,new a(function(){--t._counter,0===t._counter&&t.dispose()})},e}(a)},hGwe:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.polyline=function(t){for(var e=s(t[0]),i={x:0,y:0},r=0,o=t.length;r<o;r++){var a=t[r];n.getDistance(a,i)>.5&&(e+=s(a),i=a)}return e},e.moveTo=a,e.lineTo=s,e.quadraticCurveTo=function(t,e){return" Q"+n.round(e.x,4)+","+n.round(e.y,4)+" "+n.round(t.x,4)+","+n.round(t.y,4)},e.cubicCurveTo=function(t,e,i){return" C"+n.round(e.x,4)+","+n.round(e.y,4)+" "+n.round(i.x,4)+","+n.round(i.y,4)+" "+n.round(t.x,4)+","+n.round(t.y,4)},e.closePath=u,e.arcTo=l,e.arc=function(t,e,i,o,u,c,p){if(0==e)return"";r.isNumber(o)||(o=0);if(0==i&&o<=0)return"";if(i<o){var d=i;i=o,o=d,r.isNumber(u)&&(u=u/o*i)}360==(e=n.min(e,360))&&(c=0,p=0);var f=t+e,g=n.sin(n.min(e,45)/2);u=r.isNumber(u)?u:i,c=c||0,p=r.isNumber(p)?p:c;var m=u/i*o,y=u/i*c,b=u/i*p;c=n.fitToRange(c,0,(i-o)/2),y=n.fitToRange(y,0,(u-m)/2),p=n.fitToRange(p,0,(i-o)/2),b=n.fitToRange(b,0,(u-m)/2),c=n.round(n.fitToRange(c,0,i*g),4),y=n.round(n.fitToRange(y,0,u*g),4),p=n.round(n.fitToRange(p,0,o*g),4),b=n.round(n.fitToRange(b,0,m*g),4);var v=Math.asin(c/i/2)*n.DEGREES*2,_=Math.asin(y/u/2)*n.DEGREES*2;o<p&&(o=p);m<b&&(m=b);var x=Math.asin(p/o/2)*n.DEGREES*2,P=Math.asin(b/m/2)*n.DEGREES*2;r.isNumber(x)||(x=0);r.isNumber(P)||(P=0);var w=t+e/2,O={x:n.round(n.cos(w)*o,4),y:n.sin(w)*m},S={x:n.cos(t)*(o+p),y:n.sin(t)*(m+b)},T={x:n.cos(t)*(i-c),y:n.sin(t)*(u-y)},C={x:n.cos(f)*(i-c),y:n.sin(f)*(u-y)},k={x:n.cos(f)*(o+p),y:n.sin(f)*(m+b)},I={x:n.cos(t+v)*i,y:n.sin(t+_)*u},M={x:n.cos(f-x)*o,y:n.sin(f-P)*m};p+=p*n.sin(x/2),b+=b*n.sin(P/2),x>(f-t)/2&&(M=O);var j="";360==e?j=a(T):(j=a(S),j+=s(T),j+=h(I,c,y,!0));j+=l(t+v,e-2*v,i,u),r.isNumber(o)&&0!=o?(360==e&&0==c?j+=a(k):(j+=h(C,c,y,!0),j+=s(k),j+=h(M,p,b,!0)),j+=l(f-x,-(e-2*x),o,m),(e<360||c>0)&&(j+=h(S,p,b,!0)),j+=s(S)):(j+=h(C,c,y,!0),e<360&&(j+=s(S)));return j},e.arcToPoint=h,e.rectangle=function(t,e,i,n){r.isNumber(i)||(i=0);r.isNumber(n)||(n=0);return a({x:i,y:n})+s({x:i+t,y:n})+s({x:i+t,y:n+e})+s({x:i,y:n+e})+" Z"},e.rectToPath=function(t,e){var i=",",n=" L";return e?"M"+t.x+i+t.y+n+t.x+i+(t.y+t.height)+n+(t.x+t.width)+i+(t.y+t.height)+n+(t.x+t.width)+i+t.y+n+t.x+i+t.y:"M"+t.x+i+t.y+n+(t.x+t.width)+i+t.y+n+(t.x+t.width)+i+(t.y+t.height)+n+t.x+i+(t.y+t.height)+n+t.x+i+t.y},e.pathToPoints=function(t,e){var i=Object(o.b)().add("path").node;if(i.setAttribute("d",t),i.getPointAtLength&&i.getTotalLength){for(var n=i.getTotalLength(),r=[],a=0;a<e;a++){var s=i.getPointAtLength(a/e*n);r.push({x:s.x,y:s.y})}return r}i.remove()},e.spiralPoints=function(t,e,i,r,o,a,s){var u=o+.01,l=0,h=[];for(;u<i;){var c=a;c/2>u&&(c=2*u);var p=(l+=2*Math.asin(c/2/u))*n.DEGREES,d={x:t+u*Math.cos(l),y:e+u*r/i*Math.sin(l)};h.push(d),u=o+p/360*s}return h},e.pointsToPath=function(t){var e=a(t[0]);if(t&&t.length>0)for(var i=1;i<t.length;i++)e+=s(t[i]);return e};var n=i("Gg2j"),r=i("Mtpk"),o=i("P7v+");function a(t){return" M"+n.round(t.x,4)+","+n.round(t.y,4)+" "}function s(t){return" L"+n.round(t.x,4)+","+n.round(t.y,4)+" "}function u(){return" Z"}function l(t,e,i,o){if(0==e)return"";r.isNumber(o)||(o=i);var a="",u=",",l=Math.ceil(Math.abs(e)/180),h=1;e<0&&(h=0);var c=0,p=0,d=-n.cos(t)*i,f=-n.sin(t)*o;if(e<.5&&i>3e3){var g=t+e;return s({x:y=n.round(n.cos(g)*i,4),y:b=n.round(n.sin(g)*o,4)})}for(var m=0;m<l;m++){var y,b;g=t+e/l*(m+1);a+=" a"+i+u+o+u+0+u+0+u+h+u+(y=n.round(n.cos(g)*i+d-c,4))+u+(b=n.round(n.sin(g)*o+f-p,4)),c=y,p=b}return a}function h(t,e,i,r,o,a){if(0==e)return"";var s=",";return" A"+e+s+i+s+(a=a||0)+s+ +(o=Boolean(o))+s+ +(r=Boolean(r))+s+n.round(t.x,4)+s+n.round(t.y,4)}},hIRz:function(t,e,i){"use strict";i("Mvcd")("big",function(t){return function(){return t(this,"big","","")}})},hJ5i:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.indexOf=o,e.any=function(t,e){for(var i=t.length,n=0;n<i;++n)if(e(t[n]))return!0;return!1},e.map=function(t,e){for(var i=t.length,n=new Array(i),r=0;r<i;++r)n[r]=e(t[r],r);return n},e.each=function(t,e){for(var i=t.length,n=0;n<i;++n)e(t[n],n)},e.eachReverse=function(t,e){var i=t.length;for(;i--;)e(t[i],i)},e.eachContinue=function(t,e){for(var i=t.length,n=0;n<i&&e(t[n],n);++n);},e.shiftLeft=function(t,e){for(var i=t.length,n=e;n<i;++n)t[n-e]=t[n];t.length=i-e},e.last=function(t){var e=t.length;return e?t[e-1]:void 0},e.first=function(t){return t[0]},e.insert=a,e.setIndex=function(t,e,i){s(t,e),a(t,e,i)},e.pushAll=function(t,e){for(var i=e.length,n=0;n<i;++n)t.push(e[n])},e.remove=s,e.move=function(t,e,i){var n=o(t,e);-1!==n&&l(t,n);null==i?t.push(e):u(t,i,e)},e.add=function(t,e,i){r.isNumber(i)?0===i?t.unshift(e):t.splice(i,0,e):t.push(e)},e.replace=function(t,e,i){var n=t.indexOf(e);-1!==n&&t.splice(n,1);r.isNumber(i)?t.splice(i,0,e):t.push(e)},e.toArray=function(t){return Array.isArray(t)?t:[t]},e.has=function(t,e){return-1!==o(t,e)},e.copy=function(t){for(var e=t.length,i=new Array(e),n=0;n<e;++n)i[n]=t[n];return i},e.slice=function(t,e,i){void 0===i&&(i=t.length);for(var n=new Array(i-e),r=e;r<i;++r)n[r-e]=t[r];return n},e.insertIndex=u,e.removeIndex=l,e.getSortedIndex=function(t,e,i){var n=0,r=t.length,o=!1;for(;n<r;){var a=n+r>>1,s=e(i,t[a]);s<0?r=a:0===s?(o=!0,n=a+1):n=a+1}return{found:o,index:o?n-1:n}},e.findIndex=h,e.find=function(t,e){var i=h(t,e);if(-1!==i)return t[i]},e.shuffle=function(t){var e,i,n=t.length;for(;0!==n;)i=Math.floor(Math.random()*n),e=t[n-=1],t[n]=t[i],t[i]=e};var n=i("Gg2j"),r=i("Mtpk");function o(t,e){for(var i=t.length,n=0;n<i;++n)if(t[n]===e)return n;return-1}function a(t,e,i){i=n.fitToRange(i,0,t.length),t.splice(i,0,e)}function s(t,e){var i=!1,n=t.indexOf(e);if(-1!==n){i=!0,t.splice(n,1);for(var r=t.length;n<r;)t[n]===e?(t.splice(n,1),--r):++n}return i}function u(t,e,i){t.splice(e,0,i)}function l(t,e){t.splice(e,1)}function h(t,e){for(var i=t.length,n=0;n<i;++n)if(e(t[n],n))return n;return-1}},hLeK:function(t,e,i){var n=i("nHHr"),r=i("K0ev"),o=i("U3hN"),a=i("Gb1H"),s=i("DvJ+"),u=i("snR7");a(a.S,"Reflect",{get:function t(e,i){var a,l,h=arguments.length<3?e:arguments[2];return u(e)===h?e[i]:(a=n.f(e,i))?o(a,"value")?a.value:void 0!==a.get?a.get.call(h):void 0:s(l=r(e))?t(l,i,h):void 0}})},hLmE:function(t,e,i){"use strict";i("nAZS")("trim",function(t){return function(){return t(this,3)}})},hcxM:function(t,e,i){var n=i("DvJ+"),r=Math.floor;t.exports=function(t){return!n(t)&&isFinite(t)&&r(t)===t}},heQh:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},hgv4:function(t,e,i){"use strict";var n=i("hjwn").f,r=i("5+SK"),o=i("cA+3"),a=i("20m4"),s=i("ypVE"),u=i("hpnp"),l=i("Uobz"),h=i("36h5"),c=i("vdWU"),p=i("gD3S"),d=i("kFp5").fastKey,f=i("rFJX"),g=p?"_s":"size",m=function(t,e){var i,n=d(e);if("F"!==n)return t._i[n];for(i=t._f;i;i=i.n)if(i.k==e)return i};t.exports={getConstructor:function(t,e,i,l){var h=t(function(t,n){s(t,h,e,"_i"),t._t=e,t._i=r(null),t._f=void 0,t._l=void 0,t[g]=0,void 0!=n&&u(n,i,t[l],t)});return o(h.prototype,{clear:function(){for(var t=f(this,e),i=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete i[n.i];t._f=t._l=void 0,t[g]=0},delete:function(t){var i=f(this,e),n=m(i,t);if(n){var r=n.n,o=n.p;delete i._i[n.i],n.r=!0,o&&(o.n=r),r&&(r.p=o),i._f==n&&(i._f=r),i._l==n&&(i._l=o),i[g]--}return!!n},forEach:function(t){f(this,e);for(var i,n=a(t,arguments.length>1?arguments[1]:void 0,3);i=i?i.n:this._f;)for(n(i.v,i.k,this);i&&i.r;)i=i.p},has:function(t){return!!m(f(this,e),t)}}),p&&n(h.prototype,"size",{get:function(){return f(this,e)[g]}}),h},def:function(t,e,i){var n,r,o=m(t,e);return o?o.v=i:(t._l=o={i:r=d(e,!0),k:e,v:i,p:n=t._l,n:void 0,r:!1},t._f||(t._f=o),n&&(n.n=o),t[g]++,"F"!==r&&(t._i[r]=o)),t},getEntry:m,setStrong:function(t,e,i){l(t,e,function(t,i){this._t=f(t,e),this._k=i,this._l=void 0},function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?h(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,h(1))},i?"entries":"values",!i,!0),c(e)}}},hjwn:function(t,e,i){var n=i("snR7"),r=i("HW78"),o=i("W0fk"),a=Object.defineProperty;e.f=i("gD3S")?Object.defineProperty:function(t,e,i){if(n(t),e=o(e,!0),n(i),r)try{return a(t,e,i)}catch(t){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(t[e]=i.value),t}},hpNl:function(t,e,i){"use strict";i.d(e,"a",function(){return r});var n=i("8ZqG"),r=function(){function t(){}return t.opacity=1,t.strokeOpacity=1,t.strokeWidth=1,t.fillOpacity=1,t.fill=Object(n.c)("#000000"),t.stroke=Object(n.c)("#000000"),t.focusable=void 0,t.tabindex=0,t}()},hpnp:function(t,e,i){var n=i("20m4"),r=i("sNEp"),o=i("a8UT"),a=i("snR7"),s=i("FmWr"),u=i("iOZG"),l={},h={};(e=t.exports=function(t,e,i,c,p){var d,f,g,m,y=p?function(){return t}:u(t),b=n(i,c,e?2:1),v=0;if("function"!=typeof y)throw TypeError(t+" is not iterable!");if(o(y)){for(d=s(t.length);d>v;v++)if((m=e?b(a(f=t[v])[0],f[1]):b(t[v]))===l||m===h)return m}else for(g=y.call(t);!(f=g.next()).done;)if((m=r(g,b,f.value,e))===l||m===h)return m}).BREAK=l,e.RETURN=h},hxI2:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.rgb=function(t,e){var i;o[t]?i=o[t]:"#"===t.charAt(0)?i=a(t):t.match(/^rgba?\(/)&&(i=s(t));i||(i={r:0,g:0,b:0,a:1});r.hasValue(e)&&(i.a=e);return i},e.hexToRgb=a,e.rgbaToRgb=s,e.rgbToHex=function(t){return"#"+u(t.r.toString(16))+u(t.g.toString(16))+u(t.b.toString(16))},e.rgbToRGBA=function(t){return r.hasValue(t.a)&&1!==t.a?"rgba("+t.r+","+t.g+","+t.b+","+t.a+")":"rgb("+t.r+","+t.g+","+t.b+")"},e.pad2=u,e.interpolate=function(t,e,i){return i=n.fitToRange(i,0,1),t?e?{r:t.r+Math.round((e.r-t.r)*i),g:t.g+Math.round((e.g-t.g)*i),b:t.b+Math.round((e.b-t.b)*i),a:(t.a||1)+Math.round(((e.a||1)-(t.a||1))*i)}:t:e||t},e.lighten=function(t,e){return t?{r:Math.max(0,Math.min(255,t.r+l(t.r,e))),g:Math.max(0,Math.min(255,t.g+l(t.g,e))),b:Math.max(0,Math.min(255,t.b+l(t.b,e))),a:t.a}:t},e.getLightnessStep=l,e.brighten=function(t,e){if(t){var i=Math.min(Math.max(t.r,t.g,t.b),230),n=l(i,e);return{r:Math.max(0,Math.min(255,Math.round(t.r+n))),g:Math.max(0,Math.min(255,Math.round(t.g+n))),b:Math.max(0,Math.min(255,Math.round(t.b+n))),a:t.a}}return t},e.getBrightnessStep=function(t,e){return Math.round(255*e)},e.saturate=function(t,e){if(null==t||1==e)return t;var i=c(t);return i.s=e,h(i)},e.hslToRgb=h,e.rgbToHsl=c,e.rgbToHsv=function(t){var e=t.r/255,i=t.g/255,n=t.b/255,r=Math.max(e,i,n),o=Math.min(e,i,n),a=0,s=0,u=r,l=r-o;if(s=0==r?0:l/r,r==o)a=0;else{switch(r){case e:a=(i-n)/l+(i<n?6:0);break;case i:a=(n-e)/l+2;break;case n:a=(e-i)/l+4}a/=6}return{h:a,s:s,v:u}},e.hsvToRgb=function(t){var e=0,i=0,n=0,r=t.h,o=t.s,a=t.v,s=Math.floor(6*r),u=6*r-s,l=a*(1-o),h=a*(1-u*o),c=a*(1-(1-u)*o);switch(s%6){case 0:e=a,i=c,n=l;break;case 1:e=h,i=a,n=l;break;case 2:e=l,i=a,n=c;break;case 3:e=l,i=h,n=a;break;case 4:e=c,i=l,n=a;break;case 5:e=a,i=l,n=h}return{r:Math.round(255*e),g:Math.round(255*i),b:Math.round(255*n)}},e.isLight=function(t){return(299*t.r+587*t.g+114*t.b)/1e3>=128};var n=i("Gg2j"),r=i("Mtpk"),o={aliceblue:{r:240,g:248,b:255},antiquewhite:{r:250,g:235,b:215},aqua:{r:0,g:255,b:255},aquamarine:{r:127,g:255,b:212},azure:{r:240,g:255,b:255},beige:{r:245,g:245,b:220},bisque:{r:255,g:228,b:196},black:{r:0,g:0,b:0},blanchedalmond:{r:255,g:235,b:205},blue:{r:0,g:0,b:255},blueviolet:{r:138,g:43,b:226},brown:{r:165,g:42,b:42},burlywood:{r:222,g:184,b:135},cadetblue:{r:95,g:158,b:160},chartreuse:{r:127,g:255,b:0},chocolate:{r:210,g:105,b:30},coral:{r:255,g:127,b:80},cornflowerblue:{r:100,g:149,b:237},cornsilk:{r:255,g:248,b:220},crimson:{r:220,g:20,b:60},cyan:{r:0,g:255,b:255},darkblue:{r:0,g:0,b:139},darkcyan:{r:0,g:139,b:139},darkgoldenrod:{r:184,g:134,b:11},darkgray:{r:169,g:169,b:169},darkgrey:{r:169,g:169,b:169},darkgreen:{r:0,g:100,b:0},darkkhaki:{r:189,g:183,b:107},darkmagenta:{r:139,g:0,b:139},darkolivegreen:{r:85,g:107,b:47},darkorange:{r:255,g:140,b:0},darkorchid:{r:153,g:50,b:204},darkred:{r:139,g:0,b:0},darksalmon:{r:233,g:150,b:122},darkseagreen:{r:143,g:188,b:143},darkslateblue:{r:72,g:61,b:139},darkslategray:{r:47,g:79,b:79},darkslategrey:{r:47,g:79,b:79},darkturquoise:{r:0,g:206,b:209},darkviolet:{r:148,g:0,b:211},deeppink:{r:255,g:20,b:147},deepskyblue:{r:0,g:191,b:255},dimgray:{r:105,g:105,b:105},dimgrey:{r:105,g:105,b:105},dodgerblue:{r:30,g:144,b:255},firebrick:{r:178,g:34,b:34},floralwhite:{r:255,g:250,b:240},forestgreen:{r:34,g:139,b:34},fuchsia:{r:255,g:0,b:255},gainsboro:{r:220,g:220,b:220},ghostwhite:{r:248,g:248,b:255},gold:{r:255,g:215,b:0},goldenrod:{r:218,g:165,b:32},gray:{r:128,g:128,b:128},grey:{r:128,g:128,b:128},green:{r:0,g:128,b:0},greenyellow:{r:173,g:255,b:47},honeydew:{r:240,g:255,b:240},hotpink:{r:255,g:105,b:180},indianred:{r:205,g:92,b:92},indigo:{r:75,g:0,b:130},ivory:{r:255,g:255,b:240},khaki:{r:240,g:230,b:140},lavender:{r:230,g:230,b:250},lavenderblush:{r:255,g:240,b:245},lawngreen:{r:124,g:252,b:0},lemonchiffon:{r:255,g:250,b:205},lightblue:{r:173,g:216,b:230},lightcoral:{r:240,g:128,b:128},lightcyan:{r:224,g:255,b:255},lightgoldenrodyellow:{r:250,g:250,b:210},lightgray:{r:211,g:211,b:211},lightgrey:{r:211,g:211,b:211},lightgreen:{r:144,g:238,b:144},lightpink:{r:255,g:182,b:193},lightsalmon:{r:255,g:160,b:122},lightseagreen:{r:32,g:178,b:170},lightskyblue:{r:135,g:206,b:250},lightslategray:{r:119,g:136,b:153},lightslategrey:{r:119,g:136,b:153},lightsteelblue:{r:176,g:196,b:222},lightyellow:{r:255,g:255,b:224},lime:{r:0,g:255,b:0},limegreen:{r:50,g:205,b:50},linen:{r:250,g:240,b:230},magenta:{r:255,g:0,b:255},maroon:{r:128,g:0,b:0},mediumaquamarine:{r:102,g:205,b:170},mediumblue:{r:0,g:0,b:205},mediumorchid:{r:186,g:85,b:211},mediumpurple:{r:147,g:112,b:219},mediumseagreen:{r:60,g:179,b:113},mediumslateblue:{r:123,g:104,b:238},mediumspringgreen:{r:0,g:250,b:154},mediumturquoise:{r:72,g:209,b:204},mediumvioletred:{r:199,g:21,b:133},midnightblue:{r:25,g:25,b:112},mintcream:{r:245,g:255,b:250},mistyrose:{r:255,g:228,b:225},moccasin:{r:255,g:228,b:181},navajowhite:{r:255,g:222,b:173},navy:{r:0,g:0,b:128},oldlace:{r:253,g:245,b:230},olive:{r:128,g:128,b:0},olivedrab:{r:107,g:142,b:35},orange:{r:255,g:165,b:0},orangered:{r:255,g:69,b:0},orchid:{r:218,g:112,b:214},palegoldenrod:{r:238,g:232,b:170},palegreen:{r:152,g:251,b:152},paleturquoise:{r:175,g:238,b:238},palevioletred:{r:219,g:112,b:147},papayawhip:{r:255,g:239,b:213},peachpuff:{r:255,g:218,b:185},peru:{r:205,g:133,b:63},pink:{r:255,g:192,b:203},plum:{r:221,g:160,b:221},powderblue:{r:176,g:224,b:230},purple:{r:128,g:0,b:128},rebeccapurple:{r:102,g:51,b:153},red:{r:255,g:0,b:0},rosybrown:{r:188,g:143,b:143},royalblue:{r:65,g:105,b:225},saddlebrown:{r:139,g:69,b:19},salmon:{r:250,g:128,b:114},sandybrown:{r:244,g:164,b:96},seagreen:{r:46,g:139,b:87},seashell:{r:255,g:245,b:238},sienna:{r:160,g:82,b:45},silver:{r:192,g:192,b:192},skyblue:{r:135,g:206,b:235},slateblue:{r:106,g:90,b:205},slategray:{r:112,g:128,b:144},slategrey:{r:112,g:128,b:144},snow:{r:255,g:250,b:250},springgreen:{r:0,g:255,b:127},steelblue:{r:70,g:130,b:180},tan:{r:210,g:180,b:140},teal:{r:0,g:128,b:128},thistle:{r:216,g:191,b:216},tomato:{r:255,g:99,b:71},turquoise:{r:64,g:224,b:208},violet:{r:238,g:130,b:238},wheat:{r:245,g:222,b:179},white:{r:255,g:255,b:255},whitesmoke:{r:245,g:245,b:245},yellow:{r:255,g:255,b:0},yellowgreen:{r:154,g:205,b:50}};function a(t){t=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(t,e,i,n){return e+e+i+i+n+n});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:void 0}function s(t){var e;if(e=(t=t.replace(/[ ]/g,"")).match(/^rgb\(([0-9]*),([0-9]*),([0-9]*)\)/i))e.push("1");else if(!(e=t.match(/^rgba\(([0-9]*),([0-9]*),([0-9]*),([.0-9]*)\)/i)))return;return{r:parseInt(e[1]),g:parseInt(e[2]),b:parseInt(e[3]),a:parseFloat(e[4])}}function u(t){return 1==t.length?"0"+t:""+t}function l(t,e){var i=e>0?255-t:t;return Math.round(i*e)}function h(t){var e,i,n,r=t.h,o=t.s,a=t.l;if(0==o)e=i=n=a;else{var s=function(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t},u=a<.5?a*(1+o):a+o-a*o,l=2*a-u;e=s(l,u,r+1/3),i=s(l,u,r),n=s(l,u,r-1/3)}return{r:Math.round(255*e),g:Math.round(255*i),b:Math.round(255*n)}}function c(t){var e=t.r/255,i=t.g/255,n=t.b/255,r=Math.max(e,i,n),o=Math.min(e,i,n),a=0,s=0,u=(r+o)/2;if(r===o)a=s=0;else{var l=r-o;switch(s=u>.5?l/(2-r-o):l/(r+o),r){case e:a=(i-n)/l+(i<n?6:0);break;case i:a=(n-e)/l+2;break;case n:a=(e-i)/l+4}a/=6}return{h:a,s:s,l:u}}},iAlL:function(t,e,i){var n=i("3BzE"),r=i("EhJv"),o=i("eBSV").f;t.exports=function(t){return function(e){for(var i,a=r(e),s=n(a),u=s.length,l=0,h=[];u>l;)o.call(a,i=s[l++])&&h.push(t?[i,a[i]]:a[i]);return h}}},iOZG:function(t,e,i){var n=i("MfZA"),r=i("YEtG")("iterator"),o=i("9BM3");t.exports=i("G5U1").getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||o[n(t)]}},iTz5:function(t,e,i){var n=i("Gb1H"),r=i("UwWU"),o=String.fromCharCode,a=String.fromCodePoint;n(n.S+n.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(t){for(var e,i=[],n=arguments.length,a=0;n>a;){if(e=+arguments[a++],r(e,1114111)!==e)throw RangeError(e+" is not a valid code point");i.push(e<65536?o(e):o(55296+((e-=65536)>>10),e%1024+56320))}return i.join("")}})},iYyY:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("snR7"),o=function(t){this._t=r(t),this._i=0;var e,i=this._k=[];for(e in t)i.push(e)};i("Cekr")(o,"Object",function(){var t,e=this._k;do{if(this._i>=e.length)return{value:void 0,done:!0}}while(!((t=e[this._i++])in this._t));return{value:t,done:!1}}),n(n.S,"Reflect",{enumerate:function(t){return new o(t)}})},icDv:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("aZcm"),o=i("vJiZ"),a=i("FmWr"),s=i("DbOM"),u=i("L2Mu");n(n.P,"Array",{flatMap:function(t){var e,i,n=o(this);return s(t),e=a(n.length),i=u(n,0),r(i,n,n,e,0,1,t,arguments[1]),i}}),i("M/YL")("flatMap")},iuHC:function(t,e,i){var n=i("Gb1H"),r=i("17ao");n(n.S+n.F*(Number.parseInt!=r),"Number",{parseInt:r})},izpu:function(t,e,i){var n=i("Gb1H");n(n.G,{global:i("T9LF")})},j2vi:function(t,e,i){var n=i("Gb1H"),r=i("snR7"),o=Object.preventExtensions;n(n.S,"Reflect",{preventExtensions:function(t){r(t);try{return o&&o(t),!0}catch(t){return!1}}})},jfaP:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("Vs7R"),o=i("8ZqG"),a=i("aCit"),s=i("hGwe"),u=i("Gg2j"),l=function(t){function e(){var e=t.call(this)||this;return e._distance=0,e.className="Polyline",e.element=e.paper.add("path"),e.shapeRendering="auto",e.fill=Object(o.c)(),e.strokeOpacity=1,e.applyTheme(),e}return n.c(e,t),e.prototype.makePath=function(){this._distance=0;var t=this.segments;if(t&&t.length>0){for(var e="",i=0,n=t.length;i<n;i++){var r=t[i];if(r.length>0){e+=s.moveTo(r[0]);for(var o=1;o<r.length;o++){var a=r[o];e+=s.lineTo(a),this._distance+=u.getDistance(r[o-1],a)}}}this.path=e}this._realSegments=t},Object.defineProperty(e.prototype,"segments",{get:function(){return this.getPropertyValue("segments")},set:function(t){this.setPropertyValue("segments",t),this.makePath()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"distance",{get:function(){return this._distance},enumerable:!0,configurable:!0}),e.prototype.positionToPoint=function(t){var e=0;t<0&&(t=Math.abs(t),e=180);var i=this._realSegments;if(i){for(var n=this.distance,r=0,o=0,a=0,s=void 0,l=void 0,h=0;h<i.length;h++){var c=i[h];if(c.length>1){for(var p=1;p<c.length;p++)if(s=c[p-1],l=c[p],o=r/n,a=(r+=u.getDistance(s,l))/n,o<=t&&a>t){h=i.length;break}}else 1==c.length&&(s=c[0],l=c[0],o=0,a=1)}if(s&&l){var d=(t-o)/(a-o),f=u.getMidPoint(s,l,d);return{x:f.x,y:f.y,angle:e+u.getAngle(s,l)}}}return{x:0,y:0,angle:0}},e}(r.a);a.b.registeredClasses.Polyline=l},jgQn:function(t,e,i){i("gD3S")&&"g"!=/./g.flags&&i("hjwn").f(RegExp.prototype,"flags",{configurable:!0,get:i("x2K9")})},jvLk:function(t,e,i){"use strict";i("jgQn");var n=i("snR7"),r=i("x2K9"),o=i("gD3S"),a=/./.toString,s=function(t){i("wDk4")(RegExp.prototype,"toString",t,!0)};i("AEc5")(function(){return"/a/b"!=a.call({source:"a",flags:"b"})})?s(function(){var t=n(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?r.call(t):void 0)}):"toString"!=a.name&&s(function(){return a.call(this)})},k6kv:function(t,e,i){"use strict";i.d(e,"a",function(){return f});var n=i("m4/l"),r=i("Meme"),o=i("ND2/"),a=i("w4m0"),s=i("aCit"),u=i("tjMS"),l=i("Gg2j"),h=i("hGwe"),c=i("v9UT"),p=i("Mtpk"),d=i("TGuK"),f=function(t){function e(){var e=t.call(this)||this;return e.className="AxisRendererX",e.minGridDistance=120,e.opposite=!1,e.rotation=0,e.width=Object(u.c)(100),e.labels.template.horizontalCenter="middle",e.applyTheme(),e}return n.c(e,t),e.prototype.setAxis=function(e){t.prototype.setAxis.call(this,e),e.layout="vertical"},e.prototype.updateGridContainer=function(){var t=this.axis;if(t){var e=this.gridContainer;e.x=t.pixelX,e.width=t.pixelWidth}},e.prototype.processRenderer=function(){t.prototype.processRenderer.call(this);var e=this.axis;if(e){e.width=Object(u.c)(100),this.line;var i=e.title;i.rotation=0,i.align="center",this.opposite?(this.line.toFront(),i.toBack()):(i.toFront(),this.line.toBack())}},e.prototype.updateTooltip=function(){if(this.axis){var t=this.line.pixelX,e=this.line.pixelY,i=this.axisLength,n=1e3;this.opposite?this.inside||(e=-1e3,n=1e3):this.inside&&(e=-1e3,n=1e3),this.axis.updateTooltip("vertical",{x:t,y:e,width:i,height:n})}},e.prototype.updateLabelElement=function(t,e,i,n){p.hasValue(n)||(n=t.location),e+=(i-e)*n;var r=this.positionToPoint(e);t.isMeasured=!t.inside;var o,a=0;this.opposite?(t.inside?(o="top","bottom"==t.valign&&(a=this.gridContainer.maxHeight,o="bottom")):o="bottom",r.y=a):(t.inside?(o="bottom","top"==t.valign&&(a=-this.gridContainer.maxHeight,o="top")):o="top",r.y+=a),0==t.rotation&&(t.verticalCenter=o),this.positionItem(t,r),this.toggleVisibility(t,e,this.minLabelPosition,this.maxLabelPosition)},Object.defineProperty(e.prototype,"axisLength",{get:function(){var t=this.axis;return t.measuredWidth-t.pixelPaddingRight-t.pixelPaddingLeft||0},enumerable:!0,configurable:!0}),e.prototype.positionToPoint=function(t){return{x:this.positionToCoordinate(t),y:0}},e.prototype.pointToPosition=function(t){return this.coordinateToPosition(t.x)},e.prototype.getPositionRangePath=function(t,e){var i=l.fitToRange(this.positionToCoordinate(t),0,this.axisLength),n=l.fitToRange(this.positionToCoordinate(e),0,this.axisLength),r=Math.abs(n-i),o=this.getHeight(),a=Math.min(i,n);return h.rectToPath({x:a,y:0,width:r,height:o},!0)},e.prototype.updateBreakElement=function(e){t.prototype.updateBreakElement.call(this,e);var i=e.startLine,n=e.endLine,r=e.fillShape,o=e.startPoint,a=e.endPoint,s=e.pixelMarginLeft,u=this.getHeight()-e.pixelMarginTop-e.pixelMarginBottom;o.x=l.fitToRange(o.x,-1,this.pixelWidth+1),a.x=l.fitToRange(a.x,-1,this.pixelWidth+1),o.x==a.x&&(o.x<0||o.x>this.pixelWidth)?e.fillShape.__disabled=!0:e.fillShape.__disabled=!1,i.y=s,i.width=0,i.height=u,n.y=s,n.width=0,n.height=u,r.height=u,r.width=Math.abs(a.x-o.x),r.y=s,r.x=o.x},e.prototype.updateGridElement=function(t,e,i){e+=(i-e)*t.location;var n=this.positionToPoint(e);t.path=h.moveTo({x:0,y:0})+h.lineTo({x:0,y:this.getHeight()}),this.positionItem(t,n),this.toggleVisibility(t,e,0,1)},e.prototype.updateTickElement=function(t,e,i){e+=(i-e)*t.location;var n=this.positionToPoint(e),r=t.length;this.opposite?(n.y=0,r*=t.inside?1:-1):(n.y=this.gridContainer.pixelHeight,r*=t.inside?-1:1),t.path=h.moveTo({x:0,y:0})+h.lineTo({x:0,y:r}),this.positionItem(t,n),this.toggleVisibility(t,e,0,1)},e.prototype.updateAxisLine=function(){this.line.path=h.moveTo({x:0,y:0})+h.lineTo({x:this.axisLength,y:0})},e.prototype.updateBaseGridElement=function(){t.prototype.updateBaseGridElement.call(this);var e=this.axis,i=this.getHeight(),n=this.pixelWidth,r=this.baseGrid,o=e.basePoint.x;if(o<0||o>n)r.hide(0);else{var a=c.spritePointToSprite({x:0,y:0},this.gridContainer,r.parent).y;r.path=h.moveTo({x:0,y:0})+h.lineTo({x:0,y:i}),r.moveTo({x:o,y:a}),r.show(0)}},e.prototype.createBreakSprites=function(t){t.startLine=new o.a,t.endLine=new o.a;var e=new a.a;e.setWavedSides(!1,!0,!1,!0),t.fillShape=e},e.prototype.toAxisPosition=function(t){var e=t,i=this.axis,n=i.parent;return i&&n?(e-i.pixelX/n.innerWidth)/(i.pixelWidth/n.innerWidth):t},e}(r.a);s.b.registeredClasses.AxisRendererX=f,d.c.push({relevant:d.b.heightXS,state:function(t,e){if(t instanceof f){var i=t.states.create(e);return i.properties.inside=!0,i.properties.maxLabelPosition=.9,i.properties.minLabelPosition=.1,i}return null}}),d.c.push({relevant:d.b.heightXXS,state:function(t,e){if(t instanceof f){var i=t.states.create(e);return i.properties.disabled=!0,i}return null}})},kFp5:function(t,e,i){var n=i("7bL/")("meta"),r=i("DvJ+"),o=i("U3hN"),a=i("hjwn").f,s=0,u=Object.isExtensible||function(){return!0},l=!i("AEc5")(function(){return u(Object.preventExtensions({}))}),h=function(t){a(t,n,{value:{i:"O"+ ++s,w:{}}})},c=t.exports={KEY:n,NEED:!1,fastKey:function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,n)){if(!u(t))return"F";if(!e)return"E";h(t)}return t[n].i},getWeak:function(t,e){if(!o(t,n)){if(!u(t))return!0;if(!e)return!1;h(t)}return t[n].w},onFreeze:function(t){return l&&c.NEED&&u(t)&&!o(t,n)&&h(t),t}}},kHwJ:function(t,e,i){var n=i("DVYA");t.exports=Array.isArray||function(t){return"Array"==n(t)}},kJ6f:function(t,e,i){"use strict";var n=i("snR7"),r=i("W0fk");t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return r(n(this),"number"!=t)}},kQxV:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("+qIf"),o=i("o0Lc"),a=i("hD5A"),s=i("v9UT"),u=i("Qkdp"),l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._interactionEvents=new r.a,e}return n.c(e,t),e.prototype._dispatchSpriteEvent=function(t){if(!this.target.disabled&&!this.target.isTemplate&&this.target.events.isEnabled(t.type)){var e=u.merge(t,{target:this.target});this.target.events.dispatchImmediately(e.type,e)}},e.prototype._dispatchSpritePointEvent=function(t){if(!this.target.disabled&&!this.target.isTemplate&&this.target.events.isEnabled(t.type)){var e=u.merge(t,{target:this.target,spritePoint:s.documentPointToSprite(t.point,this.target),svgPoint:this.target.getSvgPoint(t.point)});this.target.events.dispatchImmediately(e.type,e)}},e.prototype._addInteractionObjectEvent=function(t,e,i,n){var r=this;return this._interactionEvents.insertKeyIfEmpty(t,function(){var o=r.target.interactions.events.on(t,e,i,n);return new a.a(function(){r._interactionEvents.removeKey(t),o.dispose()})}).increment()},e.prototype._on=function(e,i,n,r,o,s){var u=t.prototype._on.call(this,e,i,n,r,o,s),l=[u.disposer];switch(i){case"hit":case"track":case"doublehit":case"wheel":case"wheelup":case"wheeldown":case"wheelleft":case"wheelright":l.push(this._addInteractionObjectEvent(i,this._dispatchSpritePointEvent,this,o));break;case"rightclick":case"down":case"up":case"drag":case"dragstart":case"dragstop":case"over":case"out":case"swipe":case"swipeleft":case"swiperight":case"resize":case"focus":case"blur":case"toggled":l.push(this._addInteractionObjectEvent(i,this._dispatchSpriteEvent,this,o))}switch(i){case"hit":case"doublehit":case"rightclick":case"down":case"up":this.target.clickable=!0;break;case"toggled":this.target.togglable=!0;break;case"drag":case"dragstart":case"dragstop":this.target.draggable=!0;break;case"track":this.target.trackable=!0;break;case"resize":this.target.resizable=!0;break;case"swipe":case"swipeleft":case"swiperight":this.target.swipeable=!0;break;case"wheel":case"wheelup":case"wheeldown":case"wheelleft":case"wheelright":this.target.wheelable=!0;break;case"over":this.target.hoverable=!0;case"out":this.target.hoverable=!0;break;case"focus":case"blur":this.target.focusable=!0}return u.disposer=new a.c(l),u},e}(o.b)},kcsd:function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on  "+t);return t}},kg8J:function(t,e,i){var n=i("sxbc"),r=Math.pow,o=r(2,-52),a=r(2,-23),s=r(2,127)*(2-a),u=r(2,-126);t.exports=Math.fround||function(t){var e,i,r=Math.abs(t),l=n(t);return r<u?l*function(t){return t+1/o-1/o}(r/u/a)*u*a:(i=(e=(1+a/o)*r)-(e-r))>s||i!=i?l*(1/0):l*i}},l2gh:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{iaddh:function(t,e,i,n){var r=t>>>0,o=i>>>0;return(e>>>0)+(n>>>0)+((r&o|(r|o)&~(r+o>>>0))>>>31)|0}})},l3rq:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{isubh:function(t,e,i,n){var r=t>>>0,o=i>>>0;return(e>>>0)-(n>>>0)-((~r&o|~(r^o)&r-o>>>0)>>>31)|0}})},l3wE:function(t,e,i){i("5lay")("getOwnPropertyNames",function(){return i("8rbL").f})},l9Vx:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("oGmz")(!1);n(n.P,"String",{codePointAt:function(t){return r(this,t)}})},lKl7:function(t,e,i){var n=i("Gb1H");n(n.P,"Array",{fill:i("lgQj")}),i("M/YL")("fill")},lLkc:function(t,e,i){"use strict";var n=i("DbOM"),r=i("DvJ+"),o=i("yOPk"),a=[].slice,s={};t.exports=Function.bind||function(t){var e=n(this),i=a.call(arguments,1),u=function(){var n=i.concat(a.call(arguments));return this instanceof u?function(t,e,i){if(!(e in s)){for(var n=[],r=0;r<e;r++)n[r]="a["+r+"]";s[e]=Function("F,a","return new F("+n.join(",")+")")}return s[e](t,i)}(e,n.length,n):o(e,n,t)};return r(e.prototype)&&(u.prototype=e.prototype),u}},lgQj:function(t,e,i){"use strict";var n=i("vJiZ"),r=i("UwWU"),o=i("FmWr");t.exports=function(t){for(var e=n(this),i=o(e.length),a=arguments.length,s=r(a>1?arguments[1]:void 0,i),u=a>2?arguments[2]:void 0,l=void 0===u?i:r(u,i);l>s;)e[s++]=t;return e}},lhvN:function(t,e,i){"use strict";var n=i("4BRe"),r=i("kcsd");t.exports=function(t){var e=String(r(this)),i="",o=n(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(e+=e))1&o&&(i+=e);return i}},"m4/l":function(t,e,i){"use strict";e.c=function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)},i.d(e,"a",function(){return r}),e.b=function(t,e,i,n){return new(i||(i=Promise))(function(r,o){function a(t){try{u(n.next(t))}catch(t){o(t)}}function s(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){t.done?r(t.value):new i(function(e){e(t.value)}).then(a,s)}u((n=n.apply(t,e||[])).next())})},e.d=function(t,e){var i,n,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(i)throw new TypeError("Generator is already executing.");for(;a;)try{if(i=1,n&&(r=2&o[0]?n.return:o[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,o[1])).done)return r;switch(n=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],n=0}finally{i=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},e.g=o,e.e=a,e.f=function(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(a(arguments[e]));return t};var n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)};var r=function(){return(r=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function o(t){var e="function"==typeof Symbol&&t[Symbol.iterator],i=0;return e?e.call(t):{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}}}function a(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var n,r,o=i.call(t),a=[];try{for(;(void 0===e||e-->0)&&!(n=o.next()).done;)a.push(n.value)}catch(t){r={error:t}}finally{try{n&&!n.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}return a}},mIpt:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("7XB+"),r=i("v9UT"),o=i("Mtpk"),a=function(){function t(){}return t.prototype.parse=function(t){return[]},Object.defineProperty(t.prototype,"parsableNumbers",{get:function(){return this.options.numberFields&&this.options.numberFields.length>0},enumerable:!0,configurable:!0}),t.prototype.maybeToNumber=function(t,e){return-1!==this.options.numberFields.indexOf(t)?r.anyToNumber(e):e},Object.defineProperty(t.prototype,"parsableDates",{get:function(){return this.options.dateFields&&this.options.dateFields.length>0},enumerable:!0,configurable:!0}),t.prototype.maybeToDate=function(t,e){return-1!==this.options.dateFields.indexOf(t)?this.options.dateFormatter.parse(e,this.dateFormat):e},t.prototype.maybeToEmpty=function(t){return o.hasValue(t)&&""!=t||!o.hasValue(this.options.emptyAs)?t:this.options.emptyAs},Object.defineProperty(t.prototype,"dateFormatter",{get:function(){return this.options.dateFormatter||(this.options.dateFormatter=new n.a,this.options.dateFormat&&(this.options.dateFormat=this.options.dateFormat)),this.options.dateFormatter},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dateFormat",{get:function(){return this.options.dateFormat||this.dateFormatter.inputDateFormat},enumerable:!0,configurable:!0}),t}()},mL9U:function(t,e,i){var n=i("Gb1H");n(n.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},mOSd:function(t,e,i){var n=i("Gb1H"),r=i("iAlL")(!1);n(n.S,"Object",{values:function(t){return r(t)}})},ma7z:function(t,e,i){var n=i("6MWL"),r=i("snR7"),o=n.key,a=n.map,s=n.store;n.exp({deleteMetadata:function(t,e){var i=arguments.length<3?void 0:o(arguments[2]),n=a(r(e),i,!1);if(void 0===n||!n.delete(t))return!1;if(n.size)return!0;var u=s.get(e);return u.delete(i),!!u.size||s.delete(e)}})},mntN:function(t,e,i){var n=i("EhJv"),r=i("FmWr"),o=i("UwWU");t.exports=function(t){return function(e,i,a){var s,u=n(e),l=r(u.length),h=o(a,l);if(t&&i!=i){for(;l>h;)if((s=u[h++])!=s)return!0}else for(;l>h;h++)if((t||h in u)&&u[h]===i)return t||h||0;return!t&&-1}}},nAZS:function(t,e,i){var n=i("Gb1H"),r=i("kcsd"),o=i("AEc5"),a=i("brDO"),s="["+a+"]",u=RegExp("^"+s+s+"*"),l=RegExp(s+s+"*$"),h=function(t,e,i){var r={},s=o(function(){return!!a[t]()||"​"!="​"[t]()}),u=r[t]=s?e(c):a[t];i&&(r[i]=u),n(n.P+n.F*s,"String",r)},c=h.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(l,"")),t};t.exports=h},nEmP:function(t,e,i){"use strict";i("nAZS")("trimRight",function(t){return function(){return t(this,2)}},"trimEnd")},nHHr:function(t,e,i){var n=i("eBSV"),r=i("Wbjh"),o=i("EhJv"),a=i("W0fk"),s=i("U3hN"),u=i("HW78"),l=Object.getOwnPropertyDescriptor;e.f=i("gD3S")?l:function(t,e){if(t=o(t),e=a(e,!0),u)try{return l(t,e)}catch(t){}if(s(t,e))return r(!n.f.call(t,e),t[e])}},nPzZ:function(t,e,i){"use strict";i.d(e,"a",function(){return c});var n=i("m4/l"),r=i("Inf5"),o=i("Vs7R"),a=i("C6dT"),s=i("C84C"),u=i("Gg2j"),l=i("hGwe"),h=i("Mtpk"),c=function(t){function e(){var e=t.call(this)||this;e.className="Slice3D",e.layout="none";var i=e.createChild(a.a);e.edge=i,i.shouldClone=!1,i.isMeasured=!1;var n=new s.a;n.lightness=-.25,i.filters.push(n),i.toBack(),e._disposers.push(i),e.angle=30,e.depth=20;var r=e.createChild(o.a);e.sideA=r,r.shouldClone=!1,r.isMeasured=!1,r.setElement(e.paper.add("path"));var u=new s.a;u.lightness=-.25,r.filters.push(u),e._disposers.push(r);var l=e.createChild(o.a);e.sideB=l,l.shouldClone=!1,l.isMeasured=!1,l.setElement(e.paper.add("path"));var h=new s.a;return h.lightness=-.25,l.filters.push(h),e._disposers.push(l),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);for(var e=0,i=this.edge.children.length;e<i;e++){var n=this.edge.children.getIndex(e);n instanceof r.a&&(n.radiusY=this.radiusY,n.radius=this.radius,n.fill=this.fill,n.startAngle=this.startAngle,n.arc=this.arc,n.cornerRadius=this.cornerRadius,n.innerRadius=this.innerRadius,n.strokeOpacity=0)}if(0!==this.arc&&this.radius>0&&this.depth>0){this.sideB.show(0),this.sideA.show(0),this.edge.show(0);var o=this.startAngle,a=this.arc,s=this.pixelInnerRadius||0,c=this.radiusY||0,p=this.cornerRadius||0,d=this.innerCornerRadius,f=this.radius,g=o+a,m=u.sin(u.min(a,45)/2),y=c/f*s,b=c/f*p,v=c/f*(d=d||p);p=u.fitToRange(p,0,(f-s)/2),b=u.fitToRange(b,0,(c-y)/2),d=u.fitToRange(d,0,(f-s)/2),v=u.fitToRange(v,0,(c-y)/2),p=u.fitToRange(p,0,f*m),b=u.fitToRange(b,0,c*m),d=u.fitToRange(d,0,s*m),v=u.fitToRange(v,0,y*m),s<d&&(s=d),y<v&&(y=v);var _=Math.asin(d/s/2)*u.DEGREES*2,x=Math.asin(v/y/2)*u.DEGREES*2;h.isNumber(_)||(_=0),h.isNumber(x)||(x=0);var P={x:u.round(u.cos(o)*(s+d),4),y:u.round(u.sin(o)*(y+v),4)},w={x:u.round(u.cos(o)*(f-p),4),y:u.round(u.sin(o)*(c-b),4)},O={x:u.round(u.cos(g)*(f-p),4),y:u.round(u.sin(g)*(c-b),4)},S={x:u.round(u.cos(g)*(s+d),4),y:u.round(u.sin(g)*(y+v),4)},T=this.depth,C={x:P.x,y:P.y-T},k={x:w.x,y:w.y-T},I={x:O.x,y:O.y-T},M={x:S.x,y:S.y-T};this.sideA.path=l.moveTo(P)+l.lineTo(w)+l.lineTo(k)+l.lineTo(C)+l.closePath(),this.sideB.path=l.moveTo(O)+l.lineTo(S)+l.lineTo(M)+l.lineTo(I)+l.closePath(),this.startAngle<90?this.sideA.toBack():this.sideA.toFront(),this.startAngle+this.arc>90?this.sideB.toBack():this.sideB.toFront()}else this.sideA.hide(0),this.sideB.hide(0),this.edge.hide(0)},Object.defineProperty(e.prototype,"depth",{get:function(){return this.getPropertyValue("depth")},set:function(t){if(this.setPropertyValue("depth",t,!0)){this.edge.removeChildren();if(t>0)for(var e=Math.ceil(this.depth/3),i=t/e,n=0;n<=e;n++){var o=this.edge.createChild(r.a);o.isMeasured=!1,o.y=-i*n}this.slice.dy=-this.depth}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"angle",{get:function(){var t=this.getPropertyValue("angle");return h.isNumber(t)||(t=0),t},set:function(t){this.setPropertyValue("angle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radiusY",{get:function(){var t=this.getPropertyValue("radiusY");return h.isNumber(t)||(t=this.radius-this.radius*this.angle/90),t},set:function(t){this.setPropertyValue("radiusY",t,!0)},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.edge.copyFrom(e.edge),this.sideA.copyFrom(e.sideA),this.sideB.copyFrom(e.sideB)},e}(r.a)},nZH2:function(t,e,i){var n=i("Gb1H");n(n.P,"Array",{copyWithin:i("y2pX")}),i("M/YL")("copyWithin")},ncT3:function(t,e,i){"use strict";i.d(e,"a",function(){return c});var n=i("m4/l"),r=i("C6dT"),o=i("Vs7R"),a=i("Ybtf"),s=i("/e9j"),u=i("tjMS"),l=i("Qkdp"),h=i("hGwe"),c=function(t){function e(){var e=t.call(this)||this;return e.className="Cone",e.angle=30,e.radius=Object(u.c)(100),e.topRadius=Object(u.c)(100),e.top=e.createChild(a.a),e.top.shouldClone=!1,e.bottom=e.createChild(a.a),e.bottom.shouldClone=!1,e.body=e.createChild(o.a),e.body.shouldClone=!1,e.body.setElement(e.paper.add("path")),e.layout="none",e.bodyFillModifier=new s.a,e.bodyFillModifier.lightnesses=[0,-.25,0],e.body.fillModifier=e.bodyFillModifier,e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this),l.copyProperties(this,this.top,o.b),l.copyProperties(this,this.bottom,o.b),l.copyProperties(this,this.body,o.b);var e,i,n,r=this.innerWidth,a=this.innerHeight,s=this.bottom,u=this.top,c=this.angle;"horizontal"==this.orientation?(e=a/2,s.y=a/2,u.y=a/2,u.x=r,i=(90-c)/90,n=0,this.bodyFillModifier.gradient.rotation=90):(i=0,n=(90-c)/90,e=r/2,s.y=a,s.x=r/2,u.x=r/2,this.bodyFillModifier.gradient.rotation=0);var p,d=this.radius.value*e,f=this.topRadius.value*e;s.radius=d-d*i,s.radiusY=d-d*n,u.radius=f-f*i,u.radiusY=f-f*n,p="horizontal"==this.orientation?h.moveTo({x:0,y:a/2-s.radiusY})+h.arcTo(-90,-180,s.radius,s.radiusY)+h.lineTo({x:r,y:a/2+u.radiusY})+h.arcTo(90,180,u.radius,u.radiusY)+h.closePath():h.moveTo({x:r/2-u.radius,y:0})+h.arcTo(180,-180,u.radius,u.radiusY)+h.lineTo({x:r/2+s.radius,y:a})+h.arcTo(0,180,s.radius,s.radiusY)+h.closePath(),this.body.path=p},Object.defineProperty(e.prototype,"angle",{get:function(){return this.getPropertyValue("angle")},set:function(t){this.setPropertyValue("angle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPropertyValue("radius",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"topRadius",{get:function(){return this.getPropertyValue("topRadius")},set:function(t){this.setPropertyValue("topRadius",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t,!0)},enumerable:!0,configurable:!0}),e}(r.a)},necU:function(t,e,i){var n=i("Gb1H");n(n.S,"Reflect",{has:function(t,e){return e in t}})},o0Lc:function(t,e,i){"use strict";i.d(e,"a",function(){return u}),i.d(e,"b",function(){return l});var n=i("m4/l"),r=i("hD5A"),o=i("hJ5i"),a=i("/9XX"),s=i("Mtpk"),u=function(){function t(){this._listeners=[],this._killed=[],this._disabled={},this._iterating=0,this._enabled=!0,this._disposed=!1}return t.prototype.isDisposed=function(){return this._disposed},t.prototype.dispose=function(){if(!this._disposed){this._disposed=!0;var t=this._listeners;this._iterating=1,this._listeners=null,this._disabled=null;try{o.each(t,function(t){t.disposer.dispose()})}finally{this._killed=null,this._iterating=null}}},t.prototype.hasListeners=function(){return 0!==this._listeners.length},t.prototype.hasListenersByType=function(t){return o.any(this._listeners,function(e){return(null===e.type||e.type===t)&&!e.killed})},t.prototype.enable=function(){this._enabled=!0},t.prototype.disable=function(){this._enabled=!1},t.prototype.enableType=function(t){delete this._disabled[t]},t.prototype.disableType=function(t,e){void 0===e&&(e=1/0),this._disabled[t]=e},t.prototype._removeListener=function(t){if(0===this._iterating){var e=this._listeners.indexOf(t);if(-1===e)throw new Error("Invalid state: could not remove listener");this._listeners.splice(e,1)}else this._killed.push(t)},t.prototype._removeExistingListener=function(t,e,i,n){if(this._disposed)throw new Error("EventDispatcher is disposed");var r=o.findIndex(this._listeners,function(r){return r.once===t&&r.type===e&&r.callback===i&&r.context===n});-1!==r&&this._listeners[r].disposer.dispose()},t.prototype.isEnabled=function(t){if(this._disposed)throw new Error("EventDispatcher is disposed");return this._enabled&&this._listeners.length>0&&this.hasListenersByType(t)&&null==this._disabled[t]},t.prototype.has=function(t,e,i){return-1!==o.findIndex(this._listeners,function(n){return!0!==n.once&&n.type===t&&(!e||n.callback===e)&&n.context===i})},t.prototype._shouldDispatch=function(t){if(this._disposed)throw new Error("EventDispatcher is disposed");var e=this._disabled[t];return s.isNumber(e)?(e<=1?delete this._disabled[t]:--this._disabled[t],!1):this._enabled},t.prototype._eachListener=function(t){var e=this;++this._iterating;try{o.each(this._listeners,t)}finally{--this._iterating,0===this._iterating&&0!==this._killed.length&&(o.each(this._killed,function(t){e._removeListener(t)}),this._killed.length=0)}},t.prototype.dispatchImmediately=function(t,e){this._shouldDispatch(t)&&this._eachListener(function(i){i.killed||null!==i.type&&i.type!==t||i.dispatch(t,e)})},t.prototype.dispatch=function(t,e){this._shouldDispatch(t)&&this._eachListener(function(i){i.killed||null!==i.type&&i.type!==t||a.e(function(){i.killed||i.dispatch(t,e)})})},t.prototype._on=function(t,e,i,n,o,a){var s=this;if(this._disposed)throw new Error("EventDispatcher is disposed");this._removeExistingListener(t,e,i,n);var u={type:e,callback:i,context:n,shouldClone:o,dispatch:a,killed:!1,once:t,disposer:new r.b(function(){u.killed=!0,s._removeListener(u)})};return this._listeners.push(u),u},t.prototype.onAll=function(t,e,i){return void 0===i&&(i=!0),this._on(!1,null,t,e,i,function(i,n){return t.call(e,i,n)}).disposer},t.prototype.on=function(t,e,i,n){return void 0===n&&(n=!0),this._on(!1,t,e,i,n,function(t,n){return e.call(i,n)}).disposer},t.prototype.once=function(t,e,i,n){void 0===n&&(n=!0);var r=this._on(!0,t,e,i,n,function(t,n){r.disposer.dispose(),e.call(i,n)});return r.disposer},t.prototype.off=function(t,e,i){this._removeExistingListener(!1,t,e,i)},t.prototype.copyFrom=function(t){var e=this;if(this._disposed)throw new Error("EventDispatcher is disposed");if(t===this)throw new Error("Cannot copyFrom the same TargetedEventDispatcher");o.each(t._listeners,function(t){!t.killed&&t.shouldClone&&(null===t.type?e.onAll(t.callback,t.context):t.once?e.once(t.type,t.callback,t.context):e.on(t.type,t.callback,t.context))})},t}(),l=function(t){function e(e){var i=t.call(this)||this;return i.target=e,i}return n.c(e,t),e.prototype.copyFrom=function(t){var e=this;if(this._disposed)throw new Error("EventDispatcher is disposed");if(t===this)throw new Error("Cannot copyFrom the same TargetedEventDispatcher");o.each(t._listeners,function(i){i.context!==t.target&&!i.killed&&i.shouldClone&&(null===i.type?e.onAll(i.callback,i.context):i.once?e.once(i.type,i.callback,i.context):e.on(i.type,i.callback,i.context))})},e}(u)},oAPj:function(t,e,i){var n=i("nHHr"),r=i("Gb1H"),o=i("snR7");r(r.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return n.f(o(t),e)}})},oC3T:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("Tjl+"),o=i("1yyj"),a=i("Gg2j"),s=i("0FpR"),u=i("Mtpk"),l=function(t){function e(e){var i=t.call(this)||this;return i._bboxes=[],i.morphDuration=800,i.morphEasing=s.cubicOut,i.morphToSingle=!0,i.scaleRatio=1,i.className="Morpher",i.morphable=e,i.applyTheme(),i}return n.c(e,t),e.prototype.morphToPolygon=function(t,e,i){var n=this.morphable.currentPoints;this.sortPoints(n),this.sortPoints(t),this._morphFromPointsReal=[],this._morphToPointsReal=[],u.hasValue(e)||(e=this.morphDuration),u.hasValue(i)||(i=this.morphEasing),this._morphFromPointsReal=this.normalizePoints(t,n),this._morphToPointsReal=this.normalizePoints(n,t),this.morphable.currentPoints=this._morphFromPointsReal;var r=new o.a(this,{property:"morphProgress",from:0,to:1},e,i);return this._disposers.push(r),r.start(),r},e.prototype.normalizePoints=function(t,e){for(var i=0,n=t.length;i<n;i++){var r=t[i][0],o=t[i][1],s=u.getValue(a.getBBox(r)),l=s.x+s.width,h=s.y+s.height;if(e[i]||(e[i]=[]),r&&!e[i][0]&&(e[i][0]=[{x:l,y:h},{x:l,y:h}]),e[i][0]){e[i][0]=this.addPoints(e[i][0],r.length);for(var c=1/0,p=0,d=0;d<e[i][0].length;d++){var f=a.getDistance(e[i][0][d],r[0]);f<c&&(p=d,c=f)}var g=e[i][0].slice(0,p),m=e[i][0].slice(p);e[i][0]=m.concat(g)}o&&(e[i][1]||(e[i][1]=[{x:l,y:h},{x:l,y:h}]),e[i][1]=this.addPoints(e[i][1],o.length))}return e},e.prototype.sortPoints=function(t){t.sort(function(t,e){var i=u.getValue(a.getBBox(t[0])),n=u.getValue(a.getBBox(e[0]));return i.width*i.height>n.width*n.height?-1:1});for(var e=[],i=0,n=t.length;i<n;i++){var r=t[i][0];r&&e.push(u.getValue(a.getBBox(r)))}return a.getCommonRectangle(e)},e.prototype.morphToCircle=function(t,e,i){var n=this.morphable.points,r=this.sortPoints(n);this._morphFromPointsReal=[],this._morphToPointsReal=[],u.hasValue(e)||(e=this.morphDuration),u.hasValue(i)||(i=this.morphEasing);for(var s=0,l=n.length;s<l;s++){var h=n[s][0],c=n[s][1];if(this._morphFromPointsReal[s]=[],this._morphToPointsReal[s]=[],h){var p=h,d=h,f=u.getValue(a.getBBox(d));this.morphToSingle&&(f=u.getValue(r));var g=f.x+f.width/2,m=f.y+f.height/2,y=t;u.isNumber(y)||(y=Math.min(f.width/2,f.height/2)),p=[];var b=a.getAngle({x:g,y:m},h[0]),v=100;h.length>v&&(v=h.length);for(var _=360/((v=(d=this.addPoints(h,v)).length)-1),x=0;x<v;x++){var P=_*x+b,w={x:g+y*a.cos(P),y:m+y*a.sin(P)};p[x]=w}if(c&&c.length>0)for(var O=0,S=c.length;O<S;O++)p.push({x:g,y:m});this._morphFromPointsReal[s][0]=d,this._morphToPointsReal[s][0]=p}}this.morphable.currentPoints=this._morphFromPointsReal;var T=new o.a(this,{property:"morphProgress",from:0,to:1},e,i);return this._disposers.push(T),T.start(),T},e.prototype.addPoints=function(t,e){for(var i=Math.round(e/t.length),n=[],r=0,o=t.length;r<o;r++){var a=t[r],s=void 0;s=r==t.length-1?t[0]:t[r+1],n.push(a);for(var u=1;u<i;u++){var l=u/i,h={x:a.x+(s.x-a.x)*l,y:a.y+(s.y-a.y)*l};n.push(h)}n.length+t.length-r==e&&(i=0)}if(n.length<e&&t.length>0){var c=t[t.length-1];for(u=n.length;u<e;u++)n.push({x:c.x,y:c.y})}return n},e.prototype.morphToRectangle=function(t,e,i,n){var r=this.morphable.points;this.sortPoints(r),this._morphFromPointsReal=[],this._morphToPointsReal=[],u.hasValue(i)||(i=this.morphDuration),u.hasValue(n)||(n=this.morphEasing);for(var a=0,s=r.length;a<s;a++){var l=r[a][0],h=r[a][1];if(this._morphFromPointsReal[a]=[],this._morphToPointsReal[a]=[],l){var c=l,p=l,d=this._bboxes[a];this.morphToSingle;var f=d.x,g=d.y,m=t,y=e;if(u.isNumber(m)||(m=d.width),u.isNumber(y)||(y=d.height),c=[{x:f,y:g},{x:f+m,y:g},{x:f+m,y:g+y},{x:f,y:g+y}],c=this.addPoints(c,l.length),l.length<4)for(var b=l.length;b<4;b++)c.push({x:l[b].x,y:l[b].y});if(h&&h.length>0)for(var v=d.x+d.width/2,_=d.y+d.height/2,x=0,P=h.length;x<P;x++)c.push({x:v,y:_});this._morphFromPointsReal[a][0]=p,this._morphToPointsReal[a][0]=c}}this.morphable.currentPoints=this._morphFromPointsReal;var w=new o.a(this,{property:"morphProgress",from:0,to:1},i,n);return this._disposers.push(w),w.start(),w},Object.defineProperty(e.prototype,"morphProgress",{get:function(){return this._morphProgress},set:function(t){this._morphProgress=t;var e=[];if(null!=t){var i=this._morphFromPointsReal,n=this._morphToPointsReal;if(null!=i&&null!=n)for(var r=0,o=i.length;r<o;r++){var a=[];e.push(a);var s=i[r][0],u=i[r][1],l=n[r][0],h=n[r][1];if(s&&s.length>0&&l&&l.length>0){for(var c=[],p=0,d=s.length;p<d;p++){var f=s[p],g=l[p],m={x:f.x+(g.x*this.scaleRatio-f.x)*t,y:f.y+(g.y*this.scaleRatio-f.y)*t};c.push(m)}a[0]=c}if(u&&u.length>0&&h&&h.length>0){for(var y=[],b=0,v=u.length;b<v;b++){f=u[b],g=h[b],m={x:f.x+(g.x*this.scaleRatio-f.x)*t,y:f.y+(g.y*this.scaleRatio-f.y)*t};y.push(m)}a[1]=y}}}this.morphable.currentPoints=e},enumerable:!0,configurable:!0}),e.prototype.morphBack=function(t,e){this._morphToPointsReal=this._morphFromPointsReal,this._morphFromPointsReal=this.morphable.currentPoints,u.hasValue(t)||(t=this.morphDuration),u.hasValue(e)||(e=this.morphEasing);var i=new o.a(this,{property:"morphProgress",from:0,to:1},t,e);return this._disposers.push(i),i.start(),i},Object.defineProperty(e.prototype,"animations",{get:function(){return this._animations||(this._animations=[],this._disposers.push(new o.b(this._animations))),this._animations},enumerable:!0,configurable:!0}),e}(r.a)},oGmz:function(t,e,i){var n=i("4BRe"),r=i("kcsd");t.exports=function(t){return function(e,i){var o,a,s=String(r(e)),u=n(i),l=s.length;return u<0||u>=l?t?"":void 0:(o=s.charCodeAt(u))<55296||o>56319||u+1===l||(a=s.charCodeAt(u+1))<56320||a>57343?t?s.charAt(u):o:t?s.slice(u,u+2):a-56320+(o-55296<<10)+65536}}},oMjf:function(t,e,i){var n=i("6MWL"),r=i("snR7"),o=n.get,a=n.key;n.exp({getOwnMetadata:function(t,e){return o(t,r(e),arguments.length<3?void 0:a(arguments[2]))}})},oVsg:function(t,e,i){var n=i("Gb1H"),r=i("nHHr").f,o=i("snR7");n(n.S,"Reflect",{deleteProperty:function(t,e){var i=r(o(t),e);return!(i&&!i.configurable)&&delete t[e]}})},"of/x":function(t,e,i){"use strict";i("nAZS")("trimLeft",function(t){return function(){return t(this,1)}},"trimStart")},ohjg:function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("Tjl+"),o=i("P7v+"),a=i("1yyj"),s=i("vMqJ"),u=i("Qkdp"),l=i("Wglt"),h=function(t){function e(){var e=t.call(this)||this;return e.properties={},e.isTemplate=!1,e._scale=1,e._nonScaling=!0,e.className="Filter",e.filterPrimitives=new s.b,e.filterPrimitives.events.on("inserted",function(t){e._disposers.push(t.newValue)}),e.width=120,e.height=120,e.applyTheme(),e}return n.c(e,t),e.prototype.appendPrimitives=function(t){l.each(this.filterPrimitives.iterator(),function(e){t.add(e)})},e.prototype.animate=function(t,e,i){return new a.a(this,t,e,i).start()},Object.defineProperty(e.prototype,"width",{get:function(){return this.properties.width},set:function(t){this.properties.width=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this.properties.height},set:function(t){this.properties.height=t},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){var i=this;t.prototype.copyFrom.call(this,e),u.each(e.properties,function(t,e){i[t]=e})},Object.defineProperty(e.prototype,"paper",{get:function(){return this._paper?this._paper:Object(o.b)()},set:function(t){this._paper!=t&&(this._paper=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animations",{get:function(){return this._animations||(this._animations=[],this._disposers.push(new a.b(this._animations))),this._animations},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scale",{get:function(){return this._scale},set:function(t){this._scale=t,this.updateScale()},enumerable:!0,configurable:!0}),e.prototype.updateScale=function(){},Object.defineProperty(e.prototype,"nonScaling",{get:function(){return this._nonScaling},set:function(t){this._nonScaling=t,t||(this._scale=1),this.updateScale()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sprite",{set:function(t){this.setSprite(t)},enumerable:!0,configurable:!0}),e.prototype.setSprite=function(t){this._sprite&&this._sprite!=t&&this._sprite.filters.removeValue(this),this._sprite=t},e}(r.a)},osLN:function(t,e,i){var n=i("Gb1H");n(n.P+n.R,"Set",{toJSON:i("dJEq")("Set")})},p3CN:function(t,e,i){var n=i("hjwn"),r=i("snR7"),o=i("3BzE");t.exports=i("gD3S")?Object.defineProperties:function(t,e){r(t);for(var i,a=o(e),s=a.length,u=0;s>u;)n.f(t,i=a[u++],e[i]);return t}},p4R3:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},p9TX:function(t,e,i){"use strict";i.d(e,"a",function(){return f});var n=i("m4/l"),r=i("C6dT"),o=i("aCit"),a=i("MipW"),s=i("hD5A"),u=i("MIZb"),l=i("Gg2j"),h=i("v9UT"),c=i("Mtpk"),p=i("58Sn"),d=i("TGuK"),f=function(t){function e(){var e=t.call(this)||this;return e.isOversized=!1,e.className="Label",e.fill=(new u.a).getFor("text"),e.wrap=!1,e.truncate=!1,e.fullWords=!0,e.ellipsis="...",e.textAlign="start",e.textValign="top",e.layout="absolute",e.adapter.add("readerTitle",function(t){return t||(t=e.populateString(h.plainText(h.isNotEmpty(e.html)?e.html:e.text))),t}),e.events.on("maxsizechanged",function(){e.inited&&e.handleMaxSize()},e,!1),e.events.once("validated",e.handleValidate,e,!1),e.applyTheme(),e}return n.c(e,t),e.prototype.afterDraw=function(){t.prototype.afterDraw.call(this),this.validatePosition()},e.prototype.setPaper=function(e){var i=t.prototype.setPaper.call(this,e);return i&&this.hardInvalidate(),i},e.prototype.handleValidate=function(){!this.currentText&&!this.text||0!=this.bbox.width&&0!=this.bbox.height||o.b.events.once("exitframe",this.hardInvalidate,this)},e.prototype.handleMaxSize=function(){this.bbox.width>this.availableWidth||this.bbox.width<this.availableWidth&&(this.isOversized||this.truncate)||this.bbox.height>this.availableHeight||this.bbox.height<this.availableHeight&&this.isOversized?this.invalidate():this.alignSVGText()},e.prototype.arrange=function(){},e.prototype.updateCurrentText=function(){var t,e;h.isNotEmpty(this.html)&&this.paper.supportsForeignObject()?(t="html",e=this.html):(t="svg",e=this.text),c.hasValue(e)&&""!==e&&(e=this.populateString(e,this.dataItem));var i=(e="html"==t?this.adapter.apply("htmlOutput",e):this.adapter.apply("textOutput",e))!=this.currentText||t!=this._currentFormat;return this.currentText=e,this._currentFormat=t,i},e.prototype.hardInvalidate=function(){this._prevStatus="",this.invalidate()},e.prototype.getLineBBox=function(t){t.bbox=t.element.getBBox()},e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.bbox.width,i=this.bbox.height,n=this.topParent;if(!n||n.maxWidth&&n.maxHeight){var r=l.max(this.availableWidth-this.pixelPaddingLeft-this.pixelPaddingRight,0),o=l.max(this.availableHeight-this.pixelPaddingTop-this.pixelPaddingBottom,0),s=o+","+r+this.wrap+this.truncate+this.fullWords+this.rtl+this.ellipsis;if(this.updateCurrentText()||!this.inited||this._prevStatus!=s){this._measuredWidth=0,this._measuredHeight=0,this.isOversized=!1;var u=this._currentFormat,p=this.currentText;if(c.hasValue(p)&&""!=p){var d=p.split("\n");this._prevStatus=s,this.textAlign=this.textAlign;var f=this.group.getAttr("display");if("none"==f&&this.group.removeAttr("display"),this.textPathElement&&this.textPathElement.removeChildren(),"svg"===u){this.element.removeAttr("display");var g=this.element;this.resetBBox();for(var m=0,y="",b=0;b<d.length;b++){var v=d[b];if(""!=v){var _=Object(a.b)().chunk(v,null,this.ignoreFormatting),x=0,P=!0,w=!1,O=void 0;(O=this.getLineInfo(b))?O.element.textContent="":(O={element:this.getSVGLineElement("",0),complex:!1},g.add(O.element)),O.element.removeAttr("display"),O.element.removeChildren(),this.textPathElement&&O.element.add(this.textPathElement),this.rtl&&_.reverse();for(var S=0;S<_.length;S++){S&&(O.complex=!0);var T=_[S];if("format"===T.type)y=T.text;else{if(w)continue;O.text=T.text,O.style=Object(a.b)().translateStyleShortcuts(y);var C=this.getSvgElement(O.text,O.style);if(this.textPathElement?this.textPathElement.add(C):O.element.add(C),this.getLineBBox(O),O.bbox.width=Math.ceil(O.bbox.width),x<O.bbox.height&&(x=O.bbox.height),(this.wrap||this.truncate)&&O.bbox.width>r){this.isOversized=!0;var k=O.element.textContent,I=O.bbox.width/k.length,M=l.min(Math.ceil((O.bbox.width-r)/I),k.length);if(this.truncate){var j=!1,V=O.element.node;if(V&&V.childNodes)for(var D=O.element.node.childNodes.length-1;D>=0;D--){var E=O.element.node.childNodes[D];if(j&&O.bbox.width<=r&&(E.textContent+=" "+this.ellipsis,O.bbox=O.element.getBBox(),O.bbox.width=Math.floor(O.bbox.width),O.bbox.width<=r))break;j=!1;var F=E.textContent;for(k=O.element.textContent,M=l.min(Math.ceil((O.bbox.width-r)/I),k.length);O.bbox.width>r&&M<=k.length&&M>0;){(A=l.max(F.length-M-this.ellipsis.length,1))<=1&&(M=0,D>0&&(j=!0,O.element.node.removeChild(E))),(F=h.truncateWithEllipsis(F,A,this.ellipsis,this.fullWords,this.rtl)).length>A&&this.fullWords&&(F=h.truncateWithEllipsis(F,A,this.ellipsis,!1,this.rtl)),E.textContent=F,O.bbox=O.element.getBBox(),O.bbox.width=Math.floor(O.bbox.width),M=Math.ceil(1.1*M)}w=!0}}else{if(O.element.node){for(var N=O.element.node.lastChild,R=void 0;O.bbox.width>r&&M<=k.length&&M>0;){var A=l.max(T.text.length-M,1);P?R=h.splitTextByCharCount(T.text,A,!0,this.rtl):((R=h.splitTextByCharCount(T.text,A,!0,this.rtl))[0].length>A||1===A)&&(O.element.node.removeChild(N),M=0),M>0&&(N.textContent=Object(a.b)().cleanUp(h.trim(R.shift()))),O.bbox=O.element.getBBox(),O.bbox.width=Math.floor(O.bbox.width),M=Math.ceil(1.1*M)}if(R.length>0){var L="";c.hasValue(R)&&(this.rtl?L+=R.join("")+y:L+=y+R.join(""));for(var H=S+1;H<_.length;H++)L+=_[H].text;d.splice(b+1,0,L)}w=!0}}}this.bbox.width<O.bbox.width&&(this.bbox.width=O.bbox.width),this.bbox.height=m+x,this.textPathElement?O.element.attr({dy:-this.paddingBottom.toString()}):O.element.attr({x:"0",y:m+x,dy:l.round(-.27*x,3).toString()}),P=!1}}var B=O.element.node;if(B)(N=B.lastChild)&&(N.textContent=this.rtl?h.ltrim(N.textContent):h.rtrim(N.textContent));m+=x,this.addLineInfo(O,b)}else{var G=this.getSVGLineElement("",0);G.add(this.getSvgElement(".",Object(a.b)().translateStyleShortcuts(y))),g.add(G);var W=Math.ceil(G.getBBox().height);W>0&&(m+=W),g.removeElement(G)}}this.hideOversized&&(this.availableWidth<this.bbox.width||this.availableHeight<this.bbox.height?(this.element.attr({display:"none"}),this.isOversized=!0):(this.element.removeAttr("display"),this.isOversized=!1)),this._measuredWidth=l.max(this.bbox.width,this.pixelWidth-this.pixelPaddingLeft-this.pixelPaddingRight),this._measuredHeight=l.max(this.bbox.height,this.pixelHeight-this.pixelPaddingTop-this.pixelPaddingBottom),this.alignSVGText(),this.bbox.width=this._measuredWidth,this.bbox.height=this._measuredHeight,i==this._measuredHeight&&e==this._measuredWidth||this.dispatch("transformed"),this.hideUnused(d.length)}else{this.element.removeAttr("display"),this.resetBBox(),(g=this.element).removeChildren();var z=this.paper.foreignObject();g.add(z);var U=this.getHTMLLineElement(p);z.node.appendChild(U),U.style.display="inline-block";var Y=U.clientWidth,X=U.clientHeight;U.style.display="block",this._bbox={x:0,y:0,width:Y,height:X},z.attr({width:Y,height:X}),this._measuredWidth=l.max(this.bbox.width,this.pixelWidth-this.pixelPaddingLeft-this.pixelPaddingRight),this._measuredHeight=l.max(this.bbox.height,this.pixelHeight-this.pixelPaddingTop-this.pixelPaddingBottom),this.bbox.width=this._measuredWidth,this.bbox.height=this._measuredHeight,this.truncate&&(U.style.overflow="hidden"),(Y>r||X>o)&&(this.isOversized=!0)}this.setStyles(),this.updateCenter(),this.updateBackground(),"none"==f&&this.group.attr({display:"none"}),this.pathElement&&this.paper.appendDef(this.pathElement)}else this.element.attr({display:"none"})}}else n.events.once("maxsizechanged",this.hardInvalidate,this,!1)},e.prototype.alignSVGText=function(){var t=this.element,e=t.node.children||t.node.childNodes;if(e&&(!e||0!=e.length)){var i=this._measuredWidth,n=this._measuredHeight;h.used(this.pixelPaddingLeft),h.used(this.pixelPaddingRight),h.used(this.pixelPaddingTop),h.used(this.pixelPaddingBottom);for(var r=e.length-1;r>=0;r--){var o=e[r];if(o.setAttribute("text-anchor",this.textAlign),this.textPathElement)o.removeAttribute("x"),o.removeAttribute("y");else{switch(this.textAlign){case"middle":o.setAttribute("x",(i/2).toString()+"px");break;case"end":this.rtl||o.setAttribute("x",i.toString());break;default:this.rtl?o.setAttribute("x",i.toString()):o.removeAttribute("text-anchor")}var a=c.toNumber(o.getAttribute("y"));switch(this.textValign){case"middle":o.setAttribute("y",(a+(n-this.bbox.height)/2).toString());break;case"bottom":o.setAttribute("y",(a+n-this.bbox.height).toString());break;default:o.setAttribute("y",a.toString())}}}}},e.prototype.getSVGLineElement=function(t,e){var i=this.paper.addGroup("text");return i.textContent=t,i.attr({x:"0"}),c.hasValue(e)&&i.attr({y:e.toString()}),(this.truncate||this.wrap)&&i.attr({overflow:"hidden"}),this.rtl&&i.attr({direction:"rtl","unicode-bidi":"bidi-override"}),i},e.prototype.resetBBox=function(){this._bbox={x:0,y:0,width:0,height:0}},e.prototype.getHTMLLineElement=function(t){var e=document.createElement("div");switch(e.innerHTML=t,this.textAlign){case"middle":e.style.textAlign="center";break;case"end":e.style.textAlign="right"}return this.wrap?e.style.wordWrap="break-word":e.style.whiteSpace="nowrap",this.rtl&&(e.style.direction="rtl",e.style.unicodeBidi="bidi-override"),c.hasValue(this.fill)&&(e.style.color=this.fill.toString()),e},e.prototype.setStyles=function(){var t=this.element;!this.selectable||this.draggable||this.resizable||this.swipeable?t.addStyle({webkitUserSelect:"none",msUserSelect:"none"}):this.selectable&&(t.removeStyle("webkitUserSelect"),t.removeStyle("msUserSelect"))},e.prototype.hideUnused=function(t){this.initLineCache();var e=this.getCache("lineInfo");if(e.length>=t)for(var i=t;i<e.length;i++){var n=e[i];n&&n.element&&n.element.attr({display:"none"})}},Object.defineProperty(e.prototype,"text",{get:function(){return this.getPropertyValue("text")},set:function(t){this.setPropertyValue("text",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return this.getPropertyValue("path")},set:function(t){this.setPropertyValue("path",t,!0)&&(this.pathElement&&this.pathElement.dispose(),this.textPathElement&&this.textPathElement.dispose(),this.pathElement=this.paper.add("path"),this.pathElement.attr({d:t}),this.pathElement.attr({id:"text-path-"+this.uid}),this._disposers.push(this.pathElement),this.textPathElement=this.paper.addGroup("textPath"),this.textPathElement.attrNS(p.d,"xlink:href","#text-path-"+this.uid),this._disposers.push(this.textPathElement),this.hardInvalidate())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"locationOnPath",{get:function(){return this.getPropertyValue("locationOnPath")},set:function(t){this.setPropertyValue("locationOnPath",t),this.textPathElement&&this.textPathElement.attr({startOffset:100*t+"%"})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"wrap",{get:function(){return this.getPropertyValue("wrap")},set:function(t){this.resetBBox(),this.setPropertyValue("wrap",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"truncate",{get:function(){return this.getPropertyValue("truncate")},set:function(t){this.resetBBox(),this.setPropertyValue("truncate",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullWords",{get:function(){return this.getPropertyValue("fullWords")},set:function(t){this.setPropertyValue("fullWords",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ellipsis",{get:function(){return this.getPropertyValue("ellipsis")},set:function(t){this.setPropertyValue("ellipsis",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectable",{get:function(){return this.getPropertyValue("selectable")},set:function(t){this.setPropertyValue("selectable",t,!0),this.setStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textAlign",{get:function(){return this.getPropertyValue("textAlign")},set:function(t){this.setPropertyValue("textAlign",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textValign",{get:function(){return this.getPropertyValue("textValign")},set:function(t){this.setPropertyValue("textValign",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"html",{get:function(){return this.getPropertyValue("html")},set:function(t){this.setPropertyValue("html",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hideOversized",{get:function(){return this.getPropertyValue("hideOversized")},set:function(t){this.setPropertyValue("hideOversized",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ignoreFormatting",{get:function(){return this.getPropertyValue("ignoreFormatting")},set:function(t){this.setPropertyValue("ignoreFormatting",t,!0)},enumerable:!0,configurable:!0}),e.prototype.measureElement=function(){},e.prototype.getLineInfo=function(t){this.initLineCache();var e=this.getCache("lineInfo");return e.length>t?e[t]:void 0},e.prototype.addLineInfo=function(t,e){this.initLineCache(),this.getCache("lineInfo")[e]=t},e.prototype.initLineCache=function(){c.hasValue(this.getCache("lineInfo"))||this.setCache("lineInfo",[],0)},e.prototype.setDataItem=function(e){this._sourceDataItemEvents&&this._sourceDataItemEvents.dispose(),e&&(this._sourceDataItemEvents=new s.c([e.events.on("valuechanged",this.invalidate,this,!1),e.events.on("workingvaluechanged",this.invalidate,this,!1),e.events.on("calculatedvaluechanged",this.invalidate,this,!1),e.events.on("propertychanged",this.invalidate,this,!1)])),t.prototype.setDataItem.call(this,e)},Object.defineProperty(e.prototype,"availableWidth",{get:function(){return c.hasValue(this.maxWidth)?this.maxWidth:this.pixelWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"availableHeight",{get:function(){return c.hasValue(this.maxHeight)?this.maxHeight:this.pixelHeight},enumerable:!0,configurable:!0}),e.prototype.getSvgElement=function(t,e){var i=this.paper.add("tspan");return i.textContent=t,e&&i.node.setAttribute("style",e),i},e.prototype.deepInvalidate=function(){t.prototype.deepInvalidate.call(this),this.hardInvalidate()},e}(r.a);o.b.registeredClasses.Label=f,d.c.push({relevant:d.b.heightXS,state:function(t,e){if(t instanceof f&&t.parent&&t.parent.isBaseSprite){var i=t.states.create(e);return i.properties.disabled=!0,i}return null}})},pR7v:function(t,e,i){"use strict";i.d(e,"b",function(){return f}),i.d(e,"a",function(){return g});var n=i("m4/l"),r=i("AAkI"),o=i("OXm9"),a=i("hD5A"),s=i("aCit"),u=i("ZoDA"),l=i("Gg2j"),h=i("Wglt"),c=i("Qkdp"),p=i("Mtpk"),d=i("v9UT"),f=function(t){function e(){var e=t.call(this)||this;return e.className="ValueAxisDataItem",e.values.value={},e.values.endValue={},e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.values.value.value},set:function(t){this.setValue("value",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endValue",{get:function(){return this.values.endValue.value},set:function(t){this.setValue("endValue",t)},enumerable:!0,configurable:!0}),e}(r.b),g=function(t){function e(){var e=t.call(this)||this;return e._stepDecimalPlaces=0,e._baseValue=0,e._adjustedStart=0,e._adjustedEnd=1,e._extremesChanged=!1,e.calculateTotals=!1,e.className="ValueAxis",e.axisFieldName="value",e.setPropertyValue("maxZoomFactor",1e3),e.setPropertyValue("extraMin",0),e.setPropertyValue("extraMax",0),e.setPropertyValue("strictMinMax",!1),e.setPropertyValue("maxPrecision",Number.MAX_VALUE),e.keepSelection=!1,e.applyTheme(),e}return n.c(e,t),e.prototype.fillRule=function(t){var e=t.value,i=t.component;t.axisFill.disabled||(l.round(e/i.step/2,5)==Math.round(e/i.step/2)?t.axisFill.__disabled=!0:t.axisFill.__disabled=!1)},e.prototype.createDataItem=function(){return new f},e.prototype.createAxisBreak=function(){return new u.a},e.prototype.dataChangeUpdate=function(){this.keepSelection?(0!=this._start&&this.dispatchImmediately("startchanged"),1!=this._end&&this.dispatchImmediately("endchanged")):(this._start=0,this._end=1),this._maxZoomed=this._maxDefined,this._minZoomed=this._minDefined,this._maxAdjusted=this._maxDefined,this._minAdjusted=this._minDefined},e.prototype.processSeriesDataItems=function(){if(this.calculateTotals){var t=this.series.getIndex(0),e=t.startIndex;if(t.dataItems.length>0){e>0&&e--;var i=t.endIndex;i<t.dataItems.length&&i++;for(var n=e;n<i;++n){var r={};h.each(this.series.iterator(),function(t){var e=t.dataItems.getIndex(n);e&&c.each(e.values,function(t){var i=e.values[t].workingValue;p.isNumber(i)&&(p.isNumber(r[t])?r[t]+=Math.abs(i):r[t]=Math.abs(i))})}),h.each(this.series.iterator(),function(t){var e=t.dataItems.getIndex(n);e&&c.each(e.values,function(t){var i=e.values[t].workingValue;p.isNumber(i)&&(e.setCalculatedValue(t,r[t],"total"),e.setCalculatedValue(t,100*i/r[t],"totalPercent"))})})}}}},e.prototype.validate=function(){this.axisLength<=0||(t.prototype.validate.call(this),this.getMinMax(),this.fixAxisBreaks(),this.calculateZoom(),this.validateAxisElements(),this.validateAxisRanges(),this.validateBreaks(),this.hideUnusedDataItems(),this.renderer.invalidateLayout())},e.prototype.calculateZoom=function(){if(p.isNumber(this.min)&&p.isNumber(this.max)){var t=this.positionToValue(this.start),e=this.positionToValue(this.end),i=this.adjustDifference(t,e),n=this.adjustMinMax(t,e,i,this._gridCount,!0);t=n.min,e=n.max,this._adjustedStart=l.round((t-this.min)/(this.max-this.min),5),this._adjustedEnd=l.round((e-this.min)/(this.max-this.min),5),this._step=n.step,this._stepDecimalPlaces=d.decimalPlaces(this._step),this._minZoomed==t&&this._maxZoomed==e||(this._minZoomed=t,this._maxZoomed=e,this.dispatchImmediately("selectionextremeschanged"))}else this._adjustedStart=this.start,this._adjustedEnd=this.end},e.prototype.validateAxisElements=function(){var t=this;if(p.isNumber(this.max)&&p.isNumber(this.min)){var e=this.minZoomed-2*this._step;if(this.logarithmic){var i=Math.log(this.max)*Math.LOG10E-Math.log(this.min)*Math.LOG10E;e=i>1?Math.pow(10,Math.log(this.min)*Math.LOG10E):Math.floor(this.minZoomed/this._step)*this._step}else e=Math.floor(e/this._step)*this._step;var n=this._maxZoomed+this._step;this.resetIterators();for(var r=this._dataItemsIterator,o=0;e<=n;){if(!this.isInBreak(e)){var a=r.find(function(t){return t.value===e});a.__disabled&&(a.__disabled=!1),this.appendDataItem(a),a.axisBreak=void 0,a.value!=e&&(a.value=e,a.text=this.formatLabel(e),a.label&&a.label.invalid&&a.label.validate(),a.value>this.min&&a.value<this.max&&a.label&&(a.label.measuredWidth>this.ghostLabel.measuredWidth||a.label.measuredHeight>this.ghostLabel.measuredHeight)&&(this.ghostLabel.text=a.label.text)),this.validateDataElement(a)}if(o++,this.logarithmic)(i=Math.log(this.max)*Math.LOG10E-Math.log(this.min)*Math.LOG10E)>1?e=Math.pow(10,Math.log(this.min)*Math.LOG10E+o):e+=this._step;else e+=this._step}var s=this.axisBreaks,u=this.renderer;h.each(s.iterator(),function(e){if(e.breakSize>0&&l.getDistance(e.startPoint,e.endPoint)>u.minGridDistance)for(var i=e.adjustedMin;i<=e.adjustedMax;){if(i>=e.adjustedStartValue&&i<=e.adjustedEndValue){var n=r.find(function(t){return t.value===i});n.__disabled&&(n.__disabled=!1),t.appendDataItem(n),n.axisBreak=e,n.value!=i&&(n.value=i,n.text=t.formatLabel(i),n.label&&n.label.invalid&&n.label.validate()),t.validateDataElement(n)}i+=e.adjustedStep}})}},e.prototype.validateDataElement=function(e){t.prototype.validateDataElement.call(this,e);var i=this.renderer,n=e.value,r=e.endValue,o=this.valueToPosition(n);e.position=o;var a=o,s=this.valueToPosition(n+this._step);p.isNumber(r)&&(s=a=this.valueToPosition(r)),e.point=i.positionToPoint(o);var u=e.tick;u&&!u.disabled&&i.updateTickElement(u,o,a);var l=e.grid;l&&!l.disabled&&i.updateGridElement(l,o,a);var h=e.label;h&&!h.disabled&&i.updateLabelElement(h,o,a);var c=e.axisFill;c&&!c.disabled&&(i.updateFillElement(c,o,s),e.isRange||this.fillRule(e));var d=e.mask;d&&i.updateFillElement(d,o,s)},e.prototype.formatLabel=function(t){return this.numberFormatter.format(t)},Object.defineProperty(e.prototype,"basePoint",{get:function(){var t=this._baseValue,e=this.valueToPosition(t);return this.renderer.positionToPoint(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"baseValue",{get:function(){return this.logarithmic?this.min:this._baseValue},set:function(t){this._baseValue=t,this.invalidateLayout()},enumerable:!0,configurable:!0}),e.prototype.anyToPosition=function(t){return this.valueToPosition(t)},e.prototype.valueToPoint=function(t){var e=this.valueToPosition(t),i=this.renderer.positionToPoint(e),n=this.renderer.positionToAngle(e);return{x:i.x,y:i.y,angle:n}},e.prototype.anyToPoint=function(t){return this.valueToPoint(t)},e.prototype.valueToPosition=function(t){if(p.isNumber(t)){var e=this.min,i=this.max;if(p.isNumber(e)&&p.isNumber(i)){var n=this._difference,r=this.axisBreaks;r.length>0&&h.eachContinue(r.iterator(),function(n){var r=n.adjustedStartValue,o=n.adjustedEndValue;if(p.isNumber(r)&&p.isNumber(o)){if(t<r)return!1;if(l.intersect({start:r,end:o},{start:e,end:i})){r=Math.max(r,e),o=Math.min(o,i);var a=n.breakSize;t>o?e+=(o-r)*(1-a):t<r||(t=r+(t-r)*a)}}return!0});return this.logarithmic?(Math.log(t)*Math.LOG10E-Math.log(this.min)*Math.LOG10E)/(Math.log(this.max)*Math.LOG10E-Math.log(this.min)*Math.LOG10E):(t-e)/n}}return 0},e.prototype.positionToValue=function(t){t=l.round(t,10);var e=this.min,i=this.max;if(p.isNumber(e)&&p.isNumber(i)){var n=i-e,r=this.axisBreaks,o=null;return r.length>0&&h.eachContinue(r.iterator(),function(r){var a=r.startPosition,s=r.endPosition,u=r.adjustedStartValue,h=r.adjustedEndValue;if(p.isNumber(u)&&p.isNumber(h)){if(u>i)return!1;if(l.intersect({start:u,end:h},{start:e,end:i})){u=l.max(u,e),h=l.min(h,i);var c=r.breakSize;if(n-=(h-u)*(1-c),t>s)e+=(h-u)*(1-c);else if(!(t<a))return o=u+(t-a)/(s-a)*(h-u),!1}return!0}}),p.isNumber(o)||(o=t*n+e),o}},e.prototype.xToValue=function(t){return this.positionToValue(this.pointToPosition({x:t,y:0}))},e.prototype.yToValue=function(t){return this.positionToValue(this.pointToPosition({x:0,y:t}))},e.prototype.pointToPosition=function(t){return this.renderer instanceof o.a?1-this.renderer.pointToPosition(t):this.renderer.pointToPosition(t)},e.prototype.getMinMax=function(){var t=this;this.updateGridCount();var e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;if(p.isNumber(this._minDefined)&&p.isNumber(this._maxDefined)||h.each(this.series.iterator(),function(n){if(!n.ignoreMinMax){var r=n.min(t);p.isNumber(r)&&r<e&&(e=r);var o=n.max(t);p.isNumber(o)&&o>i&&(i=o)}}),this.logarithmic&&e<=0)throw Error("Logarithmic value axis can not have vales <= 0.");if(0==e&&0==i&&(i=.9,e=-.9),p.isNumber(this._minDefined)&&(e=this._minDefined),p.isNumber(this._maxDefined)&&(i=this._maxDefined),p.isNumber(e)&&p.isNumber(i)){this._minReal=e,this._maxReal=i,e==Number.POSITIVE_INFINITY&&(e=void 0),i==Number.NEGATIVE_INFINITY&&(i=void 0);var n=this.adjustDifference(e,i);e=this.fixMin(e),i=this.fixMax(i),e==i&&(e-=1,i+=1),e-=(i-e)*this.extraMin,i+=(i-e)*this.extraMax;var r=this.adjustMinMax(e,i,n,this._gridCount,this.strictMinMax);if(e=r.min,n=(i=r.max)-e,r=this.adjustMinMax(e,i,i-e,this._gridCount,!0),e=r.min,i=r.max,this.strictMinMax&&(e=p.isNumber(this._minDefined)?this._minDefined:this._minReal,i=p.isNumber(this._maxDefined)?this._maxDefined:this._maxReal),(this._minAdjusted!=e||this._maxAdjusted!=i)&&p.isNumber(e)&&p.isNumber(i)){var o=this._minMaxAnimation;if(this._extremesChanged&&p.isNumber(this._minAdjusted)&&p.isNumber(this._maxAdjusted)&&this.inited){if(o&&!o.isFinished()&&this._finalMax==i&&this._finalMin==e)return;this._finalMin=e,this._finalMax=i,(o=this.animate([{property:"_minAdjusted",from:this._minAdjusted,to:e},{property:"_maxAdjusted",from:this._maxAdjusted,to:i}],this.rangeChangeDuration))&&!o.isFinished()?(o.events.on("animationprogress",this.validateDataItems,this),o.events.on("animationended",function(){t.validateDataItems(),t.series.each(function(t){t.validate()}),t.handleSelectionExtremesChange()}),this._minMaxAnimation=o):this.series.each(function(t){t.validate()}),this.validateDataItems(),this.dispatchImmediately("extremeschanged"),this.handleSelectionExtremesChange()}else{if(o&&!o.isFinished()&&this._finalMax==i&&this._finalMin==e)return;this._minAdjusted=e,this._maxAdjusted=i,this._finalMin=e,this._finalMax=i,this.invalidateDataItems(),this.dispatchImmediately("extremeschanged")}}this._extremesChanged=!1,this._difference=this.adjustDifference(e,i)}},e.prototype.fixMin=function(t){return t},e.prototype.fixMax=function(t){return t},e.prototype.adjustMinMax=function(t,e,i,n,r){n<=1&&(n=1),n=Math.round(n);var o=t,a=e;0===i&&(i=Math.abs(e));var s=Math.log(Math.abs(i))*Math.LOG10E,u=Math.pow(10,Math.floor(s)),h=u/=10;r&&(h=0),this.logarithmic?(t<=0&&(t=this.baseValue),t==1/0&&(t=1),e==-1/0&&(e=10),t=Math.pow(10,Math.floor(Math.log(Math.abs(t))*Math.LOG10E)),e=Math.pow(10,Math.ceil(Math.log(Math.abs(e))*Math.LOG10E))):(r?(t=Math.floor(t/u)*u,e=Math.ceil(e/u)*u):(t=Math.ceil(t/u)*u-h,e=Math.floor(e/u)*u+h),t<0&&o>=0&&(t=0),e>0&&a<=0&&(e=0)),s=Math.log(Math.abs(i))*Math.LOG10E,u=Math.pow(10,Math.floor(s)),u/=10;var c=Math.ceil(i/n/u)*u,p=Math.pow(10,Math.floor(Math.log(Math.abs(c))*Math.LOG10E)),d=Math.ceil(c/p);d>5?d=10:d<=5&&d>2&&(d=5),c=Math.ceil(c/(p*d))*p*d,this.maxPrecision<Number.MAX_VALUE&&c!=l.ceil(c,this.maxPrecision)&&(c=l.ceil(c,this.maxPrecision));var f=0;if(p<1&&(f=Math.round(Math.abs(Math.log(Math.abs(p))*Math.LOG10E))+1,c=l.round(c,f)),!this.logarithmic){var g=Math.floor(t/c);t=l.round(c*g,f);var m=void 0;(m=r?Math.floor(e/c):Math.ceil(e/c))==g&&m++,(e=l.round(c*m,f))<a&&(e+=c),t>o&&(t-=c)}return{min:t,max:e,step:c}},Object.defineProperty(e.prototype,"min",{get:function(){var t=this._minAdjusted;return p.isNumber(t)||(t=this._minDefined),t},set:function(t){this._minDefined!=t&&(this._minDefined=t,this.invalidate())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"extraMin",{get:function(){return this.getPropertyValue("extraMin")},set:function(t){this.setPropertyValue("extraMin",t)&&this.invalidateDataItems()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"extraMax",{get:function(){return this.getPropertyValue("extraMax")},set:function(t){this.setPropertyValue("extraMax",t)&&this.invalidateDataItems()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"step",{get:function(){return this._step},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"max",{get:function(){var t=this._maxAdjusted;return p.isNumber(t)||(t=this._maxDefined),t},set:function(t){this._maxDefined!=t&&(this._maxDefined=t,this.invalidate())},enumerable:!0,configurable:!0}),e.prototype.registerSeries=function(e){return new a.c([t.prototype.registerSeries.call(this,e),e.events.on("extremeschanged",this.handleExtremesChange,this,!1),e.events.on("selectionextremeschanged",this.handleSelectionExtremesChange,this,!1),this.events.on("extremeschanged",e.invalidate,e,!1)])},e.prototype.handleSelectionExtremesChange=function(){var t,e,i=this,n=!0;if(h.each(this.series.iterator(),function(r){if(!r.ignoreMinMax&&!r.isHidden){r.visible&&!r.isHiding&&(n=!1);var o=r.selectionMin(i),a=r.selectionMax(i);p.isNumber(o)&&(!p.isNumber(t)||o<t)&&(t=o),p.isNumber(a)&&(!p.isNumber(e)||a>e)&&(e=a)}}),p.isNumber(this._minDefined)?t=this.strictMinMax?this._minDefined:this.min:this.strictMinMax&&(t=this._minReal),p.isNumber(this._maxDefined)?e=this.strictMinMax?this._maxDefined:this.max:this.strictMinMax&&(e=this._maxReal),t==e){t-=1,e+=1;var r=this.adjustMinMax(t,e,0,this._gridCount,this.strictMinMax);t=r.min,e=r.max}var o=this.adjustDifference(t,e),a=this.adjustMinMax(t,e,o,this._gridCount);t=a.min,e=a.max,t-=(e-t)*this.extraMin,e+=(e-t)*this.extraMax,t=l.fitToRange(t,this.min,this.max),e=l.fitToRange(e,this.min,this.max),o=this.adjustDifference(t,e),a=this.adjustMinMax(t,e,o,this._gridCount,!0),t=a.min,e=a.max,this.strictMinMax&&(t=l.max(t,this._minDefined),e=l.min(e,this._maxDefined));var s=this.valueToPosition(t),u=this.valueToPosition(e);n&&(s=0,u=1),this.zoom({start:s,end:u},!1,!1,0)},Object.defineProperty(e.prototype,"strictMinMax",{get:function(){return this.getPropertyValue("strictMinMax")},set:function(t){this.setPropertyValue("strictMinMax",t)&&this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"logarithmic",{get:function(){return this.getPropertyValue("logarithmic")},set:function(t){this.setPropertyValue("logarithmic",t)&&this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"keepSelection",{get:function(){return this.getPropertyValue("keepSelection")},set:function(t){this.setPropertyValue("keepSelection",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxPrecision",{get:function(){return this.getPropertyValue("maxPrecision")},set:function(t){this.setPropertyValue("maxPrecision",t)&&this.invalidate()},enumerable:!0,configurable:!0}),e.prototype.handleExtremesChange=function(){if(this._extremesChanged=!0,this.getMinMax(),this.ghostLabel){var t=this.min,e=this.max,i=0;i=p.isNumber(t)&&p.isNumber(e)&&t.toString().length>e.toString().length?t:e,this.ghostLabel.text=this.formatLabel(i)}},e.prototype.getX=function(t,e,i,n){var r=t.getWorkingValue(e);p.hasValue(n)||(n="valueX");var o=t.getValue(n,"stack");return p.isNumber(r)||(r=this.baseValue,this.logarithmic&&o>0&&(r=0)),this.renderer.positionToPoint(this.valueToPosition(r+o)).x},e.prototype.getY=function(t,e,i,n){var r=t.getWorkingValue(e);p.hasValue(n)||(n="valueY");var o=t.getValue(n,"stack");return p.isNumber(r)||(r=this.baseValue,this.logarithmic&&o>0&&(r=0)),this.renderer.positionToPoint(this.valueToPosition(r+o)).y},e.prototype.getAngle=function(t,e,i,n){var r=t.getWorkingValue(e),o=t.getValue(n,"stack");return p.isNumber(r)||(r=this.baseValue),this.positionToAngle(this.valueToPosition(r+o))},e.prototype.getAnyRangePath=function(t,e,i){var n=this.valueToPosition(t),r=this.valueToPosition(e);return this.getPositionRangePath(n,r)},e.prototype.getTooltipText=function(t){var e=l.round(this.positionToValue(t),this._stepDecimalPlaces);return this.adapter.apply("getTooltipText",this.tooltip.numberFormatter.format(e))},e.prototype.zoomToValues=function(t,e,i,n){var r=(t-this.min)/(this.max-this.min),o=(e-this.min)/(this.max-this.min);this.zoom({start:r,end:o},i,n)},Object.defineProperty(e.prototype,"minZoomed",{get:function(){return l.max(this.min,this._minZoomed)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxZoomed",{get:function(){return l.min(this.max,this._maxZoomed)},enumerable:!0,configurable:!0}),e.prototype.fixAxisBreaks=function(){var e=this;t.prototype.fixAxisBreaks.call(this);var i=this.axisBreaks;i.length>0&&i.each(function(t){var i=t.adjustedStartValue,n=t.adjustedEndValue,r=n-i,o=Math.ceil(r*t.breakSize)*e._gridCount/(e.max-e.min),a=e.adjustMinMax(i,n,r,o,!0);t.adjustedStep=a.step,t.adjustedMin=a.min,t.adjustedMax=a.max}),this._difference=this.adjustDifference(this.min,this.max)},e.prototype.getPositionLabel=function(t){var e=this.positionToValue(t);return this.numberFormatter.format(e)},e.prototype.showTooltipAt=function(t){this.showTooltipAtPosition(this.valueToPosition(t))},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.min=e.min,this.max=e.max,this.calculateTotals=e.calculateTotals,this._baseValue=e.baseValue},e}(r.a);s.b.registeredClasses.ValueAxis=g,s.b.registeredClasses.ValueAxisDataItem=f},pb4Y:function(t,e){t.exports=!1},pmYy:function(t,e){e.f=Object.getOwnPropertySymbols},pvlQ:function(t,e,i){"use strict";var n=i("DvJ+"),r=i("K0ev"),o=i("YEtG")("hasInstance"),a=Function.prototype;o in a||i("hjwn").f(a,o,{value:function(t){if("function"!=typeof this||!n(t))return!1;if(!n(this.prototype))return t instanceof this;for(;t=r(t);)if(this.prototype===t)return!0;return!1}})},pzs1:function(t,e,i){"use strict";i.d(e,"a",function(){return a});var n=i("58Sn"),r=i("Qkdp"),o=i("Mtpk"),a=function(){function t(t){this._isDisposed=!1,this._x=0,this._y=0,this._rotation=0,this._scale=1,this.node="string"==typeof t?document.createElementNS(n.a,t):t}return t.prototype.removeNode=function(){this.node&&this.node.parentNode&&this.node.parentNode.removeChild(this.node)},Object.defineProperty(t.prototype,"transformString",{get:function(){if(this.node)return this._transformString},enumerable:!0,configurable:!0}),t.prototype.transform=function(){var t="translate("+this._x+","+this._y+")";1!=this._scale&&(t+=(t?" ":"")+"scale("+this._scale+")"),0!=this._rotation&&(t+=(t?" ":"")+"rotate("+this._rotation+")"),this._transformString=t,this.node.setAttribute("transform",t)},t.prototype.getBBox=function(){var t={width:0,height:0,x:0,y:0};if(this.node&&this.node.parentNode)try{var e=this.node.getBBox();t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height}catch(t){}return t},t.prototype.moveTo=function(t){if(t){var e=t.x,i=t.y;this._x==e&&this._y==i||(this._x=e,this._y=i,this.transform())}},Object.defineProperty(t.prototype,"content",{get:function(){return this.node.innerHTML||""},set:function(t){this.node.innerHTML=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"textContent",{get:function(){return this.node.textContent||""},set:function(t){this.node.textContent=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"x",{get:function(){return this._x},set:function(t){this._x!=t&&(this._x=t,this.transform())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"y",{get:function(){return this._y},set:function(t){this._y!=t&&(this._y=t,this.transform())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rotation",{get:function(){return this._rotation},set:function(t){this._rotation!=t&&(this._rotation=t,this.transform())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scale",{get:function(){return this._scale},set:function(t){this._scale!=t&&(this._scale=t,this.transform())},enumerable:!0,configurable:!0}),t.prototype.removeAttr=function(t){this.node.removeAttribute(t)},t.prototype.attr=function(t){var e=this;return r.each(t,function(t,i){o.hasValue(i)?e.node.setAttribute(t,i):e.node.removeAttribute(t)}),this},t.prototype.getAttr=function(t){return this.node.getAttribute(t)},t.prototype.attrNS=function(t,e,i){return this.node.setAttributeNS(t,e,i),this},t.prototype.getAttrNS=function(t,e){return this.node.getAttributeNS(t,e)},t.prototype.removeStyle=function(t){delete this.node.style[t]},t.prototype.getStyle=function(t){return this.node.style[t]},t.prototype.addStyle=function(t){var e=this;return r.each(t,function(t,i){o.hasValue(i)?e.node.style[t]=i:e.removeStyle(t)}),this},t.prototype.addClass=function(t){n.f(this.node,t)},t.prototype.removeClass=function(t){n.s(this.node,t)},t.prototype.setClass=function(t){this.node.setAttribute("class",t)},t.prototype.removeChildNodes=function(){for(;this.node.childNodes.length>0;)this.node.removeChild(this.node.firstChild)},t.prototype.isDisposed=function(){return this._isDisposed},t.prototype.dispose=function(){this.removeNode()},t}()},"q+2p":function(t,e,i){var n=Date.prototype,r=n.toString,o=n.getTime;new Date(NaN)+""!="Invalid Date"&&i("wDk4")(n,"toString",function(){var t=o.call(this);return t==t?r.call(this):"Invalid Date"})},qCRI:function(t,e,i){"use strict";i.d(e,"a",function(){return n});var n=function(){function t(){}return t.grab=[{property:"cursor",value:"move"},{property:"cursor",value:"grab"},{property:"cursor",value:"-moz-grab"},{property:"cursor",value:"-webkit-grab"}],t.grabbing=[{property:"cursor",value:"move"},{property:"cursor",value:"grabbing"},{property:"cursor",value:"-moz-grabbing"},{property:"cursor",value:"-webkit-grabbing"}],t.pointer=[{property:"cursor",value:"pointer"}],t.default=[{property:"cursor",value:"default"}],t.horizontalResize=[{property:"cursor",value:"ew-resize"}],t.verticalResize=[{property:"cursor",value:"ns-resize"}],t}()},qJno:function(t,e,i){"use strict";var n=i("m4/l"),r=i("58Sn"),o=i("MIZb"),a=i("+qIf"),s=i("hD5A"),u=new a.a,l=i("x79X"),h=i("vMqJ"),c=i("zhwk"),p=i("P/bD"),d=i("/IEW"),f=i("WYhe"),g=i("v9UT"),m=i("Wglt"),y=i("Mtpk");i.d(e,"a",function(){return b});var b=function(t){function e(){var e=t.call(this)||this;return e.adapter=new l.a(e),e.closeDelay=1e3,e.closeOnClick=!0,e._language=new s.d,e._menuTag="ul",e._itemTag="li",e._labelTag="a",e._classPrefix="amexport",e._defaultStyles=!0,e._align="right",e._verticalAlign="top",e._tabindex=0,e._ignoreNextClose=!1,e._items=[{label:"...",menu:[{label:"Image",menu:[{type:"png",label:"PNG"},{type:"jpg",label:"JPG"},{type:"gif",label:"GIF"},{type:"svg",label:"SVG"},{type:"pdf",label:"PDF"}]},{label:"Data",menu:[{type:"json",label:"JSON"},{type:"csv",label:"CSV"},{type:"xlsx",label:"XLSX"}]},{label:"Print",type:"print"}]}],e.className="ExportMenu",e._disposers.push(e._language),e.invalidate(),e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){this.draw(),t.prototype.validate.call(this)},e.prototype.draw=function(){var t=this;this._element?(this._element.innerHTML="",this._element.className=this.getMenuItemClass(0)):this._element=this.createMenuElement(0),this.defaultStyles&&(this._element.style.display="none"),y.getValue(this._container).appendChild(this._element),this._items=this.adapter.apply("items",{items:this._items}).items;for(var e=this._items.length,i=0;i<e;i++)this.drawBranch(this._element,this._items[i],0);this._element=this.adapter.apply("menuElement",{menuElement:this._element}).menuElement,this._disposers.push(Object(c.b)().body.events.on("down",function(e){e.pointer.touch||(t._ignoreNextClose=!1),t.close()})),this._disposers.push(Object(c.b)().body.events.on("keyup",function(e){var i=f.b.getEventKey(e.event);switch(i){case"esc":t.close();break;case"up":case"down":case"left":case"right":t.moveSelection(i)}})),this.defaultStyles&&this.loadDefaultCSS()},e.prototype.drawBranch=function(t,e,i){var n=this;if(!0!==(e=this.adapter.apply("branch",{branch:e,level:i}).branch).unsupported){e.ascendants||(e.ascendants=new h.b);var r=e.type,o=this.createItemElement(i,r),a=this.createLabelElement(i,r);a.innerHTML=e.label?this.language.translate(e.label):"";var s=this.getReaderLabel(e,a.innerHTML);a.setAttribute("aria-label",s),o.appendChild(a),e.interactions=Object(c.b)().getInteraction(a),this.typeClickable(r)&&(e.interactions.events.on("hit",function(t){if(n.events.isEnabled("hit")){var i={type:"hit",event:t.event,target:n,branch:e};n.events.dispatchImmediately("hit",i)}}),e.interactions.events.on("keyup",function(t){if(f.b.isKey(t.event,"enter")&&n.events.isEnabled("enter")){var i={type:"enter",event:t.event,target:n,branch:e};n.events.dispatchImmediately("enter",i)}}));var u=this.getSubMenu(e);null!=u&&e.interactions.events.on("keyup",function(t){f.b.isKey(t.event,"enter")&&(n.selectBranch(u[0]),n.setFocus(u[0]))}),e.interactions.events.on("over",function(t){if(t.pointer.touch&&(n._ignoreNextClose=!0),n.selectBranch(e),n.events.isEnabled("over")){var i={type:"over",event:t.event,target:n,branch:e};n.events.dispatchImmediately("over",i)}}),e.interactions.events.on("out",function(t){if(t.pointer.touch||n.delayUnselectBranch(e),n.events.isEnabled("out")){var i={type:"out",event:t.event,target:n,branch:e};n.events.dispatchImmediately("out",i)}}),e.interactions.events.on("focus",function(t){n.selectBranch(e)}),e.interactions.events.on("blur",function(t){n.delayUnselectBranch(e)});var l=i+1;if(e.menu){for(var p=this.createMenuElement(l),d=e.menu.length,g=0;g<d;g++){var m=new h.b;e.menu[g].ascendants=m,e.ascendants.length&&m.copyFrom(e.ascendants),m.push(e),this.drawBranch(p,e.menu[g],l)}if(""==p.innerHTML)return;o.appendChild(p)}t.appendChild(o)}},e.prototype.createMenuElement=function(t){var e=document.createElement(this.menuTag);return e.className=this.getMenuItemClass(t),0===t&&e.setAttribute("role","menu"),e},e.prototype.getMenuItemClass=function(t){var e=this.classPrefix+"-menu "+this.classPrefix+"-menu-level-"+t;return 0===t&&(e+=" "+this.classPrefix+"-menu-root "+this.classPrefix+"-"+this.align+" "+this.classPrefix+"-"+this.verticalAlign),this.adapter.apply("menuClass",{className:e,level:t}).className},e.prototype.createItemElement=function(t,e){var i=document.createElement(this.itemTag),n=this.classPrefix+"-item "+this.classPrefix+"-item-level-"+t+" "+this.classPrefix+"-item-"+(e||"blank");return i.className=this.adapter.apply("itemClass",{className:n,level:t,type:e}).className,i},e.prototype.createLabelElement=function(t,e){var i=document.createElement(this.labelTag),n=this.classPrefix+"-label "+this.classPrefix+"-label-level-"+t+" "+this.classPrefix+"-item-"+(e||"blank");return this.typeClickable(e)&&(n+=" "+this.classPrefix+"-clickable"),i.className=this.adapter.apply("labelClass",{className:n,level:t,type:e}).className,i.setAttribute("tabindex",this.tabindex.toString()),i.setAttribute("role","menuitem"),i},e.prototype.dispose=function(){this._disposed||(t.prototype.dispose.call(this),this._element&&this._element.parentNode&&this._element.parentNode.removeChild(this._element))},e.prototype.typeClickable=function(t){return y.hasValue(t)},e.prototype.hasSubMenu=function(t){return!(!t.menu||!t.menu.length)},e.prototype.getSubMenu=function(t){if(t.menu&&t.menu.length)return t.menu},e.prototype.getReaderLabel=function(t,e){return e=g.stripTags(e),this.hasSubMenu(t)?e+=" ["+this.language.translate("Click, tap or press ENTER to open")+"]":"print"==t.type?e=this.language.translate("Click, tap or press ENTER to print."):this.typeClickable(t.type)&&(e=this.language.translate("Click, tap or press ENTER to export as %1.",void 0,e)),this.adapter.apply("rederLabel",{label:e,branch:t}).label},Object.defineProperty(e.prototype,"container",{get:function(){return this._container},set:function(t){this._container=t,this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"items",{get:function(){return this._items},set:function(t){this._items=t,this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tag",{set:function(t){this._menuTag=t,this._itemTag="ul"==t?"li":"div",this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"menuTag",{get:function(){return this.adapter.apply("menuTag",{tag:this._menuTag}).tag},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"itemTag",{get:function(){return this.adapter.apply("itemTag",{tag:this._itemTag}).tag},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"labelTag",{get:function(){return this.adapter.apply("labelTag",{tag:this._labelTag}).tag},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"align",{get:function(){return this.adapter.apply("align",{align:this._align}).align},set:function(t){this._align=t,this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"verticalAlign",{get:function(){return this.adapter.apply("verticalAlign",{verticalAlign:this._verticalAlign}).verticalAlign},set:function(t){this._verticalAlign=t,this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"classPrefix",{get:function(){return this.adapter.apply("classPrefix",{classPrefix:this._classPrefix}).classPrefix},set:function(t){this._classPrefix=t,this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultStyles",{get:function(){return this.adapter.apply("defaultStyles",{defaultStyles:this._defaultStyles}).defaultStyles},set:function(t){this._defaultStyles!=t&&(this._defaultStyles=t,t&&this.loadDefaultCSS()),this.invalidate()},enumerable:!0,configurable:!0}),e.prototype.loadDefaultCSS=function(){this._disposers.push(function(t){var e=t||"amexport",i=new o.a;return u.insertKeyIfEmpty(e,function(){var t=new s.c([new r.c("."+e+"-menu-level-0",{position:"absolute",top:"5px",right:"5px"}),new r.c("."+e+"-menu-level-0."+e+"-left",{right:"auto",left:"5px"}),new r.c("."+e+"-menu-level-0."+e+"-right",{right:"5px",left:"auto"}),new r.c("."+e+"-menu-level-0."+e+"-top",{top:"5px",bottom:"auto"}),new r.c("."+e+"-menu-level-0."+e+"-bottom",{top:"auto",bottom:"5px"}),new r.c("."+e+"-item."+e+"-item-level-0",{opacity:"0.3",width:"30px",height:"30px",transition:"all 100ms ease-in-out"}),new r.c("div:hover ."+e+"-item."+e+"-item-level-0, ."+e+"-item."+e+"-item-level-0.active",{opacity:"0.9"}),new r.c("."+e+"-item."+e+"-item-level-0 > a",{padding:"0","text-align":"center"}),new r.c("."+e+"-item."+e+"-item-level-0:before",{display:"block"}),new r.c("."+e+"-item",{position:"relative",display:"block",opacity:"0","z-index":"1","border-radius":"3px","background-color":i.getFor("secondaryButton").hex,padding:"0",margin:"1px 1px 0 0",color:i.getFor("secondaryButton").alternative.hex,transition:"all 100ms ease-in-out, opacity 0.5s ease 0.5s"}),new r.c("."+e+"-left ."+e+"-item",{margin:"1px 0 0 1px"}),new r.c("."+e+"-item:hover, ."+e+"-item.active",{background:i.getFor("secondaryButtonHover").hex,color:i.getFor("secondaryButtonText").hex}),new r.c("."+e+"-item > ."+e+"-menu",{position:"absolute",top:"-1px",right:"0","margin-right":"100%"}),new r.c("."+e+"-left ."+e+"-item > ."+e+"-menu",{left:"0",right:"auto","margin-left":"100%","margin-right":"auto"}),new r.c("."+e+"-right ."+e+"-item > ."+e+"-menu",{left:"auto",right:"0","margin-left":"auto","margin-right":"100%"}),new r.c("."+e+"-top ."+e+"-item > ."+e+"-menu",{top:"-1px",bottom:"auto"}),new r.c("."+e+"-bottom ."+e+"-item > ."+e+"-menu",{top:"auto",bottom:"0"}),new r.c("."+e+"-item > ."+e+"-menu",{display:"none"}),new r.c("."+e+"-item:hover > ."+e+"-menu, ."+e+"-item.active > ."+e+"-menu",{display:"block"}),new r.c("."+e+"-item:hover > ."+e+"-menu > ."+e+"-item, ."+e+"-item.active > ."+e+"-menu > ."+e+"-item",{opacity:"1"}),new r.c("."+e+"-menu",{display:"block","list-style":"none",margin:"0",padding:"0"}),new r.c("."+e+"-label",{display:"block",cursor:"default",padding:"0.5em 1em"}),new r.c("."+e+"-clickable",{cursor:"pointer"})]);return new s.a(function(){u.removeKey(e),t.dispose()})}).increment()}(this.classPrefix)),this._element&&(this._element.style.display="")},Object.defineProperty(e.prototype,"tabindex",{get:function(){return this.adapter.apply("tabindex",{tabindex:this._tabindex}).tabindex},set:function(t){this._tabindex=t,this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"language",{get:function(){var t=this,e=this._language.get();return null==e&&(e=new p.a,this._language.set(e,e.events.on("localechanged",function(e){t.invalidate()}))),e},set:function(t){var e=this;this._language.set(t,t.events.on("localechanged",function(t){e.invalidate()})),this.invalidate()},enumerable:!0,configurable:!0}),e.prototype.close=function(){var t=this;if(this._ignoreNextClose)this._ignoreNextClose=!1;else{if(this.closeOnClick&&(this._element.style.pointerEvents="none",setTimeout(function(){t._element.style.pointerEvents="auto"},100)),this._currentSelection&&(this.setBlur(this._currentSelection),this._currentSelection=void 0),this._element)for(var e=this._element.getElementsByClassName("active"),i=e.length-1;i>=0;i--)e[i]&&r.s(e[i],"active");this.events.dispatchImmediately("closed",{type:"closed",target:this})}},e.prototype.selectBranch=function(t){var e=this;if(t.closeTimeout&&(this.removeDispose(t.closeTimeout),t.closeTimeout=void 0),r.f(t.interactions.element.parentElement,"active"),this._currentSelection&&this._currentSelection!==t&&this._currentSelection.ascendants&&m.each(m.concat(m.fromArray([this._currentSelection]),this._currentSelection.ascendants.iterator()),function(i){t.ascendants.contains(i)||t===i||e.unselectBranch(i,!0)}),m.each(t.ascendants.iterator(),function(t){t.closeTimeout&&(e.removeDispose(t.closeTimeout),t.closeTimeout=void 0),r.f(t.interactions.element.parentElement,"active")}),this._currentSelection=t,this.events.isEnabled("branchselected")){var i={type:"branchselected",target:this,branch:t};this.events.dispatchImmediately("branchselected",i)}},e.prototype.unselectBranch=function(t,e){if(r.s(t.interactions.element.parentElement,"active"),this._currentSelection==t&&(this._currentSelection=void 0),this.events.isEnabled("branchunselected")){var i={type:"branchunselected",target:this,branch:t};this.events.dispatchImmediately("branchunselected",i)}},e.prototype.delayUnselectBranch=function(t,e){var i=this;t.closeTimeout&&(this.removeDispose(t.closeTimeout),t.closeTimeout=void 0),t.closeTimeout=this.setTimeout(function(){i.unselectBranch(t,e)},this.closeDelay),!0!==e&&t.ascendants&&m.each(t.ascendants.iterator(),function(t){i.delayUnselectBranch(t,!0)})},e.prototype.moveSelection=function(t){if(this._currentSelection){var e;if("up"==t)e=this.getPrevSibling(this._currentSelection);else if("down"==t)e=this.getNextSibling(this._currentSelection);else if("left"==t&&"right"==this.align||"right"==t&&"left"==this.align){var i=this.getSubMenu(this._currentSelection);null!=i&&(e=i[0])}else("right"==t&&"right"==this.align||"left"==t&&"left"==this.align)&&(e=this.getParentItem(this._currentSelection));e&&e!==this._currentSelection&&(this.selectBranch(e),this.setFocus(e),this._currentSelection=e)}},e.prototype.getSiblings=function(t){var e=this.getParentItem(t);return e&&e.menu?e.menu:[]},e.prototype.getParentItem=function(t){return t.ascendants&&t.ascendants.length?t.ascendants.getIndex(t.ascendants.length-1):void 0},e.prototype.getNextSibling=function(t){var e=this.getSiblings(t);if(e.length>1){var i=e.indexOf(t)+1;return e[i=e.length==i?0:i].unsupported?this.getNextSibling(e[i]):e[i]}return t},e.prototype.getPrevSibling=function(t){var e=this.getSiblings(t);if(e.length>1){var i=e.indexOf(t)-1;return e[i=-1==i?e.length-1:i].unsupported?this.getPrevSibling(e[i]):e[i]}return t},e.prototype.setFocus=function(t){t.interactions&&t.interactions.element.focus()},e.prototype.setBlur=function(t){t.interactions&&t.interactions.element.blur()},e}(d.a)},"qUC/":function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("DG6Q"),o=i("Mr4Y"),a=i("aCit"),s=function(t){function e(){var e=t.call(this)||this;return e.className="Column3D",e}return n.c(e,t),e.prototype.createAssets=function(){this.column3D=this.createChild(o.a),this.column3D.shouldClone=!1,this.column3D.strokeOpacity=0,this.column=this.column3D},e.prototype.validate=function(){t.prototype.validate.call(this),this.column3D&&(this.column3D.width=this.pixelWidth,this.column3D.height=this.pixelHeight,this.column3D.invalid&&this.column3D.validate())},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.column3D&&this.column3D.copyFrom(e.column3D)},e}(r.a);a.b.registeredClasses.Column3D=s},qgJR:function(t,e,i){"use strict";var n=i("snR7"),r=i("DVvQ"),o=i("2i0j");i("7V6K")("search",1,function(t,e,i,a){return[function(i){var n=t(this),r=void 0==i?void 0:i[e];return void 0!==r?r.call(i,n):new RegExp(i)[e](String(n))},function(t){var e=a(i,t,this);if(e.done)return e.value;var s=n(t),u=String(this),l=s.lastIndex;r(l,0)||(s.lastIndex=0);var h=o(s,u);return r(s.lastIndex,l)||(s.lastIndex=l),null===h?-1:h.index}]})},quKg:function(t,e,i){"use strict";i.d(e,"b",function(){return p}),i.d(e,"a",function(){return d});var n=i("m4/l"),r=i("DXFp"),o=i("tjMS"),a=i("Puh1"),s=i("aCit"),u=i("Wglt"),l=i("v9UT"),h=i("Gg2j"),c=i("Mtpk"),p=function(t){function e(){var e=t.call(this)||this;return e.className="PieChartDataItem",e.applyTheme(),e}return n.c(e,t),e}(r.b),d=function(t){function e(){var e=t.call(this)||this;e.className="PieChart",e.innerRadius=0,e.radius=Object(o.c)(80),e.align="none",e.valign="none",e.startAngle=-90,e.endAngle=270;var i=e.seriesContainer;return i.isMeasured=!0,i.valign="middle",i.align="center",i.layout="absolute",i.width=void 0,i.height=void 0,e.chartContainer.minHeight=50,e.chartContainer.minWidth=50,e.chartContainer.events.on("maxsizechanged",e.updateRadius,e,!1),e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),c.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Pie chart"))},e.prototype.validateLayout=function(){t.prototype.validateLayout.call(this),this.updateRadius()},e.prototype.handleSeriesAdded=function(e){t.prototype.handleSeriesAdded.call(this,e),this.updateSeriesAngles()},e.prototype.updateSeriesAngles=function(){var t=this;this.series.each(function(e){e.startAngle=t.startAngle,e.endAngle=t.endAngle,e.defaultState.properties.startAngle=t.startAngle,e.defaultState.properties.endAngle=t.endAngle})},e.prototype.updateRadius=function(){var t=this.chartContainer,e=h.getArcRect(this.startAngle,this.endAngle,1),i={x:0,y:0,width:0,height:0},n=this.innerRadius;n instanceof o.a&&(i=h.getArcRect(this.startAngle,this.endAngle,n.value)),e=h.getCommonRectangle([e,i]);var r=Math.min(t.innerWidth/e.width,t.innerHeight/e.height);c.isNumber(r)||(r=0);var a=l.relativeRadiusToValue(this.radius,r),s=l.relativeRadiusToValue(this.innerRadius,r),p=(a-s)/this.series.length;this._chartPixelRadius=a,this._chartPixelInnerRadius=s,u.each(u.indexed(this.series.iterator()),function(t){var e=t[0],i=t[1],n=s+l.relativeRadiusToValue(i.radius,a-s),r=s+l.relativeRadiusToValue(i.innerRadius,a-s);c.isNumber(n)||(n=s+p*(e+1)),c.isNumber(r)||(r=s+p*e),i.pixelRadius=n,i.pixelInnerRadius=r}),this.seriesContainer.definedBBox={x:a*e.x,y:a*e.y,width:a*e.width,height:a*e.height},this.seriesContainer.invalidateLayout(),this.bulletsContainer.x=this.seriesContainer.x,this.bulletsContainer.y=this.seriesContainer.y},Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)&&this.invalidateLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),e.prototype.createSeries=function(){return new a.a},Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",t)&&(this.updateRadius(),this.updateSeriesAngles())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t)&&(this.updateRadius(),this.updateSeriesAngles())},enumerable:!0,configurable:!0}),e}(r.a);s.b.registeredClasses.PieChart=d,s.b.registeredClasses.PieChartDataItem=p},qzbU:function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("Vs7R"),o=i("aCit"),a=i("MIZb"),s=function(t){function e(){var e=t.call(this)||this;e.className="Tick";var i=new a.a;return e.fillOpacity=0,e.length=6,e.strokeOpacity=.2,e.stroke=i.getFor("grid"),e.isMeasured=!1,e.nonScalingStroke=!0,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"length",{get:function(){return this.disabled?0:this.getPropertyValue("length")},set:function(t){this.setPropertyValue("length",t,!0)},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.Tick=s},r7ZX:function(t,e,i){i("3mH9")("Set")},rFJX:function(t,e,i){var n=i("DvJ+");t.exports=function(t,e){if(!n(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},rTLi:function(t,e,i){"use strict";i("Mvcd")("small",function(t){return function(){return t(this,"small","","")}})},"rU+O":function(t,e,i){"use strict";var n=i("snR7"),r=i("vJiZ"),o=i("FmWr"),a=i("4BRe"),s=i("YxCF"),u=i("2i0j"),l=Math.max,h=Math.min,c=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g,f=function(t){return void 0===t?t:String(t)};i("7V6K")("replace",2,function(t,e,i,g){return[function(n,r){var o=t(this),a=void 0==n?void 0:n[e];return void 0!==a?a.call(n,o,r):i.call(String(o),n,r)},function(t,e){var r=g(i,t,this,e);if(r.done)return r.value;var c=n(t),p=String(this),d="function"==typeof e;d||(e=String(e));var y=c.global;if(y){var b=c.unicode;c.lastIndex=0}for(var v=[];;){var _=u(c,p);if(null===_)break;if(v.push(_),!y)break;""===String(_[0])&&(c.lastIndex=s(p,o(c.lastIndex),b))}for(var x="",P=0,w=0;w<v.length;w++){_=v[w];for(var O=String(_[0]),S=l(h(a(_.index),p.length),0),T=[],C=1;C<_.length;C++)T.push(f(_[C]));var k=_.groups;if(d){var I=[O].concat(T,S,p);void 0!==k&&I.push(k);var M=String(e.apply(void 0,I))}else M=m(O,p,S,T,k,e);S>=P&&(x+=p.slice(P,S)+M,P=S+O.length)}return x+p.slice(P)}];function m(t,e,n,o,a,s){var u=n+t.length,l=o.length,h=d;return void 0!==a&&(a=r(a),h=p),i.call(s,h,function(i,r){var s;switch(r.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,n);case"'":return e.slice(u);case"<":s=a[r.slice(1,-1)];break;default:var h=+r;if(0===h)return r;if(h>l){var p=c(h/10);return 0===p?r:p<=l?void 0===o[p-1]?r.charAt(1):o[p-1]+r.charAt(1):r}s=o[h-1]}return void 0===s?"":s})}})},rU6r:function(t,e,i){i("YJIw")("Uint8",1,function(t){return function(e,i,n){return t(this,e,i,n)}})},rkh7:function(t,e,i){var n=i("ODWe"),r=i("heQh").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,r)}},rutD:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("4BRe"),o=i("GIxq"),a=i("lhvN"),s=1..toFixed,u=Math.floor,l=[0,0,0,0,0,0],h="Number.toFixed: incorrect invocation!",c=function(t,e){for(var i=-1,n=e;++i<6;)n+=t*l[i],l[i]=n%1e7,n=u(n/1e7)},p=function(t){for(var e=6,i=0;--e>=0;)i+=l[e],l[e]=u(i/t),i=i%t*1e7},d=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==l[t]){var i=String(l[t]);e=""===e?i:e+a.call("0",7-i.length)+i}return e},f=function(t,e,i){return 0===e?i:e%2==1?f(t,e-1,i*t):f(t*t,e/2,i)};n(n.P+n.F*(!!s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!i("AEc5")(function(){s.call({})})),"Number",{toFixed:function(t){var e,i,n,s,u=o(this,h),l=r(t),g="",m="0";if(l<0||l>20)throw RangeError(h);if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(g="-",u=-u),u>1e-21)if(i=(e=function(t){for(var e=0,i=t;i>=4096;)e+=12,i/=4096;for(;i>=2;)e+=1,i/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),i*=4503599627370496,(e=52-e)>0){for(c(0,i),n=l;n>=7;)c(1e7,0),n-=7;for(c(f(10,n,1),0),n=e-1;n>=23;)p(1<<23),n-=23;p(1<<n),c(1,1),p(2),m=d()}else c(0,i),c(1<<-e,0),m=d()+a.call("0",l);return m=l>0?g+((s=m.length)<=l?"0."+a.call("0",l-s)+m:m.slice(0,s-l)+"."+m.slice(s-l)):g+m}})},s9al:function(t,e,i){"use strict";i.d(e,"a",function(){return m});var n=i("m4/l"),r=i("Vs7R"),o=i("C6dT"),a=i("sxA1"),s=i("aCit"),u=i("TXRX"),l=i("8ZqG"),h=i("vMqJ"),c=i("jfaP"),p=i("PTiM"),d=i("MIZb"),f=i("Wglt"),g=i("Mtpk"),m=function(t){function e(){var e=t.call(this)||this;e.className="FlowDiagramLink";var i=new d.a;return e.maskBullets=!1,e.colorMode="fromNode",e.layout="none",e.isMeasured=!1,e.startAngle=0,e.endAngle=0,e.strokeOpacity=0,e.verticalCenter="none",e.horizontalCenter="none",e.tooltipText="{fromName}→{toName}:{value.value}",e.tooltipLocation=.5,e.link=e.createChild(r.a),e.link.shouldClone=!1,e.link.setElement(e.paper.add("path")),e.link.isMeasured=!1,e.fillOpacity=.2,e.fill=i.getFor("alternativeBackground"),e.applyTheme(),e}return n.c(e,t),e.prototype.positionBullets=function(){var t=this;f.each(this.bullets.iterator(),function(e){e.parent=t.bulletsContainer,e.maxWidth=t.maxWidth,e.maxHeight=t.maxHeight,t.positionBullet(e)})},Object.defineProperty(e.prototype,"bulletsContainer",{get:function(){if(!this._bulletsContainer){var t=this.createChild(o.a);t.shouldClone=!1,t.layout="none",this._bulletsContainer=t}return this._bulletsContainer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bulletsMask",{get:function(){if(!this._bulletsMask){var t=this.createChild(r.a);t.shouldClone=!1,t.setElement(this.paper.add("path")),t.isMeasured=!1,this._bulletsMask=t}return this._bulletsMask},enumerable:!0,configurable:!0}),e.prototype.positionBullet=function(t){var e=t.locationX;g.isNumber(e)||(e=t.locationY),g.isNumber(e)||(e=.5);var i=this.middleLine.positionToPoint(e);t.moveTo(i);var n,r=t.propertyFields.rotation;t.dataItem&&(n=t.dataItem.dataContext[r]);g.isNumber(n)||(n=i.angle),t.rotation=n},Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"colorMode",{get:function(){return this.getPropertyValue("colorMode")},set:function(t){if("gradient"==t){var e=this.fill;this.gradient.stops.clear(),e instanceof l.a&&(this.gradient.addColor(e),this.gradient.addColor(e)),this.fill=this.gradient,this.stroke=this.gradient}this.setPropertyValue("colorMode",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maskBullets",{get:function(){return this.getPropertyValue("maskBullets")},set:function(t){this.setPropertyValue("maskBullets",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipLocation",{get:function(){return this.getPropertyValue("tooltipLocation")},set:function(t){this.setPropertyValue("tooltipLocation",t,!0)},enumerable:!0,configurable:!0}),e.prototype.setFill=function(e){t.prototype.setFill.call(this,e);var i=this._gradient;i&&e instanceof l.a&&(i.stops.clear(),i.addColor(e),i.addColor(e))},e.prototype.measureElement=function(){},Object.defineProperty(e.prototype,"bullets",{get:function(){var t=this;return this._bullets||(this._bullets=new h.e(new u.a),this._disposers.push(new h.c(this._bullets)),this._disposers.push(this._bullets.template),this._bullets.events.on("inserted",function(e){e.newValue.events.on("propertychanged",function(e){"locationX"!=e.property&&"locationY"!=e.property||t.positionBullet(e.target)},void 0,!1)},void 0,!1)),this._bullets},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.bullets.copyFrom(e.bullets);var i=this.middleLine;i&&(i instanceof p.a&&e.middleLine instanceof p.a&&i.copyFrom(e.middleLine),i instanceof c.a&&e.middleLine instanceof c.a&&i.copyFrom(e.middleLine)),this.link.copyFrom(e.link)},e.prototype.getTooltipX=function(){if(this.middleLine)return this.middleLine.positionToPoint(this.tooltipLocation).x},e.prototype.getTooltipY=function(){if(this.middleLine)return this.middleLine.positionToPoint(this.tooltipLocation).y},Object.defineProperty(e.prototype,"gradient",{get:function(){return this._gradient||(this._gradient=new a.a),this._gradient},enumerable:!0,configurable:!0}),e}(o.a);s.b.registeredClasses.FlowDiagramLink=m},sHIJ:function(t,e,i){var n=i("DVYA");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},sNEp:function(t,e,i){var n=i("snR7");t.exports=function(t,e,i,r){try{return r?e(n(i)[0],i[1]):e(i)}catch(e){var o=t.return;throw void 0!==o&&n(o.call(t)),e}}},"sc+R":function(t,e,i){var n=i("DbOM"),r=i("vJiZ"),o=i("sHIJ"),a=i("FmWr");t.exports=function(t,e,i,s,u){n(e);var l=r(t),h=o(l),c=a(l.length),p=u?c-1:0,d=u?-1:1;if(i<2)for(;;){if(p in h){s=h[p],p+=d;break}if(p+=d,u?p<0:c<=p)throw TypeError("Reduce of empty array with no initial value")}for(;u?p>=0:c>p;p+=d)p in h&&(s=e(s,h[p],p,l));return s}},snR7:function(t,e,i){var n=i("DvJ+");t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},ssJO:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("dstF")(0),o=i("GQop")([].forEach,!0);n(n.P+n.F*!o,"Array",{forEach:function(t){return r(this,t,arguments[1])}})},sxA1:function(t,e,i){"use strict";i.d(e,"a",function(){return c});var n=i("m4/l"),r=i("Tjl+"),o=i("vMqJ"),a=i("P7v+"),s=i("aCit"),u=i("Wglt"),l=i("Gg2j"),h=i("Mtpk"),c=function(t){function e(){var e=t.call(this)||this;return e._stops=new o.b,e._rotation=0,e.className="LinearGradient",e._stops.events.on("setIndex",e.validate,e),e._stops.events.on("inserted",e.validate,e),e.element=e.paper.addGroup("linearGradient"),e.id="gradient-"+s.b.getUniqueId(),e.element.attr({id:e.id}),e._disposers.push(e.element),e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){var t=this,e=(this._rotation+90)*l.RADIANS,i=Math.round(50+50*Math.sin(e+Math.PI))+"%",n=Math.round(50+50*Math.cos(e))+"%",r=Math.round(50+50*Math.sin(e))+"%",o=Math.round(50+50*Math.cos(e+Math.PI))+"%",a=this.element;a.removeChildNodes(),a.attr({x1:i,x2:r,y1:n,y2:o}),u.each(u.indexed(this._stops.iterator()),function(e){var i=e[0],n=e[1],r=n.offset;h.isNumber(r)||(r=i/(t._stops.length-1));var o=t.paper.add("stop");o.attr({"stop-color":n.color}),h.isNumber(n.opacity)&&o.attr({"stop-opacity":n.opacity}),h.isNumber(r)&&o.attr({offset:r}),a.add(o)})},e.prototype.clear=function(){this._stops.clear()},e.prototype.addColor=function(t,e,i){this._stops.push({color:t,opacity:e,offset:i})},Object.defineProperty(e.prototype,"stops",{get:function(){return this._stops},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paper",{get:function(){return this._paper?this._paper:Object(a.b)()},set:function(t){this._paper!=t&&(this._paper=t,this.validate(),t.appendDef(this.element))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotation",{get:function(){return this._rotation},set:function(t){this._rotation=t,this.validate()},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.stops.copyFrom(e.stops),this._rotation=e.rotation},e}(r.a);s.b.registeredClasses.LinearGradient=c},sxbc:function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},t3Ma:function(t,e,i){"use strict";i("Mvcd")("bold",function(t){return function(){return t(this,"b","","")}})},tIuN:function(t,e,i){var n=i("Gb1H");n(n.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},tYpR:function(t,e,i){i("3mH9")("WeakMap")},tjMS:function(t,e,i){"use strict";i.d(e,"a",function(){return n}),e.c=function(t){return new n(t)},e.b=function(t){return t instanceof n};var n=function(){function t(t){this._value=t}return Object.defineProperty(t.prototype,"value",{get:function(){return this._value/100},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"percent",{get:function(){return this._value},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this._value+"%"},t}()},tzvs:function(t,e,i){var n=i("EhJv"),r=i("nHHr").f;i("5lay")("getOwnPropertyDescriptor",function(){return function(t,e){return r(n(t),e)}})},uLGy:function(t,e,i){"use strict";i.d(e,"a",function(){return p});var n=i("m4/l"),r=i("s9al"),o=i("aCit"),a=i("xgTw"),s=i("MIZb"),u=i("Gg2j"),l=i("Mtpk"),h=i("aFzC"),c=i("hGwe"),p=function(t){function e(){var e=t.call(this)||this;return e.className="SankeyLink",new s.a,e.tension=.8,e.controlPointDistance=.2,e.startAngle=0,e.endAngle=0,e.linkWidth=0,e.startX=0,e.endX=0,e.startY=0,e.endY=0,e.middleLine=e.createChild(a.a),e.middleLine.shouldClone=!1,e.middleLine.strokeOpacity=0,e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){if(t.prototype.validate.call(this),!this.isTemplate){var e=this.startX,i=this.startY,n=this.endX,r=this.endY;l.isNumber(n)||(n=e),l.isNumber(r)||(r=i);var o=this.startAngle,a=this.endAngle,s=this.linkWidth,p="",d=e,f=i,g=n,m=r,y=e+s*u.sin(o),b=n+s*u.sin(a),v=i+s*u.cos(o),_=r+s*u.cos(a),x=e+s/2*u.sin(o),P=n+s/2*u.sin(a),w=i+s/2*u.cos(o),O=r+s/2*u.cos(a);this.zIndex=this.zIndex||this.dataItem.index;var S=this.tension+(1-this.tension)*u.sin(o),T=this.tension+(1-this.tension)*u.cos(o);if(this.middleLine.tensionX=S,this.middleLine.tensionY=T,l.isNumber(s)&&l.isNumber(e)&&l.isNumber(n)&&l.isNumber(i)&&l.isNumber(r)){u.round(d,3)==u.round(g,3)&&(g+=.01),u.round(f,3)==u.round(m,3)&&(m+=.01),u.round(y,3)==u.round(b,3)&&(b+=.01),u.round(v,3)==u.round(_,3)&&(_+=.01);var C=Math.min(y,b,d,g),k=Math.min(v,_,f,m),I=Math.max(y,b,d,g),M=Math.max(v,_,f,m);this._bbox={x:C,y:k,width:I-C,height:M-k};var j=this.controlPointDistance,V=d+(g-d)*j*u.cos(o),D=f+(m-f)*j*u.sin(o),E=g-(g-d)*j*u.cos(a),F=m-(m-f)*j*u.sin(a),N=x+(P-x)*j*u.cos(o),R=w+(O-w)*j*u.sin(o),A=P-(P-x)*j*u.cos(a),L=O-(O-w)*j*u.sin(a),H=u.getAngle({x:V,y:D},{x:E,y:F}),B=(s/u.cos(H)-s)/u.tan(H)*u.cos(o),G=(s/u.sin(H)-s)*u.tan(H)*u.sin(o),W=-B/2+y+(b-y)*j*u.cos(o),z=-G/2+v+(_-v)*j*u.sin(o),U=-B/2+b-(b-y)*j*u.cos(a),Y=-G/2+_-(_-v)*j*u.sin(a);this.middleLine.segments=[[{x:x,y:w},{x:N,y:R},{x:A,y:L},{x:P,y:O}]],V+=B/2,D+=G/2,E+=B/2,F+=G/2,p+=c.moveTo({x:d,y:f}),p+=new h.b(S,T).smooth([{x:d,y:f},{x:V,y:D},{x:E,y:F},{x:g,y:m}]),p+=c.lineTo({x:b,y:_}),p+=new h.b(S,T).smooth([{x:b,y:_},{x:U,y:Y},{x:W,y:z},{x:y,y:v}]),p+=c.closePath()}this.link.path=p,this.maskBullets&&(this.bulletsMask.path=p,this.bulletsContainer.mask=this.bulletsMask),this.positionBullets()}},Object.defineProperty(e.prototype,"startX",{get:function(){return this.getPropertyValue("startX")},set:function(t){this.setPropertyValue("startX",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endX",{get:function(){return this.getPropertyValue("endX")},set:function(t){this.setPropertyValue("endX",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startY",{get:function(){return this.getPropertyValue("startY")},set:function(t){this.setPropertyValue("startY",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endY",{get:function(){return this.getPropertyValue("endY")},set:function(t){this.setPropertyValue("endY",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"linkWidth",{get:function(){return this.getPropertyValue("linkWidth")},set:function(t){this.setPropertyValue("linkWidth",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"controlPointDistance",{get:function(){return this.getPropertyValue("controlPointDistance")},set:function(t){this.setPropertyValue("controlPointDistance",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tension",{get:function(){return this.getPropertyValue("tension")},set:function(t){this.setPropertyValue("tension",t,!0)},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.SankeyLink=p},uWmK:function(t,e,i){"use strict";i.d(e,"b",function(){return x}),i.d(e,"c",function(){return P}),i.d(e,"a",function(){return w});var n=i("m4/l"),r=i("Y9w3"),o=i("A6AV"),a=i("vMqJ"),s=i("CnhP"),u=i("C6dT"),l=i("p9TX"),h=i("WYhe"),c=i("aCit"),p=i("zhwk"),d=i("tjMS"),f=i("MIZb"),g=i("v9UT"),m=i("Mtpk"),y=i("Vs7R"),b=i("hD5A"),v=i("qCRI"),_=i("TGuK"),x=function(t){function e(){var e=t.call(this)||this;return e.childrenCreated=!1,e.className="LegendDataItem",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"label",{get:function(){var t=this;if(!this._label){var e=this.component.labels.create();this._label=e,this.addSprite(e),this._disposers.push(e),e.parent=this.itemContainer,this._disposers.push(new b.b(function(){m.hasValue(t.component)&&t.component.labels.removeValue(e)}))}return this._label},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){return this.properties.color},set:function(t){this.setProperty("color",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valueLabel",{get:function(){var t=this;if(!this._valueLabel){var e=this.component.valueLabels.create();this._valueLabel=e,this.addSprite(e),this._disposers.push(e),e.parent=this.itemContainer,this._disposers.push(new b.b(function(){m.hasValue(t.component)&&t.component.valueLabels.removeValue(e)}))}return this._valueLabel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"itemContainer",{get:function(){var t=this;if(!this._itemContainer){var e=this.component,i=e.itemContainers.create();this._itemContainer=i,this.addSprite(i),this._disposers.push(i),i.events.on("toggled",function(t){e.toggleDataItem(t.target.dataItem)},void 0,!1),i.events.on("focus",function(t){e.focusedItem=t.target.dataItem},void 0,!1),i.events.on("blur",function(t){e.focusedItem=void 0},void 0,!1),this._disposers.push(new b.b(function(){m.hasValue(t.component)&&t.component.itemContainers.removeValue(i)})),this.dataContext.uidAttr&&(i.readerControls=this.dataContext.uidAttr(),i.readerLabelledBy=this.dataContext.uidAttr());var n=this.dataContext;(n instanceof o.a||n instanceof y.a)&&(i.addDisposer(n.events.on("visibilitychanged",function(t){i.readerChecked=t.visible,i.events.disableType("toggled"),i.isActive=!t.visible,i.events.enableType("toggled")},void 0,!1)),n.addDisposer(new b.b(function(){t.component&&t.component.dataItems.remove(t)})),n instanceof y.a&&(i.addDisposer(n.events.on("hidden",function(t){i.readerChecked=!1,i.events.disableType("toggled"),i.isActive=!0,i.events.enableType("toggled")},void 0,!1)),i.addDisposer(n.events.on("shown",function(t){i.readerChecked=!0,i.events.disableType("toggled"),i.isActive=!1,i.events.enableType("toggled")},void 0,!1))))}return this._itemContainer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"marker",{get:function(){var t=this;if(!this._marker){var e=this.component.markers.create();this._marker=e,e.parent=this.itemContainer,this.addSprite(e),this._disposers.push(e),this._disposers.push(new b.b(function(){m.hasValue(t.component)&&t.component.markers.removeValue(e)}))}return this._marker},enumerable:!0,configurable:!0}),e}(o.a),P=function(){return function(){this.createMarker=!0}}(),w=function(t){function e(){var e=t.call(this)||this;e.className="Legend",e.layout="grid",e.setPropertyValue("useDefaultMarker",!1),e.setPropertyValue("contentAlign","center");var i=new u.a;i.applyOnClones=!0,i.padding(10,0,10,0),i.margin(0,10,0,0),i.layout="horizontal",i.clickable=!0,i.focusable=!0,i.role="switch",i.togglable=!0,i.cursorOverStyle=v.a.pointer,i.background.fillOpacity=0,e.itemContainers=new a.e(i),e._disposers.push(new a.c(e.itemContainers)),e._disposers.push(e.itemContainers.template),e._disposers.push(Object(p.b)().body.events.on("keyup",function(t){h.b.isKey(t.event,"enter")&&e.focusedItem&&e.toggleDataItem(e.focusedItem)},e));var n=new f.a,r=new u.a;r.width=23,r.height=23,r.interactionsEnabled=!1,r.applyOnClones=!0,r.setStateOnChildren=!0,r.background.fillOpacity=0,r.background.strokeOpacity=0,r.propertyFields.fill="fill",r.valign="middle";var o=n.getFor("disabledBackground");r.events.on("childadded",function(t){var e=t.newValue.states.create("active");e.properties.stroke=o,e.properties.fill=o}),e.markers=new a.e(r),e._disposers.push(new a.c(e.markers)),e._disposers.push(e.markers.template);var c=r.createChild(s.a);c.width=Object(d.c)(100),c.height=Object(d.c)(100),c.applyOnClones=!0,c.propertyFields.fill="fill",c.strokeOpacity=0;var g=new l.a;g.text="{name}",g.margin(0,5,0,5),g.valign="middle",g.applyOnClones=!0,g.states.create("active").properties.fill=n.getFor("disabledBackground"),e.labels=new a.e(g),e._disposers.push(new a.c(e.labels)),e._disposers.push(e.labels.template),g.interactionsEnabled=!1;var m=new l.a;return m.margin(0,5,0,0),m.valign="middle",m.width=50,m.align="right",m.textAlign="end",m.applyOnClones=!0,m.states.create("active").properties.fill=n.getFor("disabledBackground"),m.interactionsEnabled=!1,e.valueLabels=new a.e(m),e._disposers.push(new a.c(e.valueLabels)),e._disposers.push(e.valueLabels.template),e.position="bottom",i.states.create("active"),i.setStateOnChildren=!0,e.role="group",e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),m.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Legend"))},e.prototype.createDataItem=function(){return new x},e.prototype.validateDataElement=function(e){t.prototype.validateDataElement.call(this,e);var i=e.itemContainer,n=e.marker;g.used(e.label);var r=e.valueLabel;i.parent=this,i.readerChecked=e.dataContext.visible,e.dataContext.legendDataItem=e;var o=e.dataContext.legendSettings,a=e.dataContext;!a.createLegendMarker||this.useDefaultMarker&&a instanceof y.a||e.childrenCreated||(a.createLegendMarker(n),e.childrenCreated=!0,a.updateLegendValue&&a.updateLegendValue()),r.invalid&&r.validate(),""==r.currentText||void 0==r.currentText?r.__disabled=!0:r.__disabled=!1,!o||void 0==o.itemValueText&&void 0==o.valueText||(r.__disabled=!1);var s=e.dataContext.visible;void 0===s&&(s=!0),s=m.toBoolean(s),e.dataContext.visible=s,i.events.disableType("toggled"),i.isActive=!s,i.events.enableType("toggled")},Object.defineProperty(e.prototype,"position",{get:function(){return this.getPropertyValue("position")},set:function(t){this.setPropertyValue("position",t)&&("left"==t||"right"==t?(this.margin(10,20,10,20),this.valign="middle",this.itemContainers.template.width=Object(d.c)(100),this.valueLabels.template.width=Object(d.c)(100),this.labels.template.truncate=!0,this.labels.template.fullWords=!1):(this.itemContainers.template.width=void 0,this.itemContainers.template.maxWidth=void 0,this.valueLabels.template.width=50,this.labels.template.truncate=!1,this.width=Object(d.c)(100)),this.invalidate())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useDefaultMarker",{get:function(){return this.getPropertyValue("useDefaultMarker")},set:function(t){this.setPropertyValue("useDefaultMarker",t,!0)},enumerable:!0,configurable:!0}),e.prototype.toggleDataItem=function(t){var e=t.dataContext;!e.visible||e.isHiding||e instanceof y.a&&e.isHidden?(t.color=t.colorOrig,t.itemContainer.isActive=!1,!0===e.hidden&&(e.hidden=!1),e.show?e.show():e.visible=!0):(t.itemContainer.isActive=!0,e.hide?e.hide():e.visible=!1,t.color=(new f.a).getFor("disabledBackground"))},Object.defineProperty(e.prototype,"preloader",{get:function(){},enumerable:!0,configurable:!0}),e.prototype.handleDataItemPropertyChange=function(t,e){t.valueLabel.invalidate(),t.label.invalidate()},e}(r.a);c.b.registeredClasses.Legend=w,_.c.push({relevant:_.b.widthXS,state:function(t,e){if(t instanceof w&&("left"==t.position||"right"==t.position)){var i=t.states.create(e);return i.properties.position="bottom",i}return null}}),_.c.push({relevant:_.b.heightXS,state:function(t,e){if(t instanceof w&&("top"==t.position||"bottom"==t.position)){var i=t.states.create(e);return i.properties.position="right",i}return null}}),_.c.push({relevant:_.b.isXS,state:function(t,e){if(t instanceof w){var i=t.states.create(e);return i.properties.disabled=!0,i}return null}})},ua0L:function(t,e,i){var n=i("DvJ+"),r=i("kHwJ"),o=i("YEtG")("species");t.exports=function(t){var e;return r(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!r(e.prototype)||(e=void 0),n(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},"uc+e":function(t,e,i){i("xdw4")("observable")},uqxK:function(t,e,i){var n=i("6MWL"),r=i("snR7"),o=n.key,a=n.set;n.exp({defineMetadata:function(t,e,i,n){a(t,e,r(i),o(n))}})},uuf2:function(t,e,i){var n=i("Gb1H"),r=Math.exp;n(n.S,"Math",{cosh:function(t){return(r(t=+t)+r(-t))/2}})},ux7t:function(t,e,i){"use strict";i.d(e,"a",function(){return d});var n=i("m4/l"),r=i("Tjl+"),o=i("x79X"),a=i("vMqJ"),s=i("8ZqG"),u=i("tjMS"),l=i("v9UT"),h=i("0FpR"),c=i("Qkdp"),p=i("Mtpk"),d=function(t){function e(){var e=t.call(this)||this;return e.adapter=new o.a(e),e.transitionDuration=0,e.transitionEasing=h.cubicOut,e.properties={},e.propertyFields={},e.filters=new a.b,e.isTemplate=!1,e.className="SpriteState",e._disposers.push(new a.c(e.filters)),e.adapter.events.on("inserted",function(t){e[t.newValue.key]=e[t.newValue.key]},void 0,!1),e.adapter.events.on("removed",function(t){e[t.newValue.key]=e[t.newValue.key]},void 0,!1),e.applyTheme(),e}return n.c(e,t),e.prototype.getPropertyValue=function(t){var e=this.properties[t],i=this.sprite;if(i){var n=this.propertyFields[t];if(p.hasValue(n)&&i.dataItem&&(e=i.dataItem.dataContext[n]),p.hasValue(e))e=this.adapter.apply(t,e);else{var r=i.getPropertyValue(t);(e=this.adapter.apply(t,i.getPropertyValue(t)))==r&&(e=void 0)}}return e},e.prototype.copyFrom=function(t){t&&t!=this&&(this.transitionDuration=t.transitionDuration,this.transitionEasing=t.transitionEasing,l.copyProperties(t.properties,this.properties),l.copyProperties(t.propertyFields,this.propertyFields),this.filters.copyFrom(t.filters),this.adapter.copyFrom(t.adapter))},Object.defineProperty(e.prototype,"allValues",{get:function(){var t=this,e={};c.each(this.properties,function(i,n){e[i]=t.getPropertyValue(i)});var i=this.adapter.keys();c.each(i,function(i,n){var r=t.getPropertyValue(n);e[n]=r});var n=this.propertyFields;return c.each(n,function(i){var n=t.getPropertyValue(i);e[i]=n}),e},enumerable:!0,configurable:!0}),e.prototype.reset=function(){this.properties={},this.filters.clear()},e.prototype.processConfig=function(e){p.hasValue(e)&&p.hasValue(e.properties)&&c.each(e.properties,function(t,i){p.isString(i)&&(i.match(/^[0-9.\-]+\%$/)?e.properties[t]=Object(u.c)(p.toNumber(i)):i.match(/^\#[0-9abcdef]{3,}$/i)&&(e.properties[t]=Object(s.e)(i)))}),t.prototype.processConfig.call(this,e)},e}(r.a)},v9UT:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.used=function(t){},e.copyProperties=function(t,e){return u.each(t,function(t,i){o.hasValue(i)&&(e[t]=i)}),e},e.stripHash=h,e.getBaseURI=function(){var t="#",e=document.baseURI;if(e){e=h(e);var i=h(location.href);e!==i&&(t=i+t)}return t},e.softCopyProperties=function(t,e){return u.each(t,function(t,i){o.hasValue(i)&&!o.hasValue(e[t])&&(e[t]=i)}),e},e.copy=function(t,e){return u.each(t,function(t,i){e[t]=i}),e},e.isNotEmpty=function(t){return o.hasValue(t)&&""!==t.toString()},e.relativeToValue=function(t,e){return o.isNumber(t)?t:null!=t&&o.isNumber(t.value)&&o.isNumber(e)?e*t.value:0},e.relativeRadiusToValue=function(t,e,i){var n;o.isNumber(t)?(n=t)<0&&(n=i?e+n:e-n):null!=t&&o.isNumber(t.value)&&(n=e*t.value);return n},e.valueToRelative=function(t,e){return t instanceof n.a?t.value:t/e},e.getPixelRatio=function(){return window.devicePixelRatio||1},e.camelToDashed=function(t){return t.replace(/\W+/g,"-").replace(/([a-z\d])([A-Z])/g,"$1-$2").toLowerCase()},e.capitalize=function(t){var e=t.split("");return e[0]=e[0].toUpperCase(),e.join("")},e.stringify=function(t){return JSON.stringify(t)},e.escapeForRgex=function(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},e.splitTextByCharCount=c,e.truncateWithEllipsis=function(t,e,i,n,r){if(t.length<=e)return t;(e-=i.length)<1&&(e=1);return(c(t,e,n,r)[0]||"")+i},e.trim=function(t){return t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},e.rtrim=function(t){return t.replace(/[\s\uFEFF\xA0]+$/g,"")},e.ltrim=function(t){return t.replace(/^[\s\uFEFF\xA0]+/g,"")},e.reverseString=p,e.unquote=function(t){var e=t.trim();(e=t.replace(/^'(.*)'$/,"$1"))==t&&(e=t.replace(/^"(.*)"$/,"$1"));return e},e.padString=function(t,e,i){void 0===e&&(e=0);void 0===i&&(i="0");"string"!=typeof t&&(t=t.toString());return e>t.length?Array(e-t.length+1).join(i)+t:t},e.getFormat=function(t){if(void 0===t)return s.g;var e=(t=(t=(t=t.toLowerCase().replace(/^\[[^\]]*\]/,"")).replace(/\[[^\]]+\]/,"")).trim()).match(/\/(date|number|duration)$/);if(e)return e[1];if(t===s.c)return s.c;if(t===s.a)return s.a;if(t===s.b)return s.b;if(t.match(/[#0]/))return s.c;if(t.match(/[ymwdhnsqaxkzgtei]/))return s.a;return s.g},e.cleanFormat=function(t){return t.replace(/\/(date|number|duration)$/i,"")},e.stripTags=d,e.plainText=function(t){return t?d(t.replace(/[\n\r]+/g,". ")):t},e.numberToString=function(t){if(o.isNaN(t))return"NaN";if(t===1/0)return"Infinity";if(t===-1/0)return"-Infinity";if(0===t&&1/t==-1/0)return"-0";var e=t<0;t=Math.abs(t);var i,n=o.getValue(/^([0-9]+)(?:\.([0-9]+))?(?:e[\+\-]([0-9]+))?$/.exec(""+t)),r=n[1],s=n[2]||"";if(null==n[3])i=""===s?r:r+"."+s;else{var u=+n[3];if(t<1){var l=u-1;i="0."+a.repeat("0",l)+r+s}else{var l=u-s.length;i=0===l?r+s:l<0?r+s.slice(0,l)+"."+s.slice(l):r+s+a.repeat("0",l)}}return e?"-"+i:i},e.anyToDate=function(t){if(o.isDate(t))return new Date(t);if(o.isNumber(t))return new Date(t);var e=Number(t);return o.isNumber(e)?new Date(e):new Date(t)},e.anyToNumber=function(t){if(o.isDate(t))return t.getTime();if(o.isNumber(t))return t;if(o.isString(t)){var e=Number(t);return o.isNumber(e)?e:void 0}},e.getYearDay=f,e.getWeek=g,e.getMonthWeek=function(t,e){void 0===e&&(e=!1);var i=g(new Date(t.getFullYear(),t.getMonth(),1),e),n=g(t,e);1==n&&(n=53);return n-i+1},e.getDayFromWeek=function(t,e,i,n){void 0===i&&(i=1);void 0===n&&(n=!1);var r=new Date(e,0,4,0,0,0,0);n&&r.setUTCFullYear(e);return 7*t+i-((r.getDay()||7)+3)},e.get12Hours=function(t,e){t>12?t-=12:0===t&&(t=12);return o.hasValue(e)?t+(e-1):t},e.getTimeZone=function(t,e,i,n){void 0===e&&(e=!1);void 0===i&&(i=!1);void 0===n&&(n=!1);if(n)return e?"Coordinated Universal Time":"UTC";var r=t.toLocaleString("UTC"),o=t.toLocaleString("UTC",{timeZoneName:e?"long":"short"}).substr(r.length);!1===i&&(o=o.replace(/ (standard|daylight|summer|winter) /i," "));return o},e.random=function(t,e){return Math.floor(Math.random()*e)+t},e.fitNumber=function(t,e,i){if(t>i)return i;if(t<e)return e;return t},e.fitNumberRelative=function(t,e,i){var n=i-e;t>i?t=e+(t-n*Math.floor(t/n)):t<e&&(t=e+(t-n*Math.floor(t/n)));return t},e.svgPointToSprite=m,e.spritePointToSvg=y,e.spritePointToSprite=function(t,e,i){return m(y(t,e),i)},e.svgRectToSprite=function(t,e){var i=m(t,e),n=m({x:t.x+t.width,y:t.y+t.height},e);return{x:i.x,y:i.y,width:n.x-i.x,height:n.y-i.y}},e.spriteRectToSvg=function(t,e){var i=y(t,e),n=y({x:t.x+t.width,y:t.y+t.height},e);return{x:i.x,y:i.y,width:n.x-i.x,height:n.y-i.y}},e.documentPointToSvg=b,e.svgPointToDocument=v,e.documentPointToSprite=function(t,e){if(e){var i=b(t,o.getValue(e.htmlContainer),e.svgContainer.cssScale);return m(i,e)}return t},e.spritePointToDocument=function(t,e){if(e){var i=y(t,e);return v(i,o.getValue(e.htmlContainer))}return t},e.width=function(t){return t.clientWidth},e.height=function(t){return t.clientHeight},e.decimalPlaces=function(t){var e=(""+t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);if(!e)return 0;return Math.max(0,(e[1]?e[1].length:0)-(e[2]?+e[2]:0))},e.parseUrl=x,e.serializeUrl=P,e.joinUrl=function(t,e){var i=x(t),n=x(e);if(w(i))throw new Error("Left URL is not absolute");if(w(n)){if(""!==n.path)if("/"===n.path[0])i.path=n.path;else{var r=i.path.split(/\//),o=n.path.split(/\//);if(0===r.length?0!==o.length&&r.push(""):r.length>1&&r.pop(),l.pushAll(r,o),i.path=r.join("/"),""!==i.path&&"/"!==i.path[0])throw new Error("URL path must start with /")}return i.query=n.query,i.hash=n.hash,P(i)}return P(n)};var n=i("tjMS"),r=i("Gg2j"),o=i("Mtpk"),a=i("wUYf"),s=i("ScGY"),u=i("Qkdp"),l=i("hJ5i");function h(t){return/^[^#]*/.exec(t)[0]}function c(t,e,i,n){if(t.length<=e)return[t];var r=[];if(i)for(var o=-1,a=t.replace(/([,;:!?\\\/\.\s]+)/g,s.d+"$1"+s.d).split(s.d),u=0;u<a.length;u++){var l=a[u],h=l.length;if(0!==h){var c;if(h>e){if(n&&(l=p(l)),c=l.match(new RegExp(".{1,"+e+"}","g"))){if(n)for(var d=0;d<c.length;d++)c[d]=p(c[d]);r=r.concat(c)}}else-1===o&&(r.push(""),o=0),r[o].length+h+1>e&&""!==r[o]&&(r.push(""),o++),r[o]+=l;o=r.length-1}}else if(c=t.match(new RegExp(".{1,"+e+"}","g"))){if(n)for(d=0;d<c.length;d++)c[d]=p(c[d]);r=c}return 1==r.length&&i&&r[0].length>e&&(r=[]),r}function p(t){return t.split("").reverse().join("")}function d(t){return t?t.replace(/<[^>]*>/g,""):t}function f(t,e){void 0===e&&(e=!1);var i=new Date(t.getFullYear(),0,1,0,0,0,0);return Math.floor((t.getTime()-i.getTime())/864e5)+1}function g(t,e){void 0===e&&(e=!1);var i=f(t,e)-1,n=Math.floor((i-(t.getDay()||7)+10)/7);return 0===n?n=53:53===n&&(n=1),n}function m(t,e){var i=t.x,n=t.y,a=[];if(e){for(;o.hasValue(e.parent);)a.push(e),e=e.parent;a.reverse();for(var s=0;s<a.length;s++){var u=a[s],l=u.rotation,h=i-u.pixelX-u.ex,c=n-u.pixelY-u.ey;u.dx&&(i-=u.dx),u.dy&&(n-=u.dy),i=(r.cos(-l)*h-r.sin(-l)*c)/u.scale-u.pixelPaddingLeft,n=(r.cos(-l)*c+r.sin(-l)*h)/u.scale-u.pixelPaddingTop}}return{x:i,y:n}}function y(t,e){var i=t.x,n=t.y;if(e)for(;o.hasValue(e.parent);){var a=e.rotation;i+=e.pixelPaddingLeft+e.ex,n+=e.pixelPaddingTop+e.ey,e.dx&&(i+=e.dx),e.dy&&(n+=e.dy);var s=e.pixelX+(i*r.cos(a)-n*r.sin(a))*e.scale,u=e.pixelY+(i*r.sin(a)+n*r.cos(a))*e.scale;i=s,n=u,e=e.parent}return{x:i,y:n}}function b(t,e,i){var n=e.getBoundingClientRect();return o.isNumber(i)||(i=1),{x:(t.x-n.left)/i,y:(t.y-n.top)/i}}function v(t,e){var i=e.getBoundingClientRect();return{x:t.x+i.left,y:t.y+i.top}}var _=/^([a-zA-Z][a-zA-Z0-9\+\.\-]*:)?(?:(\/\/)([^\@]+\@)?([^\/\?\#\:]*)(\:[0-9]+)?)?([^\?\#]*)(\?[^\#]*)?(\#.*)?$/;function x(t){var e=_.exec(t);return{protocol:e&&e[1]||"",separator:e&&e[2]||"",authority:e&&e[3]||"",domain:e&&e[4]||"",port:e&&e[5]||"",path:e&&e[6]||"",query:e&&e[7]||"",hash:e&&e[8]||""}}function P(t){return t.protocol+t.separator+t.authority+t.domain+t.port+t.path+t.query+t.hash}function w(t){return""===t.protocol&&""===t.separator&&""===t.authority&&""===t.domain&&""===t.port}},vDrc:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("vJiZ"),o=i("DbOM"),a=i("hjwn");i("gD3S")&&n(n.P+i("3/+B"),"Object",{__defineGetter__:function(t,e){a.f(r(this),t,{get:o(e),enumerable:!0,configurable:!0})}})},vFXE:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("T9LF"),o=i("G5U1"),a=i("RzG0")(),s=i("YEtG")("observable"),u=i("DbOM"),l=i("snR7"),h=i("ypVE"),c=i("cA+3"),p=i("Vng0"),d=i("hpnp"),f=d.RETURN,g=function(t){return null==t?void 0:u(t)},m=function(t){var e=t._c;e&&(t._c=void 0,e())},y=function(t){return void 0===t._o},b=function(t){y(t)||(t._o=void 0,m(t))},v=function(t,e){l(t),this._c=void 0,this._o=t,t=new _(this);try{var i=e(t),n=i;null!=i&&("function"==typeof i.unsubscribe?i=function(){n.unsubscribe()}:u(i),this._c=i)}catch(e){return void t.error(e)}y(this)&&m(this)};v.prototype=c({},{unsubscribe:function(){b(this)}});var _=function(t){this._s=t};_.prototype=c({},{next:function(t){var e=this._s;if(!y(e)){var i=e._o;try{var n=g(i.next);if(n)return n.call(i,t)}catch(t){try{b(e)}finally{throw t}}}},error:function(t){var e=this._s;if(y(e))throw t;var i=e._o;e._o=void 0;try{var n=g(i.error);if(!n)throw t;t=n.call(i,t)}catch(t){try{m(e)}finally{throw t}}return m(e),t},complete:function(t){var e=this._s;if(!y(e)){var i=e._o;e._o=void 0;try{var n=g(i.complete);t=n?n.call(i,t):void 0}catch(t){try{m(e)}finally{throw t}}return m(e),t}}});var x=function(t){h(this,x,"Observable","_f")._f=u(t)};c(x.prototype,{subscribe:function(t){return new v(t,this._f)},forEach:function(t){var e=this;return new(o.Promise||r.Promise)(function(i,n){u(t);var r=e.subscribe({next:function(e){try{return t(e)}catch(t){n(t),r.unsubscribe()}},error:n,complete:i})})}}),c(x,{from:function(t){var e="function"==typeof this?this:x,i=g(l(t)[s]);if(i){var n=l(i.call(t));return n.constructor===e?n:new e(function(t){return n.subscribe(t)})}return new e(function(e){var i=!1;return a(function(){if(!i){try{if(d(t,!1,function(t){if(e.next(t),i)return f})===f)return}catch(t){if(i)throw t;return void e.error(t)}e.complete()}}),function(){i=!0}})},of:function(){for(var t=0,e=arguments.length,i=new Array(e);t<e;)i[t]=arguments[t++];return new("function"==typeof this?this:x)(function(t){var e=!1;return a(function(){if(!e){for(var n=0;n<i.length;++n)if(t.next(i[n]),e)return;t.complete()}}),function(){e=!0}})}}),p(x.prototype,s,function(){return this}),n(n.G,{Observable:x}),i("vdWU")("Observable")},vGbf:function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("C6dT"),o=i("MIZb"),a=i("Inf5"),s=i("p9TX"),u=i("aCit"),l=i("tjMS"),h=function(t){function e(){var e=t.call(this)||this;e.className="Preloader",e.width=Object(l.c)(100),e.height=Object(l.c)(100);var i=new o.a,n=e.createChild(r.a);n.shouldClone=!1;var u=n.createChild(a.a);u.shouldClone=!1,u.radius=53,u.arc=360,u.fill=i.getFor("fill"),u.fillOpacity=.8,u.innerRadius=42,u.isMeasured=!1,e.backgroundSlice=u;var h=n.createChild(a.a);h.shouldClone=!1,h.radius=50,h.innerRadius=45,h.fill=i.getFor("alternativeBackground"),h.fillOpacity=.2,h.isMeasured=!1,e.progressSlice=h;var c=n.createChild(s.a);return c.shouldClone=!1,c.horizontalCenter="middle",c.verticalCenter="middle",c.isMeasured=!1,c.fill=i.getFor("text"),c.align="center",c.valign="middle",c.fillOpacity=.4,e.label=c,e.background.opacity=1,e.background.fill=i.getFor("background"),e.contentAlign="center",e.contentValign="middle",e.delay=300,e.states.create("hidden").properties.opacity=0,e.visible=!1,e.hide(0),e.__disabled=!0,e._disposers.push(e.backgroundSlice),e._disposers.push(e.progressSlice),e._disposers.push(e.label),e._disposers.push(n),e}return n.c(e,t),Object.defineProperty(e.prototype,"progress",{get:function(){return this.getPropertyValue("progress")},set:function(t){var e=this;this.__disabled=!1,this.validateLayout(),this.setPropertyValue("progress",t),this.progressSlice.arc=360*t,this.label&&(this.label.text=Math.round(100*t)+"%"),t>=1?(this._started&&(this._started=void 0),u.b.events.once("enterframe",function(){var t=e.hide();t&&!t.isFinished()?t.events.once("animationended",function(){e.__disabled=!0}):e.__disabled=!0}),this.interactionsEnabled=!1,this.setPropertyValue("progress",0)):t>0&&(this.delay?this._started?this._started+this.delay<=(new Date).getTime()&&(this.__disabled=!1,this.show(),this.interactionsEnabled=!0):this._started=(new Date).getTime():(this.__disabled=!1,this.show(),this.interactionsEnabled=!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"delay",{get:function(){return this.getPropertyValue("delay")},set:function(t){this.setPropertyValue("delay",t)},enumerable:!0,configurable:!0}),e}(r.a)},vH9k:function(t,e,i){i("YJIw")("Int32",4,function(t){return function(e,i,n){return t(this,e,i,n)}})},vJiZ:function(t,e,i){var n=i("kcsd");t.exports=function(t){return Object(n(t))}},vMqJ:function(t,e,i){"use strict";i.d(e,"a",function(){return u}),i.d(e,"d",function(){return l}),i.d(e,"c",function(){return h}),i.d(e,"b",function(){return p}),i.d(e,"e",function(){return d});var n=i("m4/l"),r=i("hD5A"),o=i("o0Lc"),a=i("hJ5i"),s=i("Wglt"),u=function(){function t(t,e,i){this._array=t,this._start=e,this._end=i}return t.prototype.iterator=function(){var t=this;return function(e){if(t._start!==t._end)if(t._start<t._end)for(var i=t._start;i<t._end&&e(t._array[i]);++i);else for(i=t._start-1;i>=t._end&&e(t._array[i]);--i);}},t.prototype.backwards=function(){return new t(this._array,this._end,this._start)},t.prototype.range=function(e,i){if(e<=i){if(this._start===this._end)return this;if(this._start<this._end){var n=i-e;return e=Math.max(this._start+e,this._start),i=Math.min(e+n,this._end),new t(this._array,e,i)}n=i-e;return e=Math.max(this._start-e,this._end),i=Math.max(e-n,this._end),new t(this._array,e,i)}throw new Error("Start index must be lower than end index")},t}(),l=function(t){function e(e,i,n){var r=t.call(this,[e.events.on("inserted",function(t){var i=t.newValue,n=r._getKey(i),o=0;s.eachContinue(e.iterator(),function(t){return t!==i&&(r._getKey(t)===n&&++o,!0)}),r._insert(i,n,o)},void 0,!1),e.events.on("removed",function(t){r._remove(t.oldValue)},void 0,!1)])||this;return r._keys=[],r._groups={},r._getKey=i,r._sort=n,s.each(e.iterator(),function(t){r._insert(t,i(t))}),r}return n.c(e,t),e.prototype._insert=function(t,e,i){if(null==this._groups[e]){this._groups[e]=[];var n=a.getSortedIndex(this._keys,this._sort,e),r=n.found,o=n.index;if(r)throw new Error("Key already exists: "+e);a.insertIndex(this._keys,o,e)}null==i?this._groups[e].push(t):a.insertIndex(this._groups[e],i,t)},e.prototype._remove=function(t){var e=this._getKey(t),i=this._groups[e];if(null!=i&&(a.remove(i,t),0===i.length)){delete this._groups[e];var n=a.getSortedIndex(this._keys,this._sort,e),r=n.found,o=n.index;if(!r)throw new Error("Key doesn't exist: "+e);a.removeIndex(this._keys,o)}},e.prototype.iterator=function(){var t=this;return s.flatten(s.map(s.fromArray(this._keys),function(e){return s.fromArray(t._groups[e])}))},e}(r.c),h=function(t){function e(e){var i=e.events.on("removed",function(t){t.oldValue.dispose()},void 0,!1);return t.call(this,function(){i.dispose(),s.each(e.iterator(),function(t){t.dispose()})})||this}return n.c(e,t),e}(r.b);function c(t,e){if(!(t>=0&&t<e))throw new Error("Index out of bounds: "+t)}var p=function(){function t(t){void 0===t&&(t=[]),this.events=new o.a,this._values=t}return Object.defineProperty(t.prototype,"values",{get:function(){return this._values},enumerable:!0,configurable:!0}),t.prototype.contains=function(t){return-1!==this._values.indexOf(t)},t.prototype.removeValue=function(t){for(var e=0,i=this._values.length;e<i;)this._values[e]===t?(this.removeIndex(e),--i):++e},t.prototype.indexOf=function(t){return a.indexOf(this._values,t)},Object.defineProperty(t.prototype,"length",{get:function(){return this._values.length},enumerable:!0,configurable:!0}),t.prototype.hasIndex=function(t){return t>=0&&t<this._values.length},t.prototype.getIndex=function(t){return this._values[t]},t.prototype.setIndex=function(t,e){c(t,this._values.length);var i=this._values[t];return i!==e&&(this._values[t]=e,this.events.isEnabled("setIndex")&&this.events.dispatchImmediately("setIndex",{type:"setIndex",target:this,index:t,oldValue:i,newValue:e}),this.events.isEnabled("removed")&&this.events.dispatchImmediately("removed",{type:"removed",target:this,oldValue:i}),this.events.isEnabled("inserted")&&this.events.dispatchImmediately("inserted",{type:"inserted",target:this,newValue:e})),i},t.prototype.insertIndex=function(t,e){c(t,this._values.length+1),a.insertIndex(this._values,t,e),this.events.isEnabled("insertIndex")&&this.events.dispatchImmediately("insertIndex",{type:"insertIndex",target:this,index:t,newValue:e}),this.events.isEnabled("inserted")&&this.events.dispatchImmediately("inserted",{type:"inserted",target:this,newValue:e})},t.prototype._sortQuicksort=function(t,e,i){if(t<e){var n=this._sortPartition(t,e,i);this._sortQuicksort(t,n,i),this._sortQuicksort(n+1,e,i)}},t.prototype._sortPartition=function(t,e,i){for(var n=this._values,r=n[t],o=t-1,a=e+1;;){do{++o}while(i(n[o],r)<0);do{--a}while(i(n[a],r)>0);if(o>=a)return a;this.swap(o,a)}},t.prototype.sort=function(t){this._sortQuicksort(0,this._values.length-1,t)},t.prototype.swap=function(t,e){var i=this._values.length;if(c(t,i),c(e,i),t!==e){var n=this._values[t],r=this._values[e];this._values[t]=r,this.events.isEnabled("setIndex")&&this.events.dispatchImmediately("setIndex",{type:"setIndex",target:this,index:t,oldValue:n,newValue:r}),this._values[e]=n,this.events.isEnabled("setIndex")&&this.events.dispatchImmediately("setIndex",{type:"setIndex",target:this,index:e,oldValue:r,newValue:n})}},t.prototype.removeIndex=function(t){c(t,this._values.length);var e=this._values[t];return a.removeIndex(this._values,t),this.events.isEnabled("removeIndex")&&this.events.dispatchImmediately("removeIndex",{type:"removeIndex",target:this,index:t,oldValue:e}),this.events.isEnabled("removed")&&this.events.dispatchImmediately("removed",{type:"removed",target:this,oldValue:e}),e},t.prototype.moveValue=function(t,e){var i=this.indexOf(t);if(-1!==i){var n=this._values[i];a.removeIndex(this._values,i),this.events.isEnabled("removeIndex")&&this.events.dispatchImmediately("removeIndex",{type:"removeIndex",target:this,index:i,oldValue:n})}null==e?(e=this._values.length,this._values.push(t)):a.insertIndex(this._values,e,t),this.events.isEnabled("insertIndex")&&this.events.dispatchImmediately("insertIndex",{type:"insertIndex",target:this,index:e,newValue:t}),-1===i&&this.events.isEnabled("inserted")&&this.events.dispatchImmediately("inserted",{type:"inserted",target:this,newValue:t})},t.prototype.push=function(t){var e=this._values.push(t)-1;return this.events.isEnabled("insertIndex")&&this.events.dispatchImmediately("insertIndex",{type:"insertIndex",target:this,index:e,newValue:t}),this.events.isEnabled("inserted")&&this.events.dispatchImmediately("inserted",{type:"inserted",target:this,newValue:t}),t},t.prototype.unshift=function(t){return this.insertIndex(0,t)},t.prototype.pushAll=function(t){var e=this;a.each(t,function(t){e.push(t)})},t.prototype.copyFrom=function(t){this.pushAll(t._values)},t.prototype.pop=function(){return this._values.length-1<0?void 0:this.removeIndex(this._values.length-1)},t.prototype.shift=function(){return this._values.length?this.removeIndex(0):void 0},t.prototype.setAll=function(t){var e=this,i=a.copy(this._values);this._values.length=0,a.each(t,function(t){e._values.push(t)}),this.events.isEnabled("setAll")&&this.events.dispatchImmediately("setAll",{type:"setAll",target:this,oldArray:i,newArray:this._values}),this.events.isEnabled("removed")&&a.each(i,function(t){e.events.dispatchImmediately("removed",{type:"removed",target:e,oldValue:t})}),this.events.isEnabled("inserted")&&a.each(this._values,function(t){e.events.dispatchImmediately("inserted",{type:"inserted",target:e,newValue:t})})},t.prototype.clear=function(){this.setAll([])},t.prototype.iterator=function(){return s.fromArray(this._values)},t.prototype[Symbol.iterator]=function(){var t,e;return n.d(this,function(i){switch(i.label){case 0:t=this._values.length,e=0,i.label=1;case 1:return e<t?[4,this._values[e]]:[3,4];case 2:i.sent(),i.label=3;case 3:return++e,[3,1];case 4:return[2]}})},t.prototype.each=function(t){a.each(this._values,t)},t.prototype.range=function(t,e){if(t<=e){var i=e-t;return t=Math.max(t,0),e=Math.min(t+i,this._values.length),new u(this._values,t,e)}throw new Error("Start index must be lower than end index")},t.prototype.backwards=function(){return new u(this._values,this._values.length,0)},t}(),d=function(t){function e(e){var i=t.call(this)||this;return i.template=e,i}return n.c(e,t),Object.defineProperty(e.prototype,"template",{get:function(){return this._template},set:function(t){t.isTemplate=!0,this._template=t},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(t){var e=this;s.each(t.iterator(),function(t){e.push(t.clone())})},e.prototype.create=function(t){var e=null!=t?new t:this.template.clone();return this.push(e),e},e.prototype.clone=function(){for(var t=new e(this.template),i=this.values,n=i.length,r=0;r<n;++r)t.push(i[r].clone());return t},e}(p)},vSjZ:function(t,e,i){var n=i("T9LF").navigator;t.exports=n&&n.userAgent||""},vaBr:function(t,e,i){"use strict";var n=i("0YcW"),r=i("rFJX");i("/Xnt")("WeakSet",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return n.def(r(this,"WeakSet"),t,!0)}},n,!1,!0)},vbOF:function(t,e,i){"use strict";i.d(e,"a",function(){return h});var n=i("m4/l"),r=i("YotE"),o=i("Tjl+"),a=i("vMqJ"),s=i("+qIf"),u=i("zhwk"),l=i("Mtpk"),h=function(t){function e(e){var i=t.call(this)||this;return i.events=new r.a(i),i.eventDisposers=new s.a,i.replacedStyles=new s.a,i._clickable=!1,i._contextMenuDisabled=!1,i._hoverable=!1,i._trackable=!1,i._draggable=!1,i._swipeable=!1,i._resizable=!1,i._wheelable=!1,i._inert=!1,i._isHover=!1,i._isHoverByTouch=!1,i._isDown=!1,i._isFocused=!1,i._inertiaOptions=new s.a,i.inertias=new s.a,i._hitOptions={},i._hoverOptions={},i._swipeOptions={},i._keyboardOptions={},i._cursorOptions={defaultStyle:[{property:"cursor",value:"default"}]},i._element=e,i.className="InteractionObject",i._disposers.push(new s.b(i.inertias)),i._disposers.push(new s.b(i.eventDisposers)),i.applyTheme(),i}return n.c(e,t),Object.defineProperty(e.prototype,"isHover",{get:function(){return this._isHover},set:function(t){this.isHover!=t&&(this._isHover=t,t?Object(u.b)().overObjects.moveValue(this):Object(u.b)().overObjects.removeValue(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHoverByTouch",{get:function(){return this._isHoverByTouch},set:function(t){this.isHoverByTouch!=t&&(this._isHoverByTouch=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"overPointers",{get:function(){return this._overPointers||(this._overPointers=new a.b),this._overPointers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDown",{get:function(){return this._isDown},set:function(t){this.isDown!=t&&(this._isDown=t,t?Object(u.b)().downObjects.moveValue(this):Object(u.b)().downObjects.removeValue(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"downPointers",{get:function(){return this._downPointers||(this._downPointers=new a.b),this._downPointers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isFocused",{get:function(){return this._isFocused},set:function(t){this.isFocused!=t&&(this._isFocused=t,Object(u.b)().focusedObject=t?this:void 0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"clickable",{get:function(){return this._clickable},set:function(t){this._clickable!==t&&(this._clickable=t,Object(u.b)().processClickable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contextMenuDisabled",{get:function(){return this._contextMenuDisabled},set:function(t){this._contextMenuDisabled!==t&&(this._contextMenuDisabled=t,Object(u.b)().processContextMenu(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hoverable",{get:function(){return this._hoverable},set:function(t){this._hoverable!==t&&(this._hoverable=t,Object(u.b)().processHoverable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trackable",{get:function(){return this._trackable},set:function(t){this._trackable!==t&&(this._trackable=t,Object(u.b)().processTrackable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"draggable",{get:function(){return this._draggable},set:function(t){this._draggable!==t&&(this._draggable=t,Object(u.b)().processDraggable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"swipeable",{get:function(){return this._swipeable},set:function(t){this._swipeable!==t&&(this._swipeable=t,Object(u.b)().processSwipeable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"resizable",{get:function(){return this._resizable},set:function(t){this._resizable!==t&&(this._resizable=t,Object(u.b)().processResizable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"wheelable",{get:function(){return this._wheelable},set:function(t){this._wheelable!==t&&(this._wheelable=t,Object(u.b)().processWheelable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inert",{get:function(){return this._inert},set:function(t){this._inert!==t&&(this._inert=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"focusable",{get:function(){return this._focusable},set:function(t){this._focusable!==t&&(this._focusable=t,this._focusable&&-1==this.tabindex&&(this._tabindex=1),Object(u.b)().processFocusable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tabindex",{get:function(){return l.getValueDefault(this._tabindex,-1)},set:function(t){this._tabindex!==t&&(this._tabindex=t,t>-1&&(this.focusable=!0),Object(u.b)().processFocusable(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this._element},set:function(t){this._element=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"originalPosition",{get:function(){return this._originalPosition||{x:0,y:0}},set:function(t){this._originalPosition=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"originalScale",{get:function(){return l.getValueDefault(this._originalScale,1)},set:function(t){this._originalScale!==t&&(this._originalScale=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"originalAngle",{get:function(){return l.getValueDefault(this._originalAngle,0)},set:function(t){this._originalAngle!==t&&(this._originalAngle=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inertiaOptions",{get:function(){return this.sprite?this.sprite.adapter.apply("inertiaOptions",this._inertiaOptions):this._inertiaOptions},set:function(t){this._inertiaOptions=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hitOptions",{get:function(){return this.sprite?this.sprite.adapter.apply("hitOptions",this._hitOptions):this._hitOptions},set:function(t){this._hitOptions=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hoverOptions",{get:function(){return this.sprite?this.sprite.adapter.apply("hoverOptions",this._hoverOptions):this._hoverOptions},set:function(t){this._hoverOptions=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"swipeOptions",{get:function(){return this.sprite?this.sprite.adapter.apply("swipeOptions",this._swipeOptions):this._swipeOptions},set:function(t){this._swipeOptions=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"keyboardOptions",{get:function(){return this.sprite?this.sprite.adapter.apply("keyboardOptions",this._keyboardOptions):this._keyboardOptions},set:function(t){this._keyboardOptions=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cursorOptions",{get:function(){return this.sprite?this.sprite.adapter.apply("cursorOptions",this._cursorOptions):this._cursorOptions},set:function(t){this._cursorOptions=t},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.inertiaOptions=e.inertiaOptions,this.hitOptions=e.hitOptions,this.hoverOptions=e.hoverOptions,this.swipeOptions=e.swipeOptions,this.keyboardOptions=e.keyboardOptions,this.cursorOptions=e.cursorOptions,this.contextMenuDisabled=e.contextMenuDisabled,Object(u.b)().applyCursorOverStyle(this)},e.prototype.setEventDisposer=function(t,e,i){var n=this.eventDisposers.getKey(t);e?null==n&&this.eventDisposers.setKey(t,i()):null!=n&&(n.dispose(),this.eventDisposers.removeKey(t))},e.prototype.dispose=function(){t.prototype.dispose.call(this);var e=Object(u.b)();e.overObjects.removeValue(this),e.downObjects.removeValue(this),e.trackedObjects.removeValue(this),e.transformedObjects.removeValue(this),e.focusedObject===this&&(e.focusedObject=void 0)},e}(o.b)},vdWU:function(t,e,i){"use strict";var n=i("T9LF"),r=i("hjwn"),o=i("gD3S"),a=i("YEtG")("species");t.exports=function(t){var e=n[t];o&&e&&!e[a]&&r.f(e,a,{configurable:!0,get:function(){return this}})}},vsTS:function(t,e,i){var n=i("hjwn"),r=i("nHHr"),o=i("K0ev"),a=i("U3hN"),s=i("Gb1H"),u=i("Wbjh"),l=i("snR7"),h=i("DvJ+");s(s.S,"Reflect",{set:function t(e,i,s){var c,p,d=arguments.length<4?e:arguments[3],f=r.f(l(e),i);if(!f){if(h(p=o(e)))return t(p,i,s,d);f=u(0)}if(a(f,"value")){if(!1===f.writable||!h(d))return!1;if(c=r.f(d,i)){if(c.get||c.set||!1===c.writable)return!1;c.value=s,n.f(d,i,c)}else n.f(d,i,u(0,s));return!0}return void 0!==f.set&&(f.set.call(d,s),!0)}})},w1yl:function(t,e,i){var n=i("YEtG")("toPrimitive"),r=Date.prototype;n in r||i("Vng0")(r,n,i("kJ6f"))},w4m0:function(t,e,i){"use strict";i.d(e,"a",function(){return s});var n=i("m4/l"),r=i("GtDR"),o=i("aFzC"),a=i("hGwe"),s=function(t){function e(){var e=t.call(this)||this;return e._twaved=!0,e._rwaved=!0,e._bwaved=!0,e._lwaved=!0,e.className="WavedRectangle",e.element=e.paper.add("path"),e.waveLength=16,e.waveHeight=4,e.tension=.8,e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.pixelWidth,i=this._pixelHeight;if(e>0&&i>0){var n={x:0,y:0},r={x:e,y:0},s={x:e,y:i},u={x:0,y:i},l=this.waveLength,h=this.waveHeight,c="",p="",d="",f="";this._twaved&&(c=Object(o.c)(n,r,l,h,this.tension,!0)),this._rwaved&&(f=Object(o.c)(r,s,l,h,this.tension,!0)),this._bwaved&&(d=Object(o.c)(s,u,l,h,this.tension,!0)),this._rwaved&&(p=Object(o.c)(u,n,l,h,this.tension,!0)),this.path=a.moveTo(n)+c+a.lineTo(r)+f+a.lineTo(s)+d+a.lineTo(u)+p+"z"}},Object.defineProperty(e.prototype,"waveLength",{get:function(){return this.getPropertyValue("waveLength")},set:function(t){this.setPropertyValue("waveLength",t),this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"waveHeight",{get:function(){return this.getPropertyValue("waveHeight")},set:function(t){this.setPropertyValue("waveHeight",t),this.invalidate()},enumerable:!0,configurable:!0}),e.prototype.setWavedSides=function(t,e,i,n){this._twaved=t,this._lwaved=e,this._bwaved=i,this._rwaved=n},Object.defineProperty(e.prototype,"tension",{get:function(){return this.getPropertyValue("tension")},set:function(t){this.setPropertyValue("tension",t),this.invalidate()},enumerable:!0,configurable:!0}),e}(r.a)},wDk4:function(t,e,i){var n=i("T9LF"),r=i("Vng0"),o=i("U3hN"),a=i("7bL/")("src"),s=Function.toString,u=(""+s).split("toString");i("G5U1").inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,i,s){var l="function"==typeof i;l&&(o(i,"name")||r(i,"name",e)),t[e]!==i&&(l&&(o(i,a)||r(i,a,t[e]?""+t[e]:u.join(String(e)))),t===n?t[e]=i:s?t[e]?t[e]=i:r(t,e,i):(delete t[e],r(t,e,i)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},wUYf:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.order=function(t,e){return t===e?0:t<e?-1:1},e.repeat=function(t,e){return new Array(e+1).join(t)},e.random=function(t){for(var e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e}},wYgt:function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},wdkS:function(t,e,i){var n=i("Gb1H"),r=i("+6ht"),o=i("EhJv"),a=i("nHHr"),s=i("e8Nv");n(n.S,"Object",{getOwnPropertyDescriptors:function(t){for(var e,i,n=o(t),u=a.f,l=r(n),h={},c=0;l.length>c;)void 0!==(i=u(n,e=l[c++]))&&s(h,e,i);return h}})},x2K9:function(t,e,i){"use strict";var n=i("snR7");t.exports=function(){var t=n(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},x79X:function(t,e,i){"use strict";i.d(e,"b",function(){return l}),i.d(e,"c",function(){return h}),i.d(e,"a",function(){return c});var n=i("VGgz"),r=i("3Cxr"),o=i("MlsF"),a=i("Wglt"),s=i("hJ5i"),u=i("Mtpk"),l=function(){function t(){this._callbackId=0,this._callbacks=new n.c(function(t,e){return o.a(r.order(t.priority,e.priority),r.order(t.id,e.id))})}return t.prototype.addAll=function(t,e,i,n,r){void 0===n&&(n=0),this._callbacks.insert({id:++this._callbackId,key:e,callback:i,priority:n,scope:r,type:t})},t.prototype.isEnabled=function(t,e){return this._callbacks.length>0},t.prototype.applyAll=function(t,e,i){var n=this._callbacks.values,r=n.length;if(0==r)return i;for(var o=0;o<r;++o){var a=n[o];a.key===e&&t instanceof a.type&&(i=a.callback.call(a.scope,i,t,e))}return i},t}(),h=new l,c=function(){function t(t){this._callbackId=0,this._callbacks=new n.c(function(t,e){return o.a(r.order(t.priority,e.priority),r.order(t.id,e.id))}),this.object=t,this.events=this._callbacks.events}return t.prototype.add=function(t,e,i,n){void 0===i&&(i=0),this._callbacks.insert({id:++this._callbackId,key:t,callback:e,priority:i,scope:n})},t.prototype.has=function(t,e,i,n){return void 0===i&&(i=0),!1},t.prototype.remove=function(t,e){var i=this;s.each(a.toArray(this._callbacks.iterator()),function(n){n.key!==t||u.isNumber(e)&&e!==n.priority||i._callbacks.remove(n)})},t.prototype.isEnabled=function(t){return this._callbacks.length>0||h.isEnabled(this.object,t)},t.prototype.apply=function(t,e){var i=this._callbacks.values,n=i.length;if(n>0)for(var r=0;r<n;++r){var o=i[r];o.key===t&&(e=o.callback.call(o.scope,e,this.object,t))}return e=h.applyAll(this.object,t,e)},t.prototype.keys=function(){return a.toArray(a.map(this._callbacks.iterator(),function(t){return t.key}))},t.prototype.copyFrom=function(t){var e=this;a.each(t._callbacks.iterator(),function(t){e.add(t.key,t.callback,t.priority,t.scope)})},t.prototype.clear=function(){this._callbacks.clear()},t}()},xCMl:function(t,e,i){"use strict";var n=i("hgv4"),r=i("rFJX");t.exports=i("/Xnt")("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return n.def(r(this,"Set"),t=0===t?0:t,t)}},n)},xDSx:function(t,e,i){var n=i("DvJ+"),r=i("kFp5").onFreeze;i("5lay")("freeze",function(t){return function(e){return t&&n(e)?t(r(e)):e}})},xEZ5:function(t,e,i){"use strict";i("Mvcd")("anchor",function(t){return function(e){return t(this,"a","name",e)}})},xIv9:function(t,e,i){"use strict";i.d(e,"a",function(){return l});var n=i("m4/l"),r=i("aGXA"),o=i("Vs7R"),a=i("MIZb"),s=i("aCit"),u=i("hGwe"),l=function(t){function e(){var e=t.call(this)||this;e.className="ResizeButton",e.orientation="horizontal",e.layout="absolute",e.horizontalCenter="middle",e.verticalCenter="middle",e.draggable=!0,e.padding(8,8,8,8),e.background.cornerRadius(20,20,20,20);var i=new o.a;i.element=e.paper.add("path");var n=u.moveTo({x:-2,y:-6});return n+=u.lineTo({x:-2,y:6}),n+=u.moveTo({x:2,y:-6}),n+=u.lineTo({x:2,y:6}),i.path=n,i.pixelPerfect=!0,i.padding(0,4,0,4),i.stroke=(new a.a).getFor("alternativeText"),i.strokeOpacity=.7,e.icon=i,e.label.dispose(),e.label=void 0,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"orientation",{set:function(t){var e=this.icon;e&&(e.rotation="horizontal"==t?0:-90)},enumerable:!0,configurable:!0}),e}(r.a);s.b.registeredClasses.ResizeButton=l},xSzy:function(t,e,i){for(var n,r=i("T9LF"),o=i("Vng0"),a=i("7bL/"),s=a("typed_array"),u=a("view"),l=!(!r.ArrayBuffer||!r.DataView),h=l,c=0,p="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");c<9;)(n=r[p[c++]])?(o(n.prototype,s,!0),o(n.prototype,u,!0)):h=!1;t.exports={ABV:l,CONSTR:h,TYPED:s,VIEW:u}},xdw4:function(t,e,i){var n=i("T9LF"),r=i("G5U1"),o=i("pb4Y"),a=i("xxwE"),s=i("hjwn").f;t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:n.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},xgTw:function(t,e,i){"use strict";i.d(e,"a",function(){return u});var n=i("m4/l"),r=i("jfaP"),o=i("aCit"),a=i("Gg2j"),s=i("hGwe"),u=function(t){function e(){var e=t.call(this)||this;return e.className="Polyspline",e.tensionX=.5,e.tensionY=.5,e.applyTheme(),e}return n.c(e,t),e.prototype.makePath=function(){this._distance=0;var t=this.segments,e=this.tensionX,i=this.tensionY;if(t&&t.length>0){var n="";this._realSegments=[];for(var r=0,o=t.length;r<o;r++){var u=t[r],l=[];if(this._realSegments.push(l),u.length>0){n+=s.moveTo(u[0]);for(var h=0;h<u.length-1;h++){var c=u[h-1],p=u[h],d=u[h+1],f=u[h+2];0===h?c=u[h]:h==u.length-2&&(f=u[h+1]),f||(f=d);var g=a.getCubicControlPointA(c,p,d,f,e,i),m=a.getCubicControlPointB(c,p,d,f,e,i);n+=s.cubicCurveTo(d,g,m);var y=Math.ceil(a.getDistance(p,d))/2,b=p;if(y>0)for(var v=0;v<=y;v++){var _=a.getPointOnCubicCurve(p,d,g,m,v/y);l.push(_),this._distance+=a.getDistance(b,_),b=_}else l.push(c)}}}this.path=n}},Object.defineProperty(e.prototype,"tensionX",{get:function(){return this.getPropertyValue("tensionX")},set:function(t){this.setPropertyValue("tensionX",t),this.makePath()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tensionY",{get:function(){return this.getPropertyValue("tensionY")},set:function(t){this.setPropertyValue("tensionY",t,!0),this.makePath()},enumerable:!0,configurable:!0}),e}(r.a);o.b.registeredClasses.Polyspline=u},xwvB:function(t,e,i){"use strict";var n=i("Gb1H"),r=i("DbOM"),o=i("vJiZ"),a=i("AEc5"),s=[].sort,u=[1,2,3];n(n.P+n.F*(a(function(){u.sort(void 0)})||!a(function(){u.sort(null)})||!i("GQop")(s)),"Array",{sort:function(t){return void 0===t?s.call(o(this)):s.call(o(this),r(t))}})},xxwE:function(t,e,i){e.f=i("YEtG")},y2pX:function(t,e,i){"use strict";var n=i("vJiZ"),r=i("UwWU"),o=i("FmWr");t.exports=[].copyWithin||function(t,e){var i=n(this),a=o(i.length),s=r(t,a),u=r(e,a),l=arguments.length>2?arguments[2]:void 0,h=Math.min((void 0===l?a:r(l,a))-u,a-s),c=1;for(u<s&&s<u+h&&(c=-1,u+=h-1,s+=h-1);h-->0;)u in i?i[s]=i[u]:delete i[s],s+=c,u+=c;return i}},yBbu:function(t,e,i){var n=i("6MWL"),r=i("snR7"),o=n.keys,a=n.key;n.exp({getOwnMetadataKeys:function(t){return o(r(t),arguments.length<2?void 0:a(arguments[1]))}})},yOPk:function(t,e){t.exports=function(t,e,i){var n=void 0===i;switch(e.length){case 0:return n?t():t.call(i);case 1:return n?t(e[0]):t.call(i,e[0]);case 2:return n?t(e[0],e[1]):t.call(i,e[0],e[1]);case 3:return n?t(e[0],e[1],e[2]):t.call(i,e[0],e[1],e[2]);case 4:return n?t(e[0],e[1],e[2],e[3]):t.call(i,e[0],e[1],e[2],e[3])}return t.apply(i,e)}},ybeA:function(t,e,i){var n=i("T9LF"),r=i("Gb1H"),o=i("vSjZ"),a=[].slice,s=/MSIE .\./.test(o),u=function(t){return function(e,i){var n=arguments.length>2,r=!!n&&a.call(arguments,2);return t(n?function(){("function"==typeof e?e:Function(e)).apply(this,r)}:e,i)}};r(r.G+r.B+r.F*s,{setTimeout:u(n.setTimeout),setInterval:u(n.setInterval)})},yl71:function(t,e,i){var n=i("Gb1H"),r=i("EhJv"),o=i("FmWr");n(n.S,"String",{raw:function(t){for(var e=r(t.raw),i=o(e.length),n=arguments.length,a=[],s=0;i>s;)a.push(String(e[s++])),s<n&&a.push(String(arguments[s]));return a.join("")}})},ypVE:function(t,e){t.exports=function(t,e,i,n){if(!(t instanceof e)||void 0!==n&&n in t)throw TypeError(i+": incorrect invocation!");return t}},z9n7:function(t,e,i){i("YJIw")("Float32",4,function(t){return function(e,i,n){return t(this,e,i,n)}})},zAAN:function(t,e,i){var n=i("0Zt3"),r=i("kcsd");t.exports=function(t,e,i){if(n(e))throw TypeError("String#"+i+" doesn't accept regex!");return String(r(t))}},zhwk:function(t,e,i){"use strict";i.d(e,"a",function(){return _}),e.b=P;var n=i("m4/l"),r=i("Tjl+"),o=i("vMqJ"),a=i("1yyj"),s=i("hD5A"),u=i("vbOF"),l=i("Oe1l"),h=i("+qIf"),c=i("0PyG"),p=i("58Sn"),d=i("WYhe"),f=i("Rpw0"),g=i("0FpR"),m=i("Gg2j"),y=i("Wglt"),b=i("Mtpk"),v=i("L91H"),_=function(t){function e(){var e=t.call(this)||this;e._globalEventsAdded=!1,e._pointerEvents={pointerdown:"mousedown",pointerup:"mouseup",pointermove:"mousemove",pointercancel:"mouseup",pointerover:"mouseover",pointerout:"mouseout",wheel:"wheel"},e._usePointerEventsOnly=!1,e._useTouchEventsOnly=!1,e._passiveSupported=!1,e._delayedEvents={out:[]},e.overObjects=new o.b,e.downObjects=new o.b,e.trackedObjects=new o.b,e.transformedObjects=new o.b,e.pointers=new h.a,e.inertiaOptions=new h.a,e.hitOptions={doubleHitTime:300,hitTolerance:10,noFocus:!0},e.hoverOptions={touchOutBehavior:"leave",touchOutDelay:1e3},e.swipeOptions={time:500,verticalThreshold:75,horizontalThreshold:30},e.keyboardOptions={speed:.1,accelleration:1.2,accellerationDelay:2e3},e.className="Interaction",e.body=e.getInteraction(document.body),e._disposers.push(e.body),window.hasOwnProperty("PointerEvent")?(e._pointerEvents.pointerdown="pointerdown",e._pointerEvents.pointerup="pointerup",e._pointerEvents.pointermove="pointermove",e._pointerEvents.pointercancel="pointercancel",e._pointerEvents.pointerover="pointerover",e._pointerEvents.pointerout="pointerout"):window.hasOwnProperty("MSPointerEvent")?(e._pointerEvents.pointerdown="MSPointerDown",e._pointerEvents.pointerup="MSPointerUp",e._pointerEvents.pointermove="MSPointerMove",e._pointerEvents.pointercancel="MSPointerUp",e._pointerEvents.pointerover="MSPointerOver",e._pointerEvents.pointerout="MSPointerOut"):"undefined"!=typeof matchMedia&&matchMedia("(pointer:fine)")||(e._useTouchEventsOnly=!0),"onwheel"in document.createElement("div")?e._pointerEvents.wheel="wheel":b.hasValue(document.onmousewheel)&&(e._pointerEvents.wheel="mousewheel"),e.inertiaOptions.setKey("move",{time:100,duration:500,factor:1,easing:g.polyOut3}),e.inertiaOptions.setKey("resize",{time:100,duration:500,factor:1,easing:g.polyOut3});try{var i=e,n=Object.defineProperty({},"passive",{get:function(){i._passiveSupported=!0}});window.addEventListener("test",n,n),window.removeEventListener("test",n,n)}catch(t){e._passiveSupported=!1}return e.applyTheme(),e}return n.c(e,t),e.prototype.fullFF=function(){return window.navigator.userAgent.match(/Firefox/)&&!window.navigator.userAgent.match(/Android/)},e.prototype.debug=function(){},e.prototype.addGlobalEvents=function(){var t=this;this._globalEventsAdded||(this._useTouchEventsOnly||(this._disposers.push(Object(p.g)(document,this._pointerEvents.pointerdown,function(e){t.handleGlobalPointerDown(e)})),this._disposers.push(Object(p.g)(document,this._pointerEvents.pointermove,function(e){t.handleGlobalPointerMove(e)})),this._disposers.push(Object(p.g)(document,this._pointerEvents.pointerup,function(e){t.handleGlobalPointerUp(e)})),this._disposers.push(Object(p.g)(document,this._pointerEvents.pointercancel,function(e){t.handleGlobalPointerUp(e,!0)}))),this._usePointerEventsOnly||(this._disposers.push(Object(p.g)(document,"touchstart",function(e){t.handleGlobalTouchStart(e)})),this._disposers.push(Object(p.g)(document,"touchmove",function(e){t.handleGlobalTouchMove(e)})),this._disposers.push(Object(p.g)(document,"touchend",function(e){t.handleGlobalTouchEnd(e)}))),this._disposers.push(Object(p.g)(document,"keydown",function(e){t.handleGlobalKeyDown(e)})),this._disposers.push(Object(p.g)(document,"keyup",function(e){t.handleGlobalKeyUp(e)})),this._globalEventsAdded=!0)},e.prototype.processClickable=function(t){this.processTouchable(t)},e.prototype.processContextMenu=function(t){t.contextMenuDisabled?t.eventDisposers.hasKey("contextMenuDisabled")||t.eventDisposers.setKey("contextMenuDisabled",Object(p.g)(t.element,"contextmenu",function(t){t.preventDefault()})):t.eventDisposers.hasKey("contextMenuDisabled")&&t.eventDisposers.getKey("contextMenuDisabled").dispose()},e.prototype.processHoverable=function(t){var e=this;if(t.hoverable||t.trackable)this.addGlobalEvents(),this.applyCursorOverStyle(t),t.eventDisposers.hasKey("hoverable")||t.eventDisposers.setKey("hoverable",new s.c([Object(p.g)(t.element,this._pointerEvents.pointerout,function(i){return e.handlePointerOut(t,i)}),Object(p.g)(t.element,this._pointerEvents.pointerover,function(i){return e.handlePointerOver(t,i)})])),t.trackable;else{var i=t.eventDisposers.getKey("hoverable");null!=i&&(i.dispose(),t.eventDisposers.removeKey("hoverable"))}this.processTouchable(t)},e.prototype.processMovable=function(t){(t.draggable||t.swipeable||t.trackable||t.resizable)&&(this.isGlobalElement(t)||this.prepElement(t),this.applyCursorOverStyle(t)),this.processTouchable(t)},e.prototype.processTrackable=function(t){this.processHoverable(t),this.processMovable(t),t.trackable?this.trackedObjects.moveValue(t):this.trackedObjects.removeValue(t)},e.prototype.processDraggable=function(t){this.processMovable(t)},e.prototype.processSwipeable=function(t){this.processMovable(t)},e.prototype.processResizable=function(t){this.processMovable(t)},e.prototype.processWheelable=function(t){var e=this;if(t.wheelable)t.eventDisposers.hasKey("wheelable")||t.eventDisposers.setKey("wheelable",new s.c([Object(p.g)(t.element,this._pointerEvents.wheel,function(i){return e.handleMouseWheel(t,i)},!!this._passiveSupported&&{passive:!1}),t.events.on("out",function(i){t.wheelable&&e.unlockWheel()}),t.events.on("over",function(i){t.wheelable&&e.lockWheel()})]));else{var i=t.eventDisposers.getKey("wheelable");null!=i&&(i.dispose(),t.eventDisposers.removeKey("wheelable"))}},e.prototype.processFocusable=function(t){var e=this;if(!0===t.focusable&&t.tabindex>-1&&!this._useTouchEventsOnly)t.eventDisposers.hasKey("focusable")||t.eventDisposers.setKey("focusable",new s.c([Object(p.g)(t.element,"focus",function(i){return e.handleFocus(t,i)}),Object(p.g)(t.element,"blur",function(i){return e.handleBlur(t,i)}),Object(p.g)(t.element,this._pointerEvents.pointerdown,function(i){return e.handleFocusBlur(t,i)}),Object(p.g)(t.element,"touchstart",function(i){return e.handleFocusBlur(t,i)},!!this._passiveSupported&&{passive:!1})]));else{var i=t.eventDisposers.getKey("focusable");null!=i&&(i.dispose(),t.eventDisposers.removeKey("focusable"))}},e.prototype.processTouchable=function(t){var e=this;if(t.clickable||t.hoverable||t.trackable||t.draggable||t.swipeable||t.resizable)this.addGlobalEvents(),t.eventDisposers.hasKey("touchable")||(this._useTouchEventsOnly||this._usePointerEventsOnly?this._useTouchEventsOnly?this._usePointerEventsOnly||t.eventDisposers.setKey("touchable",Object(p.g)(t.element,"touchstart",function(i){return e.handleTouchDown(t,i)},!!this._passiveSupported&&{passive:!1})):t.eventDisposers.setKey("touchable",Object(p.g)(t.element,this._pointerEvents.pointerdown,function(i){return e.handlePointerDown(t,i)})):t.eventDisposers.setKey("touchable",new s.c([Object(p.g)(t.element,this._pointerEvents.pointerdown,function(i){return e.handlePointerDown(t,i)}),Object(p.g)(t.element,"touchstart",function(i){return e.handleTouchDown(t,i)},!!this._passiveSupported&&{passive:!1})])));else{var i=t.eventDisposers.getKey("touchable");null!=i&&(i.dispose(),t.eventDisposers.removeKey("touchable"))}},e.prototype.handleFocus=function(t,e){if(t.focusable){if(t.isFocused=!0,t.events.isEnabled("focus")&&!f.b.isPaused){var i={type:"focus",target:t,event:e};t.events.dispatchImmediately("focus",i)}}else e.preventDefault()},e.prototype.handleFocusBlur=function(t,e){!1!==t.focusable&&this.getHitOption(t,"noFocus")&&t.events.once("focus",p.h)},e.prototype.handleBlur=function(t,e){if(t.focusable){if(t.isFocused=!1,t.events.isEnabled("blur")&&!f.b.isPaused){var i={type:"blur",target:t,event:e};t.events.dispatchImmediately("blur",i)}}else e.preventDefault()},e.prototype.handleGlobalKeyDown=function(t){if(this.focusedObject)if(d.b.isKey(t,"esc"))p.h();else if(this.focusedObject.draggable&&d.b.isKey(t,["up","down","left","right"])){t.preventDefault();var e=this.focusedObject;if(e.eventDisposers.hasKey("interactionKeyboardObject"))return;var i=new l.a(e,t);switch(e.eventDisposers.setKey("interactionKeyboardObject",i),d.b.getEventKey(t)){case"up":i.directionY=-1;break;case"down":i.directionY=1;break;case"left":i.directionX=-1;break;case"right":i.directionX=1}}},e.prototype.handleGlobalKeyUp=function(t){if(this.focusedObject){var e=this.focusedObject.eventDisposers.getKey("interactionKeyboardObject");null!=e&&(t.preventDefault(),e.dispose(),this.focusedObject.eventDisposers.removeKey("interactionKeyboardObject"))}},e.prototype.handleGlobalPointerMove=function(t){var e=this.getPointer(t);if(e.point=this.getPointerPoint(t),this.events.isEnabled("track")&&!f.b.isPaused){var i={type:"track",target:this,event:t,pointer:e};this.events.dispatchImmediately("track",i)}this.addBreadCrumb(e,e.point),this.handleGlobalMove(e,t)},e.prototype.handleGlobalPointerDown=function(t){this.processDelayed();var e=this.getPointer(t);if(this.events.isEnabled("down")&&!f.b.isPaused){var i={type:"down",target:this,event:t,pointer:e};this.events.dispatchImmediately("down",i)}},e.prototype.preventTouchAction=function(t){t.defaultPrevented||t.preventDefault()},e.prototype.handleGlobalPointerUp=function(t,e){void 0===e&&(e=!1);var i=this.getPointer(t);if(this.events.isEnabled("up")&&!f.b.isPaused){var n={type:"up",target:this,event:t,pointer:i};this.events.dispatchImmediately("up",n)}this.handleGlobalUp(i,t,e)},e.prototype.handleGlobalTouchMove=function(t){for(var e=0;e<t.changedTouches.length;e++){var i=this.getPointer(t.changedTouches[e]);if(i.point=this.getPointerPoint(t.changedTouches[e]),this.events.isEnabled("track")&&!f.b.isPaused){var n={type:"track",target:this,event:t,pointer:i};this.events.dispatchImmediately("track",n)}this.addBreadCrumb(i,i.point),this.handleGlobalMove(i,t)}},e.prototype.handleGlobalTouchStart=function(t){this.processDelayed();for(var e=0;e<t.changedTouches.length;e++){var i=this.getPointer(t.changedTouches[e]);if(!this._usePointerEventsOnly&&this.events.isEnabled("down")&&!f.b.isPaused){var n={type:"down",target:this,event:t,pointer:i};this.events.dispatchImmediately("down",n)}}},e.prototype.handleGlobalTouchEnd=function(t){for(var e=0;e<t.changedTouches.length;e++){var i=this.getPointer(t.changedTouches[e]);if(this.events.isEnabled("up")&&!f.b.isPaused){var n={type:"up",target:this,event:t,pointer:i};this.events.dispatchImmediately("up",n)}this.handleGlobalUp(i,t)}},e.prototype.handlePointerDown=function(t,e){var i=this.getPointer(e);(i.touch||1==e.which||3==e.which)&&(i.button=e.which,this.resetPointer(i,e),this.handleDown(t,i,e))},e.prototype.handlePointerOver=function(t,e){var i=this.getPointer(e);this.handleOver(t,i,e)},e.prototype.handlePointerOut=function(t,e){var i=this.getPointer(e);this.handleOut(t,i,e)},e.prototype.handleMouseWheel=function(t,e){var i=this.getPointer(e);i.point=this.getPointerPoint(e);var n=0,r=0,o=1;if(1==e.deltaMode&&(o=50),!(e instanceof WheelEvent))throw new Error("Invalid event type");n=Math.round(-1*e.wheelDeltaX||e.deltaX)*o,r=Math.round(-1*e.wheelDeltaY||e.deltaY)*o,this.handleWheel(t,i,n,r,e)},e.prototype.handleTouchDown=function(t,e){this.maybePreventDefault(t,e);for(var i=0;i<e.changedTouches.length;i++){var n=this.getPointer(e.changedTouches[i]);this.resetPointer(n,e.changedTouches[i]),this.handleDown(t,n,e)}},e.prototype.handleHit=function(t,e,i){var n=v.getTime();if(t.lastHit&&t.lastHit>=n-this.getHitOption(t,"doubleHitTime")){if(n-t.lastHit<100)return;if(t.lastHit=void 0,t.lastHitPointer=void 0,t.events.isEnabled("doublehit")&&!f.b.isPaused){var r={type:"doublehit",target:t,point:e.point,event:i};t.events.dispatchImmediately("doublehit",r)}}else if(t.lastHit=n,t.lastHitPointer=e,3===e.button){if(t.events.isEnabled("rightclick")&&!f.b.isPaused){r={type:"rightclick",target:t,event:i};t.events.dispatchImmediately("rightclick",r)}}else if(t.events.isEnabled("hit")&&!f.b.isPaused){r={type:"hit",target:t,event:i,point:e.point};t.events.dispatchImmediately("hit",r)}},e.prototype.handleOver=function(t,e,i,n){if(void 0===n&&(n=!1),t.hoverable&&(this.processDelayed(),t.overPointers.moveValue(e),!t.isHover&&(t.isHover=!0,this.overObjects.moveValue(t),this.handleTrack(this.body,e,i,!0),t.events.isEnabled("over")&&!f.b.isPaused))){var r={type:"over",target:t,event:i,pointer:e};t.events.dispatchImmediately("over",r)}},e.prototype.handleOut=function(t,e,i,n,r){var o=this;if(void 0===n&&(n=!1),void 0===r&&(r=!1),t.hoverable&&(t.overPointers.removeValue(e),t.isHover&&(!t.hasDelayedOut||r))){if(n&&t.overPointers.length)return;if(e.touch&&!r&&!this.old(e)){var a=this.getHoverOption(t,"touchOutBehavior");if("leave"==a)return this._delayedEvents.out.push({type:"out",io:t,pointer:e,event:i,keepUntil:v.getTime()+500}),void(t.hasDelayedOut=!0);if("delay"==a&&this.getHoverOption(t,"touchOutDelay"))return void this._delayedEvents.out.push({type:"out",io:t,pointer:e,event:i,keepUntil:v.getTime()+500,timeout:this.setTimeout(function(){o.handleOut(t,e,i,!0)},this.getHoverOption(t,"touchOutDelay"))})}if(t.isHover=!1,this.overObjects.removeValue(t),t.events.isEnabled("out")&&!f.b.isPaused){var s={type:"out",target:t,event:i,pointer:e};t.events.dispatchImmediately("out",s)}t.overPointers.clear(),t.hasDelayedOut=!1}},e.prototype.processDelayed=function(){for(var t;t=this._delayedEvents.out.pop();)t.timeout&&t.timeout.dispose(),this.handleOut(t.io,t.pointer,t.event,!1,!0)},e.prototype.handleDown=function(t,e,i){if(this.maybePreventDefault(t,i),t.inert&&this.stopInertia(t),this.handleOver(t,e,i,!0),t.downPointers.moveValue(e),this.applyCursorDownStyle(t,e),t.isDown||(!1!==t.focusable&&this.getHitOption(t,"noFocus")&&this.focusedObject&&p.h(),t.isDown=!0,this.downObjects.moveValue(t),t.draggable&&this.processDragStart(t,e,i),t.resizable&&this.processResizeStart(t,e,i)),t.events.isEnabled("down")&&!f.b.isPaused){var n={type:"down",target:t,event:i,pointer:e};t.events.dispatchImmediately("down",n)}},e.prototype.handleGlobalUp=function(t,e,i){var n=this;void 0===i&&(i=!1),y.each(this.downObjects.backwards().iterator(),function(r){r.downPointers.contains(t)&&n.handleUp(r,t,e,i)})},e.prototype.handleUp=function(t,e,i,n){if(void 0===n&&(n=!1),this.restoreCursorDownStyle(t,e),t.downPointers.removeValue(e),(e.touch||this._useTouchEventsOnly)&&this.handleOut(t,e,i,!0),t.isDown){if(0==t.downPointers.length&&(t.isDown=!1,this.downObjects.removeValue(t)),t.events.isEnabled("up")&&!f.b.isPaused){var r={type:"up",target:t,event:i,pointer:e};t.events.dispatchImmediately("up",r)}n||(t.swipeable&&this.swiped(t,e)?this.handleSwipe(t,e,i):(t.clickable&&!this.moved(e,this.getHitOption(t,"hitTolerance"))&&this.handleHit(t,e,i),t.inert&&this.moved(e,this.getHitOption(t,"hitTolerance"))?this.handleInertia(t,e):t.draggable&&this.processDragStop(t,e,i),t.resizable&&this.processResizeStop(t,e,i)))}},e.prototype.maybePreventDefault=function(t,e){b.hasValue(e)&&(t.draggable||t.swipeable||t.trackable||t.resizable)&&!this.isGlobalElement(t)&&e.preventDefault()},e.prototype.handleGlobalMove=function(t,e){var i=this;t.touch||y.each(this.overObjects.backwards().iterator(),function(n){if(n.overPointers.contains(t)&&n.hoverable){var r=!1;n.element&&t.lastEvent&&p.i(n.element,t.lastEvent.target)||(r=!0),r&&i.handleOut(n,t,e,!0)}}),y.each(this.transformedObjects.backwards().iterator(),function(n){!n.downPointers.contains(t)||n.swipeable&&i.swiping(n,t)||!n.draggable&&!n.resizable||i.handleTransform(n,e)}),y.each(this.trackedObjects.backwards().iterator(),function(n){n.overPointers.contains(t)||i.handleTrack(n,t,e)})},e.prototype.handleTrack=function(t,e,i,n){if(void 0===n&&(n=!1),(n||this.moved(e,0))&&t.events.isEnabled("track")&&!f.b.isPaused){var r={type:"track",target:t,event:i,point:e.point,pointer:e};t.events.dispatchImmediately("track",r)}},e.prototype.handleSwipe=function(t,e,i){if(t.events.isEnabled("swipe")&&!f.b.isPaused){var n={type:"swipe",target:t,event:i};t.events.dispatchImmediately("swipe",n)}if(e.startPoint.x<e.point.x){if(t.events.isEnabled("swiperight")&&!f.b.isPaused){n={type:"swiperight",target:t,event:i};t.events.dispatchImmediately("swiperight",n)}}else if(t.events.isEnabled("swipeleft")&&!f.b.isPaused){n={type:"swipeleft",target:t,event:i};t.events.dispatchImmediately("swipeleft",n)}},e.prototype.handleWheel=function(t,e,i,n,r){var o={x:i,y:n};t.events.isEnabled("wheel")&&!f.b.isPaused&&t.events.dispatchImmediately("wheel",{type:"wheel",target:t,event:r,point:e.point,shift:o}),i<0?t.events.isEnabled("wheelleft")&&!f.b.isPaused&&t.events.dispatchImmediately("wheelleft",{type:"wheelleft",target:t,event:r,point:e.point,shift:o}):i>0?t.events.isEnabled("swiperight")&&!f.b.isPaused&&t.events.dispatchImmediately("wheelright",{type:"wheelright",target:t,event:r,point:e.point,shift:o}):n<0?t.events.isEnabled("wheelup")&&!f.b.isPaused&&t.events.dispatchImmediately("wheelup",{type:"wheelup",target:t,event:r,point:e.point,shift:o}):n>0&&t.events.isEnabled("wheeldown")&&!f.b.isPaused&&t.events.dispatchImmediately("wheeldown",{type:"wheeldown",target:t,event:r,point:e.point,shift:o})},e.prototype.handleInertia=function(t,e){t.draggable&&0===t.downPointers.length&&this.handleMoveInertia(t,e),t.resizable&&t.downPointers.length>1&&this.handleResizeInertia(t,e)},e.prototype.handleMoveInertia=function(t,e){var i=t,n={x:e.point.x,y:e.point.y},r={x:e.startPoint.x,y:e.startPoint.y},o=new c.a(i,"move",n,r),s=this.getTrailPoint(e,v.getTime()-this.getInertiaOption(t,"move","time"));if(void 0!==s){var u=this.getInertiaOption(t,"move","factor"),l=[{to:e.point.x+(e.point.x-s.point.x)*u,property:"x"},{to:e.point.y+(e.point.y-s.point.y)*u,property:"y"}],h=new a.a(o,l,this.getInertiaOption(t,"move","duration"),this.getInertiaOption(t,"move","easing")).start();this._disposers.push(h.events.on("animationended",function(t){o.done()})),t.inertias.setKey("move",o)}else this.processDragStop(t,e,e.lastUpEvent)},e.prototype.handleResizeInertia=function(t,e){},e.prototype.handleTransform=function(t,e){var i,n,r,o=t.downPointers.getIndex(0),a=null,s=null;o&&(a=o.point,s=o.startPoint),r=n={x:t.originalPosition.x,y:t.originalPosition.y};for(var u=!0,l=1;l<t.downPointers.length;l++){var h=t.downPointers.getIndex(l);if(s.x!=h.startPoint.x||s.y!=h.startPoint.y){u=!1,n=(i=h).point,r=i.startPoint;break}}var c=o&&this.moved(o,0);if(t.draggable&&o&&o.dragStartEvents&&o.dragStartEvents.length&&c&&t.events.isEnabled("dragstart")&&!f.b.isPaused&&t.events.dispatchImmediately("dragstart",o.dragStartEvents.shift()),u&&t.draggable)this.handleTransformMove(t,a,s,e,c);else{var p=i&&this.moved(i,0);t.draggable&&t.resizable?(this.handleTransformMove(t,a,s,e,c&&p),this.handleTransformResize(t,a,s,n,r,e,c&&p)):(t.draggable&&this.handleTransformMove(t,a,s,e,c),t.resizable&&this.handleTransformResize(t,a,s,n,r,e,c&&p))}},e.prototype.handleTransformMove=function(t,e,i,n,r){if(r&&t.events.isEnabled("drag")&&!f.b.isPaused){var o={type:"drag",target:t,event:n,shift:{x:e.x-i.x,y:e.y-i.y},startPoint:i,point:e};t.events.dispatchImmediately("drag",o)}},e.prototype.handleTransformResize=function(t,e,i,n,r,o,a){if(t.events.isEnabled("resize")&&!f.b.isPaused){var s={type:"resize",target:t,event:o,scale:m.getScale(e,i,n,r),startPoint1:i,point1:e,startPoint2:r,point2:n};t.events.dispatchImmediately("resize",s)}},e.prototype.processDragStart=function(t,e,i){this.transformedObjects.moveValue(t);var n={type:"dragstart",target:t,event:i};e&&(e.dragTarget=t),e&&e.dragStartEvents?e.dragStartEvents.push(n):f.b.isPaused||t.dispatchImmediately("dragstart",n)},e.prototype.processDragStop=function(t,e,i){if(e||(e=this.getDragPointer(t)),e&&(e.dragTarget=void 0),this.transformedObjects.removeValue(t),(!e||this.moved(e,0))&&t.events.isEnabled("dragstop")&&!f.b.isPaused){var n={type:"dragstop",target:t};t.events.dispatchImmediately("dragstop",n)}},e.prototype.processResizeStart=function(t,e,i){this.transformedObjects.moveValue(t)},e.prototype.processResizeStop=function(t,e,i){this.transformedObjects.removeValue(t)},e.prototype.dragStart=function(t,e){(e||(e=this.getDragPointer(t)))&&this.handleDown(t,e,e.lastDownEvent)},e.prototype.dragStop=function(t,e){(e||(e=this.getDragPointer(t)))&&this.handleGlobalUp(e,e.lastUpEvent)},e.prototype.getDragPointer=function(t){return t?t.downPointers.getIndex(0):this.transformedObjects.length?this.getDragPointer(this.transformedObjects.getIndex(0)):void 0},e.prototype.getPointerId=function(t){return(b.hasValue(t.identifier)?""+t.identifier:b.hasValue(t.pointerId)?""+t.pointerId:"m").replace("-","")},e.prototype.getPointerPoint=function(t){return{x:t.clientX,y:t.clientY}},e.prototype.getPointer=function(t){var e,i=this.getPointerId(t),n=this.getPointerPoint(t);return this.pointers.hasKey(i)?(e=this.pointers.getKey(i)).touch=this.isPointerTouch(t):(e={id:i,touch:this.isPointerTouch(t),startPoint:n,startTime:v.getTime(),point:n,track:[],swipeCanceled:!1,dragStartEvents:[]},this.addBreadCrumb(e,n),this.pointers.setKey(i,e)),e.lastEvent=t,e},e.prototype.isPointerTouch=function(t){if("undefined"!=typeof Touch&&t instanceof Touch)return!0;if("undefined"!=typeof PointerEvent&&t instanceof PointerEvent&&b.hasValue(t.pointerType))switch(t.pointerType){case"touch":case"pen":case 2:return!0;case"mouse":case 4:return!1;default:return!(t instanceof MouseEvent)}else if(b.hasValue(t.type)&&t.type.match(/^mouse/))return!1;return!0},e.prototype.resetPointer=function(t,e){var i=this.getPointerPoint(e);t.startTime=v.getTime(),t.startPoint={x:i.x,y:i.y},t.point={x:i.x,y:i.y},t.track=[],t.swipeCanceled=!1},e.prototype.addBreadCrumb=function(t,e){t.track.push({timestamp:v.getTime(),point:e})},e.prototype.lockDocument=function(){this.prepElement(this.body)},e.prototype.unlockDocument=function(){0==this.transformedObjects.length&&this.restoreAllStyles(this.body)},e.prototype.lockElement=function(t){this.prepElement(t)},e.prototype.unlockElement=function(t){this.restoreAllStyles(t)},e.prototype.lockWheel=function(){window.addEventListener(this._pointerEvents.wheel,this.wheelLockEvent,!!this._passiveSupported&&{passive:!1})},e.prototype.unlockWheel=function(){window.removeEventListener(this._pointerEvents.wheel,this.wheelLockEvent)},e.prototype.isLocalElement=function(t,e,i){var n=this.getCache("local_pointer_"+t.id);if(b.hasValue(n))return n;var r=document.elementFromPoint(t.point.x,t.point.y),o=r&&(e===r||p.i(e,r));return this.setCache("local_pointer_"+t.id+"_"+i,o,100),o},e.prototype.wheelLockEvent=function(t){return t.preventDefault(),!1},e.prototype.prepElement=function(t,e){var i=t.element;if(i){for(var n=["touchAction","webkitTouchAction","MozTouchAction","MSTouchAction","msTouchAction","oTouchAction","userSelect","webkitUserSelect","MozUserSelect","MSUserSelect","msUserSelect","oUserSelect","touchSelect","webkitTouchSelect","MozTouchSelect","MSTouchSelect","msTouchSelect","oTouchSelect","touchCallout","webkitTouchCallout","MozTouchCallout","MSTouchCallout","msTouchCallout","oTouchCallout","contentZooming","webkitContentZooming","MozContentZooming","MSContentZooming","msContentZooming","oContentZooming","userDrag","webkitUserDrag","MozUserDrag","MSUserDrag","msUserDrag","oUserDrag"],r=0;r<n.length;r++)n[r]in i.style&&this.setTemporaryStyle(t,n[r],"none");this.setTemporaryStyle(t,"tapHighlightColor","rgba(0, 0, 0, 0)")}},e.prototype.getHitOption=function(t,e){var i=t.hitOptions[e];return void 0===i&&(i=this.hitOptions[e]),i},e.prototype.getHoverOption=function(t,e){var i=t.hoverOptions[e];return void 0===i&&(i=this.hoverOptions[e]),i},e.prototype.getSwipeOption=function(t,e){var i=t.swipeOptions[e];return void 0===i&&(i=this.swipeOptions[e]),i},e.prototype.getKeyboardOption=function(t,e){var i=t.keyboardOptions[e];return void 0===i&&(i=this.keyboardOptions[e]),i},e.prototype.getInertiaOption=function(t,e,i){var n=t.inertiaOptions.getKey(e);return n&&b.hasValue(n[e])?n[e]:this.inertiaOptions.getKey(e)[i]},e.prototype.stopInertia=function(t){for(var e,i=["move","resize"],n=0;n<i.length;n++)if(e=i[n],t.inertias.hasKey(e)){var r=t.inertias.getKey(e);if(r){r.dispose();continue}}},e.prototype.swiping=function(t,e){var i=v.getTime();return!(e.swipeCanceled||!t.swipeable)&&(Math.abs(e.startPoint.y-e.point.y)<this.getSwipeOption(t,"verticalThreshold")&&e.startTime>i-this.getSwipeOption(t,"time"))},e.prototype.swiped=function(t,e){var i=v.getTime();return!e.swipeCanceled&&(Math.abs(e.startPoint.x-e.point.x)>this.getSwipeOption(t,"horizontalThreshold")&&Math.abs(e.startPoint.y-e.point.y)<this.getSwipeOption(t,"verticalThreshold")&&e.startTime>i-this.getSwipeOption(t,"time"))},e.prototype.applyCursorOverStyle=function(t){var e=t.cursorOptions;if(b.hasValue(e.overStyle))for(var i=0;i<e.overStyle.length;i++)p.t(t.element,e.overStyle[i].property,e.overStyle[i].value)},e.prototype.applyCursorDownStyle=function(t,e){if(!e.touch){var i=t.cursorOptions.downStyle;if(t.downPointers.contains(e)&&b.hasValue(i))for(var n=0;n<i.length;n++)this.setTemporaryStyle(this.body,i[n].property,i[n].value),this.setTemporaryStyle(t,i[n].property,i[n].value)}},e.prototype.restoreCursorDownStyle=function(t,e){if(!e.touch){var i=t.cursorOptions.downStyle;if(t.downPointers.contains(e)&&b.hasValue(i))for(var n=0;n<i.length;n++)this.restoreStyle(this.body,i[n].property),this.restoreStyle(t,i[n].property)}},e.prototype.setGlobalStyle=function(t){for(var e=P().body,i=b.isArray(t)?t:[t],n=0;n<i.length;n++)this.setTemporaryStyle(e,i[n].property,i[n].value)},e.prototype.restoreGlobalStyle=function(t){for(var e=P().body,i=b.isArray(t)?t:[t],n=0;n<i.length;n++)this.restoreStyle(e,i[n].property)},e.prototype.isGlobalElement=function(t){return document.body===t.element},e.prototype.moved=function(t,e,i){void 0===i&&(i=300);var n=this.getShift(t);return Math.abs(n.x)>e||Math.abs(n.y)>e},e.prototype.old=function(t,e){return void 0===e&&(e=300),v.getTime()-t.startTime>e},e.prototype.getShift=function(t){return{x:t.startPoint.x-t.point.x,y:t.startPoint.y-t.point.y}},e.prototype.getTrailPoint=function(t,e){for(var i,n=0;n<t.track.length;n++)if(t.track[n].timestamp>=e){i=t.track[n];break}return i},e.prototype.pointerExists=function(t,e){var i=!1;return t.each(function(t){t!=e&&(i=t.point.x==e.point.x&&t.point.y==e.point.y)}),i},e.prototype.getInteraction=function(t){return new u.a(t)},e.prototype.setTemporaryStyle=function(t,e,i){var n=t.element;b.hasValue(n.style[e])&&!t.replacedStyles.hasKey(e)&&t.replacedStyles.setKey(e,n.style[e]),p.t(n,e,i)},e.prototype.restoreStyle=function(t,e){t.replacedStyles.hasKey(e)?(t.element.style[e]=t.replacedStyles.getKey(e),t.replacedStyles.removeKey(e)):delete t.element.style[e]},e.prototype.restoreAllStyles=function(t){y.each(t.replacedStyles.iterator(),function(e){var i=e[0],n=e[1];t.element.style[i]=n,t.replacedStyles.removeKey(i)})},e.prototype.dispose=function(){this.isDisposed()||(t.prototype.dispose.call(this),this.restoreAllStyles(this.body),this.unlockWheel())},e.prototype.log=function(t,e,i){if(e.changedTouches)for(var n=0;n<e.changedTouches.length;n++)this.logTouch(t,e.type,e.changedTouches[n]);else{var r="";if(e.pointerType)switch(e.pointerType){case 2:r="touch";break;case 4:r="mouse";break;default:r=e.pointerType}else r="undefined"!=typeof TouchEvent&&e instanceof TouchEvent?"touch":e.type.match(/^mouse/)?"mouse":"???";var o="";o=b.hasValue(e.identifier)?e.identifier:b.hasValue(e.pointerId)?e.pointerId:"???",i?console.log(t+" ("+i.uid+")  "+e.type+"  "+r+"  "+o):console.log(t+"  "+e.type+"  "+r+"  "+o)}},e.prototype.logTouch=function(t,e,i){console.log(t+"  "+e+"  touch  "+i.identifier)},e}(r.b),x=null;function P(){return null==x&&(x=new _),x}},"zy/o":function(t,e,i){"use strict";var n=i("2Nze");i("Gb1H")({target:"RegExp",proto:!0,forced:n!==/./.exec},{exec:n})}});
diff --git a/web/js/hammer.min.js.map b/web/js/hammer.min.js.map
deleted file mode 100644
index be5d89b38b..0000000000
--- a/web/js/hammer.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["hammer.js"],"names":["window","document","exportName","undefined","ifUndefined","val1","val2","VENDOR_PREFIXES","TEST_ELEMENT","createElement","TYPE_FUNCTION","round","Math","abs","now","Date","prefixed","obj","property","prefix","prop","camelProp","toUpperCase","slice","i","length","getTouchActionProps","NATIVE_TOUCH_ACTION","touchMap","cssSupports","CSS","supports","forEach","val","PREFIXED_TOUCH_ACTION","style","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","MOBILE_REGEX","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","test","navigator","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","COMPUTE_INTERVAL","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","assign","Object","target","TypeError","output","index","arguments","source","nextKey","hasOwnProperty","assign$1","_uniqueId","uniqueId","each","iterator","context","call","invokeArrayArg","arg","fn","Array","isArray","inArray","src","find","findByKey","indexOf","_typeof","Symbol","constructor","prototype","asyncGenerator","AwaitValue","value","this","AsyncGenerator","gen","front","back","send","key","Promise","resolve","reject","request","next","resume","result","then","settle","done","err","type","_invoke","return","asyncIterator","throw","wrap","apply","await","classCallCheck","instance","Constructor","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","get","object","receiver","Function","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","getter","inherits","subClass","superClass","create","setPrototypeOf","__proto__","possibleConstructorReturn","self","ReferenceError","slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_i","_s","push","boolOrFn","args","getRecognizerByNameIfManager","otherRecognizer","recognizer","manager","stateStr","state","Recognizer","options","defaults","id","enable","simultaneous","requireFail","set","touchAction","update","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","splice","hasRequireFailures","canRecognizeWith","emit","input","event","additionalEvent","tryEmit","canEmit","recognize","inputData","inputDataClone","reset","process","getTouchAction","AttrRecognizer","_Recognizer","attrTest","optionPointers","pointers","eventType","isRecognized","isValid","RotateRecognizer","_AttrRecognizer","rotation","threshold","PinchRecognizer","scale","inOut","directionStr","direction","PanRecognizer","_this","pX","pY","actions","directionTest","hasMoved","distance","x","deltaX","y","deltaY","SwipeRecognizer","velocity","overallVelocity","overallVelocityX","overallVelocityY","offsetDirection","maxPointers","bindFn","boundFn","setTimeoutContext","timeout","setTimeout","getDistance","p1","p2","sqrt","TapRecognizer","pTime","pCenter","_timer","_input","count","_this2","validPointers","validMovement","validTouchTime","deltaTime","time","failTimeout","validInterval","timeStamp","interval","validMultiTap","center","posThreshold","tapCount","taps","_this3","clearTimeout","PressRecognizer","validTime","inStr","str","cleanTouchActions","hasPanX","hasPanY","TouchAction","compute","element","toLowerCase","trim","recognizers","concat","join","preventDefaults","srcEvent","session","prevented","preventDefault","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","hasParent","node","parentNode","getCenter","pointersLength","clientX","clientY","simpleCloneInputData","getAngle","atan2","PI","getDirection","computeDeltaXY","offset","offsetDelta","prevDelta","prevInput","getVelocity","getScale","start","end","getRotation","computeIntervalInputData","last","lastInterval","velocityX","velocityY","v","computeInputData","firstInput","firstMultiple","offsetCenter","angle","inputHandler","pointersLen","changedPointersLen","changedPointers","isFirst","isFinal","splitStr","split","addEventListeners","types","handler","addEventListener","removeEventListeners","removeEventListener","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","callback","inputTarget","domHandler","ev","init","evEl","evTarget","evWin","destroy","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","MSPointerEvent","PointerEvent","PointerEventInput","_Input","store","pointerEvents","removePointer","eventTypeNormalized","replace","pointerType","isTouch","storeIndex","pointerId","button","toArray$1","uniqueArray","sort","results","values","a","b","TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_TARGET_EVENTS","TouchInput","targetIds","touches","getTouches","allTouches","identifier","targetTouches","changedTouches","changedTargetTouches","filter","touch","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","which","DEDUP_TIMEOUT","DEDUP_DISTANCE","TouchMouseInput","mouse","primaryTouch","lastTouches","inputEvent","isMouse","sourceCapabilities","firesTouchEvents","recordTouches","isSyntheticEvent","eventData","setLastTouch","_eventData$changedPoi","lastTouch","lts","removeLastTouch","t","dx","dy","createInputInstance","Type","inputClass","STOP","FORCED_STOP","Manager","Hammer","handlers","oldCssProps","toggleCssProps","item","add","stop","force","stopped","curRecognizer","existing","remove","on","events","off","data","domEvents","triggerDomEvent","cssProps","name","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","preset","VERSION","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","SINGLE_TOUCH_INPUT_MAP","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","all","changed","deprecate","method","message","deprecationMessage","e","Error","stack","log","console","warn","extend","dest","merge","keys","inherit","child","base","properties","baseP","childP","_super","Tap","Pan","Swipe","Pinch","Rotate","Press","toArray","define","amd","module","exports"],"mappings":"CAAA,SAAUA,OAAQC,SAAUC,WAAYC,WACxC,YAQA,SAASC,aAAYC,KAAMC,MACzB,MAAOD,QAASF,UAAYG,KAAOD,KAGrC,GAAIE,kBAAmB,GAAI,SAAU,MAAO,KAAM,KAAM,IACxD,IAAIC,cAAeP,SAASQ,cAAc,MAE1C,IAAIC,eAAgB,UAEpB,IAAIC,OAAQC,KAAKD,KACjB,IAAIE,KAAMD,KAAKC,GACf,IAAIC,KAAMC,KAAKD,GASf,SAASE,UAASC,IAAKC,UACrB,GAAIC,YAAc,EAClB,IAAIC,UAAY,EAChB,IAAIC,WAAYH,SAAS,GAAGI,cAAgBJ,SAASK,MAAM,EAE3D,IAAIC,GAAI,CACR,OAAOA,EAAIjB,gBAAgBkB,OAAQ,CACjCN,OAASZ,gBAAgBiB,EACzBJ,MAAOD,OAASA,OAASE,UAAYH,QAErC,IAAIE,OAAQH,KAAK,CACf,MAAOG,MAETI,IAEF,MAAOrB,WAGT,QAASuB,uBACP,IAAKC,oBAAqB,CACxB,MAAO,OAET,GAAIC,YACJ,IAAIC,aAAc7B,OAAO8B,KAAO9B,OAAO8B,IAAIC,UAC1C,OAAQ,eAAgB,QAAS,QAAS,cAAe,QAAQC,QAAQ,SAAUC,KAIlF,MAAOL,UAASK,KAAOJ,YAAc7B,OAAO8B,IAAIC,SAAS,eAAgBE,KAAO,MAElF,OAAOL,UAGT,GAAIM,uBAAwBlB,SAASR,aAAa2B,MAAO,cACzD,IAAIR,qBAAsBO,wBAA0B/B,SAGpD,IAAIiC,sBAAuB,SAC3B,IAAIC,mBAAoB,MACxB,IAAIC,2BAA4B,cAChC,IAAIC,mBAAoB,MACxB,IAAIC,oBAAqB,OACzB,IAAIC,oBAAqB,OACzB,IAAIC,kBAAmBhB,qBAEvB,IAAIiB,cAAe,uCAEnB,IAAIC,eAAgB,gBAAkB5C,OACtC,IAAI6C,wBAAyB7B,SAAShB,OAAQ,kBAAoBG,SAClE,IAAI2C,oBAAqBF,eAAiBD,aAAaI,KAAKC,UAAUC,UAEtE,IAAIC,kBAAmB,OACvB,IAAIC,gBAAiB,KACrB,IAAIC,kBAAmB,OACvB,IAAIC,mBAAoB,QAExB,IAAIC,kBAAmB,EAEvB,IAAIC,aAAc,CAClB,IAAIC,YAAa,CACjB,IAAIC,WAAY,CAChB,IAAIC,cAAe,CAEnB,IAAIC,gBAAiB,CACrB,IAAIC,gBAAiB,CACrB,IAAIC,iBAAkB,CACtB,IAAIC,cAAe,CACnB,IAAIC,gBAAiB,EAErB,IAAIC,sBAAuBJ,eAAiBC,eAC5C,IAAII,oBAAqBH,aAAeC,cACxC,IAAIG,eAAgBF,qBAAuBC,kBAE3C,IAAIE,WAAY,IAAK,IACrB,IAAIC,kBAAmB,UAAW,UAElC,IAAIC,gBAAiB,CACrB,IAAIC,aAAc,CAClB,IAAIC,eAAgB,CACpB,IAAIC,aAAc,CAClB,IAAIC,kBAAmBD,WACvB,IAAIE,iBAAkB,EACtB,IAAIC,cAAe,EAUnB,IAAIC,YAAc,EAClB,UAAWC,QAAOD,SAAW,WAAY,CACvCA,OAAS,QAASA,QAAOE,QACvB,GAAIA,SAAW3E,WAAa2E,SAAW,KAAM,CAC3C,KAAM,IAAIC,WAAU,8CAGtB,GAAIC,QAASH,OAAOC,OACpB,KAAK,GAAIG,OAAQ,EAAGA,MAAQC,UAAUzD,OAAQwD,QAAS,CACrD,GAAIE,QAASD,UAAUD,MACvB,IAAIE,SAAWhF,WAAagF,SAAW,KAAM,CAC3C,IAAK,GAAIC,WAAWD,QAAQ,CAC1B,GAAIA,OAAOE,eAAeD,SAAU,CAClCJ,OAAOI,SAAWD,OAAOC,YAKjC,MAAOJ,aAEJ,CACLJ,OAASC,OAAOD,OAGlB,GAAIU,UAAWV,MAOf,IAAIW,WAAY,CAChB,SAASC,YACP,MAAOD,aAUT,QAASE,MAAKxE,IAAKyE,SAAUC,SAC3B,GAAInE,OAAS,EAEb,KAAKP,IAAK,CACR,OAGF,GAAIA,IAAIe,QAAS,CACff,IAAIe,QAAQ0D,SAAUC,aACjB,IAAI1E,IAAIQ,SAAWtB,UAAW,CACnCqB,EAAI,CACJ,OAAOA,EAAIP,IAAIQ,OAAQ,CACrBiE,SAASE,KAAKD,QAAS1E,IAAIO,GAAIA,EAAGP,IAClCO,UAEG,CACL,IAAKA,IAAKP,KAAK,CACbA,IAAIoE,eAAe7D,IAAMkE,SAASE,KAAKD,QAAS1E,IAAIO,GAAIA,EAAGP,OAejE,QAAS4E,gBAAeC,IAAKC,GAAIJ,SAC/B,GAAIK,MAAMC,QAAQH,KAAM,CACtBL,KAAKK,IAAKH,QAAQI,IAAKJ,QACvB,OAAO,MAET,MAAO,OAWT,QAASO,SAAQC,IAAKC,KAAMC,WAC1B,GAAIF,IAAIG,UAAYD,UAAW,CAC7B,MAAOF,KAAIG,QAAQF,UACd,CACL,GAAI5E,GAAI,CACR,OAAOA,EAAI2E,IAAI1E,OAAQ,CACrB,GAAI4E,WAAaF,IAAI3E,GAAG6E,YAAcD,OAASC,WAAaF,IAAI3E,KAAO4E,KAAM,CAE3E,MAAO5E,GAETA,IAEF,OAAQ,GAIZ,GAAI+E,eAAiBC,UAAW,kBAAqBA,QAAOd,WAAa,SAAW,SAAUzE,KAC5F,aAAcA,MACZ,SAAUA,KACZ,MAAOA,YAAcuF,UAAW,YAAcvF,IAAIwF,cAAgBD,QAAUvF,MAAQuF,OAAOE,UAAY,eAAkBzF,KAG3H,IAAI0F,gBAAiB,WACnB,QAASC,YAAWC,OAClBC,KAAKD,MAAQA,MAGf,QAASE,gBAAeC,KACtB,GAAIC,OAAOC,IAEX,SAASC,MAAKC,IAAKtB,KACjB,MAAO,IAAIuB,SAAQ,SAAUC,QAASC,QACpC,GAAIC,UACFJ,IAAKA,IACLtB,IAAKA,IACLwB,QAASA,QACTC,OAAQA,OACRE,KAAM,KAGR,IAAIP,KAAM,CACRA,KAAOA,KAAKO,KAAOD,YACd,CACLP,MAAQC,KAAOM,OACfE,QAAON,IAAKtB,QAKlB,QAAS4B,QAAON,IAAKtB,KACnB,IACE,GAAI6B,QAASX,IAAII,KAAKtB,IACtB,IAAIe,OAAQc,OAAOd,KAEnB,IAAIA,gBAAiBD,YAAY,CAC/BS,QAAQC,QAAQT,MAAMA,OAAOe,KAAK,SAAU9B,KAC1C4B,OAAO,OAAQ5B,MACd,SAAUA,KACX4B,OAAO,QAAS5B,WAEb,CACL+B,OAAOF,OAAOG,KAAO,SAAW,SAAUH,OAAOd,QAEnD,MAAOkB,KACPF,OAAO,QAASE,MAIpB,QAASF,QAAOG,KAAMnB,OACpB,OAAQmB,MACN,IAAK,SACHf,MAAMK,SACJT,MAAOA,MACPiB,KAAM,MAER,MAEF,KAAK,QACHb,MAAMM,OAAOV,MACb,MAEF,SACEI,MAAMK,SACJT,MAAOA,MACPiB,KAAM,OAER,OAGJb,MAAQA,MAAMQ,IAEd,IAAIR,MAAO,CACTS,OAAOT,MAAMG,IAAKH,MAAMnB,SACnB,CACLoB,KAAO,MAIXJ,KAAKmB,QAAUd,IAEf,UAAWH,KAAIkB,SAAW,WAAY,CACpCpB,KAAKoB,OAAS/H,WAIlB,SAAWqG,UAAW,YAAcA,OAAO2B,cAAe,CACxDpB,eAAeL,UAAUF,OAAO2B,eAAiB,WAC/C,MAAOrB,OAIXC,eAAeL,UAAUe,KAAO,SAAU3B,KACxC,MAAOgB,MAAKmB,QAAQ,OAAQnC,KAG9BiB,gBAAeL,UAAU0B,MAAQ,SAAUtC,KACzC,MAAOgB,MAAKmB,QAAQ,QAASnC,KAG/BiB,gBAAeL,UAAUwB,OAAS,SAAUpC,KAC1C,MAAOgB,MAAKmB,QAAQ,SAAUnC,KAGhC,QACEuC,KAAM,SAAUtC,IACd,MAAO,YACL,MAAO,IAAIgB,gBAAehB,GAAGuC,MAAMxB,KAAM5B,cAG7CqD,MAAO,SAAU1B,OACf,MAAO,IAAID,YAAWC,WAK5B,IAAI2B,gBAAiB,SAAUC,SAAUC,aACvC,KAAMD,mBAAoBC,cAAc,CACtC,KAAM,IAAI3D,WAAU,sCAIxB,IAAI4D,aAAc,WAChB,QAASC,kBAAiB9D,OAAQ+D,OAChC,IAAK,GAAIrH,GAAI,EAAGA,EAAIqH,MAAMpH,OAAQD,IAAK,CACrC,GAAIsH,YAAaD,MAAMrH,EACvBsH,YAAWC,WAAaD,WAAWC,YAAc,KACjDD,YAAWE,aAAe,IAC1B,IAAI,SAAWF,YAAYA,WAAWG,SAAW,IACjDpE,QAAOqE,eAAepE,OAAQgE,WAAW1B,IAAK0B,aAIlD,MAAO,UAAUJ,YAAaS,WAAYC,aACxC,GAAID,WAAYP,iBAAiBF,YAAYhC,UAAWyC,WACxD,IAAIC,YAAaR,iBAAiBF,YAAaU,YAC/C,OAAOV,gBAIX,IAAIW,KAAM,QAASA,KAAIC,OAAQpI,SAAUqI,UACvC,GAAID,SAAW,KAAMA,OAASE,SAAS9C,SACvC,IAAI+C,MAAO5E,OAAO6E,yBAAyBJ,OAAQpI,SAEnD,IAAIuI,OAAStJ,UAAW,CACtB,GAAIwJ,QAAS9E,OAAO+E,eAAeN,OAEnC,IAAIK,SAAW,KAAM,CACnB,MAAOxJ,eACF,CACL,MAAOkJ,KAAIM,OAAQzI,SAAUqI,eAE1B,IAAI,SAAWE,MAAM,CAC1B,MAAOA,MAAK5C,UACP,CACL,GAAIgD,QAASJ,KAAKJ,GAElB,IAAIQ,SAAW1J,UAAW,CACxB,MAAOA,WAGT,MAAO0J,QAAOjE,KAAK2D,WAIvB,IAAIO,UAAW,SAAUC,SAAUC,YACjC,SAAWA,cAAe,YAAcA,aAAe,KAAM,CAC3D,KAAM,IAAIjF,WAAU,iEAAoEiF,aAG1FD,SAASrD,UAAY7B,OAAOoF,OAAOD,YAAcA,WAAWtD,WAC1DD,aACEI,MAAOkD,SACPhB,WAAY,MACZE,SAAU,KACVD,aAAc,OAGlB,IAAIgB,WAAYnF,OAAOqF,eAAiBrF,OAAOqF,eAAeH,SAAUC,YAAcD,SAASI,UAAYH,WAG7G,IAAII,2BAA4B,SAAUC,KAAMzE,MAC9C,IAAKyE,KAAM,CACT,KAAM,IAAIC,gBAAe,6DAG3B,MAAO1E,cAAgBA,QAAS,gBAAmBA,QAAS,YAAcA,KAAOyE,KAGnF,IAAIE,eAAgB,WAClB,QAASC,eAAcC,IAAKjJ,GAC1B,GAAIkJ,QACJ,IAAIC,IAAK,IACT,IAAIC,IAAK,KACT,IAAIC,IAAK1K,SAET,KACE,IAAK,GAAI2K,IAAKL,IAAIjE,OAAOd,YAAaqF,KAAMJ,IAAMI,GAAKD,GAAGrD,QAAQK,MAAO6C,GAAK,KAAM,CAClFD,KAAKM,KAAKD,GAAGlE,MAEb,IAAIrF,GAAKkJ,KAAKjJ,SAAWD,EAAG,OAE9B,MAAOuG,KACP6C,GAAK,IACLC,IAAK9C,IACL,QACA,IACE,IAAK4C,IAAMG,GAAG,UAAWA,GAAG,YAC5B,QACA,GAAIF,GAAI,KAAMC,KAIlB,MAAOH,MAGT,MAAO,UAAUD,IAAKjJ,GACpB,GAAIwE,MAAMC,QAAQwE,KAAM,CACtB,MAAOA,SACF,IAAIjE,OAAOd,WAAYb,QAAO4F,KAAM,CACzC,MAAOD,eAAcC,IAAKjJ,OACrB,CACL,KAAM,IAAIuD,WAAU,4DAa1B,SAASkG,UAAShJ,IAAKiJ,MACrB,UAAYjJ,OAAQ,YAAc,YAAcsE,QAAQtE,QAAUvB,cAAe,CAC/E,MAAOuB,KAAIqG,MAAM4C,KAAOA,KAAK,IAAM/K,UAAYA,UAAW+K,MAE5D,MAAOjJ,KAUT,QAASkJ,8BAA6BC,gBAAiBC,YACrD,GAAIC,SAAUD,WAAWC,OAEzB,IAAIA,QAAS,CACX,MAAOA,SAAQjC,IAAI+B,iBAErB,MAAOA,iBAST,QAASG,UAASC,OAChB,GAAIA,MAAQ9G,gBAAiB,CAC3B,MAAO,aACF,IAAI8G,MAAQhH,YAAa,CAC9B,MAAO,UACF,IAAIgH,MAAQjH,cAAe,CAChC,MAAO,WACF,IAAIiH,MAAQlH,YAAa,CAC9B,MAAO,QAET,MAAO,GAwCT,GAAImH,YAAa,WACf,QAASA,YAAWC,SAClBlD,eAAe1B,KAAM2E,WAErB3E,MAAK4E,QAAUpG,YAAawB,KAAK6E,SAAUD,YAE3C5E,MAAK8E,GAAKpG,UAEVsB,MAAKwE,QAAU,IAGfxE,MAAK4E,QAAQG,OAASzL,YAAY0G,KAAK4E,QAAQG,OAAQ,KAEvD/E,MAAK0E,MAAQnH,cACbyC,MAAKgF,eACLhF,MAAKiF,eAWPpD,YAAY8C,aACVrE,IAAK,MACLP,MAAO,QAASmF,KAAIN,SAClBpG,SAASwB,KAAK4E,QAASA,QAGvB5E,MAAKwE,SAAWxE,KAAKwE,QAAQW,YAAYC,QACzC,OAAOpF,SAWTM,IAAK,gBACLP,MAAO,QAASsF,eAAcf,iBAC5B,GAAIvF,eAAeuF,gBAAiB,gBAAiBtE,MAAO,CAC1D,MAAOA,MAGT,GAAIgF,cAAehF,KAAKgF,YAExBV,iBAAkBD,6BAA6BC,gBAAiBtE,KAChE,KAAKgF,aAAaV,gBAAgBQ,IAAK,CACrCE,aAAaV,gBAAgBQ,IAAMR,eACnCA,iBAAgBe,cAAcrF,MAEhC,MAAOA,SAWTM,IAAK,oBACLP,MAAO,QAASuF,mBAAkBhB,iBAChC,GAAIvF,eAAeuF,gBAAiB,oBAAqBtE,MAAO,CAC9D,MAAOA,MAGTsE,gBAAkBD,6BAA6BC,gBAAiBtE,YACzDA,MAAKgF,aAAaV,gBAAgBQ,GACzC,OAAO9E,SAWTM,IAAK,iBACLP,MAAO,QAASwF,gBAAejB,iBAC7B,GAAIvF,eAAeuF,gBAAiB,iBAAkBtE,MAAO,CAC3D,MAAOA,MAGT,GAAIiF,aAAcjF,KAAKiF,WAEvBX,iBAAkBD,6BAA6BC,gBAAiBtE,KAChE,IAAIZ,QAAQ6F,YAAaX,oBAAsB,EAAG,CAChDW,YAAYf,KAAKI,gBACjBA,iBAAgBiB,eAAevF,MAEjC,MAAOA,SAWTM,IAAK,qBACLP,MAAO,QAASyF,oBAAmBlB,iBACjC,GAAIvF,eAAeuF,gBAAiB,qBAAsBtE,MAAO,CAC/D,MAAOA,MAGTsE,gBAAkBD,6BAA6BC,gBAAiBtE,KAChE,IAAI7B,OAAQiB,QAAQY,KAAKiF,YAAaX,gBACtC,IAAInG,OAAS,EAAG,CACd6B,KAAKiF,YAAYQ,OAAOtH,MAAO,GAEjC,MAAO6B,SAUTM,IAAK,qBACLP,MAAO,QAAS2F,sBACd,MAAO1F,MAAKiF,YAAYtK,OAAS,KAWnC2F,IAAK,mBACLP,MAAO,QAAS4F,kBAAiBrB,iBAC/B,QAAStE,KAAKgF,aAAaV,gBAAgBQ,OAW7CxE,IAAK,OACLP,MAAO,QAAS6F,MAAKC,OACnB,GAAItC,MAAOvD,IACX,IAAI0E,OAAQ1E,KAAK0E,KAGjB,SAASkB,MAAKE,OACZvC,KAAKiB,QAAQoB,KAAKE,MAAOD,OAI3B,GAAInB,MAAQhH,YAAa,CACvBkI,KAAKrC,KAAKqB,QAAQkB,MAAQrB,SAASC,QAGrCkB,KAAKrC,KAAKqB,QAAQkB,MAElB,IAAID,MAAME,gBAAiB,CAEzBH,KAAKC,MAAME,iBAIb,GAAIrB,OAAShH,YAAa,CACxBkI,KAAKrC,KAAKqB,QAAQkB,MAAQrB,SAASC,YAavCpE,IAAK,UACLP,MAAO,QAASiG,SAAQH,OACtB,GAAI7F,KAAKiG,UAAW,CAClB,MAAOjG,MAAK4F,KAAKC,OAGnB7F,KAAK0E,MAAQ7G,gBAUfyC,IAAK,UACLP,MAAO,QAASkG,WACd,GAAIvL,GAAI,CACR,OAAOA,EAAIsF,KAAKiF,YAAYtK,OAAQ,CAClC,KAAMqF,KAAKiF,YAAYvK,GAAGgK,OAAS7G,aAAeN,iBAAkB,CAClE,MAAO,OAET7C,IAEF,MAAO,SAUT4F,IAAK,YACLP,MAAO,QAASmG,WAAUC,WAGxB,GAAIC,gBAAiB5H,YAAa2H,UAGlC,KAAKhC,SAASnE,KAAK4E,QAAQG,QAAS/E,KAAMoG,iBAAkB,CAC1DpG,KAAKqG,OACLrG,MAAK0E,MAAQ7G,YACb,QAIF,GAAImC,KAAK0E,OAAS/G,iBAAmBC,gBAAkBC,cAAe,CACpEmC,KAAK0E,MAAQnH,eAGfyC,KAAK0E,MAAQ1E,KAAKsG,QAAQF,eAI1B,IAAIpG,KAAK0E,OAASlH,YAAcC,cAAgBC,YAAcE,iBAAkB,CAC9EoC,KAAKgG,QAAQI,oBAgBjB9F,IAAK,UACLP,MAAO,QAASuG,SAAQH,eAWxB7F,IAAK,iBACLP,MAAO,QAASwG,sBAUhBjG,IAAK,QACLP,MAAO,QAASsG,aAElB,OAAO1B,cAGTA,YAAW/E,UAAUiF,WASrB,IAAI2B,gBAAiB,SAAUC,aAC7BzD,SAASwD,eAAgBC,YAEzB,SAASD,kBACP9E,eAAe1B,KAAMwG,eACrB,OAAOlD,2BAA0BtD,MAAOwG,eAAenD,WAAatF,OAAO+E,eAAe0D,iBAAiBhF,MAAMxB,KAAM5B,YAYzHyD,YAAY2E,iBACVlG,IAAK,WACLP,MAAO,QAAS2G,UAASb,OACvB,GAAIc,gBAAiB3G,KAAK4E,QAAQgC,QAClC,OAAOD,kBAAmB,GAAKd,MAAMe,SAASjM,SAAWgM,kBAY3DrG,IAAK,UACLP,MAAO,QAASuG,SAAQT,OACtB,GAAInB,OAAQ1E,KAAK0E,KACjB,IAAImC,WAAYhB,MAAMgB,SAGtB,IAAIC,cAAepC,OAASlH,YAAcC,cAC1C,IAAIsJ,SAAU/G,KAAK0G,SAASb,MAG5B,IAAIiB,eAAiBD,UAAYjK,eAAiBmK,SAAU,CAC1D,MAAOrC,OAAQ9G,oBACV,IAAIkJ,cAAgBC,QAAS,CAClC,GAAIF,UAAYlK,UAAW,CACzB,MAAO+H,OAAQhH,gBACV,MAAMgH,MAAQlH,aAAc,CACjC,MAAOA,aAET,MAAOkH,OAAQjH,cAEjB,MAAOI,iBAGX,OAAO2I,iBACP7B,WAEF6B,gBAAe5G,UAAUiF,UAMvB+B,SAAU,EAWZ,IAAII,kBAAmB,SAAUC,iBAC/BjE,SAASgE,iBAAkBC,gBAE3B,SAASD,oBACPtF,eAAe1B,KAAMgH,iBACrB,OAAO1D,2BAA0BtD,MAAOgH,iBAAiB3D,WAAatF,OAAO+E,eAAekE,mBAAmBxF,MAAMxB,KAAM5B,YAG7HyD,YAAYmF,mBACV1G,IAAK,iBACLP,MAAO,QAASwG,kBACd,OAAQ9K,sBAGV6E,IAAK,WACLP,MAAO,QAAS2G,UAASb,OACvB,MAAOtD,KAAIyE,iBAAiBpH,UAAUyD,WAAatF,OAAO+E,eAAekE,iBAAiBpH,WAAY,WAAYI,MAAMlB,KAAKkB,KAAM6F,SAAW/L,KAAKC,IAAI8L,MAAMqB,UAAYlH,KAAK4E,QAAQuC,WAAanH,KAAK0E,MAAQlH,gBAGpN,OAAOwJ,mBACPR,eAEFQ,kBAAiBpH,UAAUiF,UACzBiB,MAAO,SACPqB,UAAW,EACXP,SAAU,EAWZ,IAAIQ,iBAAkB,SAAUH,iBAC9BjE,SAASoE,gBAAiBH,gBAE1B,SAASG,mBACP1F,eAAe1B,KAAMoH,gBACrB,OAAO9D,2BAA0BtD,MAAOoH,gBAAgB/D,WAAatF,OAAO+E,eAAesE,kBAAkB5F,MAAMxB,KAAM5B,YAG3HyD,YAAYuF,kBACV9G,IAAK,iBACLP,MAAO,QAASwG,kBACd,OAAQ9K,sBAGV6E,IAAK,WACLP,MAAO,QAAS2G,UAASb,OACvB,MAAOtD,KAAI6E,gBAAgBxH,UAAUyD,WAAatF,OAAO+E,eAAesE,gBAAgBxH,WAAY,WAAYI,MAAMlB,KAAKkB,KAAM6F,SAAW/L,KAAKC,IAAI8L,MAAMwB,MAAQ,GAAKrH,KAAK4E,QAAQuC,WAAanH,KAAK0E,MAAQlH,gBAGjN8C,IAAK,OACLP,MAAO,QAAS6F,MAAKC,OACnB,GAAIA,MAAMwB,QAAU,EAAG,CACrB,GAAIC,OAAQzB,MAAMwB,MAAQ,EAAI,KAAO,KACrCxB,OAAME,gBAAkB/F,KAAK4E,QAAQkB,MAAQwB,MAE/C/E,IAAI6E,gBAAgBxH,UAAUyD,WAAatF,OAAO+E,eAAesE,gBAAgBxH,WAAY,OAAQI,MAAMlB,KAAKkB,KAAM6F,UAG1H,OAAOuB,kBACPZ,eAEFY,iBAAgBxH,UAAUiF,UACxBiB,MAAO,QACPqB,UAAW,EACXP,SAAU,EASZ,SAASW,cAAaC,WACpB,GAAIA,YAAcvK,eAAgB,CAChC,MAAO,WACF,IAAIuK,YAAcxK,aAAc,CACrC,MAAO,SACF,IAAIwK,YAAc1K,eAAgB,CACvC,MAAO,WACF,IAAI0K,YAAczK,gBAAiB,CACxC,MAAO,QAET,MAAO,GAWT,GAAI0K,eAAgB,SAAUR,iBAC5BjE,SAASyE,cAAeR,gBAExB,SAASQ,iBACP/F,eAAe1B,KAAMyH,cAErB,IAAIC,OAAQpE,0BAA0BtD,MAAOyH,cAAcpE,WAAatF,OAAO+E,eAAe2E,gBAAgBjG,MAAMxB,KAAM5B,WAE1HsJ,OAAMC,GAAK,IACXD,OAAME,GAAK,IACX,OAAOF,OAGT7F,YAAY4F,gBACVnH,IAAK,iBACLP,MAAO,QAASwG,kBACd,GAAIiB,WAAYxH,KAAK4E,QAAQ4C,SAE7B,IAAIK,WACJ,IAAIL,UAAYtK,qBAAsB,CACpC2K,QAAQ3D,KAAKvI,oBAEf,GAAI6L,UAAYrK,mBAAoB,CAClC0K,QAAQ3D,KAAKxI,oBAEf,MAAOmM,YAGTvH,IAAK,gBACLP,MAAO,QAAS+H,eAAcjC,OAC5B,GAAIjB,SAAU5E,KAAK4E,OAEnB,IAAImD,UAAW,IACf,IAAIC,UAAWnC,MAAMmC,QACrB,IAAIR,WAAY3B,MAAM2B,SAEtB,IAAIS,GAAIpC,MAAMqC,MACd,IAAIC,GAAItC,MAAMuC,MAGd,MAAMZ,UAAY5C,QAAQ4C,WAAY,CACpC,GAAI5C,QAAQ4C,UAAYtK,qBAAsB,CAC5CsK,UAAYS,IAAM,EAAIpL,eAAiBoL,EAAI,EAAInL,eAAiBC,eAChEgL,UAAWE,IAAMjI,KAAK2H,EACtBK,UAAWlO,KAAKC,IAAI8L,MAAMqC,YACrB,CACLV,UAAYW,IAAM,EAAItL,eAAiBsL,EAAI,EAAInL,aAAeC,cAC9D8K,UAAWI,IAAMnI,KAAK4H,EACtBI,UAAWlO,KAAKC,IAAI8L,MAAMuC,SAG9BvC,MAAM2B,UAAYA,SAClB,OAAOO,WAAYC,SAAWpD,QAAQuC,WAAaK,UAAY5C,QAAQ4C,aAGzElH,IAAK,WACLP,MAAO,QAAS2G,UAASb,OACvB,MAAOW,gBAAe5G,UAAU8G,SAAS5H,KAAKkB,KAAM6F,SACpD7F,KAAK0E,MAAQlH,eAAiBwC,KAAK0E,MAAQlH,cAAgBwC,KAAK8H,cAAcjC,WAGhFvF,IAAK,OACLP,MAAO,QAAS6F,MAAKC,OAEnB7F,KAAK2H,GAAK9B,MAAMqC,MAChBlI,MAAK4H,GAAK/B,MAAMuC,MAEhB,IAAIZ,WAAYD,aAAa1B,MAAM2B,UAEnC,IAAIA,UAAW,CACb3B,MAAME,gBAAkB/F,KAAK4E,QAAQkB,MAAQ0B,UAE/CjF,IAAIkF,cAAc7H,UAAUyD,WAAatF,OAAO+E,eAAe2E,cAAc7H,WAAY,OAAQI,MAAMlB,KAAKkB,KAAM6F,UAGtH,OAAO4B,gBACPjB,eAEFiB,eAAc7H,UAAUiF,UACtBiB,MAAO,MACPqB,UAAW,GACXP,SAAU,EACVY,UAAWpK,cAWb,IAAIiL,iBAAkB,SAAUpB,iBAC9BjE,SAASqF,gBAAiBpB,gBAE1B,SAASoB,mBACP3G,eAAe1B,KAAMqI,gBACrB,OAAO/E,2BAA0BtD,MAAOqI,gBAAgBhF,WAAatF,OAAO+E,eAAeuF,kBAAkB7G,MAAMxB,KAAM5B,YAG3HyD,YAAYwG,kBACV/H,IAAK,iBACLP,MAAO,QAASwG,kBACd,MAAOkB,eAAc7H,UAAU2G,eAAezH,KAAKkB,SAGrDM,IAAK,WACLP,MAAO,QAAS2G,UAASb,OACvB,GAAI2B,WAAYxH,KAAK4E,QAAQ4C,SAE7B,IAAIc,cAAgB,EAEpB,IAAId,WAAatK,qBAAuBC,oBAAqB,CAC3DmL,SAAWzC,MAAM0C,oBACZ,IAAIf,UAAYtK,qBAAsB,CAC3CoL,SAAWzC,MAAM2C,qBACZ,IAAIhB,UAAYrK,mBAAoB,CACzCmL,SAAWzC,MAAM4C,iBAGnB,MAAOlG,KAAI8F,gBAAgBzI,UAAUyD,WAAatF,OAAO+E,eAAeuF,gBAAgBzI,WAAY,WAAYI,MAAMlB,KAAKkB,KAAM6F,QAAU2B,UAAY3B,MAAM6C,iBAAmB7C,MAAMmC,SAAWhI,KAAK4E,QAAQuC,WAAatB,MAAM8C,cAAgB3I,KAAK4E,QAAQgC,UAAY7M,IAAIuO,UAAYtI,KAAK4E,QAAQ0D,UAAYzC,MAAMgB,UAAYlK,aAGvU2D,IAAK,OACLP,MAAO,QAAS6F,MAAKC,OACnB,GAAI2B,WAAYD,aAAa1B,MAAM6C,gBACnC,IAAIlB,UAAW,CACbxH,KAAKwE,QAAQoB,KAAK5F,KAAK4E,QAAQkB,MAAQ0B,UAAW3B,OAGpD7F,KAAKwE,QAAQoB,KAAK5F,KAAK4E,QAAQkB,MAAOD,UAG1C,OAAOwC,kBACP7B,eAEF6B,iBAAgBzI,UAAUiF,UACxBiB,MAAO,QACPqB,UAAW,GACXmB,SAAU,GACVd,UAAWtK,qBAAuBC,mBAClCyJ,SAAU,EAUZ,SAASgC,QAAO3J,GAAIJ,SAClB,MAAO,SAASgK,WACd,MAAO5J,IAAGuC,MAAM3C,QAAST,YAY7B,QAAS0K,mBAAkB7J,GAAI8J,QAASlK,SACtC,MAAOmK,YAAWJ,OAAO3J,GAAIJ,SAAUkK,SAWzC,QAASE,aAAYC,GAAIC,GAAIpH,OAC3B,IAAKA,MAAO,CACVA,MAAQ1E,SAEV,GAAI4K,GAAIkB,GAAGpH,MAAM,IAAMmH,GAAGnH,MAAM,GAChC,IAAIoG,GAAIgB,GAAGpH,MAAM,IAAMmH,GAAGnH,MAAM,GAEhC,OAAOjI,MAAKsP,KAAKnB,EAAIA,EAAIE,EAAIA,GAe/B,GAAIkB,eAAgB,SAAU5C,aAC5BzD,SAASqG,cAAe5C,YAExB,SAAS4C,iBACP3H,eAAe1B,KAAMqJ,cAIrB,IAAI3B,OAAQpE,0BAA0BtD,MAAOqJ,cAAchG,WAAatF,OAAO+E,eAAeuG,gBAAgB7H,MAAMxB,KAAM5B,WAE1HsJ,OAAM4B,MAAQ,KACd5B,OAAM6B,QAAU,KAEhB7B,OAAM8B,OAAS,IACf9B,OAAM+B,OAAS,IACf/B,OAAMgC,MAAQ,CACd,OAAOhC,OAGT7F,YAAYwH,gBACV/I,IAAK,iBACLP,MAAO,QAASwG,kBACd,OAAQ/K,8BAGV8E,IAAK,UACLP,MAAO,QAASuG,SAAQT,OACtB,GAAI8D,QAAS3J,IAEb,IAAI4E,SAAU5E,KAAK4E,OAGnB,IAAIgF,eAAgB/D,MAAMe,SAASjM,SAAWiK,QAAQgC,QACtD,IAAIiD,eAAgBhE,MAAMmC,SAAWpD,QAAQuC,SAC7C,IAAI2C,gBAAiBjE,MAAMkE,UAAYnF,QAAQoF,IAE/ChK,MAAKqG,OAEL,IAAIR,MAAMgB,UAAYpK,aAAeuD,KAAK0J,QAAU,EAAG,CACrD,MAAO1J,MAAKiK,cAKd,GAAIJ,eAAiBC,gBAAkBF,cAAe,CACpD,GAAI/D,MAAMgB,YAAclK,UAAW,CACjC,MAAOqD,MAAKiK,cAGd,GAAIC,eAAgBlK,KAAKsJ,MAAQzD,MAAMsE,UAAYnK,KAAKsJ,MAAQ1E,QAAQwF,SAAW,IACnF,IAAIC,gBAAiBrK,KAAKuJ,SAAWN,YAAYjJ,KAAKuJ,QAAS1D,MAAMyE,QAAU1F,QAAQ2F,YAEvFvK,MAAKsJ,MAAQzD,MAAMsE,SACnBnK,MAAKuJ,QAAU1D,MAAMyE,MAErB,KAAKD,gBAAkBH,cAAe,CACpClK,KAAK0J,MAAQ,MACR,CACL1J,KAAK0J,OAAS,EAGhB1J,KAAKyJ,OAAS5D,KAId,IAAI2E,UAAWxK,KAAK0J,MAAQ9E,QAAQ6F,IACpC,IAAID,WAAa,EAAG,CAGlB,IAAKxK,KAAK0F,qBAAsB,CAC9B,MAAO/H,sBACF,CACLqC,KAAKwJ,OAASV,kBAAkB,WAC9Ba,OAAOjF,MAAQ/G,gBACfgM,QAAO3D,WACNpB,QAAQwF,SAAUpK,KACrB,OAAOxC,eAIb,MAAOK,iBAGTyC,IAAK,cACLP,MAAO,QAASkK,eACd,GAAIS,QAAS1K,IAEbA,MAAKwJ,OAASV,kBAAkB,WAC9B4B,OAAOhG,MAAQ7G,cACdmC,KAAK4E,QAAQwF,SAAUpK,KAC1B,OAAOnC,iBAGTyC,IAAK,QACLP,MAAO,QAASsG,SACdsE,aAAa3K,KAAKwJ,WAGpBlJ,IAAK,OACLP,MAAO,QAAS6F,QACd,GAAI5F,KAAK0E,QAAU/G,iBAAkB,CACnCqC,KAAKyJ,OAAOe,SAAWxK,KAAK0J,KAC5B1J,MAAKwE,QAAQoB,KAAK5F,KAAK4E,QAAQkB,MAAO9F,KAAKyJ,YAIjD,OAAOJ,gBACP1E,WAEF0E,eAAczJ,UAAUiF,UACtBiB,MAAO,MACPc,SAAU,EACV6D,KAAM,EACNL,SAAU,IACVJ,KAAM,IACN7C,UAAW,EACXoD,aAAc,GAWhB,IAAIK,iBAAkB,SAAUnE,aAC9BzD,SAAS4H,gBAAiBnE,YAE1B,SAASmE,mBACPlJ,eAAe1B,KAAM4K,gBAErB,IAAIlD,OAAQpE,0BAA0BtD,MAAO4K,gBAAgBvH,WAAatF,OAAO+E,eAAe8H,kBAAkBpJ,MAAMxB,KAAM5B,WAE9HsJ,OAAM8B,OAAS,IACf9B,OAAM+B,OAAS,IACf,OAAO/B,OAGT7F,YAAY+I,kBACVtK,IAAK,iBACLP,MAAO,QAASwG,kBACd,OAAQhL,sBAGV+E,IAAK,UACLP,MAAO,QAASuG,SAAQT,OACtB,GAAI8D,QAAS3J,IAEb,IAAI4E,SAAU5E,KAAK4E,OAEnB,IAAIgF,eAAgB/D,MAAMe,SAASjM,SAAWiK,QAAQgC,QACtD,IAAIiD,eAAgBhE,MAAMmC,SAAWpD,QAAQuC,SAC7C,IAAI0D,WAAYhF,MAAMkE,UAAYnF,QAAQoF,IAE1ChK,MAAKyJ,OAAS5D,KAId,KAAKgE,gBAAkBD,eAAiB/D,MAAMgB,WAAalK,UAAYC,gBAAkBiO,UAAW,CAClG7K,KAAKqG,YACA,IAAIR,MAAMgB,UAAYpK,YAAa,CACxCuD,KAAKqG,OACLrG,MAAKwJ,OAASV,kBAAkB,WAC9Ba,OAAOjF,MAAQ/G,gBACfgM,QAAO3D,WACNpB,QAAQoF,KAAMhK,UACZ,IAAI6F,MAAMgB,UAAYlK,UAAW,CACtC,MAAOgB,kBAET,MAAOE,iBAGTyC,IAAK,QACLP,MAAO,QAASsG,SACdsE,aAAa3K,KAAKwJ,WAGpBlJ,IAAK,OACLP,MAAO,QAAS6F,MAAKC,OACnB,GAAI7F,KAAK0E,QAAU/G,iBAAkB,CACnC,OAGF,GAAIkI,OAASA,MAAMgB,UAAYlK,UAAW,CACxCqD,KAAKwE,QAAQoB,KAAK5F,KAAK4E,QAAQkB,MAAQ,KAAMD,WACxC,CACL7F,KAAKyJ,OAAOU,UAAYnQ,KACxBgG,MAAKwE,QAAQoB,KAAK5F,KAAK4E,QAAQkB,MAAO9F,KAAKyJ,YAIjD,OAAOmB,kBACPjG,WAEFiG,iBAAgBhL,UAAUiF,UACxBiB,MAAO,QACPc,SAAU,EACVoD,KAAM,IACN7C,UAAW,EAUb,SAAS2D,OAAMC,IAAKzL,MAClB,MAAOyL,KAAIvL,QAAQF,OAAS,EAS9B,QAAS0L,mBAAkBnD,SAEzB,GAAIiD,MAAMjD,QAASpM,mBAAoB,CACrC,MAAOA,mBAGT,GAAIwP,SAAUH,MAAMjD,QAASnM,mBAC7B,IAAIwP,SAAUJ,MAAMjD,QAASlM,mBAM7B,IAAIsP,SAAWC,QAAS,CACtB,MAAOzP,mBAIT,GAAIwP,SAAWC,QAAS,CACtB,MAAOD,SAAUvP,mBAAqBC,mBAIxC,GAAImP,MAAMjD,QAASrM,2BAA4B,CAC7C,MAAOA,2BAGT,MAAOD,mBAYT,GAAI4P,aAAc,WAChB,QAASA,aAAY3G,QAASzE,OAC5B2B,eAAe1B,KAAMmL,YAErBnL,MAAKwE,QAAUA,OACfxE,MAAKkF,IAAInF,OAUX8B,YAAYsJ,cACV7K,IAAK,MACLP,MAAO,QAASmF,KAAInF,OAElB,GAAIA,QAAUzE,qBAAsB,CAClCyE,MAAQC,KAAKoL,UAGf,GAAIvQ,qBAAuBmF,KAAKwE,QAAQ6G,QAAQhQ,OAASO,iBAAiBmE,OAAQ,CAChFC,KAAKwE,QAAQ6G,QAAQhQ,MAAMD,uBAAyB2E,MAEtDC,KAAK6H,QAAU9H,MAAMuL,cAAcC,UASrCjL,IAAK,SACLP,MAAO,QAASqF,UACdpF,KAAKkF,IAAIlF,KAAKwE,QAAQI,QAAQO,gBAUhC7E,IAAK,UACLP,MAAO,QAASqL,WACd,GAAIvD,WACJlJ,MAAKqB,KAAKwE,QAAQgH,YAAa,SAAUjH,YACvC,GAAIJ,SAASI,WAAWK,QAAQG,QAASR,aAAc,CACrDsD,QAAUA,QAAQ4D,OAAOlH,WAAWgC,oBAGxC,OAAOyE,mBAAkBnD,QAAQ6D,KAAK,SAUxCpL,IAAK,kBACLP,MAAO,QAAS4L,iBAAgB9F,OAC9B,GAAI+F,UAAW/F,MAAM+F,QAErB,IAAIpE,WAAY3B,MAAM6C,eAGtB,IAAI1I,KAAKwE,QAAQqH,QAAQC,UAAW,CAClCF,SAASG,gBACT,QAGF,GAAIlE,SAAU7H,KAAK6H,OAEnB,IAAImE,SAAUlB,MAAMjD,QAASpM,qBAAuBG,iBAAiBH,kBACrE,IAAIyP,SAAUJ,MAAMjD,QAASlM,sBAAwBC,iBAAiBD,mBACtE,IAAIsP,SAAUH,MAAMjD,QAASnM,sBAAwBE,iBAAiBF,mBAEtE,IAAIsQ,QAAS,CAEX,GAAIC,cAAepG,MAAMe,SAASjM,SAAW,CAC7C,IAAIuR,eAAgBrG,MAAMmC,SAAW,CACrC,IAAImE,gBAAiBtG,MAAMkE,UAAY,GAEvC,IAAIkC,cAAgBC,eAAiBC,eAAgB,CACnD,QAIJ,GAAIlB,SAAWC,QAAS,CAEtB,OAGF,GAAIc,SAAWd,SAAW1D,UAAYtK,sBAAwB+N,SAAWzD,UAAYrK,mBAAoB,CACvG,MAAO6C,MAAKoM,WAAWR,cAW3BtL,IAAK,aACLP,MAAO,QAASqM,YAAWR,UACzB5L,KAAKwE,QAAQqH,QAAQC,UAAY,IACjCF,UAASG,oBAGb,OAAOZ,eAWT,SAASkB,WAAUC,KAAMzJ,QACvB,MAAOyJ,KAAM,CACX,GAAIA,OAASzJ,OAAQ,CACnB,MAAO,MAETyJ,KAAOA,KAAKC,WAEd,MAAO,OAST,QAASC,WAAU5F,UACjB,GAAI6F,gBAAiB7F,SAASjM,MAG9B,IAAI8R,iBAAmB,EAAG,CACxB,OACExE,EAAGpO,MAAM+M,SAAS,GAAG8F,SACrBvE,EAAGtO,MAAM+M,SAAS,GAAG+F,UAIzB,GAAI1E,GAAI,CACR,IAAIE,GAAI,CACR,IAAIzN,GAAI,CACR,OAAOA,EAAI+R,eAAgB,CACzBxE,GAAKrB,SAASlM,GAAGgS,OACjBvE,IAAKvB,SAASlM,GAAGiS,OACjBjS,KAGF,OACEuN,EAAGpO,MAAMoO,EAAIwE,gBACbtE,EAAGtO,MAAMsO,EAAIsE,iBAUjB,QAASG,sBAAqB/G,OAG5B,GAAIe,YACJ,IAAIlM,GAAI,CACR,OAAOA,EAAImL,MAAMe,SAASjM,OAAQ,CAChCiM,SAASlM,IACPgS,QAAS7S,MAAMgM,MAAMe,SAASlM,GAAGgS,SACjCC,QAAS9S,MAAMgM,MAAMe,SAASlM,GAAGiS,SAEnCjS,KAGF,OACEyP,UAAWnQ,MACX4M,SAAUA,SACV0D,OAAQkC,UAAU5F,UAClBsB,OAAQrC,MAAMqC,OACdE,OAAQvC,MAAMuC,QAYlB,QAASyE,UAAS3D,GAAIC,GAAIpH,OACxB,IAAKA,MAAO,CACVA,MAAQ1E,SAEV,GAAI4K,GAAIkB,GAAGpH,MAAM,IAAMmH,GAAGnH,MAAM,GAChC,IAAIoG,GAAIgB,GAAGpH,MAAM,IAAMmH,GAAGnH,MAAM,GAChC,OAAOjI,MAAKgT,MAAM3E,EAAGF,GAAK,IAAMnO,KAAKiT,GAUvC,QAASC,cAAa/E,EAAGE,GACvB,GAAIF,IAAME,EAAG,CACX,MAAOtL,gBAGT,GAAI9C,IAAIkO,IAAMlO,IAAIoO,GAAI,CACpB,MAAOF,GAAI,EAAInL,eAAiBC,gBAElC,MAAOoL,GAAI,EAAInL,aAAeC,eAGhC,QAASgQ,gBAAepB,QAAShG,OAC/B,GAAIyE,QAASzE,MAAMyE,MAInB,IAAI4C,QAASrB,QAAQsB,eACrB,IAAIC,WAAYvB,QAAQuB,aACxB,IAAIC,WAAYxB,QAAQwB,aAExB,IAAIxH,MAAMgB,YAAcpK,aAAe4Q,UAAUxG,YAAclK,UAAW,CACxEyQ,UAAYvB,QAAQuB,WAClBnF,EAAGoF,UAAUnF,QAAU,EACvBC,EAAGkF,UAAUjF,QAAU,EAGzB8E,QAASrB,QAAQsB,aACflF,EAAGqC,OAAOrC,EACVE,EAAGmC,OAAOnC,GAIdtC,MAAMqC,OAASkF,UAAUnF,GAAKqC,OAAOrC,EAAIiF,OAAOjF,EAChDpC,OAAMuC,OAASgF,UAAUjF,GAAKmC,OAAOnC,EAAI+E,OAAO/E,GAWlD,QAASmF,aAAYvD,UAAW9B,EAAGE,GACjC,OACEF,EAAGA,EAAI8B,WAAa,EACpB5B,EAAGA,EAAI4B,WAAa,GAYxB,QAASwD,UAASC,MAAOC,KACvB,MAAOxE,aAAYwE,IAAI,GAAIA,IAAI,GAAInQ,iBAAmB2L,YAAYuE,MAAM,GAAIA,MAAM,GAAIlQ,iBAUxF,QAASoQ,aAAYF,MAAOC,KAC1B,MAAOZ,UAASY,IAAI,GAAIA,IAAI,GAAInQ,iBAAmBuP,SAASW,MAAM,GAAIA,MAAM,GAAIlQ,iBASlF,QAASqQ,0BAAyB9B,QAAShG,OACzC,GAAI+H,MAAO/B,QAAQgC,cAAgBhI,KACnC,IAAIkE,WAAYlE,MAAMsE,UAAYyD,KAAKzD,SACvC,IAAI7B,cAAgB,EACpB,IAAIwF,eAAiB,EACrB,IAAIC,eAAiB,EACrB,IAAIvG,eAAiB,EAErB,IAAI3B,MAAMgB,YAAcjK,eAAiBmN,UAAYvN,kBAAoBoR,KAAKtF,WAAajP,WAAY,CACrG,GAAI6O,QAASrC,MAAMqC,OAAS0F,KAAK1F,MACjC,IAAIE,QAASvC,MAAMuC,OAASwF,KAAKxF,MAEjC,IAAI4F,GAAIV,YAAYvD,UAAW7B,OAAQE,OACvC0F,WAAYE,EAAE/F,CACd8F,WAAYC,EAAE7F,CACdG,UAAWvO,IAAIiU,EAAE/F,GAAKlO,IAAIiU,EAAE7F,GAAK6F,EAAE/F,EAAI+F,EAAE7F,CACzCX,WAAYwF,aAAa9E,OAAQE,OAEjCyD,SAAQgC,aAAehI,UAClB,CAELyC,SAAWsF,KAAKtF,QAChBwF,WAAYF,KAAKE,SACjBC,WAAYH,KAAKG,SACjBvG,WAAYoG,KAAKpG,UAGnB3B,MAAMyC,SAAWA,QACjBzC,OAAMiI,UAAYA,SAClBjI,OAAMkI,UAAYA,SAClBlI,OAAM2B,UAAYA,UASpB,QAASyG,kBAAiBzJ,QAASqB,OACjC,GAAIgG,SAAUrH,QAAQqH,OACtB,IAAIjF,UAAWf,MAAMe,QACrB,IAAI6F,gBAAiB7F,SAASjM,MAI9B,KAAKkR,QAAQqC,WAAY,CACvBrC,QAAQqC,WAAatB,qBAAqB/G,OAI5C,GAAI4G,eAAiB,IAAMZ,QAAQsC,cAAe,CAChDtC,QAAQsC,cAAgBvB,qBAAqB/G,WACxC,IAAI4G,iBAAmB,EAAG,CAC/BZ,QAAQsC,cAAgB,MAG1B,GAAID,YAAarC,QAAQqC,UACzB,IAAIC,eAAgBtC,QAAQsC,aAE5B,IAAIC,cAAeD,cAAgBA,cAAc7D,OAAS4D,WAAW5D,MAErE,IAAIA,QAASzE,MAAMyE,OAASkC,UAAU5F,SACtCf,OAAMsE,UAAYnQ,KAClB6L,OAAMkE,UAAYlE,MAAMsE,UAAY+D,WAAW/D,SAE/CtE,OAAMwI,MAAQxB,SAASuB,aAAc9D,OACrCzE,OAAMmC,SAAWiB,YAAYmF,aAAc9D,OAE3C2C,gBAAepB,QAAShG,MACxBA,OAAM6C,gBAAkBsE,aAAanH,MAAMqC,OAAQrC,MAAMuC,OAEzD,IAAIG,iBAAkB+E,YAAYzH,MAAMkE,UAAWlE,MAAMqC,OAAQrC,MAAMuC,OACvEvC,OAAM2C,iBAAmBD,gBAAgBN,CACzCpC,OAAM4C,iBAAmBF,gBAAgBJ,CACzCtC,OAAM0C,gBAAkBxO,IAAIwO,gBAAgBN,GAAKlO,IAAIwO,gBAAgBJ,GAAKI,gBAAgBN,EAAIM,gBAAgBJ,CAE9GtC,OAAMwB,MAAQ8G,cAAgBZ,SAASY,cAAcvH,SAAUA,UAAY,CAC3Ef,OAAMqB,SAAWiH,cAAgBT,YAAYS,cAAcvH,SAAUA,UAAY,CAEjFf,OAAM8C,aAAekD,QAAQwB,UAAYxH,MAAMe,SAASjM,OAASkL,MAAMe,SAASjM,OAASkR,QAAQwB,UAAU1E,YAAc9C,MAAMe,SAASjM,OAASkR,QAAQwB,UAAU1E,WAEnKgF,0BAAyB9B,QAAShG,MAGlC,IAAI7H,QAASwG,QAAQ6G,OACrB,IAAIgB,UAAUxG,MAAM+F,SAAS5N,OAAQA,QAAS,CAC5CA,OAAS6H,MAAM+F,SAAS5N,OAE1B6H,MAAM7H,OAASA,OAUjB,QAASsQ,cAAa9J,QAASqC,UAAWhB,OACxC,GAAI0I,aAAc1I,MAAMe,SAASjM,MACjC,IAAI6T,oBAAqB3I,MAAM4I,gBAAgB9T,MAC/C,IAAI+T,SAAU7H,UAAYpK,aAAe8R,YAAcC,qBAAuB,CAC9E,IAAIG,SAAU9H,WAAalK,UAAYC,eAAiB2R,YAAcC,qBAAuB,CAE7F3I,OAAM6I,UAAYA,OAClB7I,OAAM8I,UAAYA,OAElB,IAAID,QAAS,CACXlK,QAAQqH,WAKVhG,MAAMgB,UAAYA,SAGlBoH,kBAAiBzJ,QAASqB,MAG1BrB,SAAQoB,KAAK,eAAgBC,MAE7BrB,SAAQ0B,UAAUL,MAClBrB,SAAQqH,QAAQwB,UAAYxH,MAU9B,QAAS+I,UAAS7D,KAChB,MAAOA,KAAIQ,OAAOsD,MAAM,QAU1B,QAASC,mBAAkB9Q,OAAQ+Q,MAAOC,SACxCrQ,KAAKiQ,SAASG,OAAQ,SAAU7N,MAC9BlD,OAAOiR,iBAAiB/N,KAAM8N,QAAS,SAW3C,QAASE,sBAAqBlR,OAAQ+Q,MAAOC,SAC3CrQ,KAAKiQ,SAASG,OAAQ,SAAU7N,MAC9BlD,OAAOmR,oBAAoBjO,KAAM8N,QAAS,SAU9C,QAASI,qBAAoB/D,SAC3B,GAAIgE,KAAMhE,QAAQiE,eAAiBjE,OACnC,OAAOgE,KAAIE,aAAeF,IAAIG,cAAgBtW,OAYhD,GAAIuW,OAAQ,WACV,QAASA,OAAMjL,QAASkL,UACtBhO,eAAe1B,KAAMyP,MAErB,IAAIlM,MAAOvD,IACXA,MAAKwE,QAAUA,OACfxE,MAAK0P,SAAWA,QAChB1P,MAAKqL,QAAU7G,QAAQ6G,OACvBrL,MAAKhC,OAASwG,QAAQI,QAAQ+K,WAI9B3P,MAAK4P,WAAa,SAAUC,IAC1B,GAAI1L,SAASK,QAAQI,QAAQG,QAASP,UAAW,CAC/CjB,KAAKyL,QAAQa,KAIjB7P,MAAK8P,OASPjO,YAAY4N,QACVnP,IAAK,UACLP,MAAO,QAASiP,eAQhB1O,IAAK,OACLP,MAAO,QAAS+P,QACd9P,KAAK+P,MAAQjB,kBAAkB9O,KAAKqL,QAASrL,KAAK+P,KAAM/P,KAAK4P,WAC7D5P,MAAKgQ,UAAYlB,kBAAkB9O,KAAKhC,OAAQgC,KAAKgQ,SAAUhQ,KAAK4P,WACpE5P,MAAKiQ,OAASnB,kBAAkBM,oBAAoBpP,KAAKqL,SAAUrL,KAAKiQ,MAAOjQ,KAAK4P,eAStFtP,IAAK,UACLP,MAAO,QAASmQ,WACdlQ,KAAK+P,MAAQb,qBAAqBlP,KAAKqL,QAASrL,KAAK+P,KAAM/P,KAAK4P,WAChE5P,MAAKgQ,UAAYd,qBAAqBlP,KAAKhC,OAAQgC,KAAKgQ,SAAUhQ,KAAK4P,WACvE5P,MAAKiQ,OAASf,qBAAqBE,oBAAoBpP,KAAKqL,SAAUrL,KAAKiQ,MAAOjQ,KAAK4P,eAG3F,OAAOH,SAGT,IAAIU,oBACFC,YAAa3T,YACb4T,YAAa3T,WACb4T,UAAW3T,UACX4T,cAAe3T,aACf4T,WAAY5T,aAId,IAAI6T,yBACFC,EAAGtU,iBACHuU,EAAGtU,eACHuU,EAAGtU,iBACHuU,EAAGtU,kBAGL,IAAIuU,wBAAyB,aAC7B,IAAIC,uBAAwB,qCAG5B,IAAI7X,OAAO8X,iBAAmB9X,OAAO+X,aAAc,CACjDH,uBAAyB,eACzBC,uBAAwB,4CAU1B,GAAIG,mBAAoB,SAAUC,QAChCnO,SAASkO,kBAAmBC,OAE5B,SAASD,qBACPxP,eAAe1B,KAAMkR,kBAErB,IAAIxJ,OAAQpE,0BAA0BtD,MAAOkR,kBAAkB7N,WAAatF,OAAO+E,eAAeoO,oBAAoB1P,MAAMxB,KAAM5B,WAElIsJ,OAAMqI,KAAOe,sBACbpJ,OAAMuI,MAAQc,qBAEdrJ,OAAM0J,MAAQ1J,MAAMlD,QAAQqH,QAAQwF,gBACpC,OAAO3J,OAUT7F,YAAYqP,oBACV5Q,IAAK,UACLP,MAAO,QAASiP,SAAQa,IACtB,GAAIuB,OAAQpR,KAAKoR,KAEjB,IAAIE,eAAgB,KAEpB,IAAIC,qBAAsB1B,GAAG3O,KAAKoK,cAAckG,QAAQ,KAAM,GAC9D,IAAI3K,WAAYsJ,kBAAkBoB,oBAClC,IAAIE,aAAchB,uBAAuBZ,GAAG4B,cAAgB5B,GAAG4B,WAE/D,IAAIC,SAAUD,cAAgBrV,gBAG9B,IAAIuV,YAAavS,QAAQgS,MAAOvB,GAAG+B,UAAW,YAG9C,IAAI/K,UAAYpK,cAAgBoT,GAAGgC,SAAW,GAAKH,SAAU,CAC3D,GAAIC,WAAa,EAAG,CAClBP,MAAMlN,KAAK2L,GACX8B,YAAaP,MAAMzW,OAAS,OAEzB,IAAIkM,WAAalK,UAAYC,cAAe,CACjD0U,cAAgB,KAIlB,GAAIK,WAAa,EAAG,CAClB,OAIFP,MAAMO,YAAc9B,EAEpB7P,MAAK0P,SAAS1P,KAAKwE,QAASqC,WAC1BD,SAAUwK,MACV3C,iBAAkBoB,IAClB4B,YAAaA,YACb7F,SAAUiE,IAGZ,IAAIyB,cAAe,CAEjBF,MAAM3L,OAAOkM,WAAY,OAI/B,OAAOT,oBACPzB,MAQF,SAASqC,WAAU3X,KACjB,MAAO+E,OAAMU,UAAUnF,MAAMqE,KAAK3E,IAAK,GAWzC,QAAS4X,aAAY1S,IAAKiB,IAAK0R,MAC7B,GAAIC,WACJ,IAAIC,UACJ,IAAIxX,GAAI,CAER,OAAOA,EAAI2E,IAAI1E,OAAQ,CACrB,GAAIQ,KAAMmF,IAAMjB,IAAI3E,GAAG4F,KAAOjB,IAAI3E,EAClC,IAAI0E,QAAQ8S,OAAQ/W,KAAO,EAAG,CAC5B8W,QAAQ/N,KAAK7E,IAAI3E,IAEnBwX,OAAOxX,GAAKS,GACZT,KAGF,GAAIsX,KAAM,CACR,IAAK1R,IAAK,CACR2R,QAAUA,QAAQD,WACb,CACLC,QAAUA,QAAQD,KAAK,SAAUG,EAAGC,GAClC,MAAOD,GAAE7R,KAAO8R,EAAE9R,QAKxB,MAAO2R,SAGT,GAAII,kBACFC,WAAY7V,YACZ8V,UAAW7V,WACX8V,SAAU7V,UACV8V,YAAa7V,aAGf,IAAI8V,qBAAsB,2CAS1B,IAAIC,YAAa,SAAUxB,QACzBnO,SAAS2P,WAAYxB,OAErB,SAASwB,cACPjR,eAAe1B,KAAM2S,WAErBA,YAAW/S,UAAUoQ,SAAW0C;AAChCC,WAAW/S,UAAUgT,YAErB,IAAIlL,OAAQpE,0BAA0BtD,MAAO2S,WAAWtP,WAAatF,OAAO+E,eAAe6P,aAAanR,MAAMxB,KAAM5B,WAEpHsJ,OAAMsI,SAAW0C,mBACjBhL,OAAMkL,YACN,OAAOlL,OAGT7F,YAAY8Q,aACVrS,IAAK,UACLP,MAAO,QAASiP,SAAQa,IACtB,GAAI3O,MAAOmR,gBAAgBxC,GAAG3O,KAC9B,IAAI2R,SAAUC,WAAWhU,KAAKkB,KAAM6P,GAAI3O,KACxC,KAAK2R,QAAS,CACZ,OAGF7S,KAAK0P,SAAS1P,KAAKwE,QAAStD,MAC1B0F,SAAUiM,QAAQ,GAClBpE,gBAAiBoE,QAAQ,GACzBpB,YAAarV,iBACbwP,SAAUiE,QAIhB,OAAO8C,aACPlD,MAEF,SAASqD,YAAWjD,GAAI3O,MACtB,GAAI6R,YAAajB,UAAUjC,GAAGgD,QAC9B,IAAID,WAAY5S,KAAK4S,SAIrB,IAAI1R,MAAQzE,YAAcC,aAAeqW,WAAWpY,SAAW,EAAG,CAChEiY,UAAUG,WAAW,GAAGC,YAAc,IACtC,QAAQD,WAAYA,YAGtB,GAAIrY,OAAS,EACb,IAAIuY,mBAAqB,EACzB,IAAIC,gBAAiBpB,UAAUjC,GAAGqD,eAClC,IAAIC,wBACJ,IAAInV,QAASgC,KAAKhC,MAIlBiV,eAAgBF,WAAWK,OAAO,SAAUC,OAC1C,MAAOhH,WAAUgH,MAAMrV,OAAQA,SAIjC,IAAIkD,OAASzE,YAAa,CACxB/B,EAAI,CACJ,OAAOA,EAAIuY,cAActY,OAAQ,CAC/BiY,UAAUK,cAAcvY,GAAGsY,YAAc,IACzCtY,MAKJA,EAAI,CACJ,OAAOA,EAAIwY,eAAevY,OAAQ,CAChC,GAAIiY,UAAUM,eAAexY,GAAGsY,YAAa,CAC3CG,qBAAqBjP,KAAKgP,eAAexY,IAI3C,GAAIwG,MAAQvE,UAAYC,cAAe,OAC9BgW,WAAUM,eAAexY,GAAGsY,YAErCtY,IAGF,IAAKyY,qBAAqBxY,OAAQ,CAChC,OAGF,OAEAoX,YAAYkB,cAAcxH,OAAO0H,sBAAuB,aAAc,MAAOA,sBAG/E,GAAIG,kBACFC,UAAW9W,YACX+W,UAAW9W,WACX+W,QAAS9W,UAGX,IAAI+W,sBAAuB,WAC3B,IAAIC,qBAAsB,mBAS1B,IAAIC,YAAa,SAAUzC,QACzBnO,SAAS4Q,WAAYzC,OAErB,SAASyC,cACPlS,eAAe1B,KAAM4T,WAErB,IAAIlM,OAAQpE,0BAA0BtD,MAAO4T,WAAWvQ,WAAatF,OAAO+E,eAAe8Q,aAAapS,MAAMxB,KAAM5B,WAEpHsJ,OAAMqI,KAAO2D,oBACbhM,OAAMuI,MAAQ0D,mBAEdjM,OAAMmM,QAAU,KAChB,OAAOnM,OAUT7F,YAAY+R,aACVtT,IAAK,UACLP,MAAO,QAASiP,SAAQa,IACtB,GAAIhJ,WAAYyM,gBAAgBzD,GAAG3O,KAGnC,IAAI2F,UAAYpK,aAAeoT,GAAGgC,SAAW,EAAG,CAC9C7R,KAAK6T,QAAU,KAGjB,GAAIhN,UAAYnK,YAAcmT,GAAGiE,QAAU,EAAG,CAC5CjN,UAAYlK,UAId,IAAKqD,KAAK6T,QAAS,CACjB,OAGF,GAAIhN,UAAYlK,UAAW,CACzBqD,KAAK6T,QAAU,MAGjB7T,KAAK0P,SAAS1P,KAAKwE,QAASqC,WAC1BD,UAAWiJ,IACXpB,iBAAkBoB,IAClB4B,YAAanV,iBACbsP,SAAUiE,QAIhB,OAAO+D,aACPnE,MAaF,IAAIsE,eAAgB,IACpB,IAAIC,gBAAiB,EAErB,IAAIC,iBAAkB,SAAU9C,QAC9BnO,SAASiR,gBAAiB9C,OAE1B,SAAS8C,mBACPvS,eAAe1B,KAAMiU,gBAErB,IAAIvM,OAAQpE,0BAA0BtD,MAAOiU,gBAAgB5Q,WAAatF,OAAO+E,eAAemR,kBAAkBzS,MAAMxB,KAAM5B,WAE9H,IAAI4Q,SAAUpG,OAAOlB,MAAMsH,QAAStH,MACpCA,OAAM2L,MAAQ,GAAIV,YAAWjL,MAAMlD,QAASwK,QAC5CtH,OAAMwM,MAAQ,GAAIN,YAAWlM,MAAMlD,QAASwK,QAE5CtH,OAAMyM,aAAe,IACrBzM,OAAM0M,cACN,OAAO1M,OAYT7F,YAAYoS,kBACV3T,IAAK,UACLP,MAAO,QAASiP,SAAQxK,QAAS6P,WAAYlO,WAC3C,GAAIuL,SAAUvL,UAAUsL,cAAgBrV,gBACxC,IAAIkY,SAAUnO,UAAUsL,cAAgBnV,gBAExC,IAAIgY,SAAWnO,UAAUoO,oBAAsBpO,UAAUoO,mBAAmBC,iBAAkB,CAC5F,OAIF,GAAI9C,QAAS,CACX+C,cAAc3V,KAAKkB,KAAMqU,WAAYlO,eAChC,IAAImO,SAAWI,iBAAiB5V,KAAKkB,KAAMmG,WAAY,CAC5D,OAGFnG,KAAK0P,SAASlL,QAAS6P,WAAYlO,cASrC7F,IAAK,UACLP,MAAO,QAASmQ,WACdlQ,KAAKqT,MAAMnD,SACXlQ,MAAKkU,MAAMhE,aAGf,OAAO+D,kBACPxE,MAEF,SAASgF,eAAc5N,UAAW8N,WAChC,GAAI9N,UAAYpK,YAAa,CAC3BuD,KAAKmU,aAAeQ,UAAUlG,gBAAgB,GAAGuE,UACjD4B,cAAa9V,KAAKkB,KAAM2U,eACnB,IAAI9N,WAAalK,UAAYC,cAAe,CACjDgY,aAAa9V,KAAKkB,KAAM2U,YAI5B,QAASC,cAAaD,WACpB,GAAIhL,QAAS3J,IAEb,IAAI6U,uBAAwBpR,cAAckR,UAAUlG,gBAAiB,EAErE,IAAI4E,OAAQwB,sBAAsB,EAElC,IAAIxB,MAAML,aAAehT,KAAKmU,aAAc,EAC1C,WACE,GAAIW,YAAc7M,EAAGoL,MAAM3G,QAASvE,EAAGkL,MAAM1G,QAC7ChD,QAAOyK,YAAYlQ,KAAK4Q,UACxB,IAAIC,KAAMpL,OAAOyK,WACjB,IAAIY,iBAAkB,QAASA,mBAC7B,GAAIta,GAAIqa,IAAIvV,QAAQsV,UACpB,IAAIpa,GAAK,EAAG,CACVqa,IAAItP,OAAO/K,EAAG,IAGlBsO,YAAWgM,gBAAiBjB,oBAKlC,QAASW,kBAAiBC,WACxB,GAAI1M,GAAI0M,UAAU/I,SAASc,OAC3B,IAAIvE,GAAIwM,UAAU/I,SAASe,OAC3B,KAAK,GAAIjS,GAAI,EAAGA,EAAIsF,KAAKoU,YAAYzZ,OAAQD,IAAK,CAChD,GAAIua,GAAIjV,KAAKoU,YAAY1Z,EACzB,IAAIwa,IAAKpb,KAAKC,IAAIkO,EAAIgN,EAAEhN,EACxB,IAAIkN,IAAKrb,KAAKC,IAAIoO,EAAI8M,EAAE9M,EACxB,IAAI+M,IAAMlB,gBAAkBmB,IAAMnB,eAAgB,CAChD,MAAO,OAGX,MAAO,OAUT,QAASoB,qBAAoB5Q,SAC3B,GAAI6Q,UAAY,EAEhB,IAAIC,YAAa9Q,QAAQI,QAAQ0Q,UAEjC,IAAIA,WAAY,CACdD,KAAOC,eACF,IAAIvZ,uBAAwB,CACjCsZ,KAAOnE,sBACF,IAAIlV,mBAAoB,CAC7BqZ,KAAO1C,eACF,KAAK7W,cAAe,CACzBuZ,KAAOzB,eACF,CACLyB,KAAOpB,gBAET,MAAO,IAAIoB,MAAK7Q,QAAS8J,cAG3B,GAAIiH,MAAO,CACX,IAAIC,aAAc,CAUlB,IAAIC,SAAU,WACZ,QAASA,SAAQpK,QAASzG,SACxB,GAAI8C,OAAQ1H,IAEZ0B,gBAAe1B,KAAMyV,QAErBzV,MAAK4E,QAAUpG,YAAakX,OAAO7Q,SAAUD,YAE7C5E,MAAK4E,QAAQ+K,YAAc3P,KAAK4E,QAAQ+K,aAAetE,OAEvDrL,MAAK2V,WACL3V,MAAK6L,UACL7L,MAAKwL,cACLxL,MAAK4V,cAEL5V,MAAKqL,QAAUA,OACfrL,MAAK6F,MAAQuP,oBAAoBpV,KACjCA,MAAKmF,YAAc,GAAIgG,aAAYnL,KAAMA,KAAK4E,QAAQO,YAEtD0Q,gBAAe7V,KAAM,KAErBrB,MAAKqB,KAAK4E,QAAQ4G,YAAa,SAAUsK,MACvC,GAAIvR,YAAamD,MAAMqO,IAAI,GAAID,MAAK,GAAGA,KAAK,IAC5CA,MAAK,IAAMvR,WAAWc,cAAcyQ,KAAK,GACzCA,MAAK,IAAMvR,WAAWgB,eAAeuQ,KAAK,KACzC9V,MAWL6B,YAAY4T,UACVnV,IAAK,MACLP,MAAO,QAASmF,KAAIN,SAClBpG,SAASwB,KAAK4E,QAASA,QAGvB,IAAIA,QAAQO,YAAa,CACvBnF,KAAKmF,YAAYC,SAEnB,GAAIR,QAAQ+K,YAAa,CAEvB3P,KAAK6F,MAAMqK,SACXlQ,MAAK6F,MAAM7H,OAAS4G,QAAQ+K,WAC5B3P,MAAK6F,MAAMiK,OAEb,MAAO9P,SAYTM,IAAK,OACLP,MAAO,QAASiW,MAAKC,OACnBjW,KAAK6L,QAAQqK,QAAUD,MAAQT,YAAcD,QAY/CjV,IAAK,YACLP,MAAO,QAASmG,WAAUC,WACxB,GAAI0F,SAAU7L,KAAK6L,OAEnB,IAAIA,QAAQqK,QAAS,CACnB,OAIFlW,KAAKmF,YAAYwG,gBAAgBxF,UAEjC,IAAI5B,gBAAkB,EACtB,IAAIiH,aAAcxL,KAAKwL,WAMvB,IAAI2K,eAAgBtK,QAAQsK,aAK5B,KAAKA,eAAiBA,eAAiBA,cAAczR,MAAQ/G,iBAAkB,CAC7EwY,cAAgBtK,QAAQsK,cAAgB,KAG1C,GAAIzb,GAAI,CACR,OAAOA,EAAI8Q,YAAY7Q,OAAQ,CAC7B4J,WAAaiH,YAAY9Q,EAQzB,IAAImR,QAAQqK,UAAYV,eACvBW,eAAiB5R,aAAe4R,eACjC5R,WAAWoB,iBAAiBwQ,gBAAiB,CAE3C5R,WAAW2B,UAAUC,eAChB,CACL5B,WAAW8B,QAKb,IAAK8P,eAAiB5R,WAAWG,OAASlH,YAAcC,cAAgBC,aAAc,CACpFyY,cAAgBtK,QAAQsK,cAAgB5R,WAE1C7J,QAYJ4F,IAAK,MACLP,MAAO,QAASwC,KAAIgC,YAClB,GAAIA,qBAAsBI,YAAY,CACpC,MAAOJ,YAGT,GAAIiH,aAAcxL,KAAKwL,WAEvB,KAAK,GAAI9Q,GAAI,EAAGA,EAAI8Q,YAAY7Q,OAAQD,IAAK,CAC3C,GAAI8Q,YAAY9Q,GAAGkK,QAAQkB,QAAUvB,WAAY,CAC/C,MAAOiH,aAAY9Q,IAGvB,MAAO,SAWT4F,IAAK,MACLP,MAAO,QAASgW,KAAIxR,YAClB,GAAIxF,eAAewF,WAAY,MAAOvE,MAAO,CAC3C,MAAOA,MAIT,GAAIoW,UAAWpW,KAAKuC,IAAIgC,WAAWK,QAAQkB,MAC3C,IAAIsQ,SAAU,CACZpW,KAAKqW,OAAOD,UAGdpW,KAAKwL,YAAYtH,KAAKK,WACtBA,YAAWC,QAAUxE,IAErBA,MAAKmF,YAAYC,QACjB,OAAOb,eAWTjE,IAAK,SACLP,MAAO,QAASsW,QAAO9R,YACrB,GAAIxF,eAAewF,WAAY,SAAUvE,MAAO,CAC9C,MAAOA,MAGTuE,WAAavE,KAAKuC,IAAIgC,WAGtB,IAAIA,WAAY,CACd,GAAIiH,aAAcxL,KAAKwL,WAEvB,IAAIrN,OAAQiB,QAAQoM,YAAajH,WAEjC,IAAIpG,SAAW,EAAG,CAChBqN,YAAY/F,OAAOtH,MAAO,EAC1B6B,MAAKmF,YAAYC,UAIrB,MAAOpF,SAYTM,IAAK,KACLP,MAAO,QAASuW,IAAGC,OAAQvH,SACzB,GAAIuH,SAAWld,UAAW,CACxB,OAEF,GAAI2V,UAAY3V,UAAW,CACzB,OAGF,GAAIsc,UAAW3V,KAAK2V,QAEpBhX,MAAKiQ,SAAS2H,QAAS,SAAUzQ,OAC/B6P,SAAS7P,OAAS6P,SAAS7P,UAC3B6P,UAAS7P,OAAO5B,KAAK8K,UAEvB,OAAOhP,SAWTM,IAAK,MACLP,MAAO,QAASyW,KAAID,OAAQvH,SAC1B,GAAIuH,SAAWld,UAAW,CACxB,OAGF,GAAIsc,UAAW3V,KAAK2V,QAEpBhX,MAAKiQ,SAAS2H,QAAS,SAAUzQ,OAC/B,IAAKkJ,QAAS,OACL2G,UAAS7P,WACX,CACL6P,SAAS7P,QAAU6P,SAAS7P,OAAOL,OAAOrG,QAAQuW,SAAS7P,OAAQkJ,SAAU,KAGjF,OAAOhP,SAUTM,IAAK,OACLP,MAAO,QAAS6F,MAAKE,MAAO2Q,MAE1B,GAAIzW,KAAK4E,QAAQ8R,UAAW,CAC1BC,gBAAgB7Q,MAAO2Q,MAIzB,GAAId,UAAW3V,KAAK2V,SAAS7P,QAAU9F,KAAK2V,SAAS7P,OAAOrL,OAC5D,KAAKkb,WAAaA,SAAShb,OAAQ,CACjC,OAGF8b,KAAKvV,KAAO4E,KACZ2Q,MAAK1K,eAAiB,WACpB0K,KAAK7K,SAASG,iBAGhB,IAAIrR,GAAI,CACR,OAAOA,EAAIib,SAAShb,OAAQ,CAC1Bgb,SAASjb,GAAG+b,KACZ/b,SAWJ4F,IAAK,UACLP,MAAO,QAASmQ,WACdlQ,KAAKqL,SAAWwK,eAAe7V,KAAM,MAErCA,MAAK2V,WACL3V,MAAK6L,UACL7L,MAAK6F,MAAMqK,SACXlQ,MAAKqL,QAAU,QAGnB,OAAOoK,WAGT,SAASI,gBAAerR,QAASuR,KAC/B,GAAI1K,SAAU7G,QAAQ6G,OAEtB,KAAKA,QAAQhQ,MAAO,CAClB,OAEF,GAAIf,UAAY,EAChBqE,MAAK6F,QAAQI,QAAQgS,SAAU,SAAU7W,MAAO8W,MAC9Cvc,KAAOJ,SAASmR,QAAQhQ,MAAOwb,KAC/B,IAAId,IAAK,CACPvR,QAAQoR,YAAYtb,MAAQ+Q,QAAQhQ,MAAMf,KAC1C+Q,SAAQhQ,MAAMf,MAAQyF,UACjB,CACLsL,QAAQhQ,MAAMf,MAAQkK,QAAQoR,YAAYtb,OAAS,KAGvD,KAAKyb,IAAK,CACRvR,QAAQoR,gBAUZ,QAASe,iBAAgB7Q,MAAO2Q,MAC9B,GAAIK,cAAe3d,SAAS4d,YAAY,QACxCD,cAAaE,UAAUlR,MAAO,KAAM,KACpCgR,cAAaG,QAAUR,IACvBA,MAAKzY,OAAOkZ,cAAcJ,cAW5B,GAAIpB,QAAS,QAASA,QAAOrK,QAASzG,SACpClD,eAAe1B,KAAM0V,OAErB9Q,SAAUA,WACVA,SAAQ4G,YAAclS,YAAYsL,QAAQ4G,YAAakK,OAAO7Q,SAASsS,OACvE,OAAO,IAAI1B,SAAQpK,QAASzG,SAG9B8Q,QAAO0B,QAAU,OAOjB1B,QAAO7Q,UAQL6R,UAAW,MASXvR,YAAa7J,qBAObyJ,OAAQ,KAUR4K,YAAa,KAQb2F,WAAY,KAQZ6B,SAECnQ,kBAAoBjC,OAAQ,SAAWqC,iBAAmBrC,OAAQ,QAAU,YAAasD,iBAAmBb,UAAWtK,wBAA0BuK,eAAiBD,UAAWtK,uBAAyB,WAAYmM,gBAAiBA,eAAiBvD,MAAO,YAAa2E,KAAM,IAAM,SAAUG,kBAQ/RgM,UAOES,WAAY,OAQZC,YAAa,OAUbC,aAAc,OAQdC,eAAgB,OAQhBC,SAAU,OASVC,kBAAmB,iBAIvB,IAAIC,yBACFrF,WAAY7V,YACZ8V,UAAW7V,WACX8V,SAAU7V,UACV8V,YAAa7V,aAGf,IAAIgb,4BAA6B,YACjC,IAAIC,4BAA6B,2CASjC,IAAIC,kBAAmB,SAAU3G,QAC/BnO,SAAS8U,iBAAkB3G,OAE3B,SAAS2G,oBACPpW,eAAe1B,KAAM8X,iBAErB,IAAIpQ,OAAQpE,0BAA0BtD,MAAO8X,iBAAiBzU,WAAatF,OAAO+E,eAAegV,mBAAmBtW,MAAMxB,KAAM5B,WAEhIsJ,OAAMsI,SAAW4H,0BACjBlQ,OAAMuI,MAAQ4H,0BACdnQ,OAAMqQ,QAAU,KAEhBtI,OAAMjO,MAAMkG,MAAOtJ,UACnB,OAAOsJ,OAGT7F,YAAYiW,mBACVxX,IAAK,UACLP,MAAO,QAASiP,SAAQa,IACtB,GAAI3O,MAAOyW,uBAAuB9H,GAAG3O,KAGrC,IAAIA,OAASzE,YAAa,CACxBuD,KAAK+X,QAAU,KAGjB,IAAK/X,KAAK+X,QAAS,CACjB,OAGF,GAAIlF,SAAUmF,uBAAuBlZ,KAAKkB,KAAM6P,GAAI3O,KAGpD,IAAIA,MAAQvE,UAAYC,eAAiBiW,QAAQ,GAAGlY,OAASkY,QAAQ,GAAGlY,SAAW,EAAG,CACpFqF,KAAK+X,QAAU,MAGjB/X,KAAK0P,SAAS1P,KAAKwE,QAAStD,MAC1B0F,SAAUiM,QAAQ,GAClBpE,gBAAiBoE,QAAQ,GACzBpB,YAAarV,iBACbwP,SAAUiE,QAIhB,OAAOiI,mBACPrI,MAEF,SAASuI,wBAAuBnI,GAAI3O,MAClC,GAAI+W,KAAMnG,UAAUjC,GAAGgD,QACvB,IAAIqF,SAAUpG,UAAUjC,GAAGqD,eAE3B,IAAIhS,MAAQvE,UAAYC,cAAe,CACrCqb,IAAMlG,YAAYkG,IAAIxM,OAAOyM,SAAU,aAAc,MAGvD,OAAQD,IAAKC,SAWf,QAASC,WAAUC,OAAQvB,KAAMwB,SAC/B,GAAIC,oBAAqB,sBAAwBzB,KAAO,KAAOwB,QAAU,QACzE,OAAO,YACL,GAAIE,GAAI,GAAIC,OAAM,kBAClB,IAAIC,OAAQF,GAAKA,EAAEE,MAAQF,EAAEE,MAAMjH,QAAQ,kBAAmB,IAAIA,QAAQ,cAAe,IAAIA,QAAQ,6BAA8B,kBAAoB,qBAEvJ,IAAIkH,KAAMxf,OAAOyf,UAAYzf,OAAOyf,QAAQC,MAAQ1f,OAAOyf,QAAQD,IACnE,IAAIA,IAAK,CACPA,IAAI5Z,KAAK5F,OAAOyf,QAASL,mBAAoBG,OAE/C,MAAOL,QAAO5W,MAAMxB,KAAM5B,YAa9B,GAAIya,QAASV,UAAU,SAAUW,KAAMzZ,IAAK0Z,OAC1C,GAAIC,MAAOjb,OAAOib,KAAK3Z,IACvB,IAAI3E,GAAI,CACR,OAAOA,EAAIse,KAAKre,OAAQ,CACtB,IAAKoe,OAASA,OAASD,KAAKE,KAAKte,MAAQrB,UAAW,CAClDyf,KAAKE,KAAKte,IAAM2E,IAAI2Z,KAAKte,IAE3BA,IAEF,MAAOoe,OACN,SAAU,gBAUb,IAAIC,OAAQZ,UAAU,SAAUW,KAAMzZ,KACpC,MAAOwZ,QAAOC,KAAMzZ,IAAK,OACxB,QAAS,gBASZ,SAAS4Z,SAAQC,MAAOC,KAAMC,YAC5B,GAAIC,OAAQF,KAAKvZ,SACjB,IAAI0Z,YAAc,EAElBA,QAASJ,MAAMtZ,UAAY7B,OAAOoF,OAAOkW,MACzCC,QAAO3Z,YAAcuZ,KACrBI,QAAOC,OAASF,KAEhB,IAAID,WAAY,CACd5a,SAAS8a,OAAQF,aAOrB5a,SAASkX,QACPjZ,YAAaA,YACbC,WAAYA,WACZC,UAAWA,UACXC,aAAcA,aAEdW,eAAgBA,eAChBC,YAAaA,YACbC,cAAeA,cACfC,YAAaA,YACbC,iBAAkBA,iBAClBC,gBAAiBA,gBACjBC,aAAcA,aAEdhB,eAAgBA,eAChBC,eAAgBA,eAChBC,gBAAiBA,gBACjBC,aAAcA,aACdC,eAAgBA,eAChBC,qBAAsBA,qBACtBC,mBAAoBA,mBACpBC,cAAeA,cAEfqY,QAASA,QACThG,MAAOA,MACPtE,YAAaA,YAEbwH,WAAYA,WACZiB,WAAYA,WACZ1C,kBAAmBA,kBACnB+C,gBAAiBA,gBACjB6D,iBAAkBA,iBAElBnT,WAAYA,WACZ6B,eAAgBA,eAChBgT,IAAKnQ,cACLoQ,IAAKhS,cACLiS,MAAOrR,gBACPsR,MAAOvS,gBACPwS,OAAQ5S,iBACR6S,MAAOjP,gBAEP0L,GAAIxH,kBACJ0H,IAAKtH,qBACLvQ,KAAMA,KACNoa,MAAOA,MACPF,OAAQA,OACR/a,OAAQU,SACRya,QAASA,QACTrQ,OAAQA,OACR1O,SAAUA,SACV4f,QAAShI,UACT1S,QAASA,QACT2S,YAAaA,YACbnD,SAAUA,SACVzK,SAAUA,SACVkI,UAAWA,UACXyC,kBAAmBA,kBACnBI,qBAAsBA,sBAIxB,UAAW6K,UAAW,YAAcA,OAAOC,IAAK,CAC9CD,OAAO,WACL,MAAOrE,cAEJ,UAAWuE,UAAW,aAAeA,OAAOC,QAAS,CAC1DD,OAAOC,QAAUxE,WACZ,CACLxc,OAAOE,YAAcsc,UAGpBxc,OAAQC,SAAU","file":"hammer.min.js"}
\ No newline at end of file
diff --git a/web/js/hammerjs@2.0.8 b/web/js/hammerjs@2.0.8
deleted file mode 100644
index 34a8c86fb4..0000000000
--- a/web/js/hammerjs@2.0.8
+++ /dev/null
@@ -1,7 +0,0 @@
-/*! Hammer.JS - v2.0.7 - 2016-04-22
- * http://hammerjs.github.io/
- *
- * Copyright (c) 2016 Jorik Tangelder;
- * Licensed under the MIT license */
-!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(b,c,d){var e="DEPRECATED METHOD: "+c+"\n"+d+" AT \n";return function(){var c=new Error("get-stack-trace"),d=c&&c.stack?c.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function s(a){return Array.prototype.slice.call(a,0)}function t(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];r(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ma.length;){if(c=ma[g],e=c?c+f:b,e in a)return e;g++}return d}function v(){return ua++}function w(b){var c=b.ownerDocument||b;return c.defaultView||c.parentWindow||a}function x(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){k(a.options.enable,[a])&&c.handler(b)},this.init()}function y(a){var b,c=a.options.inputClass;return new(b=c?c:xa?M:ya?P:wa?R:L)(a,z)}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&Ea&&d-e===0,g=b&(Ga|Ha)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:pa(a.pointers[c].clientX),clientY:pa(a.pointers[c].clientY)},c++;return{timeStamp:ra(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY}}function E(a){var b=a.length;if(1===b)return{x:pa(a[0].clientX),y:pa(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),"identifier",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ga|Ha)&&delete d[g[e].identifier],e++;return h.length?[t(f.concat(h),"identifier",!0),h]:void 0}function R(){x.apply(this,arguments);var a=j(this.handler,this);this.touch=new P(this.manager,a),this.mouse=new L(this.manager,a),this.primaryTouch=null,this.lastTouches=[]}function S(a,b){a&Ea?(this.primaryTouch=b.changedPointers[0].identifier,T.call(this,b)):a&(Ga|Ha)&&T.call(this,b)}function T(a){var b=a.changedPointers[0];if(b.identifier===this.primaryTouch){var c={x:b.clientX,y:b.clientY};this.lastTouches.push(c);var d=this.lastTouches,e=function(){var a=d.indexOf(c);a>-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d<this.lastTouches.length;d++){var e=this.lastTouches[d],f=Math.abs(b-e.x),g=Math.abs(c-e.y);if(db>=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(d){b[d]=c?a.CSS.supports("touch-action",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?"cancel":a&qb?"end":a&pb?"move":a&ob?"start":""}function $(a){return a==Ma?"down":a==La?"up":a==Ja?"left":a==Ka?"right":""}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||""}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=["","webkit","Moz","MS","ms","o"],na=b.createElement("div"),oa="function",pa=Math.round,qa=Math.abs,ra=Date.now;la="function"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;c<arguments.length;c++){var e=arguments[c];if(e!==d&&null!==e)for(var f in e)e.hasOwnProperty(f)&&(b[f]=e[f])}return b}:Object.assign;var sa=h(function(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a},"extend","Use `assign`."),ta=h(function(a,b){return sa(a,b,!0)},"merge","Use `assign`."),ua=1,va=/mobile|tablet|ip(ad|hone|od)|android/i,wa="ontouchstart"in a,xa=u(a,"PointerEvent")!==d,ya=wa&&va.test(navigator.userAgent),za="touch",Aa="pen",Ba="mouse",Ca="kinect",Da=25,Ea=1,Fa=2,Ga=4,Ha=8,Ia=1,Ja=2,Ka=4,La=8,Ma=16,Na=Ja|Ka,Oa=La|Ma,Pa=Na|Oa,Qa=["x","y"],Ra=["clientX","clientY"];x.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(w(this.element),this.evWin,this.domHandler)}};var Sa={mousedown:Ea,mousemove:Fa,mouseup:Ga},Ta="mousedown",Ua="mousemove mouseup";i(L,x,{handler:function(a){var b=Sa[a.type];b&Ea&&0===a.button&&(this.pressed=!0),b&Fa&&1!==a.which&&(b=Ga),this.pressed&&(b&Ga&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:Ba,srcEvent:a}))}});var Va={pointerdown:Ea,pointermove:Fa,pointerup:Ga,pointercancel:Ha,pointerout:Ha},Wa={2:za,3:Aa,4:Ba,5:Ca},Xa="pointerdown",Ya="pointermove pointerup pointercancel";a.MSPointerEvent&&!a.PointerEvent&&(Xa="MSPointerDown",Ya="MSPointerMove MSPointerUp MSPointerCancel"),i(M,x,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Va[d],f=Wa[a.pointerType]||a.pointerType,g=f==za,h=r(b,a.pointerId,"pointerId");e&Ea&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a="touchstart",_a="touchstart touchmove touchend touchcancel";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb="touchstart touchmove touchend touchcancel";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,"touchAction"),fb=eb!==d,gb="compute",hb="auto",ib="manipulation",jb="none",kb="pan-x",lb="pan-y",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(" "))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(tb|nb)))return!1;a++}return!0},recognize:function(a){var b=la({},a);return k(this.options.enable,[this,b])?(this.state&(rb|sb|tb)&&(this.state=nb),this.state=this.process(b),void(this.state&(ob|pb|qb|sb)&&this.tryEmit(b))):(this.reset(),void(this.state=tb))},process:function(a){},getTouchAction:function(){},reset:function(){}},i(aa,Y,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(ob|pb),e=this.attrTest(a);return d&&(c&Ha||!e)?b|sb:d||e?c&Ga?b|qb:b&ob?b|pb:ob:tb}}),i(ba,aa,{defaults:{event:"pan",threshold:10,pointers:1,direction:Pa},getTouchAction:function(){var a=this.options.direction,b=[];return a&Na&&b.push(lb),a&Oa&&b.push(kb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Na?(e=0===f?Ia:0>f?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?"in":"out";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&Ea&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ga)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||H(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=rb,this.tryEmit()},b.interval,this),ob):rb}return tb},failTimeout:function(){return this._timer=e(function(){this.state=tb},this.options.interval,this),tb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==rb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ha.VERSION="2.0.7",ha.defaults={domEvents:!1,touchAction:gb,enable:!0,inputTarget:null,inputClass:null,preset:[[ea,{enable:!1}],[ca,{enable:!1},["rotate"]],[fa,{direction:Na}],[ba,{direction:Na},["swipe"]],[ga],[ga,{event:"doubletap",taps:2},["tap"]],[da]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ub=1,vb=2;ia.prototype={set:function(a){return la(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?vb:ub},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&rb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===vb||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(ob|pb|qb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Y)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;if(a=this.get(a)){var b=this.recognizers,c=r(b,a);-1!==c&&(b.splice(c,1),this.touchAction.update())}return this},on:function(a,b){if(a!==d&&b!==d){var c=this.handlers;return g(q(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this}},off:function(a,b){if(a!==d){var c=this.handlers;return g(q(a),function(a){b?c[a]&&c[a].splice(r(c[a],b),1):delete c[a]}),this}},emit:function(a,b){this.options.domEvents&&ka(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ja(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},la(ha,{INPUT_START:Ea,INPUT_MOVE:Fa,INPUT_END:Ga,INPUT_CANCEL:Ha,STATE_POSSIBLE:nb,STATE_BEGAN:ob,STATE_CHANGED:pb,STATE_ENDED:qb,STATE_RECOGNIZED:rb,STATE_CANCELLED:sb,STATE_FAILED:tb,DIRECTION_NONE:Ia,DIRECTION_LEFT:Ja,DIRECTION_RIGHT:Ka,DIRECTION_UP:La,DIRECTION_DOWN:Ma,DIRECTION_HORIZONTAL:Na,DIRECTION_VERTICAL:Oa,DIRECTION_ALL:Pa,Manager:ia,Input:x,TouchAction:V,TouchInput:P,MouseInput:L,PointerEventInput:M,TouchMouseInput:R,SingleTouchInput:N,Recognizer:Y,AttrRecognizer:aa,Tap:ga,Pan:ba,Swipe:fa,Pinch:ca,Rotate:ea,Press:da,on:m,off:n,each:g,merge:ta,extend:sa,assign:la,inherit:i,bindFn:j,prefixed:u});var wb="undefined"!=typeof a?a:"undefined"!=typeof self?self:{};wb.Hammer=ha,"function"==typeof define&&define.amd?define(function(){return ha}):"undefined"!=typeof module&&module.exports?module.exports=ha:a[c]=ha}(window,document,"Hammer");
-//# sourceMappingURL=hammer.min.js.map
\ No newline at end of file
diff --git a/web/js/jquery-1.11.1.min.js b/web/js/jquery-1.11.1.min.js
deleted file mode 100644
index 545e27be69..0000000000
--- a/web/js/jquery-1.11.1.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
-if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
-},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
\ No newline at end of file
diff --git a/web/js/jquery.onepagenav.js b/web/js/jquery.onepagenav.js
deleted file mode 100644
index 02ff59a323..0000000000
--- a/web/js/jquery.onepagenav.js
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * jQuery One Page Nav Plugin
- * http://github.com/davist11/jQuery-One-Page-Nav
- *
- * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
- * Dual licensed under the MIT and GPL licenses.
- * Uses the same license as jQuery, see:
- * http://jquery.org/license
- *
- * @version 3.0.0
- *
- * Example usage:
- * $('#nav').onePageNav({
- *   currentClass: 'current',
- *   changeHash: false,
- *   scrollSpeed: 750
- * });
- */
-
-;(function($, window, document, undefined){
-
-	// our plugin constructor
-	var OnePageNav = function(elem, options){
-		this.elem = elem;
-		this.$elem = $(elem);
-		this.options = options;
-		this.metadata = this.$elem.data('plugin-options');
-		this.$win = $(window);
-		this.sections = {};
-		this.didScroll = false;
-		this.$doc = $(document);
-		this.docHeight = this.$doc.height();
-	};
-
-	// the plugin prototype
-	OnePageNav.prototype = {
-		defaults: {
-			navItems: 'a',
-			currentClass: 'current',
-			changeHash: false,
-			easing: 'swing',
-			filter: '',
-			scrollSpeed: 750,
-			scrollThreshold: 0.5,
-			begin: false,
-			end: false,
-			scrollChange: false
-		},
-
-		init: function() {
-			// Introduce defaults that can be extended either
-			// globally or using an object literal.
-			this.config = $.extend({}, this.defaults, this.options, this.metadata);
-
-			this.$nav = this.$elem.find(this.config.navItems);
-
-			//Filter any links out of the nav
-			if(this.config.filter !== '') {
-				this.$nav = this.$nav.filter(this.config.filter);
-			}
-
-			//Handle clicks on the nav
-			this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));
-
-			//Get the section positions
-			this.getPositions();
-
-			//Handle scroll changes
-			this.bindInterval();
-
-			//Update the positions on resize too
-			this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));
-
-			return this;
-		},
-
-		adjustNav: function(self, $parent) {
-			self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
-			$parent.addClass(self.config.currentClass);
-		},
-
-		bindInterval: function() {
-			var self = this;
-			var docHeight;
-
-			self.$win.on('scroll.onePageNav', function() {
-				self.didScroll = true;
-			});
-
-			self.t = setInterval(function() {
-				docHeight = self.$doc.height();
-
-				//If it was scrolled
-				if(self.didScroll) {
-					self.didScroll = false;
-					self.scrollChange();
-				}
-
-				//If the document height changes
-				if(docHeight !== self.docHeight) {
-					self.docHeight = docHeight;
-					self.getPositions();
-				}
-			}, 250);
-		},
-
-		getHash: function($link) {
-			return $link.attr('href').split('#')[1];
-		},
-
-		getPositions: function() {
-			var self = this;
-			var linkHref;
-			var topPos;
-			var $target;
-
-			self.$nav.each(function() {
-				linkHref = self.getHash($(this));
-				$target = $('#' + linkHref);
-
-				if($target.length) {
-					topPos = $target.offset().top;
-					self.sections[linkHref] = Math.round(topPos);
-				}
-			});
-		},
-
-		getSection: function(windowPos) {
-			var returnValue = null;
-			var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);
-
-			for(var section in this.sections) {
-				if((this.sections[section] - windowHeight) < windowPos) {
-					returnValue = section;
-				}
-			}
-
-			return returnValue;
-		},
-
-		handleClick: function(e) {
-			var self = this;
-			var $link = $(e.currentTarget);
-			var $parent = $link.parent();
-			var newLoc = '#' + self.getHash($link);
-
-			if(!$parent.hasClass(self.config.currentClass)) {
-				//Start callback
-				if(self.config.begin) {
-					self.config.begin();
-				}
-
-				//Change the highlighted nav item
-				self.adjustNav(self, $parent);
-
-				//Removing the auto-adjust on scroll
-				self.unbindInterval();
-
-				//Scroll to the correct position
-				self.scrollTo(newLoc, function() {
-					//Do we need to change the hash?
-					if(self.config.changeHash) {
-						window.location.hash = newLoc;
-					}
-
-					//Add the auto-adjust on scroll back in
-					self.bindInterval();
-
-					//End callback
-					if(self.config.end) {
-						self.config.end();
-					}
-				});
-			}
-
-			e.preventDefault();
-		},
-
-		scrollChange: function() {
-			var windowTop = this.$win.scrollTop();
-			var position = this.getSection(windowTop);
-			var $parent;
-
-			//If the position is set
-			if(position !== null) {
-				$parent = this.$elem.find('a[href$="#' + position + '"]').parent();
-
-				//If it's not already the current section
-				if(!$parent.hasClass(this.config.currentClass)) {
-					//Change the highlighted nav item
-					this.adjustNav(this, $parent);
-
-					//If there is a scrollChange callback
-					if(this.config.scrollChange) {
-						this.config.scrollChange($parent);
-					}
-				}
-			}
-		},
-
-		scrollTo: function(target, callback) {
-			var offset = $(target).offset().top;
-
-			$('html, body').animate({
-				scrollTop: offset
-			}, this.config.scrollSpeed, this.config.easing, callback);
-		},
-
-		unbindInterval: function() {
-			clearInterval(this.t);
-			this.$win.unbind('scroll.onePageNav');
-		}
-	};
-
-	OnePageNav.defaults = OnePageNav.prototype.defaults;
-
-	$.fn.onePageNav = function(options) {
-		return this.each(function() {
-			new OnePageNav(this, options).init();
-		});
-	};
-
-})( jQuery, window , document );
diff --git a/web/js/main.js b/web/js/main.js
deleted file mode 100644
index 80a9699ab1..0000000000
--- a/web/js/main.js
+++ /dev/null
@@ -1,171 +0,0 @@
-jQuery(function($) {
-	"use strict";
-	// Author Code Here
-
-	var owlPricing;
-	var ratio = 2;
-
-	// Window Load
-	$(window).load(function() {
-		// Preloader
-		$('.intro-tables, .parallax, header').css('opacity', '0');
-		$('.preloader').addClass('animated fadeOut').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
-				$('.preloader').hide();
-			$('.parallax, header').addClass('animated fadeIn').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
-				$('.intro-tables').addClass('animated fadeInUp').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
-			});
-		});
-
-		// Header Init
-		if ($(window).height() > $(window).width()) {
-			var ratio = $('.parallax').width() / $('.parallax').height();
-			$('.parallax img').css('height', ($(window).height()) + 'px');
-			$('.parallax img').css('width', $('.parallax').height() * ratio + 'px');
-		}
-
-		$('header').height($(window).height() + 80);
-		$('section .cut').each(function() {
-			if ($(this).hasClass('cut-top'))
-				$(this).css('border-right-width', $(this).parent().width() + "px");
-			else if ($(this).hasClass('cut-bottom'))
-				$(this).css('border-left-width', $(this).parent().width() + "px");
-		});
-
-		// Sliders Init
-		$('.owl-schedule').owlCarousel({
-			singleItem: true,
-			pagination: true
-		});
-		$('.owl-testimonials').owlCarousel({
-			singleItem: true,
-			pagination: true
-		});
-		$('.owl-twitter').owlCarousel({
-			singleItem: true,
-			pagination: true
-		});
-
-		// Navbar Init
-		$('nav').addClass('original').clone().insertAfter('nav').addClass('navbar-fixed-top').css('position', 'fixed').css('top', '0').css('margin-top', '0').removeClass('original');
-		$('.mobile-nav ul').html($('nav .navbar-nav').html());
-		$('nav.navbar-fixed-top .navbar-brand img').attr('src', $('nav.navbar-fixed-top .navbar-brand img').data("active-url"));
-
-		// Typing Intro Init
-		$(".typed").typewriter({
-			speed: 60
-		});
-
-		// Popup Form Init
-		var i = 0;
-		var interval = 0.15;
-		$('.popup-form .dropdown-menu li').each(function() {
-			$(this).css('animation-delay', i + "s");
-			i += interval;
-		});
-		$('.popup-form .dropdown-menu li a').click(function(event) {
-			event.preventDefault();
-			$(this).parent().parent().prev('button').html($(this).html());
-		});
-
-		// Onepage Nav
-		$('.navbar.navbar-fixed-top .navbar-nav').onePageNav({
-			currentClass: 'active',
-			changeHash: false,
-			scrollSpeed: 400,
-			filter: ':not(.btn)'
-		});
-	});
-	// Window Scroll
-	function onScroll() {
-		if ($(window).scrollTop() > 50) {
-			$('nav.original').css('opacity', '0');
-			$('nav.navbar-fixed-top').css('opacity', '1');
-		} else {
-			$('nav.original').css('opacity', '1');
-			$('nav.navbar-fixed-top').css('opacity', '0');
-		}
-	}
-
-	window.addEventListener('scroll', onScroll, false);
-
-	// Window Resize
-	$(window).resize(function() {
-		$('header').height($(window).height());
-	});
-
-	// Pricing Box Click Event
-	$('.pricing .box-main').click(function() {
-		$('.pricing .box-main').removeClass('active');
-		$('.pricing .box-second').removeClass('active');
-		$(this).addClass('active');
-		$(this).next($('.box-second')).addClass('active');
-		$('#pricing').css("background-image", "url(" + $(this).data('img') + ")");
-		$('#pricing').css("background-size", "cover");
-	});
-
-	// Mobile Nav
-	$('body').on('click', 'nav .navbar-toggle', function() {
-		event.stopPropagation();
-		$('.mobile-nav').addClass('active');
-	});
-
-	$('body').on('click', '.mobile-nav a', function(event) {
-		$('.mobile-nav').removeClass('active');
-		if(!this.hash) return;
-		event.preventDefault();
-		if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
-			event.stopPropagation();
-			var target = $(this.hash);
-			target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
-			if (target.length) {
-				$('html,body').animate({
-					scrollTop: target.offset().top
-				}, 1000);
-				return false;
-			}
-		}
-	});
-
-	$('body').on('click', '.mobile-nav a.close-link', function(event) {
-		$('.mobile-nav').removeClass('active');
-		event.preventDefault();
-	});
-
-	$('body').on('click', 'nav.original .navbar-nav a:not([data-toggle])', function() {
-		if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
-			event.stopPropagation();
-			var target = $(this.hash);
-			target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
-			if (target.length) {
-				$('html,body').animate({
-					scrollTop: target.offset().top
-				}, 1000);
-				return false;
-			}
-		}
-	});
-
-	function centerModal() {
-		$(this).css('display', 'block');
-		var $dialog = $(this).find(".modal-dialog"),
-			offset = ($(window).height() - $dialog.height()) / 2,
-			bottomMargin = parseInt($dialog.css('marginBottom'), 10);
-
-		// Make sure you don't hide the top part of the modal w/ a negative margin
-		// if it's longer than the screen height, and keep the margin equal to 
-		// the bottom margin of the modal
-		if (offset < bottomMargin) offset = bottomMargin;
-		$dialog.css("margin-top", offset);
-	}
-
-	$('.modal').on('show.bs.modal', centerModal);
-
-	$('.modal-popup .close-link').click(function(event){
-		event.preventDefault();
-		$('#modal1').modal('hide');
-	});
-
-	$(window).on("resize", function() {
-		$('.modal:visible').each(centerModal);
-	});
-});
diff --git a/web/js/tooltip.js b/web/js/tooltip.js
deleted file mode 100644
index fee5ac2542..0000000000
--- a/web/js/tooltip.js
+++ /dev/null
@@ -1,304 +0,0 @@
-;(function ($, Formstone, undefined) {
-
-	"use strict";
-
-	/**
-	 * @method private
-	 * @name construct
-	 * @description Builds instance.
-	 * @param data [object] "Instance data"
-	 */
-
-	function construct(data) {
-		this.on(Events.mouseEnter, data, onMouseEnter);
-	}
-
-	/**
-	 * @method private
-	 * @name destruct
-	 * @description Tears down instance.
-	 * @param data [object] "Instance data"
-	 */
-
-	function destruct(data) {
-		removeTooltip();
-
-		this.off(Events.namespace);
-	}
-
-	/**
-	 * @method private
-	 * @name onMouseEnter
-	 * @description Handles mouse enter event.
-	 * @param e [object] "Event data"
-	 */
-
-	function onMouseEnter(e) {
-		removeTooltip();
-
-		var data = e.data;
-
-		data.left = e.pageX;
-		data.top  = e.pageY;
-
-		buildTooltip(data);
-	}
-
-	/**
-	 * @method private
-	 * @name onMouseLeave
-	 * @description Handles mouse leave event.
-	 * @param e [object] "Event data"
-	 */
-
-	function onMouseLeave(e) {
-		var data = e.data;
-
-		Functions.clearTimer(data.timer);
-
-		removeTooltip();
-	}
-
-	/**
-	 * @method private
-	 * @name onMouseLeave
-	 * @description Handles mouse move event.
-	 * @param e [object] "Event data"
-	 */
-
-	function onMouseMove(e) {
-		positionTooltip(e.pageX, e.pageY);
-	}
-
-	/**
-	 * @method private
-	 * @name buildTooltip
-	 * @description Builds new tooltip instance.
-	 * @param data [object] "Instance data"
-	 */
-
-	function buildTooltip(data) {
-		removeTooltip();
-
-		var html = '';
-
-		html += '<div class="';
-		html += [RawClasses.base, RawClasses[data.direction] ].join(" ");
-		html += '">';
-		html += '<div class="' + RawClasses.content + '">';
-		html += data.formatter.call(data.$el, data);
-		html += '<span class="' + RawClasses.caret + '"></span>';
-		html += '</div>';
-		html += '</div>';
-
-		Instance = {
-			$tooltip    : $(html),
-			$el         : data.$el
-		};
-
-		Formstone.$body.append(Instance.$tooltip);
-
-		var $content = Instance.$tooltip.find(Classes.content),
-			$caret   = Instance.$tooltip.find(Classes.caret),
-
-			offset = data.$el.offset(),
-			height = data.$el.outerHeight(),
-			width  = data.$el.outerWidth(),
-
-			tooltipLeft     = 0,
-			tooltipTop      = 0,
-			contentLeft     = 0,
-			contentTop      = 0,
-			caretLeft       = false,
-			caretTop        = false,
-
-			caretHeight     = $caret.outerHeight(true),
-			caretWidth      = $caret.outerWidth(true),
-			contentHeight   = $content.outerHeight(true),
-			contentWidth    = $content.outerWidth(true);
-
-		// position content
-		if (data.direction === "right" || data.direction === "left") {
-			caretTop   = (contentHeight - caretHeight) / 2;
-			contentTop = -contentHeight / 2;
-
-			if (data.direction === "right") {
-				contentLeft = data.margin;
-			} else if (data.direction === "left") {
-				contentLeft = -(contentWidth + data.margin);
-			}
-		} else {
-			caretLeft = (contentWidth - caretWidth) / 2;
-			contentLeft = -contentWidth / 2;
-
-			if (data.direction === "bottom") {
-				contentTop = data.margin;
-			} else if (data.direction === "top") {
-				contentTop = -(contentHeight + data.margin);
-			}
-		}
-
-		// Modify Dom
-		$content.css({
-			top:  contentTop,
-			left: contentLeft
-		});
-
-		$caret.css({
-			top:  caretTop,
-			left: caretLeft
-		});
-
-		// Position tooltip
-		if (data.follow) {
-			data.$el.on(Events.mouseMove, data, onMouseMove);
-		} else {
-			if (data.match) {
-				if (data.direction === "right" || data.direction === "left") {
-					tooltipTop = data.top; // mouse pos
-
-					if (data.direction === "right") {
-						tooltipLeft = offset.left + width;
-					} else if (data.direction === "left") {
-						tooltipLeft = offset.left;
-					}
-				} else {
-					tooltipLeft = data.left; // mouse pos
-
-					if (data.direction === "bottom") {
-						tooltipTop = offset.top + height;
-					} else if (data.direction === "top") {
-						tooltipTop = offset.top;
-					}
-				}
-			} else {
-				if (data.direction === "right" || data.direction === "left") {
-					tooltipTop = offset.top + (height / 2);
-
-					if (data.direction === "right") {
-						tooltipLeft = offset.left + width;
-					} else if (data.direction === "left") {
-						tooltipLeft = offset.left;
-					}
-				} else {
-					tooltipLeft = offset.left + (width / 2);
-
-					if (data.direction === "bottom") {
-						tooltipTop = offset.top + height;
-					} else if (data.direction === "top") {
-						tooltipTop = offset.top;
-					}
-				}
-			}
-
-			positionTooltip(tooltipLeft, tooltipTop);
-		}
-
-		data.timer = Functions.startTimer(data.timer, data.delay, function() {
-			Instance.$tooltip.addClass(RawClasses.visible);
-		});
-
-		data.$el.one(Events.mouseLeave, data, onMouseLeave);
-	}
-
-	/**
-	 * @method private
-	 * @name positionTooltip
-	 * @description Positions active tooltip instance.
-	 * @param left [int] "Left position"
-	 * @param top [int] "Top position"
-	 */
-
-	function positionTooltip(left, top) {
-		if (Instance) {
-			Instance.$tooltip.css({
-				left : left,
-				top  : top
-			});
-		}
-	}
-
-	/**
-	 * @method private
-	 * @name removeTooltip
-	 * @description Removes active tooltip instance.
-	 */
-
-	function removeTooltip() {
-		if (Instance) {
-			Instance.$el.off( [Events.mouseMove, Events.mouseLeave].join(" ") );
-
-			Instance.$tooltip.remove();
-			Instance = null;
-		}
-	}
-
-	/**
-	 * @method private
-	 * @name format
-	 * @description Formats tooltip text.
-	 * @return [string] "Tooltip text"
-	 */
-
-	function format(data) {
-		return this.data("title");
-	}
-
-	/**
-	 * @plugin
-	 * @name Tooltip
-	 * @description A jQuery plugin for simple tooltips.
-	 * @type widget
-	 * @dependency core.js
-	 */
-
-	var Plugin = Formstone.Plugin("tooltip", {
-			widget: true,
-
-			/**
-			 * @options
-			 * @param delay [int] <0> "Hover delay"
-			 * @param direction [string] <'top'> "Tooltip direction"
-			 * @param follow [boolean] <false> "Flag to follow mouse"
-			 * @param formatter [function] <$.noop> "Text format function"
-			 * @param margin [int] <15> "Tooltip margin"
-			 * @param match [boolean] <false> "Flag to match mouse position"
-			 */
-
-			defaults: {
-				delay        : 0,
-				direction    : "top",
-				follow       : false,
-				formatter    : format,
-				margin       : 15,
-				match        : false
-			},
-
-			classes: [
-				"content",
-				"caret",
-				"visible",
-				"top",
-				"bottom",
-				"right",
-				"left"
-			],
-
-			methods: {
-				_construct    : construct,
-				_destruct     : destruct
-			}
-		}),
-
-		// Localize References
-
-		Classes       = Plugin.classes,
-		RawClasses    = Classes.raw,
-		Events        = Plugin.events,
-		Functions     = Plugin.functions,
-
-		// Singleton
-
-		Instance     = null;
-
-})(jQuery, Formstone);
\ No newline at end of file
diff --git a/web/js/typed.js b/web/js/typed.js
deleted file mode 100644
index f7bdc6c446..0000000000
--- a/web/js/typed.js
+++ /dev/null
@@ -1,421 +0,0 @@
-// The MIT License (MIT)
-
-// Typed.js | Copyright (c) 2014 Matt Boldt | www.mattboldt.com
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-
-
-
-! function($) {
-
-    "use strict";
-
-    var Typed = function(el, options) {
-
-        // chosen element to manipulate text
-        this.el = $(el);
-
-        // options
-        this.options = $.extend({}, $.fn.typed.defaults, options);
-
-        // attribute to type into
-        this.isInput = this.el.is('input');
-        this.attr = this.options.attr;
-
-        // show cursor
-        this.showCursor = this.isInput ? false : this.options.showCursor;
-
-        // text content of element
-        this.elContent = this.attr ? this.el.attr(this.attr) : this.el.text()
-
-        // html or plain text
-        this.contentType = this.options.contentType;
-
-        // typing speed
-        this.typeSpeed = this.options.typeSpeed;
-
-        // add a delay before typing starts
-        this.startDelay = this.options.startDelay;
-
-        // backspacing speed
-        this.backSpeed = this.options.backSpeed;
-
-        // amount of time to wait before backspacing
-        this.backDelay = this.options.backDelay;
-
-        // input strings of text
-        this.strings = this.options.strings;
-
-        // character number position of current string
-        this.strPos = 0;
-
-        // current array position
-        this.arrayPos = 0;
-
-        // number to stop backspacing on.
-        // default 0, can change depending on how many chars
-        // you want to remove at the time
-        this.stopNum = 0;
-
-        // Looping logic
-        this.loop = this.options.loop;
-        this.loopCount = this.options.loopCount;
-        this.curLoop = 0;
-
-        // for stopping
-        this.stop = false;
-
-        // custom cursor
-        this.cursorChar = this.options.cursorChar;
-
-        // shuffle the strings
-        this.shuffle = this.options.shuffle;
-        // the order of strings
-        this.sequence = [];
-
-        // All systems go!
-        this.build();
-    };
-
-    Typed.prototype = {
-
-        constructor: Typed
-
-        ,
-        init: function() {
-            // begin the loop w/ first current string (global self.string)
-            // current string will be passed as an argument each time after this
-            var self = this;
-            self.timeout = setTimeout(function() {
-                for (var i=0;i<self.strings.length;++i) self.sequence[i]=i;
-
-                // shuffle the array if true
-                if(self.shuffle) self.sequence = self.shuffleArray(self.sequence);
-
-                // Start typing
-                self.typewrite(self.strings[self.sequence[self.arrayPos]], self.strPos);
-            }, self.startDelay);
-        }
-
-        ,
-        build: function() {
-            // Insert cursor
-            if (this.showCursor === true) {
-                this.cursor = $("<span class=\"typed-cursor\">" + this.cursorChar + "</span>");
-                this.el.after(this.cursor);
-            }
-            this.init();
-        }
-
-        // pass current string state to each function, types 1 char per call
-        ,
-        typewrite: function(curString, curStrPos) {
-            // exit when stopped
-            if (this.stop === true) {
-                return;
-            }
-
-            // varying values for setTimeout during typing
-            // can't be global since number changes each time loop is executed
-            var humanize = Math.round(Math.random() * (100 - 30)) + this.typeSpeed;
-            var self = this;
-
-            // ------------- optional ------------- //
-            // backpaces a certain string faster
-            // ------------------------------------ //
-            // if (self.arrayPos == 1){
-            //  self.backDelay = 50;
-            // }
-            // else{ self.backDelay = 500; }
-
-            // contain typing function in a timeout humanize'd delay
-            self.timeout = setTimeout(function() {
-                // check for an escape character before a pause value
-                // format: \^\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^
-                // single ^ are removed from string
-                var charPause = 0;
-                var substr = curString.substr(curStrPos);
-                if (substr.charAt(0) === '^') {
-                    var skip = 1; // skip atleast 1
-                    if (/^\^\d+/.test(substr)) {
-                        substr = /\d+/.exec(substr)[0];
-                        skip += substr.length;
-                        charPause = parseInt(substr);
-                    }
-
-                    // strip out the escape character and pause value so they're not printed
-                    curString = curString.substring(0, curStrPos) + curString.substring(curStrPos + skip);
-                }
-
-                if (self.contentType === 'html') {
-                    // skip over html tags while typing
-                    var curChar = curString.substr(curStrPos).charAt(0)
-                    if (curChar === '<' || curChar === '&') {
-                        var tag = '';
-                        var endTag = '';
-                        if (curChar === '<') {
-                            endTag = '>'
-                        } else {
-                            endTag = ';'
-                        }
-                        while (curString.substr(curStrPos).charAt(0) !== endTag) {
-                            tag += curString.substr(curStrPos).charAt(0);
-                            curStrPos++;
-                        }
-                        curStrPos++;
-                        tag += endTag;
-                    }
-                }
-
-                // timeout for any pause after a character
-                self.timeout = setTimeout(function() {
-                    if (curStrPos === curString.length) {
-                        // fires callback function
-                        self.options.onStringTyped(self.arrayPos);
-
-                        // is this the final string
-                        if (self.arrayPos === self.strings.length - 1) {
-                            // animation that occurs on the last typed string
-                            self.options.callback();
-
-                            self.curLoop++;
-
-                            // quit if we wont loop back
-                            if (self.loop === false || self.curLoop === self.loopCount)
-                                return;
-                        }
-
-                        self.timeout = setTimeout(function() {
-                            self.backspace(curString, curStrPos);
-                        }, self.backDelay);
-                    } else {
-
-                        /* call before functions if applicable */
-                        if (curStrPos === 0)
-                            self.options.preStringTyped(self.arrayPos);
-
-                        // start typing each new char into existing string
-                        // curString: arg, self.el.html: original text inside element
-                        var nextString = curString.substr(0, curStrPos + 1);
-                        if (self.attr) {
-                            self.el.attr(self.attr, nextString);
-                        } else {
-                            if (self.isInput) {
-                                self.el.val(nextString);
-                            } else if (self.contentType === 'html') {
-                                self.el.html(nextString);
-                            } else {
-                                self.el.text(nextString);
-                            }
-                        }
-
-                        // add characters one by one
-                        curStrPos++;
-                        // loop the function
-                        self.typewrite(curString, curStrPos);
-                    }
-                    // end of character pause
-                }, charPause);
-
-                // humanized value for typing
-            }, humanize);
-
-        }
-
-        ,
-        backspace: function(curString, curStrPos) {
-            // exit when stopped
-            if (this.stop === true) {
-                return;
-            }
-
-            // varying values for setTimeout during typing
-            // can't be global since number changes each time loop is executed
-            var humanize = Math.round(Math.random() * (100 - 30)) + this.backSpeed;
-            var self = this;
-
-            self.timeout = setTimeout(function() {
-
-                // ----- this part is optional ----- //
-                // check string array position
-                // on the first string, only delete one word
-                // the stopNum actually represents the amount of chars to
-                // keep in the current string. In my case it's 14.
-                // if (self.arrayPos == 1){
-                //  self.stopNum = 14;
-                // }
-                //every other time, delete the whole typed string
-                // else{
-                //  self.stopNum = 0;
-                // }
-
-                if (self.contentType === 'html') {
-                    // skip over html tags while backspacing
-                    if (curString.substr(curStrPos).charAt(0) === '>') {
-                        var tag = '';
-                        while (curString.substr(curStrPos).charAt(0) !== '<') {
-                            tag -= curString.substr(curStrPos).charAt(0);
-                            curStrPos--;
-                        }
-                        curStrPos--;
-                        tag += '<';
-                    }
-                }
-
-                // ----- continue important stuff ----- //
-                // replace text with base text + typed characters
-                var nextString = curString.substr(0, curStrPos);
-                if (self.attr) {
-                    self.el.attr(self.attr, nextString);
-                } else {
-                    if (self.isInput) {
-                        self.el.val(nextString);
-                    } else if (self.contentType === 'html') {
-                        self.el.html(nextString);
-                    } else {
-                        self.el.text(nextString);
-                    }
-                }
-
-                // if the number (id of character in current string) is
-                // less than the stop number, keep going
-                if (curStrPos > self.stopNum) {
-                    // subtract characters one by one
-                    curStrPos--;
-                    // loop the function
-                    self.backspace(curString, curStrPos);
-                }
-                // if the stop number has been reached, increase
-                // array position to next string
-                else if (curStrPos <= self.stopNum) {
-                    self.arrayPos++;
-
-                    if (self.arrayPos === self.strings.length) {
-                        self.arrayPos = 0;
-
-                        // Shuffle sequence again
-                        if(self.shuffle) self.sequence = self.shuffleArray(self.sequence);
-
-                        self.init();
-                    } else
-                        self.typewrite(self.strings[self.sequence[self.arrayPos]], curStrPos);
-                }
-
-                // humanized value for typing
-            }, humanize);
-
-        }
-        /**
-         * Shuffles the numbers in the given array.
-         * @param {Array} array
-         * @returns {Array}
-         */
-        ,shuffleArray: function(array) {
-            var tmp, current, top = array.length;
-            if(top) while(--top) {
-                current = Math.floor(Math.random() * (top + 1));
-                tmp = array[current];
-                array[current] = array[top];
-                array[top] = tmp;
-            }
-            return array;
-        }
-
-        // Start & Stop currently not working
-
-        // , stop: function() {
-        //     var self = this;
-
-        //     self.stop = true;
-        //     clearInterval(self.timeout);
-        // }
-
-        // , start: function() {
-        //     var self = this;
-        //     if(self.stop === false)
-        //        return;
-
-        //     this.stop = false;
-        //     this.init();
-        // }
-
-        // Reset and rebuild the element
-        ,
-        reset: function() {
-            var self = this;
-            clearInterval(self.timeout);
-            var id = this.el.attr('id');
-            this.el.after('<span id="' + id + '"/>')
-            this.el.remove();
-            if (typeof this.cursor !== 'undefined') {
-                this.cursor.remove();
-            }
-            // Send the callback
-            self.options.resetCallback();
-        }
-
-    };
-
-    $.fn.typed = function(option) {
-        return this.each(function() {
-            var $this = $(this),
-                data = $this.data('typed'),
-                options = typeof option == 'object' && option;
-            if (!data) $this.data('typed', (data = new Typed(this, options)));
-            if (typeof option == 'string') data[option]();
-        });
-    };
-
-    $.fn.typed.defaults = {
-        strings: ["These are the default values...", "You know what you should do?", "Use your own!", "Have a great day!"],
-        // typing speed
-        typeSpeed: 0,
-        // time before typing starts
-        startDelay: 0,
-        // backspacing speed
-        backSpeed: 0,
-        // shuffle the strings
-        shuffle: false,
-        // time before backspacing
-        backDelay: 500,
-        // loop
-        loop: false,
-        // false = infinite
-        loopCount: false,
-        // show cursor
-        showCursor: true,
-        // character for cursor
-        cursorChar: "|",
-        // attribute to type (null == text)
-        attr: null,
-        // either html or text
-        contentType: 'html',
-        // call when done callback function
-        callback: function() {},
-        // starting callback function before each string
-        preStringTyped: function() {},
-        //callback for every typed string
-        onStringTyped: function() {},
-        // callback for reset
-        resetCallback: function() {}
-    };
-
-
-}(window.jQuery);
\ No newline at end of file
diff --git a/web/js/typewriter.js b/web/js/typewriter.js
deleted file mode 100644
index 23e309987c..0000000000
--- a/web/js/typewriter.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// typewriter
-
-// 3215287
-// bertaec32@gmail.com
-(function($, w, d, undefined) {
-
-  function typewriter() {
-
-    // Globals 
-    var self = this, speed;
-
-    function init(element, options) {
-            // Set Globals
-      var str;
-      var indice = 0;
-
-      self.options = $.extend( {}, $.fn.typewriter.options, options );
-      $currentElement = $(element);
-      elementStr = $currentElement.text().replace(/\s+/g, ' ');
-      dataSpeed  = $currentElement.data("speed") || self.options.speed;
-      $currentElement.empty();
-      var showText = setInterval(
-				function(){
-					if (indice++ < elementStr.length) {
-			      $currentElement.append(elementStr[indice - 1]);
-			    }else{
-			    	clearInterval(showText);
-			    }
-				}, dataSpeed);
-      // self.animation = setInterval(function(){animate_calification()}, 20);
-    }
-
-    
-    
-    // Metodos publicos
-    return {
-      init: init
-    }
-  }
-
-  // Plugin jQuery
-  $.fn.typewriter = function(options) {
-    return this.each(function () {
-    	var writer =  new typewriter();
-      writer.init(this, options);
-      $.data( this, 'typewriter', writer);
-    });
-  };
-
-  $.fn.typewriter.options = {
-    'speed' : 300
-  };
-
-})(jQuery, window, document);
\ No newline at end of file
diff --git a/web/js/wow.min.js b/web/js/wow.min.js
deleted file mode 100644
index 9c49a74059..0000000000
--- a/web/js/wow.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! WOW - v1.1.2 - 2015-04-07
-* Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,"animationend",this.resetAnimation),this.util().addEvent(a,"oanimationend",this.resetAnimation),this.util().addEvent(a,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(a,"MSAnimationEnd",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf("animationend")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,"").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[""+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue("-"+i+"-"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);
\ No newline at end of file
diff --git a/web/navbar.php b/web/navbar.php
deleted file mode 100644
index b6b6059974..0000000000
--- a/web/navbar.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<header>
-    <!-- Fixed navbar -->
-    <nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
-        <a class="navbar-brand" href="./index.php">
-            <span>openWB</span>
-        </a>
-        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
-            <span class="navbar-toggler-icon"></span>
-        </button>
-        <div class="collapse navbar-collapse" id="collapsibleNavbar">
-            <ul class="navbar-nav">
-                <li class="nav-item">
-                    <a class="nav-link" data-select="" href="./index.php">Home</a>
-                </li>
-            </ul>
-        </div>
-    </nav>
-</header>
diff --git a/web/notReady.html b/web/notReady.html
deleted file mode 100644
index 80a381df20..0000000000
--- a/web/notReady.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-<html lang="de">
-
-<head>
-	<base href="/openWB/web/">
-	<meta charset="UTF-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<title>openWB | bitte warten...</title>
-	<meta http-equiv="refresh" content="5; URL=.">
-	<meta name="description" content="Control your charge" />
-	<meta name="author" content="Michael Ortenstein" />
-	<!-- Favicons (created with http://realfavicongenerator.net/)-->
-	<link rel="apple-touch-icon" sizes="57x57" href="img/favicons/apple-touch-icon-57x57.png">
-	<link rel="apple-touch-icon" sizes="60x60" href="img/favicons/apple-touch-icon-60x60.png">
-	<link rel="icon" type="image/png" href="img/favicons/favicon-32x32.png" sizes="32x32">
-	<link rel="icon" type="image/png" href="img/favicons/favicon-16x16.png" sizes="16x16">
-	<link rel="manifest" href="manifest.json">
-	<link rel="shortcut icon" href="img/favicons/favicon.ico">
-	<meta name="msapplication-TileColor" content="#00a8ff">
-	<meta name="msapplication-config" content="img/favicons/browserconfig.xml">
-	<meta name="theme-color" content="#ffffff">
-
-	<!-- Bootstrap -->
-	<link rel="stylesheet" type="text/css" href="css/bootstrap-4.4.1/bootstrap.min.css">
-	<!-- Normalize -->
-	<link rel="stylesheet" type="text/css" href="css/normalize-8.0.1.css">
-
-	<link rel="stylesheet" type="text/css" href="fonts/font-awesome-5.8.2/css/all.css">
-	<!-- include settings-style -->
-	<link rel="stylesheet" type="text/css" href="css/settings_style.css">
-
-	<!-- important scripts to be loaded -->
-	<script src="js/jquery-3.6.0.min.js"></script>
-	<script src="js/bootstrap-4.4.1/bootstrap.bundle.min.js"></script>
-	<script>
-		/**
-		 * getCookie
-		 * returns a cookie value
-		 * @param {string} cname cookie name
-		 * @returns {string}
-		 */
-		function getCookie(cname) {
-			var name = cname + '=';
-			var decodedCookie = decodeURIComponent(document.cookie);
-			var ca = decodedCookie.split(';');
-			for (var i = 0; i < ca.length; i++) {
-				var c = ca[i];
-				while (c.charAt(0) == ' ') {
-					c = c.substring(1);
-				}
-				if (c.indexOf(name) == 0) {
-					return c.substring(name.length, c.length);
-				}
-			}
-			return '';
-		}
-
-		// get selected theme and set style
-		var themeCookie = getCookie('openWBTheme');
-		if ('' != themeCookie) {
-			$('head').append('<link rel="stylesheet" href="themes/' + themeCookie + '/settings.css?v=20200801">');
-		}
-	</script>
-</head>
-
-<body>
-	<div role="main" class="container" style="margin-top:20px">
-		<div class="card border-secondary">
-			<div class="card-header bg-secondary">
-				openWB ist noch nicht bereit
-			</div>
-			<div class="card-body p-0">
-				<div class="row mx-0">
-					<div class="col-md-4 py-3">
-						<div class="cssload-loader text-center">
-							<div class="cssload-inner cssload-one"></div>
-							<div class="cssload-inner cssload-two"></div>
-							<div class="cssload-inner cssload-three"></div>
-						</div>
-					</div>
-					<div class="col py-3 border-left bg-light">
-						<p>
-							Der Vorgang kann bis zu 15 Minuten dauern, bitte warten.<br>
-							Die Seite aktualisiert sich automatisch neu.
-						</p>
-						<p>
-							Sollte diese Meldung dauerhaft angezeigt werden, können Sie in den Einstellungen die
-							<a href="settings/#/System/DebugConfiguration">Logdateien</a> einsehen, einen
-							<a href="settings/#/System/Support">Fehlerbericht</a> senden
-							oder einen <a href="settings/#/System/SystemConfiguration">Neustart</a>
-							durchführen.
-						</p>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-</body>
-
-</html>
diff --git a/web/processAllMqttMsg.js b/web/processAllMqttMsg.js
new file mode 100644
index 0000000000..baf00b6ee4
--- /dev/null
+++ b/web/processAllMqttMsg.js
@@ -0,0 +1,93 @@
+/**
+ * Functions to update graph and gui values via MQTT-messages
+ */
+
+function setIframeSource() {
+	if (allTopicsReceived()) {
+		const startup = document.getElementById("notReady");
+		const iframe = document.getElementById("themeTarget");
+		const logMessages = document.getElementById("log");
+		if (!data["openWB/system/boot_done"]) {
+			addLog("backend still booting");
+			startup.classList.remove("hide");
+			iframe.classList.add("hide");
+			return;
+		}
+		if (data["openWB/system/update_in_progress"]) {
+			addLog("update in progress");
+			startup.classList.remove("hide");
+			iframe.classList.add("hide");
+			return;
+		}
+		const theme = data["openWB/general/web_theme"].type;
+		let destination = `themes/${theme}/`;
+		if (data["openWB/general/extern"]) {
+			console.log("openWB is configured as external charge point");
+			startup.classList.remove("hide");
+			iframe.classList.add("hide");
+			logMessages.classList.add("hide");
+			return;
+		} else {
+			logMessages.classList.remove("hide");
+		}
+
+		var request = new XMLHttpRequest();
+		request.onload = function () {
+			if (this.readyState == 4) {
+				if (this.status == 200) {
+					addLog(`theme '${theme}' is valid`)
+					if (destination != iframe.src) {
+						addLog(`all done, starting theme '${theme}' with url '${destination}'`);
+						// iframe.src = destination;
+					}
+					setTimeout(() => {
+						// startup.classList.add("hide");
+						// iframe.classList.remove("hide");
+						location.href = destination
+					}, 250);
+				} else {
+					addLog(`theme '${theme}' not found on server!`);
+				}
+			}
+		};
+		request.ontimeout = function () {
+			console.warn("onTimeout", this.readyState, this.status);
+			addLog(`check for theme '${theme}' timed out!`);
+		};
+		request.timeout = 2000;
+		console.debug("checking url:", destination);
+		request.open("GET", destination, true);
+		request.send();
+	} else {
+		console.debug("some topics still missing");
+	}
+}
+
+function addLog(message) {
+	const logElement = document.getElementById('log');
+	logElement.insertAdjacentHTML("beforeend", "<br />");
+	logElement.insertAdjacentText("beforeend", message);
+}
+
+function handleMessage(topic, payload) {
+	addLog(`Topic: ${topic} Payload: ${payload}`);
+	if (data["openWB/general/extern"]) {
+		document.getElementById("secondary-mode").classList.remove("hide");
+	} else {
+		document.getElementById("secondary-mode").classList.add("hide");
+	}
+	if (!data["openWB/system/boot_done"]) {
+		document.getElementById("boot").classList.remove("hide");
+	} else {
+		document.getElementById("boot").classList.add("hide");
+	}
+	if (data["openWB/system/update_in_progress"]) {
+		document.getElementById("update").classList.remove("hide");
+	} else {
+		document.getElementById("update").classList.add("hide");
+	}
+	if (data["openWB/internal_chargepoint/global_data"]) {
+		document.getElementById("primary-link").setAttribute("href", `https://${data["openWB/internal_chargepoint/global_data"].parent_ip}/`);
+	}
+	setIframeSource();
+}  // end handleMessage
diff --git a/web/setThemeCookie.php b/web/setThemeCookie.php
deleted file mode 100644
index 11b574b3b8..0000000000
--- a/web/setThemeCookie.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-	$themeCookie = $_GET['theme'];
-	$expire = time()+(60*60*24*365*2);  // expiring-date to now + 2 years
-	setcookie('openWBTheme', $themeCookie, $expire, '/openWB/');
-?>
diff --git a/web/settings/assets/ChargeLog-44e297bd.js b/web/settings/assets/ChargeLog-8f431e93.js
similarity index 96%
rename from web/settings/assets/ChargeLog-44e297bd.js
rename to web/settings/assets/ChargeLog-8f431e93.js
index d8cffc5cfa..c1fcd9cf6a 100644
--- a/web/settings/assets/ChargeLog-44e297bd.js
+++ b/web/settings/assets/ChargeLog-8f431e93.js
@@ -1,2 +1,2 @@
-import{l as C,N as q,O as R,F as k}from"./vendor-fortawesome-838df0c9.js";import{_ as x,$ as E,p as l,k as h,l as m,q as g,A as r,L as s,y as V,z as L,u as d,x as y,Q as F,R as B}from"./vendor-20bb207d.js";import{C as N}from"./index-2a1b0c80.js";import"./vendor-sortablejs-ad1d2cc8.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";C.add(q,R);const S={name:"OpenwbChargeLog",components:{Vue3TableLite:E,FontAwesomeIcon:k},mixins:[N],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat("de-DE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0,display:e=>this.alignEnd(e.time_time_charged)},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0,display:e=>this.alignEnd(this.formatNumber(e.data_imported_since_mode_switch/1e3,2)+"&nbsp;kWh / "+this.formatNumber(e.data_range_charged,0)+"&nbsp;km")},{label:"Kosten",field:"data_costs",sortable:!0,display:e=>this.alignEnd(this.formatNumber(e.data_costs,2)+"&nbsp;€")},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0,display:e=>'<div class="td-center tag '+this.getChargeModeClass(e.vehicle_chargemode)+'">'+e.vehicle_chargemode+"</div>"},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Priorität",field:"vehicle_prio",display:e=>this.translateBool(e.vehicle_prio)}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1,display:e=>this.alignEnd(e.time_charged)},{label:"Energie",field:"imported_since_mode_switch",sortable:!1,display:e=>this.alignEnd(this.formatNumber(e.imported_since_mode_switch/1e3,2)+"&nbsp;kWh")},{label:"Reichweite",field:"range_charged",sortable:!1,display:e=>this.alignEnd(this.formatNumber(e.range_charged,0)+"&nbsp;km")},{label:"Kosten",field:"costs",sortable:!1,display:e=>this.alignEnd(this.formatNumber(e.costs,2)+"&nbsp;€")}]}}},computed:{downloadUrl(){const e=parseInt(location.port)||(location.protocol=="https:"?443:80);return`${location.protocol}//${location.hostname}:${e}/openWB/web/settings/downloadChargeLog.php`+`?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(e){let t=e.split("-");this.chargeLogRequestData.year=t[0],this.chargeLogRequestData.month=t[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogDataset:{get(){try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(e=>{var t=Date.parse(e.time.begin),n=Date.parse(e.time.end);return{chargepoint_id:e.chargepoint.id,chargepoint_name:e.chargepoint.name,vehicle_id:e.vehicle.id,vehicle_name:e.vehicle.name,vehicle_chargemode:this.translateChargeMode(e.vehicle.chargemode),vehicle_rfid:e.vehicle.rfid,vehicle_prio:e.vehicle.prio,timestamp_begin:t/1e3,time_begin:this.dateTimeFormat.format(new Date(t)),timestamp_end:n/1e3,time_end:this.dateTimeFormat.format(new Date(n)),time_time_charged:e.time.time_charged,data_power:e.data.power,data_range_charged:e.data.range_charged,data_costs:e.data.costs,data_imported_since_plugged:e.data.imported_since_plugged,data_imported_since_mode_switch:e.data.imported_since_mode_switch}})}catch{return[]}}},chargeLogCsv:{get(){return[["Ladepunkt-ID","Ladepunkt","Fahrzeug-ID","Fahrzeug","Lademodus","Priorität","Beginn","Ende","Zeitstempel Beginn","Zeitstempel Ende","Dauer","Leistung","Energie","Reichweite","Kosten"],...this.chargeLogDataset.map(t=>[t.chargepoint_id,'"'+t.chargepoint_name+'"',t.vehicle_id,'"'+t.vehicle_name+'"','"'+t.vehicle_chargemode+'"','"'+this.translateBool(t.vehicle_prio,!1)+'"','"'+t.time_begin+'"','"'+t.time_end+'"','"'+t.timestamp_begin+'"','"'+t.timestamp_end+'"','"'+t.time_time_charged+'"',this.formatNumber(t.data_power/1e3,3),this.formatNumber(t.data_imported_since_mode_switch/1e3,2),this.formatNumber(t.data_range_charged,0),this.formatNumber(t.data_costs,2)])].map(t=>t.join(";")).join(`
+import{l as C,N as q,O as R,F as k}from"./vendor-fortawesome-ad83e535.js";import{_ as x,$ as E,p as l,k as h,l as m,q as g,A as r,L as s,y as V,z as L,u as d,x as y,Q as F,R as B}from"./vendor-94ac8c48.js";import{C as N}from"./index-bc47a901.js";import"./vendor-sortablejs-dbc23470.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";C.add(q,R);const S={name:"OpenwbChargeLog",components:{Vue3TableLite:E,FontAwesomeIcon:k},mixins:[N],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat("de-DE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0,display:e=>this.alignEnd(e.time_time_charged)},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0,display:e=>this.alignEnd(this.formatNumber(e.data_imported_since_mode_switch/1e3,2)+"&nbsp;kWh / "+this.formatNumber(e.data_range_charged,0)+"&nbsp;km")},{label:"Kosten",field:"data_costs",sortable:!0,display:e=>this.alignEnd(this.formatNumber(e.data_costs,2)+"&nbsp;€")},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0,display:e=>'<div class="td-center tag '+this.getChargeModeClass(e.vehicle_chargemode)+'">'+e.vehicle_chargemode+"</div>"},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Priorität",field:"vehicle_prio",display:e=>this.translateBool(e.vehicle_prio)}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1,display:e=>this.alignEnd(e.time_charged)},{label:"Energie",field:"imported_since_mode_switch",sortable:!1,display:e=>this.alignEnd(this.formatNumber(e.imported_since_mode_switch/1e3,2)+"&nbsp;kWh")},{label:"Reichweite",field:"range_charged",sortable:!1,display:e=>this.alignEnd(this.formatNumber(e.range_charged,0)+"&nbsp;km")},{label:"Kosten",field:"costs",sortable:!1,display:e=>this.alignEnd(this.formatNumber(e.costs,2)+"&nbsp;€")}]}}},computed:{downloadUrl(){const e=parseInt(location.port)||(location.protocol=="https:"?443:80);return`${location.protocol}//${location.hostname}:${e}/openWB/web/settings/downloadChargeLog.php`+`?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(e){let t=e.split("-");this.chargeLogRequestData.year=t[0],this.chargeLogRequestData.month=t[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogDataset:{get(){try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(e=>{var t=Date.parse(e.time.begin),n=Date.parse(e.time.end);return{chargepoint_id:e.chargepoint.id,chargepoint_name:e.chargepoint.name,vehicle_id:e.vehicle.id,vehicle_name:e.vehicle.name,vehicle_chargemode:this.translateChargeMode(e.vehicle.chargemode),vehicle_rfid:e.vehicle.rfid,vehicle_prio:e.vehicle.prio,timestamp_begin:t/1e3,time_begin:this.dateTimeFormat.format(new Date(t)),timestamp_end:n/1e3,time_end:this.dateTimeFormat.format(new Date(n)),time_time_charged:e.time.time_charged,data_power:e.data.power,data_range_charged:e.data.range_charged,data_costs:e.data.costs,data_imported_since_plugged:e.data.imported_since_plugged,data_imported_since_mode_switch:e.data.imported_since_mode_switch}})}catch{return[]}}},chargeLogCsv:{get(){return[["Ladepunkt-ID","Ladepunkt","Fahrzeug-ID","Fahrzeug","Lademodus","Priorität","Beginn","Ende","Zeitstempel Beginn","Zeitstempel Ende","Dauer","Leistung","Energie","Reichweite","Kosten"],...this.chargeLogDataset.map(t=>[t.chargepoint_id,'"'+t.chargepoint_name+'"',t.vehicle_id,'"'+t.vehicle_name+'"','"'+t.vehicle_chargemode+'"','"'+this.translateBool(t.vehicle_prio,!1)+'"','"'+t.time_begin+'"','"'+t.time_end+'"','"'+t.timestamp_begin+'"','"'+t.timestamp_end+'"','"'+t.time_time_charged+'"',this.formatNumber(t.data_power/1e3,3),this.formatNumber(t.data_imported_since_mode_switch/1e3,2),this.formatNumber(t.data_range_charged,0),this.formatNumber(t.data_costs,2)])].map(t=>t.join(";")).join(`
 `)}},chargeLogRead:{get(){return this.chargeLogDataset!=null}},chargeLogHasEntries:{get(){return this.chargeLogDataset==null?!1:this.chargeLogDataset.length>0}},totalRecordCount(){return this.chargeLogDataset.length},chargeModeList(){let e=this.chargeModes.map(t=>({value:t,text:this.translateChargeMode(t)}));return e.unshift({value:void 0,text:"Alle"}),e},chargePointList(){let e=this.getWildcardTopics("openWB/chargepoint/+/config");var t=[{value:void 0,text:"Alle"}];for(const[,n]of Object.entries(e))t.push({value:n.id,text:n.name});return t},vehicleList(){let e=this.getWildcardTopics("openWB/vehicle/+/name");var t=[{value:void 0,text:"Alle"}];for(const[n,c]of Object.entries(e)){let i=parseInt(n.match(/\/([0-9]+)\/name$/)[1]);t.push({value:i,text:c})}return t}},methods:{cleanRequestData(){"id"in this.chargeLogRequestData.filter.chargepoint&&(this.chargeLogRequestData.filter.chargepoint.id=this.chargeLogRequestData.filter.chargepoint.id.filter(e=>e!=null)),"chargemode"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.chargemode=this.chargeLogRequestData.filter.vehicle.chargemode.filter(e=>e!=null)),"id"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.id=this.chargeLogRequestData.filter.vehicle.id.filter(e=>e!=null))},requestChargeLog(){if(document.forms.chargeLogForm.reportValidity())this.cleanRequestData(),this.$emit("sendCommand",{command:"getChargeLog",data:this.chargeLogRequestData});else{console.warn("form invalid");return}},makeTextFile(e){var t=new Blob([e],{type:"text/csv"});return this.downloadFile!==null&&window.URL.revokeObjectURL(this.downloadFile),this.downloadFile=window.URL.createObjectURL(t),this.downloadFile},downloadChargeLog(){this.$refs.downloadChargeLogLink.setAttribute("download","Ladeprotokoll-"+this.chargeLogDate+".csv"),this.$refs.downloadChargeLogLink.href=this.makeTextFile(this.chargeLogCsv),this.$refs.downloadChargeLogLink.dispatchEvent(new MouseEvent("click"))},alignEnd(e){return'<div class="td-end">'+e+"</div>"},alignCenter(e){return'<div class="td-center">'+e+"</div>"},translateBool(e,t=!0){let n="Nein",c="bg-danger";return e&&(n="Ja",c="bg-success"),t?'<div class="td-center tag '+c+'">'+n+"</div>":n},getChargeModeClass(e){switch(e){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",e),"bg-light"}},translateHeading(e){switch(e){case"time_charged":return"Dauer";case"range_charged":return"Reichweite";case"imported_since_mode_switch":return"Energie im Lademodus";case"imported_since_plugged":return"Energie seit Anstecken";case"power":return"Leistung";case"costs":return"Kosten";default:return console.warn("unknown heading:",e),e}}},mounted(){const e=new Date;this.currentMonth=this.chargeLogDate=e.getFullYear()+"-"+String(e.getMonth()+1).padStart(2,"0"),this.requestChargeLog()}},T=e=>(F("data-v-8607e7e7"),e=e(),B(),e),U={class:"chargeLog"},I={name:"chargeLogForm"},W=["href"],M={key:1},A={key:0},O={class:"row justify-content-center"},P={class:"hide",ref:"downloadChargeLogLink"},j=T(()=>g("div",{class:"row"},[g("div",{class:"col"},[g("h2",null,"Summe")])],-1));function z(e,t,n,c,i,a){const v=l("openwb-base-text-input"),p=l("font-awesome-icon"),w=l("openwb-base-button-group-input"),u=l("openwb-base-select-input"),_=l("openwb-base-card"),b=l("openwb-base-alert"),f=l("vue3-table-lite"),D=l("openwb-base-click-button");return h(),m("div",U,[g("form",I,[r(_,{title:"Filter"},{default:s(()=>[r(v,{title:"Zeitraum",subtype:"month",min:"2018-01",showQuickButtons:!0,max:i.currentMonth,modelValue:a.chargeLogDate,"onUpdate:modelValue":[t[0]||(t[0]=o=>a.chargeLogDate=o),t[1]||(t[1]=o=>a.requestChargeLog())]},null,8,["max","modelValue"]),r(_,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:s(()=>[r(p,{"fixed-width":"",icon:["fas","filter"]}),d(" Erweiterte Optionen ")]),default:s(()=>[r(w,{title:"Priorität",buttons:[{buttonValue:void 0,text:"Alle"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:i.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[t[2]||(t[2]=o=>i.chargeLogRequestData.filter.vehicle.prio=o),t[3]||(t[3]=o=>a.requestChargeLog())]},null,8,["modelValue"]),r(u,{title:"Lademodus",multiple:"",options:a.chargeModeList,modelValue:i.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[t[4]||(t[4]=o=>i.chargeLogRequestData.filter.vehicle.chargemode=o),t[5]||(t[5]=o=>a.requestChargeLog())]},{help:s(()=>[d(" Es können mehrere Elemente ausgewählt werden. ")]),_:1},8,["options","modelValue"]),r(u,{title:"Ladepunkt",multiple:"",options:a.chargePointList,modelValue:i.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[t[6]||(t[6]=o=>i.chargeLogRequestData.filter.chargepoint.id=o),t[7]||(t[7]=o=>a.requestChargeLog())]},{help:s(()=>[d(" Es können mehrere Elemente ausgewählt werden. ")]),_:1},8,["options","modelValue"]),r(u,{title:"Fahrzeug",multiple:"",options:a.vehicleList,modelValue:i.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[t[8]||(t[8]=o=>i.chargeLogRequestData.filter.vehicle.id=o),t[9]||(t[9]=o=>a.requestChargeLog())]},{help:s(()=>[d(" Es können mehrere Elemente ausgewählt werden. ")]),_:1},8,["options","modelValue"])]),_:1})]),_:1}),r(b,{subtype:"info"},{default:s(()=>[d(" Das komplette Ladeprotokoll kann automatisiert über folgende URL abgerufen werden: "),g("a",{href:a.downloadUrl},y(a.downloadUrl),9,W)]),_:1}),a.chargeLogRead?(h(),m("div",M,[r(f,{class:"charge-log-table","is-static-mode":!0,columns:i.table.columns,rows:a.chargeLogDataset,total:a.totalRecordCount,sortable:i.table.sortable,messages:i.table.messages,"page-options":i.table.pageOptions,limit:25},null,8,["columns","rows","total","sortable","messages","page-options"]),a.totalRecordCount>0?(h(),m("div",A,[g("div",O,[r(D,{class:"col-4 btn-success",onButtonClicked:t[10]||(t[10]=o=>a.downloadChargeLog())},{default:s(()=>[d(" Als CSV exportieren "),r(p,{"fixed-width":"",icon:["fas","download"]})]),_:1}),g("a",P,null,512)]),j,L(" ToDo: build a table component "),r(f,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:i.totals.columns,rows:a.chargeLogTotals,total:1},null,8,["columns","rows"])])):L("v-if",!0)])):(h(),V(b,{key:0,subtype:"info"},{default:s(()=>[d(" Es wurden noch keine Daten abgerufen. ")]),_:1}))])])}const X=x(S,[["render",z],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{X as default};
diff --git a/web/settings/assets/ChargePointInstallation-5189015b.js b/web/settings/assets/ChargePointInstallation-5189015b.js
new file mode 100644
index 0000000000..05baf746c1
--- /dev/null
+++ b/web/settings/assets/ChargePointInstallation-5189015b.js
@@ -0,0 +1 @@
+import{l as J,d as G,S as Q,A as X,T as Y,U as K,J as ee,V as te,F as ne,W as ae}from"./vendor-fortawesome-ad83e535.js";import{_ as L,C as oe}from"./index-bc47a901.js";import{_ as E}from"./dynamic-import-helper-be004503.js";import{_ as U,p as h,k as l,l as g,y as w,L as o,u as i,x as k,A as n,q as m,a0 as D,a1 as F,G as T,z as c,I,n as M,a2 as O,Q as ie,R as le}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const re={name:"ChargePointConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0},chargePointType:String},methods:{updateConfiguration(e,a=void 0){this.$emit("update:configuration",{value:e,object:a})}}},se={class:"device-fallback"},de={key:1};function ue(e,a,d,P,p,u){const C=h("openwb-base-alert"),b=h("openwb-base-textarea");return l(),g("div",se,[Object.keys(d.configuration).length==0?(l(),w(C,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+k(d.chargePointType)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),g("div",de,[n(C,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+k(d.chargePointType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":d.configuration,"onUpdate:modelValue":a[0]||(a[0]=B=>u.updateConfiguration(B,"configuration"))},{help:o(()=>[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(C,{subtype:"info"},{default:o(()=>[m("pre",null,k(JSON.stringify(d.configuration,void 0,2)),1)]),_:1})]))])}const me=U(re,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),pe={name:"ChargePointCommandsFallback",props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0},chargePointType:String}},ce={class:"charge-point-commands-fallback"};function ge(e,a,d,P,p,u){const C=h("openwb-base-alert");return l(),g("div",ce,[n(C,{subtype:"secondary"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+k(d.chargePointType)+'" bietet keine Befehle an. ',1)]),_:1})])}const he=U(pe,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),fe={name:"OpenwbChargePointProxy",emits:["update:configuration"],props:{chargePointId:{required:!0},chargePointType:{type:String,required:!0},configuration:{type:Object,required:!0},moduleName:{type:String,required:!1,default:void 0}},computed:{myChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePointType}`),D({loader:()=>E(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-07057692.js"),["assets/chargePoint-07057692.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-a56bc604.js"),["assets/chargePoint-a56bc604.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-7200a105.js"),["assets/chargePoint-7200a105.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-80e648c2.js"),["assets/chargePoint-80e648c2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-4a124bb9.js"),["assets/chargePoint-4a124bb9.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-10f32a1a.js"),["assets/chargePoint-10f32a1a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"])}),`./${this.chargePointType}/chargePoint.vue`),errorComponent:me})},myChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePointType}`),D({loader:()=>E(Object.assign({"./openwb_pro/commands.vue":()=>L(()=>import("./commands-e217699c.js"),["assets/commands-e217699c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"])}),`./${this.chargePointType}/commands.vue`),errorComponent:he})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}},be=m("hr",null,null,-1);function _e(e,a,d,P,p,u){const C=h("openwb-base-heading");return l(),g(T,null,[n(C,null,{default:o(()=>[i(" Einstellungen für Ladepunkt "+k(d.moduleName),1)]),_:1}),(l(),w(F(u.myChargePointSettingsComponent),{configuration:d.configuration,chargePointId:d.chargePointId,chargePointType:d.chargePointType,"onUpdate:configuration":a[0]||(a[0]=b=>u.updateConfiguration(b))},null,40,["configuration","chargePointId","chargePointType"])),be,n(C,null,{default:o(()=>[i(" Befehle für Ladepunkt "+k(d.moduleName),1)]),_:1}),(l(),w(F(u.myChargePointCommandsComponent),{configuration:d.configuration,chargePointId:d.chargePointId,chargePointType:d.chargePointType},null,8,["configuration","chargePointId","chargePointType"]))],64)}const ve=U(fe,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);J.add(G,Q,X,Y,K,ee,te);const we={name:"OpenwbChargePointInstallation",mixins:[oe],emits:["sendCommand"],components:{FontAwesomeIcon:ne,FontAwesomeLayers:ae,OpenwbChargePointProxy:ve},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/chargepoint/template/+/autolock/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0,showChargePointTemplateAutolockPlanModal:!1,modalChargePointTemplateAutolockPlanIndex:void 0}},computed:{installedChargePoints:{get(){let e=this.getWildcardTopics("openWB/chargepoint/+/config"),a={};for(const[d,P]of Object.entries(e))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(a[d]=P);return a}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let e=[];return Object.keys(this.chargePointTemplates).forEach(a=>{let d=parseInt(a.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+d].name;e.push({value:d,text:P})}),e}}},methods:{addChargePoint(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(e,a){a.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(e,a){this.showChargePointModal=!1,a=="confirm"&&(console.debug("request removal of charge point '"+e+"'"),this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}}))},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateName(e){return this.$store.state.mqtt["openWB/chargepoint/template/"+e]?this.$store.state.mqtt["openWB/chargepoint/template/"+e].name:"Profil "+e},addChargePointTemplate(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addChargepointTemplate",data:{}})},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},removeChargePointTemplateModal(e,a){a.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(e,a){this.showChargePointTemplateModal=!1,a=="confirm"&&(console.info("request removal of chargePoint template '"+e+"'"),this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}}))},addChargePointTemplateAutolockPlan(e,a){a.stopPropagation(),console.info("requesting new charge point template autolock plan...");let d=this.getChargePointTemplateIndex(e);this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:d}})},removeChargePointTemplateAutolockPlanModal(e,a,d){d.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.modalChargePointTemplateAutolockPlanIndex=parseInt(a.match(/([^/]+)$/)[0]),this.showChargePointTemplateAutolockPlanModal=!0},removeChargePointTemplateAutolockPlan(e,a,d){this.showChargePointTemplateAutolockPlanModal=!1,d=="confirm"&&(console.info("request removal of chargePoint template '"+e+"' autolock plan '"+a+"'"),this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:e,plan:a}}))},getChargePointTemplateAutolockPlanName(e,a){return this.$store.state.mqtt["openWB/chargepoint/template/"+e+"/autolock/"+a]?this.$store.state.mqtt["openWB/chargepoint/template/"+e+"/autolock/"+a].name:"Autolock Zeitplan "+e+"/"+a},getChargePointTemplateAutolockPlans(e){let a=this.getChargePointTemplateIndex(e);return this.getWildcardTopics("openWB/chargepoint/template/"+a+"/autolock/+")},updateConfiguration(e,a){console.debug("updateConfiguration",e,a),this.updateState(e,a.value,a.object)}}},_=e=>(ie("data-v-75fe5743"),e=e(),le(),e),ke={class:"chargePointInstallation"},Ce={name:"chargePointInstallationForm"},ye={key:0},Pe=_(()=>m("hr",null,null,-1)),Ve={key:1},Le=_(()=>m("hr",null,null,-1)),We=_(()=>m("br",null,null,-1)),Te=_(()=>m("br",null,null,-1)),Be=_(()=>m("br",null,null,-1)),Se=_(()=>m("br",null,null,-1)),Ae={key:1},xe={class:"col-1"},Ie=_(()=>m("br",null,null,-1)),Ue=_(()=>m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Externe openWB - wenn diese openWB (primary) die Fernsteuerung von externen openWB (secondary) übernimmt "),m("li",null," MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen "),m("li",null," openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt "),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)),ze=_(()=>m("hr",{class:"border-secondary"},null,-1)),qe={key:0},Ee={key:1},De=_(()=>m("hr",null,null,-1)),Fe={key:0},Me=_(()=>m("br",null,null,-1)),Oe=["innerHTML"],Ne=_(()=>m("hr",null,null,-1)),je=_(()=>m("br",null,null,-1)),Re=_(()=>m("br",null,null,-1)),Ze=_(()=>m("a",{href:"https://github.com/openWB/core/wiki/Lastmanagement-und-kaskadierte-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"},"Wiki zum Lastmanagement",-1)),$e=_(()=>m("hr",null,null,-1)),He={key:0},Je={key:1},Ge={key:2},Qe={key:2};function Xe(e,a,d,P,p,u){const C=h("openwb-base-modal-dialog"),b=h("font-awesome-icon"),B=h("openwb-base-alert"),S=h("openwb-base-avatar"),V=h("openwb-base-text-input"),z=h("openwb-base-select-input"),N=h("openwb-charge-point-proxy"),W=h("openwb-base-heading"),y=h("openwb-base-button-group-input"),A=h("openwb-base-card"),j=h("openwb-base-click-button"),R=h("font-awesome-layers"),Z=h("openwb-base-array-input"),q=h("openwb-base-range-input"),$=h("openwb-base-submit-buttons");return l(),g(T,null,[c(" modal dialogs "),n(C,{show:p.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[0]||(a[0]=r=>u.removeChargePoint(p.modalChargePointIndex,r))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+k(u.getChargePointName(p.modalChargePointIndex))+'" (ID: '+k(p.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),n(C,{show:p.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[1]||(a[1]=r=>u.removeChargePointTemplate(p.modalChargePointTemplateIndex,r))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+k(u.getChargePointTemplateName(p.modalChargePointTemplateIndex))+'" (ID: '+k(p.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),n(C,{show:p.showChargePointTemplateAutolockPlanModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[2]||(a[2]=r=>u.removeChargePointTemplateAutolockPlan(p.modalChargePointTemplateIndex,p.modalChargePointTemplateAutolockPlanIndex,r))},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+k(u.getChargePointTemplateAutolockPlanName(p.modalChargePointTemplateIndex,p.modalChargePointTemplateAutolockPlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),c(" main content "),m("div",ke,[m("form",Ce,[c(" charge point card "),n(A,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!0},{header:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),i(" Ladepunkte ")]),default:o(()=>[Object.keys(u.installedChargePoints).length>1?(l(),w(B,{key:0,subtype:"danger"},{default:o(()=>[i(' Wenn mehrere Ladepunkte mit unterschiedlichen Lademodi genutzt werden, so ist für jeden Ladepunkt ein eigenes "Fahrzeug" (mit eigenem "Ladeprofil") anzulegen und dem jeweiligen LP auf der Hauptseite zuzuordnen. Diese Abhängigkeit wird mittelfristig noch bereinigt. ')]),_:1})):c("v-if",!0),(l(!0),g(T,null,I(u.installedChargePoints,(r,s)=>(l(),w(A,{key:s,title:r.name+" (ID: "+r.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(t=>[t.collapsed?c("v-if",!0):(l(),w(S,{key:0,class:"bg-danger clickable",onClick:v=>u.removeChargePointModal(s,v)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[n(V,{title:"Bezeichnung",subtype:"text","model-value":r.name,"onUpdate:modelValue":t=>e.updateState(s,t,"name")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":e.$store.state.mqtt[s].type},null,8,["model-value"]),r.type!=="internal_openwb"||e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),g("span",ye,[n(z,{title:"Ladepunkt-Profil",options:u.chargePointTemplateList,"model-value":e.$store.state.mqtt[s].template,"onUpdate:modelValue":t=>e.updateState(s,t,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):c("v-if",!0),Pe,n(N,{chargePointId:r.id,chargePointType:e.$store.state.mqtt[s].type,moduleName:e.$store.state.mqtt[s].name,configuration:r.configuration,"onUpdate:configuration":t=>u.updateConfiguration(s,t)},null,8,["chargePointId","chargePointType","moduleName","configuration","onUpdate:configuration"]),r.type!=="internal_openwb"||e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),g("div",Ve,[Le,n(W,null,{default:o(()=>[i("Hardware-Optionen")]),_:1}),n(y,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.auto_phase_switch_hw,"onUpdate:modelValue":t=>e.updateState(s,t,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.control_pilot_interruption_hw,"onUpdate:modelValue":t=>e.updateState(s,t,"control_pilot_interruption_hw")},{help:o(()=>[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(W,null,{default:o(()=>[i(" Elektrischer Anschluss ")]),_:1}),n(y,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.connected_phases,"onUpdate:modelValue":t=>e.updateState(s,t,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:0,text:"unbekannt",class:"btn-outline-danger"},{buttonValue:1,text:"EVU L1",class:"btn-outline-success"},{buttonValue:2,text:"EVU L2",class:"btn-outline-success"},{buttonValue:3,text:"EVU L3",class:"btn-outline-success"}],"model-value":r.phase_1,"onUpdate:modelValue":t=>e.updateState(s,t,"phase_1")},{help:o(()=>[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln."),We,i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.'),Te,i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1)."),Be,i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden."),Se,i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ")]),_:2},1032,["model-value","onUpdate:modelValue"])])):c("v-if",!0)]),_:2},1032,["title"]))),128)),Object.keys(u.installedChargePoints).length>0?(l(),g("hr",Ae)):c("v-if",!0),n(z,{class:"mb-2",title:"Verfügbare Ladepunkte",notSelected:"Bitte auswählen",options:u.getChargePointList(),"model-value":p.chargePointToAdd,"onUpdate:modelValue":a[3]||(a[3]=r=>p.chargePointToAdd=r)},{append:o(()=>[m("span",xe,[n(j,{class:M(p.chargePointToAdd===void 0?"btn-outline-success":"btn-success"),disabled:p.chargePointToAdd===void 0,onButtonClicked:u.addChargePoint},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["class","disabled","onButtonClicked"])])]),help:o(()=>[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll."),Ie,Ue]),_:1},8,["options","model-value"])]),_:1}),ze,c(" charge point template card "),n(A,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[n(R,{"fixed-width":"",class:"fa-lg"},{default:o(()=>[n(b,{"fixed-width":"",icon:["far","file"]}),n(b,{"fixed-width":"",icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),i(" Ladepunkt-Profile ")]),actions:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),w(S,{key:0,class:"bg-success clickable",onClick:u.addChargePointTemplate},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):c("v-if",!0)]),default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),g("div",qe,[n(B,{subtype:"info"},{default:o(()=>[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),g("div",Ee,[(l(!0),g(T,null,I(u.chargePointTemplates,(r,s)=>(l(),w(A,{key:s,title:r.name+" (ID: "+u.getChargePointTemplateIndex(s)+")",collapsible:!0,collapsed:!0},O({default:o(()=>[n(V,{title:"Bezeichnung",subtype:"text","model-value":r.name,"onUpdate:modelValue":t=>e.updateState(s,t,"name"),disabled:s.endsWith("/0")},O({_:2},[s.endsWith("/0")?{name:"help",fn:o(()=>[i(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),De,e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(l(),g("div",Fe,[n(W,null,{default:o(()=>[i(" Zugangskontrolle ")]),_:1}),n(y,{title:"Freigabe mit RFID",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.rfid_enabling,"onUpdate:modelValue":t=>e.updateState(s,t,"rfid_enabling")},null,8,["model-value","onUpdate:modelValue"]),n(Z,{title:"Zugeordnete Tags",noElementsMessage:"Keine Tags zugeordnet.","model-value":r.valid_tags,"onUpdate:modelValue":t=>e.updateState(s,t,"valid_tags")},{help:o(()=>[i(" An allen Ladepunkten, denen dieses Ladepunkt-Profil zugeordnet ist, können die hier eingetragenen Tags verwendet werden."),Me,m("span",{innerHTML:e.$store.state.text.rfidWiki},null,8,Oe)]),_:2},1032,["model-value","onUpdate:modelValue"]),Ne])):c("v-if",!0),n(W,null,{default:o(()=>[i("Angaben zum konfigurierten Ladestrom der openWB ")]),_:1}),n(B,{subtype:"info"},{default:o(()=>[i(" Hier werden die maximalen Ladeströme entsprechend den in der zugeordneten Wallbox genutzten Phasen eingestellt."),je,i(" Generell gilt, dass diese Werte entsprechend der Ausführung der Wallbox und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen."),Re,i(" Komplexere Installationen mit mehreren Wallboxen werden im "),Ze,i(" beschrieben. ")]),_:1}),n(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":t=>e.updateState(s,t,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),n(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":t=>e.updateState(s,t,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),$e,n(W,null,{default:o(()=>[i("Automatische Sperre")]),_:1}),n(y,{title:"Automatische Sperre aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.autolock.active,"onUpdate:modelValue":t=>e.updateState(s,t,"autolock.active")},{help:o(()=>[i(" Wird die automatische Sperre aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(y,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.autolock.wait_for_charging_end,"onUpdate:modelValue":t=>e.updateState(s,t,"autolock.wait_for_charging_end")},{help:o(()=>[i(' Wenn ein Zeitplan die automatische Sperre aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(W,null,{actions:o(()=>[n(S,{class:"bg-success clickable",onClick:t=>u.addChargePointTemplateAutolockPlan(s,t)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[i(" Zeitpläne für die automatische Sperre ")]),_:2},1024),(l(!0),g(T,null,I(u.getChargePointTemplateAutolockPlans(s),(t,v)=>(l(),w(A,{key:v,title:t.name,collapsible:!0,collapsed:!0},{actions:o(f=>[f.collapsed==!0?(l(),g("span",{key:0,class:M(["subheader pill",t.active?"bg-success":"bg-danger"])},[n(b,{"fixed-width":"",icon:["fas","clock"]}),i(" "+k(t.time[0])+" - "+k(t.time[1])+" ",1),t.frequency.selected=="once"?(l(),g("span",He,[n(b,{"fixed-width":"",icon:["fas","calendar-day"]}),i(" "+k(e.formatDate(t.frequency.once[0])==e.formatDate(t.frequency.once[1])?e.formatDate(t.frequency.once[0]):e.formatDate(t.frequency.once[0])+" - "+e.formatDate(t.frequency.once[1])),1)])):c("v-if",!0),t.frequency.selected=="daily"?(l(),g("span",Je,[n(b,{"fixed-width":"",icon:["fas","calendar-week"]})])):c("v-if",!0),t.frequency.selected=="weekly"?(l(),g("span",Ge,[n(b,{"fixed-width":"",icon:["fas","calendar-alt"]})])):c("v-if",!0)],2)):c("v-if",!0),f.collapsed==!1?(l(),w(S,{key:1,class:"bg-danger clickable",onClick:x=>u.removeChargePointTemplateAutolockPlanModal(s,v,x)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):c("v-if",!0)]),default:o(()=>[n(V,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":f=>e.updateState(v,f,"name")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":f=>e.updateState(v,f,"active")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Sperren um",subtype:"time","model-value":t.time[0],"onUpdate:modelValue":f=>e.updateState(v,f,"time.0")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Freigeben um",subtype:"time","model-value":t.time[1],"onUpdate:modelValue":f=>e.updateState(v,f,"time.1")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}],"model-value":t.frequency.selected,"onUpdate:modelValue":f=>e.updateState(v,f,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(l(),w(V,{key:0,title:"Sperren ab ...",subtype:"date","model-value":t.frequency.once[0],"onUpdate:modelValue":f=>e.updateState(v,f,"frequency.once.0")},null,8,["model-value","onUpdate:modelValue"])):c("v-if",!0),t.frequency.selected=="once"?(l(),w(V,{key:1,title:"... bis",subtype:"date",min:t.frequency.once[0],"model-value":t.frequency.once[1],"onUpdate:modelValue":f=>e.updateState(v,f,"frequency.once.1")},null,8,["min","model-value","onUpdate:modelValue"])):c("v-if",!0),t.frequency.selected=="weekly"?(l(),g("div",Qe,[(l(!0),g(T,null,I(e.weekdays,(f,x)=>(l(),w(y,{key:x,title:f,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[x],"onUpdate:modelValue":H=>e.updateState(v,H,"frequency.weekly."+x)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):c("v-if",!0)]),_:2},1032,["title"]))),128))]),_:2},[s.endsWith("/0")?void 0:{name:"actions",fn:o(t=>[t.collapsed?c("v-if",!0):(l(),w(S,{key:0,class:"bg-danger clickable",onClick:v=>u.removeChargePointTemplateModal(s,v)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}]),1032,["title"]))),128))]))]),_:1}),n($,{formName:"chargePointInstallationForm",onSave:a[4]||(a[4]=r=>e.$emit("save")),onReset:a[5]||(a[5]=r=>e.$emit("reset")),onDefaults:a[6]||(a[6]=r=>e.$emit("defaults"))})])])],64)}const lt=U(we,[["render",Xe],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]);export{lt as default};
diff --git a/web/settings/assets/ChargePointInstallation-e9afcc08.js b/web/settings/assets/ChargePointInstallation-e9afcc08.js
deleted file mode 100644
index 4f89bb6efa..0000000000
--- a/web/settings/assets/ChargePointInstallation-e9afcc08.js
+++ /dev/null
@@ -1 +0,0 @@
-import{l as J,d as G,S as Q,A as X,T as Y,U as K,J as ee,V as te,F as ne,W as ae}from"./vendor-fortawesome-838df0c9.js";import{_ as L,C as oe}from"./index-2a1b0c80.js";import{_ as E}from"./dynamic-import-helper-be004503.js";import{_ as U,p as h,k as l,l as g,A as n,L as o,u as i,x as k,q as u,a0 as D,y as w,a1 as F,G as T,z as c,I,n as M,a2 as O,Q as ie,R as le}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const re={name:"ChargePointConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0},chargePointType:String},methods:{updateConfiguration(e,a=void 0){this.$emit("update:configuration",{value:e,object:a})}}},se={class:"device-fallback"};function de(e,a,m,y,p,d){const C=h("openwb-base-alert"),b=h("openwb-base-textarea");return l(),g("div",se,[n(C,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+k(m.chargePointType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":m.configuration,"onUpdate:modelValue":a[0]||(a[0]=B=>d.updateConfiguration(B,"configuration"))},{help:o(()=>[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(C,{subtype:"info"},{default:o(()=>[u("pre",null,k(JSON.stringify(m.configuration,void 0,2)),1)]),_:1})])}const ue=U(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),me={name:"ChargePointCommandsFallback",props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0},chargePointType:String}},pe={class:"charge-point-commands-fallback"};function ce(e,a,m,y,p,d){const C=h("openwb-base-alert");return l(),g("div",pe,[n(C,{subtype:"secondary"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+k(m.chargePointType)+'" bietet keine Befehle an. ',1)]),_:1})])}const ge=U(me,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),he={name:"OpenwbChargePointProxy",emits:["update:configuration"],props:{chargePointId:{required:!0},chargePointType:{type:String,required:!0},configuration:{type:Object,required:!0},moduleName:{type:String,required:!1,default:void 0}},computed:{myChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePointType}`),D({loader:()=>E(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-9ab109c4.js"),["assets/chargePoint-9ab109c4.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-75b0bdf9.js"),["assets/chargePoint-75b0bdf9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-9f9283b5.js"),["assets/chargePoint-9f9283b5.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-792da849.js"),["assets/chargePoint-792da849.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-83d3ee27.js"),["assets/chargePoint-83d3ee27.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-47a32a91.js"),["assets/chargePoint-47a32a91.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"])}),`./${this.chargePointType}/chargePoint.vue`),errorComponent:ue})},myChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePointType}`),D({loader:()=>E(Object.assign({"./openwb_pro/commands.vue":()=>L(()=>import("./commands-dfab65eb.js"),["assets/commands-dfab65eb.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"])}),`./${this.chargePointType}/commands.vue`),errorComponent:ge})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}},fe=u("hr",null,null,-1);function be(e,a,m,y,p,d){const C=h("openwb-base-heading");return l(),g(T,null,[n(C,null,{default:o(()=>[i(" Einstellungen für Ladepunkt "+k(m.moduleName),1)]),_:1}),(l(),w(F(d.myChargePointSettingsComponent),{configuration:m.configuration,chargePointId:m.chargePointId,chargePointType:m.chargePointType,"onUpdate:configuration":a[0]||(a[0]=b=>d.updateConfiguration(b))},null,40,["configuration","chargePointId","chargePointType"])),fe,n(C,null,{default:o(()=>[i(" Befehle für Ladepunkt "+k(m.moduleName),1)]),_:1}),(l(),w(F(d.myChargePointCommandsComponent),{configuration:m.configuration,chargePointId:m.chargePointId,chargePointType:m.chargePointType},null,8,["configuration","chargePointId","chargePointType"]))],64)}const _e=U(he,[["render",be],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);J.add(G,Q,X,Y,K,ee,te);const ve={name:"OpenwbChargePointInstallation",mixins:[oe],emits:["sendCommand"],components:{FontAwesomeIcon:ne,FontAwesomeLayers:ae,OpenwbChargePointProxy:_e},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/chargepoint/template/+/autolock/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0,showChargePointTemplateAutolockPlanModal:!1,modalChargePointTemplateAutolockPlanIndex:void 0}},computed:{installedChargePoints:{get(){let e=this.getWildcardTopics("openWB/chargepoint/+/config"),a={};for(const[m,y]of Object.entries(e))(y.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(a[m]=y);return a}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let e=[];return Object.keys(this.chargePointTemplates).forEach(a=>{let m=parseInt(a.match(/([0-9]+)/g)[0]),y=this.$store.state.mqtt["openWB/chargepoint/template/"+m].name;e.push({value:m,text:y})}),e}}},methods:{addChargePoint(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(e,a){a.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(e,a){this.showChargePointModal=!1,a=="confirm"&&(console.debug("request removal of charge point '"+e+"'"),this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}}))},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateName(e){return this.$store.state.mqtt["openWB/chargepoint/template/"+e]?this.$store.state.mqtt["openWB/chargepoint/template/"+e].name:"Profil "+e},addChargePointTemplate(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addChargepointTemplate",data:{}})},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},removeChargePointTemplateModal(e,a){a.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(e,a){this.showChargePointTemplateModal=!1,a=="confirm"&&(console.info("request removal of chargePoint template '"+e+"'"),this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}}))},addChargePointTemplateAutolockPlan(e,a){a.stopPropagation(),console.info("requesting new charge point template autolock plan...");let m=this.getChargePointTemplateIndex(e);this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:m}})},removeChargePointTemplateAutolockPlanModal(e,a,m){m.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.modalChargePointTemplateAutolockPlanIndex=parseInt(a.match(/([^/]+)$/)[0]),this.showChargePointTemplateAutolockPlanModal=!0},removeChargePointTemplateAutolockPlan(e,a,m){this.showChargePointTemplateAutolockPlanModal=!1,m=="confirm"&&(console.info("request removal of chargePoint template '"+e+"' autolock plan '"+a+"'"),this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:e,plan:a}}))},getChargePointTemplateAutolockPlanName(e,a){return this.$store.state.mqtt["openWB/chargepoint/template/"+e+"/autolock/"+a]?this.$store.state.mqtt["openWB/chargepoint/template/"+e+"/autolock/"+a].name:"Autolock Zeitplan "+e+"/"+a},getChargePointTemplateAutolockPlans(e){let a=this.getChargePointTemplateIndex(e);return this.getWildcardTopics("openWB/chargepoint/template/"+a+"/autolock/+")},updateConfiguration(e,a){console.debug("updateConfiguration",e,a),this.updateState(e,a.value,a.object)}}},_=e=>(ie("data-v-75fe5743"),e=e(),le(),e),we={class:"chargePointInstallation"},ke={name:"chargePointInstallationForm"},Ce={key:0},Pe=_(()=>u("hr",null,null,-1)),ye={key:1},Ve=_(()=>u("hr",null,null,-1)),Le=_(()=>u("br",null,null,-1)),We=_(()=>u("br",null,null,-1)),Te=_(()=>u("br",null,null,-1)),Be=_(()=>u("br",null,null,-1)),Se={key:1},Ae={class:"col-1"},xe=_(()=>u("br",null,null,-1)),Ie=_(()=>u("ul",null,[u("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),u("li",null," Externe openWB - wenn diese openWB (primary) die Fernsteuerung von externen openWB (secondary) übernimmt "),u("li",null," MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen "),u("li",null," openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt "),u("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),u("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)),Ue=_(()=>u("hr",{class:"border-secondary"},null,-1)),ze={key:0},qe={key:1},Ee=_(()=>u("hr",null,null,-1)),De={key:0},Fe=_(()=>u("br",null,null,-1)),Me=["innerHTML"],Oe=_(()=>u("hr",null,null,-1)),Ne=_(()=>u("br",null,null,-1)),je=_(()=>u("br",null,null,-1)),Re=_(()=>u("a",{href:"https://github.com/openWB/core/wiki/Lastmanagement-und-kaskadierte-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"},"Wiki zum Lastmanagement",-1)),Ze=_(()=>u("hr",null,null,-1)),$e={key:0},He={key:1},Je={key:2},Ge={key:2};function Qe(e,a,m,y,p,d){const C=h("openwb-base-modal-dialog"),b=h("font-awesome-icon"),B=h("openwb-base-alert"),S=h("openwb-base-avatar"),V=h("openwb-base-text-input"),z=h("openwb-base-select-input"),N=h("openwb-charge-point-proxy"),W=h("openwb-base-heading"),P=h("openwb-base-button-group-input"),A=h("openwb-base-card"),j=h("openwb-base-click-button"),R=h("font-awesome-layers"),Z=h("openwb-base-array-input"),q=h("openwb-base-range-input"),$=h("openwb-base-submit-buttons");return l(),g(T,null,[c(" modal dialogs "),n(C,{show:p.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[0]||(a[0]=r=>d.removeChargePoint(p.modalChargePointIndex,r))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+k(d.getChargePointName(p.modalChargePointIndex))+'" (ID: '+k(p.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),n(C,{show:p.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[1]||(a[1]=r=>d.removeChargePointTemplate(p.modalChargePointTemplateIndex,r))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+k(d.getChargePointTemplateName(p.modalChargePointTemplateIndex))+'" (ID: '+k(p.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),n(C,{show:p.showChargePointTemplateAutolockPlanModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[2]||(a[2]=r=>d.removeChargePointTemplateAutolockPlan(p.modalChargePointTemplateIndex,p.modalChargePointTemplateAutolockPlanIndex,r))},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+k(d.getChargePointTemplateAutolockPlanName(p.modalChargePointTemplateIndex,p.modalChargePointTemplateAutolockPlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),c(" main content "),u("div",we,[u("form",ke,[c(" charge point card "),n(A,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!0},{header:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),i(" Ladepunkte ")]),default:o(()=>[Object.keys(d.installedChargePoints).length>1?(l(),w(B,{key:0,subtype:"danger"},{default:o(()=>[i(' Wenn mehrere Ladepunkte mit unterschiedlichen Lademodi genutzt werden, so ist für jeden Ladepunkt ein eigenes "Fahrzeug" (mit eigenem "Ladeprofil") anzulegen und dem jeweiligen LP auf der Hauptseite zuzuordnen. Diese Abhängigkeit wird mittelfristig noch bereinigt. ')]),_:1})):c("v-if",!0),(l(!0),g(T,null,I(d.installedChargePoints,(r,s)=>(l(),w(A,{key:s,title:r.name+" (ID: "+r.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(t=>[t.collapsed?c("v-if",!0):(l(),w(S,{key:0,class:"bg-danger clickable",onClick:v=>d.removeChargePointModal(s,v)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[n(V,{title:"Bezeichnung",subtype:"text","model-value":r.name,"onUpdate:modelValue":t=>e.updateState(s,t,"name")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":e.$store.state.mqtt[s].type},null,8,["model-value"]),r.type!=="internal_openwb"||e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),g("span",Ce,[n(z,{title:"Ladepunkt-Profil",options:d.chargePointTemplateList,"model-value":e.$store.state.mqtt[s].template,"onUpdate:modelValue":t=>e.updateState(s,t,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):c("v-if",!0),Pe,n(N,{chargePointId:r.id,chargePointType:e.$store.state.mqtt[s].type,moduleName:e.$store.state.mqtt[s].name,configuration:r.configuration,"onUpdate:configuration":t=>d.updateConfiguration(s,t)},null,8,["chargePointId","chargePointType","moduleName","configuration","onUpdate:configuration"]),r.type!=="internal_openwb"||e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),g("div",ye,[Ve,n(W,null,{default:o(()=>[i("Hardware-Optionen")]),_:1}),n(P,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.auto_phase_switch_hw,"onUpdate:modelValue":t=>e.updateState(s,t,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),n(P,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.control_pilot_interruption_hw,"onUpdate:modelValue":t=>e.updateState(s,t,"control_pilot_interruption_hw")},{help:o(()=>[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(W,null,{default:o(()=>[i(" Elektrischer Anschluss ")]),_:1}),n(P,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.connected_phases,"onUpdate:modelValue":t=>e.updateState(s,t,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),n(P,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:0,text:"unbekannt",class:"btn-outline-danger"},{buttonValue:1,text:"EVU L1",class:"btn-outline-success"},{buttonValue:2,text:"EVU L2",class:"btn-outline-success"},{buttonValue:3,text:"EVU L3",class:"btn-outline-success"}],"model-value":r.phase_1,"onUpdate:modelValue":t=>e.updateState(s,t,"phase_1")},{help:o(()=>[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln."),Le,i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.'),We,i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1)."),Te,i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden."),Be,i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ")]),_:2},1032,["model-value","onUpdate:modelValue"])])):c("v-if",!0)]),_:2},1032,["title"]))),128)),Object.keys(d.installedChargePoints).length>0?(l(),g("hr",Se)):c("v-if",!0),n(z,{class:"mb-2",title:"Verfügbare Ladepunkte",notSelected:"Bitte auswählen",options:d.getChargePointList(),"model-value":p.chargePointToAdd,"onUpdate:modelValue":a[3]||(a[3]=r=>p.chargePointToAdd=r)},{append:o(()=>[u("span",Ae,[n(j,{class:M(p.chargePointToAdd===void 0?"btn-outline-success":"btn-success"),disabled:p.chargePointToAdd===void 0,onButtonClicked:d.addChargePoint},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["class","disabled","onButtonClicked"])])]),help:o(()=>[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll."),xe,Ie]),_:1},8,["options","model-value"])]),_:1}),Ue,c(" charge point template card "),n(A,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[n(R,{"fixed-width":"",class:"fa-lg"},{default:o(()=>[n(b,{"fixed-width":"",icon:["far","file"]}),n(b,{"fixed-width":"",icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),i(" Ladepunkt-Profile ")]),actions:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),w(S,{key:0,class:"bg-success clickable",onClick:d.addChargePointTemplate},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):c("v-if",!0)]),default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),g("div",ze,[n(B,{subtype:"info"},{default:o(()=>[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),g("div",qe,[(l(!0),g(T,null,I(d.chargePointTemplates,(r,s)=>(l(),w(A,{key:s,title:r.name+" (ID: "+d.getChargePointTemplateIndex(s)+")",collapsible:!0,collapsed:!0},O({default:o(()=>[n(V,{title:"Bezeichnung",subtype:"text","model-value":r.name,"onUpdate:modelValue":t=>e.updateState(s,t,"name"),disabled:s.endsWith("/0")},O({_:2},[s.endsWith("/0")?{name:"help",fn:o(()=>[i(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),Ee,e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(l(),g("div",De,[n(W,null,{default:o(()=>[i(" Zugangskontrolle ")]),_:1}),n(P,{title:"Freigabe mit RFID",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.rfid_enabling,"onUpdate:modelValue":t=>e.updateState(s,t,"rfid_enabling")},null,8,["model-value","onUpdate:modelValue"]),n(Z,{title:"Zugeordnete Tags",noElementsMessage:"Keine Tags zugeordnet.","model-value":r.valid_tags,"onUpdate:modelValue":t=>e.updateState(s,t,"valid_tags")},{help:o(()=>[i(" An allen Ladepunkten, denen dieses Ladepunkt-Profil zugeordnet ist, können die hier eingetragenen Tags verwendet werden."),Fe,u("span",{innerHTML:e.$store.state.text.rfidWiki},null,8,Me)]),_:2},1032,["model-value","onUpdate:modelValue"]),Oe])):c("v-if",!0),n(W,null,{default:o(()=>[i("Angaben zum konfigurierten Ladestrom der openWB ")]),_:1}),n(B,{subtype:"info"},{default:o(()=>[i(" Hier werden die maximalen Ladeströme entsprechend den in der zugeordneten Wallbox genutzten Phasen eingestellt."),Ne,i(" Generell gilt, dass diese Werte entsprechend der Ausführung der Wallbox und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen."),je,i(" Komplexere Installationen mit mehreren Wallboxen werden im "),Re,i(" beschrieben. ")]),_:1}),n(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":t=>e.updateState(s,t,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),n(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":t=>e.updateState(s,t,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),Ze,n(W,null,{default:o(()=>[i("Automatische Sperre")]),_:1}),n(P,{title:"Automatische Sperre aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.autolock.active,"onUpdate:modelValue":t=>e.updateState(s,t,"autolock.active")},{help:o(()=>[i(" Wird die automatische Sperre aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(P,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":r.autolock.wait_for_charging_end,"onUpdate:modelValue":t=>e.updateState(s,t,"autolock.wait_for_charging_end")},{help:o(()=>[i(' Wenn ein Zeitplan die automatische Sperre aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(W,null,{actions:o(()=>[n(S,{class:"bg-success clickable",onClick:t=>d.addChargePointTemplateAutolockPlan(s,t)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[i(" Zeitpläne für die automatische Sperre ")]),_:2},1024),(l(!0),g(T,null,I(d.getChargePointTemplateAutolockPlans(s),(t,v)=>(l(),w(A,{key:v,title:t.name,collapsible:!0,collapsed:!0},{actions:o(f=>[f.collapsed==!0?(l(),g("span",{key:0,class:M(["subheader pill",t.active?"bg-success":"bg-danger"])},[n(b,{"fixed-width":"",icon:["fas","clock"]}),i(" "+k(t.time[0])+" - "+k(t.time[1])+" ",1),t.frequency.selected=="once"?(l(),g("span",$e,[n(b,{"fixed-width":"",icon:["fas","calendar-day"]}),i(" "+k(e.formatDate(t.frequency.once[0])==e.formatDate(t.frequency.once[1])?e.formatDate(t.frequency.once[0]):e.formatDate(t.frequency.once[0])+" - "+e.formatDate(t.frequency.once[1])),1)])):c("v-if",!0),t.frequency.selected=="daily"?(l(),g("span",He,[n(b,{"fixed-width":"",icon:["fas","calendar-week"]})])):c("v-if",!0),t.frequency.selected=="weekly"?(l(),g("span",Je,[n(b,{"fixed-width":"",icon:["fas","calendar-alt"]})])):c("v-if",!0)],2)):c("v-if",!0),f.collapsed==!1?(l(),w(S,{key:1,class:"bg-danger clickable",onClick:x=>d.removeChargePointTemplateAutolockPlanModal(s,v,x)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):c("v-if",!0)]),default:o(()=>[n(V,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":f=>e.updateState(v,f,"name")},null,8,["model-value","onUpdate:modelValue"]),n(P,{title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":f=>e.updateState(v,f,"active")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Sperren um",subtype:"time","model-value":t.time[0],"onUpdate:modelValue":f=>e.updateState(v,f,"time.0")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Freigeben um",subtype:"time","model-value":t.time[1],"onUpdate:modelValue":f=>e.updateState(v,f,"time.1")},null,8,["model-value","onUpdate:modelValue"]),n(P,{title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}],"model-value":t.frequency.selected,"onUpdate:modelValue":f=>e.updateState(v,f,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(l(),w(V,{key:0,title:"Sperren ab ...",subtype:"date","model-value":t.frequency.once[0],"onUpdate:modelValue":f=>e.updateState(v,f,"frequency.once.0")},null,8,["model-value","onUpdate:modelValue"])):c("v-if",!0),t.frequency.selected=="once"?(l(),w(V,{key:1,title:"... bis",subtype:"date",min:t.frequency.once[0],"model-value":t.frequency.once[1],"onUpdate:modelValue":f=>e.updateState(v,f,"frequency.once.1")},null,8,["min","model-value","onUpdate:modelValue"])):c("v-if",!0),t.frequency.selected=="weekly"?(l(),g("div",Ge,[(l(!0),g(T,null,I(e.weekdays,(f,x)=>(l(),w(P,{key:x,title:f,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[x],"onUpdate:modelValue":H=>e.updateState(v,H,"frequency.weekly."+x)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):c("v-if",!0)]),_:2},1032,["title"]))),128))]),_:2},[s.endsWith("/0")?void 0:{name:"actions",fn:o(t=>[t.collapsed?c("v-if",!0):(l(),w(S,{key:0,class:"bg-danger clickable",onClick:v=>d.removeChargePointTemplateModal(s,v)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}]),1032,["title"]))),128))]))]),_:1}),n($,{formName:"chargePointInstallationForm",onSave:a[4]||(a[4]=r=>e.$emit("save")),onReset:a[5]||(a[5]=r=>e.$emit("reset")),onDefaults:a[6]||(a[6]=r=>e.$emit("defaults"))})])])],64)}const it=U(ve,[["render",Qe],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]);export{it as default};
diff --git a/web/settings/assets/Chart-19a8a4c0.js b/web/settings/assets/Chart-0d3a0216.js
similarity index 97%
rename from web/settings/assets/Chart-19a8a4c0.js
rename to web/settings/assets/Chart-0d3a0216.js
index 163e84026d..1ee67b79e7 100644
--- a/web/settings/assets/Chart-19a8a4c0.js
+++ b/web/settings/assets/Chart-0d3a0216.js
@@ -1 +1 @@
-import{l as T,J as L,K as q,L as H,M as j,P as O,Q as M,F as z}from"./vendor-fortawesome-838df0c9.js";import{C as E}from"./index-2a1b0c80.js";import{C as V,p as B,a as F,L as P,b as N,P as $,c as J,T as X,i as Z,d as K,e as G,g as Q}from"./vendor-chartjs-93103a11.js";import{_ as U,p,k as n,l as o,q as v,A as c,L as d,y as g,u as y,G as x,I as k,x as C,z as R}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";import"./vendor-luxon-1af9332f.js";T.add(L,q,H,j,O,M);V.register(B,F,P,N,$,J,X,Z,K);const Y={name:"OpenwbChart",components:{ChartjsLine:G,FontAwesomeIcon:z},mixins:[E],emits:["sendCommand"],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let a=e.split("-");this.chartRequestDate.year=a[0],a.length>1?this.chartRequestDate.month=a[1]:this.chartRequestDate.month="",a.length>2?this.chartRequestDate.day=a[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day,day:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month,month:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year,year:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var a=JSON.parse(JSON.stringify(e)).map(r=>(r.timestamp=r.timestamp*1e3,r));return a}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const a=this.chartDataObject[this.chartDataObject.length-1];return a&&e.forEach(r=>{Object.prototype.hasOwnProperty.call(a,r)&&Object.entries(a[r]).forEach(([s,i])=>{Object.keys(i).forEach(t=>{this.initDataset(r,s,t)})})}),this.chartDatasets}}},methods:{handleChartClick(e){if(this.chartRange=="day")return;const a=this.$refs.myChart.chart;if(!a)return;const r=Q(a,e);if(!r.length)return;const{datasetIndex:s,index:i}=r[0],t=this.chartData.datasets[s].data[i].date;var l="",b="";switch(this.chartRange){case"month":l=t.substring(0,4)+"-"+t.substring(4,6)+"-"+t.substring(6),b="day";break;case"year":l=t.substring(0,4)+"-"+t.substring(4,6),b="month";break}this.blockChartInit=!0,this.chartDate=l,this.chartRange=b},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},getDatasetHidden(e,a){return console.debug("getDatasetHidden",e,a),!1},getTotalsLabel(e,a=void 0,r=void 0){var s="*test*";if(!a&&!r){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(a&&!r){if(a=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[a]}if(a&&r){switch(e){case"bat":case"cp":switch(r){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";default:console.warn("unknown measurement key:",e,r)}break;case"counter":switch(r){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"pv":switch(r){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"sh":switch(r){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"hc":switch(r){case"imported":case"energy_imported":return"Verbrauch";default:console.warn("unknown measurement key:",e,r)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+a+"+"+r+"*"}return s},getDatasetLabel(e,a,r,s){var i=["*"+s],t=[];if(a=="all")switch(e!=="hc"&&t.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],r){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,a)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[a]]);switch(e){case"bat":case"ev":case"cp":switch(r){case"soc":t.push("SoC");break;case"energy_imported":t.push("Ladung");break;case"energy_exported":t.push("Entladung");break}break;case"counter":switch(r){case"energy_imported":t.push("Bezug/Verbrauch");break;case"energy_exported":t.push("Einspeisung/Erzeugung");break}break;case"sh":switch(r){case"energy_imported":t.push("Verbrauch");break;case"energy_exported":t.push("Erzeugung");break}break}return`${i.join(" ")}${t.length?" ("+t.join(", ")+")":""}`},getDatasetIndex(e){let a=this.chartDatasets.datasets.findIndex(r=>r.jsonKey==e);if(a!=-1)return a},addDataset(e,a,r,s){var i=e+"-"+r;if(this.datasetTemplates[i]){var t=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return t.parsing.yAxisKey=s,t.jsonKey=s,t.data=this.chartDataObject,t.label=this.getDatasetLabel(e,a,r,s),t.labelSuffix!=null&&(t.label=t.label+t.labelSuffix),a=="all"&&(t.hidden=!1,delete t.stack),this.chartDatasets.datasets.push(t)-1}else console.warn("no matching template found for: "+s+" with template: "+i)},initDataset(e,a,r){var s=[];this.chartRange=="day"?s={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:s={counter:["energy_imported","energy_exported"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported"]};const i=e+"."+a+"."+r;if(s[e].includes(r)){var t=this.getDatasetIndex(i);const l=this.getDatasetHidden(e,a);t==null&&!l&&(t=this.addDataset(e,a,r,i)),t!=null&&l&&this.chartDatasets.datasets.splice(t,1)}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartForm.reportValidity()){this.setupScaleX(),this.chartDatasets.datasets=[];var a="";switch(this.chartRange){case"day":a="getDailyLog";break;case"month":a="getMonthlyLog";break;case"year":a="getYearlyLog";break}this.$emit("sendCommand",{command:a,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}},watch:{chartRange(){this.init()}},mounted(){this.init()}},ee={class:"chart"},te={name:"chartForm"},ae={key:1},re={key:1},ie={class:"openwb-chart"};function se(e,a,r,s,i,t){const l=p("openwb-base-select-input"),b=p("openwb-base-text-input"),m=p("openwb-base-card"),D=p("openwb-base-alert"),w=p("chartjs-line"),S=p("font-awesome-icon"),A=p("openwb-base-heading");return n(),o("div",ee,[v("form",te,[c(m,{title:"Filter",collapsible:!0,collapsed:!1},{default:d(()=>[c(l,{title:"Zeitraum",modelValue:i.chartRange,"onUpdate:modelValue":a[0]||(a[0]=u=>i.chartRange=u),options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),c(b,{title:t.dateInput.title,subtype:t.dateInput.type,min:t.dateInput.min,max:i.currentDate,showQuickButtons:!0,modelValue:t.chartDate,"onUpdate:modelValue":[a[1]||(a[1]=u=>t.chartDate=u),a[2]||(a[2]=u=>t.updateChart())]},null,8,["title","subtype","min","max","modelValue"])]),_:1}),t.chartDataRead?(n(),o("div",ae,[t.chartDataHasEntries?(n(),o("div",re,[c(m,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:d(()=>[v("div",ie,[c(w,{ref:"myChart",data:t.chartData,options:i.chartOptions,onClick:t.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),c(m,{title:"Summen",collapsible:!0,collapsed:!0},{default:d(()=>[(n(!0),o(x,null,k(t.chartTotals,(u,h)=>(n(),o("div",{key:h},[Object.keys(u).length>0?(n(),g(m,{key:0,collapsible:!0,collapsed:!0,subtype:t.getCardSubtype(h)},{header:d(()=>[c(S,{"fixed-width":"",icon:t.getCardIcon(h)},null,8,["icon"]),y(" "+C(t.getTotalsLabel(h)),1)]),default:d(()=>[(n(!0),o(x,null,k(u,(I,f)=>(n(),o("div",{key:f},[h!=="hc"?(n(),g(A,{key:0},{default:d(()=>[y(C(t.getTotalsLabel(h,f)),1)]),_:2},1024)):R("v-if",!0),(n(!0),o(x,null,k(I,(W,_)=>(n(),o("div",{key:_},[c(b,{title:t.getTotalsLabel(h,f,_),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128))]))),128))]),_:2},1032,["subtype"])):R("v-if",!0)]))),128))]),_:1})])):(n(),g(D,{key:0,subtype:"info"},{default:d(()=>[y(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ")]),_:1}))])):(n(),g(D,{key:0,subtype:"info"},{default:d(()=>[y(" Es wurden noch keine Daten abgerufen. ")]),_:1}))])])}const me=U(Y,[["render",se],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{me as default};
+import{l as T,J as L,K as q,L as H,M as j,P as O,Q as M,F as z}from"./vendor-fortawesome-ad83e535.js";import{C as E}from"./index-bc47a901.js";import{C as V,p as B,a as F,L as P,b as N,P as $,c as J,T as X,i as Z,d as K,e as G,g as Q}from"./vendor-chartjs-dd3fd71e.js";import{_ as U,p,k as n,l as o,q as v,A as c,L as d,y as g,u as y,G as x,I as k,x as C,z as R}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";import"./vendor-luxon-1af9332f.js";T.add(L,q,H,j,O,M);V.register(B,F,P,N,$,J,X,Z,K);const Y={name:"OpenwbChart",components:{ChartjsLine:G,FontAwesomeIcon:z},mixins:[E],emits:["sendCommand"],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let a=e.split("-");this.chartRequestDate.year=a[0],a.length>1?this.chartRequestDate.month=a[1]:this.chartRequestDate.month="",a.length>2?this.chartRequestDate.day=a[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day,day:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month,month:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year,year:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var a=JSON.parse(JSON.stringify(e)).map(r=>(r.timestamp=r.timestamp*1e3,r));return a}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const a=this.chartDataObject[this.chartDataObject.length-1];return a&&e.forEach(r=>{Object.prototype.hasOwnProperty.call(a,r)&&Object.entries(a[r]).forEach(([s,i])=>{Object.keys(i).forEach(t=>{this.initDataset(r,s,t)})})}),this.chartDatasets}}},methods:{handleChartClick(e){if(this.chartRange=="day")return;const a=this.$refs.myChart.chart;if(!a)return;const r=Q(a,e);if(!r.length)return;const{datasetIndex:s,index:i}=r[0],t=this.chartData.datasets[s].data[i].date;var l="",b="";switch(this.chartRange){case"month":l=t.substring(0,4)+"-"+t.substring(4,6)+"-"+t.substring(6),b="day";break;case"year":l=t.substring(0,4)+"-"+t.substring(4,6),b="month";break}this.blockChartInit=!0,this.chartDate=l,this.chartRange=b},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},getDatasetHidden(e,a){return console.debug("getDatasetHidden",e,a),!1},getTotalsLabel(e,a=void 0,r=void 0){var s="*test*";if(!a&&!r){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(a&&!r){if(a=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[a]}if(a&&r){switch(e){case"bat":case"cp":switch(r){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";default:console.warn("unknown measurement key:",e,r)}break;case"counter":switch(r){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"pv":switch(r){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"sh":switch(r){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"hc":switch(r){case"imported":case"energy_imported":return"Verbrauch";default:console.warn("unknown measurement key:",e,r)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+a+"+"+r+"*"}return s},getDatasetLabel(e,a,r,s){var i=["*"+s],t=[];if(a=="all")switch(e!=="hc"&&t.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],r){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,a)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[a]]);switch(e){case"bat":case"ev":case"cp":switch(r){case"soc":t.push("SoC");break;case"energy_imported":t.push("Ladung");break;case"energy_exported":t.push("Entladung");break}break;case"counter":switch(r){case"energy_imported":t.push("Bezug/Verbrauch");break;case"energy_exported":t.push("Einspeisung/Erzeugung");break}break;case"sh":switch(r){case"energy_imported":t.push("Verbrauch");break;case"energy_exported":t.push("Erzeugung");break}break}return`${i.join(" ")}${t.length?" ("+t.join(", ")+")":""}`},getDatasetIndex(e){let a=this.chartDatasets.datasets.findIndex(r=>r.jsonKey==e);if(a!=-1)return a},addDataset(e,a,r,s){var i=e+"-"+r;if(this.datasetTemplates[i]){var t=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return t.parsing.yAxisKey=s,t.jsonKey=s,t.data=this.chartDataObject,t.label=this.getDatasetLabel(e,a,r,s),t.labelSuffix!=null&&(t.label=t.label+t.labelSuffix),a=="all"&&(t.hidden=!1,delete t.stack),this.chartDatasets.datasets.push(t)-1}else console.warn("no matching template found for: "+s+" with template: "+i)},initDataset(e,a,r){var s=[];this.chartRange=="day"?s={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:s={counter:["energy_imported","energy_exported"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported"]};const i=e+"."+a+"."+r;if(s[e].includes(r)){var t=this.getDatasetIndex(i);const l=this.getDatasetHidden(e,a);t==null&&!l&&(t=this.addDataset(e,a,r,i)),t!=null&&l&&this.chartDatasets.datasets.splice(t,1)}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartForm.reportValidity()){this.setupScaleX(),this.chartDatasets.datasets=[];var a="";switch(this.chartRange){case"day":a="getDailyLog";break;case"month":a="getMonthlyLog";break;case"year":a="getYearlyLog";break}this.$emit("sendCommand",{command:a,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}},watch:{chartRange(){this.init()}},mounted(){this.init()}},ee={class:"chart"},te={name:"chartForm"},ae={key:1},re={key:1},ie={class:"openwb-chart"};function se(e,a,r,s,i,t){const l=p("openwb-base-select-input"),b=p("openwb-base-text-input"),m=p("openwb-base-card"),D=p("openwb-base-alert"),w=p("chartjs-line"),S=p("font-awesome-icon"),A=p("openwb-base-heading");return n(),o("div",ee,[v("form",te,[c(m,{title:"Filter",collapsible:!0,collapsed:!1},{default:d(()=>[c(l,{title:"Zeitraum",modelValue:i.chartRange,"onUpdate:modelValue":a[0]||(a[0]=u=>i.chartRange=u),options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),c(b,{title:t.dateInput.title,subtype:t.dateInput.type,min:t.dateInput.min,max:i.currentDate,showQuickButtons:!0,modelValue:t.chartDate,"onUpdate:modelValue":[a[1]||(a[1]=u=>t.chartDate=u),a[2]||(a[2]=u=>t.updateChart())]},null,8,["title","subtype","min","max","modelValue"])]),_:1}),t.chartDataRead?(n(),o("div",ae,[t.chartDataHasEntries?(n(),o("div",re,[c(m,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:d(()=>[v("div",ie,[c(w,{ref:"myChart",data:t.chartData,options:i.chartOptions,onClick:t.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),c(m,{title:"Summen",collapsible:!0,collapsed:!0},{default:d(()=>[(n(!0),o(x,null,k(t.chartTotals,(u,h)=>(n(),o("div",{key:h},[Object.keys(u).length>0?(n(),g(m,{key:0,collapsible:!0,collapsed:!0,subtype:t.getCardSubtype(h)},{header:d(()=>[c(S,{"fixed-width":"",icon:t.getCardIcon(h)},null,8,["icon"]),y(" "+C(t.getTotalsLabel(h)),1)]),default:d(()=>[(n(!0),o(x,null,k(u,(I,f)=>(n(),o("div",{key:f},[h!=="hc"?(n(),g(A,{key:0},{default:d(()=>[y(C(t.getTotalsLabel(h,f)),1)]),_:2},1024)):R("v-if",!0),(n(!0),o(x,null,k(I,(W,_)=>(n(),o("div",{key:_},[c(b,{title:t.getTotalsLabel(h,f,_),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128))]))),128))]),_:2},1032,["subtype"])):R("v-if",!0)]))),128))]),_:1})])):(n(),g(D,{key:0,subtype:"info"},{default:d(()=>[y(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ")]),_:1}))])):(n(),g(D,{key:0,subtype:"info"},{default:d(()=>[y(" Es wurden noch keine Daten abgerufen. ")]),_:1}))])])}const me=U(Y,[["render",se],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{me as default};
diff --git a/web/settings/assets/CloudConfig-e2087842.js b/web/settings/assets/CloudConfig-001eee3d.js
similarity index 96%
rename from web/settings/assets/CloudConfig-e2087842.js
rename to web/settings/assets/CloudConfig-001eee3d.js
index 37ae6a5a91..e586a88824 100644
--- a/web/settings/assets/CloudConfig-e2087842.js
+++ b/web/settings/assets/CloudConfig-001eee3d.js
@@ -1,4 +1,4 @@
-import{C as W}from"./index-2a1b0c80.js";import{_ as S,p as m,k as l,l as c,z as a,A as o,L as t,q as g,y as p,a2 as y,G as D,u as s,n as k}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const Z={name:"OpenwbCloudConfig",mixins:[W],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let u=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,B]of Object.entries(u))B.remote.is_openwb_cloud||delete u[e];return u}},cloudBridgeKey:{get(){for(const[u,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return u}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(u){return parseInt(u.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(u){u.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(u){this.showCloudRemoveModal=!1,u=="confirm"&&(console.info("request removal of cloud"),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},q={class:"cloud-config"},z={key:1},M={key:1,name:"cloudConfigCreateForm"},N=g("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de ",-1),x={key:0},K={key:1},R={class:"row justify-content-center"},A={key:2,name:"cloudConfigConnectForm"},P={key:0},T={key:1},U={class:"row justify-content-center"},F={key:3,name:"cloudConfigured"},j=g("span",null,[s(" Mit diesen Zugangsdaten können Sie sich in der "),g("a",{href:"https://web.openwb.de/",target:"_blank",rel:"noopener noreferrer"},"openWB Cloud "),s(" anmelden. ")],-1),E=g("hr",null,null,-1),L={class:"row justify-content-center"};function I(u,e,B,O,d,r){const h=m("openwb-base-modal-dialog"),i=m("openwb-base-alert"),_=m("router-link"),b=m("openwb-base-text-input"),f=m("openwb-base-button-group-input"),C=m("openwb-base-click-button"),w=m("openwb-base-card"),v=m("openwb-base-heading"),V=m("openwb-base-submit-buttons");return l(),c(D,null,[a(" modal dialogs "),o(h,{show:d.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=n=>r.removeCloud(n))},{default:t(()=>[s(" Wollen Sie den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ")]),_:1},8,["show"]),a(" main content "),g("div",q,[o(i,{subtype:"danger"},{default:t(()=>[s(" Für diese Version gibt es noch keine Weboberfläche in der Cloud! Wenn der Zugang eingerichtet wurde, können z. B. Daten mit einem MQTT-Client von dem MQTT-Broker web.openwb.de abgerufen werden. Ebenfalls kann ein Support-Tunnel aufgebaut werden. Weitere Funktionen sind in der Entwicklung. ")]),_:1}),u.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(i,{key:0,subtype:"danger"},{default:t(()=>[s(" Sie müssen der "),o(_,{to:"/System/LegalSettings"},{default:t(()=>[s(" Datenschutzerklärung ")]),_:1}),s(" zustimmen, um die openWB Cloud nutzen zu können. ")]),_:1})):(l(),c("div",z,[o(i,{subtype:"success"},{default:t(()=>[s(" Sie haben der "),o(_,{to:"/System/LegalSettings"},{default:t(()=>[s(" Datenschutzerklärung ")]),_:1}),s(" zugestimmt und können die openWB Cloud nutzen. ")]),_:1}),d.enableRemoveCloudButton?a("v-if",!0):(l(),p(i,{key:0,subtype:"warning"},{default:t(()=>[s(" Der Zugang wurde entfernt. Bitte starten Sie die openWB neu, um die Änderungen anzuwenden! ")]),_:1})),r.cloudBridgeKey?a("v-if",!0):(l(),c("form",M,[o(w,{title:"Neuen Zugang erstellen"},y({default:t(()=>[o(i,{subtype:"warning"},{default:t(()=>[s(" Derzeit können keine neuen Zugänge für die openWB Cloud angelegt werden. Bitte nutzen Sie die in/an der openWB notierten Zugangsdaten im unteren Bereich dieser Seite. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreiben Sie bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),N,s(" . ")]),_:1}),u.$store.state.mqtt["openWB/general/extern"]===!0?(l(),c("div",x,[o(i,{subtype:"info"},{default:t(()=>[s(' Diese openWB befindet sich im Steuerungsmodus "secondary". Bitte richten Sie die openWB Cloud auf der regelnden openWB ein. ')]),_:1})])):(l(),c("div",K,[o(b,{title:"Benutzername",required:"",subtype:"user",pattern:"[a-zA-Z]+",modelValue:d.newCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=n=>d.newCloudData.username=n),disabled:""},null,8,["modelValue"]),o(b,{title:"E-Mail",required:"",subtype:"email",modelValue:d.newCloudData.email,"onUpdate:modelValue":e[2]||(e[2]=n=>d.newCloudData.email=n),disabled:""},null,8,["modelValue"]),o(f,{disabled:"",title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],modelValue:d.newCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=n=>d.newCloudData.partner=n)},{help:t(()=>[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ")]),_:1},8,["modelValue"])]))]),_:2},[u.$store.state.mqtt["openWB/general/extern"]===!1&&u.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[g("div",R,[a(` <openwb-base-click-button
+import{C as W}from"./index-bc47a901.js";import{_ as S,p as m,k as l,l as c,z as a,A as o,L as t,q as g,y as p,a2 as y,G as D,u as s,n as k}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const Z={name:"OpenwbCloudConfig",mixins:[W],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let u=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,B]of Object.entries(u))B.remote.is_openwb_cloud||delete u[e];return u}},cloudBridgeKey:{get(){for(const[u,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return u}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(u){return parseInt(u.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(u){u.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(u){this.showCloudRemoveModal=!1,u=="confirm"&&(console.info("request removal of cloud"),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},q={class:"cloud-config"},z={key:1},M={key:1,name:"cloudConfigCreateForm"},N=g("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de ",-1),x={key:0},K={key:1},R={class:"row justify-content-center"},A={key:2,name:"cloudConfigConnectForm"},P={key:0},T={key:1},U={class:"row justify-content-center"},F={key:3,name:"cloudConfigured"},j=g("span",null,[s(" Mit diesen Zugangsdaten können Sie sich in der "),g("a",{href:"https://web.openwb.de/",target:"_blank",rel:"noopener noreferrer"},"openWB Cloud "),s(" anmelden. ")],-1),E=g("hr",null,null,-1),L={class:"row justify-content-center"};function I(u,e,B,O,d,r){const h=m("openwb-base-modal-dialog"),i=m("openwb-base-alert"),_=m("router-link"),b=m("openwb-base-text-input"),f=m("openwb-base-button-group-input"),C=m("openwb-base-click-button"),w=m("openwb-base-card"),v=m("openwb-base-heading"),V=m("openwb-base-submit-buttons");return l(),c(D,null,[a(" modal dialogs "),o(h,{show:d.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=n=>r.removeCloud(n))},{default:t(()=>[s(" Wollen Sie den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ")]),_:1},8,["show"]),a(" main content "),g("div",q,[o(i,{subtype:"danger"},{default:t(()=>[s(" Für diese Version gibt es noch keine Weboberfläche in der Cloud! Wenn der Zugang eingerichtet wurde, können z. B. Daten mit einem MQTT-Client von dem MQTT-Broker web.openwb.de abgerufen werden. Ebenfalls kann ein Support-Tunnel aufgebaut werden. Weitere Funktionen sind in der Entwicklung. ")]),_:1}),u.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(i,{key:0,subtype:"danger"},{default:t(()=>[s(" Sie müssen der "),o(_,{to:"/System/LegalSettings"},{default:t(()=>[s(" Datenschutzerklärung ")]),_:1}),s(" zustimmen, um die openWB Cloud nutzen zu können. ")]),_:1})):(l(),c("div",z,[o(i,{subtype:"success"},{default:t(()=>[s(" Sie haben der "),o(_,{to:"/System/LegalSettings"},{default:t(()=>[s(" Datenschutzerklärung ")]),_:1}),s(" zugestimmt und können die openWB Cloud nutzen. ")]),_:1}),d.enableRemoveCloudButton?a("v-if",!0):(l(),p(i,{key:0,subtype:"warning"},{default:t(()=>[s(" Der Zugang wurde entfernt. Bitte starten Sie die openWB neu, um die Änderungen anzuwenden! ")]),_:1})),r.cloudBridgeKey?a("v-if",!0):(l(),c("form",M,[o(w,{title:"Neuen Zugang erstellen"},y({default:t(()=>[o(i,{subtype:"warning"},{default:t(()=>[s(" Derzeit können keine neuen Zugänge für die openWB Cloud angelegt werden. Bitte nutzen Sie die in/an der openWB notierten Zugangsdaten im unteren Bereich dieser Seite. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreiben Sie bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),N,s(" . ")]),_:1}),u.$store.state.mqtt["openWB/general/extern"]===!0?(l(),c("div",x,[o(i,{subtype:"info"},{default:t(()=>[s(' Diese openWB befindet sich im Steuerungsmodus "secondary". Bitte richten Sie die openWB Cloud auf der regelnden openWB ein. ')]),_:1})])):(l(),c("div",K,[o(b,{title:"Benutzername",required:"",subtype:"user",pattern:"[a-zA-Z]+",modelValue:d.newCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=n=>d.newCloudData.username=n),disabled:""},null,8,["modelValue"]),o(b,{title:"E-Mail",required:"",subtype:"email",modelValue:d.newCloudData.email,"onUpdate:modelValue":e[2]||(e[2]=n=>d.newCloudData.email=n),disabled:""},null,8,["modelValue"]),o(f,{disabled:"",title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],modelValue:d.newCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=n=>d.newCloudData.partner=n)},{help:t(()=>[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ")]),_:1},8,["modelValue"])]))]),_:2},[u.$store.state.mqtt["openWB/general/extern"]===!1&&u.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[g("div",R,[a(` <openwb-base-click-button
 								class="col-4"
 								:class="
 									enableNewCloudButton
diff --git a/web/settings/assets/DataManagement-44334b0c.js b/web/settings/assets/DataManagement-44334b0c.js
deleted file mode 100644
index 550e7b9fc3..0000000000
--- a/web/settings/assets/DataManagement-44334b0c.js
+++ /dev/null
@@ -1 +0,0 @@
-import{l as z,a0 as V,a1 as H,a2 as j,a3 as A,a4 as P,F as R}from"./vendor-fortawesome-838df0c9.js";import{_ as D,C as N}from"./index-2a1b0c80.js";import{_ as U}from"./dynamic-import-helper-be004503.js";import{_ as C,p as d,k as f,l as _,A as o,L as u,u as a,x as k,q as n,a0 as E,y as W,a1 as q,z as S,n as v,G as T,I as F,a2 as G}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const I={name:"BackupCloudConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},backupCloudType:String},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z={class:"backup-cloud-fallback"};function K(t,e,r,c,s,i){const p=d("openwb-base-alert"),m=d("openwb-base-textarea");return f(),_("div",Z,[o(p,{subtype:"warning"},{default:u(()=>[a(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+k(r.backupCloudType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),o(m,{title:"Konfiguration",subtype:"json","model-value":r.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>i.updateConfiguration(h,"configuration"))},{help:u(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),o(p,{subtype:"info"},{default:u(()=>[n("pre",null,k(JSON.stringify(r.configuration,void 0,2)),1)]),_:1})])}const $=C(I,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]),J={name:"OpenwbBackupCloudProxy",emits:["update:configuration"],props:{backupCloudType:{type:String,required:!0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading backup cloud: ${this.backupCloudType}`),E({loader:()=>U(Object.assign({"./nextcloud/backup_cloud.vue":()=>D(()=>import("./backup_cloud-e0e3e868.js"),["assets/backup_cloud-e0e3e868.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./onedrive/backup_cloud.vue":()=>D(()=>import("./backup_cloud-6519f98a.js"),["assets/backup_cloud-6519f98a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"])}),`./${this.backupCloudType}/backup_cloud.vue`),errorComponent:$})}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)}}};function Q(t,e,r,c,s,i){return f(),W(q(i.myComponent),{configuration:r.configuration,backupCloudType:r.backupCloudType,"onUpdate:configuration":e[0]||(e[0]=p=>i.updateConfiguration(p))},null,40,["configuration","backupCloudType"])}const X=C(J,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]);z.add(V,H,j,A,P);const Y={name:"OpenwbSystem",mixins:[N],emits:["sendCommand"],components:{FontAwesomeIcon:R,OpenwbBackupCloudProxy:X},data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/backup_clouds","openWB/system/backup_cloud/config","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]},{key:"sh10",label:"Gerät 10",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,sh10:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(t))e.push({value:r.id,text:r.name});return e},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&t.push({value:e.id,text:e.name});return t},inverterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&t.push({value:e.id,text:e.name});return t},batteryOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&t.push({value:e.id,text:e.name});return t},vehicleOptions(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,c]of Object.entries(t)){let s=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:s,text:c})}return e},smartHomeOptions(){let t=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,c]of Object.entries(t))if(c==1){let s=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:s,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${s}/device_name`]})}return e}},methods:{isComponentType(t,e){return t.split("_").includes(e)},getBackupCloudDefaultConfiguration(t){const e=this.backupCloudList.find(r=>r.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for backup cloud type!",t),{})},sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},getMigrationOptions(t){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return t.includes("chargePoint")&&e.push(...this.chargePointOptions),t.includes("counter")&&e.push(...this.counterOptions),t.includes("inverter")&&e.push(...this.inverterOptions),t.includes("battery")&&e.push(...this.batteryOptions),t.includes("vehicle")&&e.push(...this.vehicleOptions),t.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)},updateSelectedBackupCloud(t){this.updateState("openWB/system/backup_cloud/config",t,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(t))},updateSelectedRestoreFile(t){this.selectedRestoreFile=t.target.files[0]},updateSelectedDataMigrationFile(t){this.selectedDataMigrationFile=t.target.files[0]},uploadFile(t,e,r){return new Promise(c=>{if(e!==void 0){let s=new FormData;s.append("file",e),s.append("target",t),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",s,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),c(!0)}).catch(i=>{if(i.response){console.error(i.response.status,i.response.data);var p="Hochladen der Datei fehlgeschlagen!<br />"+i.response.status+": "+i.response.data}else i.request?(console.error(i.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",i.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),c(!1)})}else console.error("no file selected for upload"),c(!1)})},async uploadRestoreFile(){const t="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,t)},async uploadDataMigrationFile(){const t="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,t)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)}}},ee={class:"system"},te=n("h2",null,"Achtung!",-1),ne=n("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1),oe={key:0},ie={name:"backupForm"},se=n("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),ae={class:"row justify-content-center"},le={class:"col-md-4 d-flex py-1 justify-content-center"},ue=n("hr",null,null,-1),re={name:"restoreForm"},de=n("br",null,null,-1),ce={class:"input-group"},pe={class:"input-group-prepend"},me={class:"input-group-text"},ge={class:"custom-file"},fe={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},he={class:"input-group-append"},be=["disabled"],_e={class:"row justify-content-center"},ke={class:"col-md-4 d-flex py-1 justify-content-center"},ye=n("hr",null,null,-1),ve={name:"cloudBackupForm"},we=n("br",null,null,-1),Ce=n("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),Be={key:0},De={name:"dataMigrationForm"},Se=n("br",null,null,-1),Te=n("br",null,null,-1),Fe={class:"input-group"},We={class:"input-group-prepend"},Oe={class:"input-group-text"},xe={class:"custom-file"},Me={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Le={class:"input-group-append"},ze=["disabled"],Ve={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},je={name:"resetForm"},Ae={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"};function Re(t,e,r,c,s,i){const p=d("openwb-base-button-group-input"),m=d("openwb-base-alert"),h=d("openwb-base-heading"),g=d("font-awesome-icon"),y=d("openwb-base-click-button"),B=d("openwb-base-select-input"),O=d("openwb-base-button-input"),x=d("openwb-backup-cloud-proxy"),M=d("openwb-base-submit-buttons"),w=d("openwb-base-card");return f(),_("div",ee,[o(m,{subtype:"danger"},{default:u(()=>[te,ne,o(p,{title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:this.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=l=>this.warningAcknowledged=l)},null,8,["modelValue"])]),_:1}),s.warningAcknowledged?(f(),_("div",oe,[o(w,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!0},{default:u(()=>[n("form",ie,[o(h,null,{default:u(()=>[a("Sicherung")]),_:1}),o(m,{subtype:"danger"},{default:u(()=>[a(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ')]),_:1}),o(m,{subtype:"info"},{default:u(()=>[a(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder "),se,a(" heruntergeladen werden. ")]),_:1}),n("div",ae,[n("div",le,[o(y,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=l=>i.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:u(()=>[a(" Sicherung erstellen "),o(g,{"fixed-width":"",icon:["fas","archive"]})]),_:1})])])]),ue,n("form",re,[o(h,null,{default:u(()=>[a("Wiederherstellung")]),_:1}),o(m,{subtype:"danger"},{default:u(()=>[a(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt."),de,a(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ')]),_:1}),n("div",ce,[n("div",pe,[n("div",me,[o(g,{"fixed-width":"",icon:["fas","file-archive"]})])]),n("div",ge,[n("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=l=>i.updateSelectedRestoreFile(l))},null,32),n("label",fe,k(s.selectedRestoreFile?s.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),n("div",he,[n("button",{class:v(["btn",s.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!s.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=l=>i.uploadRestoreFile())},[a(" Hochladen "),o(g,{"fixed-width":"",icon:["fas","upload"]})],10,be)])]),n("div",_e,[n("div",ke,[o(y,{class:v(s.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!s.restoreUploadDone,onButtonClicked:e[4]||(e[4]=l=>i.restoreBackup())},{default:u(()=>[a(" Wiederherstellung starten "),o(g,{"fixed-width":"",icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])]),ye,n("form",ve,[o(h,null,{default:u(()=>[a(" Automatische Sicherung in einen Cloud-Dienst ")]),_:1}),o(m,{subtype:"info"},{default:u(()=>[a(" Zwischen Mitternacht und 5:00 Uhr wird automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden."),we,a(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du "),Ce,a(" . ")]),_:1}),o(B,{class:"mb-2",title:"Backup-Cloud",options:i.backupCloudList,"model-value":t.$store.state.mqtt["openWB/system/backup_cloud/config"].type,"onUpdate:modelValue":e[5]||(e[5]=l=>i.updateSelectedBackupCloud(l))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/system/backup_cloud/config"].type?(f(),_("div",Be,[o(O,{title:"Manuelle Cloud-Sicherung",buttonText:"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[6]||(e[6]=l=>i.sendSystemCommand("createCloudBackup",{}))}),o(x,{backupCloudType:t.$store.state.mqtt["openWB/system/backup_cloud/config"].type,configuration:t.$store.state.mqtt["openWB/system/backup_cloud/config"].configuration,"onUpdate:configuration":e[7]||(e[7]=l=>i.updateConfiguration("openWB/system/backup_cloud/config",l)),onSendCommand:e[8]||(e[8]=l=>i.sendSystemCommand(l.command,l.args))},null,8,["backupCloudType","configuration"])])):S("v-if",!0),o(M,{formName:"cloudBackupForm",hideReset:!0,hideDefaults:!0,onSave:e[9]||(e[9]=l=>t.$emit("save")),onReset:e[10]||(e[10]=l=>t.$emit("reset")),onDefaults:e[11]||(e[11]=l=>t.$emit("defaults"))})])]),_:1}),o(w,{title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:u(()=>[n("form",De,[o(m,{subtype:"info"},{default:u(()=>[a(" Hier kann die Sicherung einer älteren 1.9er Version hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren. Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden."),Se,a(" Die Portierung kann einige Minuten dauern. Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist. ")]),_:1}),o(m,{subtype:"danger"},{default:u(()=>[a(" Vor der Datenübernahme unbedingt eine Sicherung erstellen."),Te,a(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ")]),_:1}),n("div",Fe,[n("div",We,[n("div",Oe,[o(g,{"fixed-width":"",icon:["fas","file-archive"]})])]),n("div",xe,[n("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[12]||(e[12]=l=>i.updateSelectedDataMigrationFile(l))},null,32),n("label",Me,k(s.selectedDataMigrationFile?s.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),n("div",Le,[n("button",{class:v(["btn",s.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!s.selectedDataMigrationFile,type:"button",onClick:e[13]||(e[13]=l=>i.uploadDataMigrationFile())},[a(" Hochladen "),o(g,{"fixed-width":"",icon:["fas","upload"]})],10,ze)])]),o(h,null,{default:u(()=>[a("Zuordnung der Komponenten")]),_:1}),(f(!0),_(T,null,F(s.dataMigrationConfig,l=>(f(),_("div",{key:l.sectionName},[o(h,null,{default:u(()=>[a(k(l.sectionName),1)]),_:2},1024),(f(!0),_(T,null,F(l.sectionComponents,b=>(f(),W(B,{key:b.key,title:b.label,options:i.getMigrationOptions(b.validTypes),modelValue:s.dataMigrationMapping[b.key],"onUpdate:modelValue":L=>s.dataMigrationMapping[b.key]=L},G({_:2},[b.help?{name:"help",fn:u(()=>[a(k(b.help),1)]),key:"0"}:void 0]),1032,["title","options","modelValue","onUpdate:modelValue"]))),128))]))),128)),n("div",Ve,[n("div",He,[o(y,{class:v(s.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!s.dataMigrationUploadDone,onButtonClicked:e[14]||(e[14]=l=>i.dataMigration())},{default:u(()=>[a(" Datenübernahme starten "),o(g,{"fixed-width":"",icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1}),n("form",je,[o(w,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:u(()=>[n("div",Ae,[n("div",Pe,[o(y,{class:"btn-danger clickable",onButtonClicked:e[15]||(e[15]=l=>i.sendSystemCommand("factoryReset",{}))},{default:u(()=>[o(g,{"fixed-width":"",icon:["fas","skull-crossbones"]}),a(" Zurücksetzen "),o(g,{"fixed-width":"",icon:["fas","skull-crossbones"]})]),_:1})])])]),default:u(()=>[o(m,{subtype:"danger"},{default:u(()=>[a(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc, Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ")]),_:1})]),_:1})])])):S("v-if",!0)])}const $e=C(Y,[["render",Re],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]);export{$e as default};
diff --git a/web/settings/assets/DataManagement-4ea3b86e.js b/web/settings/assets/DataManagement-4ea3b86e.js
new file mode 100644
index 0000000000..ec5c2e88f6
--- /dev/null
+++ b/web/settings/assets/DataManagement-4ea3b86e.js
@@ -0,0 +1 @@
+import{l as z,a0 as V,a1 as j,a2 as H,a3 as A,a4 as R,F as P}from"./vendor-fortawesome-ad83e535.js";import{_ as S,C as N}from"./index-bc47a901.js";import{_ as U}from"./dynamic-import-helper-be004503.js";import{_ as C,p as d,k as p,l as h,y as B,L as u,u as s,x as y,A as o,q as n,a0 as E,a1 as q,z as T,n as v,G as F,I as O,a2 as G}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const I={name:"BackupCloudConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},backupCloudType:String},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z={class:"backup-cloud-fallback"},J={key:1};function K(t,e,r,m,a,i){const c=d("openwb-base-alert"),g=d("openwb-base-textarea");return p(),h("div",Z,[Object.keys(r.configuration).length==0?(p(),B(c,{key:0,subtype:"info"},{default:u(()=>[s(' Der Backup-Cloud-Typ "'+y(r.backupCloudType)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),h("div",J,[o(c,{subtype:"warning"},{default:u(()=>[s(' Es wurde keine Konfigurationsseite für den Backup-Cloud-Typ "'+y(r.backupCloudType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),o(g,{title:"Konfiguration",subtype:"json","model-value":r.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>i.updateConfiguration(b,"configuration"))},{help:u(()=>[s(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),o(c,{subtype:"info"},{default:u(()=>[n("pre",null,y(JSON.stringify(r.configuration,void 0,2)),1)]),_:1})]))])}const $=C(I,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]),Q={name:"OpenwbBackupCloudProxy",emits:["update:configuration"],props:{backupCloudType:{type:String,required:!0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading backup cloud: ${this.backupCloudType}`),E({loader:()=>U(Object.assign({"./nextcloud/backup_cloud.vue":()=>S(()=>import("./backup_cloud-e0f3013d.js"),["assets/backup_cloud-e0f3013d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./onedrive/backup_cloud.vue":()=>S(()=>import("./backup_cloud-f1ce5010.js"),["assets/backup_cloud-f1ce5010.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"])}),`./${this.backupCloudType}/backup_cloud.vue`),errorComponent:$})}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)}}};function X(t,e,r,m,a,i){return p(),B(q(i.myComponent),{configuration:r.configuration,backupCloudType:r.backupCloudType,"onUpdate:configuration":e[0]||(e[0]=c=>i.updateConfiguration(c))},null,40,["configuration","backupCloudType"])}const Y=C(Q,[["render",X],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]);z.add(V,j,H,A,R);const ee={name:"OpenwbSystem",mixins:[N],emits:["sendCommand"],components:{FontAwesomeIcon:P,OpenwbBackupCloudProxy:Y},data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/backup_clouds","openWB/system/backup_cloud/config","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]},{key:"sh10",label:"Gerät 10",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,sh10:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(t))e.push({value:r.id,text:r.name});return e},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&t.push({value:e.id,text:e.name});return t},inverterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&t.push({value:e.id,text:e.name});return t},batteryOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&t.push({value:e.id,text:e.name});return t},vehicleOptions(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,m]of Object.entries(t)){let a=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:a,text:m})}return e},smartHomeOptions(){let t=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,m]of Object.entries(t))if(m==1){let a=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:a,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${a}/device_name`]})}return e}},methods:{isComponentType(t,e){return t.split("_").includes(e)},getBackupCloudDefaultConfiguration(t){const e=this.backupCloudList.find(r=>r.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",t),{})},sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},getMigrationOptions(t){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return t.includes("chargePoint")&&e.push(...this.chargePointOptions),t.includes("counter")&&e.push(...this.counterOptions),t.includes("inverter")&&e.push(...this.inverterOptions),t.includes("battery")&&e.push(...this.batteryOptions),t.includes("vehicle")&&e.push(...this.vehicleOptions),t.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)},updateSelectedBackupCloud(t){this.updateState("openWB/system/backup_cloud/config",t,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(t))},updateSelectedRestoreFile(t){this.selectedRestoreFile=t.target.files[0]},updateSelectedDataMigrationFile(t){this.selectedDataMigrationFile=t.target.files[0]},uploadFile(t,e,r){return new Promise(m=>{if(e!==void 0){let a=new FormData;a.append("file",e),a.append("target",t),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",a,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),m(!0)}).catch(i=>{if(i.response){console.error(i.response.status,i.response.data);var c="Hochladen der Datei fehlgeschlagen!<br />"+i.response.status+": "+i.response.data}else i.request?(console.error(i.request),c+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",i.message),c+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(c,"danger"),m(!1)})}else console.error("no file selected for upload"),m(!1)})},async uploadRestoreFile(){const t="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,t)},async uploadDataMigrationFile(){const t="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,t)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},te={class:"system"},ne=n("h2",null,"Achtung!",-1),oe=n("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1),ie={key:0},se={name:"backupForm"},ae=n("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),le={class:"row justify-content-center"},ue={class:"col-md-4 d-flex py-1 justify-content-center"},re=n("hr",null,null,-1),de={name:"restoreForm"},ce=n("br",null,null,-1),pe={class:"input-group"},me={class:"input-group-prepend"},ge={class:"input-group-text"},fe={class:"custom-file"},he={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},be={class:"input-group-append"},_e=["disabled"],ye={class:"row justify-content-center"},ke={class:"col-md-4 d-flex py-1 justify-content-center"},ve=n("hr",null,null,-1),we={name:"cloudBackupForm"},Ce=n("br",null,null,-1),Be=n("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),De={key:0},Se={name:"dataMigrationForm"},Te=n("br",null,null,-1),Fe=n("br",null,null,-1),Oe={class:"input-group"},We={class:"input-group-prepend"},xe={class:"input-group-text"},Me={class:"custom-file"},Le={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},ze={class:"input-group-append"},Ve=["disabled"],je={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={name:"resetForm"},Re={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"};function Ne(t,e,r,m,a,i){const c=d("openwb-base-button-group-input"),g=d("openwb-base-alert"),b=d("openwb-base-heading"),f=d("font-awesome-icon"),k=d("openwb-base-click-button"),D=d("openwb-base-select-input"),W=d("openwb-base-button-input"),x=d("openwb-backup-cloud-proxy"),M=d("openwb-base-submit-buttons"),w=d("openwb-base-card");return p(),h("div",te,[o(g,{subtype:"danger"},{default:u(()=>[ne,oe,o(c,{title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:this.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=l=>this.warningAcknowledged=l)},null,8,["modelValue"])]),_:1}),a.warningAcknowledged?(p(),h("div",ie,[o(w,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!0},{default:u(()=>[n("form",se,[o(b,null,{default:u(()=>[s("Sicherung")]),_:1}),o(g,{subtype:"danger"},{default:u(()=>[s(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ')]),_:1}),o(g,{subtype:"info"},{default:u(()=>[s(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder "),ae,s(" heruntergeladen werden. ")]),_:1}),n("div",le,[n("div",ue,[o(k,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=l=>i.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:u(()=>[s(" Sicherung erstellen "),o(f,{"fixed-width":"",icon:["fas","archive"]})]),_:1})])])]),re,n("form",de,[o(b,null,{default:u(()=>[s("Wiederherstellung")]),_:1}),o(g,{subtype:"danger"},{default:u(()=>[s(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt."),ce,s(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ')]),_:1}),n("div",pe,[n("div",me,[n("div",ge,[o(f,{"fixed-width":"",icon:["fas","file-archive"]})])]),n("div",fe,[n("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=l=>i.updateSelectedRestoreFile(l))},null,32),n("label",he,y(a.selectedRestoreFile?a.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),n("div",be,[n("button",{class:v(["btn",a.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!a.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=l=>i.uploadRestoreFile())},[s(" Hochladen "),o(f,{"fixed-width":"",icon:["fas","upload"]})],10,_e)])]),n("div",ye,[n("div",ke,[o(k,{class:v(a.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!a.restoreUploadDone,onButtonClicked:e[4]||(e[4]=l=>i.restoreBackup())},{default:u(()=>[s(" Wiederherstellung starten "),o(f,{"fixed-width":"",icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])]),ve,n("form",we,[o(b,null,{default:u(()=>[s(" Automatische Sicherung in einen Cloud-Dienst ")]),_:1}),o(g,{subtype:"info"},{default:u(()=>[s(" Zwischen Mitternacht und 5:00 Uhr wird automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden."),Ce,s(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du "),Be,s(" . ")]),_:1}),o(D,{class:"mb-2",title:"Backup-Cloud",options:i.backupCloudList,"model-value":t.$store.state.mqtt["openWB/system/backup_cloud/config"].type,"onUpdate:modelValue":e[5]||(e[5]=l=>i.updateSelectedBackupCloud(l))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/system/backup_cloud/config"].type?(p(),h("div",De,[o(W,{title:"Manuelle Cloud-Sicherung",buttonText:"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[6]||(e[6]=l=>i.sendSystemCommand("createCloudBackup",{}))}),o(x,{backupCloudType:t.$store.state.mqtt["openWB/system/backup_cloud/config"].type,configuration:t.$store.state.mqtt["openWB/system/backup_cloud/config"].configuration,"onUpdate:configuration":e[7]||(e[7]=l=>i.updateConfiguration("openWB/system/backup_cloud/config",l)),onSendCommand:e[8]||(e[8]=l=>i.sendSystemCommand(l.command,l.args))},null,8,["backupCloudType","configuration"])])):T("v-if",!0),o(M,{formName:"cloudBackupForm",hideReset:!0,hideDefaults:!0,onSave:e[9]||(e[9]=l=>t.$emit("save")),onReset:e[10]||(e[10]=l=>t.$emit("reset")),onDefaults:e[11]||(e[11]=l=>t.$emit("defaults"))})])]),_:1}),o(w,{title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:u(()=>[n("form",Se,[o(g,{subtype:"info"},{default:u(()=>[s(" Hier kann die Sicherung einer älteren 1.9er Version hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren. Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden."),Te,s(" Die Portierung kann einige Minuten dauern. Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist. ")]),_:1}),o(g,{subtype:"danger"},{default:u(()=>[s(" Vor der Datenübernahme unbedingt eine Sicherung erstellen."),Fe,s(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ")]),_:1}),n("div",Oe,[n("div",We,[n("div",xe,[o(f,{"fixed-width":"",icon:["fas","file-archive"]})])]),n("div",Me,[n("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[12]||(e[12]=l=>i.updateSelectedDataMigrationFile(l))},null,32),n("label",Le,y(a.selectedDataMigrationFile?a.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),n("div",ze,[n("button",{class:v(["btn",a.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!a.selectedDataMigrationFile,type:"button",onClick:e[13]||(e[13]=l=>i.uploadDataMigrationFile())},[s(" Hochladen "),o(f,{"fixed-width":"",icon:["fas","upload"]})],10,Ve)])]),o(b,null,{default:u(()=>[s("Zuordnung der Komponenten")]),_:1}),(p(!0),h(F,null,O(a.dataMigrationConfig,l=>(p(),h("div",{key:l.sectionName},[o(b,null,{default:u(()=>[s(y(l.sectionName),1)]),_:2},1024),(p(!0),h(F,null,O(l.sectionComponents,_=>(p(),B(D,{key:_.key,title:_.label,options:i.getMigrationOptions(_.validTypes),modelValue:a.dataMigrationMapping[_.key],"onUpdate:modelValue":L=>a.dataMigrationMapping[_.key]=L},G({_:2},[_.help?{name:"help",fn:u(()=>[s(y(_.help),1)]),key:"0"}:void 0]),1032,["title","options","modelValue","onUpdate:modelValue"]))),128))]))),128)),n("div",je,[n("div",He,[o(k,{class:v(a.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!a.dataMigrationUploadDone,onButtonClicked:e[14]||(e[14]=l=>i.dataMigration())},{default:u(()=>[s(" Datenübernahme starten "),o(f,{"fixed-width":"",icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1}),n("form",Ae,[o(w,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:u(()=>[n("div",Re,[n("div",Pe,[o(k,{class:"btn-danger clickable",onButtonClicked:e[15]||(e[15]=l=>i.factoryReset())},{default:u(()=>[o(f,{"fixed-width":"",icon:["fas","skull-crossbones"]}),s(" Zurücksetzen "),o(f,{"fixed-width":"",icon:["fas","skull-crossbones"]})]),_:1})])])]),default:u(()=>[o(g,{subtype:"danger"},{default:u(()=>[s(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc, Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ")]),_:1})]),_:1})])])):T("v-if",!0)])}const $e=C(ee,[["render",Ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]);export{$e as default};
diff --git a/web/settings/assets/DebugConfig-4d789b8a.js b/web/settings/assets/DebugConfig-e1b35f85.js
similarity index 92%
rename from web/settings/assets/DebugConfig-4d789b8a.js
rename to web/settings/assets/DebugConfig-e1b35f85.js
index 4a67df71c8..34db90f220 100644
--- a/web/settings/assets/DebugConfig-4d789b8a.js
+++ b/web/settings/assets/DebugConfig-e1b35f85.js
@@ -1,2 +1,2 @@
-import{l as h,Z as w,F as L}from"./vendor-fortawesome-838df0c9.js";import{C as _}from"./index-2a1b0c80.js";import{_ as k,p as a,k as v,l as C,q as l,A as t,L as o,u as c,x as p}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";h.add(w);const B={name:"OpenwbDebugging",mixins:[_],components:{FontAwesomeIcon:L},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/debug_level"],mainLog:"-- noch nicht geladen --",internalChargepointLog:"-- noch nicht geladen --",mqttLog:"-- noch nicht geladen --",socLog:"-- noch nicht geladen --",updateLog:"-- noch nicht geladen --"}},methods:{async getFilePromise(n){return this.axios.get(location.protocol+"//"+location.host+n).then(e=>e.data).catch(e=>e.response?`A 404 is expected if running node.js dev server!
+import{l as h,Z as w,F as L}from"./vendor-fortawesome-ad83e535.js";import{C as _}from"./index-bc47a901.js";import{_ as k,p as a,k as v,l as C,q as l,A as t,L as o,u as c,x as p}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";h.add(w);const B={name:"OpenwbDebugging",mixins:[_],components:{FontAwesomeIcon:L},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/debug_level"],mainLog:"-- noch nicht geladen --",internalChargepointLog:"-- noch nicht geladen --",mqttLog:"-- noch nicht geladen --",socLog:"-- noch nicht geladen --",updateLog:"-- noch nicht geladen --"}},methods:{async getFilePromise(n){return this.axios.get(location.protocol+"//"+location.host+n).then(e=>e.data).catch(e=>e.response?`A 404 is expected if running node.js dev server!
 `+e.response.data:e.request?e.request:e.message)},loadMainLog(n){n.stopPropagation(),this.mainLog="wird aktualisiert...",this.getFilePromise("/openWB/ramdisk/main.log").then(e=>{this.mainLog=e})},loadInternalChargepointLog(n){n.stopPropagation(),this.internalChargepointLog="wird aktualisiert...",this.getFilePromise("/openWB/ramdisk/internal_chargepoint.log").then(e=>{this.internalChargepointLog=e})},loadMqttLog(n){n.stopPropagation(),this.mqttLog="wird aktualisiert...",this.getFilePromise("/openWB/ramdisk/mqtt.log").then(e=>{this.mqttLog=e})},loadSocLog(n){n.stopPropagation(),this.socLog="wird aktualisiert...",this.getFilePromise("/openWB/ramdisk/soc.log").then(e=>{this.socLog=e})},loadUpdateLog(n){n.stopPropagation(),this.updateLog="wird aktualisiert...",this.getFilePromise("/openWB/data/log/update.log").then(e=>{this.updateLog=e})}}},x={class:"debugging"},P={name:"debugConfigForm"};function D(n,e,F,W,r,d){const m=a("openwb-base-button-group-input"),b=a("openwb-base-alert"),i=a("openwb-base-card"),f=a("openwb-base-submit-buttons"),u=a("font-awesome-icon"),g=a("openwb-base-avatar");return v(),C("div",x,[l("form",P,[t(i,{title:"Protokollierung"},{default:o(()=>[t(m,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":n.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=s=>n.updateState("openWB/system/debug_level",s))},{help:o(()=>[c(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ')]),_:1},8,["model-value"]),t(b,{subtype:"warning"},{default:o(()=>[c(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Kennwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ')]),_:1})]),_:1}),t(f,{formName:"debugConfigForm",onSave:e[1]||(e[1]=s=>n.$emit("save")),onReset:e[2]||(e[2]=s=>n.$emit("reset")),onDefaults:e[3]||(e[3]=s=>n.$emit("defaults"))})]),t(i,{title:"Main-Log",class:"mt-3",collapsible:!0,collapsed:!0},{actions:o(()=>[t(g,{class:"bg-success clickable",onClick:e[4]||(e[4]=s=>d.loadMainLog(s))},{default:o(()=>[t(u,{"fixed-width":"",icon:["fas","file-download"]})]),_:1})]),default:o(()=>[l("pre",null,p(r.mainLog),1)]),_:1}),t(i,{title:"Log des internen Ladepunktes",class:"mt-3",collapsible:!0,collapsed:!0},{actions:o(()=>[t(g,{class:"bg-success clickable",onClick:e[5]||(e[5]=s=>d.loadInternalChargepointLog(s))},{default:o(()=>[t(u,{"fixed-width":"",icon:["fas","file-download"]})]),_:1})]),default:o(()=>[l("pre",null,p(r.internalChargepointLog),1)]),_:1}),t(i,{title:"MQTT-Log",class:"mt-3",collapsible:!0,collapsed:!0},{actions:o(()=>[t(g,{class:"bg-success clickable",onClick:e[6]||(e[6]=s=>d.loadMqttLog(s))},{default:o(()=>[t(u,{"fixed-width":"",icon:["fas","file-download"]})]),_:1})]),default:o(()=>[l("pre",null,p(r.mqttLog),1)]),_:1}),t(i,{title:"SoC-Log",class:"mt-3",collapsible:!0,collapsed:!0},{actions:o(()=>[t(g,{class:"bg-success clickable",onClick:e[7]||(e[7]=s=>d.loadSocLog(s))},{default:o(()=>[t(u,{"fixed-width":"",icon:["fas","file-download"]})]),_:1})]),default:o(()=>[l("pre",null,p(r.socLog),1)]),_:1}),t(i,{title:"Protokoll des letzten Updates",class:"mt-3",collapsible:!0,collapsed:!0},{actions:o(()=>[t(g,{class:"bg-success clickable",onClick:e[8]||(e[8]=s=>d.loadUpdateLog(s))},{default:o(()=>[t(u,{"fixed-width":"",icon:["fas","file-download"]})]),_:1})]),default:o(()=>[l("pre",null,p(r.updateLog),1)]),_:1})])}const A=k(B,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfig.vue"]]);export{A as default};
diff --git a/web/settings/assets/GeneralChargeConfig-d9fc3d91.js b/web/settings/assets/GeneralChargeConfig-f06f295f.js
similarity index 87%
rename from web/settings/assets/GeneralChargeConfig-d9fc3d91.js
rename to web/settings/assets/GeneralChargeConfig-f06f295f.js
index b031c090d0..3226227017 100644
--- a/web/settings/assets/GeneralChargeConfig-d9fc3d91.js
+++ b/web/settings/assets/GeneralChargeConfig-f06f295f.js
@@ -1 +1 @@
-import{C as c}from"./index-2a1b0c80.js";import{_ as h,p as a,k as o,l,q as u,A as s,L as r,u as i,y as _,z as f}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const w={name:"OpenwbGeneralChargeConfig",mixins:[c],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit"]}}},v={class:"generalChargeConfig"},B={name:"generalChargeConfigForm"},C={key:0},z={key:1},k=u("br",null,null,-1);function $(n,e,W,V,S,N){const d=a("openwb-base-alert"),g=a("openwb-base-button-group-input"),m=a("openwb-base-range-input"),p=a("openwb-base-card"),b=a("openwb-base-submit-buttons");return o(),l("div",v,[u("form",B,[s(p,{title:"Allgemein"},{default:r(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",C,[s(d,{subtype:"info"},{default:r(()=>[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(o(),l("div",z,[s(g,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateState("openWB/general/chargemode_config/unbalanced_load",t))},{help:r(()=>[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!"),k,i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ')]),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(o(),_(m,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateState("openWB/general/chargemode_config/unbalanced_load_limit",t))},{help:r(()=>[i("Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt.")]),_:1},8,["model-value"])):f("v-if",!0)]))]),_:1}),s(b,{formName:"generalChargeConfigForm",onSave:e[2]||(e[2]=t=>n.$emit("save")),onReset:e[3]||(e[3]=t=>n.$emit("reset")),onDefaults:e[4]||(e[4]=t=>n.$emit("defaults"))})])])}const G=h(w,[["render",$],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]);export{G as default};
+import{C as c}from"./index-bc47a901.js";import{_ as h,p as a,k as o,l,q as u,A as s,L as r,u as i,y as _,z as f}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const w={name:"OpenwbGeneralChargeConfig",mixins:[c],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit"]}}},v={class:"generalChargeConfig"},B={name:"generalChargeConfigForm"},C={key:0},z={key:1},k=u("br",null,null,-1);function $(n,e,W,V,S,N){const d=a("openwb-base-alert"),g=a("openwb-base-button-group-input"),m=a("openwb-base-range-input"),p=a("openwb-base-card"),b=a("openwb-base-submit-buttons");return o(),l("div",v,[u("form",B,[s(p,{title:"Allgemein"},{default:r(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",C,[s(d,{subtype:"info"},{default:r(()=>[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(o(),l("div",z,[s(g,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateState("openWB/general/chargemode_config/unbalanced_load",t))},{help:r(()=>[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!"),k,i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ')]),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(o(),_(m,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateState("openWB/general/chargemode_config/unbalanced_load_limit",t))},{help:r(()=>[i("Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt.")]),_:1},8,["model-value"])):f("v-if",!0)]))]),_:1}),s(b,{formName:"generalChargeConfigForm",onSave:e[2]||(e[2]=t=>n.$emit("save")),onReset:e[3]||(e[3]=t=>n.$emit("reset")),onDefaults:e[4]||(e[4]=t=>n.$emit("defaults"))})])])}const G=h(w,[["render",$],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]);export{G as default};
diff --git a/web/settings/assets/GeneralConfig-6f942583.js b/web/settings/assets/GeneralConfig-6f942583.js
deleted file mode 100644
index 854263ca03..0000000000
--- a/web/settings/assets/GeneralConfig-6f942583.js
+++ /dev/null
@@ -1,254 +0,0 @@
-import{C as f}from"./index-2a1b0c80.js";import{_ as h,p as r,k as u,l,q as i,A as o,L as s,z as b,u as a}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"OpenwbGeneralConfig",mixins:[f],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/control_interval","openWB/general/grid_protection_configured","openWB/general/external_buttons_hw","openWB/general/notifications/selected","openWB/general/notifications/configuration","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/notifications/plug","openWB/general/notifications/smart_home","openWB/general/price_kwh","openWB/general/range_unit"]}}},B={class:"generalConfig"},w={name:"generalConfigForm"},_=i("br",null,null,-1),W=i("br",null,null,-1),k=i("br",null,null,-1),z=i("a",{href:"https://openwb.de/main/?page_id=1025",target:"_blank",rel:"noopener noreferrer"}," Homepage ",-1),S={key:0},$={key:1},V=i("br",null,null,-1),y=i("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1),x=i("br",null,null,-1),P=i("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1),q={key:0},L={key:1},N=i("br",null,null,-1);function E(e,t,A,D,T,I){const p=r("openwb-base-alert"),d=r("openwb-base-button-group-input"),g=r("openwb-base-card"),m=r("openwb-base-number-input"),c=r("openwb-base-submit-buttons");return u(),l("div",B,[i("form",w,[o(g,{title:"Steuerungsmodus"},{default:s(()=>[o(p,{subtype:"info"},{default:s(()=>[a(' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. externe openWB im Steuermodus secondary, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. '),_,W,a(' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet.'),k,a(" Eine bebilderte Anleitung zur Konfiguration der Ladepunkte findest Du auf der "),z,a(". ")]),_:1}),o(d,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/general/extern",n))},null,8,["model-value"])]),_:1}),o(g,{title:"Hardware"},{default:s(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(u(),l("div",S,[o(p,{subtype:"info"},{default:s(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),l("div",$,[o(d,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":e.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":t[1]||(t[1]=n=>e.updateState("openWB/general/control_interval",n))},{help:s(()=>[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.'),V,y]),_:1},8,["model-value"]),o(d,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":t[2]||(t[2]=n=>e.updateState("openWB/general/grid_protection_configured",n))},{help:s(()=>[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.'),x,P]),_:1},8,["model-value"]),b(` <openwb-base-button-group-input
-						title="Taster-Eingänge"
-						:model-value="
-							$store.state.mqtt[
-								'openWB/general/external_buttons_hw'
-							]
-						"
-						@update:model-value="
-							updateState(
-								'openWB/general/external_buttons_hw',
-								$event
-							)
-						"
-						:buttons="[
-							{
-								buttonValue: false,
-								text: 'Aus',
-								class: 'btn-outline-danger',
-							},
-							{
-								buttonValue: true,
-								text: 'An',
-								class: 'btn-outline-success',
-							},
-						]"
-					>
-						<template #help>
-							Wenn diese Option aktiviert ist, können bis zu fünf
-							Taster an die openWB angeschlossen werden. Die
-							entsprechenden Kontakte sind auf der Add-On-Platine
-							beschriftet.<br />
-							Bei Installationen ohne die Zusatzplatine können
-							folgende GPIOs benutzt werden, die durch die Taster
-							auf Masse zu schalten sind:
-							<ul>
-								<li>Taster 1: Pin 32 / GPIO 12</li>
-								<li>Taster 2: Pin 36 / GPIO 16</li>
-								<li>Taster 3: Pin 31 / GPIO 6</li>
-								<li>Taster 4: Pin 33 / GPIO 13</li>
-								<li>Taster 5: Pin 40 / GPIO 21</li>
-							</ul>
-						</template>
-					</openwb-base-button-group-input> `)]))]),_:1}),b(` <openwb-base-card title="Benachrichtigungen">
-				<div v-if="$store.state.mqtt['openWB/general/extern'] === true">
-					<openwb-base-alert subtype="info">
-						Diese Einstellungen sind nicht verfügbar, solange sich
-						diese openWB im Steuerungsmodus "secondary" befindet.
-					</openwb-base-alert>
-				</div>
-				<div v-else>
-					<openwb-base-select-input
-						title="Anbieter"
-						:model-value="
-							$store.state.mqtt[
-								'openWB/general/notifications/selected'
-							]
-						"
-						@update:model-value="
-							updateState(
-								'openWB/general/notifications/selected',
-								$event
-							)
-						"
-						:options="[
-							{ value: 'none', text: 'Kein Anbieter' },
-							{ value: 'pushover', text: 'Pushover' },
-						]"
-					/>
-					<div
-						v-if="
-							$store.state.mqtt[
-								'openWB/general/notifications/selected'
-							] == 'pushover'
-						"
-					>
-						<openwb-base-alert subtype="info">
-							Zur Nutzung von Pushover muss ein Konto auf
-							Pushover.net bestehen. Zudem muss im
-							Pushover-Nutzerkonto eine Applikation openWB
-							eingerichtet werden, um den benötigten API-Token/Key
-							zu erhalten.<br />
-							Wenn Pushover eingeschaltet ist, werden die
-							Zählerstände aller konfigurierten Ladepunkte immer
-							zum 1. des Monats gepusht.
-						</openwb-base-alert>
-						<openwb-base-text-input
-							title="Einstellungen"
-							subtype="json"
-							disabled="disabled"
-							:model-value="
-								$store.state.mqtt[
-									'openWB/general/notifications/configuration'
-								]
-							"
-							@update:model-value="
-								updateState(
-									'openWB/general/notifications/configuration',
-									$event
-								)
-							"
-						>
-							<template #help>Nur zur Info!</template>
-						</openwb-base-text-input>
-						<openwb-base-text-input
-							title="Pushover User Key"
-							:model-value="
-								$store.state.mqtt[
-									'openWB/general/notifications/configuration'
-								].user
-							"
-							@update:model-value="
-								updateState(
-									'openWB/general/notifications/configuration',
-									$event,
-									'user'
-								)
-							"
-							subtype="user"
-						/>
-						<openwb-base-text-input
-							title="Pushover API-Token/Key"
-							subtype="password"
-							:model-value="
-								$store.state.mqtt[
-									'openWB/general/notifications/configuration'
-								].key
-							"
-							@update:model-value="
-								updateState(
-									'openWB/general/notifications/configuration',
-									$event,
-									'key'
-								)
-							"
-						/>
-					</div>
-					<div
-						v-if="
-							$store.state.mqtt[
-								'openWB/general/notifications/selected'
-							] != 'none'
-						"
-					>
-						<hr />
-						<openwb-base-heading>
-							Benachrichtigungen
-						</openwb-base-heading>
-						<openwb-base-button-group-input
-							title="Beim Starten der Ladung"
-							:model-value="
-								$store.state.mqtt[
-									'openWB/general/notifications/start_charging'
-								]
-							"
-							@update:model-value="
-								updateState(
-									'openWB/general/notifications/start_charging',
-									$event
-								)
-							"
-							:buttons="[
-								{
-									buttonValue: false,
-									text: 'Nein',
-									class: 'btn-outline-danger',
-								},
-								{
-									buttonValue: true,
-									text: 'Ja',
-									class: 'btn-outline-success',
-								},
-							]"
-						/>
-						<openwb-base-button-group-input
-							title="Beim Stoppen der Ladung"
-							:model-value="
-								$store.state.mqtt[
-									'openWB/general/notifications/stop_charging'
-								]
-							"
-							@update:model-value="
-								updateState(
-									'openWB/general/notifications/stop_charging',
-									$event
-								)
-							"
-							:buttons="[
-								{
-									buttonValue: false,
-									text: 'Nein',
-									class: 'btn-outline-danger',
-								},
-								{
-									buttonValue: true,
-									text: 'Ja',
-									class: 'btn-outline-success',
-								},
-							]"
-						/>
-						<openwb-base-button-group-input
-							title="Beim Einstecken eines Fahrzeugs"
-							:model-value="
-								$store.state.mqtt[
-									'openWB/general/notifications/plug'
-								]
-							"
-							@update:model-value="
-								updateState(
-									'openWB/general/notifications/plug',
-									$event
-								)
-							"
-							:buttons="[
-								{
-									buttonValue: false,
-									text: 'Nein',
-									class: 'btn-outline-danger',
-								},
-								{
-									buttonValue: true,
-									text: 'Ja',
-									class: 'btn-outline-success',
-								},
-							]"
-						/>
-						<openwb-base-button-group-input
-							title="Bei Triggern von Smart Home Aktionen"
-							:model-value="
-								$store.state.mqtt[
-									'openWB/general/notifications/smart_home'
-								]
-							"
-							@update:model-value="
-								updateState(
-									'openWB/general/notifications/smart_home',
-									$event
-								)
-							"
-							:buttons="[
-								{
-									buttonValue: false,
-									text: 'Nein',
-									class: 'btn-outline-danger',
-								},
-								{
-									buttonValue: true,
-									text: 'Ja',
-									class: 'btn-outline-success',
-								},
-							]"
-						/>
-					</div>
-				</div>
-			</openwb-base-card> `),o(g,{title:"Lade-Log"},{default:s(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(u(),l("div",q,[o(p,{subtype:"info"},{default:s(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),l("div",L,[o(m,{title:"Preis je kWh",min:0,step:1e-4,unit:"€","model-value":e.$store.state.mqtt["openWB/general/price_kwh"],"onUpdate:modelValue":t[3]||(t[3]=n=>e.updateState("openWB/general/price_kwh",n))},{help:s(()=>[a(" Dient zur Berechnung der Ladekosten im Lade-Log."),N,a(" Es können bis zu 4 Nachkommastellen genutzt werden. ")]),_:1},8,["model-value"]),o(d,{title:"Einheit für Entfernungen","model-value":e.$store.state.mqtt["openWB/general/range_unit"],"onUpdate:modelValue":t[4]||(t[4]=n=>e.updateState("openWB/general/range_unit",n)),buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}]},null,8,["model-value"])]))]),_:1}),o(c,{formName:"generalConfigForm",onSave:t[5]||(t[5]=n=>e.$emit("save")),onReset:t[6]||(t[6]=n=>e.$emit("reset")),onDefaults:t[7]||(t[7]=n=>e.$emit("defaults"))})])])}const Z=h(v,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]);export{Z as default};
diff --git a/web/settings/assets/GeneralConfig-ede8ec95.js b/web/settings/assets/GeneralConfig-ede8ec95.js
new file mode 100644
index 0000000000..c8de7c7aae
--- /dev/null
+++ b/web/settings/assets/GeneralConfig-ede8ec95.js
@@ -0,0 +1,254 @@
+import{C as T}from"./index-bc47a901.js";import{_ as $}from"./dynamic-import-helper-be004503.js";import{_ as h,p as l,k as u,l as g,y as w,L as i,u as a,x as f,A as n,q as s,a0 as z,a1 as q,z as c}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const V={name:"WebThemeFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},webThemeType:{type:String}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},x={class:"web-theme-fallback"},P={key:1};function O(t,e,r,_,v,p){const d=l("openwb-base-alert"),b=l("openwb-base-textarea");return u(),g("div",x,[Object.keys(r.configuration).length==0?(u(),w(d,{key:0,subtype:"info"},{default:i(()=>[a(' Das Web Theme "'+f(r.webThemeType)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),g("div",P,[n(d,{subtype:"warning"},{default:i(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+f(r.webThemeType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Theme Konfiguration",subtype:"json","model-value":r.configuration,"onUpdate:modelValue":e[0]||(e[0]=m=>p.updateConfiguration(m,"configuration"))},{help:i(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(d,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(r.configuration,void 0,2)),1)]),_:1})]))])}const C=h(V,[["render",O],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]),D={name:"OpenwbWebThemeProxy",emits:["update:configuration"],props:{webThemeType:{type:String,required:!0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading web theme: ${this.webThemeType}`),z({loader:()=>$(Object.assign({}),`./${this.webThemeType}/webTheme.vue`),errorComponent:C})}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)}}};function L(t,e,r,_,v,p){return u(),w(q(p.myComponent),{configuration:r.configuration,webThemeType:r.webThemeType,"onUpdate:configuration":e[0]||(e[0]=d=>p.updateConfiguration(d))},null,40,["configuration","webThemeType"])}const N=h(D,[["render",L],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]),E={name:"OpenwbGeneralConfig",mixins:[T],components:{OpenwbWebThemeProxy:N},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/control_interval","openWB/general/grid_protection_configured","openWB/general/external_buttons_hw","openWB/general/notifications/selected","openWB/general/notifications/configuration","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/notifications/plug","openWB/general/notifications/smart_home","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}}},methods:{getWebThemeDefaultConfiguration(t){const e=this.webThemeList.find(r=>r.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults.configuration))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",t,"type"),this.updateState("openWB/general/web_theme",this.getWebThemeDefaultConfiguration(t),"configuration")},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},A={class:"generalConfig"},I={name:"generalConfigForm"},F=s("br",null,null,-1),G=s("br",null,null,-1),U=s("br",null,null,-1),R=s("a",{href:"https://openwb.de/main/?page_id=1025",target:"_blank",rel:"noopener noreferrer"}," Homepage ",-1),j={key:0},K={key:1},J=s("br",null,null,-1),H=s("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1),Z=s("br",null,null,-1),M=s("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1),Q={key:0},X={key:1},Y={key:0},tt=s("hr",null,null,-1),et=s("br",null,null,-1);function nt(t,e,r,_,v,p){const d=l("openwb-base-alert"),b=l("openwb-base-button-group-input"),m=l("openwb-base-card"),B=l("openwb-base-heading"),W=l("openwb-base-select-input"),y=l("openwb-web-theme-proxy"),k=l("openwb-base-number-input"),S=l("openwb-base-submit-buttons");return u(),g("div",A,[s("form",I,[n(m,{title:"Steuerungsmodus"},{default:i(()=>[n(d,{subtype:"info"},{default:i(()=>[a(' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. externe openWB im Steuermodus secondary, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. '),F,G,a(' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet.'),U,a(" Eine bebilderte Anleitung zur Konfiguration der Ladepunkte findest Du auf der "),R,a(". ")]),_:1}),n(b,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/extern",o))},null,8,["model-value"])]),_:1}),n(m,{title:"Hardware"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),g("div",j,[n(d,{subtype:"info"},{default:i(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),g("div",K,[n(b,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/control_interval",o))},{help:i(()=>[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.'),J,H]),_:1},8,["model-value"]),n(b,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/grid_protection_configured",o))},{help:i(()=>[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.'),Z,M]),_:1},8,["model-value"]),c(` <openwb-base-button-group-input
+						title="Taster-Eingänge"
+						:model-value="
+							$store.state.mqtt[
+								'openWB/general/external_buttons_hw'
+							]
+						"
+						@update:model-value="
+							updateState(
+								'openWB/general/external_buttons_hw',
+								$event
+							)
+						"
+						:buttons="[
+							{
+								buttonValue: false,
+								text: 'Aus',
+								class: 'btn-outline-danger',
+							},
+							{
+								buttonValue: true,
+								text: 'An',
+								class: 'btn-outline-success',
+							},
+						]"
+					>
+						<template #help>
+							Wenn diese Option aktiviert ist, können bis zu fünf
+							Taster an die openWB angeschlossen werden. Die
+							entsprechenden Kontakte sind auf der Add-On-Platine
+							beschriftet.<br />
+							Bei Installationen ohne die Zusatzplatine können
+							folgende GPIOs benutzt werden, die durch die Taster
+							auf Masse zu schalten sind:
+							<ul>
+								<li>Taster 1: Pin 32 / GPIO 12</li>
+								<li>Taster 2: Pin 36 / GPIO 16</li>
+								<li>Taster 3: Pin 31 / GPIO 6</li>
+								<li>Taster 4: Pin 33 / GPIO 13</li>
+								<li>Taster 5: Pin 40 / GPIO 21</li>
+							</ul>
+						</template>
+					</openwb-base-button-group-input> `)]))]),_:1}),c(` <openwb-base-card title="Benachrichtigungen">
+				<div v-if="$store.state.mqtt['openWB/general/extern'] === true">
+					<openwb-base-alert subtype="info">
+						Diese Einstellungen sind nicht verfügbar, solange sich
+						diese openWB im Steuerungsmodus "secondary" befindet.
+					</openwb-base-alert>
+				</div>
+				<div v-else>
+					<openwb-base-select-input
+						title="Anbieter"
+						:model-value="
+							$store.state.mqtt[
+								'openWB/general/notifications/selected'
+							]
+						"
+						@update:model-value="
+							updateState(
+								'openWB/general/notifications/selected',
+								$event
+							)
+						"
+						:options="[
+							{ value: 'none', text: 'Kein Anbieter' },
+							{ value: 'pushover', text: 'Pushover' },
+						]"
+					/>
+					<div
+						v-if="
+							$store.state.mqtt[
+								'openWB/general/notifications/selected'
+							] == 'pushover'
+						"
+					>
+						<openwb-base-alert subtype="info">
+							Zur Nutzung von Pushover muss ein Konto auf
+							Pushover.net bestehen. Zudem muss im
+							Pushover-Nutzerkonto eine Applikation openWB
+							eingerichtet werden, um den benötigten API-Token/Key
+							zu erhalten.<br />
+							Wenn Pushover eingeschaltet ist, werden die
+							Zählerstände aller konfigurierten Ladepunkte immer
+							zum 1. des Monats gepusht.
+						</openwb-base-alert>
+						<openwb-base-text-input
+							title="Einstellungen"
+							subtype="json"
+							disabled="disabled"
+							:model-value="
+								$store.state.mqtt[
+									'openWB/general/notifications/configuration'
+								]
+							"
+							@update:model-value="
+								updateState(
+									'openWB/general/notifications/configuration',
+									$event
+								)
+							"
+						>
+							<template #help>Nur zur Info!</template>
+						</openwb-base-text-input>
+						<openwb-base-text-input
+							title="Pushover User Key"
+							:model-value="
+								$store.state.mqtt[
+									'openWB/general/notifications/configuration'
+								].user
+							"
+							@update:model-value="
+								updateState(
+									'openWB/general/notifications/configuration',
+									$event,
+									'user'
+								)
+							"
+							subtype="user"
+						/>
+						<openwb-base-text-input
+							title="Pushover API-Token/Key"
+							subtype="password"
+							:model-value="
+								$store.state.mqtt[
+									'openWB/general/notifications/configuration'
+								].key
+							"
+							@update:model-value="
+								updateState(
+									'openWB/general/notifications/configuration',
+									$event,
+									'key'
+								)
+							"
+						/>
+					</div>
+					<div
+						v-if="
+							$store.state.mqtt[
+								'openWB/general/notifications/selected'
+							] != 'none'
+						"
+					>
+						<hr />
+						<openwb-base-heading>
+							Benachrichtigungen
+						</openwb-base-heading>
+						<openwb-base-button-group-input
+							title="Beim Starten der Ladung"
+							:model-value="
+								$store.state.mqtt[
+									'openWB/general/notifications/start_charging'
+								]
+							"
+							@update:model-value="
+								updateState(
+									'openWB/general/notifications/start_charging',
+									$event
+								)
+							"
+							:buttons="[
+								{
+									buttonValue: false,
+									text: 'Nein',
+									class: 'btn-outline-danger',
+								},
+								{
+									buttonValue: true,
+									text: 'Ja',
+									class: 'btn-outline-success',
+								},
+							]"
+						/>
+						<openwb-base-button-group-input
+							title="Beim Stoppen der Ladung"
+							:model-value="
+								$store.state.mqtt[
+									'openWB/general/notifications/stop_charging'
+								]
+							"
+							@update:model-value="
+								updateState(
+									'openWB/general/notifications/stop_charging',
+									$event
+								)
+							"
+							:buttons="[
+								{
+									buttonValue: false,
+									text: 'Nein',
+									class: 'btn-outline-danger',
+								},
+								{
+									buttonValue: true,
+									text: 'Ja',
+									class: 'btn-outline-success',
+								},
+							]"
+						/>
+						<openwb-base-button-group-input
+							title="Beim Einstecken eines Fahrzeugs"
+							:model-value="
+								$store.state.mqtt[
+									'openWB/general/notifications/plug'
+								]
+							"
+							@update:model-value="
+								updateState(
+									'openWB/general/notifications/plug',
+									$event
+								)
+							"
+							:buttons="[
+								{
+									buttonValue: false,
+									text: 'Nein',
+									class: 'btn-outline-danger',
+								},
+								{
+									buttonValue: true,
+									text: 'Ja',
+									class: 'btn-outline-success',
+								},
+							]"
+						/>
+						<openwb-base-button-group-input
+							title="Bei Triggern von Smart Home Aktionen"
+							:model-value="
+								$store.state.mqtt[
+									'openWB/general/notifications/smart_home'
+								]
+							"
+							@update:model-value="
+								updateState(
+									'openWB/general/notifications/smart_home',
+									$event
+								)
+							"
+							:buttons="[
+								{
+									buttonValue: false,
+									text: 'Nein',
+									class: 'btn-outline-danger',
+								},
+								{
+									buttonValue: true,
+									text: 'Ja',
+									class: 'btn-outline-success',
+								},
+							]"
+						/>
+					</div>
+				</div>
+			</openwb-base-card> `),n(m,{title:"Darstellung"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),g("div",Q,[n(d,{subtype:"info"},{default:i(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),g("div",X,[n(B,{class:"mt-0"},{default:i(()=>[a(" Hauptseite ")]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(u(),g("div",Y,[n(W,{class:"mb-2",title:"Theme",options:p.webThemeList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[3]||(e[3]=o=>p.updateSelectedWebTheme(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(u(),w(y,{key:0,webThemeType:t.$store.state.mqtt["openWB/general/web_theme"].type,configuration:t.$store.state.mqtt["openWB/general/web_theme"].configuration,"onUpdate:configuration":e[4]||(e[4]=o=>p.updateConfiguration("openWB/general/web_theme",o))},null,8,["webThemeType","configuration"])):c("v-if",!0)])):c("v-if",!0),tt,n(B,null,{default:i(()=>[a(" Lade-Log ")]),_:1}),n(k,{title:"Preis je kWh",min:0,step:1e-4,unit:"€","model-value":t.$store.state.mqtt["openWB/general/price_kwh"],"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/price_kwh",o))},{help:i(()=>[a(" Dient zur Berechnung der Ladekosten im Lade-Log."),et,a(" Es können bis zu 4 Nachkommastellen genutzt werden. ")]),_:1},8,["model-value"]),n(b,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/range_unit",o)),buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}]},null,8,["model-value"])]))]),_:1}),n(S,{formName:"generalConfigForm",onSave:e[7]||(e[7]=o=>t.$emit("save")),onReset:e[8]||(e[8]=o=>t.$emit("reset")),onDefaults:e[9]||(e[9]=o=>t.$emit("defaults"))})])])}const pt=h(E,[["render",nt],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]);export{pt as default};
diff --git a/web/settings/assets/HardwareInstallation-33a40424.js b/web/settings/assets/HardwareInstallation-33a40424.js
deleted file mode 100644
index d35598de0b..0000000000
--- a/web/settings/assets/HardwareInstallation-33a40424.js
+++ /dev/null
@@ -1 +0,0 @@
-import{l as N,d as U,t as G,R as F,S as H,K as J,L as Z,M as Q,F as $}from"./vendor-fortawesome-838df0c9.js";import{_ as e,C as X}from"./index-2a1b0c80.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as y,p,k as a,l as c,A as n,L as i,u as v,x as A,q as m,a0 as W,y as l,a1 as Y,z as P,G as L,I as h,n as w,Q as ee,R as _e}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const te={name:"DeviceFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},deviceType:String,componentId:{default:void 0},componentType:String},methods:{updateConfiguration(_,o=void 0){this.$emit("update:configuration",{value:_,object:o})}}},oe={class:"device-fallback"},ie={key:0},re={key:1};function ne(_,o,u,O,s,r){const I=p("openwb-base-alert"),g=p("openwb-base-textarea");return a(),c("div",oe,[n(I,{subtype:"warning"},{default:i(()=>[v(" Es wurde keine Konfigurationsseite für den "),u.componentType?(a(),c("span",ie,' Komponenten-Typ "'+A(u.componentType)+'" ',1)):(a(),c("span",re,'Geräte-Typ "'+A(u.deviceType)+'"',1)),v(" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ")]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":u.configuration,"onUpdate:modelValue":o[0]||(o[0]=R=>r.updateConfiguration(R,"configuration"))},{help:i(()=>[v(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(I,{subtype:"info"},{default:i(()=>[m("pre",null,A(JSON.stringify(u.configuration,void 0,2)),1)]),_:1})])}const S=y(te,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ue={name:"OpenwbConfigProxy",emits:["update:configuration"],props:{deviceId:{required:!0},deviceType:{type:String,required:!0},componentId:{default:void 0},componentType:{type:String,default:void 0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading component: ${this.deviceType} / ${this.componentType}`),this.componentType!==void 0?W({loader:()=>M(Object.assign({"./alpha_ess/bat.vue":()=>e(()=>import("./bat-d94203e2.js"),["assets/bat-d94203e2.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./alpha_ess/counter.vue":()=>e(()=>import("./counter-16bcb8fc.js"),["assets/counter-16bcb8fc.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./alpha_ess/device.vue":()=>e(()=>import("./device-509acf7c.js"),["assets/device-509acf7c.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./alpha_ess/inverter.vue":()=>e(()=>import("./inverter-eef610e6.js"),["assets/inverter-eef610e6.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./batterx/bat.vue":()=>e(()=>import("./bat-17d0ebe7.js"),["assets/bat-17d0ebe7.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./batterx/counter.vue":()=>e(()=>import("./counter-d1489ce8.js"),["assets/counter-d1489ce8.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./batterx/device.vue":()=>e(()=>import("./device-9444169d.js"),["assets/device-9444169d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./batterx/external_inverter.vue":()=>e(()=>import("./external_inverter-21044b75.js"),["assets/external_inverter-21044b75.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./batterx/inverter.vue":()=>e(()=>import("./inverter-267fccce.js"),["assets/inverter-267fccce.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./byd/bat.vue":()=>e(()=>import("./bat-39b4c6ba.js"),["assets/bat-39b4c6ba.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./byd/device.vue":()=>e(()=>import("./device-cc75d571.js"),["assets/device-cc75d571.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-08f8d2f2.js"),["assets/counter-08f8d2f2.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./carlo_gavazzi/device.vue":()=>e(()=>import("./device-e67da7c1.js"),["assets/device-e67da7c1.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./discovergy/counter.vue":()=>e(()=>import("./counter-0d09b23e.js"),["assets/counter-0d09b23e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./discovergy/device.vue":()=>e(()=>import("./device-d57c20ac.js"),["assets/device-d57c20ac.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./discovergy/inverter.vue":()=>e(()=>import("./inverter-96db7f1d.js"),["assets/inverter-96db7f1d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./e3dc/bat.vue":()=>e(()=>import("./bat-d04d3f5b.js"),["assets/bat-d04d3f5b.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./e3dc/counter.vue":()=>e(()=>import("./counter-969297fa.js"),["assets/counter-969297fa.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./e3dc/device.vue":()=>e(()=>import("./device-f356c73d.js"),["assets/device-f356c73d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./e3dc/external_inverter.vue":()=>e(()=>import("./external_inverter-5c208b04.js"),["assets/external_inverter-5c208b04.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./e3dc/inverter.vue":()=>e(()=>import("./inverter-be6aac70.js"),["assets/inverter-be6aac70.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./enphase/counter.vue":()=>e(()=>import("./counter-2524acf0.js"),["assets/counter-2524acf0.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./enphase/device.vue":()=>e(()=>import("./device-1548812a.js"),["assets/device-1548812a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./enphase/inverter.vue":()=>e(()=>import("./inverter-c90183ae.js"),["assets/inverter-c90183ae.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fems/bat.vue":()=>e(()=>import("./bat-3f0ca072.js"),["assets/bat-3f0ca072.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fems/counter.vue":()=>e(()=>import("./counter-57c9333b.js"),["assets/counter-57c9333b.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fems/device.vue":()=>e(()=>import("./device-e95c0504.js"),["assets/device-e95c0504.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fems/inverter.vue":()=>e(()=>import("./inverter-1c1592c9.js"),["assets/inverter-1c1592c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fronius/bat.vue":()=>e(()=>import("./bat-514861df.js"),["assets/bat-514861df.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fronius/counter_s0.vue":()=>e(()=>import("./counter_s0-ba7ae169.js"),["assets/counter_s0-ba7ae169.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-ccecb663.js"),["assets/counter_sm-ccecb663.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fronius/device.vue":()=>e(()=>import("./device-c7f104f4.js"),["assets/device-c7f104f4.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fronius/inverter.vue":()=>e(()=>import("./inverter-0fd0b224.js"),["assets/inverter-0fd0b224.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./good_we/bat.vue":()=>e(()=>import("./bat-874f748e.js"),["assets/bat-874f748e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./good_we/counter.vue":()=>e(()=>import("./counter-a3e434aa.js"),["assets/counter-a3e434aa.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./good_we/device.vue":()=>e(()=>import("./device-1a05e97a.js"),["assets/device-1a05e97a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./good_we/inverter.vue":()=>e(()=>import("./inverter-08367390.js"),["assets/inverter-08367390.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./http/bat.vue":()=>e(()=>import("./bat-0e028baf.js"),["assets/bat-0e028baf.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./http/counter.vue":()=>e(()=>import("./counter-75ce0061.js"),["assets/counter-75ce0061.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./http/device.vue":()=>e(()=>import("./device-e41e1249.js"),["assets/device-e41e1249.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./http/inverter.vue":()=>e(()=>import("./inverter-15408a2b.js"),["assets/inverter-15408a2b.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei/bat.vue":()=>e(()=>import("./bat-46c566c9.js"),["assets/bat-46c566c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei/counter.vue":()=>e(()=>import("./counter-45ecd9ff.js"),["assets/counter-45ecd9ff.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei/device.vue":()=>e(()=>import("./device-bfd97b22.js"),["assets/device-bfd97b22.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei/inverter.vue":()=>e(()=>import("./inverter-86ab0f22.js"),["assets/inverter-86ab0f22.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-5b22e35d.js"),["assets/bat-5b22e35d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-6247163c.js"),["assets/counter-6247163c.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/device.vue":()=>e(()=>import("./device-3f5084e0.js"),["assets/device-3f5084e0.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-4c98a82a.js"),["assets/inverter-4c98a82a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./janitza/counter.vue":()=>e(()=>import("./counter-1ddce36f.js"),["assets/counter-1ddce36f.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./janitza/device.vue":()=>e(()=>import("./device-a2d2f22a.js"),["assets/device-a2d2f22a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./json/bat.vue":()=>e(()=>import("./bat-268a0365.js"),["assets/bat-268a0365.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./json/counter.vue":()=>e(()=>import("./counter-e3807695.js"),["assets/counter-e3807695.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./json/device.vue":()=>e(()=>import("./device-d3107147.js"),["assets/device-d3107147.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./json/inverter.vue":()=>e(()=>import("./inverter-5b0c8748.js"),["assets/inverter-5b0c8748.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko/counter.vue":()=>e(()=>import("./counter-b4f1d52c.js"),["assets/counter-b4f1d52c.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko/device.vue":()=>e(()=>import("./device-a81f5544.js"),["assets/device-a81f5544.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko/inverter.vue":()=>e(()=>import("./inverter-1f399f0d.js"),["assets/inverter-1f399f0d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko_old/device.vue":()=>e(()=>import("./device-5b3585a3.js"),["assets/device-5b3585a3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko_old/inverter.vue":()=>e(()=>import("./inverter-8c6dadd9.js"),["assets/inverter-8c6dadd9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/bat.vue":()=>e(()=>import("./bat-ec698ff1.js"),["assets/bat-ec698ff1.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/counter.vue":()=>e(()=>import("./counter-9a41f79b.js"),["assets/counter-9a41f79b.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/device.vue":()=>e(()=>import("./device-28066804.js"),["assets/device-28066804.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/inverter.vue":()=>e(()=>import("./inverter-f9807fb1.js"),["assets/inverter-f9807fb1.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_sem/counter.vue":()=>e(()=>import("./counter-ed28bc4b.js"),["assets/counter-ed28bc4b.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_sem/device.vue":()=>e(()=>import("./device-e97ebded.js"),["assets/device-e97ebded.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_steca/device.vue":()=>e(()=>import("./device-895b9b05.js"),["assets/device-895b9b05.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_steca/inverter.vue":()=>e(()=>import("./inverter-508f415f.js"),["assets/inverter-508f415f.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./lg/bat.vue":()=>e(()=>import("./bat-0eeeca9c.js"),["assets/bat-0eeeca9c.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./lg/counter.vue":()=>e(()=>import("./counter-cf4834fd.js"),["assets/counter-cf4834fd.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./lg/device.vue":()=>e(()=>import("./device-e5846fb7.js"),["assets/device-e5846fb7.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./lg/inverter.vue":()=>e(()=>import("./inverter-e5461fd3.js"),["assets/inverter-e5461fd3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./mqtt/bat.vue":()=>e(()=>import("./bat-3af1a10a.js"),["assets/bat-3af1a10a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./mqtt/counter.vue":()=>e(()=>import("./counter-1516cbf4.js"),["assets/counter-1516cbf4.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./mqtt/device.vue":()=>e(()=>import("./device-49750792.js"),["assets/device-49750792.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./mqtt/inverter.vue":()=>e(()=>import("./inverter-40f5b027.js"),["assets/inverter-40f5b027.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-bbb09227.js"),["assets/bat-bbb09227.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_bat_kit/device.vue":()=>e(()=>import("./device-a88fff7e.js"),["assets/device-a88fff7e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-27edc2dc.js"),["assets/bat-27edc2dc.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-4fb4e495.js"),["assets/counter-4fb4e495.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/device.vue":()=>e(()=>import("./device-e690bc67.js"),["assets/device-e690bc67.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-a4741525.js"),["assets/inverter-a4741525.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/bat.vue":()=>e(()=>import("./bat-aaf46348.js"),["assets/bat-aaf46348.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/counter.vue":()=>e(()=>import("./counter-0abbb386.js"),["assets/counter-0abbb386.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/device.vue":()=>e(()=>import("./device-0ec37631.js"),["assets/device-0ec37631.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/inverter.vue":()=>e(()=>import("./inverter-d02eb41e.js"),["assets/inverter-d02eb41e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_pv_kit/device.vue":()=>e(()=>import("./device-4005e628.js"),["assets/device-4005e628.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-1b75ddba.js"),["assets/inverter-1b75ddba.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./powerdog/counter.vue":()=>e(()=>import("./counter-c9dc9c81.js"),["assets/counter-c9dc9c81.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./powerdog/device.vue":()=>e(()=>import("./device-b1434489.js"),["assets/device-b1434489.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./powerdog/inverter.vue":()=>e(()=>import("./inverter-f7d9af29.js"),["assets/inverter-f7d9af29.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./powerfox/counter.vue":()=>e(()=>import("./counter-b804ace4.js"),["assets/counter-b804ace4.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./powerfox/device.vue":()=>e(()=>import("./device-8715b56d.js"),["assets/device-8715b56d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./powerfox/inverter.vue":()=>e(()=>import("./inverter-3d45d55a.js"),["assets/inverter-3d45d55a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./qcells/bat.vue":()=>e(()=>import("./bat-df8e198a.js"),["assets/bat-df8e198a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./qcells/counter.vue":()=>e(()=>import("./counter-e15f2c06.js"),["assets/counter-e15f2c06.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./qcells/device.vue":()=>e(()=>import("./device-8271ebf3.js"),["assets/device-8271ebf3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./qcells/inverter.vue":()=>e(()=>import("./inverter-326280ce.js"),["assets/inverter-326280ce.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./rct/bat.vue":()=>e(()=>import("./bat-f963a986.js"),["assets/bat-f963a986.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./rct/counter.vue":()=>e(()=>import("./counter-83354bca.js"),["assets/counter-83354bca.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./rct/device.vue":()=>e(()=>import("./device-3fe4b5f3.js"),["assets/device-3fe4b5f3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./rct/inverter.vue":()=>e(()=>import("./inverter-8ca711bc.js"),["assets/inverter-8ca711bc.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./saxpower/bat.vue":()=>e(()=>import("./bat-595642c8.js"),["assets/bat-595642c8.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./saxpower/device.vue":()=>e(()=>import("./device-a394c36e.js"),["assets/device-a394c36e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./shelly/device.vue":()=>e(()=>import("./device-e8e7a237.js"),["assets/device-e8e7a237.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./shelly/inverter.vue":()=>e(()=>import("./inverter-3d819a6f.js"),["assets/inverter-3d819a6f.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./siemens/bat.vue":()=>e(()=>import("./bat-e62d7b1e.js"),["assets/bat-e62d7b1e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./siemens/counter.vue":()=>e(()=>import("./counter-0524aa8c.js"),["assets/counter-0524aa8c.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./siemens/device.vue":()=>e(()=>import("./device-bf858f4d.js"),["assets/device-bf858f4d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./siemens/inverter.vue":()=>e(()=>import("./inverter-47bedabe.js"),["assets/inverter-47bedabe.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./siemens_sentron/counter.vue":()=>e(()=>import("./counter-00e8bfb9.js"),["assets/counter-00e8bfb9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./siemens_sentron/device.vue":()=>e(()=>import("./device-7e999eff.js"),["assets/device-7e999eff.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_shm/counter.vue":()=>e(()=>import("./counter-25d1e220.js"),["assets/counter-25d1e220.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_shm/device.vue":()=>e(()=>import("./device-3711a41a.js"),["assets/device-3711a41a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_shm/inverter.vue":()=>e(()=>import("./inverter-6ce20d89.js"),["assets/inverter-6ce20d89.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-e8cdd332.js"),["assets/bat-e8cdd332.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-5d29a479.js"),["assets/bat_smart_energy-5d29a479.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-107b4963.js"),["assets/counter-107b4963.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/device.vue":()=>e(()=>import("./device-6422d305.js"),["assets/device-6422d305.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-89491124.js"),["assets/inverter-89491124.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_island/bat.vue":()=>e(()=>import("./bat-ce4aa848.js"),["assets/bat-ce4aa848.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_island/device.vue":()=>e(()=>import("./device-d4d23cd7.js"),["assets/device-d4d23cd7.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_webbox/device.vue":()=>e(()=>import("./device-c365f5a7.js"),["assets/device-c365f5a7.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_webbox/inverter.vue":()=>e(()=>import("./inverter-92eb5977.js"),["assets/inverter-92eb5977.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smart_me/counter.vue":()=>e(()=>import("./counter-9c24dc5c.js"),["assets/counter-9c24dc5c.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smart_me/device.vue":()=>e(()=>import("./device-95bb6ed4.js"),["assets/device-95bb6ed4.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smart_me/inverter.vue":()=>e(()=>import("./inverter-af852271.js"),["assets/inverter-af852271.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smartfox/counter.vue":()=>e(()=>import("./counter-cd290a98.js"),["assets/counter-cd290a98.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smartfox/device.vue":()=>e(()=>import("./device-d6905669.js"),["assets/device-d6905669.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_log/counter.vue":()=>e(()=>import("./counter-b09d3ede.js"),["assets/counter-b09d3ede.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_log/device.vue":()=>e(()=>import("./device-52389f33.js"),["assets/device-52389f33.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_log/inverter.vue":()=>e(()=>import("./inverter-b1415371.js"),["assets/inverter-b1415371.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_view/counter.vue":()=>e(()=>import("./counter-fca60eb6.js"),["assets/counter-fca60eb6.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_view/device.vue":()=>e(()=>import("./device-3330c205.js"),["assets/device-3330c205.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_view/inverter.vue":()=>e(()=>import("./inverter-7f5cbd1f.js"),["assets/inverter-7f5cbd1f.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/bat.vue":()=>e(()=>import("./bat-4b1f210f.js"),["assets/bat-4b1f210f.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/counter.vue":()=>e(()=>import("./counter-32007d3e.js"),["assets/counter-32007d3e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/device.vue":()=>e(()=>import("./device-11080b2d.js"),["assets/device-11080b2d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/inverter.vue":()=>e(()=>import("./inverter-90b5924d.js"),["assets/inverter-90b5924d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_world/counter.vue":()=>e(()=>import("./counter-2fda105e.js"),["assets/counter-2fda105e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_world/device.vue":()=>e(()=>import("./device-72498906.js"),["assets/device-72498906.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_world/inverter.vue":()=>e(()=>import("./inverter-e3d31521.js"),["assets/inverter-e3d31521.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solaredge/bat.vue":()=>e(()=>import("./bat-f2ff4071.js"),["assets/bat-f2ff4071.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solaredge/counter.vue":()=>e(()=>import("./counter-71a69a0f.js"),["assets/counter-71a69a0f.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solaredge/device.vue":()=>e(()=>import("./device-eb39e5e3.js"),["assets/device-eb39e5e3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-af9b2b79.js"),["assets/external_inverter-af9b2b79.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solaredge/inverter.vue":()=>e(()=>import("./inverter-5d68f662.js"),["assets/inverter-5d68f662.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solarmax/bat.vue":()=>e(()=>import("./bat-b2de0630.js"),["assets/bat-b2de0630.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solarmax/device.vue":()=>e(()=>import("./device-e304fcca.js"),["assets/device-e304fcca.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solarmax/inverter.vue":()=>e(()=>import("./inverter-a532223b.js"),["assets/inverter-a532223b.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solax/bat.vue":()=>e(()=>import("./bat-93524d1b.js"),["assets/bat-93524d1b.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solax/counter.vue":()=>e(()=>import("./counter-09b39d2d.js"),["assets/counter-09b39d2d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solax/device.vue":()=>e(()=>import("./device-4c8d99b2.js"),["assets/device-4c8d99b2.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solax/inverter.vue":()=>e(()=>import("./inverter-5cfbe42d.js"),["assets/inverter-5cfbe42d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/bat.vue":()=>e(()=>import("./bat-8c7d349e.js"),["assets/bat-8c7d349e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/counter.vue":()=>e(()=>import("./counter-e7921fa4.js"),["assets/counter-e7921fa4.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/device.vue":()=>e(()=>import("./device-0be142e9.js"),["assets/device-0be142e9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/inverter.vue":()=>e(()=>import("./inverter-a6e26156.js"),["assets/inverter-a6e26156.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./studer/bat.vue":()=>e(()=>import("./bat-22a2eeff.js"),["assets/bat-22a2eeff.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./studer/device.vue":()=>e(()=>import("./device-f422a199.js"),["assets/device-f422a199.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./studer/inverter.vue":()=>e(()=>import("./inverter-d2ccf27d.js"),["assets/inverter-d2ccf27d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sungrow/bat.vue":()=>e(()=>import("./bat-7500700f.js"),["assets/bat-7500700f.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sungrow/counter.vue":()=>e(()=>import("./counter-9513e8db.js"),["assets/counter-9513e8db.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sungrow/device.vue":()=>e(()=>import("./device-69672183.js"),["assets/device-69672183.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sungrow/inverter.vue":()=>e(()=>import("./inverter-3fdb1742.js"),["assets/inverter-3fdb1742.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sunways/device.vue":()=>e(()=>import("./device-1034f28e.js"),["assets/device-1034f28e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sunways/inverter.vue":()=>e(()=>import("./inverter-b959eebb.js"),["assets/inverter-b959eebb.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./tesla/bat.vue":()=>e(()=>import("./bat-9894d537.js"),["assets/bat-9894d537.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./tesla/counter.vue":()=>e(()=>import("./counter-25dcea49.js"),["assets/counter-25dcea49.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./tesla/device.vue":()=>e(()=>import("./device-ac3bc5b3.js"),["assets/device-ac3bc5b3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./tesla/inverter.vue":()=>e(()=>import("./inverter-c08d4e42.js"),["assets/inverter-c08d4e42.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./varta/bat_api.vue":()=>e(()=>import("./bat_api-bbcd36bc.js"),["assets/bat_api-bbcd36bc.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./varta/bat_modbus.vue":()=>e(()=>import("./bat_modbus-7b1ae23d.js"),["assets/bat_modbus-7b1ae23d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./varta/counter.vue":()=>e(()=>import("./counter-5cb15a92.js"),["assets/counter-5cb15a92.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./varta/device.vue":()=>e(()=>import("./device-246d5e43.js"),["assets/device-246d5e43.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./victron/bat.vue":()=>e(()=>import("./bat-6c62c4f0.js"),["assets/bat-6c62c4f0.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./victron/counter.vue":()=>e(()=>import("./counter-9a77fa00.js"),["assets/counter-9a77fa00.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./victron/device.vue":()=>e(()=>import("./device-84570e67.js"),["assets/device-84570e67.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./victron/inverter.vue":()=>e(()=>import("./inverter-135f51a3.js"),["assets/inverter-135f51a3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./virtual/counter.vue":()=>e(()=>import("./counter-a13ecb51.js"),["assets/counter-a13ecb51.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./virtual/device.vue":()=>e(()=>import("./device-81934251.js"),["assets/device-81934251.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./vzlogger/counter.vue":()=>e(()=>import("./counter-6264518e.js"),["assets/counter-6264518e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./vzlogger/device.vue":()=>e(()=>import("./device-4a98b784.js"),["assets/device-4a98b784.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./vzlogger/inverter.vue":()=>e(()=>import("./inverter-9962a05f.js"),["assets/inverter-9962a05f.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./youless/device.vue":()=>e(()=>import("./device-3ddc3e24.js"),["assets/device-3ddc3e24.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./youless/inverter.vue":()=>e(()=>import("./inverter-a028ca0c.js"),["assets/inverter-a028ca0c.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"])}),`./${this.deviceType}/${this.componentType}.vue`),errorComponent:S}):W({loader:()=>M(Object.assign({"./alpha_ess/device.vue":()=>e(()=>import("./device-509acf7c.js"),["assets/device-509acf7c.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./batterx/device.vue":()=>e(()=>import("./device-9444169d.js"),["assets/device-9444169d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./byd/device.vue":()=>e(()=>import("./device-cc75d571.js"),["assets/device-cc75d571.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./carlo_gavazzi/device.vue":()=>e(()=>import("./device-e67da7c1.js"),["assets/device-e67da7c1.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./discovergy/device.vue":()=>e(()=>import("./device-d57c20ac.js"),["assets/device-d57c20ac.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./e3dc/device.vue":()=>e(()=>import("./device-f356c73d.js"),["assets/device-f356c73d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./enphase/device.vue":()=>e(()=>import("./device-1548812a.js"),["assets/device-1548812a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fems/device.vue":()=>e(()=>import("./device-e95c0504.js"),["assets/device-e95c0504.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./fronius/device.vue":()=>e(()=>import("./device-c7f104f4.js"),["assets/device-c7f104f4.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./good_we/device.vue":()=>e(()=>import("./device-1a05e97a.js"),["assets/device-1a05e97a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./http/device.vue":()=>e(()=>import("./device-e41e1249.js"),["assets/device-e41e1249.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei/device.vue":()=>e(()=>import("./device-bfd97b22.js"),["assets/device-bfd97b22.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/device.vue":()=>e(()=>import("./device-3f5084e0.js"),["assets/device-3f5084e0.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./janitza/device.vue":()=>e(()=>import("./device-a2d2f22a.js"),["assets/device-a2d2f22a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./json/device.vue":()=>e(()=>import("./device-d3107147.js"),["assets/device-d3107147.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko/device.vue":()=>e(()=>import("./device-a81f5544.js"),["assets/device-a81f5544.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko_old/device.vue":()=>e(()=>import("./device-5b3585a3.js"),["assets/device-5b3585a3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/device.vue":()=>e(()=>import("./device-28066804.js"),["assets/device-28066804.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_sem/device.vue":()=>e(()=>import("./device-e97ebded.js"),["assets/device-e97ebded.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kostal_steca/device.vue":()=>e(()=>import("./device-895b9b05.js"),["assets/device-895b9b05.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./lg/device.vue":()=>e(()=>import("./device-e5846fb7.js"),["assets/device-e5846fb7.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./mqtt/device.vue":()=>e(()=>import("./device-49750792.js"),["assets/device-49750792.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_bat_kit/device.vue":()=>e(()=>import("./device-a88fff7e.js"),["assets/device-a88fff7e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/device.vue":()=>e(()=>import("./device-e690bc67.js"),["assets/device-e690bc67.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/device.vue":()=>e(()=>import("./device-0ec37631.js"),["assets/device-0ec37631.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./openwb_pv_kit/device.vue":()=>e(()=>import("./device-4005e628.js"),["assets/device-4005e628.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./powerdog/device.vue":()=>e(()=>import("./device-b1434489.js"),["assets/device-b1434489.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./powerfox/device.vue":()=>e(()=>import("./device-8715b56d.js"),["assets/device-8715b56d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./qcells/device.vue":()=>e(()=>import("./device-8271ebf3.js"),["assets/device-8271ebf3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./rct/device.vue":()=>e(()=>import("./device-3fe4b5f3.js"),["assets/device-3fe4b5f3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./saxpower/device.vue":()=>e(()=>import("./device-a394c36e.js"),["assets/device-a394c36e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./shelly/device.vue":()=>e(()=>import("./device-e8e7a237.js"),["assets/device-e8e7a237.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./siemens/device.vue":()=>e(()=>import("./device-bf858f4d.js"),["assets/device-bf858f4d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./siemens_sentron/device.vue":()=>e(()=>import("./device-7e999eff.js"),["assets/device-7e999eff.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_shm/device.vue":()=>e(()=>import("./device-3711a41a.js"),["assets/device-3711a41a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/device.vue":()=>e(()=>import("./device-6422d305.js"),["assets/device-6422d305.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_island/device.vue":()=>e(()=>import("./device-d4d23cd7.js"),["assets/device-d4d23cd7.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sma_webbox/device.vue":()=>e(()=>import("./device-c365f5a7.js"),["assets/device-c365f5a7.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smart_me/device.vue":()=>e(()=>import("./device-95bb6ed4.js"),["assets/device-95bb6ed4.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smartfox/device.vue":()=>e(()=>import("./device-d6905669.js"),["assets/device-d6905669.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_log/device.vue":()=>e(()=>import("./device-52389f33.js"),["assets/device-52389f33.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_view/device.vue":()=>e(()=>import("./device-3330c205.js"),["assets/device-3330c205.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/device.vue":()=>e(()=>import("./device-11080b2d.js"),["assets/device-11080b2d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solar_world/device.vue":()=>e(()=>import("./device-72498906.js"),["assets/device-72498906.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solaredge/device.vue":()=>e(()=>import("./device-eb39e5e3.js"),["assets/device-eb39e5e3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solarmax/device.vue":()=>e(()=>import("./device-e304fcca.js"),["assets/device-e304fcca.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./solax/device.vue":()=>e(()=>import("./device-4c8d99b2.js"),["assets/device-4c8d99b2.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/device.vue":()=>e(()=>import("./device-0be142e9.js"),["assets/device-0be142e9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./studer/device.vue":()=>e(()=>import("./device-f422a199.js"),["assets/device-f422a199.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sungrow/device.vue":()=>e(()=>import("./device-69672183.js"),["assets/device-69672183.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./sunways/device.vue":()=>e(()=>import("./device-1034f28e.js"),["assets/device-1034f28e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./tesla/device.vue":()=>e(()=>import("./device-ac3bc5b3.js"),["assets/device-ac3bc5b3.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./varta/device.vue":()=>e(()=>import("./device-246d5e43.js"),["assets/device-246d5e43.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./victron/device.vue":()=>e(()=>import("./device-84570e67.js"),["assets/device-84570e67.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./virtual/device.vue":()=>e(()=>import("./device-81934251.js"),["assets/device-81934251.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./vzlogger/device.vue":()=>e(()=>import("./device-4a98b784.js"),["assets/device-4a98b784.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./youless/device.vue":()=>e(()=>import("./device-3ddc3e24.js"),["assets/device-3ddc3e24.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"])}),`./${this.deviceType}/device.vue`),errorComponent:S})}},methods:{updateConfiguration(_){this.$emit("update:configuration",_)}}};function de(_,o,u,O,s,r){return a(),l(Y(r.myComponent),{configuration:u.configuration,deviceId:u.deviceId,deviceType:u.deviceType,componentId:u.componentId,componentType:u.componentType,"onUpdate:configuration":o[0]||(o[0]=I=>r.updateConfiguration(I))},null,40,["configuration","deviceId","deviceType","componentId","componentType"])}const ve=y(ue,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);N.add(U,G,F,H,J,Z,Q);const ae={name:"OpenwbHardwareInstallation",mixins:[X],emits:["sendCommand"],components:{FontAwesomeIcon:$,OpenwbConfigProxy:ve},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getComponentTypeClass(_){return _.match(/^(.+_)?counter(_.+)?$/)?"danger":_.match(/^(.+_)?inverter(_.+)?$/)?"success":_.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(_){return _.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:_.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:_.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(_){return this.getWildcardTopics("openWB/system/device/"+_+"/component/+/config")},deviceHasConfiguredComponents(_){return Object.keys(this.getMyInstalledComponents(_)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{type:this.deviceToAdd}})},removeDeviceModal(_,o,u){u.stopPropagation(),this.modalDevice=_,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(_){this.showDeviceRemoveModal=!1,_=="confirm"&&(console.info("request removal of device '"+this.modalDevice+"'"),this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}}))},getDeviceList(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]},addComponent(_,o,u){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:_,deviceType:o,type:u}})},removeComponentModal(_,o,u,O,s){s.stopPropagation(),this.modalComponent={deviceId:_,id:o,type:u},this.modalComponentName=O,this.showComponentRemoveModal=!0},removeComponent(_){this.showComponentRemoveModal=!1,_=="confirm"&&(console.info("request removal of component '"+this.modalComponent.id+"' from device '"+this.modalComponent.deviceId+"' type '"+this.modalComponent.type+"'"),this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent}))},getComponentList(_){return _===void 0?[]:(console.debug("finding components for '"+_+"'"),this.$store.state.mqtt["openWB/system/configurable/devices_components"].find(u=>u.value===_).component)},updateConfiguration(_,o){console.debug("updateConfiguration",_,o),this.updateState(_,o.value,o.object)}}},E=_=>(ee("data-v-8595d6ae"),_=_(),_e(),_),se={class:"hardwareInstallation"},me={name:"hardwareInstallationForm"},pe={key:0},ce={key:1},Ee={key:1},le=E(()=>m("hr",null,null,-1)),Te=E(()=>m("hr",null,null,-1)),Ie=E(()=>m("hr",null,null,-1)),Ve=E(()=>m("hr",null,null,-1)),Ae={class:"col-1"},Re={key:0},De={class:"col-1"},Pe=E(()=>m("br",null,null,-1)),Oe=E(()=>m("br",null,null,-1)),Le=E(()=>m("br",null,null,-1)),ge=E(()=>m("br",null,null,-1)),be=E(()=>m("br",null,null,-1)),fe=E(()=>m("br",null,null,-1));function he(_,o,u,O,s,r){const I=p("openwb-base-modal-dialog"),g=p("router-link"),R=p("openwb-base-alert"),V=p("font-awesome-icon"),b=p("openwb-base-avatar"),k=p("openwb-base-text-input"),C=p("openwb-config-proxy"),q=p("openwb-base-heading"),f=p("openwb-base-card"),x=p("openwb-base-click-button"),B=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return a(),c(L,null,[P(" modal dialogs "),n(I,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:r.removeDevice},{default:i(()=>[v(' Wollen Sie das Gerät "'+A(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),n(I,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:r.removeComponent},{default:i(()=>[v(' Wollen Sie die Komponente "'+A(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),P(" main content "),m("div",se,[m("form",me,[n(R,{subtype:"info"},{default:i(()=>[v(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das "),n(g,{to:"/LoadManagementConfiguration"},{default:i(()=>[v(" Lastmanagement ")]),_:1}),v(" zu prüfen! ")]),_:1}),n(f,{title:"Geräte und Komponenten"},{default:i(()=>[_.$store.state.mqtt["openWB/general/extern"]===!0?(a(),c("div",pe,[n(R,{subtype:"info"},{default:i(()=>[v(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),c("div",ce,[(a(!0),c(L,null,h(r.installedDevices,(t,z)=>(a(),l(f,{key:t.id,collapsible:!0,collapsed:!0,subtype:"dark"},{header:i(()=>[n(V,{"fixed-width":"",icon:["fas","network-wired"]}),v(" "+A(t.name),1)]),actions:i(d=>[d.collapsed?(a(),c("div",Ee,[(a(!0),c(L,null,h(r.getMyInstalledComponents(t.id),T=>(a(),l(b,{key:T.id,class:w("ml-1 bg-"+r.getComponentTypeClass(T.type))},{default:i(()=>[n(V,{"fixed-width":"",icon:r.getComponentTypeIcon(T.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(a(),l(b,{key:0,class:"bg-danger clickable",onClick:T=>r.removeDeviceModal(t.id,t.name,T)},{default:i(()=>[n(V,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[n(k,{title:"Bezeichnung",subtype:"text","model-value":t.name,"onUpdate:modelValue":d=>_.updateState(z,d,"name")},null,8,["model-value","onUpdate:modelValue"]),le,n(C,{deviceId:t.id,deviceType:t.type,configuration:t.configuration,"onUpdate:configuration":d=>r.updateConfiguration(z,d)},null,8,["deviceId","deviceType","configuration","onUpdate:configuration"]),Te,n(q,null,{default:i(()=>[v("Komponenten")]),_:1}),r.deviceHasConfiguredComponents(t.id)?P("v-if",!0):(a(),l(R,{key:0,subtype:"warning"},{default:i(()=>[v(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ")]),_:1})),(a(!0),c(L,null,h(r.getMyInstalledComponents(t.id),(d,T)=>(a(),l(f,{key:d.id,collapsible:!0,collapsed:!0,subtype:r.getComponentTypeClass(d.type)},{header:i(()=>[n(V,{"fixed-width":"",icon:r.getComponentTypeIcon(d.type)},null,8,["icon"]),v(" "+A(d.name),1)]),actions:i(D=>[D.collapsed?P("v-if",!0):(a(),l(b,{key:0,class:"bg-danger clickable",onClick:K=>r.removeComponentModal(t.id,d.id,d.type,d.name,K)},{default:i(()=>[n(V,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[n(k,{title:"Bezeichnung",subtype:"text","model-value":d.name,"onUpdate:modelValue":D=>_.updateState(T,D,"name")},null,8,["model-value","onUpdate:modelValue"]),Ie,n(C,{deviceId:t.id,deviceType:t.type,componentId:d.id,componentType:d.type,configuration:d.configuration,"onUpdate:configuration":D=>r.updateConfiguration(T,D)},null,8,["deviceId","deviceType","componentId","componentType","configuration","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),Ve,r.getComponentList(t.type).length?(a(),l(B,{key:1,class:"mb-2",title:"Verfügbare Komponenten",notSelected:"Bitte auswählen",options:r.getComponentList(t.type),"model-value":s.componentToAdd[t.id],"onUpdate:modelValue":d=>s.componentToAdd[t.id]=d},{append:i(()=>[m("span",Ae,[n(x,{class:w(s.componentToAdd[t.id]===void 0?"btn-outline-success":"btn-success clickable"),disabled:s.componentToAdd[t.id]===void 0,onButtonClicked:d=>r.addComponent(t.id,t.type,s.componentToAdd[t.id])},{default:i(()=>[n(V,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["class","disabled","onButtonClicked"])])]),help:i(()=>[v(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ")]),_:2},1032,["options","model-value","onUpdate:modelValue"])):(a(),l(R,{key:2,subtype:"info"},{default:i(()=>[v(" Dieses System bietet keine Komponenten zur Installation an. ")]),_:1}))]),_:2},1024))),128)),Object.keys(r.installedDevices).length>0?(a(),c("hr",Re)):P("v-if",!0),n(B,{class:"mb-2",title:"Verfügbare Geräte",notSelected:"Bitte auswählen",options:r.getDeviceList(),"model-value":s.deviceToAdd,"onUpdate:modelValue":o[0]||(o[0]=t=>s.deviceToAdd=t)},{append:i(()=>[m("span",De,[n(x,{class:w(s.deviceToAdd===void 0?"btn-outline-success":"btn-success clickable"),disabled:s.deviceToAdd===void 0,onButtonClicked:r.addDevice},{default:i(()=>[n(V,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["class","disabled","onButtonClicked"])])]),help:i(()=>[v(' Die openWB-Regelung ist auf Werte von MESSPUNKTEN (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),Pe,v(' Ein "Gerät" wird hierbei durch seine IP-Adresse spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente".'),Oe,Le,v(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),ge,v(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt.'),be,fe,v(' Das "Gerät" wird in der dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ')]),_:1},8,["options","model-value"])]))]),_:1}),n(j,{formName:"hardwareInstallationForm",onSave:o[1]||(o[1]=t=>_.$emit("save")),onReset:o[2]||(o[2]=t=>_.$emit("reset")),onDefaults:o[3]||(o[3]=t=>_.$emit("defaults"))})])])],64)}const We=y(ae,[["render",he],["__scopeId","data-v-8595d6ae"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]);export{We as default};
diff --git a/web/settings/assets/HardwareInstallation-7bc514d7.js b/web/settings/assets/HardwareInstallation-7bc514d7.js
new file mode 100644
index 0000000000..2306325b5e
--- /dev/null
+++ b/web/settings/assets/HardwareInstallation-7bc514d7.js
@@ -0,0 +1 @@
+import{l as G,d as N,t as U,R as F,S as H,K as J,L as Z,M as Q,F as X}from"./vendor-fortawesome-ad83e535.js";import{_ as e,C as Y}from"./index-bc47a901.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as y,p,k as d,l as c,y as E,L as o,x as T,u as v,A as n,q as m,a0 as W,a1 as $,z as P,G as L,I as h,n as w,Q as ee,R as _e}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const te={name:"DeviceFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},deviceType:String,componentId:{default:void 0},componentType:String},methods:{updateConfiguration(_,i=void 0){this.$emit("update:configuration",{value:_,object:i})}}},oe={class:"device-fallback"},ie={key:0},re={key:1},ne={key:1},ue={key:0},de={key:1};function ve(_,i,u,O,s,r){const I=p("openwb-base-alert"),g=p("openwb-base-textarea");return d(),c("div",oe,[Object.keys(u.configuration).length==0?(d(),E(I,{key:0,subtype:"info"},{default:o(()=>[u.componentType?(d(),c("span",ie,' Der Komponenten-Typ "'+T(u.componentType)+'" ',1)):(d(),c("span",re,'Der Gerät-Typ "'+T(u.deviceType)+'"',1)),v(" bietet keine Einstellungen. ")]),_:1})):(d(),c("div",ne,[n(I,{subtype:"warning"},{default:o(()=>[v(" Es wurde keine Konfigurationsseite für den "),u.componentType?(d(),c("span",ue,' Komponenten-Typ "'+T(u.componentType)+'" ',1)):(d(),c("span",de,'Geräte-Typ "'+T(u.deviceType)+'"',1)),v(" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ")]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":u.configuration,"onUpdate:modelValue":i[0]||(i[0]=A=>r.updateConfiguration(A,"configuration"))},{help:o(()=>[v(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(I,{subtype:"info"},{default:o(()=>[m("pre",null,T(JSON.stringify(u.configuration,void 0,2)),1)]),_:1})]))])}const S=y(te,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",emits:["update:configuration"],props:{deviceId:{required:!0},deviceType:{type:String,required:!0},componentId:{default:void 0},componentType:{type:String,default:void 0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading component: ${this.deviceType} / ${this.componentType}`),this.componentType!==void 0?W({loader:()=>M(Object.assign({"./alpha_ess/bat.vue":()=>e(()=>import("./bat-a92f022e.js"),["assets/bat-a92f022e.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./alpha_ess/counter.vue":()=>e(()=>import("./counter-60655200.js"),["assets/counter-60655200.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./alpha_ess/device.vue":()=>e(()=>import("./device-03a0ce90.js"),["assets/device-03a0ce90.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./alpha_ess/inverter.vue":()=>e(()=>import("./inverter-b47e8b65.js"),["assets/inverter-b47e8b65.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./batterx/bat.vue":()=>e(()=>import("./bat-3980db8f.js"),["assets/bat-3980db8f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./batterx/counter.vue":()=>e(()=>import("./counter-fcc6cfc8.js"),["assets/counter-fcc6cfc8.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./batterx/device.vue":()=>e(()=>import("./device-48b82d13.js"),["assets/device-48b82d13.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./batterx/external_inverter.vue":()=>e(()=>import("./external_inverter-c6cc5286.js"),["assets/external_inverter-c6cc5286.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./batterx/inverter.vue":()=>e(()=>import("./inverter-57f7e67c.js"),["assets/inverter-57f7e67c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./byd/bat.vue":()=>e(()=>import("./bat-d1af67af.js"),["assets/bat-d1af67af.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./byd/device.vue":()=>e(()=>import("./device-44e40f8a.js"),["assets/device-44e40f8a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-7b85a5b2.js"),["assets/counter-7b85a5b2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./carlo_gavazzi/device.vue":()=>e(()=>import("./device-d5aedcd9.js"),["assets/device-d5aedcd9.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./discovergy/counter.vue":()=>e(()=>import("./counter-d335a007.js"),["assets/counter-d335a007.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./discovergy/device.vue":()=>e(()=>import("./device-ae65393a.js"),["assets/device-ae65393a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./discovergy/inverter.vue":()=>e(()=>import("./inverter-91521524.js"),["assets/inverter-91521524.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./e3dc/bat.vue":()=>e(()=>import("./bat-4320b5cc.js"),["assets/bat-4320b5cc.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./e3dc/counter.vue":()=>e(()=>import("./counter-fbf1efa1.js"),["assets/counter-fbf1efa1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./e3dc/device.vue":()=>e(()=>import("./device-c7a69fb7.js"),["assets/device-c7a69fb7.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./e3dc/external_inverter.vue":()=>e(()=>import("./external_inverter-debacbf1.js"),["assets/external_inverter-debacbf1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./e3dc/inverter.vue":()=>e(()=>import("./inverter-35d50734.js"),["assets/inverter-35d50734.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./enphase/counter.vue":()=>e(()=>import("./counter-af942561.js"),["assets/counter-af942561.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./enphase/device.vue":()=>e(()=>import("./device-c5eaae23.js"),["assets/device-c5eaae23.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./enphase/inverter.vue":()=>e(()=>import("./inverter-b35ac71f.js"),["assets/inverter-b35ac71f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fems/bat.vue":()=>e(()=>import("./bat-ac5ee104.js"),["assets/bat-ac5ee104.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fems/counter.vue":()=>e(()=>import("./counter-da58c807.js"),["assets/counter-da58c807.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fems/device.vue":()=>e(()=>import("./device-76b564cb.js"),["assets/device-76b564cb.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fems/inverter.vue":()=>e(()=>import("./inverter-0a8a02aa.js"),["assets/inverter-0a8a02aa.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fronius/bat.vue":()=>e(()=>import("./bat-80bc8859.js"),["assets/bat-80bc8859.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fronius/counter_s0.vue":()=>e(()=>import("./counter_s0-0068172e.js"),["assets/counter_s0-0068172e.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-802e0059.js"),["assets/counter_sm-802e0059.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fronius/device.vue":()=>e(()=>import("./device-333a1847.js"),["assets/device-333a1847.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fronius/inverter.vue":()=>e(()=>import("./inverter-fb25d42c.js"),["assets/inverter-fb25d42c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./good_we/bat.vue":()=>e(()=>import("./bat-fd9f4fe4.js"),["assets/bat-fd9f4fe4.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./good_we/counter.vue":()=>e(()=>import("./counter-9097a073.js"),["assets/counter-9097a073.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./good_we/device.vue":()=>e(()=>import("./device-5442f3f8.js"),["assets/device-5442f3f8.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./good_we/inverter.vue":()=>e(()=>import("./inverter-d63a850e.js"),["assets/inverter-d63a850e.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./http/bat.vue":()=>e(()=>import("./bat-2f8005f2.js"),["assets/bat-2f8005f2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./http/counter.vue":()=>e(()=>import("./counter-6d0620dd.js"),["assets/counter-6d0620dd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./http/device.vue":()=>e(()=>import("./device-9c25dea2.js"),["assets/device-9c25dea2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./http/inverter.vue":()=>e(()=>import("./inverter-735276eb.js"),["assets/inverter-735276eb.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei/bat.vue":()=>e(()=>import("./bat-ccba567b.js"),["assets/bat-ccba567b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei/counter.vue":()=>e(()=>import("./counter-8d4f402a.js"),["assets/counter-8d4f402a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei/device.vue":()=>e(()=>import("./device-7700d0d1.js"),["assets/device-7700d0d1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei/inverter.vue":()=>e(()=>import("./inverter-be294b52.js"),["assets/inverter-be294b52.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-815fdbb1.js"),["assets/bat-815fdbb1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-a2c453f6.js"),["assets/counter-a2c453f6.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/device.vue":()=>e(()=>import("./device-91520693.js"),["assets/device-91520693.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-aba6e6d2.js"),["assets/inverter-aba6e6d2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./janitza/counter.vue":()=>e(()=>import("./counter-7a7be3d3.js"),["assets/counter-7a7be3d3.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./janitza/device.vue":()=>e(()=>import("./device-ff4b5125.js"),["assets/device-ff4b5125.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./json/bat.vue":()=>e(()=>import("./bat-f9178e22.js"),["assets/bat-f9178e22.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./json/counter.vue":()=>e(()=>import("./counter-46a15c2b.js"),["assets/counter-46a15c2b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./json/device.vue":()=>e(()=>import("./device-f3520fbc.js"),["assets/device-f3520fbc.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./json/inverter.vue":()=>e(()=>import("./inverter-da627431.js"),["assets/inverter-da627431.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko/counter.vue":()=>e(()=>import("./counter-ad208981.js"),["assets/counter-ad208981.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko/device.vue":()=>e(()=>import("./device-f186e4bf.js"),["assets/device-f186e4bf.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko/inverter.vue":()=>e(()=>import("./inverter-d7dcc616.js"),["assets/inverter-d7dcc616.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko_old/device.vue":()=>e(()=>import("./device-efcbb283.js"),["assets/device-efcbb283.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko_old/inverter.vue":()=>e(()=>import("./inverter-b6d89f35.js"),["assets/inverter-b6d89f35.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/bat.vue":()=>e(()=>import("./bat-45b559ec.js"),["assets/bat-45b559ec.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/counter.vue":()=>e(()=>import("./counter-f56715cd.js"),["assets/counter-f56715cd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/device.vue":()=>e(()=>import("./device-23fbc413.js"),["assets/device-23fbc413.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/inverter.vue":()=>e(()=>import("./inverter-3515d2b5.js"),["assets/inverter-3515d2b5.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_sem/counter.vue":()=>e(()=>import("./counter-5b0b9661.js"),["assets/counter-5b0b9661.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_sem/device.vue":()=>e(()=>import("./device-5e36d94b.js"),["assets/device-5e36d94b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_steca/device.vue":()=>e(()=>import("./device-10d2c4c1.js"),["assets/device-10d2c4c1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_steca/inverter.vue":()=>e(()=>import("./inverter-66b1df21.js"),["assets/inverter-66b1df21.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./lg/bat.vue":()=>e(()=>import("./bat-904c9172.js"),["assets/bat-904c9172.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./lg/counter.vue":()=>e(()=>import("./counter-2e4fa5c2.js"),["assets/counter-2e4fa5c2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./lg/device.vue":()=>e(()=>import("./device-b04bd256.js"),["assets/device-b04bd256.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./lg/inverter.vue":()=>e(()=>import("./inverter-f266f49d.js"),["assets/inverter-f266f49d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./mqtt/bat.vue":()=>e(()=>import("./bat-212960fc.js"),["assets/bat-212960fc.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./mqtt/counter.vue":()=>e(()=>import("./counter-816c921e.js"),["assets/counter-816c921e.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./mqtt/device.vue":()=>e(()=>import("./device-cdede991.js"),["assets/device-cdede991.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./mqtt/inverter.vue":()=>e(()=>import("./inverter-e383405a.js"),["assets/inverter-e383405a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-3e58123d.js"),["assets/bat-3e58123d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_bat_kit/device.vue":()=>e(()=>import("./device-1ebd188c.js"),["assets/device-1ebd188c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-3d2b7acc.js"),["assets/bat-3d2b7acc.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-21f55471.js"),["assets/counter-21f55471.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/device.vue":()=>e(()=>import("./device-68cea660.js"),["assets/device-68cea660.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-09d68c12.js"),["assets/inverter-09d68c12.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/bat.vue":()=>e(()=>import("./bat-ba791935.js"),["assets/bat-ba791935.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/counter.vue":()=>e(()=>import("./counter-6369ff43.js"),["assets/counter-6369ff43.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/device.vue":()=>e(()=>import("./device-3c66abac.js"),["assets/device-3c66abac.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/inverter.vue":()=>e(()=>import("./inverter-0daad30f.js"),["assets/inverter-0daad30f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_pv_kit/device.vue":()=>e(()=>import("./device-5c559131.js"),["assets/device-5c559131.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-c0320c10.js"),["assets/inverter-c0320c10.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./powerdog/counter.vue":()=>e(()=>import("./counter-3df9b0e7.js"),["assets/counter-3df9b0e7.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./powerdog/device.vue":()=>e(()=>import("./device-f581669c.js"),["assets/device-f581669c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./powerdog/inverter.vue":()=>e(()=>import("./inverter-f0ad6bcd.js"),["assets/inverter-f0ad6bcd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./powerfox/counter.vue":()=>e(()=>import("./counter-c9c2d68f.js"),["assets/counter-c9c2d68f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./powerfox/device.vue":()=>e(()=>import("./device-e88cb248.js"),["assets/device-e88cb248.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./powerfox/inverter.vue":()=>e(()=>import("./inverter-2558e456.js"),["assets/inverter-2558e456.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./qcells/bat.vue":()=>e(()=>import("./bat-557284f3.js"),["assets/bat-557284f3.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./qcells/counter.vue":()=>e(()=>import("./counter-77841659.js"),["assets/counter-77841659.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./qcells/device.vue":()=>e(()=>import("./device-2fc1a957.js"),["assets/device-2fc1a957.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./qcells/inverter.vue":()=>e(()=>import("./inverter-3b84e31d.js"),["assets/inverter-3b84e31d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./rct/bat.vue":()=>e(()=>import("./bat-61bcf2f8.js"),["assets/bat-61bcf2f8.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./rct/counter.vue":()=>e(()=>import("./counter-d03b355d.js"),["assets/counter-d03b355d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./rct/device.vue":()=>e(()=>import("./device-7fbce287.js"),["assets/device-7fbce287.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./rct/inverter.vue":()=>e(()=>import("./inverter-42feff92.js"),["assets/inverter-42feff92.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./saxpower/bat.vue":()=>e(()=>import("./bat-12170e78.js"),["assets/bat-12170e78.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./saxpower/device.vue":()=>e(()=>import("./device-e2dad607.js"),["assets/device-e2dad607.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./shelly/device.vue":()=>e(()=>import("./device-fcd34186.js"),["assets/device-fcd34186.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./shelly/inverter.vue":()=>e(()=>import("./inverter-f900cffa.js"),["assets/inverter-f900cffa.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./siemens/bat.vue":()=>e(()=>import("./bat-cbc92919.js"),["assets/bat-cbc92919.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./siemens/counter.vue":()=>e(()=>import("./counter-82a793a2.js"),["assets/counter-82a793a2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./siemens/device.vue":()=>e(()=>import("./device-2a7fcdcd.js"),["assets/device-2a7fcdcd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./siemens/inverter.vue":()=>e(()=>import("./inverter-89a115de.js"),["assets/inverter-89a115de.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./siemens_sentron/counter.vue":()=>e(()=>import("./counter-b30c239d.js"),["assets/counter-b30c239d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./siemens_sentron/device.vue":()=>e(()=>import("./device-11808744.js"),["assets/device-11808744.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_shm/counter.vue":()=>e(()=>import("./counter-70b9e720.js"),["assets/counter-70b9e720.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_shm/device.vue":()=>e(()=>import("./device-060ee4fd.js"),["assets/device-060ee4fd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_shm/inverter.vue":()=>e(()=>import("./inverter-6afece8c.js"),["assets/inverter-6afece8c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-cb226603.js"),["assets/bat-cb226603.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-817c3655.js"),["assets/bat_smart_energy-817c3655.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-fb6b0fb9.js"),["assets/counter-fb6b0fb9.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/device.vue":()=>e(()=>import("./device-9f1d6204.js"),["assets/device-9f1d6204.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-8ebf65c2.js"),["assets/inverter-8ebf65c2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_island/bat.vue":()=>e(()=>import("./bat-4b5ddf83.js"),["assets/bat-4b5ddf83.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_island/device.vue":()=>e(()=>import("./device-6223df3d.js"),["assets/device-6223df3d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_webbox/device.vue":()=>e(()=>import("./device-c0377afe.js"),["assets/device-c0377afe.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_webbox/inverter.vue":()=>e(()=>import("./inverter-bce80bd5.js"),["assets/inverter-bce80bd5.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smart_me/counter.vue":()=>e(()=>import("./counter-eab5abf7.js"),["assets/counter-eab5abf7.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smart_me/device.vue":()=>e(()=>import("./device-71f6eb4f.js"),["assets/device-71f6eb4f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smart_me/inverter.vue":()=>e(()=>import("./inverter-5500500b.js"),["assets/inverter-5500500b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smartfox/counter.vue":()=>e(()=>import("./counter-57df9eec.js"),["assets/counter-57df9eec.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smartfox/device.vue":()=>e(()=>import("./device-b59b9c77.js"),["assets/device-b59b9c77.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_log/counter.vue":()=>e(()=>import("./counter-18fd3233.js"),["assets/counter-18fd3233.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_log/device.vue":()=>e(()=>import("./device-9f8cfcd3.js"),["assets/device-9f8cfcd3.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_log/inverter.vue":()=>e(()=>import("./inverter-39afe3b5.js"),["assets/inverter-39afe3b5.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_view/counter.vue":()=>e(()=>import("./counter-1c5a2313.js"),["assets/counter-1c5a2313.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_view/device.vue":()=>e(()=>import("./device-84c0ab33.js"),["assets/device-84c0ab33.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_view/inverter.vue":()=>e(()=>import("./inverter-b33414cf.js"),["assets/inverter-b33414cf.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/bat.vue":()=>e(()=>import("./bat-8af3358d.js"),["assets/bat-8af3358d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/counter.vue":()=>e(()=>import("./counter-b2081459.js"),["assets/counter-b2081459.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/device.vue":()=>e(()=>import("./device-0c072e3b.js"),["assets/device-0c072e3b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/inverter.vue":()=>e(()=>import("./inverter-973593c5.js"),["assets/inverter-973593c5.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_world/counter.vue":()=>e(()=>import("./counter-4dc3cbd5.js"),["assets/counter-4dc3cbd5.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_world/device.vue":()=>e(()=>import("./device-d971bed6.js"),["assets/device-d971bed6.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_world/inverter.vue":()=>e(()=>import("./inverter-22be4ed9.js"),["assets/inverter-22be4ed9.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solaredge/bat.vue":()=>e(()=>import("./bat-e1949609.js"),["assets/bat-e1949609.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solaredge/counter.vue":()=>e(()=>import("./counter-2365410a.js"),["assets/counter-2365410a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solaredge/device.vue":()=>e(()=>import("./device-368b885c.js"),["assets/device-368b885c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-4989c79d.js"),["assets/external_inverter-4989c79d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solaredge/inverter.vue":()=>e(()=>import("./inverter-983f9bf4.js"),["assets/inverter-983f9bf4.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solarmax/bat.vue":()=>e(()=>import("./bat-b91f4e63.js"),["assets/bat-b91f4e63.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solarmax/device.vue":()=>e(()=>import("./device-eded82a1.js"),["assets/device-eded82a1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solarmax/inverter.vue":()=>e(()=>import("./inverter-2b727919.js"),["assets/inverter-2b727919.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solax/bat.vue":()=>e(()=>import("./bat-9ff121c5.js"),["assets/bat-9ff121c5.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solax/counter.vue":()=>e(()=>import("./counter-f322702a.js"),["assets/counter-f322702a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solax/device.vue":()=>e(()=>import("./device-eed5fccd.js"),["assets/device-eed5fccd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solax/inverter.vue":()=>e(()=>import("./inverter-a4f4de69.js"),["assets/inverter-a4f4de69.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/bat.vue":()=>e(()=>import("./bat-f30697e9.js"),["assets/bat-f30697e9.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/counter.vue":()=>e(()=>import("./counter-df3e561f.js"),["assets/counter-df3e561f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/device.vue":()=>e(()=>import("./device-9114b4f4.js"),["assets/device-9114b4f4.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/inverter.vue":()=>e(()=>import("./inverter-3e855a0b.js"),["assets/inverter-3e855a0b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./studer/bat.vue":()=>e(()=>import("./bat-6fcf71db.js"),["assets/bat-6fcf71db.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./studer/device.vue":()=>e(()=>import("./device-736742cc.js"),["assets/device-736742cc.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./studer/inverter.vue":()=>e(()=>import("./inverter-3df75149.js"),["assets/inverter-3df75149.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sungrow/bat.vue":()=>e(()=>import("./bat-3dbfaf1b.js"),["assets/bat-3dbfaf1b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sungrow/counter.vue":()=>e(()=>import("./counter-478d9577.js"),["assets/counter-478d9577.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sungrow/device.vue":()=>e(()=>import("./device-ae9d7f6e.js"),["assets/device-ae9d7f6e.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sungrow/inverter.vue":()=>e(()=>import("./inverter-ae905211.js"),["assets/inverter-ae905211.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sunways/device.vue":()=>e(()=>import("./device-c49a0ced.js"),["assets/device-c49a0ced.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sunways/inverter.vue":()=>e(()=>import("./inverter-1a27b5a2.js"),["assets/inverter-1a27b5a2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./tesla/bat.vue":()=>e(()=>import("./bat-f75dd877.js"),["assets/bat-f75dd877.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./tesla/counter.vue":()=>e(()=>import("./counter-2a189926.js"),["assets/counter-2a189926.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./tesla/device.vue":()=>e(()=>import("./device-24f0a9e0.js"),["assets/device-24f0a9e0.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./tesla/inverter.vue":()=>e(()=>import("./inverter-bc54ef72.js"),["assets/inverter-bc54ef72.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./varta/bat_api.vue":()=>e(()=>import("./bat_api-e58852af.js"),["assets/bat_api-e58852af.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./varta/bat_modbus.vue":()=>e(()=>import("./bat_modbus-260d9b94.js"),["assets/bat_modbus-260d9b94.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./varta/counter.vue":()=>e(()=>import("./counter-73783603.js"),["assets/counter-73783603.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./varta/device.vue":()=>e(()=>import("./device-2b476100.js"),["assets/device-2b476100.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./victron/bat.vue":()=>e(()=>import("./bat-180a64ef.js"),["assets/bat-180a64ef.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./victron/counter.vue":()=>e(()=>import("./counter-1905ec77.js"),["assets/counter-1905ec77.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./victron/device.vue":()=>e(()=>import("./device-34d66ae0.js"),["assets/device-34d66ae0.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./victron/inverter.vue":()=>e(()=>import("./inverter-d5ca1a80.js"),["assets/inverter-d5ca1a80.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./virtual/counter.vue":()=>e(()=>import("./counter-c0f3f4ac.js"),["assets/counter-c0f3f4ac.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./virtual/device.vue":()=>e(()=>import("./device-554ac70d.js"),["assets/device-554ac70d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./vzlogger/counter.vue":()=>e(()=>import("./counter-00ec4a93.js"),["assets/counter-00ec4a93.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./vzlogger/device.vue":()=>e(()=>import("./device-94f0ef9b.js"),["assets/device-94f0ef9b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./vzlogger/inverter.vue":()=>e(()=>import("./inverter-ba59974f.js"),["assets/inverter-ba59974f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./youless/device.vue":()=>e(()=>import("./device-c553c1ee.js"),["assets/device-c553c1ee.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./youless/inverter.vue":()=>e(()=>import("./inverter-98ed6e35.js"),["assets/inverter-98ed6e35.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"])}),`./${this.deviceType}/${this.componentType}.vue`),errorComponent:S}):W({loader:()=>M(Object.assign({"./alpha_ess/device.vue":()=>e(()=>import("./device-03a0ce90.js"),["assets/device-03a0ce90.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./batterx/device.vue":()=>e(()=>import("./device-48b82d13.js"),["assets/device-48b82d13.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./byd/device.vue":()=>e(()=>import("./device-44e40f8a.js"),["assets/device-44e40f8a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./carlo_gavazzi/device.vue":()=>e(()=>import("./device-d5aedcd9.js"),["assets/device-d5aedcd9.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./discovergy/device.vue":()=>e(()=>import("./device-ae65393a.js"),["assets/device-ae65393a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./e3dc/device.vue":()=>e(()=>import("./device-c7a69fb7.js"),["assets/device-c7a69fb7.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./enphase/device.vue":()=>e(()=>import("./device-c5eaae23.js"),["assets/device-c5eaae23.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fems/device.vue":()=>e(()=>import("./device-76b564cb.js"),["assets/device-76b564cb.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./fronius/device.vue":()=>e(()=>import("./device-333a1847.js"),["assets/device-333a1847.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./good_we/device.vue":()=>e(()=>import("./device-5442f3f8.js"),["assets/device-5442f3f8.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./http/device.vue":()=>e(()=>import("./device-9c25dea2.js"),["assets/device-9c25dea2.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei/device.vue":()=>e(()=>import("./device-7700d0d1.js"),["assets/device-7700d0d1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./huawei_smartlogger/device.vue":()=>e(()=>import("./device-91520693.js"),["assets/device-91520693.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./janitza/device.vue":()=>e(()=>import("./device-ff4b5125.js"),["assets/device-ff4b5125.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./json/device.vue":()=>e(()=>import("./device-f3520fbc.js"),["assets/device-f3520fbc.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko/device.vue":()=>e(()=>import("./device-f186e4bf.js"),["assets/device-f186e4bf.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_piko_old/device.vue":()=>e(()=>import("./device-efcbb283.js"),["assets/device-efcbb283.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_plenticore/device.vue":()=>e(()=>import("./device-23fbc413.js"),["assets/device-23fbc413.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_sem/device.vue":()=>e(()=>import("./device-5e36d94b.js"),["assets/device-5e36d94b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kostal_steca/device.vue":()=>e(()=>import("./device-10d2c4c1.js"),["assets/device-10d2c4c1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./lg/device.vue":()=>e(()=>import("./device-b04bd256.js"),["assets/device-b04bd256.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./mqtt/device.vue":()=>e(()=>import("./device-cdede991.js"),["assets/device-cdede991.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_bat_kit/device.vue":()=>e(()=>import("./device-1ebd188c.js"),["assets/device-1ebd188c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_evu_kit/device.vue":()=>e(()=>import("./device-68cea660.js"),["assets/device-68cea660.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_flex/device.vue":()=>e(()=>import("./device-3c66abac.js"),["assets/device-3c66abac.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./openwb_pv_kit/device.vue":()=>e(()=>import("./device-5c559131.js"),["assets/device-5c559131.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./powerdog/device.vue":()=>e(()=>import("./device-f581669c.js"),["assets/device-f581669c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./powerfox/device.vue":()=>e(()=>import("./device-e88cb248.js"),["assets/device-e88cb248.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./qcells/device.vue":()=>e(()=>import("./device-2fc1a957.js"),["assets/device-2fc1a957.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./rct/device.vue":()=>e(()=>import("./device-7fbce287.js"),["assets/device-7fbce287.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./saxpower/device.vue":()=>e(()=>import("./device-e2dad607.js"),["assets/device-e2dad607.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./shelly/device.vue":()=>e(()=>import("./device-fcd34186.js"),["assets/device-fcd34186.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./siemens/device.vue":()=>e(()=>import("./device-2a7fcdcd.js"),["assets/device-2a7fcdcd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./siemens_sentron/device.vue":()=>e(()=>import("./device-11808744.js"),["assets/device-11808744.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_shm/device.vue":()=>e(()=>import("./device-060ee4fd.js"),["assets/device-060ee4fd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_boy/device.vue":()=>e(()=>import("./device-9f1d6204.js"),["assets/device-9f1d6204.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_sunny_island/device.vue":()=>e(()=>import("./device-6223df3d.js"),["assets/device-6223df3d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sma_webbox/device.vue":()=>e(()=>import("./device-c0377afe.js"),["assets/device-c0377afe.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smart_me/device.vue":()=>e(()=>import("./device-71f6eb4f.js"),["assets/device-71f6eb4f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smartfox/device.vue":()=>e(()=>import("./device-b59b9c77.js"),["assets/device-b59b9c77.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_log/device.vue":()=>e(()=>import("./device-9f8cfcd3.js"),["assets/device-9f8cfcd3.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_view/device.vue":()=>e(()=>import("./device-84c0ab33.js"),["assets/device-84c0ab33.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_watt/device.vue":()=>e(()=>import("./device-0c072e3b.js"),["assets/device-0c072e3b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solar_world/device.vue":()=>e(()=>import("./device-d971bed6.js"),["assets/device-d971bed6.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solaredge/device.vue":()=>e(()=>import("./device-368b885c.js"),["assets/device-368b885c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solarmax/device.vue":()=>e(()=>import("./device-eded82a1.js"),["assets/device-eded82a1.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./solax/device.vue":()=>e(()=>import("./device-eed5fccd.js"),["assets/device-eed5fccd.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sonnenbatterie/device.vue":()=>e(()=>import("./device-9114b4f4.js"),["assets/device-9114b4f4.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./studer/device.vue":()=>e(()=>import("./device-736742cc.js"),["assets/device-736742cc.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sungrow/device.vue":()=>e(()=>import("./device-ae9d7f6e.js"),["assets/device-ae9d7f6e.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./sunways/device.vue":()=>e(()=>import("./device-c49a0ced.js"),["assets/device-c49a0ced.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./tesla/device.vue":()=>e(()=>import("./device-24f0a9e0.js"),["assets/device-24f0a9e0.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./varta/device.vue":()=>e(()=>import("./device-2b476100.js"),["assets/device-2b476100.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./victron/device.vue":()=>e(()=>import("./device-34d66ae0.js"),["assets/device-34d66ae0.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./virtual/device.vue":()=>e(()=>import("./device-554ac70d.js"),["assets/device-554ac70d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./vzlogger/device.vue":()=>e(()=>import("./device-94f0ef9b.js"),["assets/device-94f0ef9b.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./youless/device.vue":()=>e(()=>import("./device-c553c1ee.js"),["assets/device-c553c1ee.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"])}),`./${this.deviceType}/device.vue`),errorComponent:S})}},methods:{updateConfiguration(_){this.$emit("update:configuration",_)}}};function se(_,i,u,O,s,r){return d(),E($(r.myComponent),{configuration:u.configuration,deviceId:u.deviceId,deviceType:u.deviceType,componentId:u.componentId,componentType:u.componentType,"onUpdate:configuration":i[0]||(i[0]=I=>r.updateConfiguration(I))},null,40,["configuration","deviceId","deviceType","componentId","componentType"])}const me=y(ae,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);G.add(N,U,F,H,J,Z,Q);const pe={name:"OpenwbHardwareInstallation",mixins:[Y],emits:["sendCommand"],components:{FontAwesomeIcon:X,OpenwbConfigProxy:me},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getComponentTypeClass(_){return _.match(/^(.+_)?counter(_.+)?$/)?"danger":_.match(/^(.+_)?inverter(_.+)?$/)?"success":_.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(_){return _.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:_.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:_.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(_){return this.getWildcardTopics("openWB/system/device/"+_+"/component/+/config")},deviceHasConfiguredComponents(_){return Object.keys(this.getMyInstalledComponents(_)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{type:this.deviceToAdd}})},removeDeviceModal(_,i,u){u.stopPropagation(),this.modalDevice=_,this.modalDeviceName=i,this.showDeviceRemoveModal=!0},removeDevice(_){this.showDeviceRemoveModal=!1,_=="confirm"&&(console.info("request removal of device '"+this.modalDevice+"'"),this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}}))},getDeviceList(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]},addComponent(_,i,u){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:_,deviceType:i,type:u}})},removeComponentModal(_,i,u,O,s){s.stopPropagation(),this.modalComponent={deviceId:_,id:i,type:u},this.modalComponentName=O,this.showComponentRemoveModal=!0},removeComponent(_){this.showComponentRemoveModal=!1,_=="confirm"&&(console.info("request removal of component '"+this.modalComponent.id+"' from device '"+this.modalComponent.deviceId+"' type '"+this.modalComponent.type+"'"),this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent}))},getComponentList(_){return _===void 0?[]:(console.debug("finding components for '"+_+"'"),this.$store.state.mqtt["openWB/system/configurable/devices_components"].find(u=>u.value===_).component)},updateConfiguration(_,i){console.debug("updateConfiguration",_,i),this.updateState(_,i.value,i.object)}}},l=_=>(ee("data-v-8595d6ae"),_=_(),_e(),_),ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},le={key:0},Te={key:1},Ie={key:1},Ve=l(()=>m("hr",null,null,-1)),De=l(()=>m("hr",null,null,-1)),Ae=l(()=>m("hr",null,null,-1)),Re=l(()=>m("hr",null,null,-1)),Pe={class:"col-1"},Oe={key:0},Le={class:"col-1"},ge=l(()=>m("br",null,null,-1)),be=l(()=>m("br",null,null,-1)),fe=l(()=>m("br",null,null,-1)),he=l(()=>m("br",null,null,-1)),we=l(()=>m("br",null,null,-1)),ye=l(()=>m("br",null,null,-1));function ke(_,i,u,O,s,r){const I=p("openwb-base-modal-dialog"),g=p("router-link"),A=p("openwb-base-alert"),D=p("font-awesome-icon"),b=p("openwb-base-avatar"),k=p("openwb-base-text-input"),C=p("openwb-config-proxy"),j=p("openwb-base-heading"),f=p("openwb-base-card"),x=p("openwb-base-click-button"),B=p("openwb-base-select-input"),q=p("openwb-base-submit-buttons");return d(),c(L,null,[P(" modal dialogs "),n(I,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:r.removeDevice},{default:o(()=>[v(' Wollen Sie das Gerät "'+T(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),n(I,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:r.removeComponent},{default:o(()=>[v(' Wollen Sie die Komponente "'+T(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),P(" main content "),m("div",ce,[m("form",Ee,[n(A,{subtype:"info"},{default:o(()=>[v(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das "),n(g,{to:"/LoadManagementConfiguration"},{default:o(()=>[v(" Lastmanagement ")]),_:1}),v(" zu prüfen! ")]),_:1}),n(f,{title:"Geräte und Komponenten"},{default:o(()=>[_.$store.state.mqtt["openWB/general/extern"]===!0?(d(),c("div",le,[n(A,{subtype:"info"},{default:o(()=>[v(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(d(),c("div",Te,[(d(!0),c(L,null,h(r.installedDevices,(t,z)=>(d(),E(f,{key:t.id,collapsible:!0,collapsed:!0,subtype:"dark"},{header:o(()=>[n(D,{"fixed-width":"",icon:["fas","network-wired"]}),v(" "+T(t.name),1)]),actions:o(a=>[a.collapsed?(d(),c("div",Ie,[(d(!0),c(L,null,h(r.getMyInstalledComponents(t.id),V=>(d(),E(b,{key:V.id,class:w("ml-1 bg-"+r.getComponentTypeClass(V.type))},{default:o(()=>[n(D,{"fixed-width":"",icon:r.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(d(),E(b,{key:0,class:"bg-danger clickable",onClick:V=>r.removeDeviceModal(t.id,t.name,V)},{default:o(()=>[n(D,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[n(k,{title:"Bezeichnung",subtype:"text","model-value":t.name,"onUpdate:modelValue":a=>_.updateState(z,a,"name")},null,8,["model-value","onUpdate:modelValue"]),Ve,n(C,{deviceId:t.id,deviceType:t.type,configuration:t.configuration,"onUpdate:configuration":a=>r.updateConfiguration(z,a)},null,8,["deviceId","deviceType","configuration","onUpdate:configuration"]),De,n(j,null,{default:o(()=>[v("Komponenten")]),_:1}),r.deviceHasConfiguredComponents(t.id)?P("v-if",!0):(d(),E(A,{key:0,subtype:"warning"},{default:o(()=>[v(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ")]),_:1})),(d(!0),c(L,null,h(r.getMyInstalledComponents(t.id),(a,V)=>(d(),E(f,{key:a.id,collapsible:!0,collapsed:!0,subtype:r.getComponentTypeClass(a.type)},{header:o(()=>[n(D,{"fixed-width":"",icon:r.getComponentTypeIcon(a.type)},null,8,["icon"]),v(" "+T(a.name),1)]),actions:o(R=>[R.collapsed?P("v-if",!0):(d(),E(b,{key:0,class:"bg-danger clickable",onClick:K=>r.removeComponentModal(t.id,a.id,a.type,a.name,K)},{default:o(()=>[n(D,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[n(k,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":R=>_.updateState(V,R,"name")},null,8,["model-value","onUpdate:modelValue"]),Ae,n(C,{deviceId:t.id,deviceType:t.type,componentId:a.id,componentType:a.type,configuration:a.configuration,"onUpdate:configuration":R=>r.updateConfiguration(V,R)},null,8,["deviceId","deviceType","componentId","componentType","configuration","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),Re,r.getComponentList(t.type).length?(d(),E(B,{key:1,class:"mb-2",title:"Verfügbare Komponenten",notSelected:"Bitte auswählen",options:r.getComponentList(t.type),"model-value":s.componentToAdd[t.id],"onUpdate:modelValue":a=>s.componentToAdd[t.id]=a},{append:o(()=>[m("span",Pe,[n(x,{class:w(s.componentToAdd[t.id]===void 0?"btn-outline-success":"btn-success clickable"),disabled:s.componentToAdd[t.id]===void 0,onButtonClicked:a=>r.addComponent(t.id,t.type,s.componentToAdd[t.id])},{default:o(()=>[n(D,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["class","disabled","onButtonClicked"])])]),help:o(()=>[v(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ")]),_:2},1032,["options","model-value","onUpdate:modelValue"])):(d(),E(A,{key:2,subtype:"info"},{default:o(()=>[v(" Dieses System bietet keine Komponenten zur Installation an. ")]),_:1}))]),_:2},1024))),128)),Object.keys(r.installedDevices).length>0?(d(),c("hr",Oe)):P("v-if",!0),n(B,{class:"mb-2",title:"Verfügbare Geräte",notSelected:"Bitte auswählen",options:r.getDeviceList(),"model-value":s.deviceToAdd,"onUpdate:modelValue":i[0]||(i[0]=t=>s.deviceToAdd=t)},{append:o(()=>[m("span",Le,[n(x,{class:w(s.deviceToAdd===void 0?"btn-outline-success":"btn-success clickable"),disabled:s.deviceToAdd===void 0,onButtonClicked:r.addDevice},{default:o(()=>[n(D,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["class","disabled","onButtonClicked"])])]),help:o(()=>[v(' Die openWB-Regelung ist auf Werte von MESSPUNKTEN (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),ge,v(' Ein "Gerät" wird hierbei durch seine IP-Adresse spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente".'),be,fe,v(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),he,v(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt.'),we,ye,v(' Das "Gerät" wird in der dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ')]),_:1},8,["options","model-value"])]))]),_:1}),n(q,{formName:"hardwareInstallationForm",onSave:i[1]||(i[1]=t=>_.$emit("save")),onReset:i[2]||(i[2]=t=>_.$emit("reset")),onDefaults:i[3]||(i[3]=t=>_.$emit("defaults"))})])])],64)}const qe=y(pe,[["render",ke],["__scopeId","data-v-8595d6ae"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]);export{qe as default};
diff --git a/web/settings/assets/InstantChargeConfig-81ae89da.js b/web/settings/assets/InstantChargeConfig-ccd32a4a.js
similarity index 84%
rename from web/settings/assets/InstantChargeConfig-81ae89da.js
rename to web/settings/assets/InstantChargeConfig-ccd32a4a.js
index 4b67a10b94..814beeecab 100644
--- a/web/settings/assets/InstantChargeConfig-81ae89da.js
+++ b/web/settings/assets/InstantChargeConfig-ccd32a4a.js
@@ -1 +1 @@
-import{C as l}from"./index-2a1b0c80.js";import{_,p as o,k as a,l as i,q as b,A as s,L as r,u}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"OpenwbInstantChargeConfig",mixins:[l],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/instant_charging/phases_to_use"]}}},c={class:"instantChargeConfig"},f={name:"instantChargeConfigForm"},v={key:0},C={key:1};function w(t,e,$,B,k,V){const p=o("openwb-base-alert"),m=o("openwb-base-button-group-input"),g=o("openwb-base-card"),d=o("openwb-base-submit-buttons");return a(),i("div",c,[b("form",f,[s(g,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(p,{subtype:"info"},{default:r(()=>[u(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",C,[s(m,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/instant_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/instant_charging/phases_to_use",n))},{help:r(()=>[u(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Sofortladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),s(d,{formName:"instantChargeConfigForm",onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})])])}const A=_(h,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstantChargeConfig.vue"]]);export{A as default};
+import{C as l}from"./index-bc47a901.js";import{_,p as o,k as a,l as i,q as b,A as s,L as r,u}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"OpenwbInstantChargeConfig",mixins:[l],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/instant_charging/phases_to_use"]}}},c={class:"instantChargeConfig"},f={name:"instantChargeConfigForm"},v={key:0},C={key:1};function w(t,e,$,B,k,V){const p=o("openwb-base-alert"),m=o("openwb-base-button-group-input"),g=o("openwb-base-card"),d=o("openwb-base-submit-buttons");return a(),i("div",c,[b("form",f,[s(g,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(p,{subtype:"info"},{default:r(()=>[u(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",C,[s(m,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/instant_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/instant_charging/phases_to_use",n))},{help:r(()=>[u(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Sofortladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),s(d,{formName:"instantChargeConfigForm",onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})])])}const A=_(h,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstantChargeConfig.vue"]]);export{A as default};
diff --git a/web/settings/assets/LegalSettings-67cbbf35.js b/web/settings/assets/LegalSettings-25bcb54e.js
similarity index 84%
rename from web/settings/assets/LegalSettings-67cbbf35.js
rename to web/settings/assets/LegalSettings-25bcb54e.js
index 2434a4e83f..76cac95a56 100644
--- a/web/settings/assets/LegalSettings-67cbbf35.js
+++ b/web/settings/assets/LegalSettings-25bcb54e.js
@@ -1 +1 @@
-import{C as g}from"./index-2a1b0c80.js";import{_,p as o,k as r,l as w,q as u,A as s,L as a,y as d,u as p,z as m}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"OpenwbDataProtection",mixins:[g],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}}},k={class:"dataProtection"},h={name:"dataProtectionForm"},v=u("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1),B=u("hr",null,null,-1);function y(e,t,z,V,W,$){const i=o("openwb-base-button-group-input"),l=o("openwb-base-alert"),c=o("openwb-base-submit-buttons"),b=o("openwb-base-card");return r(),w("div",k,[u("form",h,[s(b,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[s(c,{formName:"dataProtectionForm",hideReset:!0,hideDefaults:!0,onSave:t[2]||(t[2]=n=>e.$emit("save"))})]),default:a(()=>[v,B,s(i,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/system/usage_terms_acknowledged",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?m("v-if",!0):(r(),d(l,{key:0,subtype:"danger"},{default:a(()=>[p(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ")]),_:1})),s(i,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":t[1]||(t[1]=n=>e.updateState("openWB/system/dataprotection_acknowledged",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?m("v-if",!0):(r(),d(l,{key:1,subtype:"warning"},{default:a(()=>[p(" Wenn sie nicht einwilligen, wird eine ggf. konfigurierte Cloud Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote Support sind dann nicht mehr möglich! ")]),_:1}))]),_:1})])])}const x=_(f,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{x as default};
+import{C as g}from"./index-bc47a901.js";import{_,p as o,k as r,l as w,q as u,A as s,L as a,y as d,u as p,z as m}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"OpenwbDataProtection",mixins:[g],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}}},k={class:"dataProtection"},h={name:"dataProtectionForm"},v=u("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1),B=u("hr",null,null,-1);function y(e,t,z,V,W,$){const i=o("openwb-base-button-group-input"),l=o("openwb-base-alert"),c=o("openwb-base-submit-buttons"),b=o("openwb-base-card");return r(),w("div",k,[u("form",h,[s(b,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[s(c,{formName:"dataProtectionForm",hideReset:!0,hideDefaults:!0,onSave:t[2]||(t[2]=n=>e.$emit("save"))})]),default:a(()=>[v,B,s(i,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/system/usage_terms_acknowledged",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?m("v-if",!0):(r(),d(l,{key:0,subtype:"danger"},{default:a(()=>[p(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ")]),_:1})),s(i,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":t[1]||(t[1]=n=>e.updateState("openWB/system/dataprotection_acknowledged",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?m("v-if",!0):(r(),d(l,{key:1,subtype:"warning"},{default:a(()=>[p(" Wenn sie nicht einwilligen, wird eine ggf. konfigurierte Cloud Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote Support sind dann nicht mehr möglich! ")]),_:1}))]),_:1})])])}const x=_(f,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{x as default};
diff --git a/web/settings/assets/LoadManagementConfig-0263daa7.js b/web/settings/assets/LoadManagementConfig-9ae6427e.js
similarity index 95%
rename from web/settings/assets/LoadManagementConfig-0263daa7.js
rename to web/settings/assets/LoadManagementConfig-9ae6427e.js
index 5bc7f2acce..99201679a9 100644
--- a/web/settings/assets/LoadManagementConfig-0263daa7.js
+++ b/web/settings/assets/LoadManagementConfig-9ae6427e.js
@@ -1 +1 @@
-import{l as z,L as S,M as C,F as L}from"./vendor-fortawesome-838df0c9.js";import{C as $}from"./index-2a1b0c80.js";import{S as x}from"./OpenwbSortableList-ac8ac331.js";import{_ as V,p as u,k as l,l as m,q as d,A as s,L as r,u as o,G as _,I as v,y as w,x as k,z as M}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";z.add(S,C);const q={name:"OpenwbLoadManagementConfig",mixins:[$],emits:["sendCommand"],components:{SortableList:x,FontAwesomeIcon:L},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/reserve_for_not_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{counterConfigs:{get(){let e=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(e).filter(t=>e[t].type.includes("counter")).reduce((t,i)=>({...t,[i]:e[i]}),{})}},inverterConfigs:{get(){let e=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(e).filter(t=>e[t].type.includes("inverter")).reduce((t,i)=>({...t,[i]:e[i]}),{})}},hierarchyLabels:{get(){let e={};for(const t of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))e={...e,...this.getElementTreeNames(t)};return e}}},methods:{getElementTreeNames(e){let t={};if(e.type=="cp"){let i=this.getChargePoint(e.id);i&&(t[e.id]=i.name)}else{let i=this.getComponent(e.id);i&&(t[e.id]=i.name)}return e.children.forEach(i=>{t={...t,...this.getElementTreeNames(i)}}),t},getComponent(e){let t;return Object.keys(this.$store.state.mqtt).forEach(i=>{i.match("^openWB/system/device/[0-9]+/component/"+e+"/config$")&&(t=this.$store.state.mqtt[i])}),t},getChargePoint(e){let t;return Object.keys(this.$store.state.mqtt).forEach(i=>{i.match("^openWB/chargepoint/"+e+"/config$")&&(t=this.$store.state.mqtt[i])}),t}}},F={class:"loadManagementConfig"},Z={name:"loadManagementConfigForm"},A={key:0},D={key:1},E=d("br",null,null,-1),U=d("br",null,null,-1),N=d("br",null,null,-1),P=d("br",null,null,-1),T=d("br",null,null,-1),O={key:0},j={key:1},R=d("br",null,null,-1),G=d("br",null,null,-1),K=d("br",null,null,-1);function H(e,t,i,I,J,g){const h=u("openwb-base-alert"),W=u("openwb-base-button-group-input"),f=u("openwb-base-heading"),b=u("font-awesome-icon"),c=u("openwb-base-number-input"),p=u("openwb-base-card"),B=u("sortable-list"),y=u("openwb-base-submit-buttons");return l(),m("div",F,[d("form",Z,[s(p,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",A,[s(h,{subtype:"info"},{default:r(()=>[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),m("div",D,[s(W,{title:"Nicht-ladende Fahrzeuge",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/counter/config/reserve_for_not_charging"],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/counter/config/reserve_for_not_charging",n))},{help:r(()=>[o(" Wenn angesteckte Fahrzeuge, die nicht laden, im Lastmanagement berücksichtigt werden, wird für diese der Fahrzeug-Mindeststrom bei vorliegender Ladefreigabe reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt."),E,o(" Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom."),U,N,o(" Wenn angesteckte Fahrzeuge, die nicht laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden."),P,o(" Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken ALLER Ladepunkte an die neue Situation angepasst wurden."),T,o(" Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ")]),_:1},8,["model-value"]),s(f,null,{default:r(()=>[o(" Vorhandene Zählermodule ")]),_:1}),s(h,{subtype:"info"},{default:r(()=>[o(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme. ")]),_:1}),(l(!0),m(_,null,v(g.counterConfigs,n=>(l(),w(p,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:r(()=>[s(b,{"fixed-width":"",icon:["fas","gauge-high"]}),o(" "+k(n.name),1)]),default:r(()=>[s(c,{title:"Maximale Leistung",min:1,step:1,unit:"kW","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:r(()=>[o(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(c,{title:"Maximaler Strom L1",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:r(()=>[o(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(c,{title:"Maximaler Strom L2",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:r(()=>[o(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(c,{title:"Maximaler Strom L3",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:r(()=>[o(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(f,null,{default:r(()=>[o(" Vorhandene Wechselrichtermodule ")]),_:1}),(l(!0),m(_,null,v(g.inverterConfigs,n=>(l(),w(p,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:r(()=>[s(b,{"fixed-width":"",icon:["fas","solar-panel"]}),o(" "+k(n.name),1)]),default:r(()=>[s(c,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW","model-value":e.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>e.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:r(()=>[o(" Relevant bei Hybrid-Systemen mit DC-Speicher. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(p,{title:"Struktur",collapsible:!0,collapsed:!0},{default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",O,[s(h,{subtype:"info"},{default:r(()=>[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),m("div",j,[M(" ToDo: Fix: nested lists bypass store commits! "),s(B,{title:"Anordnung der Komponenten","model-value":e.$store.state.mqtt["openWB/counter/get/hierarchy"],"onUpdate:modelValue":t[1]||(t[1]=n=>e.updateState("openWB/counter/get/hierarchy",n)),labels:g.hierarchyLabels},{help:r(()=>[o(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet."),R,o(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden."),G,o(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden."),K,o(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ")]),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{formName:"loadManagementConfigForm",onSave:t[2]||(t[2]=n=>e.$emit("save")),onReset:t[3]||(t[3]=n=>e.$emit("reset")),onDefaults:t[4]||(t[4]=n=>e.$emit("defaults"))})])])}const re=V(q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{re as default};
+import{l as z,L as S,M as C,F as L}from"./vendor-fortawesome-ad83e535.js";import{C as $}from"./index-bc47a901.js";import{S as x}from"./OpenwbSortableList-657056f9.js";import{_ as V,p as u,k as l,l as m,q as d,A as s,L as r,u as o,G as _,I as v,y as w,x as k,z as M}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";z.add(S,C);const q={name:"OpenwbLoadManagementConfig",mixins:[$],emits:["sendCommand"],components:{SortableList:x,FontAwesomeIcon:L},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/reserve_for_not_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{counterConfigs:{get(){let e=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(e).filter(t=>e[t].type.includes("counter")).reduce((t,i)=>({...t,[i]:e[i]}),{})}},inverterConfigs:{get(){let e=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(e).filter(t=>e[t].type.includes("inverter")).reduce((t,i)=>({...t,[i]:e[i]}),{})}},hierarchyLabels:{get(){let e={};for(const t of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))e={...e,...this.getElementTreeNames(t)};return e}}},methods:{getElementTreeNames(e){let t={};if(e.type=="cp"){let i=this.getChargePoint(e.id);i&&(t[e.id]=i.name)}else{let i=this.getComponent(e.id);i&&(t[e.id]=i.name)}return e.children.forEach(i=>{t={...t,...this.getElementTreeNames(i)}}),t},getComponent(e){let t;return Object.keys(this.$store.state.mqtt).forEach(i=>{i.match("^openWB/system/device/[0-9]+/component/"+e+"/config$")&&(t=this.$store.state.mqtt[i])}),t},getChargePoint(e){let t;return Object.keys(this.$store.state.mqtt).forEach(i=>{i.match("^openWB/chargepoint/"+e+"/config$")&&(t=this.$store.state.mqtt[i])}),t}}},F={class:"loadManagementConfig"},Z={name:"loadManagementConfigForm"},A={key:0},D={key:1},E=d("br",null,null,-1),U=d("br",null,null,-1),N=d("br",null,null,-1),P=d("br",null,null,-1),T=d("br",null,null,-1),O={key:0},j={key:1},R=d("br",null,null,-1),G=d("br",null,null,-1),K=d("br",null,null,-1);function H(e,t,i,I,J,g){const h=u("openwb-base-alert"),W=u("openwb-base-button-group-input"),f=u("openwb-base-heading"),b=u("font-awesome-icon"),c=u("openwb-base-number-input"),p=u("openwb-base-card"),B=u("sortable-list"),y=u("openwb-base-submit-buttons");return l(),m("div",F,[d("form",Z,[s(p,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",A,[s(h,{subtype:"info"},{default:r(()=>[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),m("div",D,[s(W,{title:"Nicht-ladende Fahrzeuge",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/counter/config/reserve_for_not_charging"],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/counter/config/reserve_for_not_charging",n))},{help:r(()=>[o(" Wenn angesteckte Fahrzeuge, die nicht laden, im Lastmanagement berücksichtigt werden, wird für diese der Fahrzeug-Mindeststrom bei vorliegender Ladefreigabe reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt."),E,o(" Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom."),U,N,o(" Wenn angesteckte Fahrzeuge, die nicht laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden."),P,o(" Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken ALLER Ladepunkte an die neue Situation angepasst wurden."),T,o(" Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ")]),_:1},8,["model-value"]),s(f,null,{default:r(()=>[o(" Vorhandene Zählermodule ")]),_:1}),s(h,{subtype:"info"},{default:r(()=>[o(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme. ")]),_:1}),(l(!0),m(_,null,v(g.counterConfigs,n=>(l(),w(p,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:r(()=>[s(b,{"fixed-width":"",icon:["fas","gauge-high"]}),o(" "+k(n.name),1)]),default:r(()=>[s(c,{title:"Maximale Leistung",min:1,step:1,unit:"kW","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:r(()=>[o(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(c,{title:"Maximaler Strom L1",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:r(()=>[o(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(c,{title:"Maximaler Strom L2",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:r(()=>[o(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(c,{title:"Maximaler Strom L3",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:r(()=>[o(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(f,null,{default:r(()=>[o(" Vorhandene Wechselrichtermodule ")]),_:1}),(l(!0),m(_,null,v(g.inverterConfigs,n=>(l(),w(p,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:r(()=>[s(b,{"fixed-width":"",icon:["fas","solar-panel"]}),o(" "+k(n.name),1)]),default:r(()=>[s(c,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW","model-value":e.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>e.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:r(()=>[o(" Relevant bei Hybrid-Systemen mit DC-Speicher. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(p,{title:"Struktur",collapsible:!0,collapsed:!0},{default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",O,[s(h,{subtype:"info"},{default:r(()=>[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),m("div",j,[M(" ToDo: Fix: nested lists bypass store commits! "),s(B,{title:"Anordnung der Komponenten","model-value":e.$store.state.mqtt["openWB/counter/get/hierarchy"],"onUpdate:modelValue":t[1]||(t[1]=n=>e.updateState("openWB/counter/get/hierarchy",n)),labels:g.hierarchyLabels},{help:r(()=>[o(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet."),R,o(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden."),G,o(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden."),K,o(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ")]),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{formName:"loadManagementConfigForm",onSave:t[2]||(t[2]=n=>e.$emit("save")),onReset:t[3]||(t[3]=n=>e.$emit("reset")),onDefaults:t[4]||(t[4]=n=>e.$emit("defaults"))})])])}const re=V(q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{re as default};
diff --git a/web/settings/assets/MqttBridgeConfig-f4b2ee1b.js b/web/settings/assets/MqttBridgeConfig-60846603.js
similarity index 95%
rename from web/settings/assets/MqttBridgeConfig-f4b2ee1b.js
rename to web/settings/assets/MqttBridgeConfig-60846603.js
index b7a6b4d53f..cd76155976 100644
--- a/web/settings/assets/MqttBridgeConfig-f4b2ee1b.js
+++ b/web/settings/assets/MqttBridgeConfig-60846603.js
@@ -1 +1 @@
-import{l as C,d as q,S as A,F as z}from"./vendor-fortawesome-838df0c9.js";import{C as D}from"./index-2a1b0c80.js";import{_ as I,p as r,k as m,l as c,z as b,A as n,L as o,q as f,G as T,u as s,x as y,y as S,I as W,Q as E,R as Q}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";C.add(q,A);const N={name:"OpenwbMqttBridgeConfiguration",mixins:[D],emits:["sendCommand"],components:{FontAwesomeIcon:z},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let e=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[u,v]of Object.entries(e))v.remote.is_openwb_cloud&&delete e[u];return e}}},methods:{addMqttBridge(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(e){return parseInt(e.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(e,u){u.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(e),this.showMqttBridgeModal=!0},removeMqttBridge(e,u){this.showMqttBridgeModal=!1,u=="confirm"&&(console.info("request removal of mqtt bridge '"+e+"'"),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:e}}))},getMqttBridgeName(e){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+e]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+e].name:e}}},g=e=>(E("data-v-1ec2f2f5"),e=e(),Q(),e),P={class:"mqttBridgeConfiguration"},Z=g(()=>f("br",null,null,-1)),L={key:0},F={key:1},$=["name"],O=g(()=>f("hr",null,null,-1)),R=g(()=>f("hr",null,null,-1));function j(e,u,v,G,h,i){const U=r("openwb-base-modal-dialog"),_=r("openwb-base-alert"),w=r("font-awesome-icon"),V=r("openwb-base-avatar"),p=r("openwb-base-text-input"),d=r("openwb-base-button-group-input"),k=r("openwb-base-heading"),B=r("openwb-base-number-input"),x=r("openwb-base-submit-buttons"),M=r("openwb-base-card");return m(),c(T,null,[b(" modal dialogs "),n(U,{show:h.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:u[0]||(u[0]=l=>i.removeMqttBridge(h.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+y(i.getMqttBridgeName(h.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),b(" main content "),f("div",P,[n(_,{subtype:"danger"},{default:o(()=>[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!"),Z,s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Thema unterhalb von "Entfernter Präfix") zu aktivieren! ')]),_:1}),n(M,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(m(),S(V,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[n(w,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):b("v-if",!0)]),default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(m(),c("div",L,[n(_,{subtype:"info"},{default:o(()=>[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(m(),c("div",F,[Object.keys(i.configuredMqttBridges).length===0?(m(),S(_,{key:0,subtype:"info"},{default:o(()=>[s(" Es wurde noch keine MQTT Brücke konfiguriert. ")]),_:1})):b("v-if",!0),(m(!0),c(T,null,W(i.configuredMqttBridges,(l,a)=>(m(),c("form",{key:a,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(a)},[n(M,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[n(V,{class:"bg-danger clickable",onClick:t=>i.removeMqttBridgeModal(a,t)},{default:o(()=>[n(w,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:o(()=>[n(x,{formName:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(a),hideDefaults:!0,onSave:t=>e.$emit("save",[a]),onReset:t=>e.$emit("reset",[a])},null,8,["formName","onSave","onReset"])]),default:o(()=>[n(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":t=>e.updateState(a,t,"name")},{help:o(()=>[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.active,"onUpdate:modelValue":t=>e.updateState(a,t,"active")},null,8,["model-value","onUpdate:modelValue"]),O,n(k,null,{default:o(()=>[s(" Einstellungen zur Verbindung ")]),_:1}),n(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),n(B,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.prefix")},{help:o(()=>[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfix muss ein Schrägstrich "/" stehen. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.client_id")},{help:o(()=>[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l.remote.protocol,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),n(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l.remote.tls_version,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.tls_version")},{help:o(()=>[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.remote.try_private,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.try_private")},{help:o(()=>[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),R,n(k,null,{default:o(()=>[s("Datenübertragung")]),_:1}),n(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.status,"onUpdate:modelValue":t=>e.updateState(a,t,"data_transfer.status")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.graph,"onUpdate:modelValue":t=>e.updateState(a,t,"data_transfer.graph")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.configuration,"onUpdate:modelValue":t=>e.updateState(a,t,"data_transfer.configuration")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,$))),128))]))]),_:1})])],64)}const ne=I(N,[["render",j],["__scopeId","data-v-1ec2f2f5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{ne as default};
+import{l as C,d as q,S as A,F as z}from"./vendor-fortawesome-ad83e535.js";import{C as D}from"./index-bc47a901.js";import{_ as I,p as r,k as m,l as c,z as b,A as n,L as o,q as f,G as T,u as s,x as y,y as S,I as W,Q as E,R as Q}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";C.add(q,A);const N={name:"OpenwbMqttBridgeConfiguration",mixins:[D],emits:["sendCommand"],components:{FontAwesomeIcon:z},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let e=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[u,v]of Object.entries(e))v.remote.is_openwb_cloud&&delete e[u];return e}}},methods:{addMqttBridge(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(e){return parseInt(e.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(e,u){u.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(e),this.showMqttBridgeModal=!0},removeMqttBridge(e,u){this.showMqttBridgeModal=!1,u=="confirm"&&(console.info("request removal of mqtt bridge '"+e+"'"),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:e}}))},getMqttBridgeName(e){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+e]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+e].name:e}}},g=e=>(E("data-v-1ec2f2f5"),e=e(),Q(),e),P={class:"mqttBridgeConfiguration"},Z=g(()=>f("br",null,null,-1)),L={key:0},F={key:1},$=["name"],O=g(()=>f("hr",null,null,-1)),R=g(()=>f("hr",null,null,-1));function j(e,u,v,G,h,i){const U=r("openwb-base-modal-dialog"),_=r("openwb-base-alert"),w=r("font-awesome-icon"),V=r("openwb-base-avatar"),p=r("openwb-base-text-input"),d=r("openwb-base-button-group-input"),k=r("openwb-base-heading"),B=r("openwb-base-number-input"),x=r("openwb-base-submit-buttons"),M=r("openwb-base-card");return m(),c(T,null,[b(" modal dialogs "),n(U,{show:h.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:u[0]||(u[0]=l=>i.removeMqttBridge(h.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+y(i.getMqttBridgeName(h.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),b(" main content "),f("div",P,[n(_,{subtype:"danger"},{default:o(()=>[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!"),Z,s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Thema unterhalb von "Entfernter Präfix") zu aktivieren! ')]),_:1}),n(M,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(m(),S(V,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[n(w,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):b("v-if",!0)]),default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(m(),c("div",L,[n(_,{subtype:"info"},{default:o(()=>[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(m(),c("div",F,[Object.keys(i.configuredMqttBridges).length===0?(m(),S(_,{key:0,subtype:"info"},{default:o(()=>[s(" Es wurde noch keine MQTT Brücke konfiguriert. ")]),_:1})):b("v-if",!0),(m(!0),c(T,null,W(i.configuredMqttBridges,(l,a)=>(m(),c("form",{key:a,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(a)},[n(M,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[n(V,{class:"bg-danger clickable",onClick:t=>i.removeMqttBridgeModal(a,t)},{default:o(()=>[n(w,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:o(()=>[n(x,{formName:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(a),hideDefaults:!0,onSave:t=>e.$emit("save",[a]),onReset:t=>e.$emit("reset",[a])},null,8,["formName","onSave","onReset"])]),default:o(()=>[n(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":t=>e.updateState(a,t,"name")},{help:o(()=>[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.active,"onUpdate:modelValue":t=>e.updateState(a,t,"active")},null,8,["model-value","onUpdate:modelValue"]),O,n(k,null,{default:o(()=>[s(" Einstellungen zur Verbindung ")]),_:1}),n(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),n(B,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.prefix")},{help:o(()=>[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfix muss ein Schrägstrich "/" stehen. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.client_id")},{help:o(()=>[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l.remote.protocol,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),n(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l.remote.tls_version,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.tls_version")},{help:o(()=>[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.remote.try_private,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.try_private")},{help:o(()=>[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),R,n(k,null,{default:o(()=>[s("Datenübertragung")]),_:1}),n(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.status,"onUpdate:modelValue":t=>e.updateState(a,t,"data_transfer.status")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.graph,"onUpdate:modelValue":t=>e.updateState(a,t,"data_transfer.graph")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.configuration,"onUpdate:modelValue":t=>e.updateState(a,t,"data_transfer.configuration")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,$))),128))]))]),_:1})])],64)}const ne=I(N,[["render",j],["__scopeId","data-v-1ec2f2f5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{ne as default};
diff --git a/web/settings/assets/OpenwbSortableList-ac8ac331.js b/web/settings/assets/OpenwbSortableList-657056f9.js
similarity index 96%
rename from web/settings/assets/OpenwbSortableList-ac8ac331.js
rename to web/settings/assets/OpenwbSortableList-657056f9.js
index 8b5866db21..ecfae374bd 100644
--- a/web/settings/assets/OpenwbSortableList-ac8ac331.js
+++ b/web/settings/assets/OpenwbSortableList-657056f9.js
@@ -1,4 +1,4 @@
-import{_ as b,a3 as L,p as r,k as a,y as u,L as x,q as n,n as g,A as _,z as p,u as h,x as w,l as f,m as C}from"./vendor-20bb207d.js";import{l as v,a5 as H,J as O,K as S,L as N,M as B,F as y,f as E,a as A}from"./vendor-fortawesome-838df0c9.js";v.add(H,O,S,N,B);const j={name:"OpenwbNestedList",props:{list:{type:Object},labels:{type:Object}},components:{draggable:L,FontAwesomeIcon:y},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function q(e,t,o,k,c,s){const d=r("font-awesome-icon"),m=r("openwb-nested-list",!0),i=r("draggable");return a(),u(i,{class:"dragArea w-100 mb-0",tag:"ul",list:o.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:x(({element:l})=>[n("li",null,[n("div",{class:g(["element-titel",s.classes(l)])},[n("span",null,[_(d,{class:"handle","fixed-width":"",icon:["fas","arrows-alt"]}),s.getElementIcon(l)?(a(),u(d,{key:0,"fixed-width":"",icon:s.getElementIcon(l)},null,8,["icon"])):p("v-if",!0),h(" "+w(s.getElementLabel(l.id)),1)]),p(` <span class="element-actions">
+import{_ as b,a3 as L,p as r,k as a,y as u,L as x,q as n,n as g,A as _,z as p,u as h,x as w,l as f,m as C}from"./vendor-94ac8c48.js";import{l as v,a5 as H,J as O,K as S,L as N,M as B,F as y,f as E,a as A}from"./vendor-fortawesome-ad83e535.js";v.add(H,O,S,N,B);const j={name:"OpenwbNestedList",props:{list:{type:Object},labels:{type:Object}},components:{draggable:L,FontAwesomeIcon:y},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function q(e,t,o,k,c,s){const d=r("font-awesome-icon"),m=r("openwb-nested-list",!0),i=r("draggable");return a(),u(i,{class:"dragArea w-100 mb-0",tag:"ul",list:o.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:x(({element:l})=>[n("li",null,[n("div",{class:g(["element-titel",s.classes(l)])},[n("span",null,[_(d,{class:"handle","fixed-width":"",icon:["fas","arrows-alt"]}),s.getElementIcon(l)?(a(),u(d,{key:0,"fixed-width":"",icon:s.getElementIcon(l)},null,8,["icon"])):p("v-if",!0),h(" "+w(s.getElementLabel(l.id)),1)]),p(` <span class="element-actions">
 						<font-awesome-icon
 							fixed-width
 							:icon="['fas', 'edit']"
diff --git a/web/settings/assets/OptionalComponents-560c0e0a.js b/web/settings/assets/OptionalComponents-5a18805b.js
similarity index 77%
rename from web/settings/assets/OptionalComponents-560c0e0a.js
rename to web/settings/assets/OptionalComponents-5a18805b.js
index ef3118c086..b90aeb9ce0 100644
--- a/web/settings/assets/OptionalComponents-560c0e0a.js
+++ b/web/settings/assets/OptionalComponents-5a18805b.js
@@ -1,4 +1,4 @@
-import{_ as w,C as B}from"./index-2a1b0c80.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as D,p as i,k as d,l as b,A as o,L as l,u as a,x as k,q as s,a0 as T,y as x,a1 as $,z as f}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const S={name:"DisplayThemeFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},displayThemeType:{type:String}},methods:{updateConfiguration(t,n=void 0){this.$emit("update:configuration",{value:t,object:n})}}},q={class:"display-theme-fallback"};function A(t,n,u,c,g,r){const p=i("openwb-base-alert"),v=i("openwb-base-textarea");return d(),b("div",q,[o(p,{subtype:"warning"},{default:l(()=>[a(' Es wurde keine Konfigurationsseite für das Display Theme "'+k(u.displayThemeType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),o(v,{title:"Konfiguration",subtype:"json","model-value":u.configuration,"onUpdate:modelValue":n[0]||(n[0]=m=>r.updateConfiguration(m,"configuration"))},{help:l(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),o(p,{subtype:"info"},{default:l(()=>[s("pre",null,k(JSON.stringify(u.configuration,void 0,2)),1)]),_:1})])}const V=D(S,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]),z={name:"OpenwbDisplayThemeProxy",emits:["update:configuration"],props:{displayThemeType:{type:String,required:!0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading display theme: ${this.displayThemeType}`),T({loader:()=>W(Object.assign({"./cards/displayTheme.vue":()=>w(()=>import("./displayTheme-35595a93.js"),["assets/displayTheme-35595a93.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"])}),`./${this.displayThemeType}/displayTheme.vue`),errorComponent:V})}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)}}};function C(t,n,u,c,g,r){return d(),x($(r.myComponent),{configuration:u.configuration,displayThemeType:u.displayThemeType,"onUpdate:configuration":n[0]||(n[0]=p=>r.updateConfiguration(p))},null,40,["configuration","displayThemeType"])}const O=D(z,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),I={name:"OpenwbOptionalComponents",mixins:[B],components:{OpenwbDisplayThemeProxy:O},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/rfid/active","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/standby","openWB/optional/int_display/rotation","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/theme","openWB/optional/int_display/only_local_charge_points","openWB/system/configurable/display_themes","openWB/optional/et/active","openWB/optional/et/config/provider","openWB/optional/et/config/max_price"]}},computed:{displayThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]}}},methods:{getDisplayThemeDefaultConfiguration(t){const n=this.displayThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(n,"defaults")?{...n.defaults.configuration}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",t,"type"),this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaultConfiguration(t),"configuration")},updateConfiguration(t,n){console.debug("updateConfiguration",t,n),this.updateState(t,n.value,n.object)}}},N={class:"optionalComponents"},P={name:"optionalComponentsForm"},F={key:0},R=s("br",null,null,-1),M=s("br",null,null,-1),j=["innerHTML"],U={key:0},H=s("br",null,null,-1),J=s("hr",null,null,-1),Z={key:1},K=s("hr",null,null,-1),G={key:2},Q=s("hr",null,null,-1),X=s("hr",null,null,-1),Y={key:0};function tt(t,n,u,c,g,r){const p=i("openwb-base-button-group-input"),v=i("openwb-base-alert"),m=i("openwb-base-card"),_=i("openwb-base-heading"),y=i("openwb-base-range-input"),h=i("openwb-base-select-input"),L=i("openwb-display-theme-proxy"),E=i("openwb-base-submit-buttons");return d(),b("div",N,[s("form",P,[o(m,{title:"RFID"},{default:l(()=>[o(p,{title:"RFID aktivieren","model-value":t.$store.state.mqtt["openWB/optional/rfid/active"],"onUpdate:modelValue":n[0]||(n[0]=e=>t.updateState("openWB/optional/rfid/active",e)),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:l(()=>[a(" Dies bedingt das Vorhandensein eines RFID-Readers in deiner openWB. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ")]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(d(),b("div",F,[o(v,{subtype:"info"},{default:l(()=>[a(" Die RFID-Tags, die an dem jeweiligen Ladepunkt gültig sind, müssen in dem Ladepunkt-Profil hinterlegt werden. Der RFID-Tag muss in den Einstellungen des Fahrzeugs diesem zugeordnet werden."),R,a(" Es kann zuerst angesteckt und dann der RFID-Tag gescannt werden oder zuerst der RFID-Tag gescannt werden. Dann muss innerhalb von 5 Minuten ein Auto angesteckt werden, sonst wird der RFID-Tag verworfen. Das Auto wird erst nach dem Anstecken zugeordnet."),M,s("span",{innerHTML:t.$store.state.text.rfidWiki},null,8,j)]),_:1})])):f("v-if",!0)]),_:1}),f(` <openwb-base-card title="LED-Ausgänge">
+import{_ as w,C as B}from"./index-bc47a901.js";import{_ as T}from"./dynamic-import-helper-be004503.js";import{_ as c,p,k as s,l as b,y as g,L as l,u as a,x as D,A as o,q as f,a0 as W,a1 as $,z as d}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const S={name:"DisplayThemeFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},displayThemeType:{type:String}},methods:{updateConfiguration(t,n=void 0){this.$emit("update:configuration",{value:t,object:n})}}},q={class:"display-theme-fallback"},A={key:1};function V(t,n,i,k,x,r){const u=p("openwb-base-alert"),v=p("openwb-base-textarea");return s(),b("div",q,[Object.keys(i.configuration).length==0?(s(),g(u,{key:0,subtype:"info"},{default:l(()=>[a(' Das Display-Theme "'+D(i.displayThemeType)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),b("div",A,[o(u,{subtype:"warning"},{default:l(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+D(i.displayThemeType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),o(v,{title:"Konfiguration",subtype:"json","model-value":i.configuration,"onUpdate:modelValue":n[0]||(n[0]=m=>r.updateConfiguration(m,"configuration"))},{help:l(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),o(u,{subtype:"info"},{default:l(()=>[f("pre",null,D(JSON.stringify(i.configuration,void 0,2)),1)]),_:1})]))])}const z=c(S,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]),C={name:"OpenwbDisplayThemeProxy",emits:["update:configuration"],props:{displayThemeType:{type:String,required:!0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading display theme: ${this.displayThemeType}`),W({loader:()=>T(Object.assign({"./cards/displayTheme.vue":()=>w(()=>import("./displayTheme-af0ce411.js"),["assets/displayTheme-af0ce411.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"])}),`./${this.displayThemeType}/displayTheme.vue`),errorComponent:z})}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)}}};function O(t,n,i,k,x,r){return s(),g($(r.myComponent),{configuration:i.configuration,displayThemeType:i.displayThemeType,"onUpdate:configuration":n[0]||(n[0]=u=>r.updateConfiguration(u))},null,40,["configuration","displayThemeType"])}const I=c(C,[["render",O],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),N={name:"OpenwbOptionalComponents",mixins:[B],components:{OpenwbDisplayThemeProxy:I},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/rfid/active","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/standby","openWB/optional/int_display/rotation","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/theme","openWB/optional/int_display/only_local_charge_points","openWB/system/configurable/display_themes","openWB/optional/et/active","openWB/optional/et/config/provider","openWB/optional/et/config/max_price"]}},computed:{displayThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]}}},methods:{getDisplayThemeDefaultConfiguration(t){const n=this.displayThemeList.find(i=>i.value==t);return Object.prototype.hasOwnProperty.call(n,"defaults")?{...JSON.parse(JSON.stringify(n.defaults.configuration))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",t,"type"),this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaultConfiguration(t),"configuration")},updateConfiguration(t,n){console.debug("updateConfiguration",t,n),this.updateState(t,n.value,n.object)}}},P={class:"optionalComponents"},F={name:"optionalComponentsForm"},R={key:0},M=f("br",null,null,-1),j=f("br",null,null,-1),U=["innerHTML"],H={key:0},J=f("br",null,null,-1),Z=f("hr",null,null,-1),K={key:1},G=f("hr",null,null,-1),Q={key:2},X=f("hr",null,null,-1),Y=f("hr",null,null,-1),tt={key:0};function nt(t,n,i,k,x,r){const u=p("openwb-base-button-group-input"),v=p("openwb-base-alert"),m=p("openwb-base-card"),_=p("openwb-base-heading"),y=p("openwb-base-range-input"),h=p("openwb-base-select-input"),L=p("openwb-display-theme-proxy"),E=p("openwb-base-submit-buttons");return s(),b("div",P,[f("form",F,[o(m,{title:"RFID"},{default:l(()=>[o(u,{title:"RFID aktivieren","model-value":t.$store.state.mqtt["openWB/optional/rfid/active"],"onUpdate:modelValue":n[0]||(n[0]=e=>t.updateState("openWB/optional/rfid/active",e)),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:l(()=>[a(" Dies bedingt das Vorhandensein eines RFID-Readers in deiner openWB. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ")]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(s(),b("div",R,[o(v,{subtype:"info"},{default:l(()=>[a(" Die RFID-Tags, die an dem jeweiligen Ladepunkt gültig sind, müssen in dem Ladepunkt-Profil hinterlegt werden. Der RFID-Tag muss in den Einstellungen des Fahrzeugs diesem zugeordnet werden."),M,a(" Es kann zuerst angesteckt und dann der RFID-Tag gescannt werden oder zuerst der RFID-Tag gescannt werden. Dann muss innerhalb von 5 Minuten ein Auto angesteckt werden, sonst wird der RFID-Tag verworfen. Das Auto wird erst nach dem Anstecken zugeordnet."),j,f("span",{innerHTML:t.$store.state.text.rfidWiki},null,8,U)]),_:1})])):d("v-if",!0)]),_:1}),d(` <openwb-base-card title="LED-Ausgänge">
 				<openwb-base-button-group-input
 					title="LED-Ausgänge aktivieren"
 					:model-value="
@@ -914,7 +914,7 @@ import{_ as w,C as B}from"./index-2a1b0c80.js";import{_ as W}from"./dynamic-impo
 						/>
 					</div>
 				</div>
-			</openwb-base-card> `),o(m,{title:"Display (intern oder extern)"},{default:l(()=>[o(p,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],"onUpdate:modelValue":n[1]||(n[1]=e=>t.updateState("openWB/optional/int_display/active",e)),buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:l(()=>[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ')]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(d(),b("div",U,[o(p,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],"onUpdate:modelValue":n[2]||(n[2]=e=>t.updateState("openWB/optional/int_display/rotation",e)),buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}]},{help:l(()=>[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!"),H,a(" Diese Einstellung erfordert ein Raspberry Pi Display. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ")]),_:1},8,["model-value"]),J,o(_,null,{default:l(()=>[a(" Display Standby ")]),_:1}),o(y,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],"onUpdate:modelValue":n[3]||(n[3]=e=>t.updateState("openWB/optional/int_display/standby",e)),unit:"Sek",labels:[{label:"Immer an",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600}]},{help:l(()=>[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ")]),_:1},8,["model-value"]),f(` <openwb-base-button-group-input
+			</openwb-base-card> `),o(m,{title:"Display (intern oder extern)"},{default:l(()=>[o(u,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],"onUpdate:modelValue":n[1]||(n[1]=e=>t.updateState("openWB/optional/int_display/active",e)),buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:l(()=>[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ')]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(s(),b("div",H,[o(u,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],"onUpdate:modelValue":n[2]||(n[2]=e=>t.updateState("openWB/optional/int_display/rotation",e)),buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}]},{help:l(()=>[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!"),J,a(" Diese Einstellung erfordert ein Raspberry Pi Display. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ")]),_:1},8,["model-value"]),Z,o(_,null,{default:l(()=>[a(" Display Standby ")]),_:1}),o(y,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],"onUpdate:modelValue":n[3]||(n[3]=e=>t.updateState("openWB/optional/int_display/standby",e)),unit:"Sek",labels:[{label:"Immer an",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600}]},{help:l(()=>[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ")]),_:1},8,["model-value"]),d(` <openwb-base-button-group-input
 						v-if="
 							$store.state.mqtt[
 								'openWB/optional/int_display/standby'
@@ -950,7 +950,7 @@ import{_ as w,C as B}from"./index-2a1b0c80.js";import{_ as W}from"./dynamic-impo
 							sich das Display automatisch ein, wenn ein
 							Fahrzeug angesteckt wird.
 						</template>
-					</openwb-base-button-group-input> `)])):f("v-if",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(d(),b("div",Z,[f(` <hr />
+					</openwb-base-button-group-input> `)])):d("v-if",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(s(),b("div",K,[d(` <hr />
 					<openwb-base-select-input
 						title="Art der Anzeige"
 						:options="[
@@ -986,7 +986,7 @@ import{_ as w,C as B}from"./index-2a1b0c80.js";import{_ as W}from"./dynamic-impo
 							minimale Anzeige und Bedienung der an dieser openWB
 							verfügbaren Ladepunkte.
 						</template>
-					</openwb-base-select-input> `),K,o(v,{subtype:"info"},{default:l(()=>[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(d(),b("div",G,[f(` <hr />
+					</openwb-base-select-input> `),G,o(v,{subtype:"info"},{default:l(()=>[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),b("div",Q,[d(` <hr />
 					<openwb-base-heading>PIN-Sperre</openwb-base-heading>
 					<openwb-base-button-group-input
 						title="Display mit PIN schützen"
@@ -1042,7 +1042,7 @@ import{_ as w,C as B}from"./index-2a1b0c80.js";import{_ as W}from"./dynamic-impo
 								Zahlen enthalten.
 							</template>
 						</openwb-base-text-input>
-					</div> `),Q,o(p,{title:"Ladepunkte auf externen openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],"onUpdate:modelValue":n[4]||(n[4]=e=>t.updateState("openWB/optional/int_display/only_local_charge_points",e)),buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}]},{help:l(()=>[a(" Hiermit kann festgelegt werden, ob an angebundenen externen openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ")]),_:1},8,["model-value"]),X,t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(d(),b("div",Y,[o(h,{class:"mb-2",title:"Theme des Displays",options:r.displayThemeList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":n[5]||(n[5]=e=>r.updateSelectedDisplayTheme(e))},{help:l(()=>[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ")]),_:1},8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(d(),x(L,{key:0,displayThemeType:t.$store.state.mqtt["openWB/optional/int_display/theme"].type,configuration:t.$store.state.mqtt["openWB/optional/int_display/theme"].configuration,"onUpdate:configuration":n[6]||(n[6]=e=>r.updateConfiguration("openWB/optional/int_display/theme",e))},null,8,["displayThemeType","configuration"])):f("v-if",!0)])):f("v-if",!0)]))]),_:1}),f(` <openwb-base-card title="Variable Stromtarife">
+					</div> `),X,o(u,{title:"Ladepunkte auf externen openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],"onUpdate:modelValue":n[4]||(n[4]=e=>t.updateState("openWB/optional/int_display/only_local_charge_points",e)),buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}]},{help:l(()=>[a(" Hiermit kann festgelegt werden, ob an angebundenen externen openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ")]),_:1},8,["model-value"]),Y,t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(s(),b("div",tt,[o(h,{class:"mb-2",title:"Theme des Displays",options:r.displayThemeList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":n[5]||(n[5]=e=>r.updateSelectedDisplayTheme(e))},{help:l(()=>[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ")]),_:1},8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(s(),g(L,{key:0,displayThemeType:t.$store.state.mqtt["openWB/optional/int_display/theme"].type,configuration:t.$store.state.mqtt["openWB/optional/int_display/theme"].configuration,"onUpdate:configuration":n[6]||(n[6]=e=>r.updateConfiguration("openWB/optional/int_display/theme",e))},null,8,["displayThemeType","configuration"])):d("v-if",!0)])):d("v-if",!0)]))]),_:1}),d(` <openwb-base-card title="Variable Stromtarife">
 				<div v-if="$store.state.mqtt['openWB/general/extern'] === true">
 					<openwb-base-alert subtype="info">
 						Diese Einstellungen sind nicht verfügbar, solange sich
@@ -1115,4 +1115,4 @@ import{_ as w,C as B}from"./index-2a1b0c80.js";import{_ as W}from"./dynamic-impo
 						/>
 					</div>
 				</div>
-			</openwb-base-card> `),o(E,{formName:"optionalComponentsForm",onSave:n[7]||(n[7]=e=>t.$emit("save")),onReset:n[8]||(n[8]=e=>t.$emit("reset")),onDefaults:n[9]||(n[9]=e=>t.$emit("defaults"))})])])}const pt=D(I,[["render",tt],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]);export{pt as default};
+			</openwb-base-card> `),o(E,{formName:"optionalComponentsForm",onSave:n[7]||(n[7]=e=>t.$emit("save")),onReset:n[8]||(n[8]=e=>t.$emit("reset")),onDefaults:n[9]||(n[9]=e=>t.$emit("defaults"))})])])}const ft=c(N,[["render",nt],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]);export{ft as default};
diff --git a/web/settings/assets/PVChargeConfig-42aae27d.js b/web/settings/assets/PVChargeConfig-0cf60184.js
similarity index 98%
rename from web/settings/assets/PVChargeConfig-42aae27d.js
rename to web/settings/assets/PVChargeConfig-0cf60184.js
index c7979faf31..1f90ca0c24 100644
--- a/web/settings/assets/PVChargeConfig-42aae27d.js
+++ b/web/settings/assets/PVChargeConfig-0cf60184.js
@@ -1 +1 @@
-import{C as f}from"./index-2a1b0c80.js";import{_ as w,p as g,k as d,l as u,q as r,A as l,L as i,u as a,y as W,z as B}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const S={name:"OpenwbPVChargeConfig",mixins:[f],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/phase_switch_delay","openWB/general/chargemode_config/pv_charging/bat_prio","openWB/general/chargemode_config/pv_charging/switch_on_soc","openWB/general/chargemode_config/pv_charging/switch_off_soc","openWB/general/chargemode_config/pv_charging/charging_power_reserve","openWB/general/chargemode_config/pv_charging/rundown_power","openWB/general/chargemode_config/pv_charging/rundown_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const e="openWB/general/chargemode_config/pv_charging/control_range";let n=this.$store.state.mqtt[e];var h="individual";return typeof n<"u"&&(n[0]===-230&&n[1]===0?h="export":n[0]===0&&n[1]===230?h="import":h="individual"),h},set(e){const n="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=e,e){case"export":this.updateState(n,[-230,0]);break;case"import":this.updateState(n,[0,230]);break}}}},methods:{updateBatterySwitchOnSoc(e){this.updateState("openWB/general/chargemode_config/pv_charging/switch_on_soc",e),e<=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_soc"]&&this.updateState("openWB/general/chargemode_config/pv_charging/switch_off_soc",Math.max(0,e-5))},updateBatterySwitchOffSoc(e){this.updateState("openWB/general/chargemode_config/pv_charging/switch_off_soc",e),e>=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_soc"]&&this.updateState("openWB/general/chargemode_config/pv_charging/switch_on_soc",e+5)}},watch:{controlMode(e){this.calculatedControlMode=e}}},V={class:"pvChargeConfig"},z={name:"pvChargeConfigForm"},E={key:0},k={key:1},C=r("hr",null,null,-1),y=r("br",null,null,-1),M=r("hr",null,null,-1),L=r("br",null,null,-1),U=r("hr",null,null,-1),q=r("br",null,null,-1),P=r("br",null,null,-1),$=r("br",null,null,-1),A={key:0},R={key:1},I={key:0},F={key:1},N=r("br",null,null,-1),D=r("br",null,null,-1),O=r("br",null,null,-1),Z=r("br",null,null,-1),T=r("br",null,null,-1),H=r("br",null,null,-1),G=r("hr",null,null,-1);function K(e,n,h,j,J,s){const p=g("openwb-base-alert"),m=g("openwb-base-button-group-input"),o=g("openwb-base-number-input"),_=g("openwb-base-card"),c=g("openwb-base-range-input"),v=g("openwb-base-heading"),b=g("openwb-base-submit-buttons");return d(),u("div",V,[r("form",z,[l(_,{title:"Regelparameter"},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(d(),u("div",E,[l(p,{subtype:"info"},{default:i(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(d(),u("div",k,[l(m,{title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"individual",text:"Individuell"}],modelValue:s.controlMode,"onUpdate:modelValue":n[0]||(n[0]=t=>s.controlMode=t)},{help:i(()=>[a(' Mit dieser Einstellung wird der angestrebte Regelbereich festgelegt. "Einspeisung" und "Bezug" definieren einen Bereich mit minimaler Einspeisung (-230W, 0W) bzw. minimalem Netzbezug (0W, 230W). Mit der Auswahl "individuell" kann ein eigener Regelbereich definiert werden. ')]),_:1},8,["modelValue"]),l(o,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.01,unit:"kW","model-value":Array.isArray(e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":n[1]||(n[1]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/control_range",t*1e3,"0"))},{help:i(()=>[a(" Untere Grenze des Regelbereichs. ")]),_:1},8,["disabled","readonly","model-value"]),l(o,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.01,unit:"kW","model-value":Array.isArray(e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":n[2]||(n[2]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/control_range",t*1e3,"1"))},{help:i(()=>[a("Obere Grenze des Regelbereichs.")]),_:1},8,["disabled","readonly","model-value"]),C,l(o,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":n[3]||(n[3]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",t*1e3))},{help:i(()=>[a(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet. ")]),_:1},8,["model-value"]),l(o,{title:"Einschaltverzögerung",min:0,step:1,unit:"s","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",t))},{help:i(()=>[a(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird."),y,a(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird. ")]),_:1},8,["model-value"]),M,l(o,{title:"Abschaltschwelle",min:0,step:.05,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",t*1e3))},{help:i(()=>[a(" Wird der Regelbereich in Richtung Netzbezug um diese Leistung überschritten, so wird der Ladevorgang beendet. ")]),_:1},8,["model-value"]),l(o,{title:"Abschaltverzögerung",min:0,step:1,unit:"s","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":n[6]||(n[6]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",t))},{help:i(()=>[a(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird."),L,a(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird. ")]),_:1},8,["model-value"]),U,l(o,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":n[7]||(n[7]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",t*1e3))},{help:i(()=>[a(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen)."),q,a(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).'),P,a(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.'),$,a(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ")]),_:1},8,["model-value"])]))]),_:1}),l(_,{title:"Phasenumschaltung"},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(d(),u("div",A,[l(p,{subtype:"info"},{default:i(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(d(),u("div",R,[l(m,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phases_to_use"],"onUpdate:modelValue":n[8]||(n[8]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/phases_to_use",t))},{help:i(()=>[a(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "PV-Laden" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ')]),_:1},8,["model-value"]),e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phases_to_use"]==0?(d(),W(c,{key:0,title:"Verzögerung automat. Phasenumschaltung",min:1,max:15,step:1,unit:"Min.","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phase_switch_delay"],"onUpdate:modelValue":n[9]||(n[9]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/phase_switch_delay",t))},{help:i(()=>[a(" Um zu viele Umschaltungen zu vermeiden, wird Anhand dieses Wertes definiert, wann die Umschaltung erfolgen soll. Ist für durchgehend x Minuten die Maximalstromstärke erreicht, wird auf mehrphasige Ladung umgestellt. Ist die Ladung nur für ein Intervall unterhalb der Maximalstromstärke, beginnt das Intervall für die Umschaltung erneut. Ist die Ladung im mehrphasigen Modus für 16 - x Minuten auf der Minimalstromstärke, wird wieder auf einphasige Ladung gewechselt. ")]),_:1},8,["model-value"])):B("v-if",!0)]))]),_:1}),l(_,{title:"Speicher-Beachtung"},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(d(),u("div",I,[l(p,{subtype:"info"},{default:i(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(d(),u("div",F,[l(m,{title:"Priorisierung",buttons:[{buttonValue:!1,text:"Fahrzeuge"},{buttonValue:!0,text:"Speicher"}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_prio"],"onUpdate:modelValue":n[10]||(n[10]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/bat_prio",t))},{help:i(()=>[a(' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich.'),N,D,a(' Bei Priorisierung "Fahrzeuge" wird die gesamte PV-Leistung ABZÜGLICH der "reservierten Ladeleistung" des Speichers zum Fahrzeugladen verwendet.'),O,Z,a(' Bei Priorisierung "Speicher" wird die gesamte PV-Leistung und ZUSÄTZLICH die "erlaubte Entladeleistung" des Speichers (bis zum Erreichen des "minimalen Entlade-SoC" des Speichers) zum Fahrzeugladen verwendet.'),T,H,a(" Beide Modi lassen sich mit den zusätzlichen Einstellungen an die eigenen Bedürfnisse anpassen, so dass auch ein Mischbetrieb möglich ist. ")]),_:1},8,["model-value"]),l(o,{title:"Reservierte Ladeleistung",min:0,step:.1,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/charging_power_reserve"]/1e3,"onUpdate:modelValue":n[11]||(n[11]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/charging_power_reserve",t*1e3))},{help:i(()=>[a(' Die "reservierte Ladeleistung" des Speichers wird von der Regelung auch bei "Fahrzeuge"-Vorrang NICHT für das Fahrzeugladen verwendet und bleibt immer dem Speicher vorbehalten. ')]),_:1},8,["model-value"]),l(o,{title:"Erlaubte Entladeleistung",min:0,step:.1,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/rundown_power"]/1e3,"onUpdate:modelValue":n[12]||(n[12]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/rundown_power",t*1e3))},{help:i(()=>[a(' Die "erlaubte Entladeleistung" des Speichers wird von der Regelung bei "Speicher"-Vorrang ZUSÄTZLICH zur PV-Leistung für das Fahrzeugladen verwendet, solange der Speicher-SoC über dem "minimalen Entlade-SoC" liegt. ')]),_:1},8,["model-value"]),l(c,{title:"Minimaler Entlade-SoC",min:0,max:20,step:1,unit:"%",labels:[{label:0,value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95},{label:"Aus",value:100}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/rundown_soc"],"onUpdate:modelValue":n[13]||(n[13]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/rundown_soc",t))},{help:i(()=>[a(" Ein vorhandener Speicher wird im Modus PV-Laden mit der erlaubten Entladeleistung höchstens bis zu dem hier eingestellten Ladestand entladen. ")]),_:1},8,["model-value"]),G,l(v,null,{default:i(()=>[a(" Laden mit Mindeststrom ")]),_:1}),l(c,{title:"Einschalt-SoC",min:0,max:18,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_soc"],"onUpdate:modelValue":n[14]||(n[14]=t=>s.updateBatterySwitchOnSoc(t))},{help:i(()=>[a('Ist der Speicher-SoC größer oder gleich dem "Einschalt-SoC", wird der Speicher im Modus "PV-Laden" bei aktiviertem Mindeststrom bis zum "Ausschalt-SoC" entladen, auch wenn KEIN Überschuss vorhanden ist. Der "Einschalt-SoC" muss größer oder gleich dem "Ausschalt-SoC" sein.')]),_:1},8,["model-value"]),l(c,{title:"Ausschalt-SoC",min:0,max:18,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_soc"],"onUpdate:modelValue":n[15]||(n[15]=t=>s.updateBatterySwitchOffSoc(t))},{help:i(()=>[a('Ist der Speicher-SoC größer oder gleich dem "Einschalt-SoC", wird der Speicher im Modus "PV-Laden" bei aktiviertem Mindeststrom bis zum "Ausschalt-SoC" entladen, auch wenn KEIN Überschuss vorhanden ist. Der "Einschalt-SoC" muss größer oder gleich dem "Ausschalt-SoC" sein.')]),_:1},8,["model-value"])]))]),_:1}),l(b,{formName:"pvChargeConfigForm",onSave:n[16]||(n[16]=t=>e.$emit("save")),onReset:n[17]||(n[17]=t=>e.$emit("reset")),onDefaults:n[18]||(n[18]=t=>e.$emit("defaults"))})])])}const ae=w(S,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{ae as default};
+import{C as f}from"./index-bc47a901.js";import{_ as w,p as g,k as d,l as u,q as r,A as l,L as i,u as a,y as W,z as B}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const S={name:"OpenwbPVChargeConfig",mixins:[f],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/phase_switch_delay","openWB/general/chargemode_config/pv_charging/bat_prio","openWB/general/chargemode_config/pv_charging/switch_on_soc","openWB/general/chargemode_config/pv_charging/switch_off_soc","openWB/general/chargemode_config/pv_charging/charging_power_reserve","openWB/general/chargemode_config/pv_charging/rundown_power","openWB/general/chargemode_config/pv_charging/rundown_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const e="openWB/general/chargemode_config/pv_charging/control_range";let n=this.$store.state.mqtt[e];var h="individual";return typeof n<"u"&&(n[0]===-230&&n[1]===0?h="export":n[0]===0&&n[1]===230?h="import":h="individual"),h},set(e){const n="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=e,e){case"export":this.updateState(n,[-230,0]);break;case"import":this.updateState(n,[0,230]);break}}}},methods:{updateBatterySwitchOnSoc(e){this.updateState("openWB/general/chargemode_config/pv_charging/switch_on_soc",e),e<=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_soc"]&&this.updateState("openWB/general/chargemode_config/pv_charging/switch_off_soc",Math.max(0,e-5))},updateBatterySwitchOffSoc(e){this.updateState("openWB/general/chargemode_config/pv_charging/switch_off_soc",e),e>=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_soc"]&&this.updateState("openWB/general/chargemode_config/pv_charging/switch_on_soc",e+5)}},watch:{controlMode(e){this.calculatedControlMode=e}}},V={class:"pvChargeConfig"},z={name:"pvChargeConfigForm"},E={key:0},k={key:1},C=r("hr",null,null,-1),y=r("br",null,null,-1),M=r("hr",null,null,-1),L=r("br",null,null,-1),U=r("hr",null,null,-1),q=r("br",null,null,-1),P=r("br",null,null,-1),$=r("br",null,null,-1),A={key:0},R={key:1},I={key:0},F={key:1},N=r("br",null,null,-1),D=r("br",null,null,-1),O=r("br",null,null,-1),Z=r("br",null,null,-1),T=r("br",null,null,-1),H=r("br",null,null,-1),G=r("hr",null,null,-1);function K(e,n,h,j,J,s){const p=g("openwb-base-alert"),m=g("openwb-base-button-group-input"),o=g("openwb-base-number-input"),_=g("openwb-base-card"),c=g("openwb-base-range-input"),v=g("openwb-base-heading"),b=g("openwb-base-submit-buttons");return d(),u("div",V,[r("form",z,[l(_,{title:"Regelparameter"},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(d(),u("div",E,[l(p,{subtype:"info"},{default:i(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(d(),u("div",k,[l(m,{title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"individual",text:"Individuell"}],modelValue:s.controlMode,"onUpdate:modelValue":n[0]||(n[0]=t=>s.controlMode=t)},{help:i(()=>[a(' Mit dieser Einstellung wird der angestrebte Regelbereich festgelegt. "Einspeisung" und "Bezug" definieren einen Bereich mit minimaler Einspeisung (-230W, 0W) bzw. minimalem Netzbezug (0W, 230W). Mit der Auswahl "individuell" kann ein eigener Regelbereich definiert werden. ')]),_:1},8,["modelValue"]),l(o,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.01,unit:"kW","model-value":Array.isArray(e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":n[1]||(n[1]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/control_range",t*1e3,"0"))},{help:i(()=>[a(" Untere Grenze des Regelbereichs. ")]),_:1},8,["disabled","readonly","model-value"]),l(o,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.01,unit:"kW","model-value":Array.isArray(e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":n[2]||(n[2]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/control_range",t*1e3,"1"))},{help:i(()=>[a("Obere Grenze des Regelbereichs.")]),_:1},8,["disabled","readonly","model-value"]),C,l(o,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":n[3]||(n[3]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",t*1e3))},{help:i(()=>[a(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet. ")]),_:1},8,["model-value"]),l(o,{title:"Einschaltverzögerung",min:0,step:1,unit:"s","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",t))},{help:i(()=>[a(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird."),y,a(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird. ")]),_:1},8,["model-value"]),M,l(o,{title:"Abschaltschwelle",min:0,step:.05,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",t*1e3))},{help:i(()=>[a(" Wird der Regelbereich in Richtung Netzbezug um diese Leistung überschritten, so wird der Ladevorgang beendet. ")]),_:1},8,["model-value"]),l(o,{title:"Abschaltverzögerung",min:0,step:1,unit:"s","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":n[6]||(n[6]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",t))},{help:i(()=>[a(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird."),L,a(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird. ")]),_:1},8,["model-value"]),U,l(o,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":n[7]||(n[7]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",t*1e3))},{help:i(()=>[a(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen)."),q,a(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).'),P,a(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.'),$,a(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ")]),_:1},8,["model-value"])]))]),_:1}),l(_,{title:"Phasenumschaltung"},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(d(),u("div",A,[l(p,{subtype:"info"},{default:i(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(d(),u("div",R,[l(m,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phases_to_use"],"onUpdate:modelValue":n[8]||(n[8]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/phases_to_use",t))},{help:i(()=>[a(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "PV-Laden" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ')]),_:1},8,["model-value"]),e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phases_to_use"]==0?(d(),W(c,{key:0,title:"Verzögerung automat. Phasenumschaltung",min:1,max:15,step:1,unit:"Min.","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phase_switch_delay"],"onUpdate:modelValue":n[9]||(n[9]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/phase_switch_delay",t))},{help:i(()=>[a(" Um zu viele Umschaltungen zu vermeiden, wird Anhand dieses Wertes definiert, wann die Umschaltung erfolgen soll. Ist für durchgehend x Minuten die Maximalstromstärke erreicht, wird auf mehrphasige Ladung umgestellt. Ist die Ladung nur für ein Intervall unterhalb der Maximalstromstärke, beginnt das Intervall für die Umschaltung erneut. Ist die Ladung im mehrphasigen Modus für 16 - x Minuten auf der Minimalstromstärke, wird wieder auf einphasige Ladung gewechselt. ")]),_:1},8,["model-value"])):B("v-if",!0)]))]),_:1}),l(_,{title:"Speicher-Beachtung"},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(d(),u("div",I,[l(p,{subtype:"info"},{default:i(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(d(),u("div",F,[l(m,{title:"Priorisierung",buttons:[{buttonValue:!1,text:"Fahrzeuge"},{buttonValue:!0,text:"Speicher"}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_prio"],"onUpdate:modelValue":n[10]||(n[10]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/bat_prio",t))},{help:i(()=>[a(' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich.'),N,D,a(' Bei Priorisierung "Fahrzeuge" wird die gesamte PV-Leistung ABZÜGLICH der "reservierten Ladeleistung" des Speichers zum Fahrzeugladen verwendet.'),O,Z,a(' Bei Priorisierung "Speicher" wird die gesamte PV-Leistung und ZUSÄTZLICH die "erlaubte Entladeleistung" des Speichers (bis zum Erreichen des "minimalen Entlade-SoC" des Speichers) zum Fahrzeugladen verwendet.'),T,H,a(" Beide Modi lassen sich mit den zusätzlichen Einstellungen an die eigenen Bedürfnisse anpassen, so dass auch ein Mischbetrieb möglich ist. ")]),_:1},8,["model-value"]),l(o,{title:"Reservierte Ladeleistung",min:0,step:.1,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/charging_power_reserve"]/1e3,"onUpdate:modelValue":n[11]||(n[11]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/charging_power_reserve",t*1e3))},{help:i(()=>[a(' Die "reservierte Ladeleistung" des Speichers wird von der Regelung auch bei "Fahrzeuge"-Vorrang NICHT für das Fahrzeugladen verwendet und bleibt immer dem Speicher vorbehalten. ')]),_:1},8,["model-value"]),l(o,{title:"Erlaubte Entladeleistung",min:0,step:.1,unit:"kW","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/rundown_power"]/1e3,"onUpdate:modelValue":n[12]||(n[12]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/rundown_power",t*1e3))},{help:i(()=>[a(' Die "erlaubte Entladeleistung" des Speichers wird von der Regelung bei "Speicher"-Vorrang ZUSÄTZLICH zur PV-Leistung für das Fahrzeugladen verwendet, solange der Speicher-SoC über dem "minimalen Entlade-SoC" liegt. ')]),_:1},8,["model-value"]),l(c,{title:"Minimaler Entlade-SoC",min:0,max:20,step:1,unit:"%",labels:[{label:0,value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95},{label:"Aus",value:100}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/rundown_soc"],"onUpdate:modelValue":n[13]||(n[13]=t=>e.updateState("openWB/general/chargemode_config/pv_charging/rundown_soc",t))},{help:i(()=>[a(" Ein vorhandener Speicher wird im Modus PV-Laden mit der erlaubten Entladeleistung höchstens bis zu dem hier eingestellten Ladestand entladen. ")]),_:1},8,["model-value"]),G,l(v,null,{default:i(()=>[a(" Laden mit Mindeststrom ")]),_:1}),l(c,{title:"Einschalt-SoC",min:0,max:18,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_soc"],"onUpdate:modelValue":n[14]||(n[14]=t=>s.updateBatterySwitchOnSoc(t))},{help:i(()=>[a('Ist der Speicher-SoC größer oder gleich dem "Einschalt-SoC", wird der Speicher im Modus "PV-Laden" bei aktiviertem Mindeststrom bis zum "Ausschalt-SoC" entladen, auch wenn KEIN Überschuss vorhanden ist. Der "Einschalt-SoC" muss größer oder gleich dem "Ausschalt-SoC" sein.')]),_:1},8,["model-value"]),l(c,{title:"Ausschalt-SoC",min:0,max:18,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_soc"],"onUpdate:modelValue":n[15]||(n[15]=t=>s.updateBatterySwitchOffSoc(t))},{help:i(()=>[a('Ist der Speicher-SoC größer oder gleich dem "Einschalt-SoC", wird der Speicher im Modus "PV-Laden" bei aktiviertem Mindeststrom bis zum "Ausschalt-SoC" entladen, auch wenn KEIN Überschuss vorhanden ist. Der "Einschalt-SoC" muss größer oder gleich dem "Ausschalt-SoC" sein.')]),_:1},8,["model-value"])]))]),_:1}),l(b,{formName:"pvChargeConfigForm",onSave:n[16]||(n[16]=t=>e.$emit("save")),onReset:n[17]||(n[17]=t=>e.$emit("reset")),onDefaults:n[18]||(n[18]=t=>e.$emit("defaults"))})])])}const ae=w(S,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{ae as default};
diff --git a/web/settings/assets/ScheduledChargeConfig-1687d025.js b/web/settings/assets/ScheduledChargeConfig-cbe98bc3.js
similarity index 85%
rename from web/settings/assets/ScheduledChargeConfig-1687d025.js
rename to web/settings/assets/ScheduledChargeConfig-cbe98bc3.js
index 0f60099e48..6c2f0b6bbe 100644
--- a/web/settings/assets/ScheduledChargeConfig-1687d025.js
+++ b/web/settings/assets/ScheduledChargeConfig-cbe98bc3.js
@@ -1 +1 @@
-import{C as g}from"./index-2a1b0c80.js";import{_ as h,p as o,k as a,l as i,q as c,A as s,L as r,u}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"OpenwbScheduledChargeConfig",mixins:[g],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/scheduled_charging/phases_to_use"]}}},b={class:"scheduledChargeConfig"},f={name:"scheduledChargeConfigForm"},v={key:0},w={key:1};function C(t,e,$,k,B,V){const d=o("openwb-base-alert"),l=o("openwb-base-button-group-input"),m=o("openwb-base-card"),p=o("openwb-base-submit-buttons");return a(),i("div",b,[c("form",f,[s(m,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(d,{subtype:"info"},{default:r(()=>[u(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",w,[s(l,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/scheduled_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/scheduled_charging/phases_to_use",n))},{help:r(()=>[u(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),s(p,{formName:"scheduledChargeConfigForm",onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})])])}const E=h(_,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ScheduledChargeConfig.vue"]]);export{E as default};
+import{C as g}from"./index-bc47a901.js";import{_ as h,p as o,k as a,l as i,q as c,A as s,L as r,u}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"OpenwbScheduledChargeConfig",mixins:[g],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/scheduled_charging/phases_to_use"]}}},b={class:"scheduledChargeConfig"},f={name:"scheduledChargeConfigForm"},v={key:0},w={key:1};function C(t,e,$,k,B,V){const d=o("openwb-base-alert"),l=o("openwb-base-button-group-input"),m=o("openwb-base-card"),p=o("openwb-base-submit-buttons");return a(),i("div",b,[c("form",f,[s(m,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(d,{subtype:"info"},{default:r(()=>[u(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",w,[s(l,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/scheduled_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/scheduled_charging/phases_to_use",n))},{help:r(()=>[u(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),s(p,{formName:"scheduledChargeConfigForm",onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})])])}const E=h(_,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ScheduledChargeConfig.vue"]]);export{E as default};
diff --git a/web/settings/assets/Status-4190b69b.js b/web/settings/assets/Status-4190b69b.js
new file mode 100644
index 0000000000..30557e4239
--- /dev/null
+++ b/web/settings/assets/Status-4190b69b.js
@@ -0,0 +1 @@
+import{l as N,G as q,H as C,c as L,I as S,J as P,K as A,L as V,M as z,F as H}from"./vendor-fortawesome-ad83e535.js";import{C as Z}from"./index-bc47a901.js";import{_ as D,p as f,k as i,l as B,z as c,y as u,L as n,G as _,I as w,A as t,u as r,x as p,Q as M,R as E,q as W}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";N.add(q,C,L,S,P,A,V,z);const O={name:"OpenwbStatus",mixins:[Z],components:{FontAwesomeIcon:H},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported","openWB/chargepoint/+/config","openWB/chargepoint/+/get/+","openWB/chargepoint/+/get/connected_vehicle/info","openWB/chargepoint/+/set/+","openWB/system/device/+/component/+/config","openWB/counter/+/get/+","openWB/pv/get/+","openWB/pv/+/get/+","openWB/bat/get/+","openWB/bat/+/get/+","openWB/vehicle/+/name","openWB/vehicle/+/get/+"],statusLevel:["success","warning","danger"]}},computed:{installedChargePoints:{get(){let e=this.getWildcardTopics("openWB/chargepoint/+/config"),y={};for(const[b,x]of Object.entries(e))(x.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(y[b]=x);return y}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(e,y){return Object.keys(e).filter(b=>e[b].type.includes(y)).reduce((b,x)=>({...b,[x]:e[x]}),{})},getChargePointIndex(e){return parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1])},getComponentIndex(e){return parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1])},getVehicleIndex(e){return parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1])}}},v=e=>(M("data-v-051028a3"),e=e(),E(),e),j={class:"status"},F=v(()=>W("br",null,null,-1)),G=v(()=>W("br",null,null,-1)),J=v(()=>W("br",null,null,-1)),R=v(()=>W("br",null,null,-1)),Q=v(()=>W("br",null,null,-1)),$=v(()=>W("br",null,null,-1)),U=v(()=>W("br",null,null,-1));function X(e,y,b,x,k,o){const d=f("font-awesome-icon"),l=f("openwb-base-text-input"),m=f("openwb-base-heading"),g=f("openwb-base-card"),h=f("openwb-base-alert"),T=f("openwb-base-checkbox-input"),I=f("openwb-base-number-input");return i(),B("div",j,[c(" all charge points "),o.numChargePointsInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(i(),u(g,{key:0,subtype:"primary",collapsible:!0,collapsed:!0},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","charging-station"]}),r(" Alle Ladepunkte ")]),default:n(()=>[t(l,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/chargepoint/get/power",3,3,.001)},null,8,["model-value"]),t(l,{title:"Zählerstand laden",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/imported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Zählerstand entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/exported",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Historie")]),_:1}),t(l,{title:"Heute geladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Heute entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/daily_exported",3,3,.001)},null,8,["model-value"])]),_:1})):c("v-if",!0),c(" individual charge points "),(i(!0),B(_,null,w(o.installedChargePoints,(a,s)=>(i(),u(g,{key:s,collapsible:!0,collapsed:!0,subtype:"primary"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","charging-station"]}),r(" "+p(a.name)+" (ID: "+p(o.getChargePointIndex(s))+") ",1)]),default:n(()=>[t(h,{subtype:k.statusLevel[e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),F,r(" "+p(e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/fault_str"]),1)]),_:2},1032,["subtype"]),t(h,{subtype:"info"},{default:n(()=>[r(" Statusmeldung:"),G,r(" "+p(e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/state_str"]),1)]),_:2},1024),t(T,{title:"Fahrzeug angesteckt",disabled:"","model-value":e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/plug_state"]==1},null,8,["model-value"]),t(T,{title:"Ladevorgang aktiv",disabled:"","model-value":e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/charge_state"]==1},null,8,["model-value"]),t(l,{title:"Zählerstand laden",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/imported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Zählerstand entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/exported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Heute geladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Heute entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/power",3,3,.001)},null,8,["model-value"]),t(l,{title:"Ladestromvorgabe",readonly:"",class:"text-right text-monospace",step:"0.01",unit:"A","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/set/current",2)},null,8,["model-value"]),t(l,{title:"Netzfrequenz",readonly:"",class:"text-right text-monospace",step:"0.01",unit:"Hz","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/frequency",2)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Werte pro Phase")]),_:1}),t(l,{title:"Spannung",readonly:"",class:"text-right text-monospace",unit:"V","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/voltages",1)},null,8,["model-value"]),t(l,{title:"Strom",readonly:"",class:"text-right text-monospace",unit:"A","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/currents",2)},null,8,["model-value"]),t(l,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",unit:"kW","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/powers",3,3,.001)},null,8,["model-value"]),t(l,{title:"Leistungsfaktor",readonly:"",class:"text-right text-monospace","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/power_factors",2)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Phasen")]),_:1}),t(l,{title:"Vorgabe",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/set/phases_to_use")},null,8,["model-value"]),t(l,{title:"Aktuell",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/phases_in_use")},null,8,["model-value"])]),_:2},1024))),128)),c(" counters "),(i(!0),B(_,null,w(o.counterConfigs,a=>(i(),u(g,{key:a.id,title:a.name+" (ID: "+a.id+")",collapsible:!0,collapsed:!0,subtype:"danger"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","gauge-high"]}),r(" "+p(a.name)+" (ID: "+p(a.id)+") ",1)]),default:n(()=>[t(h,{subtype:k.statusLevel[e.$store.state.mqtt["openWB/counter/"+a.id+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/counter/"+a.id+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/counter/"+a.id+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),J,r(" "+p(e.$store.state.mqtt["openWB/counter/"+a.id+"/get/fault_str"]),1)]),_:2},1032,["subtype"]),e.$store.state.mqtt["openWB/counter/"+a.id+"/get/state_str"]!=null?(i(),u(h,{key:0,subtype:"info"},{default:n(()=>[r(" Statusmeldung:"),R,r(" "+p(e.$store.state.mqtt["openWB/counter/"+a.id+"/get/state_str"]),1)]),_:2},1024)):c("v-if",!0),t(m,null,{default:n(()=>[r("Zählerstände")]),_:1}),t(l,{title:"Export",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/counter/"+a.id+"/get/exported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Import",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/counter/"+a.id+"/get/imported",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Saldierte Werte")]),_:1}),t(l,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/counter/"+a.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(l,{title:"Netzfrequenz",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"Hz","model-value":e.formatNumberTopic("openWB/counter/"+a.id+"/get/frequency",3)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Werte pro Phase")]),_:1}),t(l,{title:"Spannung",readonly:"",class:"text-right text-monospace",unit:"V","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+a.id+"/get/voltages",1)},null,8,["model-value"]),t(l,{title:"Strom",readonly:"",class:"text-right text-monospace",unit:"A","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+a.id+"/get/currents",2)},null,8,["model-value"]),t(l,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",unit:"kW","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+a.id+"/get/powers",3,3,.001)},null,8,["model-value"]),t(l,{title:"Leistungsfaktor",readonly:"",class:"text-right text-monospace","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+a.id+"/get/power_factors",2)},null,8,["model-value"])]),_:2},1032,["title"]))),128)),c(" all inverters "),o.numInvertersInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(i(),u(g,{key:1,subtype:"success",collapsible:!0,collapsed:!0},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","solar-panel"]}),r(" Alle Wechselrichter ")]),default:n(()=>[t(l,{title:"Zählerstand",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/exported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/pv/get/power",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Erträge")]),_:1}),t(l,{title:"Heute",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Dieser Monat",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/monthly_exported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Dieses Jahr",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/yearly_exported",3,3,.001)},null,8,["model-value"])]),_:1})):c("v-if",!0),c(" individual inverters "),(i(!0),B(_,null,w(o.inverterConfigs,a=>(i(),u(g,{key:a.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","solar-panel"]}),r(" "+p(a.name)+" (ID: "+p(a.id)+") ",1)]),default:n(()=>[t(h,{subtype:k.statusLevel[e.$store.state.mqtt["openWB/pv/"+a.id+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/pv/"+a.id+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/pv/"+a.id+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),Q,r(" "+p(e.$store.state.mqtt["openWB/pv/"+a.id+"/get/fault_str"]),1)]),_:2},1032,["subtype"]),t(l,{title:"Zählerstand",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+a.id+"/get/exported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/pv/"+a.id+"/get/power",3,3,.001)},null,8,["model-value"])]),_:2},1024))),128)),c(" all batteries "),o.numBatteriesInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(i(),u(g,{key:2,subtype:"warning",collapsible:!0,collapsed:!0},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","car-battery"]}),r(" Alle Speicher ")]),default:n(()=>[t(m,null,{default:n(()=>[r("Zählerstände")]),_:1}),t(l,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/imported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/exported",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Tageswerte")]),_:1}),t(l,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Saldierte Werte")]),_:1}),t(l,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/bat/get/power",3,3,.001)},null,8,["model-value"]),t(I,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/bat/get/soc"]},null,8,["model-value"])]),_:1})):c("v-if",!0),c(" individual batteries "),(i(!0),B(_,null,w(o.batteryConfigs,a=>(i(),u(g,{key:a.id,collapsible:!0,collapsed:!0,subtype:"warning"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","car-battery"]}),r(" "+p(a.name)+" (ID: "+p(a.id)+") ",1)]),default:n(()=>[t(h,{subtype:k.statusLevel[e.$store.state.mqtt["openWB/bat/"+a.id+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/bat/"+a.id+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/bat/"+a.id+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),$,r(" "+p(e.$store.state.mqtt["openWB/bat/"+a.id+"/get/fault_str"]),1)]),_:2},1032,["subtype"]),t(m,null,{default:n(()=>[r("Aktuelle Werte")]),_:1}),t(l,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/bat/"+a.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(I,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/bat/"+a.id+"/get/soc"]},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Zählerstände")]),_:1}),t(l,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/"+a.id+"/get/imported",3,3,.001)},null,8,["model-value"]),t(l,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/"+a.id+"/get/exported",3,3,.001)},null,8,["model-value"])]),_:2},1024))),128)),c(" vehicles "),(i(!0),B(_,null,w(o.vehicleNames,(a,s)=>(i(),u(g,{key:s,collapsible:!0,collapsed:!0,subtype:"info"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","car"]}),r(" "+p(a)+" (ID: "+p(o.getVehicleIndex(s))+") ",1)]),default:n(()=>[e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_state"]!==void 0?(i(),u(h,{key:0,subtype:k.statusLevel[e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),U,r(" "+p(e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_str"]),1)]),_:2},1032,["subtype"])):c("v-if",!0),t(m,null,{default:n(()=>[r("Fahrzeugdaten")]),_:1}),t(I,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/soc"]},null,8,["model-value"]),t(I,{title:"Reichweite",readonly:"",class:"text-right text-monospace",unit:"km","model-value":Math.round(e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/range"])},null,8,["model-value"]),t(l,{title:"Letzter Zeitstempel",readonly:"",class:"text-right text-monospace","model-value":e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/soc_timestamp"]},null,8,["model-value"])]),_:2},1024))),128))])}const ne=D(O,[["render",X],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{ne as default};
diff --git a/web/settings/assets/Status-60e959e3.js b/web/settings/assets/Status-60e959e3.js
deleted file mode 100644
index 6906394af2..0000000000
--- a/web/settings/assets/Status-60e959e3.js
+++ /dev/null
@@ -1 +0,0 @@
-import{l as N,G as q,H as C,c as L,I as S,J as A,K as P,L as V,M as z,F as H}from"./vendor-fortawesome-838df0c9.js";import{C as Z}from"./index-2a1b0c80.js";import{_ as D,p as f,k as i,l as b,z as c,y as u,L as n,G as B,I as y,A as t,u as r,x as p,Q as M,R as E,q as v}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";N.add(q,C,L,S,A,P,V,z);const F={name:"OpenwbStatus",mixins:[Z],components:{FontAwesomeIcon:H},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported","openWB/chargepoint/+/config","openWB/chargepoint/+/get/+","openWB/chargepoint/+/get/connected_vehicle/info","openWB/chargepoint/+/set/+","openWB/system/device/+/component/+/config","openWB/counter/+/get/+","openWB/pv/get/+","openWB/pv/+/get/+","openWB/bat/get/+","openWB/bat/+/get/+","openWB/vehicle/+/name","openWB/vehicle/+/get/+"],statusLevel:["success","warning","danger"]}},computed:{installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(e,I){return Object.keys(e).filter(k=>e[k].type.includes(I)).reduce((k,w)=>({...k,[w]:e[w]}),{})},getChargePointIndex(e){return parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1])},getComponentIndex(e){return parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1])},getVehicleIndex(e){return parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1])}}},W=e=>(M("data-v-051028a3"),e=e(),E(),e),O={class:"status"},j=W(()=>v("br",null,null,-1)),G=W(()=>v("br",null,null,-1)),J=W(()=>v("br",null,null,-1)),R=W(()=>v("br",null,null,-1)),Q=W(()=>v("br",null,null,-1)),U=W(()=>v("br",null,null,-1)),X=W(()=>v("br",null,null,-1));function Y(e,I,k,w,x,o){const d=f("font-awesome-icon"),a=f("openwb-base-text-input"),m=f("openwb-base-heading"),g=f("openwb-base-card"),h=f("openwb-base-alert"),T=f("openwb-base-checkbox-input"),_=f("openwb-base-number-input");return i(),b("div",O,[c(" all charge points "),o.numChargePointsInstalled>1?(i(),u(g,{key:0,subtype:"primary",collapsible:!0,collapsed:!0},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","charging-station"]}),r(" Alle Ladepunkte ")]),default:n(()=>[t(a,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/chargepoint/get/power",3,3,.001)},null,8,["model-value"]),t(a,{title:"Zählerstand laden",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/imported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Zählerstand entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/exported",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Historie")]),_:1}),t(a,{title:"Heute geladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Heute entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/daily_exported",3,3,.001)},null,8,["model-value"])]),_:1})):c("v-if",!0),c(" individual charge points "),(i(!0),b(B,null,y(o.installedChargePoints,(l,s)=>(i(),u(g,{key:s,collapsible:!0,collapsed:!0,subtype:"primary"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","charging-station"]}),r(" "+p(l.name)+" (ID: "+p(o.getChargePointIndex(s))+") ",1)]),default:n(()=>[t(h,{subtype:x.statusLevel[e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),j,r(" "+p(e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/fault_str"]),1)]),_:2},1032,["subtype"]),t(h,{subtype:"info"},{default:n(()=>[r(" Statusmeldung:"),G,r(" "+p(e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/state_str"]),1)]),_:2},1024),t(T,{title:"Fahrzeug angesteckt",disabled:"","model-value":e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/plug_state"]==1},null,8,["model-value"]),t(T,{title:"Ladevorgang aktiv",disabled:"","model-value":e.$store.state.mqtt["openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/charge_state"]==1},null,8,["model-value"]),t(a,{title:"Zählerstand laden",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/imported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Zählerstand entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/exported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Heute geladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Heute entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/power",3,3,.001)},null,8,["model-value"]),t(a,{title:"Ladestromvorgabe",readonly:"",class:"text-right text-monospace",step:"0.01",unit:"A","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/set/current",2)},null,8,["model-value"]),t(a,{title:"Netzfrequenz",readonly:"",class:"text-right text-monospace",step:"0.01",unit:"Hz","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/frequency",2)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Werte pro Phase")]),_:1}),t(a,{title:"Spannung",readonly:"",class:"text-right text-monospace",unit:"V","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/voltages",1)},null,8,["model-value"]),t(a,{title:"Strom",readonly:"",class:"text-right text-monospace",unit:"A","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/currents",2)},null,8,["model-value"]),t(a,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",unit:"kW","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/powers",3,3,.001)},null,8,["model-value"]),t(a,{title:"Leistungsfaktor",readonly:"",class:"text-right text-monospace","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/power_factors",2)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Phasen")]),_:1}),t(a,{title:"Vorgabe",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/set/phases_to_use")},null,8,["model-value"]),t(a,{title:"Aktuell",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/chargepoint/"+o.getChargePointIndex(s)+"/get/phases_in_use")},null,8,["model-value"])]),_:2},1024))),128)),c(" counters "),(i(!0),b(B,null,y(o.counterConfigs,l=>(i(),u(g,{key:l.id,title:l.name+" (ID: "+l.id+")",collapsible:!0,collapsed:!0,subtype:"danger"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","gauge-high"]}),r(" "+p(l.name)+" (ID: "+p(l.id)+") ",1)]),default:n(()=>[t(h,{subtype:x.statusLevel[e.$store.state.mqtt["openWB/counter/"+l.id+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/counter/"+l.id+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/counter/"+l.id+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),J,r(" "+p(e.$store.state.mqtt["openWB/counter/"+l.id+"/get/fault_str"]),1)]),_:2},1032,["subtype"]),e.$store.state.mqtt["openWB/counter/"+l.id+"/get/state_str"]!=null?(i(),u(h,{key:0,subtype:"info"},{default:n(()=>[r(" Statusmeldung:"),R,r(" "+p(e.$store.state.mqtt["openWB/counter/"+l.id+"/get/state_str"]),1)]),_:2},1024)):c("v-if",!0),t(m,null,{default:n(()=>[r("Zählerstände")]),_:1}),t(a,{title:"Export",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/counter/"+l.id+"/get/exported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Import",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/counter/"+l.id+"/get/imported",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Saldierte Werte")]),_:1}),t(a,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/counter/"+l.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(a,{title:"Netzfrequenz",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"Hz","model-value":e.formatNumberTopic("openWB/counter/"+l.id+"/get/frequency",3)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Werte pro Phase")]),_:1}),t(a,{title:"Spannung",readonly:"",class:"text-right text-monospace",unit:"V","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+l.id+"/get/voltages",1)},null,8,["model-value"]),t(a,{title:"Strom",readonly:"",class:"text-right text-monospace",unit:"A","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+l.id+"/get/currents",2)},null,8,["model-value"]),t(a,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",unit:"kW","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+l.id+"/get/powers",3,3,.001)},null,8,["model-value"]),t(a,{title:"Leistungsfaktor",readonly:"",class:"text-right text-monospace","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+l.id+"/get/power_factors",2)},null,8,["model-value"])]),_:2},1032,["title"]))),128)),c(" all inverters "),o.numInvertersInstalled>1?(i(),u(g,{key:1,subtype:"success",collapsible:!0,collapsed:!0},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","solar-panel"]}),r(" Alle Wechselrichter ")]),default:n(()=>[t(a,{title:"Zählerstand",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/exported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/pv/get/power",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Erträge")]),_:1}),t(a,{title:"Heute",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Dieser Monat",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/monthly_exported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Dieses Jahr",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/yearly_exported",3,3,.001)},null,8,["model-value"])]),_:1})):c("v-if",!0),c(" individual inverters "),(i(!0),b(B,null,y(o.inverterConfigs,l=>(i(),u(g,{key:l.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","solar-panel"]}),r(" "+p(l.name)+" (ID: "+p(l.id)+") ",1)]),default:n(()=>[t(h,{subtype:x.statusLevel[e.$store.state.mqtt["openWB/pv/"+l.id+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/pv/"+l.id+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/pv/"+l.id+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),Q,r(" "+p(e.$store.state.mqtt["openWB/pv/"+l.id+"/get/fault_str"]),1)]),_:2},1032,["subtype"]),t(a,{title:"Zählerstand",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+l.id+"/get/exported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/pv/"+l.id+"/get/power",3,3,.001)},null,8,["model-value"])]),_:2},1024))),128)),c(" all batteries "),o.numBatteriesInstalled>1?(i(),u(g,{key:2,subtype:"warning",collapsible:!0,collapsed:!0},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","car-battery"]}),r(" Alle Speicher ")]),default:n(()=>[t(m,null,{default:n(()=>[r("Zählerstände")]),_:1}),t(a,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/imported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/exported",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Tageswerte")]),_:1}),t(a,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Saldierte Werte")]),_:1}),t(a,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/bat/get/power",3,3,.001)},null,8,["model-value"]),t(_,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/bat/get/soc"]},null,8,["model-value"])]),_:1})):c("v-if",!0),c(" individual batteries "),(i(!0),b(B,null,y(o.batteryConfigs,l=>(i(),u(g,{key:l.id,collapsible:!0,collapsed:!0,subtype:"warning"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","car-battery"]}),r(" "+p(l.name)+" (ID: "+p(l.id)+") ",1)]),default:n(()=>[t(h,{subtype:x.statusLevel[e.$store.state.mqtt["openWB/bat/"+l.id+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/bat/"+l.id+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/bat/"+l.id+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),U,r(" "+p(e.$store.state.mqtt["openWB/bat/"+l.id+"/get/fault_str"]),1)]),_:2},1032,["subtype"]),t(m,null,{default:n(()=>[r("Aktuelle Werte")]),_:1}),t(a,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/bat/"+l.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(_,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/bat/"+l.id+"/get/soc"]},null,8,["model-value"]),t(m,null,{default:n(()=>[r("Zählerstände")]),_:1}),t(a,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/"+l.id+"/get/imported",3,3,.001)},null,8,["model-value"]),t(a,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/"+l.id+"/get/exported",3,3,.001)},null,8,["model-value"])]),_:2},1024))),128)),c(" vehicles "),(i(!0),b(B,null,y(o.vehicleNames,(l,s)=>(i(),u(g,{key:s,collapsible:!0,collapsed:!0,subtype:"info"},{header:n(()=>[t(d,{"fixed-width":"",icon:["fas","car"]}),r(" "+p(l)+" (ID: "+p(o.getVehicleIndex(s))+") ",1)]),default:n(()=>[e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_state"]!==void 0?(i(),u(h,{key:0,subtype:x.statusLevel[e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_state"]]},{default:n(()=>[e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_state"]==1?(i(),u(d,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_state"]==2?(i(),u(d,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(i(),u(d,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),r(" Modulmeldung:"),X,r(" "+p(e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/fault_str"]),1)]),_:2},1032,["subtype"])):c("v-if",!0),t(m,null,{default:n(()=>[r("Fahrzeugdaten")]),_:1}),t(_,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/soc"]},null,8,["model-value"]),t(_,{title:"Reichweite",readonly:"",class:"text-right text-monospace",unit:"km","model-value":Math.round(e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/range"])},null,8,["model-value"]),t(a,{title:"Letzter Zeitstempel",readonly:"",class:"text-right text-monospace","model-value":e.$store.state.mqtt["openWB/vehicle/"+o.getVehicleIndex(s)+"/get/soc_timestamp"]},null,8,["model-value"])]),_:2},1024))),128))])}const ne=D(F,[["render",Y],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{ne as default};
diff --git a/web/settings/assets/Support-0be69787.js b/web/settings/assets/Support-3c0af4c2.js
similarity index 94%
rename from web/settings/assets/Support-0be69787.js
rename to web/settings/assets/Support-3c0af4c2.js
index 4e18709e57..638be6ee74 100644
--- a/web/settings/assets/Support-0be69787.js
+++ b/web/settings/assets/Support-3c0af4c2.js
@@ -1 +1 @@
-import{l as w,g as y,F as V}from"./vendor-fortawesome-838df0c9.js";import{C as B}from"./index-2a1b0c80.js";import{_ as v,p as a,k as r,l as c,q as l,y as h,L as s,A as n,a2 as z,z as g,u as t,n as F}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";w.add(y);const x={name:"OpenwbSupport",mixins:[B],emits:["sendCommand"],components:{FontAwesomeIcon:V},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged"],sendDebugData:{email:"",serialNumber:"",installedComponents:"",vehicles:"",message:""},enableSendDebugButton:!0}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.sendDebugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},C={class:"support"},q={name:"supportForm"},A={key:1},W={key:0},N=l("li",null,' Vergewissern Sie sich, dass mindestens die aktuelle "Stable" Version installiert ist. ',-1),L=l("li",null," Stellen Sie beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1),M=l("li",null," Stellen Sie sicher, dass der Lademodus korrekt gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1),U=l("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Sie erhalten ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei ihnen. Bitte kontrollieren Sie daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhalten Sie trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes fehlgeschlagen. ",-1),E={class:"row justify-content-center"};function G(d,o,T,H,e,_){const b=a("router-link"),u=a("openwb-base-alert"),f=a("FontAwesomeIcon"),p=a("openwb-base-text-input"),m=a("openwb-base-textarea"),S=a("openwb-base-click-button"),k=a("openwb-base-card"),D=a("font-awesome-icon");return r(),c("div",C,[l("form",q,[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(r(),h(u,{key:0,subtype:"danger"},{default:s(()=>[t(" Sie müssen der "),n(b,{to:"/System/LegalSettings"},{default:s(()=>[t(" Datenschutzerklärung ")]),_:1}),t(" zustimmen, um einen Systembericht senden zu können. ")]),_:1})):(r(),c("div",A,[n(u,{subtype:"success"},{default:s(()=>[t(" Sie haben der "),n(b,{to:"/System/LegalSettings"},{default:s(()=>[t(" Datenschutzerklärung ")]),_:1}),t(" zugestimmt und können Systemberichte senden. ")]),_:1}),n(k,{title:"Systembericht"},z({default:s(()=>[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(r(),c("div",W,[n(u,{subtype:"info"},{default:s(()=>[l("ul",null,[l("li",null,[t(" Lesen Sie den Hilfetext, der durch Klick auf das "),n(f,{icon:["far","question-circle"]}),t(" angezeigt wird. Nehmen Sie das Wiki zur Hilfe. ")]),N,L,M,U])]),_:1}),n(p,{title:"E-Mail",required:"",subtype:"email",modelValue:e.sendDebugData.email,"onUpdate:modelValue":o[0]||(o[0]=i=>e.sendDebugData.email=i)},null,8,["modelValue"]),n(p,{title:"openWB Seriennummer",required:"",modelValue:e.sendDebugData.serialNumber,"onUpdate:modelValue":o[1]||(o[1]=i=>e.sendDebugData.serialNumber=i)},{help:s(()=>[t(" Die Seriennummer der openWB finden Sie außen am Gehäuse - bei Älteren innen im Gehäuse. Sie können uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden! ")]),_:1},8,["modelValue"]),n(m,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500",modelValue:e.sendDebugData.installedComponents,"onUpdate:modelValue":o[2]||(o[2]=i=>e.sendDebugData.installedComponents=i)},{help:s(()=>[t(" Geben Sie hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind. ")]),_:1},8,["modelValue"]),n(m,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500",modelValue:e.sendDebugData.vehicles,"onUpdate:modelValue":o[3]||(o[3]=i=>e.sendDebugData.vehicles=i)},{help:s(()=>[t(" Geben Sie hier an, welche Fahrzeuge geladen werden (Hersteller, Modell, Baujahr). ")]),_:1},8,["modelValue"]),n(m,{title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500",modelValue:e.sendDebugData.message,"onUpdate:modelValue":o[4]||(o[4]=i=>e.sendDebugData.message=i)},null,8,["modelValue"])])):g("v-if",!0)]),_:2},[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[l("div",E,[n(S,{class:F(["col-4",e.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!e.enableSendDebugButton,onButtonClicked:_.sendDebugMessage},{default:s(()=>[t(" Absenden ")]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),e.enableSendDebugButton?g("v-if",!0):(r(),h(u,{key:0,subtype:"success"},{default:s(()=>[t(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Sie können diese Seite jetzt verlassen. "),n(D,{"fixed-width":"",icon:["fas","check"]})]),_:1}))]))])])}const J=v(x,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{J as default};
+import{l as w,g as y,F as V}from"./vendor-fortawesome-ad83e535.js";import{C as B}from"./index-bc47a901.js";import{_ as v,p as a,k as r,l as c,q as l,y as h,L as s,A as n,a2 as z,z as g,u as t,n as F}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";w.add(y);const x={name:"OpenwbSupport",mixins:[B],emits:["sendCommand"],components:{FontAwesomeIcon:V},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged"],sendDebugData:{email:"",serialNumber:"",installedComponents:"",vehicles:"",message:""},enableSendDebugButton:!0}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.sendDebugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},C={class:"support"},q={name:"supportForm"},A={key:1},W={key:0},N=l("li",null,' Vergewissern Sie sich, dass mindestens die aktuelle "Stable" Version installiert ist. ',-1),L=l("li",null," Stellen Sie beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1),M=l("li",null," Stellen Sie sicher, dass der Lademodus korrekt gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1),U=l("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Sie erhalten ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei ihnen. Bitte kontrollieren Sie daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhalten Sie trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes fehlgeschlagen. ",-1),E={class:"row justify-content-center"};function G(d,o,T,H,e,_){const b=a("router-link"),u=a("openwb-base-alert"),f=a("FontAwesomeIcon"),p=a("openwb-base-text-input"),m=a("openwb-base-textarea"),S=a("openwb-base-click-button"),k=a("openwb-base-card"),D=a("font-awesome-icon");return r(),c("div",C,[l("form",q,[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(r(),h(u,{key:0,subtype:"danger"},{default:s(()=>[t(" Sie müssen der "),n(b,{to:"/System/LegalSettings"},{default:s(()=>[t(" Datenschutzerklärung ")]),_:1}),t(" zustimmen, um einen Systembericht senden zu können. ")]),_:1})):(r(),c("div",A,[n(u,{subtype:"success"},{default:s(()=>[t(" Sie haben der "),n(b,{to:"/System/LegalSettings"},{default:s(()=>[t(" Datenschutzerklärung ")]),_:1}),t(" zugestimmt und können Systemberichte senden. ")]),_:1}),n(k,{title:"Systembericht"},z({default:s(()=>[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(r(),c("div",W,[n(u,{subtype:"info"},{default:s(()=>[l("ul",null,[l("li",null,[t(" Lesen Sie den Hilfetext, der durch Klick auf das "),n(f,{icon:["far","question-circle"]}),t(" angezeigt wird. Nehmen Sie das Wiki zur Hilfe. ")]),N,L,M,U])]),_:1}),n(p,{title:"E-Mail",required:"",subtype:"email",modelValue:e.sendDebugData.email,"onUpdate:modelValue":o[0]||(o[0]=i=>e.sendDebugData.email=i)},null,8,["modelValue"]),n(p,{title:"openWB Seriennummer",required:"",modelValue:e.sendDebugData.serialNumber,"onUpdate:modelValue":o[1]||(o[1]=i=>e.sendDebugData.serialNumber=i)},{help:s(()=>[t(" Die Seriennummer der openWB finden Sie außen am Gehäuse - bei Älteren innen im Gehäuse. Sie können uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden! ")]),_:1},8,["modelValue"]),n(m,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500",modelValue:e.sendDebugData.installedComponents,"onUpdate:modelValue":o[2]||(o[2]=i=>e.sendDebugData.installedComponents=i)},{help:s(()=>[t(" Geben Sie hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind. ")]),_:1},8,["modelValue"]),n(m,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500",modelValue:e.sendDebugData.vehicles,"onUpdate:modelValue":o[3]||(o[3]=i=>e.sendDebugData.vehicles=i)},{help:s(()=>[t(" Geben Sie hier an, welche Fahrzeuge geladen werden (Hersteller, Modell, Baujahr). ")]),_:1},8,["modelValue"]),n(m,{title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500",modelValue:e.sendDebugData.message,"onUpdate:modelValue":o[4]||(o[4]=i=>e.sendDebugData.message=i)},null,8,["modelValue"])])):g("v-if",!0)]),_:2},[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[l("div",E,[n(S,{class:F(["col-4",e.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!e.enableSendDebugButton,onButtonClicked:_.sendDebugMessage},{default:s(()=>[t(" Absenden ")]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),e.enableSendDebugButton?g("v-if",!0):(r(),h(u,{key:0,subtype:"success"},{default:s(()=>[t(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Sie können diese Seite jetzt verlassen. "),n(D,{"fixed-width":"",icon:["fas","check"]})]),_:1}))]))])])}const J=v(x,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{J as default};
diff --git a/web/settings/assets/System-62b8e5ff.js b/web/settings/assets/System-af32e2a5.js
similarity index 96%
rename from web/settings/assets/System-62b8e5ff.js
rename to web/settings/assets/System-af32e2a5.js
index 97b74d225a..58d98f7979 100644
--- a/web/settings/assets/System-62b8e5ff.js
+++ b/web/settings/assets/System-af32e2a5.js
@@ -1 +1 @@
-import{l as W,_ as S,p as q,$ as C,O as A,a0 as x,F as $}from"./vendor-fortawesome-838df0c9.js";import{C as E}from"./index-2a1b0c80.js";import{_ as U,p as c,k as g,l as y,A as s,L as o,q as a,z as k,u as d,n as v,y as z,G as F,I as T,x as j,Q as D,R as I}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";W.add(S,q,C,A,x);const L={name:"OpenwbSystem",mixins:[E],emits:["sendCommand"],components:{FontAwesomeIcon:$},data(){return{mqttTopicsToSubscribe:["openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&(this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags||this.selectedTag=="*HEAD*")}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},getBranchGroups(){const t="Release",e="Beta",m="master",w=[t,e,m],p=(l,i)=>l.value==i.value?0:l.value==t?-1:i.value==t?1:l.value==e?-1:i.value==e?1:l.value==m?-1:i.value==m||l.value>i.value?1:l.value<i.value?-1:0;var r=this.$store.state.mqtt["openWB/system/available_branches"],h=[{label:"Allgemein",options:[]},{label:"Experimentell",options:[]}];if(r!==void 0){var u=0;for(const[l,i]of Object.entries(r))w.includes(l)?u=0:u=1,h[u].options.push({value:l,text:l+" ("+i.commit+")"});h[0].options.sort(p),h[1].options.sort(p)}return h},getBranchTagOptions(){if(!(this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]))return[];var t=this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags,e=[];if(t!==void 0)for(const[m,w]of Object.entries(t))e.unshift({value:m,text:w});return e.unshift({value:"*HEAD*",text:"Aktuellster Stand"}),e},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)},systemUpdate(){this.sendSystemCommand("systemUpdate",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},switchBranch(){this.sendSystemCommand("systemUpdate",{branch:this.$store.state.mqtt["openWB/system/current_branch"],tag:this.selectedTag}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},f=t=>(D("data-v-059847f6"),t=t(),I(),t),N={class:"system"},O=f(()=>a("h2",null,"Achtung!",-1)),R=f(()=>a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),Z={key:0},G={name:"versionInfoForm"},H={class:"missing-commits"},P={class:"row justify-content-center"},J={class:"col-md-4 d-flex py-1 justify-content-center"},Q={class:"col-md-4 d-flex py-1 justify-content-center"},K={name:"powerForm"},M={class:"row justify-content-center"},X={class:"col-md-4 d-flex py-1 justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={name:"releaseChangeForm"},te=f(()=>a("br",null,null,-1)),se=f(()=>a("br",null,null,-1)),ne=f(()=>a("br",null,null,-1)),ae=f(()=>a("br",null,null,-1)),oe={class:"row justify-content-center"},re={class:"col-md-4 d-flex py-1 justify-content-center"};function le(t,e,m,w,p,r){const h=c("openwb-base-button-group-input"),u=c("openwb-base-alert"),l=c("openwb-base-text-input"),i=c("openwb-base-card"),b=c("font-awesome-icon"),_=c("openwb-base-click-button"),B=c("openwb-base-select-input");return g(),y("div",N,[s(u,{subtype:"danger"},{default:o(()=>[O,R,s(h,{title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:this.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>this.warningAcknowledged=n)},null,8,["modelValue"])]),_:1}),p.warningAcknowledged?(g(),y("div",Z,[a("form",G,[s(i,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!0},{footer:o(()=>[a("div",P,[a("div",J,[s(_,{class:"btn-info",onButtonClicked:e[4]||(e[4]=n=>r.sendSystemCommand("systemFetchVersions"))},{default:o(()=>[d(" Informationen aktualisieren "),s(b,{"fixed-width":"",icon:["fas","download"]})]),_:1})]),a("div",Q,[s(_,{class:v(r.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!r.updateAvailable,onButtonClicked:e[5]||(e[5]=n=>r.systemUpdate())},{default:o(()=>[d(" Update "),s(b,{"fixed-width":"",icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])])]),default:o(()=>[s(l,{title:"Entwicklungszweig",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n)},null,8,["modelValue"]),s(l,{title:"installierte Version",readonly:"",class:v(r.updateAvailable?"text-danger":"text-success"),modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n)},null,8,["class","modelValue"]),s(l,{title:"aktuellste Version",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n)},null,8,["modelValue"]),r.updateAvailable?(g(),z(i,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:o(()=>[a("ul",H,[(g(!0),y(F,null,T(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,V)=>(g(),y("li",{key:V},j(n),1))),128))])]),_:1})):k("v-if",!0),s(u,{subtype:"danger"},{default:o(()=>[d(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ")]),_:1})]),_:1})]),a("form",K,[s(i,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:o(()=>[a("div",M,[a("div",X,[s(_,{class:"btn-warning",onButtonClicked:e[6]||(e[6]=n=>r.sendSystemCommand("systemReboot"))},{default:o(()=>[d(" Neustart "),s(b,{"fixed-width":"",icon:["fas","undo"]})]),_:1})]),a("div",Y,[s(_,{class:"btn-danger",onButtonClicked:e[7]||(e[7]=n=>r.sendSystemCommand("systemShutdown"))},{default:o(()=>[d(" Ausschalten "),s(b,{"fixed-width":"",icon:["fas","power-off"]})]),_:1})])])]),default:o(()=>[s(u,{subtype:"danger"},{default:o(()=>[d(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ")]),_:1})]),_:1})]),a("form",ee,[s(i,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:o(()=>[a("div",oe,[a("div",re,[s(_,{class:v(r.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!r.releaseChangeValid,onButtonClicked:e[10]||(e[10]=n=>r.switchBranch())},{default:o(()=>[s(b,{"fixed-width":"",icon:["fas","skull-crossbones"]}),d(" Branch und Tag wechseln "),s(b,{"fixed-width":"",icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:o(()=>[s(u,{subtype:"danger"},{default:o(()=>[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ")]),_:1}),s(u,{subtype:"warning"},{default:o(()=>[d(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren."),te,d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.'),se,d(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.'),ne,d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.'),ae,d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ')]),_:1}),s(B,{title:"Entwicklungszweig",groups:r.getBranchGroups(),"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),s(B,{title:"Tag",options:r.getBranchTagOptions(),modelValue:p.selectedTag,"onUpdate:modelValue":e[9]||(e[9]=n=>p.selectedTag=n)},null,8,["options","modelValue"])]),_:1})])])):k("v-if",!0)])}const be=U(L,[["render",le],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{be as default};
+import{l as W,_ as S,p as q,$ as C,O as A,a0 as x,F as $}from"./vendor-fortawesome-ad83e535.js";import{C as E}from"./index-bc47a901.js";import{_ as U,p as c,k as g,l as y,A as s,L as o,q as a,z as k,u as d,n as v,y as z,G as F,I as T,x as j,Q as D,R as I}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";W.add(S,q,C,A,x);const L={name:"OpenwbSystem",mixins:[E],emits:["sendCommand"],components:{FontAwesomeIcon:$},data(){return{mqttTopicsToSubscribe:["openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&(this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags||this.selectedTag=="*HEAD*")}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},getBranchGroups(){const t="Release",e="Beta",m="master",w=[t,e,m],p=(l,i)=>l.value==i.value?0:l.value==t?-1:i.value==t?1:l.value==e?-1:i.value==e?1:l.value==m?-1:i.value==m||l.value>i.value?1:l.value<i.value?-1:0;var r=this.$store.state.mqtt["openWB/system/available_branches"],h=[{label:"Allgemein",options:[]},{label:"Experimentell",options:[]}];if(r!==void 0){var u=0;for(const[l,i]of Object.entries(r))w.includes(l)?u=0:u=1,h[u].options.push({value:l,text:l+" ("+i.commit+")"});h[0].options.sort(p),h[1].options.sort(p)}return h},getBranchTagOptions(){if(!(this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]))return[];var t=this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags,e=[];if(t!==void 0)for(const[m,w]of Object.entries(t))e.unshift({value:m,text:w});return e.unshift({value:"*HEAD*",text:"Aktuellster Stand"}),e},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)},systemUpdate(){this.sendSystemCommand("systemUpdate",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},switchBranch(){this.sendSystemCommand("systemUpdate",{branch:this.$store.state.mqtt["openWB/system/current_branch"],tag:this.selectedTag}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},f=t=>(D("data-v-059847f6"),t=t(),I(),t),N={class:"system"},O=f(()=>a("h2",null,"Achtung!",-1)),R=f(()=>a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),Z={key:0},G={name:"versionInfoForm"},H={class:"missing-commits"},P={class:"row justify-content-center"},J={class:"col-md-4 d-flex py-1 justify-content-center"},Q={class:"col-md-4 d-flex py-1 justify-content-center"},K={name:"powerForm"},M={class:"row justify-content-center"},X={class:"col-md-4 d-flex py-1 justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={name:"releaseChangeForm"},te=f(()=>a("br",null,null,-1)),se=f(()=>a("br",null,null,-1)),ne=f(()=>a("br",null,null,-1)),ae=f(()=>a("br",null,null,-1)),oe={class:"row justify-content-center"},re={class:"col-md-4 d-flex py-1 justify-content-center"};function le(t,e,m,w,p,r){const h=c("openwb-base-button-group-input"),u=c("openwb-base-alert"),l=c("openwb-base-text-input"),i=c("openwb-base-card"),b=c("font-awesome-icon"),_=c("openwb-base-click-button"),B=c("openwb-base-select-input");return g(),y("div",N,[s(u,{subtype:"danger"},{default:o(()=>[O,R,s(h,{title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:this.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>this.warningAcknowledged=n)},null,8,["modelValue"])]),_:1}),p.warningAcknowledged?(g(),y("div",Z,[a("form",G,[s(i,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!0},{footer:o(()=>[a("div",P,[a("div",J,[s(_,{class:"btn-info",onButtonClicked:e[4]||(e[4]=n=>r.sendSystemCommand("systemFetchVersions"))},{default:o(()=>[d(" Informationen aktualisieren "),s(b,{"fixed-width":"",icon:["fas","download"]})]),_:1})]),a("div",Q,[s(_,{class:v(r.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!r.updateAvailable,onButtonClicked:e[5]||(e[5]=n=>r.systemUpdate())},{default:o(()=>[d(" Update "),s(b,{"fixed-width":"",icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])])]),default:o(()=>[s(l,{title:"Entwicklungszweig",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n)},null,8,["modelValue"]),s(l,{title:"installierte Version",readonly:"",class:v(r.updateAvailable?"text-danger":"text-success"),modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n)},null,8,["class","modelValue"]),s(l,{title:"aktuellste Version",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n)},null,8,["modelValue"]),r.updateAvailable?(g(),z(i,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:o(()=>[a("ul",H,[(g(!0),y(F,null,T(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,V)=>(g(),y("li",{key:V},j(n),1))),128))])]),_:1})):k("v-if",!0),s(u,{subtype:"danger"},{default:o(()=>[d(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ")]),_:1})]),_:1})]),a("form",K,[s(i,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:o(()=>[a("div",M,[a("div",X,[s(_,{class:"btn-warning",onButtonClicked:e[6]||(e[6]=n=>r.sendSystemCommand("systemReboot"))},{default:o(()=>[d(" Neustart "),s(b,{"fixed-width":"",icon:["fas","undo"]})]),_:1})]),a("div",Y,[s(_,{class:"btn-danger",onButtonClicked:e[7]||(e[7]=n=>r.sendSystemCommand("systemShutdown"))},{default:o(()=>[d(" Ausschalten "),s(b,{"fixed-width":"",icon:["fas","power-off"]})]),_:1})])])]),default:o(()=>[s(u,{subtype:"danger"},{default:o(()=>[d(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ")]),_:1})]),_:1})]),a("form",ee,[s(i,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:o(()=>[a("div",oe,[a("div",re,[s(_,{class:v(r.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!r.releaseChangeValid,onButtonClicked:e[10]||(e[10]=n=>r.switchBranch())},{default:o(()=>[s(b,{"fixed-width":"",icon:["fas","skull-crossbones"]}),d(" Branch und Tag wechseln "),s(b,{"fixed-width":"",icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:o(()=>[s(u,{subtype:"danger"},{default:o(()=>[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ")]),_:1}),s(u,{subtype:"warning"},{default:o(()=>[d(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren."),te,d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.'),se,d(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.'),ne,d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.'),ae,d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ')]),_:1}),s(B,{title:"Entwicklungszweig",groups:r.getBranchGroups(),"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),s(B,{title:"Tag",options:r.getBranchTagOptions(),modelValue:p.selectedTag,"onUpdate:modelValue":e[9]||(e[9]=n=>p.selectedTag=n)},null,8,["options","modelValue"])]),_:1})])])):k("v-if",!0)])}const be=U(L,[["render",le],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{be as default};
diff --git a/web/settings/assets/TestingStore-1f8762e3.js b/web/settings/assets/TestingStore-8306b27e.js
similarity index 95%
rename from web/settings/assets/TestingStore-1f8762e3.js
rename to web/settings/assets/TestingStore-8306b27e.js
index dac80b4fd6..a52b4893a8 100644
--- a/web/settings/assets/TestingStore-1f8762e3.js
+++ b/web/settings/assets/TestingStore-8306b27e.js
@@ -1 +1 @@
-import{C as h}from"./index-2a1b0c80.js";import{S as y}from"./OpenwbSortableList-ac8ac331.js";import{_ as U,p as s,k as T,l as E,q as p,A as o,L as a,u as n,x as v,z as _}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const N={name:"OpenwbTestingStore",mixins:[h],components:{SortableList:y},data(){return{mqttTopicsToSubscribe:[]}}},k={class:"testingStore"},O={name:"testingStoreForm"},Z=p("hr",null,null,-1),j=p("hr",null,null,-1),L=p("hr",null,null,-1),J=p("hr",null,null,-1),D=p("hr",null,null,-1),z=p("span",{style:{"text-decoration":"underline","font-style":"italic"}},[n(" Styled "),p("span",{style:{"font-weight":"initial"}},"Header"),n(" Slot ")],-1);function B(e,t,G,R,A,C){const u=s("openwb-base-text-input"),d=s("openwb-base-number-input"),f=s("openwb-base-textarea"),i=s("openwb-base-card"),r=s("openwb-base-range-input"),b=s("openwb-base-select-input"),g=s("openwb-base-button-group-input"),S=s("openwb-base-checkbox-input"),x=s("openwb-base-array-input"),w=s("openwb-base-heading"),m=s("openwb-base-alert"),$=s("sortable-list"),V=s("openwb-base-submit-buttons");return T(),E("div",k,[p("form",O,[o(i,{title:"Einfache Eingabefelder"},{default:a(()=>[o(u,{title:"1. Text","model-value":e.$store.state.examples.text1,"onUpdate:modelValue":t[0]||(t[0]=l=>e.updateState("text1",l))},{help:a(()=>[n("Einfacher Text")]),_:1},8,["model-value"]),o(u,{title:"2. Text (E-Mail)",subtype:"email","model-value":e.$store.state.examples.text2,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateState("text2",l))},{help:a(()=>[n("Eingabefeld für E-Mailadressen")]),_:1},8,["model-value"]),o(u,{title:"3. Text (Host)",subtype:"host","model-value":e.$store.state.examples.text3,"onUpdate:modelValue":t[2]||(t[2]=l=>e.updateState("text3",l))},{help:a(()=>[n(" Eingabefeld für Hosts (IP oder Namen) ")]),_:1},8,["model-value"]),o(u,{title:"4. Text (URL)",subtype:"url","model-value":e.$store.state.examples.text4,"onUpdate:modelValue":t[3]||(t[3]=l=>e.updateState("text4",l))},{help:a(()=>[n("Eingabefeld für URLs")]),_:1},8,["model-value"]),o(u,{title:"5. Text (User)",subtype:"user","model-value":e.$store.state.examples.text5,"onUpdate:modelValue":t[4]||(t[4]=l=>e.updateState("text5",l))},{help:a(()=>[n("Eingabefeld für Benutzernamen")]),_:1},8,["model-value"]),o(u,{title:"6. Text (Time)",subtype:"time","model-value":e.$store.state.examples.text6,"onUpdate:modelValue":t[5]||(t[5]=l=>e.updateState("text6",l))},{help:a(()=>[n("Eingabefeld für Zeiten")]),_:1},8,["model-value"]),o(u,{title:"7. Text (Date)",subtype:"date","model-value":e.$store.state.examples.text7,"onUpdate:modelValue":t[6]||(t[6]=l=>e.updateState("text7",l))},{help:a(()=>[n("Eingabefeld für ein Datum")]),_:1},8,["model-value"]),Z,o(d,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":e.$store.state.examples.number1,"onUpdate:modelValue":t[7]||(t[7]=l=>e.updateState("number1",l))},{help:a(()=>[n("Zahl mit Einheit")]),_:1},8,["model-value"]),o(d,{title:"2. Zahl",min:10,max:32,step:2,"model-value":e.$store.state.examples.number2,"onUpdate:modelValue":t[8]||(t[8]=l=>e.updateState("number2",l))},{help:a(()=>[n("Eingabefeld für Zahlen ohne Einheit")]),_:1},8,["model-value"]),o(u,{title:"1. Passwort",subtype:"password","model-value":e.$store.state.examples.password1,"onUpdate:modelValue":t[9]||(t[9]=l=>e.updateState("password1",l))},{help:a(()=>[n(" Das Passwort kann per Klick auf das Auge angezeigt werden. ")]),_:1},8,["model-value"]),j,o(f,{title:"1. Textarea",maxlength:"50","model-value":e.$store.state.examples.textarea1,"onUpdate:modelValue":t[10]||(t[10]=l=>e.updateState("textarea1",l))},{help:a(()=>[n(" Textarea mit maximaler Länge von 50 Zeichen. ")]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:a(()=>[o(r,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":e.$store.state.examples.range1,"onUpdate:modelValue":t[11]||(t[11]=l=>e.updateState("range1",l))},{help:a(()=>[n("Range ohne spezielle Labels")]),_:1},8,["model-value"]),o(r,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":e.$store.state.examples.range2,"onUpdate:modelValue":t[12]||(t[12]=l=>e.updateState("range2",l))},{help:a(()=>[n("Range mit speziellen Labels")]),_:1},8,["model-value"]),L,o(b,{title:"1. Select",notSelected:"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":e.$store.state.examples.select1,"onUpdate:modelValue":t[13]||(t[13]=l=>e.updateState("select1",l))},{help:a(()=>[n("Select mit einfachen Optionen")]),_:1},8,["model-value"]),o(b,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"model-value":e.$store.state.examples.select2,"onUpdate:modelValue":t[14]||(t[14]=l=>e.updateState("select2",l))},{help:a(()=>[n("Select mit Gruppen")]),_:1},8,["groups","model-value"]),J,o(g,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":e.$store.state.examples.buttonGroup1,"onUpdate:modelValue":t[15]||(t[15]=l=>e.updateState("buttonGroup1",l))},{help:a(()=>[n("Hilfetext")]),_:1},8,["model-value"]),D,o(S,{title:"1. Checkbox","model-value":e.$store.state.examples.checkbox1,"onUpdate:modelValue":t[16]||(t[16]=l=>e.updateState("checkbox1",l))},{help:a(()=>[n("Hilfetext")]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:a(()=>[o(u,{title:"JSON 1",subtype:"json","model-value":e.$store.state.examples.json1,"onUpdate:modelValue":t[17]||(t[17]=l=>e.updateState("json1",l))},{help:a(()=>[n("JSON Objekt")]),_:1},8,["model-value"]),o(u,{title:"JSON 1 Text","model-value":e.$store.state.examples.json1.text,"onUpdate:modelValue":t[18]||(t[18]=l=>e.updateState("json1",l,"text"))},{help:a(()=>[n("Text im JSON Objekt")]),_:1},8,["model-value"]),o(d,{title:"JSON 1 Zahl","model-value":e.$store.state.examples.json1.number,"onUpdate:modelValue":t[19]||(t[19]=l=>e.updateState("json1",l,"number"))},{help:a(()=>[n("Zahl im JSON Objekt")]),_:1},8,["model-value"]),o(x,{title:"Tag Array","model-value":e.$store.state.examples.tags,"onUpdate:modelValue":t[20]||(t[20]=l=>e.updateState("tags",l))},{help:a(()=>[p("pre",null,v(JSON.stringify(e.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:a(()=>[z]),default:a(()=>[o(w,null,{help:a(()=>[n(" Es sind auch Hilfetexte im #help Slot möglich. ")]),default:a(()=>[n(" Das ist eine Überschrift ")]),_:1}),o(m,null,{default:a(()=>[n(" Meldung ohne speziellen Subtype. ")]),_:1}),o(m,{subtype:"info"},{default:a(()=>[n("Infomeldung")]),_:1}),o(m,{subtype:"warning"},{default:a(()=>[n("Warnmeldung")]),_:1}),o(m,{subtype:"danger"},{default:a(()=>[n(" Fehlermeldung ")]),_:1})]),_:1}),o(i,{title:"Listen"},{default:a(()=>[_(" ToDo: Fix: nested lists bypass store commits! "),o($,{title:"Liste 1",modelValue:e.$store.state.examples.hierarchy1,"onUpdate:modelValue":t[21]||(t[21]=l=>e.$store.state.examples.hierarchy1=l),labels:e.$store.state.examples.hierarchy1Labels},{help:a(()=>[p("pre",null,v(JSON.stringify(e.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(V,{formName:"testingStoreForm",onSave:t[22]||(t[22]=l=>e.$emit("save")),onReset:t[23]||(t[23]=l=>e.$emit("reset")),onDefaults:t[24]||(t[24]=l=>e.$emit("defaults"))})])])}const Q=U(N,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default};
+import{C as h}from"./index-bc47a901.js";import{S as y}from"./OpenwbSortableList-657056f9.js";import{_ as U,p as s,k as T,l as E,q as p,A as o,L as a,u as n,x as v,z as _}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const N={name:"OpenwbTestingStore",mixins:[h],components:{SortableList:y},data(){return{mqttTopicsToSubscribe:[]}}},k={class:"testingStore"},O={name:"testingStoreForm"},Z=p("hr",null,null,-1),j=p("hr",null,null,-1),L=p("hr",null,null,-1),J=p("hr",null,null,-1),D=p("hr",null,null,-1),z=p("span",{style:{"text-decoration":"underline","font-style":"italic"}},[n(" Styled "),p("span",{style:{"font-weight":"initial"}},"Header"),n(" Slot ")],-1);function B(e,t,G,R,A,C){const u=s("openwb-base-text-input"),d=s("openwb-base-number-input"),f=s("openwb-base-textarea"),i=s("openwb-base-card"),r=s("openwb-base-range-input"),b=s("openwb-base-select-input"),g=s("openwb-base-button-group-input"),S=s("openwb-base-checkbox-input"),x=s("openwb-base-array-input"),w=s("openwb-base-heading"),m=s("openwb-base-alert"),$=s("sortable-list"),V=s("openwb-base-submit-buttons");return T(),E("div",k,[p("form",O,[o(i,{title:"Einfache Eingabefelder"},{default:a(()=>[o(u,{title:"1. Text","model-value":e.$store.state.examples.text1,"onUpdate:modelValue":t[0]||(t[0]=l=>e.updateState("text1",l))},{help:a(()=>[n("Einfacher Text")]),_:1},8,["model-value"]),o(u,{title:"2. Text (E-Mail)",subtype:"email","model-value":e.$store.state.examples.text2,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateState("text2",l))},{help:a(()=>[n("Eingabefeld für E-Mailadressen")]),_:1},8,["model-value"]),o(u,{title:"3. Text (Host)",subtype:"host","model-value":e.$store.state.examples.text3,"onUpdate:modelValue":t[2]||(t[2]=l=>e.updateState("text3",l))},{help:a(()=>[n(" Eingabefeld für Hosts (IP oder Namen) ")]),_:1},8,["model-value"]),o(u,{title:"4. Text (URL)",subtype:"url","model-value":e.$store.state.examples.text4,"onUpdate:modelValue":t[3]||(t[3]=l=>e.updateState("text4",l))},{help:a(()=>[n("Eingabefeld für URLs")]),_:1},8,["model-value"]),o(u,{title:"5. Text (User)",subtype:"user","model-value":e.$store.state.examples.text5,"onUpdate:modelValue":t[4]||(t[4]=l=>e.updateState("text5",l))},{help:a(()=>[n("Eingabefeld für Benutzernamen")]),_:1},8,["model-value"]),o(u,{title:"6. Text (Time)",subtype:"time","model-value":e.$store.state.examples.text6,"onUpdate:modelValue":t[5]||(t[5]=l=>e.updateState("text6",l))},{help:a(()=>[n("Eingabefeld für Zeiten")]),_:1},8,["model-value"]),o(u,{title:"7. Text (Date)",subtype:"date","model-value":e.$store.state.examples.text7,"onUpdate:modelValue":t[6]||(t[6]=l=>e.updateState("text7",l))},{help:a(()=>[n("Eingabefeld für ein Datum")]),_:1},8,["model-value"]),Z,o(d,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":e.$store.state.examples.number1,"onUpdate:modelValue":t[7]||(t[7]=l=>e.updateState("number1",l))},{help:a(()=>[n("Zahl mit Einheit")]),_:1},8,["model-value"]),o(d,{title:"2. Zahl",min:10,max:32,step:2,"model-value":e.$store.state.examples.number2,"onUpdate:modelValue":t[8]||(t[8]=l=>e.updateState("number2",l))},{help:a(()=>[n("Eingabefeld für Zahlen ohne Einheit")]),_:1},8,["model-value"]),o(u,{title:"1. Passwort",subtype:"password","model-value":e.$store.state.examples.password1,"onUpdate:modelValue":t[9]||(t[9]=l=>e.updateState("password1",l))},{help:a(()=>[n(" Das Passwort kann per Klick auf das Auge angezeigt werden. ")]),_:1},8,["model-value"]),j,o(f,{title:"1. Textarea",maxlength:"50","model-value":e.$store.state.examples.textarea1,"onUpdate:modelValue":t[10]||(t[10]=l=>e.updateState("textarea1",l))},{help:a(()=>[n(" Textarea mit maximaler Länge von 50 Zeichen. ")]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:a(()=>[o(r,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":e.$store.state.examples.range1,"onUpdate:modelValue":t[11]||(t[11]=l=>e.updateState("range1",l))},{help:a(()=>[n("Range ohne spezielle Labels")]),_:1},8,["model-value"]),o(r,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":e.$store.state.examples.range2,"onUpdate:modelValue":t[12]||(t[12]=l=>e.updateState("range2",l))},{help:a(()=>[n("Range mit speziellen Labels")]),_:1},8,["model-value"]),L,o(b,{title:"1. Select",notSelected:"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":e.$store.state.examples.select1,"onUpdate:modelValue":t[13]||(t[13]=l=>e.updateState("select1",l))},{help:a(()=>[n("Select mit einfachen Optionen")]),_:1},8,["model-value"]),o(b,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"model-value":e.$store.state.examples.select2,"onUpdate:modelValue":t[14]||(t[14]=l=>e.updateState("select2",l))},{help:a(()=>[n("Select mit Gruppen")]),_:1},8,["groups","model-value"]),J,o(g,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":e.$store.state.examples.buttonGroup1,"onUpdate:modelValue":t[15]||(t[15]=l=>e.updateState("buttonGroup1",l))},{help:a(()=>[n("Hilfetext")]),_:1},8,["model-value"]),D,o(S,{title:"1. Checkbox","model-value":e.$store.state.examples.checkbox1,"onUpdate:modelValue":t[16]||(t[16]=l=>e.updateState("checkbox1",l))},{help:a(()=>[n("Hilfetext")]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:a(()=>[o(u,{title:"JSON 1",subtype:"json","model-value":e.$store.state.examples.json1,"onUpdate:modelValue":t[17]||(t[17]=l=>e.updateState("json1",l))},{help:a(()=>[n("JSON Objekt")]),_:1},8,["model-value"]),o(u,{title:"JSON 1 Text","model-value":e.$store.state.examples.json1.text,"onUpdate:modelValue":t[18]||(t[18]=l=>e.updateState("json1",l,"text"))},{help:a(()=>[n("Text im JSON Objekt")]),_:1},8,["model-value"]),o(d,{title:"JSON 1 Zahl","model-value":e.$store.state.examples.json1.number,"onUpdate:modelValue":t[19]||(t[19]=l=>e.updateState("json1",l,"number"))},{help:a(()=>[n("Zahl im JSON Objekt")]),_:1},8,["model-value"]),o(x,{title:"Tag Array","model-value":e.$store.state.examples.tags,"onUpdate:modelValue":t[20]||(t[20]=l=>e.updateState("tags",l))},{help:a(()=>[p("pre",null,v(JSON.stringify(e.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:a(()=>[z]),default:a(()=>[o(w,null,{help:a(()=>[n(" Es sind auch Hilfetexte im #help Slot möglich. ")]),default:a(()=>[n(" Das ist eine Überschrift ")]),_:1}),o(m,null,{default:a(()=>[n(" Meldung ohne speziellen Subtype. ")]),_:1}),o(m,{subtype:"info"},{default:a(()=>[n("Infomeldung")]),_:1}),o(m,{subtype:"warning"},{default:a(()=>[n("Warnmeldung")]),_:1}),o(m,{subtype:"danger"},{default:a(()=>[n(" Fehlermeldung ")]),_:1})]),_:1}),o(i,{title:"Listen"},{default:a(()=>[_(" ToDo: Fix: nested lists bypass store commits! "),o($,{title:"Liste 1",modelValue:e.$store.state.examples.hierarchy1,"onUpdate:modelValue":t[21]||(t[21]=l=>e.$store.state.examples.hierarchy1=l),labels:e.$store.state.examples.hierarchy1Labels},{help:a(()=>[p("pre",null,v(JSON.stringify(e.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(V,{formName:"testingStoreForm",onSave:t[22]||(t[22]=l=>e.$emit("save")),onReset:t[23]||(t[23]=l=>e.$emit("reset")),onDefaults:t[24]||(t[24]=l=>e.$emit("defaults"))})])])}const Q=U(N,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default};
diff --git a/web/settings/assets/TimeChargeConfig-551a0160.js b/web/settings/assets/TimeChargeConfig-fc69b7f9.js
similarity index 84%
rename from web/settings/assets/TimeChargeConfig-551a0160.js
rename to web/settings/assets/TimeChargeConfig-fc69b7f9.js
index 70d27b1205..826db981fe 100644
--- a/web/settings/assets/TimeChargeConfig-551a0160.js
+++ b/web/settings/assets/TimeChargeConfig-fc69b7f9.js
@@ -1 +1 @@
-import{C as l}from"./index-2a1b0c80.js";import{_,p as o,k as a,l as i,q as b,A as s,L as r,u as m}from"./vendor-20bb207d.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"OpenwbTimeChargeConfig",mixins:[l],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/time_charging/phases_to_use"]}}},c={class:"timeChargeConfig"},f={name:"timeChargeConfigForm"},v={key:0},C={key:1};function w(t,e,$,B,k,V){const u=o("openwb-base-alert"),p=o("openwb-base-button-group-input"),g=o("openwb-base-card"),d=o("openwb-base-submit-buttons");return a(),i("div",c,[b("form",f,[s(g,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(u,{subtype:"info"},{default:r(()=>[m(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",C,[s(p,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/time_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/time_charging/phases_to_use",n))},{help:r(()=>[m(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zeitladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),s(d,{formName:"timeChargeConfigForm",onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})])])}const N=_(h,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TimeChargeConfig.vue"]]);export{N as default};
+import{C as l}from"./index-bc47a901.js";import{_,p as o,k as a,l as i,q as b,A as s,L as r,u as m}from"./vendor-94ac8c48.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"OpenwbTimeChargeConfig",mixins:[l],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/time_charging/phases_to_use"]}}},c={class:"timeChargeConfig"},f={name:"timeChargeConfigForm"},v={key:0},C={key:1};function w(t,e,$,B,k,V){const u=o("openwb-base-alert"),p=o("openwb-base-button-group-input"),g=o("openwb-base-card"),d=o("openwb-base-submit-buttons");return a(),i("div",c,[b("form",f,[s(g,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(u,{subtype:"info"},{default:r(()=>[m(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",C,[s(p,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/time_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/time_charging/phases_to_use",n))},{help:r(()=>[m(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zeitladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),s(d,{formName:"timeChargeConfigForm",onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})])])}const N=_(h,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TimeChargeConfig.vue"]]);export{N as default};
diff --git a/web/settings/assets/VehicleConfig-939fd0ba.js b/web/settings/assets/VehicleConfig-939fd0ba.js
deleted file mode 100644
index 0e579569dd..0000000000
--- a/web/settings/assets/VehicleConfig-939fd0ba.js
+++ /dev/null
@@ -1 +0,0 @@
-import{l as $,d as H,S as j,A as J,T as G,U as Q,z as X,K as Y,X as K,I as ee,V as te,Y as ae,F as ne,W as le}from"./vendor-fortawesome-838df0c9.js";import{_ as S,C as ie}from"./index-2a1b0c80.js";import{_ as oe}from"./dynamic-import-helper-be004503.js";import{_ as D,p as V,k as r,l as g,A as a,L as n,u as l,x as k,q as c,a0 as de,y as b,a1 as re,z as s,G as B,I as A,a2 as M,n as I,Q as ue,R as se}from"./vendor-20bb207d.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";import"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";const me={name:"VehicleConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{default:void 0},vehicleType:String},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},ce={class:"vehicle-fallback"};function he(e,o,p,E,v,m){const W=V("openwb-base-alert"),f=V("openwb-base-textarea");return r(),g("div",ce,[a(W,{subtype:"warning"},{default:n(()=>[l(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+k(p.vehicleType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":p.configuration,"onUpdate:modelValue":o[0]||(o[0]=z=>m.updateConfiguration(z,"configuration"))},{help:n(()=>[l(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),a(W,{subtype:"info"},{default:n(()=>[c("pre",null,k(JSON.stringify(p.configuration,void 0,2)),1)]),_:1})])}const ge=D(me,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]),pe={name:"OpenwbVehicleProxy",emits:["update:configuration"],props:{vehicleId:{required:!0},vehicleType:{type:String,required:!0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading vehicle: ${this.vehicleType}`),de({loader:()=>oe(Object.assign({"./bmw/vehicle.vue":()=>S(()=>import("./vehicle-11ffdccd.js"),["assets/vehicle-11ffdccd.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./evnotify/vehicle.vue":()=>S(()=>import("./vehicle-82a4990a.js"),["assets/vehicle-82a4990a.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./http/vehicle.vue":()=>S(()=>import("./vehicle-344c6660.js"),["assets/vehicle-344c6660.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./kia/vehicle.vue":()=>S(()=>import("./vehicle-0ea9ae58.js"),["assets/vehicle-0ea9ae58.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./manual/vehicle.vue":()=>S(()=>import("./vehicle-0e30b50e.js"),["assets/vehicle-0e30b50e.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./mercedeseq/vehicle.vue":()=>S(()=>import("./vehicle-ebf7e590.js"),["assets/vehicle-ebf7e590.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./mqtt/vehicle.vue":()=>S(()=>import("./vehicle-8cbf750d.js"),["assets/vehicle-8cbf750d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./psa/vehicle.vue":()=>S(()=>import("./vehicle-34ce6cc8.js"),["assets/vehicle-34ce6cc8.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./renault/vehicle.vue":()=>S(()=>import("./vehicle-c74f02d0.js"),["assets/vehicle-c74f02d0.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./skodaconnect/vehicle.vue":()=>S(()=>import("./vehicle-ef079f93.js"),["assets/vehicle-ef079f93.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./smarteq/vehicle.vue":()=>S(()=>import("./vehicle-cbd74ad8.js"),["assets/vehicle-cbd74ad8.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"]),"./tesla/vehicle.vue":()=>S(()=>import("./vehicle-1c4a57cd.js"),["assets/vehicle-1c4a57cd.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-axios-13ef03ae.js","assets/index-2a1b0c80.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/index-27f04b3e.css"]),"./vwid/vehicle.vue":()=>S(()=>import("./vehicle-677f2094.js"),["assets/vehicle-677f2094.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css"])}),`./${this.vehicleType}/vehicle.vue`),errorComponent:ge})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function fe(e,o,p,E,v,m){return r(),b(re(m.myComponent),{configuration:p.configuration,vehicleId:p.vehicleId,vehicleType:p.vehicleType,"onUpdate:configuration":o[0]||(o[0]=W=>m.updateConfiguration(W))},null,40,["configuration","vehicleId","vehicleType"])}const be=D(pe,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);$.add(H,j,J,G,Q,X,Y,K,ee,te,ae);const ve={name:"OpenwbVehicleConfig",mixins:[ie],emits:["sendCommand"],components:{FontAwesomeIcon:ne,FontAwesomeLayers:le,OpenwbVehicleProxy:be},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/config","openWB/vehicle/+/soc_module/interval_config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0,showChargeTemplateSchedulePlanModal:!1,modalChargeTemplateSchedulePlanIndex:void 0,showChargeTemplateTimeChargingPlanModal:!1,modalChargeTemplateTimeChargingPlanIndex:void 0}},computed:{vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let e=[];return Object.keys(this.evTemplates).forEach(o=>{let p=parseInt(o.match(/([0-9]+)$/g)[0]),E=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+p].name;e.push({value:p,text:E})}),e}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let e=[];return Object.keys(this.chargeTemplates).forEach(o=>{let p=parseInt(o.match(/([0-9]+)$/g)[0]),E=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+p].name;e.push({value:p,text:E})}),e}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{getChargeTemplateScheduledChargingPlans(e){let o=e.match(/([^/]+)$/)[0];return this.getWildcardTopics("openWB/vehicle/template/charge_template/"+o+"/chargemode/scheduled_charging/plans/+")},getChargeTemplateTimeChargingPlans(e){let o=e.match(/([^/]+)$/)[0];return this.getWildcardTopics("openWB/vehicle/template/charge_template/"+o+"/time_charging/plans/+")},addVehicle(e){e.stopPropagation(),console.info("requesting new vehicle..."),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(e,o){o.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(e,o){this.showVehicleModal=!1,o=="confirm"&&(console.info("request removal of vehicle '"+e+"'"),this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}}))},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e},getSocDefaultConfiguration(e){const o=this.socModuleList.find(p=>p.value==e);return Object.prototype.hasOwnProperty.call(o,"defaults")?{...o.defaults}:(console.warn("no default configuration found for soc type!",e),{})},updateSelectedSocModule(e,o){this.updateState("openWB/vehicle/"+e+"/soc_module/config",o,"type"),this.updateState("openWB/vehicle/"+e+"/soc_module/config",this.getSocDefaultConfiguration(o))},updateConfiguration(e,o){console.debug("updateConfiguration",e,o),this.updateState(e,o.value,o.object)},addEvTemplate(e){e.stopPropagation(),console.info("requesting new ev template..."),this.$emit("sendCommand",{command:"addEvTemplate",data:{}})},removeEvTemplateModal(e,o){o.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(e,o){this.showEvTemplateModal=!1,o=="confirm"&&(console.info("request removal of ev template '"+e+"'"),this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}}))},getEvTemplateName(e){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+e]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+e].name:"Fahrzeug-Profil "+e},addChargeTemplate(e){e.stopPropagation(),console.info("requesting new charge template..."),this.$emit("sendCommand",{command:"addChargeTemplate",data:{}})},getChargeTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},removeChargeTemplateModal(e,o){o.stopPropagation(),this.modalChargeTemplateIndex=this.getChargeTemplateIndex(e),this.showChargeTemplateModal=!0},removeChargeTemplate(e,o){this.showChargeTemplateModal=!1,o=="confirm"&&(console.info("request removal of charge template '"+e+"'"),this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}}))},getChargeTemplateName(e){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e].name:"Lade-Profil "+e},getChargeTemplateSchedulePlanName(e,o){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/chargemode/scheduled_charging/plans/"+o]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/chargemode/scheduled_charging/plans/"+o].name:"Zielladen Zeitplan "+e+"/"+o},addChargeTemplateSchedulePlan(e,o){o.stopPropagation(),console.info("requesting new charge template schedule plan...");let p=parseInt(e.match(/([^/]+)$/)[0]);this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:p}})},removeChargeTemplateSchedulePlanModal(e,o,p){p.stopPropagation(),this.modalChargeTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.modalChargeTemplateSchedulePlanIndex=parseInt(o.match(/([^/]+)$/)[0]),this.showChargeTemplateSchedulePlanModal=!0},removeChargeTemplateSchedulePlan(e,o,p){this.showChargeTemplateSchedulePlanModal=!1,p=="confirm"&&(console.info("request removal of charge template '"+e+"' schedule plan '"+o+"'"),this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:e,plan:o}}))},getChargeTemplateTimeChargingPlanName(e,o){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/time_charging/plans/"+o]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/time_charging/plans/"+o].name:"Zeitladen Zeitplan "+e+"/"+o},addChargeTemplateTimeChargingPlan(e,o){o.stopPropagation(),console.info("requesting new charge template time charging plan...");let p=parseInt(e.match(/([^/]+)$/)[0]);this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:p}})},removeChargeTemplateTimeChargingPlanModal(e,o,p){p.stopPropagation(),this.modalChargeTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.modalChargeTemplateTimeChargingPlanIndex=parseInt(o.match(/([^/]+)$/)[0]),this.showChargeTemplateTimeChargingPlanModal=!0},removeChargeTemplateTimeChargingPlan(e,o,p){this.showChargeTemplateTimeChargingPlanModal=!1,p=="confirm"&&(console.info("request removal of charge template '"+e+"' time charging plan '"+o+"'"),this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:e,plan:o}}))}}},w=e=>(ue("data-v-d7193cf0"),e=e(),se(),e),_e={class:"vehicleConfig"},we={name:"vehicleConfigForm"},Ve={key:0},ke={key:1},Ce=w(()=>c("hr",null,null,-1)),Se={key:0},ze=w(()=>c("br",null,null,-1)),Te=["innerHTML"],Ue=w(()=>c("hr",null,null,-1)),Pe=w(()=>c("br",null,null,-1)),We=w(()=>c("br",null,null,-1)),ye=w(()=>c("br",null,null,-1)),Le={key:1},Be={key:0},Ae=w(()=>c("hr",{class:"border-secondary"},null,-1)),Ee={key:0},qe={key:1},Me={key:0},Fe={key:1},xe=w(()=>c("br",null,null,-1)),De=w(()=>c("br",null,null,-1)),Ze=w(()=>c("ol",null,[c("li",null," Zielladen (Sofortladen) mit Priorität "),c("li",null,"Zielladen (Sofortladen)"),c("li",null,"Zeitladen mit Priorität"),c("li",null,"Zeitladen"),c("li",null,"Sofortladen mit Priorität"),c("li",null,"Sofortladen"),c("li",null,"PV (Min-Anteil) mit Priorität"),c("li",null,"PV (Min-Anteil)"),c("li",null,"Zielladen (PV) mit Priorität"),c("li",null,"Zielladen (PV)"),c("li",null,"PV (PV-Anteil) mit Priorität"),c("li",null,"PV (PV-Anteil)")],-1)),Ie=w(()=>c("hr",null,null,-1)),Ne=w(()=>c("hr",null,null,-1)),Oe=w(()=>c("br",null,null,-1)),Re=w(()=>c("br",null,null,-1)),$e=w(()=>c("hr",null,null,-1)),He=w(()=>c("br",null,null,-1)),je=w(()=>c("br",null,null,-1)),Je={key:0},Ge={key:1},Qe={key:2},Xe={key:3},Ye={key:4},Ke={key:4},et=w(()=>c("hr",null,null,-1)),tt={key:0},at={key:1},nt={key:2},lt={key:3},it={key:4},ot={key:4};function dt(e,o,p,E,v,m){const W=V("openwb-base-modal-dialog"),f=V("font-awesome-icon"),z=V("openwb-base-avatar"),q=V("openwb-base-alert"),T=V("openwb-base-text-input"),F=V("openwb-base-select-input"),N=V("openwb-base-array-input"),O=V("openwb-vehicle-proxy"),y=V("openwb-base-heading"),U=V("openwb-base-number-input"),_=V("openwb-base-button-group-input"),L=V("openwb-base-card"),Z=V("font-awesome-layers"),C=V("openwb-base-range-input"),R=V("openwb-base-submit-buttons");return r(),g(B,null,[s(" modal dialogs "),a(W,{show:v.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[0]||(o[0]=i=>m.removeVehicle(v.modalVehicleIndex,i))},{default:n(()=>[l(' Wollen Sie das Fahrzeug "'+k(m.getVehicleName(v.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),a(W,{show:v.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[1]||(o[1]=i=>m.removeEvTemplate(v.modalEvTemplateIndex,i))},{default:n(()=>[l(' Wollen Sie das Fahrzeug-Profil "'+k(m.getEvTemplateName(v.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),a(W,{show:v.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[2]||(o[2]=i=>m.removeChargeTemplate(v.modalChargeTemplateIndex,i))},{default:n(()=>[l(' Wollen Sie das Lade-Profil "'+k(m.getChargeTemplateName(v.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),a(W,{show:v.showChargeTemplateSchedulePlanModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[3]||(o[3]=i=>m.removeChargeTemplateSchedulePlan(v.modalChargeTemplateIndex,v.modalChargeTemplateSchedulePlanIndex,i))},{default:n(()=>[l(' Wollen Sie den Zielladen Zeitplan "'+k(m.getChargeTemplateSchedulePlanName(v.modalChargeTemplateIndex,v.modalChargeTemplateSchedulePlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),a(W,{show:v.showChargeTemplateTimeChargingPlanModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[4]||(o[4]=i=>m.removeChargeTemplateTimeChargingPlan(v.modalChargeTemplateIndex,v.modalChargeTemplateTimeChargingPlanIndex,i))},{default:n(()=>[l(' Wollen Sie den Zeitladen Zeitplan "'+k(m.getChargeTemplateTimeChargingPlanName(v.modalChargeTemplateIndex,v.modalChargeTemplateTimeChargingPlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),s(" main content "),c("div",_e,[c("form",we,[s(" vehicle card "),a(L,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:n(()=>[a(f,{"fixed-width":"",icon:["fas","car"]}),l(" Fahrzeuge ")]),actions:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),b(z,{key:0,class:"bg-success clickable",onClick:m.addVehicle},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):s("v-if",!0)]),default:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[a(q,{subtype:"info"},{default:n(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),g("div",ke,[(r(!0),g(B,null,A(m.vehicleIndexes,i=>(r(),b(L,{key:i,title:m.getVehicleName(i),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==i),subtype:"info"},M({default:n(()=>[a(T,{title:"Bezeichnung","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/name"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/name",d),disabled:i===0},M({_:2},[i===0?{name:"help",fn:n(()=>[l(" Das Standard-Fahrzeug kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),a(q,{subtype:"info"},{default:n(()=>[l(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ")]),_:1}),a(F,{title:"Fahrzeug-Profil",options:m.evTemplateList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/ev_template"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/ev_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),a(F,{title:"Lade-Profil",options:m.chargeTemplateList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/charge_template"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/charge_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),Ce,e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(r(),g("div",Se,[a(N,{title:"Zugeordnete Tags","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/tag_id"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/tag_id",d)},null,8,["model-value","onUpdate:modelValue"]),a(q,{subtype:"info"},{default:n(()=>[l(" Der/die RFID-Tag(s) müssen in dem Ladepunkt-Profil eingetragen werden, um zuzuordnen, an welchem Ladepunkt die Tags verwendet werden dürfen."),ze,c("span",{innerHTML:e.$store.state.text.rfidWiki},null,8,Te)]),_:1}),Ue])):s("v-if",!0),a(F,{class:"mb-2",title:"SoC-Modul",options:m.socModuleList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type,"onUpdate:modelValue":d=>m.updateSelectedSocModule(i,d)},{help:n(()=>[l(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro)."),Pe,l(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden."),We,l(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen."),ye,l(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ")]),_:2},1032,["options","model-value","onUpdate:modelValue"]),e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type?(r(),g("div",Le,[a(O,{vehicleId:i,vehicleType:e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type,configuration:e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].configuration,"onUpdate:configuration":d=>m.updateConfiguration("openWB/vehicle/"+i+"/soc_module/config",d)},null,8,["vehicleId","vehicleType","configuration","onUpdate:configuration"]),e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/interval_config"]?(r(),g("div",Be,[a(y,null,{help:n(()=>[l(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ")]),default:n(()=>[l(" Aktualisierung der Fahrzeugdaten ")]),_:1}),a(U,{title:"Während der Ladung",unit:"Min.","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/interval_config"].request_interval_charging,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/soc_module/interval_config",d,"request_interval_charging")},{help:n(()=>[l(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(U,{title:"Ohne laufende Ladung",unit:"Min.","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/interval_config"].request_interval_not_charging,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/soc_module/interval_config",d,"request_interval_not_charging")},{help:n(()=>[l(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/interval_config"].request_only_plugged,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/soc_module/interval_config",d,"request_only_plugged")},{help:n(()=>[l(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ')]),_:2},1032,["model-value","onUpdate:modelValue"])])):s("v-if",!0)])):s("v-if",!0)]),_:2},[i!==0?{name:"actions",fn:n(d=>[d.collapsed?s("v-if",!0):(r(),b(z,{key:0,class:"bg-danger clickable",onClick:t=>m.removeVehicleModal(i,t)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),Ae,a(y,null,{default:n(()=>[l("Profile")]),_:1}),s(" vehicle template card "),a(L,{collapsible:!0,collapsed:!0},{header:n(()=>[a(Z,{"fixed-width":"",class:"fa-lg"},{default:n(()=>[a(f,{"fixed-width":"",icon:["far","file"]}),a(f,{"fixed-width":"",icon:["fas","car"],transform:"shrink-8"})]),_:1}),l(" Fahrzeug-Profile ")]),actions:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),b(z,{key:0,class:"bg-success clickable",onClick:m.addEvTemplate},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):s("v-if",!0)]),default:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ee,[a(q,{subtype:"info"},{default:n(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),g("div",qe,[a(q,{subtype:"info"},{default:n(()=>[l(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ")]),_:1}),(r(!0),g(B,null,A(m.evTemplates,(i,d)=>(r(),b(L,{key:d,title:i.name?i.name:d,collapsible:!0,collapsed:!0},M({default:n(()=>[a(T,{title:"Bezeichnung","model-value":i.name,"onUpdate:modelValue":t=>e.updateState(d,t,"name"),disabled:d.endsWith("/0")},M({_:2},[d.endsWith("/0")?{name:"help",fn:n(()=>[l(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),a(y,null,{default:n(()=>[l(" Angaben zum Ladestrom ")]),_:1}),a(C,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":i.min_current,"onUpdate:modelValue":t=>e.updateState(d,t,"min_current")},null,8,["model-value","onUpdate:modelValue"]),a(C,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":i.max_current_single_phase,"onUpdate:modelValue":t=>e.updateState(d,t,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(C,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":i.max_current_multi_phases,"onUpdate:modelValue":t=>e.updateState(d,t,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Erlaubte Stromabweichung",step:.1,unit:"A","model-value":i.nominal_difference,"onUpdate:modelValue":t=>e.updateState(d,t,"nominal_difference")},{help:n(()=>[l(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(y,null,{default:n(()=>[l(" Angaben zur Batterie ")]),_:1}),a(U,{title:"Kapazität der Batterie",unit:"kWh",min:10,step:1,"model-value":i.battery_capacity/1e3,"onUpdate:modelValue":t=>e.updateState(d,t*1e3,"battery_capacity")},{help:n(()=>[l(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(U,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:0,step:.1,"model-value":i.average_consump/1e3,"onUpdate:modelValue":t=>e.updateState(d,t*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),a(y,null,{default:n(()=>[l(" Angaben zur Handhabung von Phasen ")]),_:1}),a(_,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":i.max_phases,"onUpdate:modelValue":t=>e.updateState(d,t,"max_phases")},{help:n(()=>[l(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) bereitstellt. Plugin-Hybride haben meist nur eine Phase, reine E-Autos meist 2 bis 3 Phasen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.control_pilot_interruption,"onUpdate:modelValue":t=>e.updateState(d,t,"control_pilot_interruption")},{help:n(()=>[l(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ')]),_:2},1032,["model-value","onUpdate:modelValue"]),i.control_pilot_interruption?(r(),b(U,{key:0,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":i.control_pilot_interruption_duration,"onUpdate:modelValue":t=>e.updateState(d,t,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):s("v-if",!0),a(_,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.prevent_phase_switch,"onUpdate:modelValue":t=>e.updateState(d,t,"prevent_phase_switch")},{help:n(()=>[l(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.prevent_charge_stop,"onUpdate:modelValue":t=>e.updateState(d,t,"prevent_charge_stop")},{help:n(()=>[l(" In den Lademodi PV- und Zielladen wird die Abschaltverzögerung ausgesetzt und nach Ladebeginn der Ladevorgang nicht unterbrochen. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach Unterbrechen der Ladung keine Ladung mehr starten. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(U,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,"model-value":i.phase_switch_pause,"onUpdate:modelValue":t=>e.updateState(d,t,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,"model-value":i.keep_charge_active_duration,"onUpdate:modelValue":t=>e.updateState(d,t,"keep_charge_active_duration")},{help:n(()=>[l(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},[d.endsWith("/0")?void 0:{name:"actions",fn:n(t=>[e.$store.state.mqtt["openWB/general/extern"]===!1&&!t.collapsed?(r(),b(z,{key:0,class:"bg-danger clickable",onClick:h=>m.removeEvTemplateModal(d,h)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):s("v-if",!0)]),key:"0"}]),1032,["title"]))),128))]))]),_:1}),s(" charge template card "),a(L,{collapsible:!0,collapsed:e.$route.params.section!="charge_template"},{header:n(()=>[a(Z,{"fixed-width":"",class:"fa-lg"},{default:n(()=>[a(f,{"fixed-width":"",icon:["far","file"]}),a(f,{"fixed-width":"",icon:["fas","plug"],transform:"shrink-8"})]),_:1}),l(" Lade-Profile ")]),actions:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),b(z,{key:0,class:"bg-success clickable",onClick:m.addChargeTemplate},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):s("v-if",!0)]),default:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Me,[a(q,{subtype:"info"},{default:n(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),g("div",Fe,[(r(!0),g(B,null,A(m.chargeTemplates,(i,d)=>(r(),b(L,{key:d,title:i.name?i.name:d,collapsible:!0,collapsed:!(e.$route.params.section=="charge_template"&&parseInt(e.$route.params.section_index)==m.getChargeTemplateIndex(d))},M({default:n(()=>[a(T,{title:"Bezeichnung","model-value":i.name,"onUpdate:modelValue":t=>e.updateState(d,t,"name"),disabled:d.endsWith("/0")},M({_:2},[d.endsWith("/0")?{name:"help",fn:n(()=>[l(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),a(y,null,{default:n(()=>[l(" Allgemeine Optionen ")]),_:1}),a(_,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofortladen",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Zielladen",class:"btn-outline-primary"},{buttonValue:"standby",text:"Standby",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":i.chargemode.selected,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.selected")},{help:n(()=>[l(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist."),xe,l(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:"),De,Ze]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.prio,"onUpdate:modelValue":t=>e.updateState(d,t,"prio")},{help:n(()=>[l(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.time_charging.active,"onUpdate:modelValue":t=>e.updateState(d,t,"time_charging.active")},{help:n(()=>[l(' Der Lademodus Zeitladen kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.disable_after_unplug,"onUpdate:modelValue":t=>e.updateState(d,t,"disable_after_unplug")},{help:n(()=>[l(" Wird ein Fahrzeug mit diesem Profil abgesteckt, dann wird der betroffene Ladepunkt automatisch deaktiviert. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.load_default,"onUpdate:modelValue":t=>e.updateState(d,t,"load_default")},{help:n(()=>[l(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Ladeprofil zurückgesetzt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),Ie,a(y,null,{default:n(()=>[l("Sofortladen")]),_:1}),a(C,{title:"Soll-Ladestrom",min:6,max:32,step:1,unit:"A","model-value":i.chargemode.instant_charging.current,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.instant_charging.current")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":i.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.instant_charging.limit.selected")},{help:n(()=>[l(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"SoC-Limit",min:5,max:100,step:5,unit:"%","model-value":i.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.instant_charging.limit.soc")},{help:n(()=>[l(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(U,{title:"Energie-Limit",unit:"kWh",min:1,max:100,step:1,"model-value":i.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":t=>e.updateState(d,t*1e3,"chargemode.instant_charging.limit.amount")},{help:n(()=>[l(" Die geladene Energiemenge wird beim Wechsel des Lademodus oder nach dem Anstecken, wenn Sofortladen schon ausgewählt ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),Ne,a(y,null,{default:n(()=>[l("PV-Laden")]),_:1}),a(C,{title:"Mindeststrom",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":i.chargemode.pv_charging.min_current,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.min_current")},{help:n(()=>[l(' Hier kann ein Mindeststrom eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"SoC-Limit",min:0,max:20,step:1,unit:"%",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95},{label:100,value:100},{label:"Aus",value:101}],"model-value":i.chargemode.pv_charging.max_soc,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.max_soc")},{help:n(()=>[l(' Bei der Einstellung "100%" wird die Ladung sofort mit Erreichen der 100% beendet. Dadurch erfolgt KEIN Balancing der Batteriezellen. Ist dies gewünscht (sollte ab und an durchgeführt werden), muss hier "Aus" gewählt werden (Schieberegler ganz nach rechts stellen), um die Ladung MIT Balancing bis zur Beendigung durch das Fahrzeug weiterlaufen zu lassen.'),Oe,l(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"Mindest-SoC",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":i.chargemode.pv_charging.min_soc,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.min_soc")},{help:n(()=>[l(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.'),Re,l(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"Mindest-SoC-Strom",min:6,max:32,step:1,unit:"A","model-value":i.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.min_soc_current")},{help:n(()=>[l(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.feed_in_limit")},{help:n(()=>[l(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ')]),_:2},1032,["model-value","onUpdate:modelValue"]),$e,a(y,null,{actions:n(()=>[a(z,{class:"bg-success clickable",onClick:t=>m.addChargeTemplateSchedulePlan(d,t)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:n(()=>[l(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.'),He,l(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit" erreicht wird.'),je,l(" Kann der Ziel-SoC bzw. die Energiemenge NICHT erreicht werden, z.B. weil das Auto zu spät angesteckt wurde oder das Lastmanagement eingegriffen hat, wird bis 20 Minuten nach dem angegebenen Termin mit der Maximalstromstärke geladen. Danach wird der Termin verworfen und mit Überschuss geladen. ")]),default:n(()=>[l(" Zielladen ")]),_:2},1024),(r(!0),g(B,null,A(m.getChargeTemplateScheduledChargingPlans(d),(t,h)=>(r(),b(L,{key:h,title:t.name,collapsible:!0,collapsed:!0},{actions:n(u=>[u.collapsed==!0?(r(),g("span",{key:0,class:I(["subheader pill",t.active?"bg-success":"bg-danger"])},[t.limit.selected=="soc"?(r(),g("span",Je,[a(f,{"fixed-width":"",icon:["fas","car-battery"]}),l(" "+k(t.limit.soc_scheduled)+"% ",1)])):s("v-if",!0),t.limit.selected=="amount"?(r(),g("span",Ge,[a(f,{"fixed-width":"",icon:["fas","bolt"]}),l(" "+k(t.limit.amount/1e3)+"kWh ",1)])):s("v-if",!0),a(f,{"fixed-width":"",icon:["fas","clock"]}),l(" "+k(t.time)+" ",1),t.frequency.selected=="once"?(r(),g("span",Qe,[a(f,{"fixed-width":"",icon:["fas","calendar-day"]}),l(" "+k(e.formatDate(t.frequency.once)),1)])):s("v-if",!0),t.frequency.selected=="daily"?(r(),g("span",Xe,[a(f,{"fixed-width":"",icon:["fas","calendar-week"]})])):s("v-if",!0),t.frequency.selected=="weekly"?(r(),g("span",Ye,[a(f,{"fixed-width":"",icon:["fas","calendar-alt"]})])):s("v-if",!0)],2)):s("v-if",!0),u.collapsed==!1?(r(),b(z,{key:1,class:"bg-danger clickable",onClick:P=>m.removeChargeTemplateSchedulePlanModal(d,h,P)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):s("v-if",!0)]),default:n(()=>[a(T,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":u=>e.updateState(h,u,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":u=>e.updateState(h,u,"active")},null,8,["model-value","onUpdate:modelValue"]),a(T,{title:"Ziel-Uhrzeit",subtype:"time","model-value":t.time,"onUpdate:modelValue":u=>e.updateState(h,u,"time")},{help:n(()=>[l(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"Ladestrom",min:6,max:32,step:1,unit:"A","model-value":t.current,"onUpdate:modelValue":u=>e.updateState(h,u,"current")},{help:n(()=>[l(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Ziel",buttons:[{buttonValue:"soc",text:"SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":t.limit.selected,"onUpdate:modelValue":u=>e.updateState(h,u,"limit.selected")},{help:n(()=>[l(" Bestimmt die Art der Grenze für den Ladevorgang. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),t.limit.selected=="soc"?(r(),b(C,{key:0,title:"Ziel-SoC",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc_scheduled,"onUpdate:modelValue":u=>e.updateState(h,u,"limit.soc_scheduled")},{help:n(()=>[l(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.limit.selected=="soc"?(r(),b(C,{key:1,title:"SoC-Limit",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc_limit,"onUpdate:modelValue":u=>e.updateState(h,u,"limit.soc_limit")},{help:n(()=>[l(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.limit.selected=="amount"?(r(),b(U,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.limit.amount/1e3,"onUpdate:modelValue":u=>e.updateState(h,u*1e3,"limit.amount")},{help:n(()=>[l(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),a(_,{title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}],"model-value":t.frequency.selected,"onUpdate:modelValue":u=>e.updateState(h,u,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(r(),b(T,{key:3,title:"Datum",subtype:"date","model-value":t.frequency.once,"onUpdate:modelValue":u=>e.updateState(h,u,"frequency.once")},null,8,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.frequency.selected=="weekly"?(r(),g("div",Ke,[(r(!0),g(B,null,A(e.weekdays,(u,P)=>(r(),b(_,{key:P,title:u,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[P],"onUpdate:modelValue":x=>e.updateState(h,x,"frequency.weekly."+P)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):s("v-if",!0)]),_:2},1032,["title"]))),128)),et,a(y,null,{actions:n(()=>[a(z,{class:"bg-success clickable",onClick:t=>m.addChargeTemplateTimeChargingPlan(d,t)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:n(()=>[l(" Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ")]),default:n(()=>[l(" Laden nach Zeitplan ")]),_:2},1024),(r(!0),g(B,null,A(m.getChargeTemplateTimeChargingPlans(d),(t,h)=>(r(),b(L,{key:h,title:t.name,collapsible:!0,collapsed:!0},{actions:n(u=>[u.collapsed==!0?(r(),g("span",{key:0,class:I(["subheader pill",t.active?"bg-success":"bg-danger"])},[t.limit.selected=="soc"?(r(),g("span",tt,[a(f,{"fixed-width":"",icon:["fas","car-battery"]}),l(" "+k(t.limit.soc)+"% ",1)])):s("v-if",!0),t.limit.selected=="amount"?(r(),g("span",at,[a(f,{"fixed-width":"",icon:["fas","bolt"]}),l(" "+k(t.limit.amount/1e3)+"kWh ",1)])):s("v-if",!0),a(f,{"fixed-width":"",icon:["fas","clock"]}),l(" "+k(t.time[0])+" - "+k(t.time[1])+" ",1),t.frequency.selected=="once"?(r(),g("span",nt,[a(f,{"fixed-width":"",icon:["fas","calendar-day"]}),l(" "+k(e.formatDate(t.frequency.once[0])==e.formatDate(t.frequency.once[1])?e.formatDate(t.frequency.once[0]):e.formatDate(t.frequency.once[0])+" - "+e.formatDate(t.frequency.once[1])),1)])):s("v-if",!0),t.frequency.selected=="daily"?(r(),g("span",lt,[a(f,{"fixed-width":"",icon:["fas","calendar-week"]})])):s("v-if",!0),t.frequency.selected=="weekly"?(r(),g("span",it,[a(f,{"fixed-width":"",icon:["fas","calendar-alt"]})])):s("v-if",!0)],2)):s("v-if",!0),u.collapsed==!1?(r(),b(z,{key:1,class:"bg-danger clickable",onClick:P=>m.removeChargeTemplateTimeChargingPlanModal(d,h,P)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):s("v-if",!0)]),default:n(()=>[a(T,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":u=>e.updateState(h,u,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":u=>e.updateState(h,u,"active")},null,8,["model-value","onUpdate:modelValue"]),a(C,{title:"Ladestrom",min:6,max:32,step:1,unit:"A","model-value":t.current,"onUpdate:modelValue":u=>e.updateState(h,u,"current")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Ziel",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":t.limit.selected,"onUpdate:modelValue":u=>e.updateState(h,u,"limit.selected")},{help:n(()=>[l(" Bestimmt die Art der Grenze für den Ladevorgang. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),t.limit.selected=="soc"?(r(),b(C,{key:0,title:"Ziel-SoC",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc,"onUpdate:modelValue":u=>e.updateState(h,u,"limit.soc")},{help:n(()=>[l(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.limit.selected=="amount"?(r(),b(U,{key:1,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.limit.amount/1e3,"onUpdate:modelValue":u=>e.updateState(h,u*1e3,"limit.amount")},{help:n(()=>[l(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),a(T,{title:"Zeitpunkt des Ladebeginns",subtype:"time","model-value":t.time[0],"onUpdate:modelValue":u=>e.updateState(h,u,"time.0")},null,8,["model-value","onUpdate:modelValue"]),a(T,{title:"Zeitpunkt des Ladeendes",subtype:"time","model-value":t.time[1],"onUpdate:modelValue":u=>e.updateState(h,u,"time.1")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}],"model-value":t.frequency.selected,"onUpdate:modelValue":u=>e.updateState(h,u,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(r(),b(T,{key:2,title:"Gültig ab",subtype:"date","model-value":t.frequency.once[0],"onUpdate:modelValue":u=>e.updateState(h,u,"frequency.once.0")},null,8,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.frequency.selected=="once"?(r(),b(T,{key:3,title:"Gültig bis",subtype:"date",min:t.frequency.once[0],"model-value":t.frequency.once[1],"onUpdate:modelValue":u=>e.updateState(h,u,"frequency.once.1")},null,8,["min","model-value","onUpdate:modelValue"])):s("v-if",!0),t.frequency.selected=="weekly"?(r(),g("div",ot,[(r(!0),g(B,null,A(e.weekdays,(u,P)=>(r(),b(_,{key:P,title:u,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[P],"onUpdate:modelValue":x=>e.updateState(h,x,"frequency.weekly."+P)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):s("v-if",!0)]),_:2},1032,["title"]))),128))]),_:2},[d.endsWith("/0")?void 0:{name:"actions",fn:n(t=>[t.collapsed?s("v-if",!0):(r(),b(z,{key:0,class:"bg-danger clickable",onClick:h=>m.removeChargeTemplateModal(d,h)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),a(R,{formName:"vehicleConfigForm",onSave:o[5]||(o[5]=i=>e.$emit("save")),onReset:o[6]||(o[6]=i=>e.$emit("reset")),onDefaults:o[7]||(o[7]=i=>e.$emit("defaults"))})])])],64)}const ft=D(ve,[["render",dt],["__scopeId","data-v-d7193cf0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]);export{ft as default};
diff --git a/web/settings/assets/VehicleConfig-f9e02415.js b/web/settings/assets/VehicleConfig-f9e02415.js
new file mode 100644
index 0000000000..16af109820
--- /dev/null
+++ b/web/settings/assets/VehicleConfig-f9e02415.js
@@ -0,0 +1 @@
+import{l as $,d as H,S as j,A as J,T as G,U as Q,z as X,K as Y,X as K,I as ee,V as te,Y as ae,F as ne,W as le}from"./vendor-fortawesome-ad83e535.js";import{_ as S,C as ie}from"./index-bc47a901.js";import{_ as oe}from"./dynamic-import-helper-be004503.js";import{_ as x,p as V,k as r,l as h,y as b,L as n,u as l,x as k,A as a,q as c,a0 as de,a1 as re,z as s,G as B,I as A,a2 as M,n as N,Q as ue,R as se}from"./vendor-94ac8c48.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";import"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";const me={name:"VehicleConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{default:void 0},vehicleType:String},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},ce={class:"vehicle-fallback"},he={key:1};function ge(e,o,g,E,v,m){const T=V("openwb-base-alert"),f=V("openwb-base-textarea");return r(),h("div",ce,[Object.keys(g.configuration).length==0?(r(),b(T,{key:0,subtype:"info"},{default:n(()=>[l(' Der Fahrzeug-Typ "'+k(g.vehicleType)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),h("div",he,[a(T,{subtype:"warning"},{default:n(()=>[l(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+k(g.vehicleType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":g.configuration,"onUpdate:modelValue":o[0]||(o[0]=z=>m.updateConfiguration(z,"configuration"))},{help:n(()=>[l(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),a(T,{subtype:"info"},{default:n(()=>[c("pre",null,k(JSON.stringify(g.configuration,void 0,2)),1)]),_:1})]))])}const pe=x(me,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]),fe={name:"OpenwbVehicleProxy",emits:["update:configuration"],props:{vehicleId:{required:!0},vehicleType:{type:String,required:!0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading vehicle: ${this.vehicleType}`),de({loader:()=>oe(Object.assign({"./bmw/vehicle.vue":()=>S(()=>import("./vehicle-c865f314.js"),["assets/vehicle-c865f314.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./evnotify/vehicle.vue":()=>S(()=>import("./vehicle-2c5d967c.js"),["assets/vehicle-2c5d967c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./http/vehicle.vue":()=>S(()=>import("./vehicle-b76d2976.js"),["assets/vehicle-b76d2976.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./kia/vehicle.vue":()=>S(()=>import("./vehicle-0247f03c.js"),["assets/vehicle-0247f03c.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./manual/vehicle.vue":()=>S(()=>import("./vehicle-189fc2cb.js"),["assets/vehicle-189fc2cb.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./mercedeseq/vehicle.vue":()=>S(()=>import("./vehicle-8bdcc244.js"),["assets/vehicle-8bdcc244.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./mqtt/vehicle.vue":()=>S(()=>import("./vehicle-6f02cb37.js"),["assets/vehicle-6f02cb37.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./psa/vehicle.vue":()=>S(()=>import("./vehicle-84dd6d0d.js"),["assets/vehicle-84dd6d0d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./renault/vehicle.vue":()=>S(()=>import("./vehicle-174df8ec.js"),["assets/vehicle-174df8ec.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./skodaconnect/vehicle.vue":()=>S(()=>import("./vehicle-316d265a.js"),["assets/vehicle-316d265a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./smarteq/vehicle.vue":()=>S(()=>import("./vehicle-0969da15.js"),["assets/vehicle-0969da15.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./tesla/vehicle.vue":()=>S(()=>import("./vehicle-b45ef3c6.js"),["assets/vehicle-b45ef3c6.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-axios-dc63434e.js","assets/index-bc47a901.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/index-27f04b3e.css"]),"./tronity/vehicle.vue":()=>S(()=>import("./vehicle-3f5d38a0.js"),["assets/vehicle-3f5d38a0.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"]),"./vwid/vehicle.vue":()=>S(()=>import("./vehicle-f74618cf.js"),["assets/vehicle-f74618cf.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css"])}),`./${this.vehicleType}/vehicle.vue`),errorComponent:pe})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function be(e,o,g,E,v,m){return r(),b(re(m.myComponent),{configuration:g.configuration,vehicleId:g.vehicleId,vehicleType:g.vehicleType,"onUpdate:configuration":o[0]||(o[0]=T=>m.updateConfiguration(T))},null,40,["configuration","vehicleId","vehicleType"])}const ve=x(fe,[["render",be],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);$.add(H,j,J,G,Q,X,Y,K,ee,te,ae);const _e={name:"OpenwbVehicleConfig",mixins:[ie],emits:["sendCommand"],components:{FontAwesomeIcon:ne,FontAwesomeLayers:le,OpenwbVehicleProxy:ve},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/config","openWB/vehicle/+/soc_module/interval_config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0,showChargeTemplateSchedulePlanModal:!1,modalChargeTemplateSchedulePlanIndex:void 0,showChargeTemplateTimeChargingPlanModal:!1,modalChargeTemplateTimeChargingPlanIndex:void 0}},computed:{vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let e=[];return Object.keys(this.evTemplates).forEach(o=>{let g=parseInt(o.match(/([0-9]+)$/g)[0]),E=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+g].name;e.push({value:g,text:E})}),e}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let e=[];return Object.keys(this.chargeTemplates).forEach(o=>{let g=parseInt(o.match(/([0-9]+)$/g)[0]),E=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+g].name;e.push({value:g,text:E})}),e}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{getChargeTemplateScheduledChargingPlans(e){let o=e.match(/([^/]+)$/)[0];return this.getWildcardTopics("openWB/vehicle/template/charge_template/"+o+"/chargemode/scheduled_charging/plans/+")},getChargeTemplateTimeChargingPlans(e){let o=e.match(/([^/]+)$/)[0];return this.getWildcardTopics("openWB/vehicle/template/charge_template/"+o+"/time_charging/plans/+")},addVehicle(e){e.stopPropagation(),console.info("requesting new vehicle..."),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(e,o){o.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(e,o){this.showVehicleModal=!1,o=="confirm"&&(console.info("request removal of vehicle '"+e+"'"),this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}}))},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e},getSocDefaultConfiguration(e){const o=this.socModuleList.find(g=>g.value==e);return Object.prototype.hasOwnProperty.call(o,"defaults")?{...JSON.parse(JSON.stringify(o.defaults))}:(console.warn("no default configuration found for soc type!",e),{})},updateSelectedSocModule(e,o){this.updateState("openWB/vehicle/"+e+"/soc_module/config",o,"type"),this.updateState("openWB/vehicle/"+e+"/soc_module/config",this.getSocDefaultConfiguration(o))},updateConfiguration(e,o){console.debug("updateConfiguration",e,o),this.updateState(e,o.value,o.object)},addEvTemplate(e){e.stopPropagation(),console.info("requesting new ev template..."),this.$emit("sendCommand",{command:"addEvTemplate",data:{}})},removeEvTemplateModal(e,o){o.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(e,o){this.showEvTemplateModal=!1,o=="confirm"&&(console.info("request removal of ev template '"+e+"'"),this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}}))},getEvTemplateName(e){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+e]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+e].name:"Fahrzeug-Profil "+e},addChargeTemplate(e){e.stopPropagation(),console.info("requesting new charge template..."),this.$emit("sendCommand",{command:"addChargeTemplate",data:{}})},getChargeTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},removeChargeTemplateModal(e,o){o.stopPropagation(),this.modalChargeTemplateIndex=this.getChargeTemplateIndex(e),this.showChargeTemplateModal=!0},removeChargeTemplate(e,o){this.showChargeTemplateModal=!1,o=="confirm"&&(console.info("request removal of charge template '"+e+"'"),this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}}))},getChargeTemplateName(e){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e].name:"Lade-Profil "+e},getChargeTemplateSchedulePlanName(e,o){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/chargemode/scheduled_charging/plans/"+o]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/chargemode/scheduled_charging/plans/"+o].name:"Zielladen Zeitplan "+e+"/"+o},addChargeTemplateSchedulePlan(e,o){o.stopPropagation(),console.info("requesting new charge template schedule plan...");let g=parseInt(e.match(/([^/]+)$/)[0]);this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:g}})},removeChargeTemplateSchedulePlanModal(e,o,g){g.stopPropagation(),this.modalChargeTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.modalChargeTemplateSchedulePlanIndex=parseInt(o.match(/([^/]+)$/)[0]),this.showChargeTemplateSchedulePlanModal=!0},removeChargeTemplateSchedulePlan(e,o,g){this.showChargeTemplateSchedulePlanModal=!1,g=="confirm"&&(console.info("request removal of charge template '"+e+"' schedule plan '"+o+"'"),this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:e,plan:o}}))},getChargeTemplateTimeChargingPlanName(e,o){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/time_charging/plans/"+o]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/time_charging/plans/"+o].name:"Zeitladen Zeitplan "+e+"/"+o},addChargeTemplateTimeChargingPlan(e,o){o.stopPropagation(),console.info("requesting new charge template time charging plan...");let g=parseInt(e.match(/([^/]+)$/)[0]);this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:g}})},removeChargeTemplateTimeChargingPlanModal(e,o,g){g.stopPropagation(),this.modalChargeTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.modalChargeTemplateTimeChargingPlanIndex=parseInt(o.match(/([^/]+)$/)[0]),this.showChargeTemplateTimeChargingPlanModal=!0},removeChargeTemplateTimeChargingPlan(e,o,g){this.showChargeTemplateTimeChargingPlanModal=!1,g=="confirm"&&(console.info("request removal of charge template '"+e+"' time charging plan '"+o+"'"),this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:e,plan:o}}))}}},w=e=>(ue("data-v-d7193cf0"),e=e(),se(),e),we={class:"vehicleConfig"},Ve={name:"vehicleConfigForm"},ke={key:0},Ce={key:1},Se=w(()=>c("hr",null,null,-1)),ze={key:0},Te=w(()=>c("br",null,null,-1)),Ue=["innerHTML"],Pe=w(()=>c("hr",null,null,-1)),ye=w(()=>c("br",null,null,-1)),We=w(()=>c("br",null,null,-1)),Le=w(()=>c("br",null,null,-1)),Be={key:1},Ae={key:0},Ee=w(()=>c("hr",{class:"border-secondary"},null,-1)),qe={key:0},Me={key:1},Fe={key:0},De={key:1},xe=w(()=>c("br",null,null,-1)),Ze=w(()=>c("br",null,null,-1)),Ne=w(()=>c("ol",null,[c("li",null," Zielladen (Sofortladen) mit Priorität "),c("li",null,"Zielladen (Sofortladen)"),c("li",null,"Zeitladen mit Priorität"),c("li",null,"Zeitladen"),c("li",null,"Sofortladen mit Priorität"),c("li",null,"Sofortladen"),c("li",null,"PV (Min-Anteil) mit Priorität"),c("li",null,"PV (Min-Anteil)"),c("li",null,"Zielladen (PV) mit Priorität"),c("li",null,"Zielladen (PV)"),c("li",null,"PV (PV-Anteil) mit Priorität"),c("li",null,"PV (PV-Anteil)")],-1)),Ie=w(()=>c("hr",null,null,-1)),Oe=w(()=>c("hr",null,null,-1)),Re=w(()=>c("br",null,null,-1)),$e=w(()=>c("br",null,null,-1)),He=w(()=>c("hr",null,null,-1)),je=w(()=>c("br",null,null,-1)),Je=w(()=>c("br",null,null,-1)),Ge={key:0},Qe={key:1},Xe={key:2},Ye={key:3},Ke={key:4},et={key:4},tt=w(()=>c("hr",null,null,-1)),at={key:0},nt={key:1},lt={key:2},it={key:3},ot={key:4},dt={key:4};function rt(e,o,g,E,v,m){const T=V("openwb-base-modal-dialog"),f=V("font-awesome-icon"),z=V("openwb-base-avatar"),q=V("openwb-base-alert"),U=V("openwb-base-text-input"),F=V("openwb-base-select-input"),I=V("openwb-base-array-input"),O=V("openwb-vehicle-proxy"),W=V("openwb-base-heading"),P=V("openwb-base-number-input"),_=V("openwb-base-button-group-input"),L=V("openwb-base-card"),Z=V("font-awesome-layers"),C=V("openwb-base-range-input"),R=V("openwb-base-submit-buttons");return r(),h(B,null,[s(" modal dialogs "),a(T,{show:v.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[0]||(o[0]=i=>m.removeVehicle(v.modalVehicleIndex,i))},{default:n(()=>[l(' Wollen Sie das Fahrzeug "'+k(m.getVehicleName(v.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),a(T,{show:v.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[1]||(o[1]=i=>m.removeEvTemplate(v.modalEvTemplateIndex,i))},{default:n(()=>[l(' Wollen Sie das Fahrzeug-Profil "'+k(m.getEvTemplateName(v.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),a(T,{show:v.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[2]||(o[2]=i=>m.removeChargeTemplate(v.modalChargeTemplateIndex,i))},{default:n(()=>[l(' Wollen Sie das Lade-Profil "'+k(m.getChargeTemplateName(v.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),a(T,{show:v.showChargeTemplateSchedulePlanModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[3]||(o[3]=i=>m.removeChargeTemplateSchedulePlan(v.modalChargeTemplateIndex,v.modalChargeTemplateSchedulePlanIndex,i))},{default:n(()=>[l(' Wollen Sie den Zielladen Zeitplan "'+k(m.getChargeTemplateSchedulePlanName(v.modalChargeTemplateIndex,v.modalChargeTemplateSchedulePlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),a(T,{show:v.showChargeTemplateTimeChargingPlanModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:o[4]||(o[4]=i=>m.removeChargeTemplateTimeChargingPlan(v.modalChargeTemplateIndex,v.modalChargeTemplateTimeChargingPlanIndex,i))},{default:n(()=>[l(' Wollen Sie den Zeitladen Zeitplan "'+k(m.getChargeTemplateTimeChargingPlanName(v.modalChargeTemplateIndex,v.modalChargeTemplateTimeChargingPlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),s(" main content "),c("div",we,[c("form",Ve,[s(" vehicle card "),a(L,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:n(()=>[a(f,{"fixed-width":"",icon:["fas","car"]}),l(" Fahrzeuge ")]),actions:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),b(z,{key:0,class:"bg-success clickable",onClick:m.addVehicle},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):s("v-if",!0)]),default:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),h("div",ke,[a(q,{subtype:"info"},{default:n(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),h("div",Ce,[(r(!0),h(B,null,A(m.vehicleIndexes,i=>(r(),b(L,{key:i,title:m.getVehicleName(i),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==i),subtype:"info"},M({default:n(()=>[a(U,{title:"Bezeichnung","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/name"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/name",d),disabled:i===0},M({_:2},[i===0?{name:"help",fn:n(()=>[l(" Das Standard-Fahrzeug kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),a(q,{subtype:"info"},{default:n(()=>[l(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ")]),_:1}),a(F,{title:"Fahrzeug-Profil",options:m.evTemplateList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/ev_template"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/ev_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),a(F,{title:"Lade-Profil",options:m.chargeTemplateList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/charge_template"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/charge_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),Se,e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(r(),h("div",ze,[a(I,{title:"Zugeordnete Tags","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/tag_id"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/tag_id",d)},null,8,["model-value","onUpdate:modelValue"]),a(q,{subtype:"info"},{default:n(()=>[l(" Der/die RFID-Tag(s) müssen in dem Ladepunkt-Profil eingetragen werden, um zuzuordnen, an welchem Ladepunkt die Tags verwendet werden dürfen."),Te,c("span",{innerHTML:e.$store.state.text.rfidWiki},null,8,Ue)]),_:1}),Pe])):s("v-if",!0),a(F,{class:"mb-2",title:"SoC-Modul",options:m.socModuleList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type,"onUpdate:modelValue":d=>m.updateSelectedSocModule(i,d)},{help:n(()=>[l(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro)."),ye,l(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden."),We,l(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen."),Le,l(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ")]),_:2},1032,["options","model-value","onUpdate:modelValue"]),e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type?(r(),h("div",Be,[a(O,{vehicleId:i,vehicleType:e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type,configuration:e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].configuration,"onUpdate:configuration":d=>m.updateConfiguration("openWB/vehicle/"+i+"/soc_module/config",d)},null,8,["vehicleId","vehicleType","configuration","onUpdate:configuration"]),e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/interval_config"]?(r(),h("div",Ae,[a(W,null,{help:n(()=>[l(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ")]),default:n(()=>[l(" Aktualisierung der Fahrzeugdaten ")]),_:1}),a(P,{title:"Während der Ladung",unit:"Min.","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/interval_config"].request_interval_charging,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/soc_module/interval_config",d,"request_interval_charging")},{help:n(()=>[l(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(P,{title:"Ohne laufende Ladung",unit:"Min.","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/interval_config"].request_interval_not_charging,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/soc_module/interval_config",d,"request_interval_not_charging")},{help:n(()=>[l(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/interval_config"].request_only_plugged,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+i+"/soc_module/interval_config",d,"request_only_plugged")},{help:n(()=>[l(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ')]),_:2},1032,["model-value","onUpdate:modelValue"])])):s("v-if",!0)])):s("v-if",!0)]),_:2},[i!==0?{name:"actions",fn:n(d=>[d.collapsed?s("v-if",!0):(r(),b(z,{key:0,class:"bg-danger clickable",onClick:t=>m.removeVehicleModal(i,t)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),Ee,a(W,null,{default:n(()=>[l("Profile")]),_:1}),s(" vehicle template card "),a(L,{collapsible:!0,collapsed:!0},{header:n(()=>[a(Z,{"fixed-width":"",class:"fa-lg"},{default:n(()=>[a(f,{"fixed-width":"",icon:["far","file"]}),a(f,{"fixed-width":"",icon:["fas","car"],transform:"shrink-8"})]),_:1}),l(" Fahrzeug-Profile ")]),actions:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),b(z,{key:0,class:"bg-success clickable",onClick:m.addEvTemplate},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):s("v-if",!0)]),default:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),h("div",qe,[a(q,{subtype:"info"},{default:n(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),h("div",Me,[a(q,{subtype:"info"},{default:n(()=>[l(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ")]),_:1}),(r(!0),h(B,null,A(m.evTemplates,(i,d)=>(r(),b(L,{key:d,title:i.name?i.name:d,collapsible:!0,collapsed:!0},M({default:n(()=>[a(U,{title:"Bezeichnung","model-value":i.name,"onUpdate:modelValue":t=>e.updateState(d,t,"name"),disabled:d.endsWith("/0")},M({_:2},[d.endsWith("/0")?{name:"help",fn:n(()=>[l(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),a(W,null,{default:n(()=>[l(" Angaben zum Ladestrom ")]),_:1}),a(C,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":i.min_current,"onUpdate:modelValue":t=>e.updateState(d,t,"min_current")},null,8,["model-value","onUpdate:modelValue"]),a(C,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":i.max_current_single_phase,"onUpdate:modelValue":t=>e.updateState(d,t,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(C,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":i.max_current_multi_phases,"onUpdate:modelValue":t=>e.updateState(d,t,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),a(P,{title:"Erlaubte Stromabweichung",step:.1,unit:"A","model-value":i.nominal_difference,"onUpdate:modelValue":t=>e.updateState(d,t,"nominal_difference")},{help:n(()=>[l(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(W,null,{default:n(()=>[l(" Angaben zur Batterie ")]),_:1}),a(P,{title:"Kapazität der Batterie",unit:"kWh",min:10,step:1,"model-value":i.battery_capacity/1e3,"onUpdate:modelValue":t=>e.updateState(d,t*1e3,"battery_capacity")},{help:n(()=>[l(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(P,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:0,step:.1,"model-value":i.average_consump/1e3,"onUpdate:modelValue":t=>e.updateState(d,t*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),a(W,null,{default:n(()=>[l(" Angaben zur Handhabung von Phasen ")]),_:1}),a(_,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":i.max_phases,"onUpdate:modelValue":t=>e.updateState(d,t,"max_phases")},{help:n(()=>[l(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) bereitstellt. Plugin-Hybride haben meist nur eine Phase, reine E-Autos meist 2 bis 3 Phasen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.control_pilot_interruption,"onUpdate:modelValue":t=>e.updateState(d,t,"control_pilot_interruption")},{help:n(()=>[l(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ')]),_:2},1032,["model-value","onUpdate:modelValue"]),i.control_pilot_interruption?(r(),b(P,{key:0,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":i.control_pilot_interruption_duration,"onUpdate:modelValue":t=>e.updateState(d,t,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):s("v-if",!0),a(_,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.prevent_phase_switch,"onUpdate:modelValue":t=>e.updateState(d,t,"prevent_phase_switch")},{help:n(()=>[l(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.prevent_charge_stop,"onUpdate:modelValue":t=>e.updateState(d,t,"prevent_charge_stop")},{help:n(()=>[l(" In den Lademodi PV- und Zielladen wird die Abschaltverzögerung ausgesetzt und nach Ladebeginn der Ladevorgang nicht unterbrochen. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach Unterbrechen der Ladung keine Ladung mehr starten. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(P,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,"model-value":i.phase_switch_pause,"onUpdate:modelValue":t=>e.updateState(d,t,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),a(P,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,"model-value":i.keep_charge_active_duration,"onUpdate:modelValue":t=>e.updateState(d,t,"keep_charge_active_duration")},{help:n(()=>[l(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},[d.endsWith("/0")?void 0:{name:"actions",fn:n(t=>[e.$store.state.mqtt["openWB/general/extern"]===!1&&!t.collapsed?(r(),b(z,{key:0,class:"bg-danger clickable",onClick:p=>m.removeEvTemplateModal(d,p)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):s("v-if",!0)]),key:"0"}]),1032,["title"]))),128))]))]),_:1}),s(" charge template card "),a(L,{collapsible:!0,collapsed:e.$route.params.section!="charge_template"},{header:n(()=>[a(Z,{"fixed-width":"",class:"fa-lg"},{default:n(()=>[a(f,{"fixed-width":"",icon:["far","file"]}),a(f,{"fixed-width":"",icon:["fas","plug"],transform:"shrink-8"})]),_:1}),l(" Lade-Profile ")]),actions:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),b(z,{key:0,class:"bg-success clickable",onClick:m.addChargeTemplate},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):s("v-if",!0)]),default:n(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),h("div",Fe,[a(q,{subtype:"info"},{default:n(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),h("div",De,[(r(!0),h(B,null,A(m.chargeTemplates,(i,d)=>(r(),b(L,{key:d,title:i.name?i.name:d,collapsible:!0,collapsed:!(e.$route.params.section=="charge_template"&&parseInt(e.$route.params.section_index)==m.getChargeTemplateIndex(d))},M({default:n(()=>[a(U,{title:"Bezeichnung","model-value":i.name,"onUpdate:modelValue":t=>e.updateState(d,t,"name"),disabled:d.endsWith("/0")},M({_:2},[d.endsWith("/0")?{name:"help",fn:n(()=>[l(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),a(W,null,{default:n(()=>[l(" Allgemeine Optionen ")]),_:1}),a(_,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofortladen",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Zielladen",class:"btn-outline-primary"},{buttonValue:"standby",text:"Standby",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":i.chargemode.selected,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.selected")},{help:n(()=>[l(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist."),xe,l(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:"),Ze,Ne]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.prio,"onUpdate:modelValue":t=>e.updateState(d,t,"prio")},{help:n(()=>[l(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.time_charging.active,"onUpdate:modelValue":t=>e.updateState(d,t,"time_charging.active")},{help:n(()=>[l(' Der Lademodus Zeitladen kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.disable_after_unplug,"onUpdate:modelValue":t=>e.updateState(d,t,"disable_after_unplug")},{help:n(()=>[l(" Wird ein Fahrzeug mit diesem Profil abgesteckt, dann wird der betroffene Ladepunkt automatisch deaktiviert. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.load_default,"onUpdate:modelValue":t=>e.updateState(d,t,"load_default")},{help:n(()=>[l(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Ladeprofil zurückgesetzt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),Ie,a(W,null,{default:n(()=>[l("Sofortladen")]),_:1}),a(C,{title:"Soll-Ladestrom",min:6,max:32,step:1,unit:"A","model-value":i.chargemode.instant_charging.current,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.instant_charging.current")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":i.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.instant_charging.limit.selected")},{help:n(()=>[l(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"SoC-Limit",min:5,max:100,step:5,unit:"%","model-value":i.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.instant_charging.limit.soc")},{help:n(()=>[l(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(P,{title:"Energie-Limit",unit:"kWh",min:1,max:100,step:1,"model-value":i.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":t=>e.updateState(d,t*1e3,"chargemode.instant_charging.limit.amount")},{help:n(()=>[l(" Die geladene Energiemenge wird beim Wechsel des Lademodus oder nach dem Anstecken, wenn Sofortladen schon ausgewählt ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),Oe,a(W,null,{default:n(()=>[l("PV-Laden")]),_:1}),a(C,{title:"Mindeststrom",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":i.chargemode.pv_charging.min_current,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.min_current")},{help:n(()=>[l(' Hier kann ein Mindeststrom eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"SoC-Limit",min:0,max:20,step:1,unit:"%",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95},{label:100,value:100},{label:"Aus",value:101}],"model-value":i.chargemode.pv_charging.max_soc,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.max_soc")},{help:n(()=>[l(' Bei der Einstellung "100%" wird die Ladung sofort mit Erreichen der 100% beendet. Dadurch erfolgt KEIN Balancing der Batteriezellen. Ist dies gewünscht (sollte ab und an durchgeführt werden), muss hier "Aus" gewählt werden (Schieberegler ganz nach rechts stellen), um die Ladung MIT Balancing bis zur Beendigung durch das Fahrzeug weiterlaufen zu lassen.'),Re,l(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"Mindest-SoC",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":i.chargemode.pv_charging.min_soc,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.min_soc")},{help:n(()=>[l(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.'),$e,l(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"Mindest-SoC-Strom",min:6,max:32,step:1,unit:"A","model-value":i.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.min_soc_current")},{help:n(()=>[l(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":t=>e.updateState(d,t,"chargemode.pv_charging.feed_in_limit")},{help:n(()=>[l(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ')]),_:2},1032,["model-value","onUpdate:modelValue"]),He,a(W,null,{actions:n(()=>[a(z,{class:"bg-success clickable",onClick:t=>m.addChargeTemplateSchedulePlan(d,t)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:n(()=>[l(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.'),je,l(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit" erreicht wird.'),Je,l(" Kann der Ziel-SoC bzw. die Energiemenge NICHT erreicht werden, z.B. weil das Auto zu spät angesteckt wurde oder das Lastmanagement eingegriffen hat, wird bis 20 Minuten nach dem angegebenen Termin mit der Maximalstromstärke geladen. Danach wird der Termin verworfen und mit Überschuss geladen. ")]),default:n(()=>[l(" Zielladen ")]),_:2},1024),(r(!0),h(B,null,A(m.getChargeTemplateScheduledChargingPlans(d),(t,p)=>(r(),b(L,{key:p,title:t.name,collapsible:!0,collapsed:!0},{actions:n(u=>[u.collapsed==!0?(r(),h("span",{key:0,class:N(["subheader pill",t.active?"bg-success":"bg-danger"])},[t.limit.selected=="soc"?(r(),h("span",Ge,[a(f,{"fixed-width":"",icon:["fas","car-battery"]}),l(" "+k(t.limit.soc_scheduled)+"% ",1)])):s("v-if",!0),t.limit.selected=="amount"?(r(),h("span",Qe,[a(f,{"fixed-width":"",icon:["fas","bolt"]}),l(" "+k(t.limit.amount/1e3)+"kWh ",1)])):s("v-if",!0),a(f,{"fixed-width":"",icon:["fas","clock"]}),l(" "+k(t.time)+" ",1),t.frequency.selected=="once"?(r(),h("span",Xe,[a(f,{"fixed-width":"",icon:["fas","calendar-day"]}),l(" "+k(e.formatDate(t.frequency.once)),1)])):s("v-if",!0),t.frequency.selected=="daily"?(r(),h("span",Ye,[a(f,{"fixed-width":"",icon:["fas","calendar-week"]})])):s("v-if",!0),t.frequency.selected=="weekly"?(r(),h("span",Ke,[a(f,{"fixed-width":"",icon:["fas","calendar-alt"]})])):s("v-if",!0)],2)):s("v-if",!0),u.collapsed==!1?(r(),b(z,{key:1,class:"bg-danger clickable",onClick:y=>m.removeChargeTemplateSchedulePlanModal(d,p,y)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):s("v-if",!0)]),default:n(()=>[a(U,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":u=>e.updateState(p,u,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":u=>e.updateState(p,u,"active")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Ziel-Uhrzeit",subtype:"time","model-value":t.time,"onUpdate:modelValue":u=>e.updateState(p,u,"time")},{help:n(()=>[l(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(C,{title:"Ladestrom",min:6,max:32,step:1,unit:"A","model-value":t.current,"onUpdate:modelValue":u=>e.updateState(p,u,"current")},{help:n(()=>[l(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),a(_,{title:"Ziel",buttons:[{buttonValue:"soc",text:"SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":t.limit.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.selected")},{help:n(()=>[l(" Bestimmt die Art der Grenze für den Ladevorgang. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),t.limit.selected=="soc"?(r(),b(C,{key:0,title:"Ziel-SoC",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc_scheduled,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc_scheduled")},{help:n(()=>[l(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.limit.selected=="soc"?(r(),b(C,{key:1,title:"SoC-Limit",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc_limit,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc_limit")},{help:n(()=>[l(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.limit.selected=="amount"?(r(),b(P,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.limit.amount/1e3,"onUpdate:modelValue":u=>e.updateState(p,u*1e3,"limit.amount")},{help:n(()=>[l(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),a(_,{title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}],"model-value":t.frequency.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(r(),b(U,{key:3,title:"Datum",subtype:"date","model-value":t.frequency.once,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once")},null,8,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.frequency.selected=="weekly"?(r(),h("div",et,[(r(!0),h(B,null,A(e.weekdays,(u,y)=>(r(),b(_,{key:y,title:u,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[y],"onUpdate:modelValue":D=>e.updateState(p,D,"frequency.weekly."+y)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):s("v-if",!0)]),_:2},1032,["title"]))),128)),tt,a(W,null,{actions:n(()=>[a(z,{class:"bg-success clickable",onClick:t=>m.addChargeTemplateTimeChargingPlan(d,t)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:n(()=>[l(" Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ")]),default:n(()=>[l(" Laden nach Zeitplan ")]),_:2},1024),(r(!0),h(B,null,A(m.getChargeTemplateTimeChargingPlans(d),(t,p)=>(r(),b(L,{key:p,title:t.name,collapsible:!0,collapsed:!0},{actions:n(u=>[u.collapsed==!0?(r(),h("span",{key:0,class:N(["subheader pill",t.active?"bg-success":"bg-danger"])},[t.limit.selected=="soc"?(r(),h("span",at,[a(f,{"fixed-width":"",icon:["fas","car-battery"]}),l(" "+k(t.limit.soc)+"% ",1)])):s("v-if",!0),t.limit.selected=="amount"?(r(),h("span",nt,[a(f,{"fixed-width":"",icon:["fas","bolt"]}),l(" "+k(t.limit.amount/1e3)+"kWh ",1)])):s("v-if",!0),a(f,{"fixed-width":"",icon:["fas","clock"]}),l(" "+k(t.time[0])+" - "+k(t.time[1])+" ",1),t.frequency.selected=="once"?(r(),h("span",lt,[a(f,{"fixed-width":"",icon:["fas","calendar-day"]}),l(" "+k(e.formatDate(t.frequency.once[0])==e.formatDate(t.frequency.once[1])?e.formatDate(t.frequency.once[0]):e.formatDate(t.frequency.once[0])+" - "+e.formatDate(t.frequency.once[1])),1)])):s("v-if",!0),t.frequency.selected=="daily"?(r(),h("span",it,[a(f,{"fixed-width":"",icon:["fas","calendar-week"]})])):s("v-if",!0),t.frequency.selected=="weekly"?(r(),h("span",ot,[a(f,{"fixed-width":"",icon:["fas","calendar-alt"]})])):s("v-if",!0)],2)):s("v-if",!0),u.collapsed==!1?(r(),b(z,{key:1,class:"bg-danger clickable",onClick:y=>m.removeChargeTemplateTimeChargingPlanModal(d,p,y)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):s("v-if",!0)]),default:n(()=>[a(U,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":u=>e.updateState(p,u,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":u=>e.updateState(p,u,"active")},null,8,["model-value","onUpdate:modelValue"]),a(C,{title:"Ladestrom",min:6,max:32,step:1,unit:"A","model-value":t.current,"onUpdate:modelValue":u=>e.updateState(p,u,"current")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Ziel",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":t.limit.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.selected")},{help:n(()=>[l(" Bestimmt die Art der Grenze für den Ladevorgang. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),t.limit.selected=="soc"?(r(),b(C,{key:0,title:"Ziel-SoC",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc")},{help:n(()=>[l(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.limit.selected=="amount"?(r(),b(P,{key:1,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.limit.amount/1e3,"onUpdate:modelValue":u=>e.updateState(p,u*1e3,"limit.amount")},{help:n(()=>[l(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):s("v-if",!0),a(U,{title:"Zeitpunkt des Ladebeginns",subtype:"time","model-value":t.time[0],"onUpdate:modelValue":u=>e.updateState(p,u,"time.0")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Zeitpunkt des Ladeendes",subtype:"time","model-value":t.time[1],"onUpdate:modelValue":u=>e.updateState(p,u,"time.1")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}],"model-value":t.frequency.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(r(),b(U,{key:2,title:"Gültig ab",subtype:"date","model-value":t.frequency.once[0],"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once.0")},null,8,["model-value","onUpdate:modelValue"])):s("v-if",!0),t.frequency.selected=="once"?(r(),b(U,{key:3,title:"Gültig bis",subtype:"date",min:t.frequency.once[0],"model-value":t.frequency.once[1],"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once.1")},null,8,["min","model-value","onUpdate:modelValue"])):s("v-if",!0),t.frequency.selected=="weekly"?(r(),h("div",dt,[(r(!0),h(B,null,A(e.weekdays,(u,y)=>(r(),b(_,{key:y,title:u,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[y],"onUpdate:modelValue":D=>e.updateState(p,D,"frequency.weekly."+y)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):s("v-if",!0)]),_:2},1032,["title"]))),128))]),_:2},[d.endsWith("/0")?void 0:{name:"actions",fn:n(t=>[t.collapsed?s("v-if",!0):(r(),b(z,{key:0,class:"bg-danger clickable",onClick:p=>m.removeChargeTemplateModal(d,p)},{default:n(()=>[a(f,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),a(R,{formName:"vehicleConfigForm",onSave:o[5]||(o[5]=i=>e.$emit("save")),onReset:o[6]||(o[6]=i=>e.$emit("reset")),onDefaults:o[7]||(o[7]=i=>e.$emit("defaults"))})])])],64)}const bt=x(_e,[["render",rt],["__scopeId","data-v-d7193cf0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]);export{bt as default};
diff --git a/web/settings/assets/backup_cloud-e0e3e868.js b/web/settings/assets/backup_cloud-e0f3013d.js
similarity index 92%
rename from web/settings/assets/backup_cloud-e0e3e868.js
rename to web/settings/assets/backup_cloud-e0f3013d.js
index e76537d187..fc2a8560b3 100644
--- a/web/settings/assets/backup_cloud-e0e3e868.js
+++ b/web/settings/assets/backup_cloud-e0f3013d.js
@@ -1 +1 @@
-import{_ as p,p as d,k as c,l as m,A as o,L as l,u as i,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"BackupCloudNextCloud",emits:["update:configuration"],props:{configuration:{type:Object,required:!0}},data(){return{}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},b={class:"backup-cloud-nextcloud"},x={class:"small"};function k(n,e,u,C,w,a){const r=d("openwb-base-heading"),s=d("openwb-base-text-input");return c(),m("div",b,[o(r,null,{default:l(()=>[i(" Einstellungen für NextCloud-Backup Cloud "),_("span",x,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(s,{title:"Cloud-URL",subtype:"host",required:"","model-value":u.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.ip_address"))},{help:l(()=>[i(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ")]),_:1},8,["model-value"]),o(s,{title:"Benutzername",subtype:"user","model-value":u.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),o(s,{title:"Passwort",subtype:"password","model-value":u.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>a.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const B=p(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{B as default};
+import{_ as p,p as d,k as c,l as m,A as o,L as l,u as i,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"BackupCloudNextCloud",emits:["update:configuration"],props:{configuration:{type:Object,required:!0}},data(){return{}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},b={class:"backup-cloud-nextcloud"},x={class:"small"};function k(n,e,u,C,w,a){const r=d("openwb-base-heading"),s=d("openwb-base-text-input");return c(),m("div",b,[o(r,null,{default:l(()=>[i(" Einstellungen für NextCloud-Backup Cloud "),_("span",x,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(s,{title:"Cloud-URL",subtype:"host",required:"","model-value":u.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.ip_address"))},{help:l(()=>[i(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ")]),_:1},8,["model-value"]),o(s,{title:"Benutzername",subtype:"user","model-value":u.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),o(s,{title:"Passwort",subtype:"password","model-value":u.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>a.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const B=p(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{B as default};
diff --git a/web/settings/assets/backup_cloud-6519f98a.js b/web/settings/assets/backup_cloud-f1ce5010.js
similarity index 96%
rename from web/settings/assets/backup_cloud-6519f98a.js
rename to web/settings/assets/backup_cloud-f1ce5010.js
index ca7ab6e8d0..022420779a 100644
--- a/web/settings/assets/backup_cloud-6519f98a.js
+++ b/web/settings/assets/backup_cloud-f1ce5010.js
@@ -1 +1 @@
-import{_ as b,p as d,k as g,l as f,A as t,L as o,u as e,q as u,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"BackupCloudOneDrive",emits:["update:configuration","sendCommand"],props:{configuration:{type:Object,required:!0}},data(){return{}},methods:{updateConfiguration(i,n=void 0){this.$emit("update:configuration",{value:i,object:n})},sendSystemCommand(i,n={}){this.$emit("sendCommand",{command:i,data:n})}}},v={class:"backup-cloud-onedrive"},k={class:"small"},w=u("br",null,null,-1),B=u("br",null,null,-1),C=u("br",null,null,-1),y=u("br",null,null,-1);function A(i,n,a,x,z,s){const c=d("openwb-base-heading"),m=d("openwb-base-alert"),r=d("openwb-base-text-input"),p=d("openwb-base-button-input");return g(),f("div",v,[t(c,null,{default:o(()=>[e(" Einstellungen für Onedrive Backup "),u("span",k,"(Modul: "+_(i.$options.name)+")",1)]),_:1}),t(m,{subtype:"info"},{default:o(()=>[e(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. "),w,e(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ")]),_:1}),t(r,{title:"Backupverzeichnis in Onedrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":a.configuration.backuppath,"onUpdate:modelValue":n[0]||(n[0]=l=>s.updateConfiguration(l,"configuration.backuppath"))},{help:o(()=>[e(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. "),B,e("Beispiel: /openWB/Backup/ ")]),_:1},8,["model-value"]),t(r,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":a.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(c,null,{default:o(()=>[e("Zugang zu Onedrive für diese openWB autorisieren")]),_:1}),t(p,{title:"1. Anmeldeanforderung erstellen",buttonText:"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:n[1]||(n[1]=l=>s.sendSystemCommand("requestMSALAuthCode",{}))},{help:o(()=>[e(" Es werden Zugangstokens für Onedrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application. "),C,e(" https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code "),y,e(" https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications ")]),_:1}),t(r,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":a.configuration.authcode},null,8,["model-value"]),t(r,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":a.configuration.authurl},{help:o(()=>[e(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ")]),_:1},8,["model-value"]),t(p,{title:"4. Token abrufen und speichern",buttonText:"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:n[2]||(n[2]=l=>s.sendSystemCommand("retrieveMSALTokens",{}))},{help:o(()=>[e(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ")]),_:1})])}const W=b(h,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{W as default};
+import{_ as b,p as d,k as g,l as f,A as t,L as o,u as e,q as u,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"BackupCloudOneDrive",emits:["update:configuration","sendCommand"],props:{configuration:{type:Object,required:!0}},data(){return{}},methods:{updateConfiguration(i,n=void 0){this.$emit("update:configuration",{value:i,object:n})},sendSystemCommand(i,n={}){this.$emit("sendCommand",{command:i,data:n})}}},v={class:"backup-cloud-onedrive"},k={class:"small"},w=u("br",null,null,-1),B=u("br",null,null,-1),C=u("br",null,null,-1),y=u("br",null,null,-1);function A(i,n,a,x,z,s){const c=d("openwb-base-heading"),m=d("openwb-base-alert"),r=d("openwb-base-text-input"),p=d("openwb-base-button-input");return g(),f("div",v,[t(c,null,{default:o(()=>[e(" Einstellungen für Onedrive Backup "),u("span",k,"(Modul: "+_(i.$options.name)+")",1)]),_:1}),t(m,{subtype:"info"},{default:o(()=>[e(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. "),w,e(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ")]),_:1}),t(r,{title:"Backupverzeichnis in Onedrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":a.configuration.backuppath,"onUpdate:modelValue":n[0]||(n[0]=l=>s.updateConfiguration(l,"configuration.backuppath"))},{help:o(()=>[e(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. "),B,e("Beispiel: /openWB/Backup/ ")]),_:1},8,["model-value"]),t(r,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":a.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(c,null,{default:o(()=>[e("Zugang zu Onedrive für diese openWB autorisieren")]),_:1}),t(p,{title:"1. Anmeldeanforderung erstellen",buttonText:"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:n[1]||(n[1]=l=>s.sendSystemCommand("requestMSALAuthCode",{}))},{help:o(()=>[e(" Es werden Zugangstokens für Onedrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application. "),C,e(" https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code "),y,e(" https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications ")]),_:1}),t(r,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":a.configuration.authcode},null,8,["model-value"]),t(r,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":a.configuration.authurl},{help:o(()=>[e(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ")]),_:1},8,["model-value"]),t(p,{title:"4. Token abrufen und speichern",buttonText:"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:n[2]||(n[2]=l=>s.sendSystemCommand("retrieveMSALTokens",{}))},{help:o(()=>[e(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ")]),_:1})])}const W=b(h,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{W as default};
diff --git a/web/settings/assets/bat-595642c8.js b/web/settings/assets/bat-12170e78.js
similarity index 86%
rename from web/settings/assets/bat-595642c8.js
rename to web/settings/assets/bat-12170e78.js
index e0d56cb380..deec001c7a 100644
--- a/web/settings/assets/bat-595642c8.js
+++ b/web/settings/assets/bat-12170e78.js
@@ -1 +1 @@
-import{_ as p,p as o,k as c,l as d,A as n,L as a,u as s,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSaxpowerBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-saxpower-bat"},m={class:"small"};function b(e,t,g,w,h,v){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return c(),d("div",f,[n(i,null,{default:a(()=>[s(" Einstellungen für Saxpower Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const $=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/bat.vue"]]);export{$ as default};
+import{_ as p,p as o,k as c,l as d,A as n,L as a,u as s,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSaxpowerBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-saxpower-bat"},m={class:"small"};function b(e,t,g,w,h,v){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return c(),d("div",f,[n(i,null,{default:a(()=>[s(" Einstellungen für Saxpower Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const $=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/bat.vue"]]);export{$ as default};
diff --git a/web/settings/assets/bat-6c62c4f0.js b/web/settings/assets/bat-180a64ef.js
similarity index 87%
rename from web/settings/assets/bat-6c62c4f0.js
rename to web/settings/assets/bat-180a64ef.js
index aeea08efa9..ecf82c57ba 100644
--- a/web/settings/assets/bat-6c62c4f0.js
+++ b/web/settings/assets/bat-180a64ef.js
@@ -1 +1 @@
-import{_ as u,p as n,k as c,l as p,A as o,L as l,u as m,q as _,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceVictronBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-victron-bat"},g={class:"small"};function h(t,e,a,w,x,i){const s=n("openwb-base-heading"),r=n("openwb-base-number-input");return c(),p("div",v,[o(s,null,{default:l(()=>[m(" Einstellungen für Victron Batteriespeicher "),_("span",g,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(r,{title:"Modbus-ID",min:1,max:255,required:"","model-value":a.configuration.modbus_id,"onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.modbus_id"))},null,8,["model-value"])])}const q=u(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/bat.vue"]]);export{q as default};
+import{_ as u,p as n,k as c,l as p,A as o,L as l,u as m,q as _,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceVictronBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-victron-bat"},g={class:"small"};function h(t,e,a,w,x,i){const s=n("openwb-base-heading"),r=n("openwb-base-number-input");return c(),p("div",v,[o(s,null,{default:l(()=>[m(" Einstellungen für Victron Batteriespeicher "),_("span",g,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(r,{title:"Modbus-ID",min:1,max:255,required:"","model-value":a.configuration.modbus_id,"onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.modbus_id"))},null,8,["model-value"])])}const q=u(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/bat.vue"]]);export{q as default};
diff --git a/web/settings/assets/bat-3af1a10a.js b/web/settings/assets/bat-212960fc.js
similarity index 94%
rename from web/settings/assets/bat-3af1a10a.js
rename to web/settings/assets/bat-212960fc.js
index 6cb034705e..fe61d44def 100644
--- a/web/settings/assets/bat-3af1a10a.js
+++ b/web/settings/assets/bat-212960fc.js
@@ -1 +1 @@
-import{_ as u,p as c,k as _,l as m,A as n,L as o,u as t,q as e,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"DeviceMqttBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(a,d=void 0){this.$emit("update:configuration",{value:a,object:d})}}},b={class:"device-mqtt-bat"},f={class:"small"},g=e("br",null,null,-1),k=e("br",null,null,-1),x=e("span",{class:"text-info"},"-123",-1),B=e("br",null,null,-1),v=e("br",null,null,-1),I=e("span",{class:"text-info"},"123.45",-1),w=e("br",null,null,-1),W=e("br",null,null,-1),z=e("span",{class:"text-info"},"123.45",-1),N=e("br",null,null,-1),T=e("br",null,null,-1),q=e("span",{class:"text-info"},"95",-1);function D(a,d,i,E,y,F){const p=c("openwb-base-heading"),s=c("openwb-base-copy-to-clipboard"),r=c("openwb-base-alert");return _(),m("div",b,[n(p,null,{default:o(()=>[t(" Einstellungen für MQTT Batteriespeicher "),e("span",f,"(Modul: "+l(a.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:o(()=>[e("ul",null,[e("li",null,[n(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/bat/"+l(i.componentId)+"/get/power",1)]),_:1}),g,t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung"),k,t(" Beispiel: "),x]),e("li",null,[n(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/bat/"+l(i.componentId)+"/get/imported",1)]),_:1}),B,t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),v,t(" Beispiel: "),I]),e("li",null,[n(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/bat/"+l(i.componentId)+"/get/exported",1)]),_:1}),w,t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),W,t(" Beispiel: "),z]),e("li",null,[n(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/bat/"+l(i.componentId)+"/get/soc",1)]),_:1}),N,t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100"),T,t(" Beispiel: "),q])])]),_:1})])}const C=u(h,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mqtt/bat.vue"]]);export{C as default};
+import{_ as u,p as c,k as _,l as m,A as n,L as o,u as t,q as e,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DeviceMqttBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(a,d=void 0){this.$emit("update:configuration",{value:a,object:d})}}},b={class:"device-mqtt-bat"},f={class:"small"},g=e("br",null,null,-1),k=e("br",null,null,-1),x=e("span",{class:"text-info"},"-123",-1),B=e("br",null,null,-1),v=e("br",null,null,-1),I=e("span",{class:"text-info"},"123.45",-1),w=e("br",null,null,-1),W=e("br",null,null,-1),z=e("span",{class:"text-info"},"123.45",-1),N=e("br",null,null,-1),T=e("br",null,null,-1),q=e("span",{class:"text-info"},"95",-1);function D(a,d,i,E,y,F){const p=c("openwb-base-heading"),s=c("openwb-base-copy-to-clipboard"),r=c("openwb-base-alert");return _(),m("div",b,[n(p,null,{default:o(()=>[t(" Einstellungen für MQTT Batteriespeicher "),e("span",f,"(Modul: "+l(a.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:o(()=>[e("ul",null,[e("li",null,[n(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/bat/"+l(i.componentId)+"/get/power",1)]),_:1}),g,t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung"),k,t(" Beispiel: "),x]),e("li",null,[n(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/bat/"+l(i.componentId)+"/get/imported",1)]),_:1}),B,t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),v,t(" Beispiel: "),I]),e("li",null,[n(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/bat/"+l(i.componentId)+"/get/exported",1)]),_:1}),w,t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),W,t(" Beispiel: "),z]),e("li",null,[n(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/bat/"+l(i.componentId)+"/get/soc",1)]),_:1}),N,t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100"),T,t(" Beispiel: "),q])])]),_:1})])}const C=u(h,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mqtt/bat.vue"]]);export{C as default};
diff --git a/web/settings/assets/bat-0e028baf.js b/web/settings/assets/bat-2f8005f2.js
similarity index 96%
rename from web/settings/assets/bat-0e028baf.js
rename to web/settings/assets/bat-2f8005f2.js
index f1414eb413..eb2fbcf9ce 100644
--- a/web/settings/assets/bat-0e028baf.js
+++ b/web/settings/assets/bat-2f8005f2.js
@@ -1 +1 @@
-import{_ as h,p as u,k as p,l as c,A as i,L as r,u as e,q as a,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceHttpBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(s,t=void 0){this.$emit("update:configuration",{value:s,object:t})}}},b={class:"device-http-bat"},f={class:"small"},v=a("br",null,null,-1),w=a("br",null,null,-1),k=a("br",null,null,-1),S=a("br",null,null,-1),x=a("br",null,null,-1),z=a("br",null,null,-1);function Z(s,t,l,L,P,o){const m=u("openwb-base-heading"),d=u("openwb-base-text-input");return p(),c("div",b,[i(m,null,{default:r(()=>[e(" Einstellungen für Http Batteriespeicher "),a("span",f,"(Modul: "+g(s.$options.name)+")",1)]),_:1}),i(d,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":l.configuration.power_path,"onUpdate:modelValue":t[0]||(t[0]=n=>o.updateConfiguration(n,"configuration.power_path"))},{help:r(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),v,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ")]),_:1},8,["model-value"]),i(d,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":l.configuration.soc_path,"onUpdate:modelValue":t[1]||(t[1]=n=>o.updateConfiguration(n,"configuration.soc_path"))},{help:r(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),w,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ")]),_:1},8,["model-value"]),i(d,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":l.configuration.imported_path,"onUpdate:modelValue":t[2]||(t[2]=n=>o.updateConfiguration(n,"configuration.imported_path"))},{help:r(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),k,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),S,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"]),i(d,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":l.configuration.exported_path,"onUpdate:modelValue":t[3]||(t[3]=n=>o.updateConfiguration(n,"configuration.exported_path"))},{help:r(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),x,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),z,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"])])}const C=h(_,[["render",Z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/http/bat.vue"]]);export{C as default};
+import{_ as h,p as u,k as p,l as c,A as i,L as r,u as e,q as a,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceHttpBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(s,t=void 0){this.$emit("update:configuration",{value:s,object:t})}}},b={class:"device-http-bat"},f={class:"small"},v=a("br",null,null,-1),w=a("br",null,null,-1),k=a("br",null,null,-1),S=a("br",null,null,-1),x=a("br",null,null,-1),z=a("br",null,null,-1);function Z(s,t,l,L,P,o){const m=u("openwb-base-heading"),d=u("openwb-base-text-input");return p(),c("div",b,[i(m,null,{default:r(()=>[e(" Einstellungen für Http Batteriespeicher "),a("span",f,"(Modul: "+g(s.$options.name)+")",1)]),_:1}),i(d,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":l.configuration.power_path,"onUpdate:modelValue":t[0]||(t[0]=n=>o.updateConfiguration(n,"configuration.power_path"))},{help:r(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),v,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ")]),_:1},8,["model-value"]),i(d,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":l.configuration.soc_path,"onUpdate:modelValue":t[1]||(t[1]=n=>o.updateConfiguration(n,"configuration.soc_path"))},{help:r(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),w,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ")]),_:1},8,["model-value"]),i(d,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":l.configuration.imported_path,"onUpdate:modelValue":t[2]||(t[2]=n=>o.updateConfiguration(n,"configuration.imported_path"))},{help:r(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),k,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),S,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"]),i(d,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":l.configuration.exported_path,"onUpdate:modelValue":t[3]||(t[3]=n=>o.updateConfiguration(n,"configuration.exported_path"))},{help:r(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),x,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),z,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"])])}const C=h(_,[["render",Z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/http/bat.vue"]]);export{C as default};
diff --git a/web/settings/assets/bat-17d0ebe7.js b/web/settings/assets/bat-3980db8f.js
similarity index 86%
rename from web/settings/assets/bat-17d0ebe7.js
rename to web/settings/assets/bat-3980db8f.js
index 2eab1a3c13..db69e69cf2 100644
--- a/web/settings/assets/bat-17d0ebe7.js
+++ b/web/settings/assets/bat-3980db8f.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as a,u as s,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceBatterXBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},b={class:"device-batterx-bat"},f={class:"small"};function m(e,t,g,h,v,B){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",b,[o(i,null,{default:a(()=>[s(" Einstellungen für BatterX Batteriespeicher "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/bat.vue"]]);export{$ as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as a,u as s,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceBatterXBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},b={class:"device-batterx-bat"},f={class:"small"};function m(e,t,g,h,v,B){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",b,[o(i,null,{default:a(()=>[s(" Einstellungen für BatterX Batteriespeicher "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/bat.vue"]]);export{$ as default};
diff --git a/web/settings/assets/bat-27edc2dc.js b/web/settings/assets/bat-3d2b7acc.js
similarity index 88%
rename from web/settings/assets/bat-27edc2dc.js
rename to web/settings/assets/bat-3d2b7acc.js
index 2c328ac44d..12b06b8e58 100644
--- a/web/settings/assets/bat-27edc2dc.js
+++ b/web/settings/assets/bat-3d2b7acc.js
@@ -1 +1 @@
-import{_ as d,p as n,k as p,l as r,A as o,L as c,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceOpenwbEvukitBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-openwb-evukit-bat"},g={class:"small"};function w(t,e,a,h,x,i){const s=n("openwb-base-heading"),u=n("openwb-base-select-input");return p(),r("div",b,[o(s,null,{default:c(()=>[_(" Einstellungen für openWB EVU-Kit Batteriespeicher "),m("span",g,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(u,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.version"))},null,8,["model-value"])])}const k=d(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_evu_kit/bat.vue"]]);export{k as default};
+import{_ as d,p as n,k as p,l as r,A as o,L as c,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceOpenwbEvukitBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-openwb-evukit-bat"},g={class:"small"};function w(t,e,a,h,x,i){const s=n("openwb-base-heading"),u=n("openwb-base-select-input");return p(),r("div",b,[o(s,null,{default:c(()=>[_(" Einstellungen für openWB EVU-Kit Batteriespeicher "),m("span",g,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(u,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.version"))},null,8,["model-value"])])}const k=d(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_evu_kit/bat.vue"]]);export{k as default};
diff --git a/web/settings/assets/bat-7500700f.js b/web/settings/assets/bat-3dbfaf1b.js
similarity index 86%
rename from web/settings/assets/bat-7500700f.js
rename to web/settings/assets/bat-3dbfaf1b.js
index 57e6ebcc73..ef094f8082 100644
--- a/web/settings/assets/bat-7500700f.js
+++ b/web/settings/assets/bat-3dbfaf1b.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSungrowBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-sungrow-bat"},m={class:"small"};function b(e,t,g,w,h,v){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Sungrow Speicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const B=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/bat.vue"]]);export{B as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSungrowBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-sungrow-bat"},m={class:"small"};function b(e,t,g,w,h,v){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Sungrow Speicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const B=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/bat.vue"]]);export{B as default};
diff --git a/web/settings/assets/bat-bbb09227.js b/web/settings/assets/bat-3e58123d.js
similarity index 88%
rename from web/settings/assets/bat-bbb09227.js
rename to web/settings/assets/bat-3e58123d.js
index 048346b8c8..2a91e5a279 100644
--- a/web/settings/assets/bat-bbb09227.js
+++ b/web/settings/assets/bat-3e58123d.js
@@ -1 +1 @@
-import{_ as d,p as n,k as p,l as r,A as o,L as c,u as _,q as m,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceOpenwbEvukitBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-openwb-batkit-bat"},g={class:"small"};function w(t,e,a,h,x,i){const s=n("openwb-base-heading"),u=n("openwb-base-select-input");return p(),r("div",v,[o(s,null,{default:c(()=>[_(" Einstellungen für openWB EVU-Kit Batteriespeicher "),m("span",g,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(u,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_bat_kit/bat.vue"]]);export{k as default};
+import{_ as d,p as n,k as p,l as r,A as o,L as c,u as _,q as m,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceOpenwbEvukitBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-openwb-batkit-bat"},g={class:"small"};function w(t,e,a,h,x,i){const s=n("openwb-base-heading"),u=n("openwb-base-select-input");return p(),r("div",v,[o(s,null,{default:c(()=>[_(" Einstellungen für openWB EVU-Kit Batteriespeicher "),m("span",g,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(u,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_bat_kit/bat.vue"]]);export{k as default};
diff --git a/web/settings/assets/bat-d04d3f5b.js b/web/settings/assets/bat-4320b5cc.js
similarity index 85%
rename from web/settings/assets/bat-d04d3f5b.js
rename to web/settings/assets/bat-4320b5cc.js
index 6e7bf64c51..369fb80979 100644
--- a/web/settings/assets/bat-d04d3f5b.js
+++ b/web/settings/assets/bat-4320b5cc.js
@@ -1 +1 @@
-import{_ as d,p as n,k as r,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceE3dcBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-e3dc-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return r(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für E3DC Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/bat.vue"]]);export{x as default};
+import{_ as d,p as n,k as r,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceE3dcBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-e3dc-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return r(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für E3DC Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-ec698ff1.js b/web/settings/assets/bat-45b559ec.js
similarity index 93%
rename from web/settings/assets/bat-ec698ff1.js
rename to web/settings/assets/bat-45b559ec.js
index 92a998e72b..5a71bfd621 100644
--- a/web/settings/assets/bat-ec698ff1.js
+++ b/web/settings/assets/bat-45b559ec.js
@@ -1 +1 @@
-import{_ as r,p as n,k as p,l,A as o,L as s,u as a,q as d,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceKostalPlenticoreBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-kostalplenticore-bat"},m={class:"small"};function b(e,t,g,h,v,k){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return p(),l("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Kostal Plenticore Batteriespeicher "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_plenticore/bat.vue"]]);export{$ as default};
+import{_ as r,p as n,k as p,l,A as o,L as s,u as a,q as d,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceKostalPlenticoreBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-kostalplenticore-bat"},m={class:"small"};function b(e,t,g,h,v,k){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return p(),l("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Kostal Plenticore Batteriespeicher "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_plenticore/bat.vue"]]);export{$ as default};
diff --git a/web/settings/assets/bat-ce4aa848.js b/web/settings/assets/bat-4b5ddf83.js
similarity index 86%
rename from web/settings/assets/bat-ce4aa848.js
rename to web/settings/assets/bat-4b5ddf83.js
index 019ccae4e5..73960395ed 100644
--- a/web/settings/assets/bat-ce4aa848.js
+++ b/web/settings/assets/bat-4b5ddf83.js
@@ -1 +1 @@
-import{_ as d,p as t,k as c,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSunnyIslandBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sunnyisland-bat"},m={class:"small"};function b(e,n,g,h,v,y){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return c(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Sunny Island Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_island/bat.vue"]]);export{$ as default};
+import{_ as d,p as t,k as c,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSunnyIslandBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sunnyisland-bat"},m={class:"small"};function b(e,n,g,h,v,y){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return c(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Sunny Island Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_island/bat.vue"]]);export{$ as default};
diff --git a/web/settings/assets/bat-df8e198a.js b/web/settings/assets/bat-557284f3.js
similarity index 86%
rename from web/settings/assets/bat-df8e198a.js
rename to web/settings/assets/bat-557284f3.js
index 573eabf98d..859f6b4c1b 100644
--- a/web/settings/assets/bat-df8e198a.js
+++ b/web/settings/assets/bat-557284f3.js
@@ -1 +1 @@
-import{_ as r,p as n,k as l,l as p,A as o,L as s,u as a,q as d,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceQCelllsBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-qcells-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return l(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für QCells ESS Batteriespeicher "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const q=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/bat.vue"]]);export{q as default};
+import{_ as r,p as n,k as l,l as p,A as o,L as s,u as a,q as d,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceQCelllsBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-qcells-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return l(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für QCells ESS Batteriespeicher "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const q=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/bat.vue"]]);export{q as default};
diff --git a/web/settings/assets/bat-f963a986.js b/web/settings/assets/bat-61bcf2f8.js
similarity index 85%
rename from web/settings/assets/bat-f963a986.js
rename to web/settings/assets/bat-61bcf2f8.js
index 840a0f185b..28302202c1 100644
--- a/web/settings/assets/bat-f963a986.js
+++ b/web/settings/assets/bat-61bcf2f8.js
@@ -1 +1 @@
-import{_ as r,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceRCTBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-rct-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für RCT Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/bat.vue"]]);export{x as default};
+import{_ as r,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceRCTBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-rct-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für RCT Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-22a2eeff.js b/web/settings/assets/bat-6fcf71db.js
similarity index 86%
rename from web/settings/assets/bat-22a2eeff.js
rename to web/settings/assets/bat-6fcf71db.js
index e892c99cb4..c24006c1c6 100644
--- a/web/settings/assets/bat-22a2eeff.js
+++ b/web/settings/assets/bat-6fcf71db.js
@@ -1 +1 @@
-import{_ as d,p as n,k as c,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceStuderBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-studer-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return c(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Studer Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/bat.vue"]]);export{x as default};
+import{_ as d,p as n,k as c,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceStuderBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-studer-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return c(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Studer Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-514861df.js b/web/settings/assets/bat-80bc8859.js
similarity index 87%
rename from web/settings/assets/bat-514861df.js
rename to web/settings/assets/bat-80bc8859.js
index a3a7a1a2bc..f39ba7fd7c 100644
--- a/web/settings/assets/bat-514861df.js
+++ b/web/settings/assets/bat-80bc8859.js
@@ -1 +1 @@
-import{_ as d,p as n,k as c,l as p,A as o,L as l,u as m,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceFroniusBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-fronius-bat"},v={class:"small"};function h(t,e,a,w,x,i){const s=n("openwb-base-heading"),r=n("openwb-base-number-input");return c(),p("div",g,[o(s,null,{default:l(()=>[m(" Einstellungen für Fronius Batteriespeicher "),_("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":a.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.meter_id"))},null,8,["model-value"])])}const C=d(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/bat.vue"]]);export{C as default};
+import{_ as d,p as n,k as c,l as p,A as o,L as l,u as m,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceFroniusBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-fronius-bat"},v={class:"small"};function h(t,e,a,w,x,i){const s=n("openwb-base-heading"),r=n("openwb-base-number-input");return c(),p("div",g,[o(s,null,{default:l(()=>[m(" Einstellungen für Fronius Batteriespeicher "),_("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":a.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.meter_id"))},null,8,["model-value"])])}const C=d(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/bat.vue"]]);export{C as default};
diff --git a/web/settings/assets/bat-5b22e35d.js b/web/settings/assets/bat-815fdbb1.js
similarity index 88%
rename from web/settings/assets/bat-5b22e35d.js
rename to web/settings/assets/bat-815fdbb1.js
index 7a56796c9e..c29059d65d 100644
--- a/web/settings/assets/bat-5b22e35d.js
+++ b/web/settings/assets/bat-815fdbb1.js
@@ -1 +1 @@
-import{_ as d,p as o,k as c,l as p,A as n,L as l,u as m,q as _,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceHuaweiSmartLoggerBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},f={class:"device-huawei-smart-logger-bat"},v={class:"small"};function w(t,e,a,h,x,i){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return c(),p("div",f,[n(s,null,{default:l(()=>[m(" Einstellungen für Huawei SmartLogger Batteriespeicher "),_("span",v,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),n(r,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.modbus_id"))},null,8,["model-value"])])}const V=d(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei_smartlogger/bat.vue"]]);export{V as default};
+import{_ as d,p as o,k as c,l as p,A as n,L as l,u as m,q as _,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceHuaweiSmartLoggerBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},f={class:"device-huawei-smart-logger-bat"},v={class:"small"};function w(t,e,a,h,x,i){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return c(),p("div",f,[n(s,null,{default:l(()=>[m(" Einstellungen für Huawei SmartLogger Batteriespeicher "),_("span",v,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),n(r,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.modbus_id"))},null,8,["model-value"])])}const V=d(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei_smartlogger/bat.vue"]]);export{V as default};
diff --git a/web/settings/assets/bat-4b1f210f.js b/web/settings/assets/bat-8af3358d.js
similarity index 86%
rename from web/settings/assets/bat-4b1f210f.js
rename to web/settings/assets/bat-8af3358d.js
index 8713f83f3f..51c0da0e7a 100644
--- a/web/settings/assets/bat-4b1f210f.js
+++ b/web/settings/assets/bat-8af3358d.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as a,u as s,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolarwattBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solarwatt-bat"},m={class:"small"};function b(e,t,g,v,w,h){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für Solarwatt/My Reserve Batteriespeicher "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/bat.vue"]]);export{x as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as a,u as s,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolarwattBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solarwatt-bat"},m={class:"small"};function b(e,t,g,v,w,h){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für Solarwatt/My Reserve Batteriespeicher "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-0eeeca9c.js b/web/settings/assets/bat-904c9172.js
similarity index 85%
rename from web/settings/assets/bat-0eeeca9c.js
rename to web/settings/assets/bat-904c9172.js
index 919c115297..45e732be06 100644
--- a/web/settings/assets/bat-0eeeca9c.js
+++ b/web/settings/assets/bat-904c9172.js
@@ -1 +1 @@
-import{_ as r,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceLGBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-lg-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für LG ESS V1.0 Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/bat.vue"]]);export{x as default};
+import{_ as r,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceLGBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-lg-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für LG ESS V1.0 Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-93524d1b.js b/web/settings/assets/bat-9ff121c5.js
similarity index 86%
rename from web/settings/assets/bat-93524d1b.js
rename to web/settings/assets/bat-9ff121c5.js
index 4afcc48dd6..32f773d874 100644
--- a/web/settings/assets/bat-93524d1b.js
+++ b/web/settings/assets/bat-9ff121c5.js
@@ -1 +1 @@
-import{_ as c,p as o,k as p,l as d,A as n,L as a,u as s,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolaxBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solax-bat"},m={class:"small"};function b(e,t,g,h,v,x){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return p(),d("div",f,[n(i,null,{default:a(()=>[s(" Einstellungen für Solax Batteriespeicher "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/bat.vue"]]);export{$ as default};
+import{_ as c,p as o,k as p,l as d,A as n,L as a,u as s,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolaxBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solax-bat"},m={class:"small"};function b(e,t,g,h,v,x){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return p(),d("div",f,[n(i,null,{default:a(()=>[s(" Einstellungen für Solax Batteriespeicher "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/bat.vue"]]);export{$ as default};
diff --git a/web/settings/assets/bat-d94203e2.js b/web/settings/assets/bat-a92f022e.js
similarity index 86%
rename from web/settings/assets/bat-d94203e2.js
rename to web/settings/assets/bat-a92f022e.js
index c52e9795d4..6237fab3e0 100644
--- a/web/settings/assets/bat-d94203e2.js
+++ b/web/settings/assets/bat-a92f022e.js
@@ -1 +1 @@
-import{_ as c,p as n,k as r,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceAlphaessBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-alphaess-bat"},m={class:"small"};function b(e,t,h,g,v,w){const i=n("openwb-base-heading"),p=n("openwb-base-alert");return r(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Alpha ESS Batteriespeicher "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/bat.vue"]]);export{x as default};
+import{_ as c,p as n,k as r,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceAlphaessBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-alphaess-bat"},m={class:"small"};function b(e,t,h,g,v,w){const i=n("openwb-base-heading"),p=n("openwb-base-alert");return r(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Alpha ESS Batteriespeicher "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-3f0ca072.js b/web/settings/assets/bat-ac5ee104.js
similarity index 87%
rename from web/settings/assets/bat-3f0ca072.js
rename to web/settings/assets/bat-ac5ee104.js
index ed5cf761ec..6010f5cbb2 100644
--- a/web/settings/assets/bat-3f0ca072.js
+++ b/web/settings/assets/bat-ac5ee104.js
@@ -1 +1 @@
-import{_ as d,p as t,k as c,l as p,A as o,L as l,u as m,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceFemsBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-fems-bat"},v={class:"small"};function h(n,e,a,w,x,i){const s=t("openwb-base-heading"),r=t("openwb-base-number-input");return c(),p("div",g,[o(s,null,{default:l(()=>[m(" Einstellungen für openEMS, Fenecon FEMS, Kaco Hy-Control Batteriespeicher "),_("span",v,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(r,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":a.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.num"))},null,8,["model-value"])])}const q=d(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/bat.vue"]]);export{q as default};
+import{_ as d,p as t,k as c,l as p,A as o,L as l,u as m,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceFemsBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-fems-bat"},v={class:"small"};function h(n,e,a,w,x,i){const s=t("openwb-base-heading"),r=t("openwb-base-number-input");return c(),p("div",g,[o(s,null,{default:l(()=>[m(" Einstellungen für openEMS, Fenecon FEMS, Kaco Hy-Control Batteriespeicher "),_("span",v,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(r,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":a.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.num"))},null,8,["model-value"])])}const q=d(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/bat.vue"]]);export{q as default};
diff --git a/web/settings/assets/bat-b2de0630.js b/web/settings/assets/bat-b91f4e63.js
similarity index 90%
rename from web/settings/assets/bat-b2de0630.js
rename to web/settings/assets/bat-b91f4e63.js
index 5ad08e372b..d8cb8ea4dc 100644
--- a/web/settings/assets/bat-b2de0630.js
+++ b/web/settings/assets/bat-b91f4e63.js
@@ -1 +1 @@
-import{_ as p,p as n,k as m,l as _,A as o,L as a,u as s,q as b,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSolarmaxBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},h={class:"device-solarmax-bat"},v={class:"small"};function x(t,e,i,w,A,r){const d=n("openwb-base-heading"),u=n("openwb-base-alert"),l=n("openwb-base-number-input");return m(),_("div",h,[o(d,null,{default:a(()=>[s(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher "),b("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(u,{subtype:"info"},{default:a(()=>[s(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ")]),_:1}),o(l,{title:"Modbus ID","model-value":i.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=c=>r.updateConfiguration(c,"configuration.modbus_id"))},null,8,["model-value"])])}const E=p(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/bat.vue"]]);export{E as default};
+import{_ as p,p as n,k as m,l as _,A as o,L as a,u as s,q as b,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSolarmaxBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},h={class:"device-solarmax-bat"},v={class:"small"};function x(t,e,i,w,A,r){const d=n("openwb-base-heading"),u=n("openwb-base-alert"),l=n("openwb-base-number-input");return m(),_("div",h,[o(d,null,{default:a(()=>[s(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher "),b("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(u,{subtype:"info"},{default:a(()=>[s(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ")]),_:1}),o(l,{title:"Modbus ID","model-value":i.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=c=>r.updateConfiguration(c,"configuration.modbus_id"))},null,8,["model-value"])])}const E=p(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/bat.vue"]]);export{E as default};
diff --git a/web/settings/assets/bat-aaf46348.js b/web/settings/assets/bat-ba791935.js
similarity index 90%
rename from web/settings/assets/bat-aaf46348.js
rename to web/settings/assets/bat-ba791935.js
index d075a824d0..2903f3ec33 100644
--- a/web/settings/assets/bat-aaf46348.js
+++ b/web/settings/assets/bat-ba791935.js
@@ -1 +1 @@
-import{_ as r,p as o,k as p,l as c,A as a,L as m,u as _,q as b,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceOpenwbFlexBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-openwb-flex-bat"},x={class:"small"};function w(t,e,i,M,B,s){const u=o("openwb-base-heading"),l=o("openwb-base-select-input"),d=o("openwb-base-number-input");return p(),c("div",g,[a(u,null,{default:m(()=>[_(" Einstellungen für openWB-Flex Batteriespeicher "),b("span",x,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),a(l,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),a(d,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":i.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const C=r(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_flex/bat.vue"]]);export{C as default};
+import{_ as r,p as o,k as p,l as c,A as a,L as m,u as _,q as b,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceOpenwbFlexBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-openwb-flex-bat"},x={class:"small"};function w(t,e,i,M,B,s){const u=o("openwb-base-heading"),l=o("openwb-base-select-input"),d=o("openwb-base-number-input");return p(),c("div",g,[a(u,null,{default:m(()=>[_(" Einstellungen für openWB-Flex Batteriespeicher "),b("span",x,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),a(l,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),a(d,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":i.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const C=r(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_flex/bat.vue"]]);export{C as default};
diff --git a/web/settings/assets/bat-e8cdd332.js b/web/settings/assets/bat-cb226603.js
similarity index 86%
rename from web/settings/assets/bat-e8cdd332.js
rename to web/settings/assets/bat-cb226603.js
index 07ab66395c..97c760edad 100644
--- a/web/settings/assets/bat-e8cdd332.js
+++ b/web/settings/assets/bat-cb226603.js
@@ -1 +1 @@
-import{_ as c,p as t,k as p,l as u,A as o,L as s,u as a,q as d,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const l={name:"DeviceSunnyBoyBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},b={class:"device-sunnyboy-bat"},f={class:"small"};function m(e,n,g,y,h,v){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return p(),u("div",b,[o(i,null,{default:s(()=>[a(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher "),d("span",f,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/bat.vue"]]);export{$ as default};
+import{_ as c,p as t,k as p,l as u,A as o,L as s,u as a,q as d,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const l={name:"DeviceSunnyBoyBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},b={class:"device-sunnyboy-bat"},f={class:"small"};function m(e,n,g,y,h,v){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return p(),u("div",b,[o(i,null,{default:s(()=>[a(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher "),d("span",f,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/bat.vue"]]);export{$ as default};
diff --git a/web/settings/assets/bat-e62d7b1e.js b/web/settings/assets/bat-cbc92919.js
similarity index 86%
rename from web/settings/assets/bat-e62d7b1e.js
rename to web/settings/assets/bat-cbc92919.js
index 9f0356aaa4..3e76c6784c 100644
--- a/web/settings/assets/bat-e62d7b1e.js
+++ b/web/settings/assets/bat-cbc92919.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSiemensBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},m={class:"device-siemens-bat"},f={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für Siemens Batteriespeicher "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/bat.vue"]]);export{x as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSiemensBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},m={class:"device-siemens-bat"},f={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für Siemens Batteriespeicher "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-46c566c9.js b/web/settings/assets/bat-ccba567b.js
similarity index 86%
rename from web/settings/assets/bat-46c566c9.js
rename to web/settings/assets/bat-ccba567b.js
index 0c3051bc97..fa4a7c0253 100644
--- a/web/settings/assets/bat-46c566c9.js
+++ b/web/settings/assets/bat-ccba567b.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as a,u as s,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceHuaweiBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-huawei-bat"},m={class:"small"};function b(e,t,h,g,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für Huawei Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/bat.vue"]]);export{x as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as a,u as s,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceHuaweiBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-huawei-bat"},m={class:"small"};function b(e,t,h,g,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für Huawei Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-39b4c6ba.js b/web/settings/assets/bat-d1af67af.js
similarity index 85%
rename from web/settings/assets/bat-39b4c6ba.js
rename to web/settings/assets/bat-d1af67af.js
index b40184f075..44165f8fe1 100644
--- a/web/settings/assets/bat-39b4c6ba.js
+++ b/web/settings/assets/bat-d1af67af.js
@@ -1 +1 @@
-import{_ as r,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceBYDBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},b={class:"device-byd-bat"},f={class:"small"};function m(e,t,g,h,v,B){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return d(),p("div",b,[o(i,null,{default:s(()=>[a(" Einstellungen für BYD Batteriespeicher "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=r(_,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/bat.vue"]]);export{x as default};
+import{_ as r,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceBYDBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},b={class:"device-byd-bat"},f={class:"small"};function m(e,t,g,h,v,B){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return d(),p("div",b,[o(i,null,{default:s(()=>[a(" Einstellungen für BYD Batteriespeicher "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=r(_,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-f2ff4071.js b/web/settings/assets/bat-e1949609.js
similarity index 93%
rename from web/settings/assets/bat-f2ff4071.js
rename to web/settings/assets/bat-e1949609.js
index 40cd8acb0c..b216abc34a 100644
--- a/web/settings/assets/bat-f2ff4071.js
+++ b/web/settings/assets/bat-e1949609.js
@@ -1 +1 @@
-import{_ as u,p as t,k as c,l,A as n,L as p,u as m,q as _,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceSolarEdgeBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-solaredge-bat"},v={class:"small"};function h(o,e,a,w,x,s){const i=t("openwb-base-heading"),d=t("openwb-base-number-input");return c(),l("div",g,[n(i,null,{default:p(()=>[m(" Einstellungen für SolarEdge Batteriespeicher "),_("span",v,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),n(d,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/bat.vue"]]);export{E as default};
+import{_ as u,p as t,k as c,l,A as n,L as p,u as m,q as _,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceSolarEdgeBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-solaredge-bat"},v={class:"small"};function h(o,e,a,w,x,s){const i=t("openwb-base-heading"),d=t("openwb-base-number-input");return c(),l("div",g,[n(i,null,{default:p(()=>[m(" Einstellungen für SolarEdge Batteriespeicher "),_("span",v,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),n(d,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/bat.vue"]]);export{E as default};
diff --git a/web/settings/assets/bat-8c7d349e.js b/web/settings/assets/bat-f30697e9.js
similarity index 86%
rename from web/settings/assets/bat-8c7d349e.js
rename to web/settings/assets/bat-f30697e9.js
index 5af2d39614..e4923320df 100644
--- a/web/settings/assets/bat-8c7d349e.js
+++ b/web/settings/assets/bat-f30697e9.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as a,u as s,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSonnenbatterieBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-sonnenbatterie-bat"},b={class:"small"};function m(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für SonnenBatterie Speicher "),u("span",b,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnenbatterie/bat.vue"]]);export{x as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as a,u as s,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSonnenbatterieBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-sonnenbatterie-bat"},b={class:"small"};function m(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für SonnenBatterie Speicher "),u("span",b,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnenbatterie/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-9894d537.js b/web/settings/assets/bat-f75dd877.js
similarity index 86%
rename from web/settings/assets/bat-9894d537.js
rename to web/settings/assets/bat-f75dd877.js
index d3b68b5ff1..6d8c8c9075 100644
--- a/web/settings/assets/bat-9894d537.js
+++ b/web/settings/assets/bat-f75dd877.js
@@ -1 +1 @@
-import{_ as r,p as n,k as p,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceTeslaBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-tesla-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Tesla Batteriespeicher "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/bat.vue"]]);export{x as default};
+import{_ as r,p as n,k as p,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceTeslaBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-tesla-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Tesla Batteriespeicher "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat-268a0365.js b/web/settings/assets/bat-f9178e22.js
similarity index 94%
rename from web/settings/assets/bat-268a0365.js
rename to web/settings/assets/bat-f9178e22.js
index f05cbdfff0..4b716ad31c 100644
--- a/web/settings/assets/bat-268a0365.js
+++ b/web/settings/assets/bat-f9178e22.js
@@ -1 +1 @@
-import{_ as m,p as u,k as f,l as g,A as n,L as d,u as o,q as s,x as c}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceJsonBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(l,e=void 0){this.$emit("update:configuration",{value:l,object:e})}}},b={class:"device-json-bat"},v={class:"small"},w=s("br",null,null,-1);function h(l,e,a,j,q,i){const p=u("openwb-base-heading"),r=u("openwb-base-text-input");return f(),g("div",b,[n(p,null,{default:d(()=>[o(" Einstellungen für JSON Batteriespeicher "),s("span",v,"(Modul: "+c(l.$options.name)+")",1)]),_:1}),n(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":a.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.jq_power"))},{help:d(()=>[o(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. '),w,o(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ")]),_:1},8,["model-value"]),n(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":a.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.jq_soc"))},null,8,["model-value"]),n(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":a.configuration.jq_imported,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.jq_imported"))},{help:d(()=>[o(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"]),n(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":a.configuration.jq_exported,"onUpdate:modelValue":e[3]||(e[3]=t=>i.updateConfiguration(t,"configuration.jq_exported"))},{help:d(()=>[o(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"])])}const P=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/json/bat.vue"]]);export{P as default};
+import{_ as m,p as u,k as f,l as g,A as n,L as d,u as o,q as s,x as c}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceJsonBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(l,e=void 0){this.$emit("update:configuration",{value:l,object:e})}}},b={class:"device-json-bat"},v={class:"small"},w=s("br",null,null,-1);function h(l,e,a,j,q,i){const p=u("openwb-base-heading"),r=u("openwb-base-text-input");return f(),g("div",b,[n(p,null,{default:d(()=>[o(" Einstellungen für JSON Batteriespeicher "),s("span",v,"(Modul: "+c(l.$options.name)+")",1)]),_:1}),n(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":a.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.jq_power"))},{help:d(()=>[o(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. '),w,o(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ")]),_:1},8,["model-value"]),n(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":a.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.jq_soc"))},null,8,["model-value"]),n(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":a.configuration.jq_imported,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.jq_imported"))},{help:d(()=>[o(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"]),n(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":a.configuration.jq_exported,"onUpdate:modelValue":e[3]||(e[3]=t=>i.updateConfiguration(t,"configuration.jq_exported"))},{help:d(()=>[o(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"])])}const P=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/json/bat.vue"]]);export{P as default};
diff --git a/web/settings/assets/bat-874f748e.js b/web/settings/assets/bat-fd9f4fe4.js
similarity index 86%
rename from web/settings/assets/bat-874f748e.js
rename to web/settings/assets/bat-fd9f4fe4.js
index d5606f7edd..a11993f1ff 100644
--- a/web/settings/assets/bat-874f748e.js
+++ b/web/settings/assets/bat-fd9f4fe4.js
@@ -1 +1 @@
-import{_ as c,p as o,k as r,l as p,A as n,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceGoodWeBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-goodwe-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=o("openwb-base-heading"),d=o("openwb-base-alert");return r(),p("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für GoodWe Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(d,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/bat.vue"]]);export{x as default};
+import{_ as c,p as o,k as r,l as p,A as n,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceGoodWeBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-goodwe-bat"},m={class:"small"};function b(e,t,g,h,v,w){const i=o("openwb-base-heading"),d=o("openwb-base-alert");return r(),p("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für GoodWe Batteriespeicher "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(d,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/bat.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat_api-bbcd36bc.js b/web/settings/assets/bat_api-e58852af.js
similarity index 86%
rename from web/settings/assets/bat_api-bbcd36bc.js
rename to web/settings/assets/bat_api-e58852af.js
index 1aa7361804..8355ece399 100644
--- a/web/settings/assets/bat_api-bbcd36bc.js
+++ b/web/settings/assets/bat_api-e58852af.js
@@ -1 +1 @@
-import{_ as p,p as n,k as c,l as d,A as a,L as o,u as s,q as u,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const l={name:"DeviceVartaAPIBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-varta-bat"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return c(),d("div",f,[a(i,null,{default:o(()=>[s(" Einstellungen für Varta API Batteriespeicher "),u("span",m,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),a(r,{subtype:"info"},{default:o(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/bat_api.vue"]]);export{x as default};
+import{_ as p,p as n,k as c,l as d,A as a,L as o,u as s,q as u,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const l={name:"DeviceVartaAPIBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-varta-bat"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return c(),d("div",f,[a(i,null,{default:o(()=>[s(" Einstellungen für Varta API Batteriespeicher "),u("span",m,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),a(r,{subtype:"info"},{default:o(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/bat_api.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat_modbus-7b1ae23d.js b/web/settings/assets/bat_modbus-260d9b94.js
similarity index 86%
rename from web/settings/assets/bat_modbus-7b1ae23d.js
rename to web/settings/assets/bat_modbus-260d9b94.js
index 8d4c01398a..5968b04745 100644
--- a/web/settings/assets/bat_modbus-7b1ae23d.js
+++ b/web/settings/assets/bat_modbus-260d9b94.js
@@ -1 +1 @@
-import{_ as d,p as n,k as c,l as p,A as o,L as a,u as s,q as u,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const l={name:"DeviceVartaModbusBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},b={class:"device-varta-bat"},m={class:"small"};function f(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return c(),p("div",b,[o(i,null,{default:a(()=>[s(" Einstellungen für Varta Modbus Batteriespeicher "),u("span",m,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=d(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/bat_modbus.vue"]]);export{x as default};
+import{_ as d,p as n,k as c,l as p,A as o,L as a,u as s,q as u,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const l={name:"DeviceVartaModbusBat",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},b={class:"device-varta-bat"},m={class:"small"};function f(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return c(),p("div",b,[o(i,null,{default:a(()=>[s(" Einstellungen für Varta Modbus Batteriespeicher "),u("span",m,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=d(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/bat_modbus.vue"]]);export{x as default};
diff --git a/web/settings/assets/bat_smart_energy-5d29a479.js b/web/settings/assets/bat_smart_energy-817c3655.js
similarity index 87%
rename from web/settings/assets/bat_smart_energy-5d29a479.js
rename to web/settings/assets/bat_smart_energy-817c3655.js
index eec205eb62..ac63323d5e 100644
--- a/web/settings/assets/bat_smart_energy-5d29a479.js
+++ b/web/settings/assets/bat_smart_energy-817c3655.js
@@ -1 +1 @@
-import{_ as c,p as t,k as p,l as u,A as o,L as s,u as a,q as d,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-sunnyboy-bat-smart-energy"},b={class:"small"};function f(e,n,g,y,h,v){const r=t("openwb-base-heading"),i=t("openwb-base-alert");return p(),u("div",m,[o(r,null,{default:s(()=>[a(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher "),d("span",b,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const S=c(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/bat_smart_energy.vue"]]);export{S as default};
+import{_ as c,p as t,k as p,l as u,A as o,L as s,u as a,q as d,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-sunnyboy-bat-smart-energy"},b={class:"small"};function f(e,n,g,y,h,v){const r=t("openwb-base-heading"),i=t("openwb-base-alert");return p(),u("div",m,[o(r,null,{default:s(()=>[a(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher "),d("span",b,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const S=c(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/bat_smart_energy.vue"]]);export{S as default};
diff --git a/web/settings/assets/chargePoint-9ab109c4.js b/web/settings/assets/chargePoint-07057692.js
similarity index 95%
rename from web/settings/assets/chargePoint-9ab109c4.js
rename to web/settings/assets/chargePoint-07057692.js
index 6d20f66091..74208d95d8 100644
--- a/web/settings/assets/chargePoint-9ab109c4.js
+++ b/web/settings/assets/chargePoint-07057692.js
@@ -1 +1 @@
-import{_ as s,p as a,k as p,l,A as r,L as m,u as c}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"ChargePointExternalOpenwb",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){e&&(e="configuration."+e),this.$emit("update:configuration",{value:t,object:e})}}},f={class:"charge-point-externalopenwb"};function g(t,e,o,b,h,i){const u=a("openwb-base-text-input"),d=a("openwb-base-number-input");return p(),l("div",f,[r(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"ip_address"))},null,8,["model-value"]),r(d,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":o.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n-1,"duo_num"))},{help:m(()=>[c(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ')]),_:1},8,["model-value"])])}const v=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{v as default};
+import{_ as s,p as a,k as p,l,A as r,L as m,u as c}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"ChargePointExternalOpenwb",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){e&&(e="configuration."+e),this.$emit("update:configuration",{value:t,object:e})}}},f={class:"charge-point-externalopenwb"};function g(t,e,o,b,h,i){const u=a("openwb-base-text-input"),d=a("openwb-base-number-input");return p(),l("div",f,[r(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"ip_address"))},null,8,["model-value"]),r(d,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":o.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n-1,"duo_num"))},{help:m(()=>[c(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ')]),_:1},8,["model-value"])])}const v=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{v as default};
diff --git a/web/settings/assets/chargePoint-47a32a91.js b/web/settings/assets/chargePoint-10f32a1a.js
similarity index 94%
rename from web/settings/assets/chargePoint-47a32a91.js
rename to web/settings/assets/chargePoint-10f32a1a.js
index af7f1d5de4..7eeae1a9d7 100644
--- a/web/settings/assets/chargePoint-47a32a91.js
+++ b/web/settings/assets/chargePoint-10f32a1a.js
@@ -1 +1 @@
-import{_ as d,p as a,k as p,l as m,A as r,L as c,u as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"ChargePointSmartwb",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){e&&(e="configuration."+e),this.$emit("update:configuration",{value:n,object:e})}}},f={class:"charge-point-smartwb"};function g(n,e,o,b,w,i){const u=a("openwb-base-text-input"),s=a("openwb-base-number-input");return p(),m("div",f,[r(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"ip_address"))},null,8,["model-value"]),r(s,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":o.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"timeout"))},{help:c(()=>[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ")]),_:1},8,["model-value"])])}const h=d(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{h as default};
+import{_ as d,p as a,k as p,l as m,A as r,L as c,u as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"ChargePointSmartwb",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){e&&(e="configuration."+e),this.$emit("update:configuration",{value:n,object:e})}}},f={class:"charge-point-smartwb"};function g(n,e,o,b,w,i){const u=a("openwb-base-text-input"),s=a("openwb-base-number-input");return p(),m("div",f,[r(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"ip_address"))},null,8,["model-value"]),r(s,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":o.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"timeout"))},{help:c(()=>[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ")]),_:1},8,["model-value"])])}const h=d(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{h as default};
diff --git a/web/settings/assets/chargePoint-83d3ee27.js b/web/settings/assets/chargePoint-4a124bb9.js
similarity index 95%
rename from web/settings/assets/chargePoint-83d3ee27.js
rename to web/settings/assets/chargePoint-4a124bb9.js
index 4fc0ae01c4..e75e5342ac 100644
--- a/web/settings/assets/chargePoint-83d3ee27.js
+++ b/web/settings/assets/chargePoint-4a124bb9.js
@@ -1 +1 @@
-import{_ as s,p as a,k as p,l,A as u,L as m,u as c}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"ChargePointSatellite",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){e&&(e="configuration."+e),this.$emit("update:configuration",{value:t,object:e})}}},f={class:"charge-point-satellite"};function g(t,e,o,b,h,i){const r=a("openwb-base-text-input"),d=a("openwb-base-number-input");return p(),l("div",f,[u(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"ip_address"))},null,8,["model-value"]),u(d,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":o.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n-1,"duo_num"))},{help:m(()=>[c(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ')]),_:1},8,["model-value"])])}const x=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{x as default};
+import{_ as s,p as a,k as p,l,A as u,L as m,u as c}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"ChargePointSatellite",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){e&&(e="configuration."+e),this.$emit("update:configuration",{value:t,object:e})}}},f={class:"charge-point-satellite"};function g(t,e,o,b,h,i){const r=a("openwb-base-text-input"),d=a("openwb-base-number-input");return p(),l("div",f,[u(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"ip_address"))},null,8,["model-value"]),u(d,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":o.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n-1,"duo_num"))},{help:m(()=>[c(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ')]),_:1},8,["model-value"])])}const x=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{x as default};
diff --git a/web/settings/assets/chargePoint-9f9283b5.js b/web/settings/assets/chargePoint-7200a105.js
similarity index 98%
rename from web/settings/assets/chargePoint-9f9283b5.js
rename to web/settings/assets/chargePoint-7200a105.js
index 43a39e5e43..96dfc7ae80 100644
--- a/web/settings/assets/chargePoint-9f9283b5.js
+++ b/web/settings/assets/chargePoint-7200a105.js
@@ -1 +1 @@
-import{_ as c,p as u,k as p,l as _,A as n,L as l,u as t,q as e,x as s}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"ChargePointMqtt",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(a,r=void 0){this.$emit("update:configuration",{value:a,object:r})}}},g={class:"charge-point-mqtt"},f=e("br",null,null,-1),b=e("br",null,null,-1),m=e("br",null,null,-1),k=e("span",{class:"text-info"},"12.34",-1),B=e("br",null,null,-1),x=e("br",null,null,-1),v=e("span",{class:"text-info"},"1",-1),w=e("br",null,null,-1),W=e("br",null,null,-1),T=e("span",{class:"text-info"},"[6.78,6.89,6.94]",-1),P=e("br",null,null,-1),z=e("br",null,null,-1),L=e("span",{class:"text-info"},"123.45",-1),I=e("br",null,null,-1),y=e("br",null,null,-1),F=e("span",{class:"text-info"},"true",-1),A=e("br",null,null,-1),N=e("br",null,null,-1),Z=e("span",{class:"text-info"},"true",-1),D=e("br",null,null,-1),S=e("br",null,null,-1),E=e("span",{class:"text-info"},"3",-1),q=e("br",null,null,-1),M=e("br",null,null,-1),V=e("br",null,null,-1),C=e("span",{class:"text-info"},"123.45",-1),G=e("br",null,null,-1),j=e("br",null,null,-1),O=e("br",null,null,-1),J=e("span",{class:"text-info"},"123.45",-1),K=e("br",null,null,-1),Q=e("br",null,null,-1),H=e("br",null,null,-1),R=e("span",{class:"text-info"},"[230.12,231.08,232.54]",-1),U=e("br",null,null,-1),X=e("br",null,null,-1),Y=e("br",null,null,-1),$=e("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1),ee=e("br",null,null,-1),te=e("br",null,null,-1),ne=e("span",{class:"text-info"},'"123654"',-1);function le(a,r,i,ie,oe,se){const d=u("openwb-base-alert"),o=u("openwb-base-copy-to-clipboard");return p(),_("div",g,[n(d,{subtype:"danger"},{default:l(()=>[t(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ")]),_:1}),n(d,{subtype:"info"},{default:l(()=>[t(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden."),f,t(" Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format). "),e("ol",null,[e("li",null,[t(" von openWB gesendete Topics "),e("ul",null,[e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/chargepoint/"+s(i.chargePointId)+"/set/current",1)]),_:1}),b,t(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt)."),m,t(" Beispiel: "),k]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/chargepoint/"+s(i.chargePointId)+"/set/phases_to_use",1)]),_:1}),B,t(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3"),x,t(" Beispiel: "),v])])]),e("li",null,[t(" von openWB zwingend erwartete Topics "),e("ul",null,[e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/currents",1)]),_:1}),w,t(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt)."),W,t(" Beispiel: "),T]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/power",1)]),_:1}),P,t(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt)."),z,t(" Beispiel: "),L]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/plug_state",1)]),_:1}),I,t(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool)."),y,t(" Beispiel: "),F]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/charge_state",1)]),_:1}),A,t(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool)."),N,t(" Beispiel: "),Z]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/phases_in_use",1)]),_:1}),D,t(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3"),S,t(" Beispiel: "),E])])]),e("li",null,[t(" optionale Topics "),e("ul",null,[e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/imported",1)]),_:1}),q,t(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv"),M,t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert."),V,t(" Beispiel: "),C]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/exported",1)]),_:1}),G,t(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv"),j,t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert."),O,t(" Beispiel: "),J]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/voltages",1)]),_:1}),K,t(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv."),Q,t(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt."),H,t(" Beispiel: "),R]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/power_factors",1)]),_:1}),U,t(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1."),X,t(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt."),Y,t(" Beispiel: "),$]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/rfid_tag",1)]),_:1}),ee,t(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert."),te,t(" Beispiel: "),ne])])])])]),_:1})])}const de=c(h,[["render",le],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{de as default};
+import{_ as c,p as u,k as p,l as _,A as n,L as l,u as t,q as e,x as s}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"ChargePointMqtt",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(a,r=void 0){this.$emit("update:configuration",{value:a,object:r})}}},g={class:"charge-point-mqtt"},f=e("br",null,null,-1),b=e("br",null,null,-1),m=e("br",null,null,-1),k=e("span",{class:"text-info"},"12.34",-1),B=e("br",null,null,-1),x=e("br",null,null,-1),v=e("span",{class:"text-info"},"1",-1),w=e("br",null,null,-1),W=e("br",null,null,-1),T=e("span",{class:"text-info"},"[6.78,6.89,6.94]",-1),P=e("br",null,null,-1),z=e("br",null,null,-1),L=e("span",{class:"text-info"},"123.45",-1),I=e("br",null,null,-1),y=e("br",null,null,-1),F=e("span",{class:"text-info"},"true",-1),A=e("br",null,null,-1),N=e("br",null,null,-1),Z=e("span",{class:"text-info"},"true",-1),D=e("br",null,null,-1),S=e("br",null,null,-1),E=e("span",{class:"text-info"},"3",-1),q=e("br",null,null,-1),M=e("br",null,null,-1),V=e("br",null,null,-1),C=e("span",{class:"text-info"},"123.45",-1),G=e("br",null,null,-1),j=e("br",null,null,-1),O=e("br",null,null,-1),J=e("span",{class:"text-info"},"123.45",-1),K=e("br",null,null,-1),Q=e("br",null,null,-1),H=e("br",null,null,-1),R=e("span",{class:"text-info"},"[230.12,231.08,232.54]",-1),U=e("br",null,null,-1),X=e("br",null,null,-1),Y=e("br",null,null,-1),$=e("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1),ee=e("br",null,null,-1),te=e("br",null,null,-1),ne=e("span",{class:"text-info"},'"123654"',-1);function le(a,r,i,ie,oe,se){const d=u("openwb-base-alert"),o=u("openwb-base-copy-to-clipboard");return p(),_("div",g,[n(d,{subtype:"danger"},{default:l(()=>[t(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ")]),_:1}),n(d,{subtype:"info"},{default:l(()=>[t(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden."),f,t(" Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format). "),e("ol",null,[e("li",null,[t(" von openWB gesendete Topics "),e("ul",null,[e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/chargepoint/"+s(i.chargePointId)+"/set/current",1)]),_:1}),b,t(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt)."),m,t(" Beispiel: "),k]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/chargepoint/"+s(i.chargePointId)+"/set/phases_to_use",1)]),_:1}),B,t(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3"),x,t(" Beispiel: "),v])])]),e("li",null,[t(" von openWB zwingend erwartete Topics "),e("ul",null,[e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/currents",1)]),_:1}),w,t(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt)."),W,t(" Beispiel: "),T]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/power",1)]),_:1}),P,t(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt)."),z,t(" Beispiel: "),L]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/plug_state",1)]),_:1}),I,t(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool)."),y,t(" Beispiel: "),F]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/charge_state",1)]),_:1}),A,t(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool)."),N,t(" Beispiel: "),Z]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/phases_in_use",1)]),_:1}),D,t(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3"),S,t(" Beispiel: "),E])])]),e("li",null,[t(" optionale Topics "),e("ul",null,[e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/imported",1)]),_:1}),q,t(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv"),M,t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert."),V,t(" Beispiel: "),C]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/exported",1)]),_:1}),G,t(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv"),j,t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert."),O,t(" Beispiel: "),J]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/voltages",1)]),_:1}),K,t(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv."),Q,t(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt."),H,t(" Beispiel: "),R]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/power_factors",1)]),_:1}),U,t(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1."),X,t(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt."),Y,t(" Beispiel: "),$]),e("li",null,[n(o,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/chargepoint/"+s(i.chargePointId)+"/get/rfid_tag",1)]),_:1}),ee,t(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert."),te,t(" Beispiel: "),ne])])])])]),_:1})])}const de=c(h,[["render",le],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{de as default};
diff --git a/web/settings/assets/chargePoint-792da849.js b/web/settings/assets/chargePoint-80e648c2.js
similarity index 84%
rename from web/settings/assets/chargePoint-792da849.js
rename to web/settings/assets/chargePoint-80e648c2.js
index d690fb57ed..a80df6148f 100644
--- a/web/settings/assets/chargePoint-792da849.js
+++ b/web/settings/assets/chargePoint-80e648c2.js
@@ -1 +1 @@
-import{_ as a,p as s,k as p,l as u,A as d}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const c={name:"ChargePointOpenwbPro",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){e&&(e="configuration."+e),this.$emit("update:configuration",{value:o,object:e})}}},_={class:"charge-point-openwbpro"};function l(o,e,t,f,m,n){const i=s("openwb-base-text-input");return p(),u("div",_,[d(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"ip_address"))},null,8,["model-value"])])}const v=a(c,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{v as default};
+import{_ as a,p as s,k as p,l as u,A as d}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const c={name:"ChargePointOpenwbPro",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){e&&(e="configuration."+e),this.$emit("update:configuration",{value:o,object:e})}}},_={class:"charge-point-openwbpro"};function l(o,e,t,f,m,n){const i=s("openwb-base-text-input");return p(),u("div",_,[d(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"ip_address"))},null,8,["model-value"])])}const v=a(c,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{v as default};
diff --git a/web/settings/assets/chargePoint-75b0bdf9.js b/web/settings/assets/chargePoint-a56bc604.js
similarity index 92%
rename from web/settings/assets/chargePoint-75b0bdf9.js
rename to web/settings/assets/chargePoint-a56bc604.js
index e6f7035e89..0dcf487e77 100644
--- a/web/settings/assets/chargePoint-75b0bdf9.js
+++ b/web/settings/assets/chargePoint-a56bc604.js
@@ -1 +1 @@
-import{_ as d,p as a,k as u,l as c,A as l,y as p,L as m,u as f,z as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"ChargePointInternalOpenwb",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){e&&(e==="mode"&&(n=="series"||n=="socket")&&this.updateConfiguration(0,"duo_num"),e="configuration."+e),this.$emit("update:configuration",{value:n,object:e})}}},b={class:"charge-point-internalopenwb"};function h(n,e,t,w,B,i){const r=a("openwb-base-select-input"),s=a("openwb-base-number-input");return u(),c("div",b,[l(r,{title:"Bauart",notSelected:"Bitte auswählen",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"}],"model-value":t.configuration.mode,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"mode"))},null,8,["model-value"]),t.configuration.mode=="duo"?(u(),p(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":t.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o-1,"duo_num"))},{help:m(()=>[f(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ')]),_:1},8,["model-value"])):_("v-if",!0)])}const x=d(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{x as default};
+import{_ as d,p as a,k as u,l as c,A as l,y as p,L as m,u as f,z as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"ChargePointInternalOpenwb",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){e&&(e==="mode"&&(n=="series"||n=="socket")&&this.updateConfiguration(0,"duo_num"),e="configuration."+e),this.$emit("update:configuration",{value:n,object:e})}}},b={class:"charge-point-internalopenwb"};function h(n,e,t,w,B,i){const r=a("openwb-base-select-input"),s=a("openwb-base-number-input");return u(),c("div",b,[l(r,{title:"Bauart",notSelected:"Bitte auswählen",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"}],"model-value":t.configuration.mode,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"mode"))},null,8,["model-value"]),t.configuration.mode=="duo"?(u(),p(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":t.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o-1,"duo_num"))},{help:m(()=>[f(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ')]),_:1},8,["model-value"])):_("v-if",!0)])}const x=d(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{x as default};
diff --git a/web/settings/assets/commands-dfab65eb.js b/web/settings/assets/commands-e217699c.js
similarity index 96%
rename from web/settings/assets/commands-dfab65eb.js
rename to web/settings/assets/commands-e217699c.js
index 175a5957f3..2ea016e4a7 100644
--- a/web/settings/assets/commands-dfab65eb.js
+++ b/web/settings/assets/commands-e217699c.js
@@ -1 +1 @@
-import{_ as i,p as r,k as p,l as d,A as c,L as u,u as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"ChargePointCommandsOpenwbPro",props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{async triggerUpdate(){let s=new FormData;s.append("command","update"),s.append("data",'{"ip_address":"'+this.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",s,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var t="Aktualisierung fehlgeschlagen!<br />";e.response?(console.error(e.response.status,e.response.data),t+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),t+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),t+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(t,"danger")})}}},m={class:"charge-point-commands-openwbpro"};function h(s,n,e,t,_,o){const a=r("openwb-base-button-input");return p(),d("div",m,[c(a,{title:"Ladepunkt aktualisieren",buttonText:"Update anfordern",subtype:"success",disabled:e.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:u(()=>[l(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ")]),_:1},8,["disabled","onButtonClicked"])])}const k=i(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{k as default};
+import{_ as i,p as r,k as p,l as d,A as c,L as u,u as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"ChargePointCommandsOpenwbPro",props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0}},methods:{async triggerUpdate(){let s=new FormData;s.append("command","update"),s.append("data",'{"ip_address":"'+this.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",s,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var t="Aktualisierung fehlgeschlagen!<br />";e.response?(console.error(e.response.status,e.response.data),t+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),t+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),t+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(t,"danger")})}}},m={class:"charge-point-commands-openwbpro"};function h(s,n,e,t,_,o){const a=r("openwb-base-button-input");return p(),d("div",m,[c(a,{title:"Ladepunkt aktualisieren",buttonText:"Update anfordern",subtype:"success",disabled:e.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:u(()=>[l(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ")]),_:1},8,["disabled","onButtonClicked"])])}const k=i(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-6264518e.js b/web/settings/assets/counter-00ec4a93.js
similarity index 92%
rename from web/settings/assets/counter-6264518e.js
rename to web/settings/assets/counter-00ec4a93.js
index fd9e47c3fb..454d06a30f 100644
--- a/web/settings/assets/counter-6264518e.js
+++ b/web/settings/assets/counter-00ec4a93.js
@@ -1 +1 @@
-import{_ as c,p as r,k as m,l as g,A as t,L as u,u as d,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceVZLoggerCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-vzlogger-counter"},w={class:"small"};function h(o,e,i,Z,V,a){const s=r("openwb-base-heading"),p=r("openwb-base-alert"),l=r("openwb-base-number-input");return m(),g("div",v,[t(s,null,{default:u(()=>[d(" Einstellungen für VZLogger Zähler "),f("span",w,"(Modul: "+_(o.$options.name)+")",1)]),_:1}),t(p,{subtype:"info"},{default:u(()=>[d(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ')]),_:1}),t(l,{title:"Zeile der Leistung",required:"",min:0,"model-value":i.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=n=>a.updateConfiguration(n,"configuration.line_power"))},null,8,["model-value"]),t(l,{title:"Zeile der Einspeisung",min:0,"model-value":i.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=n=>a.updateConfiguration(n,"configuration.line_exported"))},null,8,["model-value"]),t(l,{title:"Zeile des Bezugs",min:0,"model-value":i.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=n=>a.updateConfiguration(n,"configuration.line_imported"))},null,8,["model-value"])])}const C=c(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/counter.vue"]]);export{C as default};
+import{_ as c,p as r,k as m,l as g,A as t,L as u,u as d,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceVZLoggerCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-vzlogger-counter"},w={class:"small"};function h(o,e,i,Z,V,a){const s=r("openwb-base-heading"),p=r("openwb-base-alert"),l=r("openwb-base-number-input");return m(),g("div",v,[t(s,null,{default:u(()=>[d(" Einstellungen für VZLogger Zähler "),f("span",w,"(Modul: "+_(o.$options.name)+")",1)]),_:1}),t(p,{subtype:"info"},{default:u(()=>[d(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ')]),_:1}),t(l,{title:"Zeile der Leistung",required:"",min:0,"model-value":i.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=n=>a.updateConfiguration(n,"configuration.line_power"))},null,8,["model-value"]),t(l,{title:"Zeile der Einspeisung",min:0,"model-value":i.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=n=>a.updateConfiguration(n,"configuration.line_exported"))},null,8,["model-value"]),t(l,{title:"Zeile des Bezugs",min:0,"model-value":i.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=n=>a.updateConfiguration(n,"configuration.line_imported"))},null,8,["model-value"])])}const C=c(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/counter.vue"]]);export{C as default};
diff --git a/web/settings/assets/counter-b09d3ede.js b/web/settings/assets/counter-18fd3233.js
similarity index 90%
rename from web/settings/assets/counter-b09d3ede.js
rename to web/settings/assets/counter-18fd3233.js
index f50bce910a..930c8d9c35 100644
--- a/web/settings/assets/counter-b09d3ede.js
+++ b/web/settings/assets/counter-18fd3233.js
@@ -1 +1 @@
-import{_ as u,p as r,k as c,l as d,A as s,L as a,u as e,q as o,x as p}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolarLogCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,n=void 0){this.$emit("update:configuration",{value:t,object:n})}}},m={class:"device-solar_log-counter"},h={class:"small"},f=o("span",{class:"text-danger"},[e(" Solar-Log Zähler geben keine Ströme aus, sodass kein Lastmanagement möglich ist."),o("br")],-1),g=o("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1);function b(t,n,v,k,w,Z){const i=r("openwb-base-heading"),l=r("openwb-base-alert");return c(),d("div",m,[s(i,null,{default:a(()=>[e(" Einstellungen für Solar-Log Zähler "),o("span",h,"(Modul: "+p(t.$options.name)+")",1)]),_:1}),s(l,{subtype:"info"},{default:a(()=>[f,e(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im "),g,e(". ")]),_:1})])}const x=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/counter.vue"]]);export{x as default};
+import{_ as u,p as r,k as c,l as d,A as s,L as a,u as e,q as o,x as p}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolarLogCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,n=void 0){this.$emit("update:configuration",{value:t,object:n})}}},m={class:"device-solar_log-counter"},h={class:"small"},f=o("span",{class:"text-danger"},[e(" Solar-Log Zähler geben keine Ströme aus, sodass kein Lastmanagement möglich ist."),o("br")],-1),g=o("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1);function b(t,n,v,k,w,Z){const i=r("openwb-base-heading"),l=r("openwb-base-alert");return c(),d("div",m,[s(i,null,{default:a(()=>[e(" Einstellungen für Solar-Log Zähler "),o("span",h,"(Modul: "+p(t.$options.name)+")",1)]),_:1}),s(l,{subtype:"info"},{default:a(()=>[f,e(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im "),g,e(". ")]),_:1})])}const x=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/counter.vue"]]);export{x as default};
diff --git a/web/settings/assets/counter-9a77fa00.js b/web/settings/assets/counter-1905ec77.js
similarity index 90%
rename from web/settings/assets/counter-9a77fa00.js
rename to web/settings/assets/counter-1905ec77.js
index 8793235fac..be423eae70 100644
--- a/web/settings/assets/counter-9a77fa00.js
+++ b/web/settings/assets/counter-1905ec77.js
@@ -1 +1 @@
-import{_ as l,p as o,k as c,l as p,A as u,L as m,u as _,q as b,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceVictronCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-victron-counter"},V={class:"small"};function w(t,e,i,x,C,a){const r=o("openwb-base-heading"),s=o("openwb-base-number-input"),d=o("openwb-base-button-group-input");return c(),p("div",v,[u(r,null,{default:m(()=>[_(" Einstellungen für Victron Zähler "),b("span",V,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),u(s,{title:"Modbus-ID",min:1,max:255,required:"","model-value":i.configuration.modbus_id,"onUpdate:modelValue":e[0]||(e[0]=n=>a.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),u(d,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":i.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>a.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const q=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/counter.vue"]]);export{q as default};
+import{_ as l,p as o,k as c,l as p,A as u,L as m,u as _,q as b,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceVictronCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-victron-counter"},V={class:"small"};function w(t,e,i,x,C,a){const r=o("openwb-base-heading"),s=o("openwb-base-number-input"),d=o("openwb-base-button-group-input");return c(),p("div",v,[u(r,null,{default:m(()=>[_(" Einstellungen für Victron Zähler "),b("span",V,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),u(s,{title:"Modbus-ID",min:1,max:255,required:"","model-value":i.configuration.modbus_id,"onUpdate:modelValue":e[0]||(e[0]=n=>a.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),u(d,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":i.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>a.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const q=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/counter.vue"]]);export{q as default};
diff --git a/web/settings/assets/counter-fca60eb6.js b/web/settings/assets/counter-1c5a2313.js
similarity index 86%
rename from web/settings/assets/counter-fca60eb6.js
rename to web/settings/assets/counter-1c5a2313.js
index 7d5659770c..1709da4472 100644
--- a/web/settings/assets/counter-fca60eb6.js
+++ b/web/settings/assets/counter-1c5a2313.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolarViewCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solar-view-counter"},m={class:"small"};function b(e,t,g,v,w,h){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für SolarView Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/counter.vue"]]);export{V as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolarViewCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solar-view-counter"},m={class:"small"};function b(e,t,g,v,w,h){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für SolarView Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/counter.vue"]]);export{V as default};
diff --git a/web/settings/assets/counter-4fb4e495.js b/web/settings/assets/counter-21f55471.js
similarity index 88%
rename from web/settings/assets/counter-4fb4e495.js
rename to web/settings/assets/counter-21f55471.js
index 0877b67ae7..54bfdac8a3 100644
--- a/web/settings/assets/counter-4fb4e495.js
+++ b/web/settings/assets/counter-21f55471.js
@@ -1 +1 @@
-import{_ as l,p as o,k as c,l as d,A as n,L as p,u as _,q as m,x as v}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceOpenwbEvukitCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-openwb-evukit-counter"},g={class:"small"};function w(t,e,a,h,x,i){const s=o("openwb-base-heading"),u=o("openwb-base-select-input");return c(),d("div",b,[n(s,null,{default:p(()=>[_(" Einstellungen für openWB EVU-Kit Zähler "),m("span",g,"(Modul: "+v(t.$options.name)+")",1)]),_:1}),n(u,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=r=>i.updateConfiguration(r,"configuration.version"))},null,8,["model-value"])])}const B=l(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_evu_kit/counter.vue"]]);export{B as default};
+import{_ as l,p as o,k as c,l as d,A as n,L as p,u as _,q as m,x as v}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceOpenwbEvukitCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-openwb-evukit-counter"},g={class:"small"};function w(t,e,a,h,x,i){const s=o("openwb-base-heading"),u=o("openwb-base-select-input");return c(),d("div",b,[n(s,null,{default:p(()=>[_(" Einstellungen für openWB EVU-Kit Zähler "),m("span",g,"(Modul: "+v(t.$options.name)+")",1)]),_:1}),n(u,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=r=>i.updateConfiguration(r,"configuration.version"))},null,8,["model-value"])])}const B=l(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_evu_kit/counter.vue"]]);export{B as default};
diff --git a/web/settings/assets/counter-71a69a0f.js b/web/settings/assets/counter-2365410a.js
similarity index 91%
rename from web/settings/assets/counter-71a69a0f.js
rename to web/settings/assets/counter-2365410a.js
index a2897dc85c..f6fc1cdafb 100644
--- a/web/settings/assets/counter-71a69a0f.js
+++ b/web/settings/assets/counter-2365410a.js
@@ -1 +1 @@
-import{_ as m,p as a,k as p,l as _,A as n,L as u,u as d,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSolarEdgeCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-solaredge-counter"},h={class:"small"};function w(o,e,i,x,C,r){const l=a("openwb-base-heading"),c=a("openwb-base-alert"),s=a("openwb-base-number-input");return p(),_("div",v,[n(l,null,{default:u(()=>[d(" Einstellungen für SolarEdge Zähler "),f("span",h,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),n(c,{subtype:"info"},{default:u(()=>[d(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ")]),_:1}),n(s,{title:"Modbus ID","model-value":i.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>r.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(s,{title:"Meter ID","model-value":i.configuration.meter_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=t=>r.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const D=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/counter.vue"]]);export{D as default};
+import{_ as m,p as a,k as p,l as _,A as n,L as u,u as d,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSolarEdgeCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-solaredge-counter"},h={class:"small"};function w(o,e,i,x,C,r){const l=a("openwb-base-heading"),c=a("openwb-base-alert"),s=a("openwb-base-number-input");return p(),_("div",v,[n(l,null,{default:u(()=>[d(" Einstellungen für SolarEdge Zähler "),f("span",h,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),n(c,{subtype:"info"},{default:u(()=>[d(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ")]),_:1}),n(s,{title:"Modbus ID","model-value":i.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>r.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(s,{title:"Meter ID","model-value":i.configuration.meter_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=t=>r.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const D=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/counter.vue"]]);export{D as default};
diff --git a/web/settings/assets/counter-25dcea49.js b/web/settings/assets/counter-2a189926.js
similarity index 87%
rename from web/settings/assets/counter-25dcea49.js
rename to web/settings/assets/counter-2a189926.js
index 11e5cbdba0..b861c73281 100644
--- a/web/settings/assets/counter-25dcea49.js
+++ b/web/settings/assets/counter-2a189926.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as u,A as o,L as a,u as s,q as l,x as p}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceTeslaCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-tesla-counter"},f={class:"small"};function h(e,n,b,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),u("div",m,[o(i,null,{default:a(()=>[s(" Einstellungen für Tesla Zähler "),l("span",f,"(Modul: "+p(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ")]),_:1})])}const V=c(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/counter.vue"]]);export{V as default};
+import{_ as c,p as t,k as d,l as u,A as o,L as a,u as s,q as l,x as p}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceTeslaCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-tesla-counter"},f={class:"small"};function h(e,n,b,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),u("div",m,[o(i,null,{default:a(()=>[s(" Einstellungen für Tesla Zähler "),l("span",f,"(Modul: "+p(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ")]),_:1})])}const V=c(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/counter.vue"]]);export{V as default};
diff --git a/web/settings/assets/counter-cf4834fd.js b/web/settings/assets/counter-2e4fa5c2.js
similarity index 86%
rename from web/settings/assets/counter-cf4834fd.js
rename to web/settings/assets/counter-2e4fa5c2.js
index 47dd0037a0..b35644d58b 100644
--- a/web/settings/assets/counter-cf4834fd.js
+++ b/web/settings/assets/counter-2e4fa5c2.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceLGCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-lg-counter"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für LG ESS V1.0 Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/counter.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceLGCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-lg-counter"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für LG ESS V1.0 Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-c9dc9c81.js b/web/settings/assets/counter-3df9b0e7.js
similarity index 88%
rename from web/settings/assets/counter-c9dc9c81.js
rename to web/settings/assets/counter-3df9b0e7.js
index be8ec3b14a..8d0b95711e 100644
--- a/web/settings/assets/counter-c9dc9c81.js
+++ b/web/settings/assets/counter-3df9b0e7.js
@@ -1 +1 @@
-import{_ as d,p as t,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DevicePowerdogCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-powerdog-counter"},v={class:"small"};function w(o,e,u,h,x,a){const i=t("openwb-base-heading"),s=t("openwb-base-button-group-input");return p(),c("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für Powerdog Zähler "),f("span",v,"(Modul: "+m(o.$options.name)+")",1)]),_:1}),n(s,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":u.configuration.position_evu,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.position_evu"))},null,8,["model-value"])])}const k=d(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/counter.vue"]]);export{k as default};
+import{_ as d,p as t,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DevicePowerdogCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-powerdog-counter"},v={class:"small"};function w(o,e,u,h,x,a){const i=t("openwb-base-heading"),s=t("openwb-base-button-group-input");return p(),c("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für Powerdog Zähler "),f("span",v,"(Modul: "+m(o.$options.name)+")",1)]),_:1}),n(s,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":u.configuration.position_evu,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.position_evu"))},null,8,["model-value"])])}const k=d(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-e3807695.js b/web/settings/assets/counter-46a15c2b.js
similarity index 96%
rename from web/settings/assets/counter-e3807695.js
rename to web/settings/assets/counter-46a15c2b.js
index cd1f32fcca..a33b0a7594 100644
--- a/web/settings/assets/counter-e3807695.js
+++ b/web/settings/assets/counter-46a15c2b.js
@@ -1 +1 @@
-import{_ as g,p as d,k as p,l as _,A as n,L as u,u as r,q as s,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const c={name:"DeviceJsonCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},w={class:"device-json-counter"},v={class:"small"},j=s("br",null,null,-1);function q(i,e,o,h,x,a){const f=d("openwb-base-heading"),l=d("openwb-base-text-input"),m=d("openwb-base-alert");return p(),_("div",w,[n(f,null,{default:u(()=>[r(" Einstellungen für JSON Zähler "),s("span",v,"(Modul: "+b(i.$options.name)+")",1)]),_:1}),n(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.jq_power"))},{help:u(()=>[r(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. '),j,r(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ")]),_:1},8,["model-value"]),n(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.jq_imported"))},{help:u(()=>[r(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"]),n(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=t=>a.updateConfiguration(t,"configuration.jq_exported"))},{help:u(()=>[r(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"]),n(m,{subtype:"info"},{default:u(()=>[r(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ")]),_:1}),n(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=t=>a.updateConfiguration(t,"configuration.jq_power_l1"))},null,8,["model-value"]),n(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=t=>a.updateConfiguration(t,"configuration.jq_power_l2"))},null,8,["model-value"]),n(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=t=>a.updateConfiguration(t,"configuration.jq_power_l3"))},null,8,["model-value"]),n(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.configuration.jq_current_l1,"onUpdate:modelValue":e[6]||(e[6]=t=>a.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),n(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.configuration.jq_current_l2,"onUpdate:modelValue":e[7]||(e[7]=t=>a.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),n(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.configuration.jq_current_l3,"onUpdate:modelValue":e[8]||(e[8]=t=>a.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const y=g(c,[["render",q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/json/counter.vue"]]);export{y as default};
+import{_ as g,p as d,k as p,l as _,A as n,L as u,u as r,q as s,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const c={name:"DeviceJsonCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},w={class:"device-json-counter"},v={class:"small"},j=s("br",null,null,-1);function q(i,e,o,h,x,a){const f=d("openwb-base-heading"),l=d("openwb-base-text-input"),m=d("openwb-base-alert");return p(),_("div",w,[n(f,null,{default:u(()=>[r(" Einstellungen für JSON Zähler "),s("span",v,"(Modul: "+b(i.$options.name)+")",1)]),_:1}),n(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.jq_power"))},{help:u(()=>[r(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. '),j,r(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ")]),_:1},8,["model-value"]),n(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.jq_imported"))},{help:u(()=>[r(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"]),n(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=t=>a.updateConfiguration(t,"configuration.jq_exported"))},{help:u(()=>[r(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"]),n(m,{subtype:"info"},{default:u(()=>[r(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ")]),_:1}),n(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=t=>a.updateConfiguration(t,"configuration.jq_power_l1"))},null,8,["model-value"]),n(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=t=>a.updateConfiguration(t,"configuration.jq_power_l2"))},null,8,["model-value"]),n(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=t=>a.updateConfiguration(t,"configuration.jq_power_l3"))},null,8,["model-value"]),n(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.configuration.jq_current_l1,"onUpdate:modelValue":e[6]||(e[6]=t=>a.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),n(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.configuration.jq_current_l2,"onUpdate:modelValue":e[7]||(e[7]=t=>a.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),n(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.configuration.jq_current_l3,"onUpdate:modelValue":e[8]||(e[8]=t=>a.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const y=g(c,[["render",q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/json/counter.vue"]]);export{y as default};
diff --git a/web/settings/assets/counter-9513e8db.js b/web/settings/assets/counter-478d9577.js
similarity index 90%
rename from web/settings/assets/counter-9513e8db.js
rename to web/settings/assets/counter-478d9577.js
index 026f0641c2..e5aecd1845 100644
--- a/web/settings/assets/counter-9513e8db.js
+++ b/web/settings/assets/counter-478d9577.js
@@ -1 +1 @@
-import{_ as c,p as t,k as p,l as m,A as o,L as i,u as s,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSungrowCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},b={class:"device-sungrow-counter"},v={class:"small"};function h(n,e,a,w,S,r){const u=t("openwb-base-heading"),d=t("openwb-base-select-input");return p(),m("div",b,[o(u,null,{default:i(()=>[s(" Einstellungen für Sungrow Zähler "),_("span",v,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(d,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) mit WiNet Dongle"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=l=>r.updateConfiguration(l,"configuration.version"))},{help:i(()=>[s(" Die Variante SH ist nur über die LAN-IP mit openWB nutzbar. Hierzu hinter dem WiNet-S Dongle den Lan Anschluss nutzen. Den WiNet-S Dongle zusätzlich ins Heimnetz (per Lan oder Wlan) einbinden, um ISolarCloud nutzen zu können. ")]),_:1},8,["options","model-value"])])}const D=c(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/counter.vue"]]);export{D as default};
+import{_ as c,p as t,k as p,l as m,A as o,L as i,u as s,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSungrowCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},b={class:"device-sungrow-counter"},v={class:"small"};function h(n,e,a,w,S,r){const u=t("openwb-base-heading"),d=t("openwb-base-select-input");return p(),m("div",b,[o(u,null,{default:i(()=>[s(" Einstellungen für Sungrow Zähler "),_("span",v,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(d,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) mit WiNet Dongle"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=l=>r.updateConfiguration(l,"configuration.version"))},{help:i(()=>[s(" Die Variante SH ist nur über die LAN-IP mit openWB nutzbar. Hierzu hinter dem WiNet-S Dongle den Lan Anschluss nutzen. Den WiNet-S Dongle zusätzlich ins Heimnetz (per Lan oder Wlan) einbinden, um ISolarCloud nutzen zu können. ")]),_:1},8,["options","model-value"])])}const D=c(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/counter.vue"]]);export{D as default};
diff --git a/web/settings/assets/counter-2fda105e.js b/web/settings/assets/counter-4dc3cbd5.js
similarity index 93%
rename from web/settings/assets/counter-2fda105e.js
rename to web/settings/assets/counter-4dc3cbd5.js
index 6ef2b58b3f..027b62ede2 100644
--- a/web/settings/assets/counter-2fda105e.js
+++ b/web/settings/assets/counter-4dc3cbd5.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l,A as n,L as s,u as a,q as p,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolarWorldCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-solar_world-counter"},m={class:"small"};function b(e,o,g,h,v,w){const r=t("openwb-base-heading"),i=t("openwb-base-alert");return d(),l("div",f,[n(r,null,{default:s(()=>[a(" Einstellungen für SolarWorld Zähler "),p("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),n(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/counter.vue"]]);export{k as default};
+import{_ as c,p as t,k as d,l,A as n,L as s,u as a,q as p,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolarWorldCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-solar_world-counter"},m={class:"small"};function b(e,o,g,h,v,w){const r=t("openwb-base-heading"),i=t("openwb-base-alert");return d(),l("div",f,[n(r,null,{default:s(()=>[a(" Einstellungen für SolarWorld Zähler "),p("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),n(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-cd290a98.js b/web/settings/assets/counter-57df9eec.js
similarity index 86%
rename from web/settings/assets/counter-cd290a98.js
rename to web/settings/assets/counter-57df9eec.js
index 8cbe1a2f77..27bcf0f7c4 100644
--- a/web/settings/assets/counter-cd290a98.js
+++ b/web/settings/assets/counter-57df9eec.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSmartfoxCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-smartfox-counter"},m={class:"small"};function b(e,t,g,h,v,x){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Smartfox Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/counter.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSmartfoxCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-smartfox-counter"},m={class:"small"};function b(e,t,g,h,v,x){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Smartfox Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-ed28bc4b.js b/web/settings/assets/counter-5b0b9661.js
similarity index 88%
rename from web/settings/assets/counter-ed28bc4b.js
rename to web/settings/assets/counter-5b0b9661.js
index 2f0cdcf241..37f5fdbaba 100644
--- a/web/settings/assets/counter-ed28bc4b.js
+++ b/web/settings/assets/counter-5b0b9661.js
@@ -1 +1 @@
-import{_ as c,p as n,k as d,l as u,A as o,L as s,u as a,q as p,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceKostalSEMCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},m={class:"device-kostal-sem-counter"},f={class:"small"};function h(e,t,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),u("div",m,[o(r,null,{default:s(()=>[a(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 Zähler "),p("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ")]),_:1})])}const x=c(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_sem/counter.vue"]]);export{x as default};
+import{_ as c,p as n,k as d,l as u,A as o,L as s,u as a,q as p,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceKostalSEMCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},m={class:"device-kostal-sem-counter"},f={class:"small"};function h(e,t,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),u("div",m,[o(r,null,{default:s(()=>[a(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 Zähler "),p("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ")]),_:1})])}const x=c(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_sem/counter.vue"]]);export{x as default};
diff --git a/web/settings/assets/counter-16bcb8fc.js b/web/settings/assets/counter-60655200.js
similarity index 86%
rename from web/settings/assets/counter-16bcb8fc.js
rename to web/settings/assets/counter-60655200.js
index 9f93447e86..cd01ce739c 100644
--- a/web/settings/assets/counter-16bcb8fc.js
+++ b/web/settings/assets/counter-60655200.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceAlphaessCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-alphaess-counter"},m={class:"small"};function b(e,t,h,g,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Alpha ESS Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/counter.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceAlphaessCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-alphaess-counter"},m={class:"small"};function b(e,t,h,g,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Alpha ESS Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-0abbb386.js b/web/settings/assets/counter-6369ff43.js
similarity index 90%
rename from web/settings/assets/counter-0abbb386.js
rename to web/settings/assets/counter-6369ff43.js
index 8061f8b00a..db0d8c931d 100644
--- a/web/settings/assets/counter-0abbb386.js
+++ b/web/settings/assets/counter-6369ff43.js
@@ -1 +1 @@
-import{_ as r,p as o,k as p,l as c,A as a,L as m,u as _,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceOpenwbFlexCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-openwb-flex-counter"},x={class:"small"};function w(n,e,i,M,h,u){const s=o("openwb-base-heading"),l=o("openwb-base-select-input"),d=o("openwb-base-number-input");return p(),c("div",g,[a(s,null,{default:m(()=>[_(" Einstellungen für openWB-Flex Zähler "),f("span",x,"(Modul: "+b(n.$options.name)+")",1)]),_:1}),a(l,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=t=>u.updateConfiguration(t,"configuration.version"))},null,8,["model-value"]),a(d,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":i.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=t=>u.updateConfiguration(t,"configuration.id"))},null,8,["model-value"])])}const D=r(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_flex/counter.vue"]]);export{D as default};
+import{_ as r,p as o,k as p,l as c,A as a,L as m,u as _,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceOpenwbFlexCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-openwb-flex-counter"},x={class:"small"};function w(n,e,i,M,h,u){const s=o("openwb-base-heading"),l=o("openwb-base-select-input"),d=o("openwb-base-number-input");return p(),c("div",g,[a(s,null,{default:m(()=>[_(" Einstellungen für openWB-Flex Zähler "),f("span",x,"(Modul: "+b(n.$options.name)+")",1)]),_:1}),a(l,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=t=>u.updateConfiguration(t,"configuration.version"))},null,8,["model-value"]),a(d,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":i.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=t=>u.updateConfiguration(t,"configuration.id"))},null,8,["model-value"])])}const D=r(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_flex/counter.vue"]]);export{D as default};
diff --git a/web/settings/assets/counter-75ce0061.js b/web/settings/assets/counter-6d0620dd.js
similarity index 97%
rename from web/settings/assets/counter-75ce0061.js
rename to web/settings/assets/counter-6d0620dd.js
index 2340defb72..2722b37d5e 100644
--- a/web/settings/assets/counter-75ce0061.js
+++ b/web/settings/assets/counter-6d0620dd.js
@@ -1 +1 @@
-import{_ as h,p as u,k as c,l as g,A as a,L as l,u as e,q as t,x as p}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceHttpCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(s,n=void 0){this.$emit("update:configuration",{value:s,object:n})}}},f={class:"device-http-counter"},b={class:"small"},w=t("br",null,null,-1),v=t("br",null,null,-1),k=t("br",null,null,-1),S=t("br",null,null,-1),P=t("br",null,null,-1),z=t("br",null,null,-1),Z=t("br",null,null,-1),A=t("br",null,null,-1),x=t("br",null,null,-1),D=t("br",null,null,-1),L=t("br",null,null,-1);function U(s,n,i,F,C,d){const m=u("openwb-base-heading"),o=u("openwb-base-text-input");return c(),g("div",f,[a(m,null,{default:l(()=>[e(" Einstellungen für Http Zähler "),t("span",b,"(Modul: "+p(s.$options.name)+")",1)]),_:1}),a(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":i.configuration.power_path,"onUpdate:modelValue":n[0]||(n[0]=r=>d.updateConfiguration(r,"configuration.power_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),w,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.imported_path,"onUpdate:modelValue":n[1]||(n[1]=r=>d.updateConfiguration(r,"configuration.imported_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),v,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),k,e(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.exported_path,"onUpdate:modelValue":n[2]||(n[2]=r=>d.updateConfiguration(r,"configuration.exported_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),S,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),P,e(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.current_l1_path,"onUpdate:modelValue":n[3]||(n[3]=r=>d.updateConfiguration(r,"configuration.current_l1_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),z,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt."),Z,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.current_l2_path,"onUpdate:modelValue":n[4]||(n[4]=r=>d.updateConfiguration(r,"configuration.current_l2_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),A,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt."),x,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.current_l3_path,"onUpdate:modelValue":n[5]||(n[5]=r=>d.updateConfiguration(r,"configuration.current_l3_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),D,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt."),L,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"])])}const V=h(_,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/http/counter.vue"]]);export{V as default};
+import{_ as h,p as u,k as c,l as g,A as a,L as l,u as e,q as t,x as p}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceHttpCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(s,n=void 0){this.$emit("update:configuration",{value:s,object:n})}}},f={class:"device-http-counter"},b={class:"small"},w=t("br",null,null,-1),v=t("br",null,null,-1),k=t("br",null,null,-1),S=t("br",null,null,-1),P=t("br",null,null,-1),z=t("br",null,null,-1),Z=t("br",null,null,-1),A=t("br",null,null,-1),x=t("br",null,null,-1),D=t("br",null,null,-1),L=t("br",null,null,-1);function U(s,n,i,F,C,d){const m=u("openwb-base-heading"),o=u("openwb-base-text-input");return c(),g("div",f,[a(m,null,{default:l(()=>[e(" Einstellungen für Http Zähler "),t("span",b,"(Modul: "+p(s.$options.name)+")",1)]),_:1}),a(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":i.configuration.power_path,"onUpdate:modelValue":n[0]||(n[0]=r=>d.updateConfiguration(r,"configuration.power_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),w,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.imported_path,"onUpdate:modelValue":n[1]||(n[1]=r=>d.updateConfiguration(r,"configuration.imported_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),v,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),k,e(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.exported_path,"onUpdate:modelValue":n[2]||(n[2]=r=>d.updateConfiguration(r,"configuration.exported_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),S,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),P,e(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.current_l1_path,"onUpdate:modelValue":n[3]||(n[3]=r=>d.updateConfiguration(r,"configuration.current_l1_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),z,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt."),Z,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.current_l2_path,"onUpdate:modelValue":n[4]||(n[4]=r=>d.updateConfiguration(r,"configuration.current_l2_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),A,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt."),x,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"]),a(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":i.configuration.current_l3_path,"onUpdate:modelValue":n[5]||(n[5]=r=>d.updateConfiguration(r,"configuration.current_l3_path"))},{help:l(()=>[e(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),D,e(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt."),L,e(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ")]),_:1},8,["model-value"])])}const V=h(_,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/http/counter.vue"]]);export{V as default};
diff --git a/web/settings/assets/counter-25d1e220.js b/web/settings/assets/counter-70b9e720.js
similarity index 89%
rename from web/settings/assets/counter-25d1e220.js
rename to web/settings/assets/counter-70b9e720.js
index 3f6ab7b419..391ada4a1a 100644
--- a/web/settings/assets/counter-25d1e220.js
+++ b/web/settings/assets/counter-70b9e720.js
@@ -1 +1 @@
-import{_ as m,p as o,k as p,l as _,A as a,L as i,u as t,q as r,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSmahmCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-smahm-counter"},h={class:"small"},v=r("br",null,null,-1);function M(n,e,s,w,S,u){const d=o("openwb-base-heading"),c=o("openwb-base-number-input");return p(),_("div",g,[a(d,null,{default:i(()=>[t(" Einstellungen für SMA-HM/EM Zähler "),r("span",h,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),a(c,{title:"Seriennummer","model-value":s.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=l=>u.updateConfiguration(l,"configuration.serials"))},{help:i(()=>[t(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind."),v,t(" Funktioniert auch mit Energy Meter statt Home Manager. ")]),_:1},8,["model-value"])])}const C=m(b,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_shm/counter.vue"]]);export{C as default};
+import{_ as m,p as o,k as p,l as _,A as a,L as i,u as t,q as r,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSmahmCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-smahm-counter"},h={class:"small"},v=r("br",null,null,-1);function M(n,e,s,w,S,u){const d=o("openwb-base-heading"),c=o("openwb-base-number-input");return p(),_("div",g,[a(d,null,{default:i(()=>[t(" Einstellungen für SMA-HM/EM Zähler "),r("span",h,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),a(c,{title:"Seriennummer","model-value":s.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=l=>u.updateConfiguration(l,"configuration.serials"))},{help:i(()=>[t(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind."),v,t(" Funktioniert auch mit Energy Meter statt Home Manager. ")]),_:1},8,["model-value"])])}const C=m(b,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_shm/counter.vue"]]);export{C as default};
diff --git a/web/settings/assets/counter-5cb15a92.js b/web/settings/assets/counter-73783603.js
similarity index 86%
rename from web/settings/assets/counter-5cb15a92.js
rename to web/settings/assets/counter-73783603.js
index d81719360d..5adc1a7640 100644
--- a/web/settings/assets/counter-5cb15a92.js
+++ b/web/settings/assets/counter-73783603.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as a,u as s,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceVartaCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-varta-counter"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für Varta Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/counter.vue"]]);export{V as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as a,u as s,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceVartaCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-varta-counter"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für Varta Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/counter.vue"]]);export{V as default};
diff --git a/web/settings/assets/counter-e15f2c06.js b/web/settings/assets/counter-77841659.js
similarity index 86%
rename from web/settings/assets/counter-e15f2c06.js
rename to web/settings/assets/counter-77841659.js
index 009e42c869..89d12a83c3 100644
--- a/web/settings/assets/counter-e15f2c06.js
+++ b/web/settings/assets/counter-77841659.js
@@ -1 +1 @@
-import{_ as r,p as n,k as l,l as p,A as o,L as s,u as a,q as u,x as d}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceQCelllsCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-qcells-counter"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return l(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für QCells ESS Zähler "),u("span",m,"(Modul: "+d(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const q=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/counter.vue"]]);export{q as default};
+import{_ as r,p as n,k as l,l as p,A as o,L as s,u as a,q as u,x as d}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceQCelllsCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-qcells-counter"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return l(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für QCells ESS Zähler "),u("span",m,"(Modul: "+d(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const q=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/counter.vue"]]);export{q as default};
diff --git a/web/settings/assets/counter-1ddce36f.js b/web/settings/assets/counter-7a7be3d3.js
similarity index 86%
rename from web/settings/assets/counter-1ddce36f.js
rename to web/settings/assets/counter-7a7be3d3.js
index 049a6ff015..beaad797b1 100644
--- a/web/settings/assets/counter-1ddce36f.js
+++ b/web/settings/assets/counter-7a7be3d3.js
@@ -1 +1 @@
-import{_ as c,p as n,k as u,l as d,A as o,L as a,u as s,q as p,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceJanitzaCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-janitza-counter"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return u(),d("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für Janitza Zähler "),p("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ')]),_:1})])}const z=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/counter.vue"]]);export{z as default};
+import{_ as c,p as n,k as u,l as d,A as o,L as a,u as s,q as p,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceJanitzaCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-janitza-counter"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return u(),d("div",f,[o(i,null,{default:a(()=>[s(" Einstellungen für Janitza Zähler "),p("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:a(()=>[s(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ')]),_:1})])}const z=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/counter.vue"]]);export{z as default};
diff --git a/web/settings/assets/counter-08f8d2f2.js b/web/settings/assets/counter-7b85a5b2.js
similarity index 86%
rename from web/settings/assets/counter-08f8d2f2.js
rename to web/settings/assets/counter-7b85a5b2.js
index 81b7c884ca..939dcd124b 100644
--- a/web/settings/assets/counter-08f8d2f2.js
+++ b/web/settings/assets/counter-7b85a5b2.js
@@ -1 +1 @@
-import{_ as c,p as t,k as u,l as d,A as n,L as a,u as s,q as p,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceCarloGavazziCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-carlogavazzi-counter"},m={class:"small"};function v(e,o,b,g,h,z){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return u(),d("div",f,[n(i,null,{default:a(()=>[s(" Einstellungen für Carlo Gavazzi EM24 LAN "),p("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:a(()=>[s(" ModbusTCP muss aktiviert sein. Ausgelesen wird ID 1 auf Port 502. ")]),_:1})])}const $=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/counter.vue"]]);export{$ as default};
+import{_ as c,p as t,k as u,l as d,A as n,L as a,u as s,q as p,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceCarloGavazziCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-carlogavazzi-counter"},m={class:"small"};function v(e,o,b,g,h,z){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return u(),d("div",f,[n(i,null,{default:a(()=>[s(" Einstellungen für Carlo Gavazzi EM24 LAN "),p("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:a(()=>[s(" ModbusTCP muss aktiviert sein. Ausgelesen wird ID 1 auf Port 502. ")]),_:1})])}const $=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/counter.vue"]]);export{$ as default};
diff --git a/web/settings/assets/counter-1516cbf4.js b/web/settings/assets/counter-816c921e.js
similarity index 96%
rename from web/settings/assets/counter-1516cbf4.js
rename to web/settings/assets/counter-816c921e.js
index 9f6cf209a3..6e377493d4 100644
--- a/web/settings/assets/counter-1516cbf4.js
+++ b/web/settings/assets/counter-816c921e.js
@@ -1 +1 @@
-import{_ as d,p as c,k as _,l as m,A as n,L as o,u as t,q as e,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"DeviceMqttCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(a,u=void 0){this.$emit("update:configuration",{value:a,object:u})}}},f={class:"device-mqtt-counter"},g={class:"small"},b=e("br",null,null,-1),k=e("br",null,null,-1),B=e("span",{class:"text-info"},"-123.45",-1),x=e("br",null,null,-1),v=e("br",null,null,-1),z=e("span",{class:"text-info"},"123.45",-1),I=e("br",null,null,-1),W=e("br",null,null,-1),N=e("span",{class:"text-info"},"123.45",-1),w=e("br",null,null,-1),T=e("br",null,null,-1),y=e("span",{class:"text-info"},"50.12",-1),q=e("br",null,null,-1),F=e("br",null,null,-1),P=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1),E=e("br",null,null,-1),j=e("br",null,null,-1),A=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1),D=e("br",null,null,-1),Z=e("br",null,null,-1),C=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1),V=e("br",null,null,-1),L=e("br",null,null,-1),M=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1);function S(a,u,s,H,O,Q){const r=c("openwb-base-heading"),i=c("openwb-base-copy-to-clipboard"),p=c("openwb-base-alert");return _(),m("div",f,[n(r,null,{default:o(()=>[t(" Einstellungen für MQTT Zähler "),e("span",g,"(Modul: "+l(a.$options.name)+")",1)]),_:1}),n(p,{subtype:"info"},{default:o(()=>[e("ul",null,[e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/power",1)]),_:1}),b,t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung"),k,t(" Beispiel: "),B]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/imported",1)]),_:1}),x,t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),v,t(" Beispiel: "),z]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/exported",1)]),_:1}),I,t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),W,t(" Beispiel: "),N]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/frequency",1)]),_:1}),w,t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen"),T,t(" Beispiel: "),y]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/currents",1)]),_:1}),q,t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung"),F,t(" Beispiel: "),P]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/voltages",1)]),_:1}),E,t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)"),j,t(" Beispiel: "),A]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/powers",1)]),_:1}),D,t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)"),Z,t(" Beispiel: "),C]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/power_factors",1)]),_:1}),V,t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1"),L,t(" Beispiel: "),M])])]),_:1})])}const K=d(h,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mqtt/counter.vue"]]);export{K as default};
+import{_ as d,p as c,k as _,l as m,A as n,L as o,u as t,q as e,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DeviceMqttCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(a,u=void 0){this.$emit("update:configuration",{value:a,object:u})}}},f={class:"device-mqtt-counter"},g={class:"small"},b=e("br",null,null,-1),k=e("br",null,null,-1),B=e("span",{class:"text-info"},"-123.45",-1),x=e("br",null,null,-1),v=e("br",null,null,-1),z=e("span",{class:"text-info"},"123.45",-1),I=e("br",null,null,-1),W=e("br",null,null,-1),N=e("span",{class:"text-info"},"123.45",-1),w=e("br",null,null,-1),T=e("br",null,null,-1),y=e("span",{class:"text-info"},"50.12",-1),q=e("br",null,null,-1),F=e("br",null,null,-1),P=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1),E=e("br",null,null,-1),j=e("br",null,null,-1),A=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1),D=e("br",null,null,-1),Z=e("br",null,null,-1),C=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1),V=e("br",null,null,-1),L=e("br",null,null,-1),M=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1);function S(a,u,s,H,O,Q){const r=c("openwb-base-heading"),i=c("openwb-base-copy-to-clipboard"),p=c("openwb-base-alert");return _(),m("div",f,[n(r,null,{default:o(()=>[t(" Einstellungen für MQTT Zähler "),e("span",g,"(Modul: "+l(a.$options.name)+")",1)]),_:1}),n(p,{subtype:"info"},{default:o(()=>[e("ul",null,[e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/power",1)]),_:1}),b,t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung"),k,t(" Beispiel: "),B]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/imported",1)]),_:1}),x,t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),v,t(" Beispiel: "),z]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/exported",1)]),_:1}),I,t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),W,t(" Beispiel: "),N]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/frequency",1)]),_:1}),w,t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen"),T,t(" Beispiel: "),y]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/currents",1)]),_:1}),q,t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung"),F,t(" Beispiel: "),P]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/voltages",1)]),_:1}),E,t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)"),j,t(" Beispiel: "),A]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/powers",1)]),_:1}),D,t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)"),Z,t(" Beispiel: "),C]),e("li",null,[n(i,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/counter/"+l(s.componentId)+"/get/power_factors",1)]),_:1}),V,t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1"),L,t(" Beispiel: "),M])])]),_:1})])}const K=d(h,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mqtt/counter.vue"]]);export{K as default};
diff --git a/web/settings/assets/counter-0524aa8c.js b/web/settings/assets/counter-82a793a2.js
similarity index 86%
rename from web/settings/assets/counter-0524aa8c.js
rename to web/settings/assets/counter-82a793a2.js
index 4d1dea7576..f978233fb3 100644
--- a/web/settings/assets/counter-0524aa8c.js
+++ b/web/settings/assets/counter-82a793a2.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSiemensCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-siemens-counter"},f={class:"small"};function b(e,n,g,h,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),p("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für Siemens Zähler "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/counter.vue"]]);export{k as default};
+import{_ as c,p as t,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSiemensCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-siemens-counter"},f={class:"small"};function b(e,n,g,h,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),p("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für Siemens Zähler "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-45ecd9ff.js b/web/settings/assets/counter-8d4f402a.js
similarity index 86%
rename from web/settings/assets/counter-45ecd9ff.js
rename to web/settings/assets/counter-8d4f402a.js
index 440c9083dd..cfdd8f17e6 100644
--- a/web/settings/assets/counter-45ecd9ff.js
+++ b/web/settings/assets/counter-8d4f402a.js
@@ -1 +1 @@
-import{_ as c,p as n,k as u,l as d,A as o,L as s,u as a,q as p,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceHuaweiCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-huawei-counter"},m={class:"small"};function b(e,t,h,g,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return u(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Huawei Zähler "),p("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/counter.vue"]]);export{k as default};
+import{_ as c,p as n,k as u,l as d,A as o,L as s,u as a,q as p,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceHuaweiCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-huawei-counter"},m={class:"small"};function b(e,t,h,g,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return u(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Huawei Zähler "),p("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-a3e434aa.js b/web/settings/assets/counter-9097a073.js
similarity index 86%
rename from web/settings/assets/counter-a3e434aa.js
rename to web/settings/assets/counter-9097a073.js
index 7c70d0aabf..82e303d217 100644
--- a/web/settings/assets/counter-a3e434aa.js
+++ b/web/settings/assets/counter-9097a073.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as p,A as n,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceGoodWeCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-goodwe-counter"},m={class:"small"};function b(e,o,g,h,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),p("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für GoodWe Zähler "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/counter.vue"]]);export{k as default};
+import{_ as c,p as t,k as d,l as p,A as n,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceGoodWeCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-goodwe-counter"},m={class:"small"};function b(e,o,g,h,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),p("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für GoodWe Zähler "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-6247163c.js b/web/settings/assets/counter-a2c453f6.js
similarity index 94%
rename from web/settings/assets/counter-6247163c.js
rename to web/settings/assets/counter-a2c453f6.js
index c0c13cba9e..850c055673 100644
--- a/web/settings/assets/counter-6247163c.js
+++ b/web/settings/assets/counter-a2c453f6.js
@@ -1 +1 @@
-import{_ as d,p as t,k as c,l,A as n,L as p,u as m,q as _,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceHuaweiSmartLoggerCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},b={class:"device-huawei-smart-logger-counter"},v={class:"small"};function w(o,e,a,h,x,i){const s=t("openwb-base-heading"),u=t("openwb-base-number-input");return c(),l("div",b,[n(s,null,{default:p(()=>[m(" Einstellungen für Huawei SmartLogger Zähler "),_("span",v,"(Modul: "+g(o.$options.name)+")",1)]),_:1}),n(u,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>i.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const V=d(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei_smartlogger/counter.vue"]]);export{V as default};
+import{_ as d,p as t,k as c,l,A as n,L as p,u as m,q as _,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceHuaweiSmartLoggerCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},b={class:"device-huawei-smart-logger-counter"},v={class:"small"};function w(o,e,a,h,x,i){const s=t("openwb-base-heading"),u=t("openwb-base-number-input");return c(),l("div",b,[n(s,null,{default:p(()=>[m(" Einstellungen für Huawei SmartLogger Zähler "),_("span",v,"(Modul: "+g(o.$options.name)+")",1)]),_:1}),n(u,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>i.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const V=d(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei_smartlogger/counter.vue"]]);export{V as default};
diff --git a/web/settings/assets/counter-b4f1d52c.js b/web/settings/assets/counter-ad208981.js
similarity index 85%
rename from web/settings/assets/counter-b4f1d52c.js
rename to web/settings/assets/counter-ad208981.js
index 1ce1ddecfa..0a31e209f2 100644
--- a/web/settings/assets/counter-b4f1d52c.js
+++ b/web/settings/assets/counter-ad208981.js
@@ -1 +1 @@
-import{_ as c,p as t,k as p,l as u,A as n,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceKostalPikoCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-kostalpiko-counter"},m={class:"small"};function b(e,o,h,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return p(),u("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für Kostal Piko Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:s(()=>[a(" Hausverbrauchszähler ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko/counter.vue"]]);export{x as default};
+import{_ as c,p as t,k as p,l as u,A as n,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceKostalPikoCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-kostalpiko-counter"},m={class:"small"};function b(e,o,h,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return p(),u("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für Kostal Piko Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:s(()=>[a(" Hausverbrauchszähler ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko/counter.vue"]]);export{x as default};
diff --git a/web/settings/assets/counter-2524acf0.js b/web/settings/assets/counter-af942561.js
similarity index 88%
rename from web/settings/assets/counter-2524acf0.js
rename to web/settings/assets/counter-af942561.js
index 2356dcd250..6805ab1be9 100644
--- a/web/settings/assets/counter-2524acf0.js
+++ b/web/settings/assets/counter-af942561.js
@@ -1 +1 @@
-import{_ as c,p as t,k as l,l as _,A as o,L as a,u as s,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceEnphaseCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-enphase-counter"},h={class:"small"};function v(n,e,i,w,E,r){const u=t("openwb-base-heading"),d=t("openwb-base-number-input");return l(),_("div",g,[o(u,null,{default:a(()=>[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler "),m("span",h,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(d,{title:"EID",required:"","model-value":i.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.eid"))},{help:a(()=>[s(' EID für "net-consumption" ')]),_:1},8,["model-value"])])}const I=c(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/counter.vue"]]);export{I as default};
+import{_ as c,p as t,k as l,l as _,A as o,L as a,u as s,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceEnphaseCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-enphase-counter"},h={class:"small"};function v(n,e,i,w,E,r){const u=t("openwb-base-heading"),d=t("openwb-base-number-input");return l(),_("div",g,[o(u,null,{default:a(()=>[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler "),m("span",h,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(d,{title:"EID",required:"","model-value":i.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.eid"))},{help:a(()=>[s(' EID für "net-consumption" ')]),_:1},8,["model-value"])])}const I=c(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/counter.vue"]]);export{I as default};
diff --git a/web/settings/assets/counter-32007d3e.js b/web/settings/assets/counter-b2081459.js
similarity index 86%
rename from web/settings/assets/counter-32007d3e.js
rename to web/settings/assets/counter-b2081459.js
index 6a2562f2ca..a9faaacd25 100644
--- a/web/settings/assets/counter-32007d3e.js
+++ b/web/settings/assets/counter-b2081459.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as a,u as s,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolarwattCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solarwatt-counter"},m={class:"small"};function b(e,t,g,v,w,h){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),u("div",f,[o(r,null,{default:a(()=>[s(" Einstellungen für Solarwatt/My Reserve Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/counter.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as a,u as s,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolarwattCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solarwatt-counter"},m={class:"small"};function b(e,t,g,v,w,h){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),u("div",f,[o(r,null,{default:a(()=>[s(" Einstellungen für Solarwatt/My Reserve Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:a(()=>[s(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-00e8bfb9.js b/web/settings/assets/counter-b30c239d.js
similarity index 86%
rename from web/settings/assets/counter-00e8bfb9.js
rename to web/settings/assets/counter-b30c239d.js
index 8b5565fe15..7f7dfdf3d0 100644
--- a/web/settings/assets/counter-00e8bfb9.js
+++ b/web/settings/assets/counter-b30c239d.js
@@ -1 +1 @@
-import{_ as c,p as t,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSiemensSentronCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-siemens-sentron-counter"},f={class:"small"};function b(e,n,g,h,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return p(),u("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für Siemens Sentron Zähler "),d("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const S=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens_sentron/counter.vue"]]);export{S as default};
+import{_ as c,p as t,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSiemensSentronCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-siemens-sentron-counter"},f={class:"small"};function b(e,n,g,h,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return p(),u("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für Siemens Sentron Zähler "),d("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const S=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens_sentron/counter.vue"]]);export{S as default};
diff --git a/web/settings/assets/counter-b804ace4.js b/web/settings/assets/counter-b804ace4.js
deleted file mode 100644
index ef37e159c7..0000000000
--- a/web/settings/assets/counter-b804ace4.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as l,p as o,k as f,l as _,A as r,L as i,u as t,q as a,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DevicePowerfoxCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-powerfox-counter"},h={class:"small"},w=a("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1);function v(n,e,s,x,D,d){const u=o("openwb-base-heading"),c=o("openwb-base-text-input");return f(),_("div",g,[r(u,null,{default:i(()=>[t(" Einstellungen für Powerfox Zähler "),a("span",h,"(Modul: "+m(n.$options.name)+")",1)]),_:1}),r(c,{title:"ID",required:"","model-value":s.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.id"))},{help:i(()=>[t(" Um die ID herauszufinden mit dem Browser die Adresse "),w,t(" aufrufen und dort Benutzername und Passwort eingeben. Die Device ID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/KLeinschreibung ist zu beachten! ")]),_:1},8,["model-value"])])}const B=l(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/counter.vue"]]);export{B as default};
diff --git a/web/settings/assets/counter-a13ecb51.js b/web/settings/assets/counter-c0f3f4ac.js
similarity index 90%
rename from web/settings/assets/counter-a13ecb51.js
rename to web/settings/assets/counter-c0f3f4ac.js
index 8b39fea13e..6262fffc03 100644
--- a/web/settings/assets/counter-a13ecb51.js
+++ b/web/settings/assets/counter-c0f3f4ac.js
@@ -1 +1 @@
-import{_ as l,p as t,k as p,l as m,A as o,L as i,u as r,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceVirtualCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},h={class:"device-virtual-counter"},b={class:"small"};function v(n,e,a,w,x,s){const u=t("openwb-base-heading"),d=t("openwb-base-number-input");return p(),m("div",h,[o(u,null,{default:i(()=>[r(" Einstellungen für virtuelle Zähler "),_("span",b,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(d,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":a.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=c=>s.updateConfiguration(c*1e3,"configuration.external_consumption"))},{help:i(()=>[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ")]),_:1},8,["model-value"])])}const C=l(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/virtual/counter.vue"]]);export{C as default};
+import{_ as l,p as t,k as p,l as m,A as o,L as i,u as r,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceVirtualCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},h={class:"device-virtual-counter"},b={class:"small"};function v(n,e,a,w,x,s){const u=t("openwb-base-heading"),d=t("openwb-base-number-input");return p(),m("div",h,[o(u,null,{default:i(()=>[r(" Einstellungen für virtuelle Zähler "),_("span",b,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(d,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":a.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=c=>s.updateConfiguration(c*1e3,"configuration.external_consumption"))},{help:i(()=>[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ")]),_:1},8,["model-value"])])}const C=l(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/virtual/counter.vue"]]);export{C as default};
diff --git a/web/settings/assets/counter-c9c2d68f.js b/web/settings/assets/counter-c9c2d68f.js
new file mode 100644
index 0000000000..1fd1ed3e8b
--- /dev/null
+++ b/web/settings/assets/counter-c9c2d68f.js
@@ -0,0 +1 @@
+import{_ as l,p as i,k as f,l as _,A as s,L as r,u as n,q as o,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DevicePowerfoxCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-powerfox-counter"},b={class:"small"},w=o("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),v=o("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1);function x(t,e,a,D,k,d){const u=i("openwb-base-heading"),c=i("openwb-base-text-input");return f(),_("div",g,[s(u,null,{default:r(()=>[n(" Einstellungen für Powerfox Zähler "),o("span",b,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),s(c,{title:"ID",required:"","model-value":a.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.id"))},{help:r(()=>[n(" Um die ID herauszufinden mit dem Browser die Adresse "),w,n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter "),v,n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ")]),_:1},8,["model-value"])])}const z=l(h,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/counter.vue"]]);export{z as default};
diff --git a/web/settings/assets/counter-83354bca.js b/web/settings/assets/counter-d03b355d.js
similarity index 85%
rename from web/settings/assets/counter-83354bca.js
rename to web/settings/assets/counter-d03b355d.js
index 0974be2dd9..8220673d78 100644
--- a/web/settings/assets/counter-83354bca.js
+++ b/web/settings/assets/counter-d03b355d.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceRCTCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-rct-counter"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für RCT Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/counter.vue"]]);export{x as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceRCTCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-rct-counter"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für RCT Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/counter.vue"]]);export{x as default};
diff --git a/web/settings/assets/counter-0d09b23e.js b/web/settings/assets/counter-d335a007.js
similarity index 90%
rename from web/settings/assets/counter-0d09b23e.js
rename to web/settings/assets/counter-d335a007.js
index ee4413142e..5d32805921 100644
--- a/web/settings/assets/counter-0d09b23e.js
+++ b/web/settings/assets/counter-d335a007.js
@@ -1 +1 @@
-import{_ as l,p as o,k as m,l as _,A as r,L as i,u as n,q as s,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceDiscovergyCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-discovergy-counter"},b={class:"small"},h=s("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1);function w(t,e,a,y,x,d){const u=o("openwb-base-heading"),c=o("openwb-base-text-input");return m(),_("div",v,[r(u,null,{default:i(()=>[n(" Einstellungen für Discovergy Zähler "),s("span",b,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),r(c,{title:"Meter-ID",required:"","model-value":a.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[n(" Um die ID herauszufinden mit dem Browser die Adresse "),h,n(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ")]),_:1},8,["model-value"])])}const C=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/counter.vue"]]);export{C as default};
+import{_ as l,p as o,k as m,l as _,A as r,L as i,u as n,q as s,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceDiscovergyCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-discovergy-counter"},b={class:"small"},h=s("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1);function w(t,e,a,y,x,d){const u=o("openwb-base-heading"),c=o("openwb-base-text-input");return m(),_("div",v,[r(u,null,{default:i(()=>[n(" Einstellungen für Discovergy Zähler "),s("span",b,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),r(c,{title:"Meter-ID",required:"","model-value":a.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[n(" Um die ID herauszufinden mit dem Browser die Adresse "),h,n(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ")]),_:1},8,["model-value"])])}const C=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/counter.vue"]]);export{C as default};
diff --git a/web/settings/assets/counter-57c9333b.js b/web/settings/assets/counter-da58c807.js
similarity index 86%
rename from web/settings/assets/counter-57c9333b.js
rename to web/settings/assets/counter-da58c807.js
index 971610add6..08962e40a1 100644
--- a/web/settings/assets/counter-57c9333b.js
+++ b/web/settings/assets/counter-da58c807.js
@@ -1 +1 @@
-import{_ as r,p as t,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceFemsCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-fems-counter"},m={class:"small"};function b(e,n,g,h,v,w){const i=t("openwb-base-heading"),c=t("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openEMS, Fenecon FEMS, Kaco Hy-Control Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const C=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/counter.vue"]]);export{C as default};
+import{_ as r,p as t,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceFemsCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-fems-counter"},m={class:"small"};function b(e,n,g,h,v,w){const i=t("openwb-base-heading"),c=t("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openEMS, Fenecon FEMS, Kaco Hy-Control Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const C=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/counter.vue"]]);export{C as default};
diff --git a/web/settings/assets/counter-e7921fa4.js b/web/settings/assets/counter-df3e561f.js
similarity index 87%
rename from web/settings/assets/counter-e7921fa4.js
rename to web/settings/assets/counter-df3e561f.js
index b11d2f34ac..3f8614da99 100644
--- a/web/settings/assets/counter-e7921fa4.js
+++ b/web/settings/assets/counter-df3e561f.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as u,A as o,L as s,u as a,q as p,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSonnenbatterieCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-sonnenbatterie-counter"},f={class:"small"};function b(e,n,g,h,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),u("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für SonnenBatterie Zähler "),p("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Mit diesem Modul ist kein Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnenbatterie/counter.vue"]]);export{x as default};
+import{_ as c,p as t,k as d,l as u,A as o,L as s,u as a,q as p,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSonnenbatterieCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-sonnenbatterie-counter"},f={class:"small"};function b(e,n,g,h,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),u("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für SonnenBatterie Zähler "),p("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Mit diesem Modul ist kein Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnenbatterie/counter.vue"]]);export{x as default};
diff --git a/web/settings/assets/counter-9c24dc5c.js b/web/settings/assets/counter-eab5abf7.js
similarity index 87%
rename from web/settings/assets/counter-9c24dc5c.js
rename to web/settings/assets/counter-eab5abf7.js
index 4d1a514b54..c658d8811e 100644
--- a/web/settings/assets/counter-9c24dc5c.js
+++ b/web/settings/assets/counter-eab5abf7.js
@@ -1 +1 @@
-import{_ as d,p as n,k as c,l as p,A as o,L as l,u as m,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSmartMeCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-smart-me-counter"},v={class:"small"};function h(t,e,a,x,w,s){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return c(),p("div",b,[o(i,null,{default:l(()=>[m(" Einstellungen für smart-me Zähler "),_("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(r,{title:"Geräte-ID",required:"","model-value":a.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=u=>s.updateConfiguration(u,"configuration.id"))},null,8,["model-value"])])}const B=d(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/counter.vue"]]);export{B as default};
+import{_ as d,p as n,k as c,l as p,A as o,L as l,u as m,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSmartMeCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-smart-me-counter"},v={class:"small"};function h(t,e,a,x,w,s){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return c(),p("div",b,[o(i,null,{default:l(()=>[m(" Einstellungen für smart-me Zähler "),_("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(r,{title:"Geräte-ID",required:"","model-value":a.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=u=>s.updateConfiguration(u,"configuration.id"))},null,8,["model-value"])])}const B=d(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/counter.vue"]]);export{B as default};
diff --git a/web/settings/assets/counter-09b39d2d.js b/web/settings/assets/counter-f322702a.js
similarity index 86%
rename from web/settings/assets/counter-09b39d2d.js
rename to web/settings/assets/counter-f322702a.js
index 2c29bc736e..2c725e9a30 100644
--- a/web/settings/assets/counter-09b39d2d.js
+++ b/web/settings/assets/counter-f322702a.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as p,A as n,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolaxCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-solax-counter"},m={class:"small"};function b(e,o,g,h,v,x){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),p("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für Solax Zähler "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/counter.vue"]]);export{k as default};
+import{_ as c,p as t,k as d,l as p,A as n,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolaxCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-solax-counter"},m={class:"small"};function b(e,o,g,h,v,x){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),p("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für Solax Zähler "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/counter.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter-9a41f79b.js b/web/settings/assets/counter-f56715cd.js
similarity index 89%
rename from web/settings/assets/counter-9a41f79b.js
rename to web/settings/assets/counter-f56715cd.js
index fff671027c..0789f7aac9 100644
--- a/web/settings/assets/counter-9a41f79b.js
+++ b/web/settings/assets/counter-f56715cd.js
@@ -1 +1 @@
-import{_ as u,p as n,k as l,l as d,A as r,L as s,u as t,q as a,x as p}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceKostalPlenticoreCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-kostalplenticore-counter"},h={class:"small"},m=a("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1);function b(e,o,g,v,w,k){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return l(),d("div",f,[r(i,null,{default:s(()=>[t(" Einstellungen für Kostal Plenticore Zähler "),a("span",h,"(Modul: "+p(e.$options.name)+")",1)]),_:1}),r(c,{subtype:"info"},{default:s(()=>[t(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im "),m,t(" beschrieben, angeordnet werden. ")]),_:1})])}const B=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_plenticore/counter.vue"]]);export{B as default};
+import{_ as u,p as n,k as l,l as d,A as r,L as s,u as t,q as a,x as p}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceKostalPlenticoreCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-kostalplenticore-counter"},h={class:"small"},m=a("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1);function b(e,o,g,v,w,k){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return l(),d("div",f,[r(i,null,{default:s(()=>[t(" Einstellungen für Kostal Plenticore Zähler "),a("span",h,"(Modul: "+p(e.$options.name)+")",1)]),_:1}),r(c,{subtype:"info"},{default:s(()=>[t(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im "),m,t(" beschrieben, angeordnet werden. ")]),_:1})])}const B=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_plenticore/counter.vue"]]);export{B as default};
diff --git a/web/settings/assets/counter-107b4963.js b/web/settings/assets/counter-fb6b0fb9.js
similarity index 86%
rename from web/settings/assets/counter-107b4963.js
rename to web/settings/assets/counter-fb6b0fb9.js
index b5410fd0ae..51b0eafcd7 100644
--- a/web/settings/assets/counter-107b4963.js
+++ b/web/settings/assets/counter-fb6b0fb9.js
@@ -1 +1 @@
-import{_ as c,p as o,k as u,l as p,A as t,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSunnyBoyCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sunnyboy-counter"},m={class:"small"};function b(e,n,g,y,h,v){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return u(),p("div",f,[t(i,null,{default:s(()=>[a(" Einstellungen für SMA Sunny Boy/Tripower Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),t(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/counter.vue"]]);export{$ as default};
+import{_ as c,p as o,k as u,l as p,A as t,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSunnyBoyCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sunnyboy-counter"},m={class:"small"};function b(e,n,g,y,h,v){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return u(),p("div",f,[t(i,null,{default:s(()=>[a(" Einstellungen für SMA Sunny Boy/Tripower Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),t(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/counter.vue"]]);export{$ as default};
diff --git a/web/settings/assets/counter-969297fa.js b/web/settings/assets/counter-fbf1efa1.js
similarity index 85%
rename from web/settings/assets/counter-969297fa.js
rename to web/settings/assets/counter-fbf1efa1.js
index 78d0ae0b99..437ec022b5 100644
--- a/web/settings/assets/counter-969297fa.js
+++ b/web/settings/assets/counter-fbf1efa1.js
@@ -1 +1 @@
-import{_ as r,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceE3dcCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-e3dc-counter"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für E3DC Zähler "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const C=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/counter.vue"]]);export{C as default};
+import{_ as r,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceE3dcCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-e3dc-counter"},m={class:"small"};function b(e,t,g,h,v,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für E3DC Zähler "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const C=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/counter.vue"]]);export{C as default};
diff --git a/web/settings/assets/counter-d1489ce8.js b/web/settings/assets/counter-fcc6cfc8.js
similarity index 86%
rename from web/settings/assets/counter-d1489ce8.js
rename to web/settings/assets/counter-fcc6cfc8.js
index 7e699603e4..c8bc40bb41 100644
--- a/web/settings/assets/counter-d1489ce8.js
+++ b/web/settings/assets/counter-fcc6cfc8.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceBatterXCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-batterx-counter"},m={class:"small"};function b(e,t,g,h,v,x){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für BatterX Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/counter.vue"]]);export{$ as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceBatterXCounter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-batterx-counter"},m={class:"small"};function b(e,t,g,h,v,x){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für BatterX Zähler "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/counter.vue"]]);export{$ as default};
diff --git a/web/settings/assets/counter_s0-ba7ae169.js b/web/settings/assets/counter_s0-0068172e.js
similarity index 86%
rename from web/settings/assets/counter_s0-ba7ae169.js
rename to web/settings/assets/counter_s0-0068172e.js
index 33abaade46..fef736146a 100644
--- a/web/settings/assets/counter_s0-ba7ae169.js
+++ b/web/settings/assets/counter_s0-0068172e.js
@@ -1 +1 @@
-import{_ as c,p as o,k as u,l as d,A as t,L as s,u as a,q as p,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceFroniusCounterS0",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-fronius-counter-s0"},m={class:"small"};function b(e,n,g,h,v,w){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return u(),d("div",f,[t(i,null,{default:s(()=>[a(" Einstellungen für Fronius S0 Zähler "),p("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),t(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/counter_s0.vue"]]);export{k as default};
+import{_ as c,p as o,k as u,l as d,A as t,L as s,u as a,q as p,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceFroniusCounterS0",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-fronius-counter-s0"},m={class:"small"};function b(e,n,g,h,v,w){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return u(),d("div",f,[t(i,null,{default:s(()=>[a(" Einstellungen für Fronius S0 Zähler "),p("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),t(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/counter_s0.vue"]]);export{k as default};
diff --git a/web/settings/assets/counter_sm-ccecb663.js b/web/settings/assets/counter_sm-802e0059.js
similarity index 96%
rename from web/settings/assets/counter_sm-ccecb663.js
rename to web/settings/assets/counter_sm-802e0059.js
index e0c49161d8..db07db686c 100644
--- a/web/settings/assets/counter_sm-ccecb663.js
+++ b/web/settings/assets/counter_sm-802e0059.js
@@ -1 +1 @@
-import{_ as p,p as o,k as m,l as _,A as a,L as s,u,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceFroniusCounterSM",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-fronius-counter-sm"},h={class:"small"};function w(n,e,i,x,V,r){const l=o("openwb-base-heading"),d=o("openwb-base-number-input"),c=o("openwb-base-select-input");return m(),_("div",v,[a(l,null,{default:s(()=>[u(" Einstellungen für Fronius SmartMeter "),f("span",h,"(Modul: "+b(n.$options.name)+")",1)]),_:1}),a(d,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":i.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=t=>r.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),a(c,{title:"Kompatibilitätsmodus",notSelected:"Bitte auswählen",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":i.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=t=>r.updateConfiguration(t,"configuration.variant"))},{help:s(()=>[u(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ")]),_:1},8,["model-value"])])}const C=p(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/counter_sm.vue"]]);export{C as default};
+import{_ as p,p as o,k as m,l as _,A as a,L as s,u,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceFroniusCounterSM",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-fronius-counter-sm"},h={class:"small"};function w(n,e,i,x,V,r){const l=o("openwb-base-heading"),d=o("openwb-base-number-input"),c=o("openwb-base-select-input");return m(),_("div",v,[a(l,null,{default:s(()=>[u(" Einstellungen für Fronius SmartMeter "),f("span",h,"(Modul: "+b(n.$options.name)+")",1)]),_:1}),a(d,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":i.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=t=>r.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),a(c,{title:"Kompatibilitätsmodus",notSelected:"Bitte auswählen",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":i.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=t=>r.updateConfiguration(t,"configuration.variant"))},{help:s(()=>[u(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ")]),_:1},8,["model-value"])])}const C=p(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/counter_sm.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-509acf7c.js b/web/settings/assets/device-03a0ce90.js
similarity index 92%
rename from web/settings/assets/device-509acf7c.js
rename to web/settings/assets/device-03a0ce90.js
index efedc872a3..406a712114 100644
--- a/web/settings/assets/device-509acf7c.js
+++ b/web/settings/assets/device-03a0ce90.js
@@ -1 +1 @@
-import{_ as c,p as i,k as l,l as p,A as s,L as m,u as f,q as _,x as v,y as g,z as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const w={name:"DeviceAlphaess",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},x={class:"device-alphaess"},h={class:"small"};function V(n,e,o,S,B,a){const d=i("openwb-base-heading"),u=i("openwb-base-select-input"),r=i("openwb-base-text-input");return l(),p("div",x,[s(d,null,{default:m(()=>[f(" Einstellungen für Alpha ESS "),_("span",h,"(Modul: "+v(n.$options.name)+")",1)]),_:1}),s(u,{title:"Ausleseart",notSelected:"Bitte auswählen",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":o.configuration.source,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.source"))},null,8,["model-value"]),o.configuration.source==1?(l(),g(r,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"])):b("v-if",!0),s(u,{title:"Firmware Version",notSelected:"Bitte auswählen",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":o.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=t=>a.updateConfiguration(t,"configuration.version"))},null,8,["model-value"])])}const k=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/device.vue"]]);export{k as default};
+import{_ as c,p as i,k as l,l as p,A as s,L as m,u as f,q as _,x as v,y as g,z as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const w={name:"DeviceAlphaess",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},x={class:"device-alphaess"},h={class:"small"};function V(n,e,o,S,B,a){const d=i("openwb-base-heading"),u=i("openwb-base-select-input"),r=i("openwb-base-text-input");return l(),p("div",x,[s(d,null,{default:m(()=>[f(" Einstellungen für Alpha ESS "),_("span",h,"(Modul: "+v(n.$options.name)+")",1)]),_:1}),s(u,{title:"Ausleseart",notSelected:"Bitte auswählen",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":o.configuration.source,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.source"))},null,8,["model-value"]),o.configuration.source==1?(l(),g(r,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"])):b("v-if",!0),s(u,{title:"Firmware Version",notSelected:"Bitte auswählen",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":o.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=t=>a.updateConfiguration(t,"configuration.version"))},null,8,["model-value"])])}const k=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/device.vue"]]);export{k as default};
diff --git a/web/settings/assets/device-3711a41a.js b/web/settings/assets/device-060ee4fd.js
similarity index 85%
rename from web/settings/assets/device-3711a41a.js
rename to web/settings/assets/device-060ee4fd.js
index 557be142ce..5be779b1dc 100644
--- a/web/settings/assets/device-3711a41a.js
+++ b/web/settings/assets/device-060ee4fd.js
@@ -1 +1 @@
-import{_ as r,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSmaHm",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},m={class:"device-smahm"},f={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return d(),p("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für SMA Home Manager / Energy Meter "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät benötigt keine Einstellungen. ")]),_:1})])}const k=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_shm/device.vue"]]);export{k as default};
+import{_ as r,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSmaHm",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},m={class:"device-smahm"},f={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return d(),p("div",m,[o(i,null,{default:s(()=>[a(" Einstellungen für SMA Home Manager / Energy Meter "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät benötigt keine Einstellungen. ")]),_:1})])}const k=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_shm/device.vue"]]);export{k as default};
diff --git a/web/settings/assets/device-11080b2d.js b/web/settings/assets/device-0c072e3b.js
similarity index 91%
rename from web/settings/assets/device-11080b2d.js
rename to web/settings/assets/device-0c072e3b.js
index 6d956204d5..12ae12e2d9 100644
--- a/web/settings/assets/device-11080b2d.js
+++ b/web/settings/assets/device-0c072e3b.js
@@ -1 +1 @@
-import{_ as c,p as o,k as _,l as m,A as a,L as d,u as r,q as f,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSolarwatt",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-solarwatt"},w={class:"small"};function h(t,e,s,x,y,i){const l=o("openwb-base-heading"),u=o("openwb-base-text-input"),p=o("openwb-base-select-input");return _(),m("div",v,[a(l,null,{default:d(()=>[r(" Einstellungen für Solarwatt/My Reserve "),f("span",w,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Abrufmethode",notSelected:"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":s.configuration.energy_manager,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n,"configuration.energy_manager"))},{help:d(()=>[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ")]),_:1},8,["model-value"])])}const V=c(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/device.vue"]]);export{V as default};
+import{_ as c,p as o,k as _,l as m,A as a,L as d,u as r,q as f,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSolarwatt",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-solarwatt"},w={class:"small"};function h(t,e,s,x,y,i){const l=o("openwb-base-heading"),u=o("openwb-base-text-input"),p=o("openwb-base-select-input");return _(),m("div",v,[a(l,null,{default:d(()=>[r(" Einstellungen für Solarwatt/My Reserve "),f("span",w,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Abrufmethode",notSelected:"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":s.configuration.energy_manager,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n,"configuration.energy_manager"))},{help:d(()=>[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ")]),_:1},8,["model-value"])])}const V=c(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-895b9b05.js b/web/settings/assets/device-10d2c4c1.js
similarity index 87%
rename from web/settings/assets/device-895b9b05.js
rename to web/settings/assets/device-10d2c4c1.js
index 43a691c5f8..3534d08ee6 100644
--- a/web/settings/assets/device-895b9b05.js
+++ b/web/settings/assets/device-10d2c4c1.js
@@ -1 +1 @@
-import{_ as r,p as o,k as u,l as p,A as n,L as l,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceKostalSteca",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-kostal-steca"},g={class:"small"};function h(t,e,a,x,k,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return u(),p("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>s.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const B=r(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_steca/device.vue"]]);export{B as default};
+import{_ as r,p as o,k as u,l as p,A as n,L as l,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceKostalSteca",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-kostal-steca"},g={class:"small"};function h(t,e,a,x,k,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return u(),p("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>s.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const B=r(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_steca/device.vue"]]);export{B as default};
diff --git a/web/settings/assets/device-7e999eff.js b/web/settings/assets/device-11808744.js
similarity index 89%
rename from web/settings/assets/device-7e999eff.js
rename to web/settings/assets/device-11808744.js
index ab024b7c25..886cb9257f 100644
--- a/web/settings/assets/device-7e999eff.js
+++ b/web/settings/assets/device-11808744.js
@@ -1 +1 @@
-import{_ as l,p as n,k as _,l as m,A as o,L as s,u as a,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSiemensSentron",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-siemens-sentron"},h={class:"small"};function w(t,e,i,x,S,r){const d=n("openwb-base-heading"),p=n("openwb-base-alert"),u=n("openwb-base-text-input");return _(),m("div",v,[o(d,null,{default:s(()=>[a(" Einstellungen für Siemens Sentron "),f("span",h,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ')]),_:1}),o(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>r.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const q=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens_sentron/device.vue"]]);export{q as default};
+import{_ as l,p as n,k as _,l as m,A as o,L as s,u as a,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSiemensSentron",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-siemens-sentron"},h={class:"small"};function w(t,e,i,x,S,r){const d=n("openwb-base-heading"),p=n("openwb-base-alert"),u=n("openwb-base-text-input");return _(),m("div",v,[o(d,null,{default:s(()=>[a(" Einstellungen für Siemens Sentron "),f("span",h,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ')]),_:1}),o(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>r.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const q=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens_sentron/device.vue"]]);export{q as default};
diff --git a/web/settings/assets/device-a88fff7e.js b/web/settings/assets/device-1ebd188c.js
similarity index 85%
rename from web/settings/assets/device-a88fff7e.js
rename to web/settings/assets/device-1ebd188c.js
index 84996cab92..012fe5679e 100644
--- a/web/settings/assets/device-a88fff7e.js
+++ b/web/settings/assets/device-1ebd188c.js
@@ -1 +1 @@
-import{_ as p,p as n,k as r,l as d,A as o,L as s,u as a,q as u,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const l={name:"DeviceOpenwbBatKit",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-openwb-batkit"},b={class:"small"};function m(e,t,v,g,h,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return r(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openWB Speicher-Kit "),u("span",b,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät erfordert keine Einstellungen. ")]),_:1})])}const $=p(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_bat_kit/device.vue"]]);export{$ as default};
+import{_ as p,p as n,k as r,l as d,A as o,L as s,u as a,q as u,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const l={name:"DeviceOpenwbBatKit",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-openwb-batkit"},b={class:"small"};function m(e,t,v,g,h,w){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return r(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openWB Speicher-Kit "),u("span",b,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät erfordert keine Einstellungen. ")]),_:1})])}const $=p(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_bat_kit/device.vue"]]);export{$ as default};
diff --git a/web/settings/assets/device-28066804.js b/web/settings/assets/device-23fbc413.js
similarity index 90%
rename from web/settings/assets/device-28066804.js
rename to web/settings/assets/device-23fbc413.js
index 124312c519..58c6ee2b36 100644
--- a/web/settings/assets/device-28066804.js
+++ b/web/settings/assets/device-23fbc413.js
@@ -1 +1 @@
-import{_ as u,p as n,k as _,l as m,A as o,L as s,u as a,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceKostalPlenticore",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},h={class:"device-kostalplenticore"},v={class:"small"};function w(t,e,i,x,K,r){const l=n("openwb-base-heading"),d=n("openwb-base-alert"),c=n("openwb-base-text-input");return _(),m("div",h,[o(l,null,{default:s(()=>[a(" Einstellungen für Kostal Plenticore "),f("span",v,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(d,{subtype:"info"},{default:s(()=>[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Energy Smart Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ")]),_:1}),o(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const E=u(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_plenticore/device.vue"]]);export{E as default};
+import{_ as u,p as n,k as _,l as m,A as o,L as s,u as a,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceKostalPlenticore",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},h={class:"device-kostalplenticore"},v={class:"small"};function w(t,e,i,x,K,r){const l=n("openwb-base-heading"),d=n("openwb-base-alert"),c=n("openwb-base-text-input");return _(),m("div",h,[o(l,null,{default:s(()=>[a(" Einstellungen für Kostal Plenticore "),f("span",v,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(d,{subtype:"info"},{default:s(()=>[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Energy Smart Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ")]),_:1}),o(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const E=u(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_plenticore/device.vue"]]);export{E as default};
diff --git a/web/settings/assets/device-ac3bc5b3.js b/web/settings/assets/device-24f0a9e0.js
similarity index 90%
rename from web/settings/assets/device-ac3bc5b3.js
rename to web/settings/assets/device-24f0a9e0.js
index af45027b7b..5cf3a33359 100644
--- a/web/settings/assets/device-ac3bc5b3.js
+++ b/web/settings/assets/device-24f0a9e0.js
@@ -1 +1 @@
-import{_ as l,p as d,k as r,l as p,A as o,L as c,u as m,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceTesla",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-tesla"},b={class:"small"};function w(n,e,a,x,C,i){const u=d("openwb-base-heading"),s=d("openwb-base-text-input");return r(),p("div",v,[o(u,null,{default:c(()=>[m(" Einstellungen für Tesla "),f("span",b,"(Modul: "+_(n.$options.name)+")",1)]),_:1}),o(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),o(s,{title:"E-Mail",subtype:"email",required:"","model-value":a.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.email"))},null,8,["model-value"]),o(s,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/device.vue"]]);export{y as default};
+import{_ as l,p as d,k as r,l as p,A as o,L as c,u as m,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceTesla",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-tesla"},b={class:"small"};function w(n,e,a,x,C,i){const u=d("openwb-base-heading"),s=d("openwb-base-text-input");return r(),p("div",v,[o(u,null,{default:c(()=>[m(" Einstellungen für Tesla "),f("span",b,"(Modul: "+_(n.$options.name)+")",1)]),_:1}),o(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),o(s,{title:"E-Mail",subtype:"email",required:"","model-value":a.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.email"))},null,8,["model-value"]),o(s,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/device.vue"]]);export{y as default};
diff --git a/web/settings/assets/device-bf858f4d.js b/web/settings/assets/device-2a7fcdcd.js
similarity index 88%
rename from web/settings/assets/device-bf858f4d.js
rename to web/settings/assets/device-2a7fcdcd.js
index 54e96be01d..900d341b65 100644
--- a/web/settings/assets/device-bf858f4d.js
+++ b/web/settings/assets/device-2a7fcdcd.js
@@ -1 +1 @@
-import{_ as l,p as n,k as _,l as m,A as o,L as s,u as i,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSiemens",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-siemens"},h={class:"small"};function w(t,e,a,x,S,d){const r=n("openwb-base-heading"),p=n("openwb-base-alert"),u=n("openwb-base-text-input");return _(),m("div",v,[o(r,null,{default:s(()=>[i(" Einstellungen für Siemens "),f("span",h,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[i(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ")]),_:1}),o(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>d.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const y=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/device.vue"]]);export{y as default};
+import{_ as l,p as n,k as _,l as m,A as o,L as s,u as i,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSiemens",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-siemens"},h={class:"small"};function w(t,e,a,x,S,d){const r=n("openwb-base-heading"),p=n("openwb-base-alert"),u=n("openwb-base-text-input");return _(),m("div",v,[o(r,null,{default:s(()=>[i(" Einstellungen für Siemens "),f("span",h,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[i(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ")]),_:1}),o(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>d.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const y=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/device.vue"]]);export{y as default};
diff --git a/web/settings/assets/device-246d5e43.js b/web/settings/assets/device-2b476100.js
similarity index 87%
rename from web/settings/assets/device-246d5e43.js
rename to web/settings/assets/device-2b476100.js
index 466ed6dafc..5a9b7ad084 100644
--- a/web/settings/assets/device-246d5e43.js
+++ b/web/settings/assets/device-2b476100.js
@@ -1 +1 @@
-import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceVarta",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-varta"},g={class:"small"};function h(t,e,a,x,w,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Varta "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const C=u(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/device.vue"]]);export{C as default};
+import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceVarta",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-varta"},g={class:"small"};function h(t,e,a,x,w,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Varta "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const C=u(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-8271ebf3.js b/web/settings/assets/device-2fc1a957.js
similarity index 89%
rename from web/settings/assets/device-8271ebf3.js
rename to web/settings/assets/device-2fc1a957.js
index 35c22388f3..1597914acf 100644
--- a/web/settings/assets/device-8271ebf3.js
+++ b/web/settings/assets/device-2fc1a957.js
@@ -1 +1 @@
-import{_ as r,p as t,k as p,l as c,A as a,L as m,u as _,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceQCellls",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-qcells"},w={class:"small"};function x(n,e,s,C,h,i){const d=t("openwb-base-heading"),u=t("openwb-base-text-input"),l=t("openwb-base-number-input");return p(),c("div",v,[a(d,null,{default:m(()=>[_(" Einstellungen für QCells ESS "),f("span",w,"(Modul: "+b(n.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(l,{title:"Modbus ID","model-value":s.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const B=r(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/device.vue"]]);export{B as default};
+import{_ as r,p as t,k as p,l as c,A as a,L as m,u as _,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceQCellls",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-qcells"},w={class:"small"};function x(n,e,s,C,h,i){const d=t("openwb-base-heading"),u=t("openwb-base-text-input"),l=t("openwb-base-number-input");return p(),c("div",v,[a(d,null,{default:m(()=>[_(" Einstellungen für QCells ESS "),f("span",w,"(Modul: "+b(n.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(l,{title:"Modbus ID","model-value":s.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const B=r(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/device.vue"]]);export{B as default};
diff --git a/web/settings/assets/device-c7f104f4.js b/web/settings/assets/device-333a1847.js
similarity index 91%
rename from web/settings/assets/device-c7f104f4.js
rename to web/settings/assets/device-333a1847.js
index 2ebd87d817..b2bf3c4d98 100644
--- a/web/settings/assets/device-c7f104f4.js
+++ b/web/settings/assets/device-333a1847.js
@@ -1 +1 @@
-import{_ as m,p as t,k as _,l as f,A as o,L as i,u as s,q as r,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceFronius",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},h={class:"device-fronius"},v={class:"small"},w=r("br",null,null,-1);function S(n,e,a,y,x,d){const u=t("openwb-base-heading"),l=t("openwb-base-alert"),c=t("openwb-base-text-input");return _(),f("div",h,[o(u,null,{default:i(()=>[s(" Einstellungen für Fronius "),r("span",v,"(Modul: "+b(n.$options.name)+")",1)]),_:1}),o(l,{subtype:"info"},{default:i(()=>[s(" Die Fronius API muss aktiviert sein."),w,s(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ")]),_:1}),o(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const D=m(g,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/device.vue"]]);export{D as default};
+import{_ as m,p as t,k as _,l as f,A as o,L as i,u as s,q as r,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceFronius",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},h={class:"device-fronius"},v={class:"small"},w=r("br",null,null,-1);function S(n,e,a,y,x,d){const u=t("openwb-base-heading"),l=t("openwb-base-alert"),c=t("openwb-base-text-input");return _(),f("div",h,[o(u,null,{default:i(()=>[s(" Einstellungen für Fronius "),r("span",v,"(Modul: "+b(n.$options.name)+")",1)]),_:1}),o(l,{subtype:"info"},{default:i(()=>[s(" Die Fronius API muss aktiviert sein."),w,s(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ")]),_:1}),o(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const D=m(g,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/device.vue"]]);export{D as default};
diff --git a/web/settings/assets/device-84570e67.js b/web/settings/assets/device-34d66ae0.js
similarity index 87%
rename from web/settings/assets/device-84570e67.js
rename to web/settings/assets/device-34d66ae0.js
index 8a823c8b35..236939d0ab 100644
--- a/web/settings/assets/device-84570e67.js
+++ b/web/settings/assets/device-34d66ae0.js
@@ -1 +1 @@
-import{_ as c,p as o,k as u,l as p,A as n,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceVictron",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-victron"},g={class:"small"};function h(t,e,s,x,w,i){const a=o("openwb-base-heading"),r=o("openwb-base-text-input");return u(),p("div",b,[n(a,null,{default:l(()=>[_(" Einstellungen für Victron "),m("span",g,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.ip_address"))},null,8,["model-value"])])}const B=c(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/device.vue"]]);export{B as default};
+import{_ as c,p as o,k as u,l as p,A as n,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceVictron",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-victron"},g={class:"small"};function h(t,e,s,x,w,i){const a=o("openwb-base-heading"),r=o("openwb-base-text-input");return u(),p("div",b,[n(a,null,{default:l(()=>[_(" Einstellungen für Victron "),m("span",g,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.ip_address"))},null,8,["model-value"])])}const B=c(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/device.vue"]]);export{B as default};
diff --git a/web/settings/assets/device-eb39e5e3.js b/web/settings/assets/device-368b885c.js
similarity index 96%
rename from web/settings/assets/device-eb39e5e3.js
rename to web/settings/assets/device-368b885c.js
index c45fa3f6af..42dd92744a 100644
--- a/web/settings/assets/device-eb39e5e3.js
+++ b/web/settings/assets/device-368b885c.js
@@ -1 +1 @@
-import{_,p as n,k as b,l as f,A as t,L as a,u as o,q as u,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"DeviceSolarEdge",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},v={class:"device-solaredge"},w={class:"small"},B=u("br",null,null,-1);function S(i,e,s,k,W,d){const l=n("openwb-base-heading"),p=n("openwb-base-alert"),c=n("openwb-base-text-input"),m=n("openwb-base-number-input");return b(),f("div",v,[t(l,null,{default:a(()=>[o(" Einstellungen für SolarEdge "),u("span",w,"(Modul: "+g(i.$options.name)+")",1)]),_:1}),t(p,{subtype:"info"},{default:a(()=>[o(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein."),B,o(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren Smarthome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ")]),_:1}),t(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>d.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"]),t(m,{title:"Port",required:"","model-value":s.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=r=>d.updateConfiguration(r,"configuration.port"))},{help:a(()=>[o(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ")]),_:1},8,["model-value"])])}const E=_(h,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/device.vue"]]);export{E as default};
+import{_,p as n,k as b,l as f,A as t,L as a,u as o,q as u,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DeviceSolarEdge",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},v={class:"device-solaredge"},w={class:"small"},B=u("br",null,null,-1);function S(i,e,s,k,W,d){const l=n("openwb-base-heading"),p=n("openwb-base-alert"),c=n("openwb-base-text-input"),m=n("openwb-base-number-input");return b(),f("div",v,[t(l,null,{default:a(()=>[o(" Einstellungen für SolarEdge "),u("span",w,"(Modul: "+g(i.$options.name)+")",1)]),_:1}),t(p,{subtype:"info"},{default:a(()=>[o(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein."),B,o(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren Smarthome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ")]),_:1}),t(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>d.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"]),t(m,{title:"Port",required:"","model-value":s.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=r=>d.updateConfiguration(r,"configuration.port"))},{help:a(()=>[o(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ")]),_:1},8,["model-value"])])}const E=_(h,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/device.vue"]]);export{E as default};
diff --git a/web/settings/assets/device-0ec37631.js b/web/settings/assets/device-3c66abac.js
similarity index 89%
rename from web/settings/assets/device-0ec37631.js
rename to web/settings/assets/device-3c66abac.js
index 1104bea5f4..34b1dfc41e 100644
--- a/web/settings/assets/device-0ec37631.js
+++ b/web/settings/assets/device-3c66abac.js
@@ -1 +1 @@
-import{_ as p,p as t,k as l,l as c,A as a,L as _,u as m,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceOpenwbFlex",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-openwb-flex"},w={class:"small"};function x(o,e,i,h,q,s){const u=t("openwb-base-heading"),r=t("openwb-base-text-input"),d=t("openwb-base-number-input");return l(),c("div",v,[a(u,null,{default:_(()=>[m(" Einstellungen für openWB-Flex "),f("span",w,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),a(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Port",required:"","model-value":i.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const V=p(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_flex/device.vue"]]);export{V as default};
+import{_ as p,p as t,k as l,l as c,A as a,L as _,u as m,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceOpenwbFlex",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-openwb-flex"},w={class:"small"};function x(o,e,i,h,q,s){const u=t("openwb-base-heading"),r=t("openwb-base-text-input"),d=t("openwb-base-number-input");return l(),c("div",v,[a(u,null,{default:_(()=>[m(" Einstellungen für openWB-Flex "),f("span",w,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),a(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Port",required:"","model-value":i.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const V=p(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_flex/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-cc75d571.js b/web/settings/assets/device-44e40f8a.js
similarity index 90%
rename from web/settings/assets/device-cc75d571.js
rename to web/settings/assets/device-44e40f8a.js
index fd0da022a0..9a21c57676 100644
--- a/web/settings/assets/device-cc75d571.js
+++ b/web/settings/assets/device-44e40f8a.js
@@ -1 +1 @@
-import{_ as r,p as u,k as l,l as p,A as o,L as c,u as m,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceBYD",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-byd"},b={class:"small"};function w(n,e,a,x,y,i){const d=u("openwb-base-heading"),s=u("openwb-base-text-input");return l(),p("div",v,[o(d,null,{default:c(()=>[m(" Einstellungen für BYD "),f("span",b,"(Modul: "+_(n.$options.name)+")",1)]),_:1}),o(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),o(s,{title:"Benutzername",subtype:"user",required:"","model-value":a.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),o(s,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const V=r(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/device.vue"]]);export{V as default};
+import{_ as r,p as u,k as l,l as p,A as o,L as c,u as m,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceBYD",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-byd"},b={class:"small"};function w(n,e,a,x,y,i){const d=u("openwb-base-heading"),s=u("openwb-base-text-input");return l(),p("div",v,[o(d,null,{default:c(()=>[m(" Einstellungen für BYD "),f("span",b,"(Modul: "+_(n.$options.name)+")",1)]),_:1}),o(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),o(s,{title:"Benutzername",subtype:"user",required:"","model-value":a.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),o(s,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const V=r(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-9444169d.js b/web/settings/assets/device-48b82d13.js
similarity index 87%
rename from web/settings/assets/device-9444169d.js
rename to web/settings/assets/device-48b82d13.js
index 035fe86c79..9c26f4a08d 100644
--- a/web/settings/assets/device-9444169d.js
+++ b/web/settings/assets/device-48b82d13.js
@@ -1 +1 @@
-import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceBatterX",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-batterx"},g={class:"small"};function x(t,e,a,h,w,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",v,[n(i,null,{default:l(()=>[_(" Einstellungen für BatterX "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/device.vue"]]);export{V as default};
+import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceBatterX",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-batterx"},g={class:"small"};function x(t,e,a,h,w,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",v,[n(i,null,{default:l(()=>[_(" Einstellungen für BatterX "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-1a05e97a.js b/web/settings/assets/device-5442f3f8.js
similarity index 89%
rename from web/settings/assets/device-1a05e97a.js
rename to web/settings/assets/device-5442f3f8.js
index 14555751db..a267fcb9ca 100644
--- a/web/settings/assets/device-1a05e97a.js
+++ b/web/settings/assets/device-5442f3f8.js
@@ -1 +1 @@
-import{_ as l,p as t,k as p,l as c,A as a,L as _,u as m,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceGoodWe",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-goodwe"},w={class:"small"};function x(o,e,i,h,C,s){const d=t("openwb-base-heading"),u=t("openwb-base-text-input"),r=t("openwb-base-number-input");return p(),c("div",v,[a(d,null,{default:_(()=>[m(" Einstellungen für GoodWe "),f("span",w,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(r,{title:"Modbus ID","model-value":i.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/device.vue"]]);export{k as default};
+import{_ as l,p as t,k as p,l as c,A as a,L as _,u as m,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceGoodWe",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-goodwe"},w={class:"small"};function x(o,e,i,h,C,s){const d=t("openwb-base-heading"),u=t("openwb-base-text-input"),r=t("openwb-base-number-input");return p(),c("div",v,[a(d,null,{default:_(()=>[m(" Einstellungen für GoodWe "),f("span",w,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(r,{title:"Modbus ID","model-value":i.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/device.vue"]]);export{k as default};
diff --git a/web/settings/assets/device-81934251.js b/web/settings/assets/device-554ac70d.js
similarity index 85%
rename from web/settings/assets/device-81934251.js
rename to web/settings/assets/device-554ac70d.js
index 72fb67ea82..3842b88b20 100644
--- a/web/settings/assets/device-81934251.js
+++ b/web/settings/assets/device-554ac70d.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceVirtual",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-virtual"},m={class:"small"};function v(e,t,b,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für virtuelle Geräte "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/virtual/device.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as u,A as o,L as s,u as a,q as d,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceVirtual",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-virtual"},m={class:"small"};function v(e,t,b,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),u("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für virtuelle Geräte "),d("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/virtual/device.vue"]]);export{k as default};
diff --git a/web/settings/assets/device-4005e628.js b/web/settings/assets/device-5c559131.js
similarity index 85%
rename from web/settings/assets/device-4005e628.js
rename to web/settings/assets/device-5c559131.js
index f102483d68..a8a5cb28c9 100644
--- a/web/settings/assets/device-4005e628.js
+++ b/web/settings/assets/device-5c559131.js
@@ -1 +1 @@
-import{_ as c,p as n,k as r,l as d,A as o,L as s,u as a,q as u,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const l={name:"DeviceOpenwbPvKit",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-openwb-pvkit"},b={class:"small"};function m(e,t,v,g,w,h){const i=n("openwb-base-heading"),p=n("openwb-base-alert");return r(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openWB PV-Kit "),u("span",b,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät erfordert keine Einstellungen. ")]),_:1})])}const x=c(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_pv_kit/device.vue"]]);export{x as default};
+import{_ as c,p as n,k as r,l as d,A as o,L as s,u as a,q as u,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const l={name:"DeviceOpenwbPvKit",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-openwb-pvkit"},b={class:"small"};function m(e,t,v,g,w,h){const i=n("openwb-base-heading"),p=n("openwb-base-alert");return r(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openWB PV-Kit "),u("span",b,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät erfordert keine Einstellungen. ")]),_:1})])}const x=c(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_pv_kit/device.vue"]]);export{x as default};
diff --git a/web/settings/assets/device-e97ebded.js b/web/settings/assets/device-5e36d94b.js
similarity index 87%
rename from web/settings/assets/device-e97ebded.js
rename to web/settings/assets/device-5e36d94b.js
index 4dec93ed92..4aa3b382ec 100644
--- a/web/settings/assets/device-e97ebded.js
+++ b/web/settings/assets/device-5e36d94b.js
@@ -1 +1 @@
-import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceKostalSEM",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-kostal-sem"},b={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",v,[n(i,null,{default:l(()=>[_(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 "),m("span",b,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_sem/device.vue"]]);export{y as default};
+import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceKostalSEM",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-kostal-sem"},b={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",v,[n(i,null,{default:l(()=>[_(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 "),m("span",b,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_sem/device.vue"]]);export{y as default};
diff --git a/web/settings/assets/device-d4d23cd7.js b/web/settings/assets/device-6223df3d.js
similarity index 87%
rename from web/settings/assets/device-d4d23cd7.js
rename to web/settings/assets/device-6223df3d.js
index ce1ce15f5e..b26d6989d6 100644
--- a/web/settings/assets/device-d4d23cd7.js
+++ b/web/settings/assets/device-6223df3d.js
@@ -1 +1 @@
-import{_ as r,p as t,k as p,l as c,A as o,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSunnyIsland",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-sunnyisland"},v={class:"small"};function h(n,e,s,x,y,a){const i=t("openwb-base-heading"),d=t("openwb-base-text-input");return p(),c("div",g,[o(i,null,{default:l(()=>[_(" Einstellungen für Sunny Island "),m("span",v,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>a.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const B=r(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_island/device.vue"]]);export{B as default};
+import{_ as r,p as t,k as p,l as c,A as o,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSunnyIsland",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-sunnyisland"},v={class:"small"};function h(n,e,s,x,y,a){const i=t("openwb-base-heading"),d=t("openwb-base-text-input");return p(),c("div",g,[o(i,null,{default:l(()=>[_(" Einstellungen für Sunny Island "),m("span",v,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>a.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const B=r(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_island/device.vue"]]);export{B as default};
diff --git a/web/settings/assets/device-e690bc67.js b/web/settings/assets/device-68cea660.js
similarity index 85%
rename from web/settings/assets/device-e690bc67.js
rename to web/settings/assets/device-68cea660.js
index b2ec44ef1c..13549c0b07 100644
--- a/web/settings/assets/device-e690bc67.js
+++ b/web/settings/assets/device-68cea660.js
@@ -1 +1 @@
-import{_ as p,p as n,k as r,l as d,A as o,L as s,u as a,q as u,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const l={name:"DeviceOpenwbEvuKit",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-openwb-evukit"},b={class:"small"};function m(e,t,v,g,w,h){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return r(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openWB EVU-Kit "),u("span",b,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät erfordert keine Einstellungen. ")]),_:1})])}const x=p(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_evu_kit/device.vue"]]);export{x as default};
+import{_ as p,p as n,k as r,l as d,A as o,L as s,u as a,q as u,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const l={name:"DeviceOpenwbEvuKit",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-openwb-evukit"},b={class:"small"};function m(e,t,v,g,w,h){const i=n("openwb-base-heading"),c=n("openwb-base-alert");return r(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openWB EVU-Kit "),u("span",b,"(Modul: "+_(e.$options.name)+")",1)]),_:1}),o(c,{subtype:"info"},{default:s(()=>[a(" Dieses Gerät erfordert keine Einstellungen. ")]),_:1})])}const x=p(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_evu_kit/device.vue"]]);export{x as default};
diff --git a/web/settings/assets/device-95bb6ed4.js b/web/settings/assets/device-71f6eb4f.js
similarity index 89%
rename from web/settings/assets/device-95bb6ed4.js
rename to web/settings/assets/device-71f6eb4f.js
index cdce175734..8324d75d3b 100644
--- a/web/settings/assets/device-95bb6ed4.js
+++ b/web/settings/assets/device-71f6eb4f.js
@@ -1 +1 @@
-import{_ as d,p as u,k as l,l as p,A as n,L as c,u as m,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSmartMe",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-smart-me"},b={class:"small"};function w(t,e,a,x,B,s){const r=u("openwb-base-heading"),i=u("openwb-base-text-input");return l(),p("div",v,[n(r,null,{default:c(()=>[m(" Einstellungen für smart-me "),f("span",b,"(Modul: "+_(t.$options.name)+")",1)]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":a.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=o=>s.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>s.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])])}const h=d(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/device.vue"]]);export{h as default};
+import{_ as d,p as u,k as l,l as p,A as n,L as c,u as m,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSmartMe",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-smart-me"},b={class:"small"};function w(t,e,a,x,B,s){const r=u("openwb-base-heading"),i=u("openwb-base-text-input");return l(),p("div",v,[n(r,null,{default:c(()=>[m(" Einstellungen für smart-me "),f("span",b,"(Modul: "+_(t.$options.name)+")",1)]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":a.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=o=>s.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>s.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])])}const h=d(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/device.vue"]]);export{h as default};
diff --git a/web/settings/assets/device-f422a199.js b/web/settings/assets/device-736742cc.js
similarity index 87%
rename from web/settings/assets/device-f422a199.js
rename to web/settings/assets/device-736742cc.js
index 47dd5cf1f7..659afb50be 100644
--- a/web/settings/assets/device-f422a199.js
+++ b/web/settings/assets/device-736742cc.js
@@ -1 +1 @@
-import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceStuder",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-studer"},v={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für Studer "),m("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const C=u(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/device.vue"]]);export{C as default};
+import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceStuder",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-studer"},v={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für Studer "),m("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const C=u(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-e95c0504.js b/web/settings/assets/device-76b564cb.js
similarity index 95%
rename from web/settings/assets/device-e95c0504.js
rename to web/settings/assets/device-76b564cb.js
index fbb49bde05..5d498f8d95 100644
--- a/web/settings/assets/device-e95c0504.js
+++ b/web/settings/assets/device-76b564cb.js
@@ -1 +1 @@
-import{_ as p,p as d,k as c,l as m,A as n,L as r,u,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceFems",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-fems"},b={class:"small"};function w(o,e,s,x,C,a){const l=d("openwb-base-heading"),i=d("openwb-base-text-input");return c(),m("div",v,[n(l,null,{default:r(()=>[u(" Einstellungen für openEMS, Fenecon FEMS, Kaco Hy-Control "),f("span",b,"(Modul: "+_(o.$options.name)+")",1)]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":s.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.password"))},{help:r(()=>[u(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ")]),_:1},8,["model-value"])])}const B=p(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/device.vue"]]);export{B as default};
+import{_ as p,p as d,k as c,l as m,A as n,L as r,u,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceFems",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-fems"},b={class:"small"};function w(o,e,s,x,C,a){const l=d("openwb-base-heading"),i=d("openwb-base-text-input");return c(),m("div",v,[n(l,null,{default:r(()=>[u(" Einstellungen für openEMS, Fenecon FEMS, Kaco Hy-Control "),f("span",b,"(Modul: "+_(o.$options.name)+")",1)]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":s.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.password"))},{help:r(()=>[u(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ")]),_:1},8,["model-value"])])}const B=p(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/device.vue"]]);export{B as default};
diff --git a/web/settings/assets/device-bfd97b22.js b/web/settings/assets/device-7700d0d1.js
similarity index 91%
rename from web/settings/assets/device-bfd97b22.js
rename to web/settings/assets/device-7700d0d1.js
index d1ed6d4ed4..38e8c2c868 100644
--- a/web/settings/assets/device-bfd97b22.js
+++ b/web/settings/assets/device-7700d0d1.js
@@ -1 +1 @@
-import{_ as m,p as o,k as _,l as b,A as i,L as u,u as a,q as d,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceHuawei",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-huawei"},h={class:"small"},w=d("br",null,null,-1);function x(n,e,s,D,I,r){const l=o("openwb-base-heading"),c=o("openwb-base-text-input"),p=o("openwb-base-number-input");return _(),b("div",v,[i(l,null,{default:u(()=>[a(" Einstellungen für Huawei "),d("span",h,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),i(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>r.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Modbus ID","model-value":s.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=t=>r.updateConfiguration(t,"configuration.modbus_id"))},{help:u(()=>[a(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.'),w,a(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ")]),_:1},8,["model-value"])])}const q=m(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/device.vue"]]);export{q as default};
+import{_ as m,p as o,k as _,l as b,A as i,L as u,u as a,q as d,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceHuawei",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-huawei"},h={class:"small"},w=d("br",null,null,-1);function x(n,e,s,D,I,r){const l=o("openwb-base-heading"),c=o("openwb-base-text-input"),p=o("openwb-base-number-input");return _(),b("div",v,[i(l,null,{default:u(()=>[a(" Einstellungen für Huawei "),d("span",h,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),i(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>r.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Modbus ID","model-value":s.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=t=>r.updateConfiguration(t,"configuration.modbus_id"))},{help:u(()=>[a(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.'),w,a(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ")]),_:1},8,["model-value"])])}const q=m(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/device.vue"]]);export{q as default};
diff --git a/web/settings/assets/device-3fe4b5f3.js b/web/settings/assets/device-7fbce287.js
similarity index 86%
rename from web/settings/assets/device-3fe4b5f3.js
rename to web/settings/assets/device-7fbce287.js
index 003addbf60..eaad5563d4 100644
--- a/web/settings/assets/device-3fe4b5f3.js
+++ b/web/settings/assets/device-7fbce287.js
@@ -1 +1 @@
-import{_ as u,p as o,k as c,l as p,A as n,L as l,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceRCT",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-rct"},g={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return c(),p("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für RCT "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/device.vue"]]);export{V as default};
+import{_ as u,p as o,k as c,l as p,A as n,L as l,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceRCT",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-rct"},g={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return c(),p("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für RCT "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-3330c205.js b/web/settings/assets/device-84c0ab33.js
similarity index 90%
rename from web/settings/assets/device-3330c205.js
rename to web/settings/assets/device-84c0ab33.js
index 40ab131990..f612ae973a 100644
--- a/web/settings/assets/device-3330c205.js
+++ b/web/settings/assets/device-84c0ab33.js
@@ -1 +1 @@
-import{_ as l,p as u,k as p,l as m,A as t,L as c,u as _,q as f,x as v}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSolarView",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-solar-view"},w={class:"small"};function x(n,e,i,V,C,a){const s=u("openwb-base-heading"),r=u("openwb-base-text-input"),d=u("openwb-base-number-input");return p(),m("div",g,[t(s,null,{default:c(()=>[_(" Einstellungen für SolarView "),f("span",w,"(Modul: "+v(n.$options.name)+")",1)]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>a.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":i.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>a.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Timeout",required:"","model-value":i.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=o=>a.updateConfiguration(o,"configuration.timeout"))},null,8,["model-value"])])}const h=l(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/device.vue"]]);export{h as default};
+import{_ as l,p as u,k as p,l as m,A as t,L as c,u as _,q as f,x as v}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSolarView",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-solar-view"},w={class:"small"};function x(n,e,i,V,C,a){const s=u("openwb-base-heading"),r=u("openwb-base-text-input"),d=u("openwb-base-number-input");return p(),m("div",g,[t(s,null,{default:c(()=>[_(" Einstellungen für SolarView "),f("span",w,"(Modul: "+v(n.$options.name)+")",1)]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>a.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":i.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>a.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Timeout",required:"","model-value":i.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=o=>a.updateConfiguration(o,"configuration.timeout"))},null,8,["model-value"])])}const h=l(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/device.vue"]]);export{h as default};
diff --git a/web/settings/assets/device-0be142e9.js b/web/settings/assets/device-9114b4f4.js
similarity index 95%
rename from web/settings/assets/device-0be142e9.js
rename to web/settings/assets/device-9114b4f4.js
index 05a628df65..694217ef9d 100644
--- a/web/settings/assets/device-0be142e9.js
+++ b/web/settings/assets/device-9114b4f4.js
@@ -1 +1 @@
-import{_ as b,p as o,k as h,l as g,A as s,L as u,u as t,q as n,x as i}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const m={name:"DeviceSonnenbatterie",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},computed:{linkRestApi1(){return"http://"+this.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.configuration.ip_address+"/api/v2/status"}},methods:{updateConfiguration(a,r=void 0){this.$emit("update:configuration",{value:a,object:r})}}},v={class:"device-sonnenbatterie"},A={class:"small"},k={style:{display:"block"}},w=n("br",null,null,-1),B=["href"],I=n("br",null,null,-1),J=["href"],R=n("br",null,null,-1),x=["href"],P=n("br",null,null,-1),O=["href"];function S(a,r,d,C,y,e){const p=o("openwb-base-heading"),c=o("openwb-base-alert"),_=o("openwb-base-text-input"),f=o("openwb-base-select-input");return h(),g("div",v,[s(p,null,{default:u(()=>[t(" Einstellungen für SonnenBatterie "),n("span",A,"(Modul: "+i(a.$options.name)+")",1)]),_:1}),s(c,{subtype:"info"},{default:u(()=>[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung. ')]),_:1}),s(_,{title:"IP oder Hostname",subtype:"host",required:"","model-value":d.configuration.ip_address,"onUpdate:modelValue":r[0]||(r[0]=l=>e.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"]),s(f,{title:"Datenverbindung",required:"",notSelected:"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":d.configuration.variant,"onUpdate:modelValue":r[1]||(r[1]=l=>e.updateConfiguration(l,"configuration.variant"))},{help:u(()=>[n("span",k,[t(" Je nach Sonnen Batterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:"),w,t(" Rest-API 1: "),n("a",{href:e.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},i(e.linkRestApi1),9,B),I,t(" Rest-API 2: "),n("a",{href:e.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},i(e.linkRestApi2),9,J),R,t(" JSON-API v1: "),n("a",{href:e.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},i(e.linkJsonApi1),9,x),P,t(" JSON-API v2: "),n("a",{href:e.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},i(e.linkJsonApi2),9,O)])]),_:1},8,["options","model-value"])])}const E=b(m,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnenbatterie/device.vue"]]);export{E as default};
+import{_ as b,p as o,k as h,l as g,A as s,L as u,u as t,q as n,x as i}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const m={name:"DeviceSonnenbatterie",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},computed:{linkRestApi1(){return"http://"+this.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.configuration.ip_address+"/api/v2/status"}},methods:{updateConfiguration(a,r=void 0){this.$emit("update:configuration",{value:a,object:r})}}},v={class:"device-sonnenbatterie"},A={class:"small"},k={style:{display:"block"}},w=n("br",null,null,-1),B=["href"],I=n("br",null,null,-1),J=["href"],R=n("br",null,null,-1),x=["href"],P=n("br",null,null,-1),O=["href"];function S(a,r,d,C,y,e){const p=o("openwb-base-heading"),c=o("openwb-base-alert"),_=o("openwb-base-text-input"),f=o("openwb-base-select-input");return h(),g("div",v,[s(p,null,{default:u(()=>[t(" Einstellungen für SonnenBatterie "),n("span",A,"(Modul: "+i(a.$options.name)+")",1)]),_:1}),s(c,{subtype:"info"},{default:u(()=>[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung. ')]),_:1}),s(_,{title:"IP oder Hostname",subtype:"host",required:"","model-value":d.configuration.ip_address,"onUpdate:modelValue":r[0]||(r[0]=l=>e.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"]),s(f,{title:"Datenverbindung",required:"",notSelected:"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":d.configuration.variant,"onUpdate:modelValue":r[1]||(r[1]=l=>e.updateConfiguration(l,"configuration.variant"))},{help:u(()=>[n("span",k,[t(" Je nach Sonnen Batterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:"),w,t(" Rest-API 1: "),n("a",{href:e.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},i(e.linkRestApi1),9,B),I,t(" Rest-API 2: "),n("a",{href:e.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},i(e.linkRestApi2),9,J),R,t(" JSON-API v1: "),n("a",{href:e.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},i(e.linkJsonApi1),9,x),P,t(" JSON-API v2: "),n("a",{href:e.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},i(e.linkJsonApi2),9,O)])]),_:1},8,["options","model-value"])])}const E=b(m,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnenbatterie/device.vue"]]);export{E as default};
diff --git a/web/settings/assets/device-3f5084e0.js b/web/settings/assets/device-91520693.js
similarity index 87%
rename from web/settings/assets/device-3f5084e0.js
rename to web/settings/assets/device-91520693.js
index b1855dc34b..fd9910526e 100644
--- a/web/settings/assets/device-3f5084e0.js
+++ b/web/settings/assets/device-91520693.js
@@ -1 +1 @@
-import{_ as d,p as o,k as p,l as c,A as n,L as l,u as _,q as m,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceHuaweiSmartLogger",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-huawei-smart-logger"},v={class:"small"};function w(t,e,a,h,x,s){const i=o("openwb-base-heading"),r=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Huawei SmartLogger "),m("span",v,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),n(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>s.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const C=d(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei_smartlogger/device.vue"]]);export{C as default};
+import{_ as d,p as o,k as p,l as c,A as n,L as l,u as _,q as m,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceHuaweiSmartLogger",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-huawei-smart-logger"},v={class:"small"};function w(t,e,a,h,x,s){const i=o("openwb-base-heading"),r=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Huawei SmartLogger "),m("span",v,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),n(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>s.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const C=d(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei_smartlogger/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-4a98b784.js b/web/settings/assets/device-94f0ef9b.js
similarity index 88%
rename from web/settings/assets/device-4a98b784.js
rename to web/settings/assets/device-94f0ef9b.js
index 1682927efe..71ef7b5369 100644
--- a/web/settings/assets/device-4a98b784.js
+++ b/web/settings/assets/device-94f0ef9b.js
@@ -1 +1 @@
-import{_ as c,p as o,k as l,l as _,A as n,L as s,u as a,q as g,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceVZLogger",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-vzlogger"},b={class:"small"};function h(t,e,i,w,x,d){const r=o("openwb-base-heading"),p=o("openwb-base-text-input");return l(),_("div",v,[n(r,null,{default:s(()=>[a(" Einstellungen für VZLogger "),g("span",b,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>d.updateConfiguration(u,"configuration.ip_address"))},{help:s(()=>[a(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ")]),_:1},8,["model-value"])])}const C=c(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/device.vue"]]);export{C as default};
+import{_ as c,p as o,k as l,l as _,A as n,L as s,u as a,q as g,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceVZLogger",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-vzlogger"},b={class:"small"};function h(t,e,i,w,x,d){const r=o("openwb-base-heading"),p=o("openwb-base-text-input");return l(),_("div",v,[n(r,null,{default:s(()=>[a(" Einstellungen für VZLogger "),g("span",b,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>d.updateConfiguration(u,"configuration.ip_address"))},{help:s(()=>[a(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ")]),_:1},8,["model-value"])])}const C=c(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-e41e1249.js b/web/settings/assets/device-9c25dea2.js
similarity index 89%
rename from web/settings/assets/device-e41e1249.js
rename to web/settings/assets/device-9c25dea2.js
index 72590ae02f..aa802e44af 100644
--- a/web/settings/assets/device-e41e1249.js
+++ b/web/settings/assets/device-9c25dea2.js
@@ -1 +1 @@
-import{_ as c,p as o,k as _,l as m,A as i,L as r,u as n,q as a,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceHttp",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-http"},v={class:"small"},h=a("br",null,null,-1);function w(t,e,s,x,B,d){const p=o("openwb-base-heading"),u=o("openwb-base-text-input");return _(),m("div",b,[i(p,null,{default:r(()=>[n(" Einstellungen für Http "),a("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),i(u,{title:"Server-URL",subtype:"url",required:"","model-value":s.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=l=>d.updateConfiguration(l,"configuration.url"))},{help:r(()=>[n(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt."),h,n(" Beispiel: http://mein.server:8080 ")]),_:1},8,["model-value"])])}const C=c(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/http/device.vue"]]);export{C as default};
+import{_ as c,p as o,k as _,l as m,A as i,L as r,u as n,q as a,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceHttp",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-http"},v={class:"small"},h=a("br",null,null,-1);function w(t,e,s,x,B,d){const p=o("openwb-base-heading"),u=o("openwb-base-text-input");return _(),m("div",b,[i(p,null,{default:r(()=>[n(" Einstellungen für Http "),a("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),i(u,{title:"Server-URL",subtype:"url",required:"","model-value":s.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=l=>d.updateConfiguration(l,"configuration.url"))},{help:r(()=>[n(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt."),h,n(" Beispiel: http://mein.server:8080 ")]),_:1},8,["model-value"])])}const C=c(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/http/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-6422d305.js b/web/settings/assets/device-9f1d6204.js
similarity index 89%
rename from web/settings/assets/device-6422d305.js
rename to web/settings/assets/device-9f1d6204.js
index cbe5fc2624..6ec69ae43d 100644
--- a/web/settings/assets/device-6422d305.js
+++ b/web/settings/assets/device-9f1d6204.js
@@ -1 +1 @@
-import{_ as l,p as n,k as _,l as m,A as o,L as s,u as a,q as b,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceSunnyBoy",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},y={class:"device-sunnyboy"},g={class:"small"};function w(t,e,i,h,x,r){const d=n("openwb-base-heading"),u=n("openwb-base-alert"),p=n("openwb-base-text-input");return _(),m("div",y,[o(d,null,{default:s(()=>[a(" Einstellungen für SMA Sunny Boy/Tripower "),b("span",g,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(u,{subtype:"info"},{default:s(()=>[a(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ')]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>r.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const S=l(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/device.vue"]]);export{S as default};
+import{_ as l,p as n,k as _,l as m,A as o,L as s,u as a,q as b,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceSunnyBoy",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},y={class:"device-sunnyboy"},g={class:"small"};function w(t,e,i,h,x,r){const d=n("openwb-base-heading"),u=n("openwb-base-alert"),p=n("openwb-base-text-input");return _(),m("div",y,[o(d,null,{default:s(()=>[a(" Einstellungen für SMA Sunny Boy/Tripower "),b("span",g,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(u,{subtype:"info"},{default:s(()=>[a(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ')]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>r.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const S=l(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/device.vue"]]);export{S as default};
diff --git a/web/settings/assets/device-52389f33.js b/web/settings/assets/device-9f8cfcd3.js
similarity index 87%
rename from web/settings/assets/device-52389f33.js
rename to web/settings/assets/device-9f8cfcd3.js
index 58935203b4..796be96bcd 100644
--- a/web/settings/assets/device-52389f33.js
+++ b/web/settings/assets/device-9f8cfcd3.js
@@ -1 +1 @@
-import{_ as u,p as t,k as l,l as p,A as n,L as c,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSolarLog",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-solar_log"},b={class:"small"};function h(o,e,a,x,w,s){const i=t("openwb-base-heading"),d=t("openwb-base-text-input");return l(),p("div",v,[n(i,null,{default:c(()=>[_(" Einstellungen für Solar-Log "),f("span",b,"(Modul: "+m(o.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/device.vue"]]);export{V as default};
+import{_ as u,p as t,k as l,l as p,A as n,L as c,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSolarLog",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-solar_log"},b={class:"small"};function h(o,e,a,x,w,s){const i=t("openwb-base-heading"),d=t("openwb-base-text-input");return l(),p("div",v,[n(i,null,{default:c(()=>[_(" Einstellungen für Solar-Log "),f("span",b,"(Modul: "+m(o.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-d57c20ac.js b/web/settings/assets/device-ae65393a.js
similarity index 89%
rename from web/settings/assets/device-d57c20ac.js
rename to web/settings/assets/device-ae65393a.js
index afaa74207e..67dffb0425 100644
--- a/web/settings/assets/device-d57c20ac.js
+++ b/web/settings/assets/device-ae65393a.js
@@ -1 +1 @@
-import{_ as r,p as u,k as l,l as c,A as n,L as p,u as f,q as m,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceDiscovergy",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-discovergy"},b={class:"small"};function w(o,e,s,y,x,a){const d=u("openwb-base-heading"),i=u("openwb-base-text-input");return l(),c("div",v,[n(d,null,{default:p(()=>[f(" Einstellungen für Discovergy "),m("span",b,"(Modul: "+_(o.$options.name)+")",1)]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":s.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":s.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const V=r(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/device.vue"]]);export{V as default};
+import{_ as r,p as u,k as l,l as c,A as n,L as p,u as f,q as m,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceDiscovergy",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-discovergy"},b={class:"small"};function w(o,e,s,y,x,a){const d=u("openwb-base-heading"),i=u("openwb-base-text-input");return l(),c("div",v,[n(d,null,{default:p(()=>[f(" Einstellungen für Discovergy "),m("span",b,"(Modul: "+_(o.$options.name)+")",1)]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":s.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":s.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const V=r(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-69672183.js b/web/settings/assets/device-ae9d7f6e.js
similarity index 92%
rename from web/settings/assets/device-69672183.js
rename to web/settings/assets/device-ae9d7f6e.js
index 43d487441e..3b865577fd 100644
--- a/web/settings/assets/device-69672183.js
+++ b/web/settings/assets/device-ae9d7f6e.js
@@ -1 +1 @@
-import{_ as c,p as t,k as _,l as b,A as o,L as s,u as d,q as f,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceSungrow",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(a,e=void 0){this.$emit("update:configuration",{value:a,object:e})}}},w={class:"device-sungrow"},x={class:"small"};function h(a,e,i,q,C,u){const l=t("openwb-base-heading"),p=t("openwb-base-alert"),m=t("openwb-base-text-input"),r=t("openwb-base-number-input");return _(),b("div",w,[o(l,null,{default:s(()=>[d(" Einstellungen für Sungrow "),f("span",x,"(Modul: "+g(a.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[d(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongels aktuell halten. ")]),_:1}),o(m,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),o(r,{title:"Port",required:"",min:1,max:65535,"model-value":i.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),o(r,{title:"Geräteadresse",required:"",min:1,max:255,"model-value":i.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=n=>u.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const S=c(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/device.vue"]]);export{S as default};
+import{_ as c,p as t,k as _,l as b,A as o,L as s,u as d,q as f,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceSungrow",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(a,e=void 0){this.$emit("update:configuration",{value:a,object:e})}}},w={class:"device-sungrow"},x={class:"small"};function h(a,e,i,q,C,u){const l=t("openwb-base-heading"),p=t("openwb-base-alert"),m=t("openwb-base-text-input"),r=t("openwb-base-number-input");return _(),b("div",w,[o(l,null,{default:s(()=>[d(" Einstellungen für Sungrow "),f("span",x,"(Modul: "+g(a.$options.name)+")",1)]),_:1}),o(p,{subtype:"info"},{default:s(()=>[d(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongels aktuell halten. ")]),_:1}),o(m,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),o(r,{title:"Port",required:"",min:1,max:65535,"model-value":i.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),o(r,{title:"Geräteadresse",required:"",min:1,max:255,"model-value":i.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=n=>u.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const S=c(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/device.vue"]]);export{S as default};
diff --git a/web/settings/assets/device-e5846fb7.js b/web/settings/assets/device-b04bd256.js
similarity index 89%
rename from web/settings/assets/device-e5846fb7.js
rename to web/settings/assets/device-b04bd256.js
index 01fea14b36..fee952a876 100644
--- a/web/settings/assets/device-e5846fb7.js
+++ b/web/settings/assets/device-b04bd256.js
@@ -1 +1 @@
-import{_ as r,p as d,k as l,l as p,A as n,L as c,u as f,q as m,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceLG",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-lg"},b={class:"small"};function w(t,e,a,x,V,s){const u=d("openwb-base-heading"),i=d("openwb-base-text-input");return l(),p("div",v,[n(u,null,{default:c(()=>[f(" Einstellungen für LG ESS V1.0 "),m("span",b,"(Modul: "+_(t.$options.name)+")",1)]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>s.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>s.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])])}const q=r(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/device.vue"]]);export{q as default};
+import{_ as r,p as d,k as l,l as p,A as n,L as c,u as f,q as m,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceLG",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-lg"},b={class:"small"};function w(t,e,a,x,V,s){const u=d("openwb-base-heading"),i=d("openwb-base-text-input");return l(),p("div",v,[n(u,null,{default:c(()=>[f(" Einstellungen für LG ESS V1.0 "),m("span",b,"(Modul: "+_(t.$options.name)+")",1)]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>s.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>s.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])])}const q=r(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/device.vue"]]);export{q as default};
diff --git a/web/settings/assets/device-d6905669.js b/web/settings/assets/device-b59b9c77.js
similarity index 87%
rename from web/settings/assets/device-d6905669.js
rename to web/settings/assets/device-b59b9c77.js
index 212be1a2e0..d0f64b8f58 100644
--- a/web/settings/assets/device-d6905669.js
+++ b/web/settings/assets/device-b59b9c77.js
@@ -1 +1 @@
-import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceSmartfox",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-smartfox"},g={class:"small"};function x(t,e,a,h,w,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Smartfox "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/device.vue"]]);export{V as default};
+import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceSmartfox",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-smartfox"},g={class:"small"};function x(t,e,a,h,w,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Smartfox "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-c365f5a7.js b/web/settings/assets/device-c0377afe.js
similarity index 87%
rename from web/settings/assets/device-c365f5a7.js
rename to web/settings/assets/device-c0377afe.js
index 7197e8bdcf..9f25fa773b 100644
--- a/web/settings/assets/device-c365f5a7.js
+++ b/web/settings/assets/device-c0377afe.js
@@ -1 +1 @@
-import{_ as u,p as t,k as p,l as c,A as n,L as l,u as _,q as m,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceSmaWebbox",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-sma-webbox"},v={class:"small"};function x(o,e,s,w,h,a){const i=t("openwb-base-heading"),d=t("openwb-base-text-input");return p(),c("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für SMA Webbox "),m("span",v,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const C=u(f,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_webbox/device.vue"]]);export{C as default};
+import{_ as u,p as t,k as p,l as c,A as n,L as l,u as _,q as m,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceSmaWebbox",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-sma-webbox"},v={class:"small"};function x(o,e,s,w,h,a){const i=t("openwb-base-heading"),d=t("openwb-base-text-input");return p(),c("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für SMA Webbox "),m("span",v,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const C=u(f,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_webbox/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-1034f28e.js b/web/settings/assets/device-c49a0ced.js
similarity index 94%
rename from web/settings/assets/device-1034f28e.js
rename to web/settings/assets/device-c49a0ced.js
index 34a8645f49..feedad292a 100644
--- a/web/settings/assets/device-1034f28e.js
+++ b/web/settings/assets/device-c49a0ced.js
@@ -1 +1 @@
-import{_ as r,p as u,k as p,l,A as n,L as c,u as m,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSunways",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-sunways"},w={class:"small"};function b(t,e,s,y,x,a){const d=u("openwb-base-heading"),i=u("openwb-base-text-input");return p(),l("div",v,[n(d,null,{default:c(()=>[m(" Einstellungen für Sunways "),_("span",w,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>a.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":s.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>a.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])])}const C=r(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/device.vue"]]);export{C as default};
+import{_ as r,p as u,k as p,l,A as n,L as c,u as m,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSunways",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-sunways"},w={class:"small"};function b(t,e,s,y,x,a){const d=u("openwb-base-heading"),i=u("openwb-base-text-input");return p(),l("div",v,[n(d,null,{default:c(()=>[m(" Einstellungen für Sunways "),_("span",w,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>a.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":s.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>a.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])])}const C=r(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-3ddc3e24.js b/web/settings/assets/device-c553c1ee.js
similarity index 87%
rename from web/settings/assets/device-3ddc3e24.js
rename to web/settings/assets/device-c553c1ee.js
index f32acce687..6b2900d195 100644
--- a/web/settings/assets/device-3ddc3e24.js
+++ b/web/settings/assets/device-c553c1ee.js
@@ -1 +1 @@
-import{_ as r,p as o,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceYouless",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-youless"},g={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Youless "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>a.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const C=r(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/device.vue"]]);export{C as default};
+import{_ as r,p as o,k as p,l as c,A as n,L as l,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceYouless",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-youless"},g={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Youless "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>a.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const C=r(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-1548812a.js b/web/settings/assets/device-c5eaae23.js
similarity index 89%
rename from web/settings/assets/device-1548812a.js
rename to web/settings/assets/device-c5eaae23.js
index 23b9d732e1..9a9f916647 100644
--- a/web/settings/assets/device-1548812a.js
+++ b/web/settings/assets/device-c5eaae23.js
@@ -1 +1 @@
-import{_ as l,p as n,k as _,l as m,A as o,L as a,u as s,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"DeviceEnphase",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-enphase"},g={class:"small"};function w(t,e,i,x,y,r){const p=n("openwb-base-heading"),u=n("openwb-base-alert"),d=n("openwb-base-text-input");return _(),m("div",v,[o(p,null,{default:a(()=>[s(" Einstellungen für Enphase Envoy / IQ Gateway "),f("span",g,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(u,{subtype:"info"},{default:a(()=>[s(" Geräte mit Firmware-Versionen 7.0 oder neuer werden derzeit nicht unterstützt. ")]),_:1}),o(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=c=>r.updateConfiguration(c,"configuration.hostname"))},null,8,["model-value"])])}const q=l(h,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/device.vue"]]);export{q as default};
+import{_ as l,p as n,k as _,l as m,A as o,L as a,u as s,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DeviceEnphase",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-enphase"},g={class:"small"};function w(t,e,i,x,y,r){const p=n("openwb-base-heading"),u=n("openwb-base-alert"),d=n("openwb-base-text-input");return _(),m("div",v,[o(p,null,{default:a(()=>[s(" Einstellungen für Enphase Envoy / IQ Gateway "),f("span",g,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(u,{subtype:"info"},{default:a(()=>[s(" Geräte mit Firmware-Versionen 7.0 oder neuer werden derzeit nicht unterstützt. ")]),_:1}),o(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=c=>r.updateConfiguration(c,"configuration.hostname"))},null,8,["model-value"])])}const q=l(h,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/device.vue"]]);export{q as default};
diff --git a/web/settings/assets/device-f356c73d.js b/web/settings/assets/device-c7a69fb7.js
similarity index 86%
rename from web/settings/assets/device-f356c73d.js
rename to web/settings/assets/device-c7a69fb7.js
index 43287f748a..5b06f4c7fb 100644
--- a/web/settings/assets/device-f356c73d.js
+++ b/web/settings/assets/device-c7a69fb7.js
@@ -1 +1 @@
-import{_ as c,p as o,k as u,l as p,A as n,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceE3dc",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-e3dc"},v={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return u(),p("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für E3DC "),m("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.address"))},null,8,["model-value"])])}const B=c(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/device.vue"]]);export{B as default};
+import{_ as c,p as o,k as u,l as p,A as n,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceE3dc",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-e3dc"},v={class:"small"};function h(t,e,s,x,w,a){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return u(),p("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für E3DC "),m("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":s.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.address"))},null,8,["model-value"])])}const B=c(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/device.vue"]]);export{B as default};
diff --git a/web/settings/assets/device-49750792.js b/web/settings/assets/device-cdede991.js
similarity index 88%
rename from web/settings/assets/device-49750792.js
rename to web/settings/assets/device-cdede991.js
index 7c503c5b08..487b23fe1a 100644
--- a/web/settings/assets/device-49750792.js
+++ b/web/settings/assets/device-cdede991.js
@@ -1 +1 @@
-import{_ as l,p as s,k as c,l as p,A as o,L as a,u as n,q as i,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceMqtt",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},m={class:"device-mqtt"},f={class:"small"},b=i("br",null,null,-1);function g(e,t,v,h,w,k){const r=s("openwb-base-heading"),d=s("openwb-base-alert");return c(),p("div",m,[o(r,null,{default:a(()=>[n(" Einstellungen für MQTT "),i("span",f,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(d,{subtype:"info"},{default:a(()=>[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an spezielle Topics im Broker gesendet werden."),b,n(" Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ")]),_:1})])}const $=l(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mqtt/device.vue"]]);export{$ as default};
+import{_ as l,p as s,k as c,l as p,A as o,L as a,u as n,q as i,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceMqtt",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},m={class:"device-mqtt"},f={class:"small"},b=i("br",null,null,-1);function g(e,t,v,h,w,k){const r=s("openwb-base-heading"),d=s("openwb-base-alert");return c(),p("div",m,[o(r,null,{default:a(()=>[n(" Einstellungen für MQTT "),i("span",f,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(d,{subtype:"info"},{default:a(()=>[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an spezielle Topics im Broker gesendet werden."),b,n(" Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ")]),_:1})])}const $=l(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mqtt/device.vue"]]);export{$ as default};
diff --git a/web/settings/assets/device-e67da7c1.js b/web/settings/assets/device-d5aedcd9.js
similarity index 87%
rename from web/settings/assets/device-e67da7c1.js
rename to web/settings/assets/device-d5aedcd9.js
index cabe4ab9b0..d9d0dc119f 100644
--- a/web/settings/assets/device-e67da7c1.js
+++ b/web/settings/assets/device-d5aedcd9.js
@@ -1 +1 @@
-import{_ as u,p as t,k as c,l as p,A as a,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceCarloGavazzi",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-carlogavazzi"},b={class:"small"};function z(o,e,n,h,x,s){const i=t("openwb-base-heading"),r=t("openwb-base-text-input");return c(),p("div",g,[a(i,null,{default:l(()=>[_(" Einstellungen für Carlo Gavazzi "),m("span",b,"(Modul: "+f(o.$options.name)+")",1)]),_:1}),a(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=d=>s.updateConfiguration(d,"configuration.ip_address"))},null,8,["model-value"])])}const q=u(v,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/device.vue"]]);export{q as default};
+import{_ as u,p as t,k as c,l as p,A as a,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceCarloGavazzi",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-carlogavazzi"},b={class:"small"};function z(o,e,n,h,x,s){const i=t("openwb-base-heading"),r=t("openwb-base-text-input");return c(),p("div",g,[a(i,null,{default:l(()=>[_(" Einstellungen für Carlo Gavazzi "),m("span",b,"(Modul: "+f(o.$options.name)+")",1)]),_:1}),a(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=d=>s.updateConfiguration(d,"configuration.ip_address"))},null,8,["model-value"])])}const q=u(v,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/device.vue"]]);export{q as default};
diff --git a/web/settings/assets/device-72498906.js b/web/settings/assets/device-d971bed6.js
similarity index 87%
rename from web/settings/assets/device-72498906.js
rename to web/settings/assets/device-d971bed6.js
index 6a8bca9997..11c4f382da 100644
--- a/web/settings/assets/device-72498906.js
+++ b/web/settings/assets/device-d971bed6.js
@@ -1 +1 @@
-import{_ as l,p as t,k as u,l as p,A as n,L as c,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceSolarWorld",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},b={class:"device-solar_world"},g={class:"small"};function w(o,e,a,h,x,s){const i=t("openwb-base-heading"),d=t("openwb-base-text-input");return u(),p("div",b,[n(i,null,{default:c(()=>[_(" Einstellungen für SolarWorld "),f("span",g,"(Modul: "+m(o.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=l(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/device.vue"]]);export{V as default};
+import{_ as l,p as t,k as u,l as p,A as n,L as c,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceSolarWorld",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},b={class:"device-solar_world"},g={class:"small"};function w(o,e,a,h,x,s){const i=t("openwb-base-heading"),d=t("openwb-base-text-input");return u(),p("div",b,[n(i,null,{default:c(()=>[_(" Einstellungen für SolarWorld "),f("span",g,"(Modul: "+m(o.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=l(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-a394c36e.js b/web/settings/assets/device-e2dad607.js
similarity index 87%
rename from web/settings/assets/device-a394c36e.js
rename to web/settings/assets/device-e2dad607.js
index 6e32b20767..f108b49ff4 100644
--- a/web/settings/assets/device-a394c36e.js
+++ b/web/settings/assets/device-e2dad607.js
@@ -1 +1 @@
-import{_ as p,p as t,k as u,l as c,A as n,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSaxpower",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-saxpower"},v={class:"small"};function x(o,e,a,w,h,s){const i=t("openwb-base-heading"),r=t("openwb-base-text-input");return u(),c("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für Saxpower "),m("span",v,"(Modul: "+f(o.$options.name)+")",1)]),_:1}),n(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=d=>s.updateConfiguration(d,"configuration.ip_address"))},null,8,["model-value"])])}const C=p(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/device.vue"]]);export{C as default};
+import{_ as p,p as t,k as u,l as c,A as n,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSaxpower",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},g={class:"device-saxpower"},v={class:"small"};function x(o,e,a,w,h,s){const i=t("openwb-base-heading"),r=t("openwb-base-text-input");return u(),c("div",g,[n(i,null,{default:l(()=>[_(" Einstellungen für Saxpower "),m("span",v,"(Modul: "+f(o.$options.name)+")",1)]),_:1}),n(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=d=>s.updateConfiguration(d,"configuration.ip_address"))},null,8,["model-value"])])}const C=p(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-8715b56d.js b/web/settings/assets/device-e88cb248.js
similarity index 89%
rename from web/settings/assets/device-8715b56d.js
rename to web/settings/assets/device-e88cb248.js
index 56c40f92f9..da761fb243 100644
--- a/web/settings/assets/device-8715b56d.js
+++ b/web/settings/assets/device-e88cb248.js
@@ -1 +1 @@
-import{_ as d,p as u,k as l,l as p,A as n,L as c,u as f,q as m,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DevicePowerfox",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-powerfox"},w={class:"small"};function b(o,e,a,x,B,s){const r=u("openwb-base-heading"),i=u("openwb-base-text-input");return l(),p("div",v,[n(r,null,{default:c(()=>[f(" Einstellungen für Powerfox "),m("span",w,"(Modul: "+_(o.$options.name)+")",1)]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":a.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>s.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>s.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const h=d(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/device.vue"]]);export{h as default};
+import{_ as d,p as u,k as l,l as p,A as n,L as c,u as f,q as m,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DevicePowerfox",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-powerfox"},w={class:"small"};function b(o,e,a,x,B,s){const r=u("openwb-base-heading"),i=u("openwb-base-text-input");return l(),p("div",v,[n(r,null,{default:c(()=>[f(" Einstellungen für Powerfox "),m("span",w,"(Modul: "+_(o.$options.name)+")",1)]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":a.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>s.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>s.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const h=d(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/device.vue"]]);export{h as default};
diff --git a/web/settings/assets/device-e304fcca.js b/web/settings/assets/device-eded82a1.js
similarity index 87%
rename from web/settings/assets/device-e304fcca.js
rename to web/settings/assets/device-eded82a1.js
index 6225212b00..be5b8425c5 100644
--- a/web/settings/assets/device-e304fcca.js
+++ b/web/settings/assets/device-eded82a1.js
@@ -1 +1 @@
-import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceSolarmax",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-solarmax"},g={class:"small"};function x(t,e,a,h,w,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Solarmax "),m("span",g,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/device.vue"]]);export{V as default};
+import{_ as u,p as o,k as p,l as c,A as n,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceSolarmax",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-solarmax"},g={class:"small"};function x(t,e,a,h,w,s){const i=o("openwb-base-heading"),d=o("openwb-base-text-input");return p(),c("div",b,[n(i,null,{default:l(()=>[_(" Einstellungen für Solarmax "),m("span",g,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const V=u(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/device.vue"]]);export{V as default};
diff --git a/web/settings/assets/device-4c8d99b2.js b/web/settings/assets/device-eed5fccd.js
similarity index 90%
rename from web/settings/assets/device-4c8d99b2.js
rename to web/settings/assets/device-eed5fccd.js
index 4d1e0d5738..43fe5ca4d2 100644
--- a/web/settings/assets/device-4c8d99b2.js
+++ b/web/settings/assets/device-eed5fccd.js
@@ -1 +1 @@
-import{_ as c,p as t,k as m,l as _,A as a,L as u,u as d,q as b,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceSolax",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-solax"},x={class:"small"};function w(o,e,i,h,q,s){const r=t("openwb-base-heading"),l=t("openwb-base-text-input"),p=t("openwb-base-number-input");return m(),_("div",v,[a(r,null,{default:u(()=>[d(" Einstellungen für Solax "),b("span",x,"(Modul: "+f(o.$options.name)+")",1)]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":i.configuration.modbus_id,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[d(" Für Gen3 ID=0, für Gen4 meistens > 2. ")]),_:1},8,["model-value"])])}const B=c(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/device.vue"]]);export{B as default};
+import{_ as c,p as t,k as m,l as _,A as a,L as u,u as d,q as b,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceSolax",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-solax"},x={class:"small"};function w(o,e,i,h,q,s){const r=t("openwb-base-heading"),l=t("openwb-base-text-input"),p=t("openwb-base-number-input");return m(),_("div",v,[a(r,null,{default:u(()=>[d(" Einstellungen für Solax "),b("span",x,"(Modul: "+f(o.$options.name)+")",1)]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":i.configuration.modbus_id,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[d(" Für Gen3 ID=0, für Gen4 meistens > 2. ")]),_:1},8,["model-value"])])}const B=c(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/device.vue"]]);export{B as default};
diff --git a/web/settings/assets/device-5b3585a3.js b/web/settings/assets/device-efcbb283.js
similarity index 91%
rename from web/settings/assets/device-5b3585a3.js
rename to web/settings/assets/device-efcbb283.js
index 928ba3fece..a35fb715d6 100644
--- a/web/settings/assets/device-5b3585a3.js
+++ b/web/settings/assets/device-efcbb283.js
@@ -1 +1 @@
-import{_ as l,p as d,k as r,l as p,A as t,L as c,u as m,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceKostalPikoOld",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-kostal-piko-old"},b={class:"small"};function w(n,e,a,k,x,i){const u=d("openwb-base-heading"),s=d("openwb-base-text-input");return r(),p("div",v,[t(u,null,{default:c(()=>[m(" Einstellungen für Kostal Piko (alte Generation) "),f("span",b,"(Modul: "+_(n.$options.name)+")",1)]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Benutzername",subtype:"user",required:"","model-value":a.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])])}const q=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko_old/device.vue"]]);export{q as default};
+import{_ as l,p as d,k as r,l as p,A as t,L as c,u as m,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceKostalPikoOld",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-kostal-piko-old"},b={class:"small"};function w(n,e,a,k,x,i){const u=d("openwb-base-heading"),s=d("openwb-base-text-input");return r(),p("div",v,[t(u,null,{default:c(()=>[m(" Einstellungen für Kostal Piko (alte Generation) "),f("span",b,"(Modul: "+_(n.$options.name)+")",1)]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Benutzername",subtype:"user",required:"","model-value":a.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":a.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])])}const q=l(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko_old/device.vue"]]);export{q as default};
diff --git a/web/settings/assets/device-a81f5544.js b/web/settings/assets/device-f186e4bf.js
similarity index 89%
rename from web/settings/assets/device-a81f5544.js
rename to web/settings/assets/device-f186e4bf.js
index 6d444349b6..740c2d0345 100644
--- a/web/settings/assets/device-a81f5544.js
+++ b/web/settings/assets/device-f186e4bf.js
@@ -1 +1 @@
-import{_ as p,p as n,k as _,l as f,A as o,L as s,u as a,q as m,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"DeviceKostalPiko",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-kostalpiko"},v={class:"small"};function k(t,e,i,w,x,r){const d=n("openwb-base-heading"),u=n("openwb-base-alert"),c=n("openwb-base-text-input");return _(),f("div",g,[o(d,null,{default:s(()=>[a(" Einstellungen für Kostal Piko "),m("span",v,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(u,{subtype:"info"},{default:s(()=>[a(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ")]),_:1}),o(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>r.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const B=p(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko/device.vue"]]);export{B as default};
+import{_ as p,p as n,k as _,l as f,A as o,L as s,u as a,q as m,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DeviceKostalPiko",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-kostalpiko"},v={class:"small"};function k(t,e,i,w,x,r){const d=n("openwb-base-heading"),u=n("openwb-base-alert"),c=n("openwb-base-text-input");return _(),f("div",g,[o(d,null,{default:s(()=>[a(" Einstellungen für Kostal Piko "),m("span",v,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),o(u,{subtype:"info"},{default:s(()=>[a(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ")]),_:1}),o(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>r.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const B=p(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko/device.vue"]]);export{B as default};
diff --git a/web/settings/assets/device-d3107147.js b/web/settings/assets/device-f3520fbc.js
similarity index 89%
rename from web/settings/assets/device-d3107147.js
rename to web/settings/assets/device-f3520fbc.js
index be9e2ad191..c115a4d6ac 100644
--- a/web/settings/assets/device-d3107147.js
+++ b/web/settings/assets/device-f3520fbc.js
@@ -1 +1 @@
-import{_ as c,p as o,k as m,l as _,A as s,L as i,u as n,q as a,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceJson",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-json"},v={class:"small"},h=a("br",null,null,-1);function w(t,e,r,j,x,u){const d=o("openwb-base-heading"),l=o("openwb-base-text-input");return m(),_("div",g,[s(d,null,{default:i(()=>[n(" Einstellungen für JSON "),a("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),s(l,{title:"URL",subtype:"url",required:"","model-value":r.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>u.updateConfiguration(p,"configuration.url"))},{help:i(()=>[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein."),h,n(" Beispiel: http://192.168.1.1:8080/json?data=1 ")]),_:1},8,["model-value"])])}const q=c(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/json/device.vue"]]);export{q as default};
+import{_ as c,p as o,k as m,l as _,A as s,L as i,u as n,q as a,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceJson",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-json"},v={class:"small"},h=a("br",null,null,-1);function w(t,e,r,j,x,u){const d=o("openwb-base-heading"),l=o("openwb-base-text-input");return m(),_("div",g,[s(d,null,{default:i(()=>[n(" Einstellungen für JSON "),a("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),s(l,{title:"URL",subtype:"url",required:"","model-value":r.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>u.updateConfiguration(p,"configuration.url"))},{help:i(()=>[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein."),h,n(" Beispiel: http://192.168.1.1:8080/json?data=1 ")]),_:1},8,["model-value"])])}const q=c(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/json/device.vue"]]);export{q as default};
diff --git a/web/settings/assets/device-b1434489.js b/web/settings/assets/device-f581669c.js
similarity index 88%
rename from web/settings/assets/device-b1434489.js
rename to web/settings/assets/device-f581669c.js
index 18c00979e4..91d25845b1 100644
--- a/web/settings/assets/device-b1434489.js
+++ b/web/settings/assets/device-f581669c.js
@@ -1 +1 @@
-import{_ as l,p as t,k as _,l as m,A as n,L as s,u as a,q as f,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DevicePowerdog",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-powerdog"},w={class:"small"};function h(o,e,i,x,C,d){const r=t("openwb-base-heading"),p=t("openwb-base-alert"),u=t("openwb-base-text-input");return _(),m("div",v,[n(r,null,{default:s(()=>[a(" Einstellungen für Powerdog "),f("span",w,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),n(p,{subtype:"info"},{default:s(()=>[a(" ModbusTCP muss aktiviert sein. ")]),_:1}),n(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>d.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const y=l(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/device.vue"]]);export{y as default};
+import{_ as l,p as t,k as _,l as m,A as n,L as s,u as a,q as f,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DevicePowerdog",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},v={class:"device-powerdog"},w={class:"small"};function h(o,e,i,x,C,d){const r=t("openwb-base-heading"),p=t("openwb-base-alert"),u=t("openwb-base-text-input");return _(),m("div",v,[n(r,null,{default:s(()=>[a(" Einstellungen für Powerdog "),f("span",w,"(Modul: "+b(o.$options.name)+")",1)]),_:1}),n(p,{subtype:"info"},{default:s(()=>[a(" ModbusTCP muss aktiviert sein. ")]),_:1}),n(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=c=>d.updateConfiguration(c,"configuration.ip_address"))},null,8,["model-value"])])}const y=l(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/device.vue"]]);export{y as default};
diff --git a/web/settings/assets/device-e8e7a237.js b/web/settings/assets/device-fcd34186.js
similarity index 90%
rename from web/settings/assets/device-e8e7a237.js
rename to web/settings/assets/device-fcd34186.js
index 5a9181fb08..6cd1ea324c 100644
--- a/web/settings/assets/device-e8e7a237.js
+++ b/web/settings/assets/device-fcd34186.js
@@ -1 +1 @@
-import{_ as p,p as o,k as r,l as c,A as a,L as _,u as m,q as f,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceShelly",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-shelly"},h={class:"small"};function w(t,e,i,x,y,s){const l=o("openwb-base-heading"),u=o("openwb-base-text-input"),d=o("openwb-base-select-input");return r(),c("div",b,[a(l,null,{default:_(()=>[m(" Einstellungen für Shelly "),f("span",h,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Generation",notSelected:"Bitte auswählen",options:[{value:1,text:"Shelly 1pm"},{value:2,text:"Shelly 1pm plus"}],"model-value":i.configuration.generation,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"])])}const C=p(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/device.vue"]]);export{C as default};
+import{_ as p,p as o,k as r,l as c,A as a,L as _,u as m,q as f,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceShelly",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-shelly"},h={class:"small"};function w(t,e,i,x,y,s){const l=o("openwb-base-heading"),u=o("openwb-base-text-input"),d=o("openwb-base-select-input");return r(),c("div",b,[a(l,null,{default:_(()=>[m(" Einstellungen für Shelly "),f("span",h,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Generation",notSelected:"Bitte auswählen",options:[{value:1,text:"Shelly 1pm"},{value:2,text:"Shelly 1pm plus"}],"model-value":i.configuration.generation,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"])])}const C=p(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/device.vue"]]);export{C as default};
diff --git a/web/settings/assets/device-a2d2f22a.js b/web/settings/assets/device-ff4b5125.js
similarity index 87%
rename from web/settings/assets/device-a2d2f22a.js
rename to web/settings/assets/device-ff4b5125.js
index 6dddfc6080..5146d1c67b 100644
--- a/web/settings/assets/device-a2d2f22a.js
+++ b/web/settings/assets/device-ff4b5125.js
@@ -1 +1 @@
-import{_ as u,p as n,k as p,l as c,A as o,L as l,u as _,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceJanitza",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-janitza"},v={class:"small"};function h(t,e,a,x,w,s){const i=n("openwb-base-heading"),d=n("openwb-base-text-input");return p(),c("div",g,[o(i,null,{default:l(()=>[_(" Einstellungen für Janitza "),m("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const z=u(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/device.vue"]]);export{z as default};
+import{_ as u,p as n,k as p,l as c,A as o,L as l,u as _,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceJanitza",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-janitza"},v={class:"small"};function h(t,e,a,x,w,s){const i=n("openwb-base-heading"),d=n("openwb-base-text-input");return p(),c("div",g,[o(i,null,{default:l(()=>[_(" Einstellungen für Janitza "),m("span",v,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":a.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>s.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const z=u(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/device.vue"]]);export{z as default};
diff --git a/web/settings/assets/displayTheme-35595a93.js b/web/settings/assets/displayTheme-af0ce411.js
similarity index 97%
rename from web/settings/assets/displayTheme-35595a93.js
rename to web/settings/assets/displayTheme-af0ce411.js
index b7ca9046e1..7ba29f6cb3 100644
--- a/web/settings/assets/displayTheme-35595a93.js
+++ b/web/settings/assets/displayTheme-af0ce411.js
@@ -1,4 +1,4 @@
-import{_ as f,p as _,k as o,l as m,A as l,L as d,u as r,q as p,x as v,y as i,z as s}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"DisplayThemeCards",emits:["update:configuration"],props:{configuration:{type:Object,required:!0}},methods:{updateConfiguration(c,e=void 0){this.$emit("update:configuration",{value:c,object:e})}}},V={class:"display-theme-cards"},x={class:"small"};function w(c,e,n,A,k,a){const b=_("openwb-base-heading"),u=_("openwb-base-button-group-input"),g=_("openwb-base-text-input");return o(),m("div",V,[l(b,null,{default:d(()=>[r(" Einstellungen für Display Theme Cards "),p("span",x,"(Modul: "+v(c.$options.name)+")",1)]),_:1}),l(b,null,{default:d(()=>[r("Bediensperre")]),_:1}),l(u,{title:"Bedienung sperren","model-value":n.configuration.lock_changes,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.lock_changes")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"]),n.configuration.lock_changes?(o(),i(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":n.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.lock_changes_code"))},{help:d(()=>[r(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ")]),_:1},8,["model-value"])):s("v-if",!0),l(b,null,{default:d(()=>[r('Ansicht "Übersicht"')]),_:1}),l(u,{title:"Übersicht anzeigen","model-value":n.configuration.enable_dashboard_view,"onUpdate:modelValue":e[2]||(e[2]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_view")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"]),n.configuration.enable_dashboard_view?(o(),i(u,{key:1,title:"EVU anzeigen","model-value":n.configuration.enable_dashboard_card_grid,"onUpdate:modelValue":e[3]||(e[3]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_grid")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),n.configuration.enable_dashboard_view?(o(),i(u,{key:2,title:"Hausverbrauch anzeigen","model-value":n.configuration.enable_dashboard_card_home_consumption,"onUpdate:modelValue":e[4]||(e[4]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_home_consumption")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),n.configuration.enable_dashboard_view?(o(),i(u,{key:3,title:"Batteriespeicher anzeigen","model-value":n.configuration.enable_dashboard_card_battery_sum,"onUpdate:modelValue":e[5]||(e[5]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_battery_sum")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),n.configuration.enable_dashboard_view?(o(),i(u,{key:4,title:"Ladepunkte anzeigen","model-value":n.configuration.enable_dashboard_card_charge_point_sum,"onUpdate:modelValue":e[6]||(e[6]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_charge_point_sum")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),n.configuration.enable_dashboard_view?(o(),i(u,{key:5,title:"PV anzeigen","model-value":n.configuration.enable_dashboard_card_inverter_sum,"onUpdate:modelValue":e[7]||(e[7]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_inverter_sum")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),l(b,null,{default:d(()=>[r('Ansicht "Ladepunkte"')]),_:1}),l(u,{title:"Ladepunkte anzeigen","model-value":n.configuration.enable_charge_points_view,"onUpdate:modelValue":e[8]||(e[8]=t=>a.updateConfiguration(t,"configuration.enable_charge_points_view")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"]),s(` <openwb-base-heading>Ansicht "Status"</openwb-base-heading>
+import{_ as f,p as _,k as o,l as m,A as l,L as d,u as r,q as p,x as v,y as i,z as s}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DisplayThemeCards",emits:["update:configuration"],props:{configuration:{type:Object,required:!0}},methods:{updateConfiguration(c,e=void 0){this.$emit("update:configuration",{value:c,object:e})}}},V={class:"display-theme-cards"},x={class:"small"};function w(c,e,n,A,k,a){const b=_("openwb-base-heading"),u=_("openwb-base-button-group-input"),g=_("openwb-base-text-input");return o(),m("div",V,[l(b,null,{default:d(()=>[r(" Einstellungen für Display Theme Cards "),p("span",x,"(Modul: "+v(c.$options.name)+")",1)]),_:1}),l(b,null,{default:d(()=>[r("Bediensperre")]),_:1}),l(u,{title:"Bedienung sperren","model-value":n.configuration.lock_changes,"onUpdate:modelValue":e[0]||(e[0]=t=>a.updateConfiguration(t,"configuration.lock_changes")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"]),n.configuration.lock_changes?(o(),i(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":n.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>a.updateConfiguration(t,"configuration.lock_changes_code"))},{help:d(()=>[r(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ")]),_:1},8,["model-value"])):s("v-if",!0),l(b,null,{default:d(()=>[r('Ansicht "Übersicht"')]),_:1}),l(u,{title:"Übersicht anzeigen","model-value":n.configuration.enable_dashboard_view,"onUpdate:modelValue":e[2]||(e[2]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_view")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"]),n.configuration.enable_dashboard_view?(o(),i(u,{key:1,title:"EVU anzeigen","model-value":n.configuration.enable_dashboard_card_grid,"onUpdate:modelValue":e[3]||(e[3]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_grid")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),n.configuration.enable_dashboard_view?(o(),i(u,{key:2,title:"Hausverbrauch anzeigen","model-value":n.configuration.enable_dashboard_card_home_consumption,"onUpdate:modelValue":e[4]||(e[4]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_home_consumption")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),n.configuration.enable_dashboard_view?(o(),i(u,{key:3,title:"Batteriespeicher anzeigen","model-value":n.configuration.enable_dashboard_card_battery_sum,"onUpdate:modelValue":e[5]||(e[5]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_battery_sum")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),n.configuration.enable_dashboard_view?(o(),i(u,{key:4,title:"Ladepunkte anzeigen","model-value":n.configuration.enable_dashboard_card_charge_point_sum,"onUpdate:modelValue":e[6]||(e[6]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_charge_point_sum")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),n.configuration.enable_dashboard_view?(o(),i(u,{key:5,title:"PV anzeigen","model-value":n.configuration.enable_dashboard_card_inverter_sum,"onUpdate:modelValue":e[7]||(e[7]=t=>a.updateConfiguration(t,"configuration.enable_dashboard_card_inverter_sum")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"])):s("v-if",!0),l(b,null,{default:d(()=>[r('Ansicht "Ladepunkte"')]),_:1}),l(u,{title:"Ladepunkte anzeigen","model-value":n.configuration.enable_charge_points_view,"onUpdate:modelValue":e[8]||(e[8]=t=>a.updateConfiguration(t,"configuration.enable_charge_points_view")),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["model-value"]),s(` <openwb-base-heading>Ansicht "Status"</openwb-base-heading>
 		<openwb-base-button-group-input
 			title="Status anzeigen"
 			:model-value="configuration.enable_status_view"
diff --git a/web/settings/assets/external_inverter-af9b2b79.js b/web/settings/assets/external_inverter-4989c79d.js
similarity index 92%
rename from web/settings/assets/external_inverter-af9b2b79.js
rename to web/settings/assets/external_inverter-4989c79d.js
index 0c47e1ff5e..33954b70f9 100644
--- a/web/settings/assets/external_inverter-af9b2b79.js
+++ b/web/settings/assets/external_inverter-4989c79d.js
@@ -1 +1 @@
-import{_ as c,p as i,k as p,l as _,A as n,L as u,u as d,q as f,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSolarEdgeExternalInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-solaredge-external-inverter"},h={class:"small"};function x(t,e,a,w,B,r){const l=i("openwb-base-heading"),m=i("openwb-base-alert"),s=i("openwb-base-number-input");return p(),_("div",v,[n(l,null,{default:u(()=>[d(" Einstellungen für SolarEdge externen Wechselrichter "),f("span",h,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),n(m,{subtype:"info"},{default:u(()=>[d(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ')]),_:1}),n(s,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=o=>r.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),n(s,{title:"Meter ID","model-value":a.configuration.meter_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=o=>r.updateConfiguration(o,"configuration.meter_id"))},null,8,["model-value"])])}const V=c(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/external_inverter.vue"]]);export{V as default};
+import{_ as c,p as i,k as p,l as _,A as n,L as u,u as d,q as f,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSolarEdgeExternalInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-solaredge-external-inverter"},h={class:"small"};function x(t,e,a,w,B,r){const l=i("openwb-base-heading"),m=i("openwb-base-alert"),s=i("openwb-base-number-input");return p(),_("div",v,[n(l,null,{default:u(()=>[d(" Einstellungen für SolarEdge externen Wechselrichter "),f("span",h,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),n(m,{subtype:"info"},{default:u(()=>[d(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ')]),_:1}),n(s,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=o=>r.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),n(s,{title:"Meter ID","model-value":a.configuration.meter_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=o=>r.updateConfiguration(o,"configuration.meter_id"))},null,8,["model-value"])])}const V=c(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/external_inverter.vue"]]);export{V as default};
diff --git a/web/settings/assets/external_inverter-21044b75.js b/web/settings/assets/external_inverter-c6cc5286.js
similarity index 86%
rename from web/settings/assets/external_inverter-21044b75.js
rename to web/settings/assets/external_inverter-c6cc5286.js
index 7023e51931..382210ec23 100644
--- a/web/settings/assets/external_inverter-21044b75.js
+++ b/web/settings/assets/external_inverter-c6cc5286.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as a,u as r,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceBatterXExternalInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-batterx-external-inverter"},m={class:"small"};function b(e,t,v,x,g,h){const s=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),d("div",f,[o(s,null,{default:a(()=>[r(" Einstellungen für externen BatterX Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:a(()=>[r(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/external_inverter.vue"]]);export{$ as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as a,u as r,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceBatterXExternalInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-batterx-external-inverter"},m={class:"small"};function b(e,t,v,x,g,h){const s=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),d("div",f,[o(s,null,{default:a(()=>[r(" Einstellungen für externen BatterX Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:a(()=>[r(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/external_inverter.vue"]]);export{$ as default};
diff --git a/web/settings/assets/external_inverter-5c208b04.js b/web/settings/assets/external_inverter-debacbf1.js
similarity index 86%
rename from web/settings/assets/external_inverter-5c208b04.js
rename to web/settings/assets/external_inverter-debacbf1.js
index ca81ad2af4..672641bb7e 100644
--- a/web/settings/assets/external_inverter-5c208b04.js
+++ b/web/settings/assets/external_inverter-debacbf1.js
@@ -1 +1 @@
-import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceE3dcExternalInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-e3dc-external-inverter"},m={class:"small"};function b(e,t,v,g,h,x){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),p("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für externe E3DC Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/external_inverter.vue"]]);export{$ as default};
+import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceE3dcExternalInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-e3dc-external-inverter"},m={class:"small"};function b(e,t,v,g,h,x){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),p("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für externe E3DC Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/external_inverter.vue"]]);export{$ as default};
diff --git a/web/settings/assets/index-2a1b0c80.js b/web/settings/assets/index-2a1b0c80.js
deleted file mode 100644
index 45d620c83a..0000000000
--- a/web/settings/assets/index-2a1b0c80.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as b,k as r,l as d,m as w,n as k,p as h,q as n,u as p,x as _,y as v,z as u,A as m,B as C,D as $,E as S,F as K,G as x,I as M,J as Q,K as Y,L as f,M as Z,N as X,T as ee,O as te,P as W,Q as A,R as q,S as se,U as oe,V as ne,W as ae,X as ie,Y as le,Z as re}from"./vendor-20bb207d.js";import{l as B,f as I,a as V,b as de,c as ce,d as ue,e as pe,F as O,g as E,h as me,i as fe,j as _e,k as he,m as ge,n as be,o as ve,p as we,q as ye,r as ke,s as Se,t as Ce,u as Be,v as Oe,w as $e,x as Te,y as xe,z as Ie,A as Ve,B as Pe,C as He,D as Me,E as De}from"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import{p as Ae,a as qe}from"./vendor-axios-13ef03ae.js";import"./vendor-sortablejs-ad1d2cc8.js";import"./vendor-jquery-89b63fca.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))c(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&c(a)}).observe(document,{childList:!0,subtree:!0});function o(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function c(l){if(l.ep)return;l.ep=!0;const s=o(l);fetch(l.href,s)}})();const Ee={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Le(e,t,o,c,l,s){return r(),d("div",{class:k(["card-text alert","alert-"+o.subtype])},[w(e.$slots,"default")],2)}const je=b(Ee,[["render",Le],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),We=Object.freeze(Object.defineProperty({__proto__:null,default:je},Symbol.toStringTag,{value:"Module"}));B.add(I,V,de,ce,ue,pe);const Re={name:"OpenwbArrayInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){return this.newTag.length>0&&this.value.indexOf(this.newTag)==-1}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},addTag(){if(this.newTagValid){let e=this.value;e.push(this.newTag),e.sort(),this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=this.value;t.splice(e,1),this.value=t}},components:{FontAwesomeIcon:O}},Ne={class:"form-row mb-1"},Ue={class:"col-md-8"},ze={class:"form-row"},Fe={class:"input-group"},Ge={class:"input-group-prepend"},Je={class:"input-group-text"},Ke={class:"input-group-append"},Qe={class:"form-row tagList mt-1"},Ye={key:0,class:"noTag"},Ze={key:0,class:"form-row alert alert-info my-1 small"};function Xe(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",Ne,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Ue,[n("div",ze,[n("div",Fe,[n("div",Ge,[n("div",Je,[m(a,{"fixed-width":"",icon:["fas","tag"]})])]),C(n("input",S({ref:"tagInput",type:"text",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=i=>l.newTag=i)},e.$attrs,{onKeyup:t[2]||(t[2]=K((...i)=>s.addTag&&s.addTag(...i),["enter"]))}),null,16),[[$,l.newTag]]),n("div",Ke,[n("div",{class:k(["input-group-text",s.newTagValid?"bg-success clickable":"notClickable"]),onClick:t[3]||(t[3]=(...i)=>s.addTag&&s.addTag(...i))},[m(a,{"fixed-width":"",icon:["fas","plus"]})],2)])])]),n("div",Qe,[s.value.length==0?(r(),d("span",Ye,[m(a,{icon:["fas","info-circle"]}),p(" "+_(o.noElementsMessage),1)])):u("v-if",!0),(r(!0),d(x,null,M(s.value,(i,g)=>(r(),d("span",{class:"tag",key:g},[m(a,{icon:["fas","tag"]}),p(" "+_(i)+" ",1),m(a,{class:"clickable",icon:["fas","times-circle"],onClick:T=>s.removeTag(g)},null,8,["onClick"])]))),128))]),l.showHelp?(r(),d("span",Ze,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])])}const et=b(Re,[["render",Xe],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),tt=Object.freeze(Object.defineProperty({__proto__:null,default:et},Symbol.toStringTag,{value:"Module"}));const st={name:"OpenwbAvatar"},ot={class:"avatar"};function nt(e,t,o,c,l,s){return r(),d("div",ot,[w(e.$slots,"default",{},()=>[p("?")],!0)])}const at=b(st,[["render",nt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),it=Object.freeze(Object.defineProperty({__proto__:null,default:at},Symbol.toStringTag,{value:"Module"}));B.add(I,V,E);const lt={name:"OpenwbButtonGroupInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Number,Boolean]},buttons:Object},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},rt={class:"form-row mb-1"},dt={class:"col-md-8"},ct={class:"form-row"},ut={class:"btn-group btn-block btn-group-toggle"},pt=["value"],mt={key:0,class:"form-row alert alert-info my-1 small"};function ft(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",rt,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",dt,[n("div",ct,[n("div",ut,[(r(!0),d(x,null,M(o.buttons,i=>(r(),d("label",{key:i.value,class:k(["btn",[s.value==i.buttonValue?"active":"",i.class?i.class:"btn-outline-info"]])},[C(n("input",S({type:"radio","onUpdate:modelValue":t[1]||(t[1]=g=>s.value=g),value:i.buttonValue},e.$attrs),null,16,pt),[[Q,s.value]]),p(" "+_(i.text)+" ",1),m(a,{icon:["fas","check"],style:Y([s.value==i.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])],2))),128))])]),l.showHelp?(r(),d("span",mt,[w(e.$slots,"help")])):u("v-if",!0)])])}const _t=b(lt,[["render",ft],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:_t},Symbol.toStringTag,{value:"Module"}));B.add(I,V);const gt={name:"OpenwbButtonInput",inheritAttrs:!1,props:{title:String,buttonText:String,disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},data(){return{showHelp:!1}},emits:["buttonClicked"],methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},handleClick(e){this.$emit("buttonClicked",e)}},components:{FontAwesomeIcon:O}},bt={class:"form-row mb-1"},vt={class:"col-md-8"},wt={class:"form-row"},yt={key:0,class:"form-row alert alert-info my-1 small"};function kt(e,t,o,c,l,s){const a=h("font-awesome-icon"),i=h("openwb-base-click-button");return r(),d("div",bt,[n("label",{onClick:t[0]||(t[0]=(...g)=>s.toggleHelp&&s.toggleHelp(...g)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",vt,[n("div",wt,[m(i,S({class:(o.disabled?"btn-outline-":"btn-")+o.subtype,disabled:o.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:f(()=>[w(e.$slots,"default",{},()=>[p(_(o.buttonText),1)])]),_:3},16,["class","disabled","onButtonClicked"])]),l.showHelp?(r(),d("span",yt,[w(e.$slots,"help")])):u("v-if",!0)])])}const St=b(gt,[["render",kt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Ct=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));B.add(me,fe);const Bt={name:"OpenwbCard",components:{FontAwesomeIcon:O},props:{title:{type:String,default:"# no title set #"},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink"].indexOf(e)!==-1},default:"secondary"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed)}}},Ot={class:"form-group mb-0"},$t={class:"form-row vaRow mb-0 py-2"},Tt={class:"col"},xt={class:"card-actions ml-4"},It={key:0,class:"card-actions mr-4"},Vt={key:0,class:"card-body"},Pt={key:1,class:"card-footer"};function Ht(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",{class:k(["card","border-"+o.subtype])},[n("div",{class:k(["card-header py-1","bg-"+o.subtype]),onClick:t[0]||(t[0]=(...i)=>s.toggleBody&&s.toggleBody(...i))},[n("div",Ot,[n("div",$t,[n("div",Tt,[w(e.$slots,"header",{collapsed:l.isCollapsed},()=>[p(_(o.title),1)])])])]),n("span",xt,[e.$slots.actions?(r(),d("span",It,[w(e.$slots,"actions",{collapsed:l.isCollapsed})])):u("v-if",!0),o.collapsible?(r(),v(a,{key:1,"fixed-width":"",icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):u("v-if",!0)])],2),l.isCollapsed===!1?(r(),d("div",Vt,[w(e.$slots,"default")])):u("v-if",!0),e.$slots.footer&&l.isCollapsed===!1?(r(),d("div",Pt,[w(e.$slots,"footer")])):u("v-if",!0)],2)}const Mt=b(Bt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Dt=Object.freeze(Object.defineProperty({__proto__:null,default:Mt},Symbol.toStringTag,{value:"Module"}));B.add(I,V);const At={name:"OpenwbCheckboxInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Boolean}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},qt={class:"form-row mb-1"},Et={class:"col-md-8"},Lt={class:"form-row"},jt={key:0,class:"form-row alert alert-info my-1 small"};function Wt(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",qt,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Et,[n("div",Lt,[C(n("input",S({class:"form-control",type:"checkbox","onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs),null,16),[[Z,s.value]])]),l.showHelp?(r(),d("span",jt,[w(e.$slots,"help")])):u("v-if",!0)])])}const Rt=b(At,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"}));const Ut={name:"OpenwbClickButton",props:{title:String},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}};function zt(e,t,o,c,l,s){return r(),d("button",{type:"button",class:"btn btn-block",onClick:t[0]||(t[0]=X((...a)=>s.click&&s.click(...a),["prevent"]))},[w(e.$slots,"default",{},()=>[p(_(o.title),1)],!0)])}const Ft=b(Ut,[["render",zt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ft},Symbol.toStringTag,{value:"Module"}));B.add(_e,he);const Jt={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:O},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{clipboardApiAvailable:navigator.clipboard!=null,isCopied:!1}},methods:{click(){if(console.debug(this.$refs["slot-wrapper"].innerText),this.clipboardApiAvailable)navigator.clipboard.writeText(this.$refs["slot-wrapper"].innerText).then(()=>{this.isCopied=!0},()=>{console.error("copy to clipboard failed")});else{if(console.debug("clipboard api not supported/enabled, fallback to select"),window.getSelection){console.debug("using 'window.getSelection'");const e=window.getSelection(),t=document.createRange();t.selectNodeContents(this.$refs["slot-wrapper"]),e.removeAllRanges(),e.addRange(t);return}if(document.body.createTextRange){console.debug("using 'document.body.createTextRange'");const e=document.body.createTextRange();e.moveToElementText(this.$refs["slot-wrapper"]),e.select()}else console.warn("could not select text, unsupported browser")}}}},Kt=["title"];function Qt(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("span",{ref:"slot-wrapper",title:o.tooltip,class:"copy-me",onClick:t[0]||(t[0]=(...i)=>s.click&&s.click(...i))},[w(e.$slots,"default",{},void 0,!0),m(a,{"fixed-width":"",icon:l.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])],8,Kt)}const Yt=b(Jt,[["render",Qt],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),Zt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));B.add(I,V,E);const Xt={name:"OpenwbHeading",components:{FontAwesomeIcon:O},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},es={class:"card-text card-text-heading"},ts={key:0,class:"actions"},ss={class:""},os={key:0,class:"form-row alert alert-info small"};function ns(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d(x,null,[n("div",es,[n("div",{class:"heading-text",onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i))},[w(e.$slots,"default",{},void 0,!0),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),e.$slots.actions?(r(),d("span",ts,[w(e.$slots,"actions",{},void 0,!0)])):u("v-if",!0)]),n("div",ss,[l.showHelp?(r(),d("span",os,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])],64)}const as=b(Xt,[["render",ns],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),is=Object.freeze(Object.defineProperty({__proto__:null,default:as},Symbol.toStringTag,{value:"Module"})),ls={name:"OpenwbModalDialog",emits:["modal-result"],props:{title:String,subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},rs=n("div",{class:"modal-backdrop fade show"},null,-1),ds={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},cs={class:"modal-content"},us={class:"modal-title"},ps={class:"modal-body"},ms=["data-event"];function fs(e,t,o,c,l,s){return o.show?(r(),v(ee,{key:0,to:"body"},[rs,n("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...a)=>s.handleClick&&s.handleClick(...a))},[n("div",ds,[n("div",cs,[u(" modal header "),n("div",{class:k(["modal-header","bg-"+o.subtype])},[n("h4",us,_(o.title),1),o.preventClose?u("v-if",!0):(r(),d("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>s.handleClick&&s.handleClick(...a))}," × "))],2),u(" modal body "),n("div",ps,[w(e.$slots,"default",{},()=>[p("# Body #")])]),u(" modal footer "),s.myButtons.length>0?(r(),d("div",{key:0,class:k(["modal-footer d-flex","justify-content-"+o.footerAlignment])},[(r(!0),d(x,null,M(s.myButtons,a=>(r(),d("button",{key:a.text,type:"button",class:k(["btn",a.subtype?"btn-"+a.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...i)=>s.handleClick&&s.handleClick(...i))},_(a.text),11,ms))),128))],2)):u("v-if",!0)])])])])):u("v-if",!0)}const _s=b(ls,[["render",fs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"}));B.add(I,V,ge);const gs={name:"OpenwbNumberInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Number},unit:String,emptyValue:{required:!1,default:null}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},bs={class:"form-row mb-1"},vs={class:"col-md-8"},ws={class:"form-row"},ys={class:"input-group"},ks={class:"input-group-prepend"},Ss={class:"input-group-text"},Cs={key:0,class:"input-group-append"},Bs={class:"input-group-text"},Os={key:0,class:"form-row alert alert-info my-1 small"};function $s(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",bs,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",vs,[n("div",ws,[n("div",ys,[n("div",ks,[n("div",Ss,[m(a,{"fixed-width":"",icon:["fas","calculator"]})])]),C(n("input",S({type:"number",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs),null,16),[[$,s.value,void 0,{number:!0}]]),o.unit?(r(),d("div",Cs,[n("div",Bs,_(o.unit),1)])):u("v-if",!0)])]),l.showHelp?(r(),d("span",Os,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])])}const Ts=b(gs,[["render",$s],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ts},Symbol.toStringTag,{value:"Module"}));B.add(I,V,be,ve);const Is={name:"OpenwbRangeInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Number},unit:String,min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},labels:{type:Array}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue<this.labels.length?e=this.labels[this.sliderValue].label:console.error("index out of bounds: "+this.sliderValue):e=this.sliderValue,typeof e=="number"&&(e=e.toLocaleString(void 0,{minimumFractionDigits:this.precision,maximumFractionDigits:this.precision}),this.unit&&(e+=" "+this.unit)),e},precision(){if(!isFinite(this.step))return 0;for(var e=1,t=0;Math.round(this.step*e)/e!==this.step;)e*=10,t++;return t},sliderValue:{get(){if(this.labels){var e=void 0;for(let t=0;t<this.labels.length;t++)if(this.labels[t].value==this.modelValue){e=t;break}return e===void 0&&this.modelValue!==void 0?(console.warn("sliderValue: not found in values: ",this.modelValue,"using min as default: ",this.min),this.min):e}return this.modelValue},set(e){if(this.labels){var t=this.labels[e].value;this.$emit("update:modelValue",t)}else this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},increment(){var e=Math.min(this.sliderValue+this.step,this.max);this.sliderValue=Math.round(e*Math.pow(10,this.precision))/Math.pow(10,this.precision)},decrement(){var e=Math.max(this.sliderValue-this.step,this.min);this.sliderValue=Math.round(e*Math.pow(10,this.precision))/Math.pow(10,this.precision)}},components:{FontAwesomeIcon:O}},Vs={class:"form-row mb-1"},Ps={class:"col-md-8"},Hs={class:"form-row vaRow mb-1"},Ms={key:0,class:"col-2 col-form-label valueLabel"},Ds={class:"col"},As=["min","max","step"],qs={key:0,class:"form-row alert alert-info my-1 small"},Es={class:"col"};function Ls(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",Vs,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Ps,[n("div",Hs,[s.label?(r(),d("label",Ms,_(s.label),1)):u("v-if",!0),n("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[1]||(t[1]=(...i)=>s.decrement&&s.decrement(...i))},[m(a,{icon:["fas","step-backward"]})]),n("div",Ds,[C(n("input",S({type:"range",class:"form-control-range rangeInput",min:o.min,max:o.max,step:o.step,"onUpdate:modelValue":t[2]||(t[2]=i=>s.sliderValue=i)},e.$attrs),null,16,As),[[$,s.sliderValue,void 0,{number:!0}]])]),n("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[3]||(t[3]=(...i)=>s.increment&&s.increment(...i))},[m(a,{icon:["fas","step-forward"]})])]),l.showHelp?(r(),d("div",qs,[n("div",Es,[w(e.$slots,"help",{},void 0,!0)])])):u("v-if",!0)])])}const js=b(Is,[["render",Ls],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Ws=Object.freeze(Object.defineProperty({__proto__:null,default:js},Symbol.toStringTag,{value:"Module"}));B.add(I,V);const Rs={name:"OpenwbSelectInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Number,Array]},groups:Object,options:Object,notSelected:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},Ns={class:"form-row mb-1"},Us={class:"col-md-8"},zs={class:"form-row"},Fs={key:0,value:void 0,disabled:""},Gs=["value"],Js=["label"],Ks=["value"],Qs={key:0,class:"form-row alert alert-info my-1 small"};function Ys(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",Ns,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Us,[n("div",zs,[C(n("select",S({class:"col form-control","onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs),[o.notSelected!==void 0?(r(),d("option",Fs," -- "+_(o.notSelected)+" -- ",1)):u("v-if",!0),u(" select elements without option groups "),(r(!0),d(x,null,M(o.options,i=>(r(),d("option",{key:i.value,value:i.value},_(i.text),9,Gs))),128)),u(" option groups with options "),(r(!0),d(x,null,M(o.groups,i=>(r(),d("optgroup",{key:i.label,label:i.label},[(r(!0),d(x,null,M(i.options,g=>(r(),d("option",{key:g.value,value:g.value},_(g.text),9,Ks))),128))],8,Js))),128))],16),[[te,s.value]]),w(e.$slots,"append")]),l.showHelp?(r(),d("span",Qs,[w(e.$slots,"help")])):u("v-if",!0)])])}const Zs=b(Rs,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Zs},Symbol.toStringTag,{value:"Module"}));B.add(E,we,ye);const eo={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:O},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},data(){return{showModalSave:!1,showModalReset:!1,showModalDefaults:!1}},emits:["reset","defaults","save"],methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.showModalSave=!0,this.$emit("save"),window.setTimeout(()=>this.showModalSave=!1,3e3)}}},to={class:"row justify-content-center mb-1"},so={class:"col-md-4 d-flex py-1 justify-content-center"},oo={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},no={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function ao(e,t,o,c,l,s){const a=h("openwb-base-modal-dialog"),i=h("font-awesome-icon");return r(),d(x,null,[m(a,{show:l.showModalSave,title:"Speichern",subtype:"success",preventClose:!0},{default:f(()=>[p(" Einstellungen werden gespeichert... ")]),_:1},8,["show"]),m(a,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:f(()=>[p(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ")]),_:1},8,["show","onModalResult"]),m(a,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:f(()=>[p(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ")]),_:1},8,["show","onModalResult"]),n("div",to,[n("div",so,[n("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...g)=>s.saveSettings&&s.saveSettings(...g))},[p(" Speichern "),m(i,{"fixed-width":"",icon:["fas","check"]})])]),o.hideReset?u("v-if",!0):(r(),d("div",oo,[n("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...g)=>s.showResetModal&&s.showResetModal(...g))},[p(" Änderungen verwerfen "),m(i,{"fixed-width":"",icon:["fas","undo"]})])])),o.hideDefaults?u("v-if",!0):(r(),d("div",no,[n("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...g)=>s.showDefaultsModal&&s.showDefaultsModal(...g))},[p(" Werkseinstellungen "),m(i,{"fixed-width":"",icon:["fas","times"]})])]))])],64)}const io=b(eo,[["render",ao],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),lo=Object.freeze(Object.defineProperty({__proto__:null,default:io},Symbol.toStringTag,{value:"Module"}));B.add(I,V,ke,Se,Ce,Be,Oe,$e,Te,xe,Ie,Ve,Pe,He);const ro={name:"OpenwbTextInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Object]},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:String,unit:String,emptyValue:{required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showHelp:!1,showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch{console.error("parsing JSON failed: "+e),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,o,c=new Date(this.modelValue);switch(this.subtype){case"date":c.setDate(c.getDate()+e),o=String(c.getFullYear())+"-"+String(c.getMonth()+1).padStart(2,"0")+"-"+String(c.getDate()).padStart(2,"0"),t=this.$refs.dateInput;break;case"month":c.setMonth(c.getMonth()+e),o=String(c.getFullYear())+"-"+String(c.getMonth()+1).padStart(2,"0"),t=this.$refs.monthInput;break;case"year":c.setYear(c.getFullYear()+e),o=String(c.getFullYear()),t=this.$refs.yearInput;break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}o>t.max||o<t.min||(this.value=o)}},components:{FontAwesomeIcon:O}},N=e=>(A("data-v-6927d479"),e=e(),q(),e),co={class:"form-row mb-1"},uo={class:"col-md-8"},po={class:"form-row"},mo={class:"input-group"},fo={class:"input-group-prepend"},_o={class:"input-group-text"},ho=["pattern"],go=["pattern"],bo=["type","pattern"],vo=["type"],wo={class:"input-group-text"},yo={key:10,class:"input-group-append"},ko={class:"input-group-text"},So=N(()=>n("div",{class:"input-group-text"},"-",-1)),Co=[So],Bo=N(()=>n("div",{class:"input-group-text"},"+",-1)),Oo=[Bo],$o={key:0,class:"form-row alert alert-info my-1 small"};function To(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",co,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",uo,[n("div",po,[n("div",mo,[n("div",fo,[n("div",_o,[o.subtype=="text"?(r(),v(a,{key:0,"fixed-width":"",icon:["fas","keyboard"]})):u("v-if",!0),o.subtype=="email"?(r(),v(a,{key:1,"fixed-width":"",icon:["fas","envelope"]})):u("v-if",!0),o.subtype=="host"?(r(),v(a,{key:2,"fixed-width":"",icon:["fas","network-wired"]})):u("v-if",!0),o.subtype=="url"?(r(),v(a,{key:3,"fixed-width":"",icon:["fas","globe"]})):u("v-if",!0),o.subtype=="user"?(r(),v(a,{key:4,"fixed-width":"",icon:["fas","user"]})):u("v-if",!0),o.subtype=="json"?(r(),v(a,{key:5,"fixed-width":"",icon:["fas","code"]})):u("v-if",!0),o.subtype=="password"?(r(),v(a,{key:6,"fixed-width":"",icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):u("v-if",!0),o.subtype=="time"?(r(),v(a,{key:7,"fixed-width":"",icon:["fas","clock"]})):u("v-if",!0),o.subtype=="date"||o.subtype=="month"||o.subtype=="year"?(r(),v(a,{key:8,"fixed-width":"",icon:["fas","calendar-day"]})):u("v-if",!0)])]),["text","user"].includes(o.subtype)?C((r(),d("input",S({key:0,type:"text",class:["form-control",{invalid:l.inputInvalid}],"onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs,{pattern:o.pattern}),null,16,ho)),[[$,s.value]]):u("v-if",!0),o.subtype=="json"?C((r(),d("input",S({key:1,ref:"jsonInput",type:"text",class:"form-control","onUpdate:modelValue":t[2]||(t[2]=i=>s.value=i)},e.$attrs,{pattern:o.pattern}),null,16,go)),[[$,s.value]]):u("v-if",!0),o.subtype=="password"?C((r(),d("input",S({key:2,type:l.showPassword?"text":"password",class:"form-control","onUpdate:modelValue":t[3]||(t[3]=i=>s.value=i)},e.$attrs,{pattern:o.pattern}),null,16,bo)),[[W,s.value]]):u("v-if",!0),o.subtype=="host"?C((r(),d("input",S({key:3,type:"text",class:"form-control","onUpdate:modelValue":t[4]||(t[4]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),["email","url"].includes(o.subtype)?C((r(),d("input",S({key:4,type:o.subtype,class:"form-control","onUpdate:modelValue":t[5]||(t[5]=i=>s.value=i)},e.$attrs),null,16,vo)),[[W,s.value]]):u("v-if",!0),o.subtype=="password"?(r(),d("div",{key:5,class:"input-group-append clickable",onClick:t[6]||(t[6]=(...i)=>s.togglePassword&&s.togglePassword(...i))},[n("div",wo,[m(a,{"fixed-width":"",icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):u("v-if",!0),o.subtype=="time"?C((r(),d("input",S({key:6,type:"time",class:"form-control","onUpdate:modelValue":t[7]||(t[7]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),o.subtype=="date"?C((r(),d("input",S({key:7,type:"date",ref:"dateInput",class:"form-control","onUpdate:modelValue":t[8]||(t[8]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),o.subtype=="month"?C((r(),d("input",S({key:8,type:"month",ref:"monthInput",class:"form-control","onUpdate:modelValue":t[9]||(t[9]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),o.subtype=="year"?C((r(),d("input",S({key:9,type:"number",ref:"yearInput",class:"form-control","onUpdate:modelValue":t[10]||(t[10]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),o.unit?(r(),d("div",yo,[n("div",ko,_(o.unit),1)])):u("v-if",!0),o.showQuickButtons&&(o.subtype=="date"||o.subtype=="month"||o.subtype=="year")?(r(),d("div",{key:11,class:"input-group-append clickable",onClick:t[11]||(t[11]=i=>s.modify(-1))},Co)):u("v-if",!0),o.showQuickButtons&&(o.subtype=="date"||o.subtype=="month"||o.subtype=="year")?(r(),d("div",{key:12,class:"input-group-append clickable",onClick:t[12]||(t[12]=i=>s.modify(1))},Oo)):u("v-if",!0)])]),l.showHelp?(r(),d("span",$o,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])])}const xo=b(ro,[["render",To],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Io=Object.freeze(Object.defineProperty({__proto__:null,default:xo},Symbol.toStringTag,{value:"Module"}));B.add(I,V);const Vo={name:"OpenwbTextareaInput",inheritAttrs:!1,props:{title:String,modelValue:{String,Object},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{showHelp:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch{console.warn("parsing JSON failed: "+e),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},Po={class:"form-row mb-1"},Ho={class:"col-md-8"},Mo={class:"form-row"},Do={class:"input-group"},Ao={class:"input-group-prepend"},qo={class:"input-group-text"},Eo={key:2,class:"input-group-append"},Lo={class:"input-group-text"},jo={class:"form-text text-muted text-right"},Wo={key:0,class:"form-row alert alert-info my-1 small"};function Ro(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",Po,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Ho,[n("div",Mo,[n("div",Do,[n("div",Ao,[n("div",qo,[o.subtype=="text"?(r(),v(a,{key:0,"fixed-width":"",icon:["fas","keyboard"]})):u("v-if",!0),o.subtype=="json"?(r(),v(a,{key:1,"fixed-width":"",icon:["fas","code"]})):u("v-if",!0)])]),o.subtype==="json"?C((r(),d("textarea",S({key:0,ref:"jsonInput",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value,void 0,{lazy:!0}]]):C((r(),d("textarea",S({key:1,class:"form-control","onUpdate:modelValue":t[2]||(t[2]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]),e.$attrs.maxlength?(r(),d("div",Eo,[n("div",Lo,[n("small",jo,_(s.length)+" / "+_(e.$attrs.maxlength),1)])])):u("v-if",!0)])]),l.showHelp?(r(),d("span",Wo,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])])}const No=b(Vo,[["render",Ro],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Uo=Object.freeze(Object.defineProperty({__proto__:null,default:No},Symbol.toStringTag,{value:"Module"}));const zo={name:"OpenwbToast",emits:["dismiss"],props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number}},data(){return{handle:void 0,relativeTime:void 0}},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const o=new Date,c=this.timestamp*1e3-o;for(var l in e)if(Math.abs(c)>e[l]){this.relativeTime=t.format(Math.round(c/e[l]),l);break}}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)}},U=e=>(A("data-v-c51b5764"),e=e(),q(),e),Fo=U(()=>n("strong",{class:"pr-2 mr-auto"},"OpenWB",-1)),Go={key:0,class:"time-diff"},Jo=U(()=>n("span",{"aria-hidden":"true"},"×",-1)),Ko=[Jo],Qo={class:"toast-body"};function Yo(e,t,o,c,l,s){return r(),d("div",{class:k(["toast","border-"+o.subtype]),role:"alert"},[n("div",{class:k(["toast-header","bg-"+o.subtype])},[Fo,o.timestamp?(r(),d("small",Go,_(l.relativeTime),1)):u("v-if",!0),n("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>s.dismiss&&s.dismiss(...a))},Ko)],2),n("div",Qo,[w(e.$slots,"default",{},void 0,!0)])],2)}const Zo=b(zo,[["render",Yo],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xo=Object.freeze(Object.defineProperty({__proto__:null,default:Zo},Symbol.toStringTag,{value:"Module"}));B.add(Me);const en={name:"OpenwbNavBar",components:{FontAwesomeIcon:O},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},P=e=>(A("data-v-e7a6d0c0"),e=e(),q(),e),tn={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},sn=P(()=>n("a",{class:"navbar-brand",href:"/openWB/web/"},[n("span",null,"openWB")],-1)),on={class:"navbar-toggler",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar",ref:"navbarButton"},nn=P(()=>n("span",{class:"navbar-toggler-icon"},null,-1)),an=[nn],ln={class:"collapse navbar-collapse",id:"collapsibleNavbar",ref:"collapsibleNavbar"},rn={class:"navbar-nav"},dn={class:"nav-item"},cn={class:"nav-item dropdown nav-separator-after"},un=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),pn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mn={class:"nav-item dropdown"},fn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),_n={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},hn={class:"nav-item dropdown"},gn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),bn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},vn={class:"nav-item dropdown"},wn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),yn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},kn=P(()=>n("div",{class:"dropdown-divider"},null,-1)),Sn=P(()=>n("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1)),Cn={class:"nav-item dropdown"},Bn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),On={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},$n={key:0,class:"nav-item dropdown nav-separator-before"},Tn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Beispiele ",-1)),xn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},In={class:"nav-item nav-separator-before"},Vn={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function Pn(e,t,o,c,l,s){const a=h("router-link"),i=h("font-awesome-icon");return r(),d("nav",tn,[sn,n("button",on,an,512),n("div",ln,[n("ul",rn,[n("li",dn,[m(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:f(()=>[p(" Status ")]),_:1})]),n("li",cn,[un,n("div",pn,[m(a,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Ladeprotokoll ")]),_:1}),m(a,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Diagramme ")]),_:1})])]),n("li",mn,[fn,n("div",_n,[m(a,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Allgemein ")]),_:1}),m(a,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Optionale Hardware ")]),_:1})])]),n("li",hn,[gn,n("div",bn,[m(a,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Übergreifendes ")]),_:1}),m(a,{to:"/InstantChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Sofortladen ")]),_:1}),m(a,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" PV-Laden ")]),_:1}),m(a,{to:"/TimeChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Zeitladen ")]),_:1}),m(a,{to:"/ScheduledChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Zielladen ")]),_:1})])]),n("li",vn,[wn,n("div",yn,[m(a,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Geräte und Komponenten ")]),_:1}),m(a,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Lastmanagement ")]),_:1}),m(a,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Ladepunkte ")]),_:1}),m(a,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Fahrzeuge ")]),_:1}),kn,Sn])]),n("li",Cn,[Bn,n("div",On,[m(a,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" openWB Cloud ")]),_:1}),m(a,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" MQTT-Brücken ")]),_:1}),m(a,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Fehlersuche ")]),_:1}),m(a,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Support ")]),_:1}),m(a,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Datenverwaltung ")]),_:1}),m(a,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" System ")]),_:1}),m(a,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Rechtliches ")]),_:1})])]),s.nodeEnv!=="production"?(r(),d("li",$n,[Tn,n("div",xn,[m(a,{to:"/TestingStore",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" VUEX Store ")]),_:1})])])):u("v-if",!0),n("li",In,[n("a",Vn,[p(" Wiki "),m(i,{"fixed-width":"",icon:["fas","external-link-alt"]})])])])],512)])}const Hn=b(en,[["render",Pn],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const Mn={name:"OpenwbPageFooter"},Dn={id:"footer",class:"footer bg-dark text-light font-small"},An={class:"container text-center"};function qn(e,t,o,c,l,s){return r(),d("footer",Dn,[n("div",An,[n("small",null," Sie befinden sich hier: Einstellungen / "+_(e.$route.meta.heading),1)])])}const En=b(Mn,[["render",qn],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);B.add(De);const Ln={name:"OpenwbDonationBanner",components:{FontAwesomeIcon:O}},jn={class:"mt-3 alert alert-dark text-center"},Wn=n("br",null,null,-1),Rn=n("br",null,null,-1),Nn={action:"https://www.paypal.com/cgi-bin/webscr",method:"post",target:"_blank"},Un=n("input",{type:"hidden",name:"cmd",value:"_s-xclick"},null,-1),zn=n("input",{type:"hidden",name:"hosted_button_id",value:"2K8C4Y2JTGH7U"},null,-1),Fn={type:"submit",class:"btn btn-primary"};function Gn(e,t,o,c,l,s){const a=h("font-awesome-icon");return r(),d("div",jn,[p(" Open Source made with love!"),Wn,p(" Jede Spende hilft die Weiterentwicklung von openWB voranzutreiben"),Rn,n("form",Nn,[Un,zn,n("button",Fn,[p(" Spenden "),m(a,{icon:["fab","paypal"]})])])])}const Jn=b(Ln,[["render",Gn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageDonationBanner.vue"]]),Kn={name:"ComponentState",data(){return{mqttTopicsToSubscribe:[]}},emits:["reset","defaults","save"],computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","standby","stop"]},mqttClientId(){return this.$root.mqttClientId}},methods:{updateState(e,t,o=void 0){console.debug("updateState:",e,t,o),this.$store.commit({type:"updateTopic",topic:e,objectPath:o,payload:t})},getWildcardIndexList(e,t=!1){let o=e;t||(o="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let c=Object.keys(this.$store.state.mqtt).filter(l=>l.match(o));return c.forEach((l,s,a)=>{a[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),c},getWildcardTopics(e,t=!1){let o=e;return t||(o="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(c=>c.match(o)).reduce((c,l)=>({...c,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,o=t,c=1){return(e*c).toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:o})},formatNumberTopic(e,t=0,o=t,c=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,o,c):"-"},formatPhaseArrayNumberTopic(e,t=0,o=t,c=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,o,c)).join(" / "):"- / - / -"},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}}},mounted(){this.mqttTopicsToSubscribe.push("openWB/log/"+this.mqttClientId+"/data"),this.mqttTopicsToSubscribe.forEach(e=>{e.includes("#")||e.includes("+")?console.debug("skipping init of wildcard topic:",e):Object.keys(this.$store.state.mqtt).includes(e)?console.error("multiple subscriptions of topic!",e):this.$store.commit("addTopic",{topic:e,payload:void 0})}),this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.$root.doUnsubscribe(this.mqttTopicsToSubscribe),this.mqttTopicsToSubscribe.forEach(e=>{e.includes("#")||e.includes("+")?(console.debug("expanding wildcard topic:",e),Object.keys(this.getWildcardTopics(e)).forEach(t=>{console.debug("removing wildcardTopic:",t),this.$store.commit("removeTopic",t)})):this.$store.commit("removeTopic",e)})}},z=b(Kn,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);const Qn={name:"OpenwbPageMessages",mixins:[z],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+","openWB/command/"+this.$root.mqttClientId+"/error"]}},computed:{messages(){const e=[];return this.alertData&&e.push({topic:"openWB/command/"+this.$root.mqttClientId+"/error",source:"command",type:"danger",message:`Bei der Verarbeitung des Befehls '<span class="font-weight-bold">`+this.alertData.command+`</span>' mit den Parametern '<span class="font-weight-bold">`+this.alertData.data+"</span>' ist ein Fehler aufgetreten:<br /><pre class='font-weight-bold'>"+this.alertData.error+"</pre>"}),this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e},alertData(){return this.$store.state.mqtt["openWB/command/"+this.$root.mqttClientId+"/error"]},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[o,c]of Object.entries(e))t.push({topic:o,...c});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[o,c]of Object.entries(e))t.push({topic:o,...c});return t}},methods:{clearTopic(e){this.$root.doPublish(e,void 0)},dismissError(){this.clearTopic("openWB/command/"+this.$root.mqttClientId+"/error")},dismiss(e){console.debug("removing message: "+e.topic),this.clearTopic(e.topic)}}},Yn={class:"openwb-toast position-fixed bottom-0 right-0 p-3"},Zn=["innerHTML"];function Xn(e,t,o,c,l,s){const a=h("openwb-base-toast");return r(),d("div",Yn,[(r(!0),d(x,null,M(s.messages,i=>(r(),v(a,{key:i.topic,topic:i.topic,source:i.source,subtype:i.type,timestamp:i.timestamp,onDismiss:s.dismiss},{default:f(()=>[n("span",{innerHTML:i.message},null,8,Zn)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss"]))),128))])}const ea=b(Qn,[["render",Xn],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),ta={name:"OpenwbPageBlocker",mixins:[z],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},sa={class:"openwb-blocker"},oa={key:0},na={key:1},aa={key:2},ia={key:3};function la(e,t,o,c,l,s){const a=h("openwb-base-modal-dialog");return r(),d("div",sa,[m(a,{show:s.showModalBlocker,title:s.title,subtype:"dark",preventClose:!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=i=>s.handleModalResult(i))},{default:f(()=>[s.bootInProgress?(r(),d("p",oa," Der Systemstart ist noch nicht abgeschlossen. ")):u("v-if",!0),s.updateInProgress?(r(),d("p",na," Es wird eine Systemaktualisierung ausgeführt. ")):u("v-if",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(r(),d("p",aa," Bitte die Seite neu laden. ")):(r(),d("p",ia,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const ra=b(ta,[["render",la],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const da={name:"settings-app",components:{NavBar:Hn,PageFooter:En,DonationBanner:Jn,Messages:ea,Blocker:ra},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch{return}},topicList(){return Object.keys(this.$store.state.mqtt)}},methods:{saveValues(e=void 0){console.debug("saving values...");let t={};e===void 0?t=this.$store.state.mqtt:Array.isArray(e)?e.forEach(o=>{t[o]=this.$store.state.mqtt[o]}):console.error("expected array, got ",typeof e);for(const[o,c]of Object.entries(t)){let l=o.replace("openWB/","openWB/set/");console.debug("saving data:",l,c),this.doPublish(l,c)}},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:o,endpoint:c,...l}=this.connection,s=`${e}://${t}:${o}${c}`;console.debug("connecting to broker:",s);try{this.client=se.connect(s,l)}catch(a){console.error("mqtt.connect error",a)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"])}),this.client.on("error",a=>{console.error("Connection failed",a)}),this.client.on("message",(a,i)=>{if(i.toString().length>0){let g;try{g=JSON.parse(i.toString())}catch{console.debug("Json parsing failed, fallback to string: ",a),g=i.toString()}this.$store.commit("addTopic",{topic:a,payload:g})}else this.$store.commit("removeTopic",a)})},doSubscribe(e){this.client.subscribe(e,{},t=>{if(t){console.error("Subscribe to topics error",t);return}})},doUnsubscribe(e){this.client.unsubscribe(e,t=>{t&&console.error("Unsubscribe error",t)})},doPublish(e,t,o=!0,c=2){let l={qos:c,retain:o};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const o=Date.now(),c="openWB/command/"+this.mqttClientId+"/messages/"+o;this.$store.commit({type:"addTopic",topic:c,payload:{message:e,type:t,source:"client",timestamp:Math.floor(o/1e3)}})}},created(){this.createConnection()}},ca={role:"main",class:"container"},ua={id:"content"};function pa(e,t,o,c,l,s){const a=h("nav-bar"),i=h("router-view"),g=h("donation-banner"),T=h("page-footer"),H=h("messages"),D=h("blocker");return r(),d(x,null,[n("header",null,[m(a)]),n("div",ca,[n("div",ua,[n("h1",null,_(e.$route.meta.heading),1),m(i,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])]),m(g)]),m(T),m(H),m(D)],64)}const ma=b(da,[["render",pa],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),fa="modulepreload",_a=function(e){return"/openWB/web/settings/"+e},R={},y=function(t,o,c){if(!o||o.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(o.map(s=>{if(s=_a(s),s in R)return;R[s]=!0;const a=s.endsWith(".css"),i=a?'[rel="stylesheet"]':"";if(!!c)for(let H=l.length-1;H>=0;H--){const D=l[H];if(D.href===s&&(!a||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${i}`))return;const T=document.createElement("link");if(T.rel=a?"stylesheet":fa,a||(T.as="script",T.crossOrigin=""),T.href=s,document.head.appendChild(T),a)return new Promise((H,D)=>{T.addEventListener("load",H),T.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t())};let F={mqtt:{},local:{reloadRequired:!1},text:{rfidWiki:'Bitte auch hiervon abhängige Einstellungen beachten. Eine Übersicht gibt es im <a href="https://github.com/openWB/core/wiki/Ladung-nur-nach-Freischaltung" target="_blank" rel="noopener noreferrer">Wiki</a>.'}};F.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",number1:5,number2:10,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:"three",buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"]};const G=oe({state:F,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const o=(c,l,s)=>l.split(".").reduce((a,i,g)=>a[i]=l.split(".").length===++g?s:a[i]||{},c);t.topic in e.mqtt?t.objectPath!=null?o(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?o(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var o,c;o=setTimeout(()=>{clearInterval(c),t(!1)},5e3),c=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(o),clearInterval(c),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})}}}),J=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>y(()=>import("./Status-60e959e3.js"),["assets/Status-60e959e3.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js","assets/Status-49744ef3.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>y(()=>import("./ChargeLog-44e297bd.js"),["assets/ChargeLog-44e297bd.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js","assets/ChargeLog-eab2275c.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>y(()=>import("./Chart-19a8a4c0.js"),["assets/Chart-19a8a4c0.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-chartjs-93103a11.js","assets/vendor-luxon-1af9332f.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>y(()=>import("./GeneralConfig-6f942583.js"),["assets/GeneralConfig-6f942583.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Optionale Hardware"},component:()=>y(()=>import("./OptionalComponents-560c0e0a.js"),["assets/OptionalComponents-560c0e0a.js","assets/dynamic-import-helper-be004503.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>y(()=>import("./GeneralChargeConfig-d9fc3d91.js"),["assets/GeneralChargeConfig-d9fc3d91.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/InstantChargeConfig",name:"InstantChargeConfig",meta:{heading:"Ladeeinstellungen - Sofortladen"},component:()=>y(()=>import("./InstantChargeConfig-81ae89da.js"),["assets/InstantChargeConfig-81ae89da.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>y(()=>import("./PVChargeConfig-42aae27d.js"),["assets/PVChargeConfig-42aae27d.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/TimeChargeConfig",name:"TimeChargeConfig",meta:{heading:"Ladeeinstellungen - Zeitladen"},component:()=>y(()=>import("./TimeChargeConfig-551a0160.js"),["assets/TimeChargeConfig-551a0160.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/ScheduledChargeConfig",name:"ScheduledChargeConfig",meta:{heading:"Ladeeinstellungen - Zielladen"},component:()=>y(()=>import("./ScheduledChargeConfig-1687d025.js"),["assets/ScheduledChargeConfig-1687d025.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>y(()=>import("./HardwareInstallation-33a40424.js"),["assets/HardwareInstallation-33a40424.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js","assets/HardwareInstallation-1ee9693f.css"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>y(()=>import("./LoadManagementConfig-0263daa7.js"),["assets/LoadManagementConfig-0263daa7.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/OpenwbSortableList-ac8ac331.js","assets/OpenwbSortableList-15b0be17.css","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>y(()=>import("./ChargePointInstallation-e9afcc08.js"),["assets/ChargePointInstallation-e9afcc08.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js","assets/ChargePointInstallation-ed6a5c7e.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>y(()=>import("./VehicleConfig-939fd0ba.js"),["assets/VehicleConfig-939fd0ba.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js","assets/VehicleConfig-4aeda6ca.css"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>y(()=>import("./CloudConfig-e2087842.js"),["assets/CloudConfig-e2087842.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>y(()=>import("./MqttBridgeConfig-f4b2ee1b.js"),["assets/MqttBridgeConfig-f4b2ee1b.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js","assets/MqttBridgeConfig-3471079a.css"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>y(()=>import("./DebugConfig-4d789b8a.js"),["assets/DebugConfig-4d789b8a.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>y(()=>import("./Support-0be69787.js"),["assets/Support-0be69787.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>y(()=>import("./LegalSettings-67cbbf35.js"),["assets/LegalSettings-67cbbf35.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>y(()=>import("./System-62b8e5ff.js"),["assets/System-62b8e5ff.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js","assets/System-0f1d217b.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>y(()=>import("./DataManagement-44334b0c.js"),["assets/DataManagement-44334b0c.js","assets/vendor-fortawesome-838df0c9.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])}];J.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>y(()=>import("./TestingStore-1f8762e3.js"),["assets/TestingStore-1f8762e3.js","assets/OpenwbSortableList-ac8ac331.js","assets/vendor-20bb207d.js","assets/vendor-sortablejs-ad1d2cc8.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-838df0c9.js","assets/OpenwbSortableList-15b0be17.css","assets/vendor-bootstrap-d275de6c.js","assets/vendor-jquery-89b63fca.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-13ef03ae.js"])});const L=ne({history:ae(),routes:J});L.beforeEach(async e=>{if(e.name!=="LegalSettings"&&!await G.getters.usageTermsAcknowledged)return{name:"LegalSettings"}});L.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const j=ie(ma);j.use(G).use(L).use(Ae,qe);const ha=Object.assign({"./components/OpenwbBaseAlert.vue":We,"./components/OpenwbBaseArrayInput.vue":tt,"./components/OpenwbBaseAvatar.vue":it,"./components/OpenwbBaseButtonGroupInput.vue":ht,"./components/OpenwbBaseButtonInput.vue":Ct,"./components/OpenwbBaseCard.vue":Dt,"./components/OpenwbBaseCheckboxInput.vue":Nt,"./components/OpenwbBaseClickButton.vue":Gt,"./components/OpenwbBaseCopyToClipboard.vue":Zt,"./components/OpenwbBaseHeading.vue":is,"./components/OpenwbBaseModalDialog.vue":hs,"./components/OpenwbBaseNumberInput.vue":xs,"./components/OpenwbBaseRangeInput.vue":Ws,"./components/OpenwbBaseSelectInput.vue":Xs,"./components/OpenwbBaseSubmitButtons.vue":lo,"./components/OpenwbBaseTextInput.vue":Io,"./components/OpenwbBaseTextarea.vue":Uo,"./components/OpenwbBaseToast.vue":Xo});Object.entries(ha).forEach(([e,t])=>{const o=le(re(e.split("/").pop().replace(/\.\w+$/,"")));j.component(o,t.default)});j.mount("#app");export{z as C,y as _};
diff --git a/web/settings/assets/index-bc47a901.js b/web/settings/assets/index-bc47a901.js
new file mode 100644
index 0000000000..b2356f9e7e
--- /dev/null
+++ b/web/settings/assets/index-bc47a901.js
@@ -0,0 +1 @@
+import{_ as b,k as r,l as c,m as w,n as k,p as h,q as n,u as p,x as _,y as v,z as u,A as m,B as C,D as $,E as S,F as K,G as x,I as M,J as Q,K as Y,L as f,M as Z,N as X,T as ee,O as te,P as W,Q as A,R as q,S as se,U as oe,V as ne,W as ae,X as ie,Y as le,Z as re}from"./vendor-94ac8c48.js";import{l as B,f as I,a as V,b as de,c as ce,d as ue,e as pe,F as O,g as E,h as me,i as fe,j as _e,k as he,m as ge,n as be,o as ve,p as we,q as ye,r as ke,s as Se,t as Ce,u as Be,v as Oe,w as $e,x as Te,y as xe,z as Ie,A as Ve,B as Pe,C as He,D as Me,E as De}from"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import{p as Ae,a as qe}from"./vendor-axios-dc63434e.js";import"./vendor-sortablejs-dbc23470.js";import"./vendor-jquery-f7104ff8.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&d(a)}).observe(document,{childList:!0,subtree:!0});function o(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=o(l);fetch(l.href,s)}})();const Ee={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Le(e,t,o,d,l,s){return r(),c("div",{class:k(["card-text alert","alert-"+o.subtype])},[w(e.$slots,"default")],2)}const je=b(Ee,[["render",Le],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),We=Object.freeze(Object.defineProperty({__proto__:null,default:je},Symbol.toStringTag,{value:"Module"}));B.add(I,V,de,ce,ue,pe);const Re={name:"OpenwbArrayInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){return this.newTag.length>0&&this.value.indexOf(this.newTag)==-1}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},addTag(){if(this.newTagValid){let e=this.value;e.push(this.newTag),e.sort(),this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=this.value;t.splice(e,1),this.value=t}},components:{FontAwesomeIcon:O}},Ne={class:"form-row mb-1"},Ue={class:"col-md-8"},ze={class:"form-row"},Fe={class:"input-group"},Ge={class:"input-group-prepend"},Je={class:"input-group-text"},Ke={class:"input-group-append"},Qe={class:"form-row tagList mt-1"},Ye={key:0,class:"noTag"},Ze={key:0,class:"form-row alert alert-info my-1 small"};function Xe(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",Ne,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Ue,[n("div",ze,[n("div",Fe,[n("div",Ge,[n("div",Je,[m(a,{"fixed-width":"",icon:["fas","tag"]})])]),C(n("input",S({ref:"tagInput",type:"text",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=i=>l.newTag=i)},e.$attrs,{onKeyup:t[2]||(t[2]=K((...i)=>s.addTag&&s.addTag(...i),["enter"]))}),null,16),[[$,l.newTag]]),n("div",Ke,[n("div",{class:k(["input-group-text",s.newTagValid?"bg-success clickable":"notClickable"]),onClick:t[3]||(t[3]=(...i)=>s.addTag&&s.addTag(...i))},[m(a,{"fixed-width":"",icon:["fas","plus"]})],2)])])]),n("div",Qe,[s.value.length==0?(r(),c("span",Ye,[m(a,{icon:["fas","info-circle"]}),p(" "+_(o.noElementsMessage),1)])):u("v-if",!0),(r(!0),c(x,null,M(s.value,(i,g)=>(r(),c("span",{class:"tag",key:g},[m(a,{icon:["fas","tag"]}),p(" "+_(i)+" ",1),m(a,{class:"clickable",icon:["fas","times-circle"],onClick:T=>s.removeTag(g)},null,8,["onClick"])]))),128))]),l.showHelp?(r(),c("span",Ze,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])])}const et=b(Re,[["render",Xe],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),tt=Object.freeze(Object.defineProperty({__proto__:null,default:et},Symbol.toStringTag,{value:"Module"}));const st={name:"OpenwbAvatar"},ot={class:"avatar"};function nt(e,t,o,d,l,s){return r(),c("div",ot,[w(e.$slots,"default",{},()=>[p("?")],!0)])}const at=b(st,[["render",nt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),it=Object.freeze(Object.defineProperty({__proto__:null,default:at},Symbol.toStringTag,{value:"Module"}));B.add(I,V,E);const lt={name:"OpenwbButtonGroupInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Number,Boolean]},buttons:Object},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},rt={class:"form-row mb-1"},dt={class:"col-md-8"},ct={class:"form-row"},ut={class:"btn-group btn-block btn-group-toggle"},pt=["value"],mt={key:0,class:"form-row alert alert-info my-1 small"};function ft(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",rt,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",dt,[n("div",ct,[n("div",ut,[(r(!0),c(x,null,M(o.buttons,i=>(r(),c("label",{key:i.value,class:k(["btn",[s.value==i.buttonValue?"active":"",i.class?i.class:"btn-outline-info"]])},[C(n("input",S({type:"radio","onUpdate:modelValue":t[1]||(t[1]=g=>s.value=g),value:i.buttonValue},e.$attrs),null,16,pt),[[Q,s.value]]),p(" "+_(i.text)+" ",1),m(a,{icon:["fas","check"],style:Y([s.value==i.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])],2))),128))])]),l.showHelp?(r(),c("span",mt,[w(e.$slots,"help")])):u("v-if",!0)])])}const _t=b(lt,[["render",ft],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:_t},Symbol.toStringTag,{value:"Module"}));B.add(I,V);const gt={name:"OpenwbButtonInput",inheritAttrs:!1,props:{title:String,buttonText:String,disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},data(){return{showHelp:!1}},emits:["buttonClicked"],methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},handleClick(e){this.$emit("buttonClicked",e)}},components:{FontAwesomeIcon:O}},bt={class:"form-row mb-1"},vt={class:"col-md-8"},wt={class:"form-row"},yt={key:0,class:"form-row alert alert-info my-1 small"};function kt(e,t,o,d,l,s){const a=h("font-awesome-icon"),i=h("openwb-base-click-button");return r(),c("div",bt,[n("label",{onClick:t[0]||(t[0]=(...g)=>s.toggleHelp&&s.toggleHelp(...g)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",vt,[n("div",wt,[m(i,S({class:(o.disabled?"btn-outline-":"btn-")+o.subtype,disabled:o.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:f(()=>[w(e.$slots,"default",{},()=>[p(_(o.buttonText),1)])]),_:3},16,["class","disabled","onButtonClicked"])]),l.showHelp?(r(),c("span",yt,[w(e.$slots,"help")])):u("v-if",!0)])])}const St=b(gt,[["render",kt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Ct=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));B.add(me,fe);const Bt={name:"OpenwbCard",components:{FontAwesomeIcon:O},props:{title:{type:String,default:"# no title set #"},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink"].indexOf(e)!==-1},default:"secondary"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed)}}},Ot={class:"form-group mb-0"},$t={class:"form-row vaRow mb-0 py-2"},Tt={class:"col"},xt={class:"card-actions ml-4"},It={key:0,class:"card-actions mr-4"},Vt={key:0,class:"card-body"},Pt={key:1,class:"card-footer"};function Ht(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",{class:k(["card","border-"+o.subtype])},[n("div",{class:k(["card-header py-1","bg-"+o.subtype]),onClick:t[0]||(t[0]=(...i)=>s.toggleBody&&s.toggleBody(...i))},[n("div",Ot,[n("div",$t,[n("div",Tt,[w(e.$slots,"header",{collapsed:l.isCollapsed},()=>[p(_(o.title),1)])])])]),n("span",xt,[e.$slots.actions?(r(),c("span",It,[w(e.$slots,"actions",{collapsed:l.isCollapsed})])):u("v-if",!0),o.collapsible?(r(),v(a,{key:1,"fixed-width":"",icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):u("v-if",!0)])],2),l.isCollapsed===!1?(r(),c("div",Vt,[w(e.$slots,"default")])):u("v-if",!0),e.$slots.footer&&l.isCollapsed===!1?(r(),c("div",Pt,[w(e.$slots,"footer")])):u("v-if",!0)],2)}const Mt=b(Bt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Dt=Object.freeze(Object.defineProperty({__proto__:null,default:Mt},Symbol.toStringTag,{value:"Module"}));B.add(I,V);const At={name:"OpenwbCheckboxInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Boolean}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},qt={class:"form-row mb-1"},Et={class:"col-md-8"},Lt={class:"form-row"},jt={key:0,class:"form-row alert alert-info my-1 small"};function Wt(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",qt,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Et,[n("div",Lt,[C(n("input",S({class:"form-control",type:"checkbox","onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs),null,16),[[Z,s.value]])]),l.showHelp?(r(),c("span",jt,[w(e.$slots,"help")])):u("v-if",!0)])])}const Rt=b(At,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"}));const Ut={name:"OpenwbClickButton",props:{title:String},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}};function zt(e,t,o,d,l,s){return r(),c("button",{type:"button",class:"btn btn-block",onClick:t[0]||(t[0]=X((...a)=>s.click&&s.click(...a),["prevent"]))},[w(e.$slots,"default",{},()=>[p(_(o.title),1)],!0)])}const Ft=b(Ut,[["render",zt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ft},Symbol.toStringTag,{value:"Module"}));B.add(_e,he);const Jt={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:O},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{clipboardApiAvailable:navigator.clipboard!=null,isCopied:!1}},methods:{click(){if(console.debug(this.$refs["slot-wrapper"].innerText),this.clipboardApiAvailable)navigator.clipboard.writeText(this.$refs["slot-wrapper"].innerText).then(()=>{this.isCopied=!0},()=>{console.error("copy to clipboard failed")});else{if(console.debug("clipboard api not supported/enabled, fallback to select"),window.getSelection){console.debug("using 'window.getSelection'");const e=window.getSelection(),t=document.createRange();t.selectNodeContents(this.$refs["slot-wrapper"]),e.removeAllRanges(),e.addRange(t);return}if(document.body.createTextRange){console.debug("using 'document.body.createTextRange'");const e=document.body.createTextRange();e.moveToElementText(this.$refs["slot-wrapper"]),e.select()}else console.warn("could not select text, unsupported browser")}}}},Kt=["title"];function Qt(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("span",{ref:"slot-wrapper",title:o.tooltip,class:"copy-me",onClick:t[0]||(t[0]=(...i)=>s.click&&s.click(...i))},[w(e.$slots,"default",{},void 0,!0),m(a,{"fixed-width":"",icon:l.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])],8,Kt)}const Yt=b(Jt,[["render",Qt],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),Zt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));B.add(I,V,E);const Xt={name:"OpenwbHeading",inheritAttrs:!1,components:{FontAwesomeIcon:O},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},es={key:0,class:"actions"},ts={class:""},ss={key:0,class:"form-row alert alert-info small"};function os(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c(x,null,[n("div",S({class:"card-text card-text-heading"},e.$attrs),[n("div",{class:"heading-text",onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i))},[w(e.$slots,"default",{},void 0,!0),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),e.$slots.actions?(r(),c("span",es,[w(e.$slots,"actions",{},void 0,!0)])):u("v-if",!0)],16),n("div",ts,[l.showHelp?(r(),c("span",ss,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])],64)}const ns=b(Xt,[["render",os],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),as=Object.freeze(Object.defineProperty({__proto__:null,default:ns},Symbol.toStringTag,{value:"Module"})),is={name:"OpenwbModalDialog",emits:["modal-result"],props:{title:String,subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},ls=n("div",{class:"modal-backdrop fade show"},null,-1),rs={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},ds={class:"modal-content"},cs={class:"modal-title"},us={class:"modal-body"},ps=["data-event"];function ms(e,t,o,d,l,s){return o.show?(r(),v(ee,{key:0,to:"body"},[ls,n("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...a)=>s.handleClick&&s.handleClick(...a))},[n("div",rs,[n("div",ds,[u(" modal header "),n("div",{class:k(["modal-header","bg-"+o.subtype])},[n("h4",cs,_(o.title),1),o.preventClose?u("v-if",!0):(r(),c("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>s.handleClick&&s.handleClick(...a))}," × "))],2),u(" modal body "),n("div",us,[w(e.$slots,"default",{},()=>[p("# Body #")])]),u(" modal footer "),s.myButtons.length>0?(r(),c("div",{key:0,class:k(["modal-footer d-flex","justify-content-"+o.footerAlignment])},[(r(!0),c(x,null,M(s.myButtons,a=>(r(),c("button",{key:a.text,type:"button",class:k(["btn",a.subtype?"btn-"+a.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...i)=>s.handleClick&&s.handleClick(...i))},_(a.text),11,ps))),128))],2)):u("v-if",!0)])])])])):u("v-if",!0)}const fs=b(is,[["render",ms],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),_s=Object.freeze(Object.defineProperty({__proto__:null,default:fs},Symbol.toStringTag,{value:"Module"}));B.add(I,V,ge);const hs={name:"OpenwbNumberInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Number},unit:String,emptyValue:{required:!1,default:null}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},gs={class:"form-row mb-1"},bs={class:"col-md-8"},vs={class:"form-row"},ws={class:"input-group"},ys={class:"input-group-prepend"},ks={class:"input-group-text"},Ss={key:0,class:"input-group-append"},Cs={class:"input-group-text"},Bs={key:0,class:"form-row alert alert-info my-1 small"};function Os(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",gs,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",bs,[n("div",vs,[n("div",ws,[n("div",ys,[n("div",ks,[m(a,{"fixed-width":"",icon:["fas","calculator"]})])]),C(n("input",S({type:"number",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs),null,16),[[$,s.value,void 0,{number:!0}]]),o.unit?(r(),c("div",Ss,[n("div",Cs,_(o.unit),1)])):u("v-if",!0)])]),l.showHelp?(r(),c("span",Bs,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])])}const $s=b(hs,[["render",Os],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Ts=Object.freeze(Object.defineProperty({__proto__:null,default:$s},Symbol.toStringTag,{value:"Module"}));B.add(I,V,be,ve);const xs={name:"OpenwbRangeInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Number},unit:String,min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},labels:{type:Array}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue<this.labels.length?e=this.labels[this.sliderValue].label:console.error("index out of bounds: "+this.sliderValue):e=this.sliderValue,typeof e=="number"&&(e=e.toLocaleString(void 0,{minimumFractionDigits:this.precision,maximumFractionDigits:this.precision}),this.unit&&(e+=" "+this.unit)),e},precision(){if(!isFinite(this.step))return 0;for(var e=1,t=0;Math.round(this.step*e)/e!==this.step;)e*=10,t++;return t},sliderValue:{get(){if(this.labels){var e=void 0;for(let t=0;t<this.labels.length;t++)if(this.labels[t].value==this.modelValue){e=t;break}return e===void 0&&this.modelValue!==void 0?(console.warn("sliderValue: not found in values: ",this.modelValue,"using min as default: ",this.min),this.min):e}return this.modelValue},set(e){if(this.labels){var t=this.labels[e].value;this.$emit("update:modelValue",t)}else this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},increment(){var e=Math.min(this.sliderValue+this.step,this.max);this.sliderValue=Math.round(e*Math.pow(10,this.precision))/Math.pow(10,this.precision)},decrement(){var e=Math.max(this.sliderValue-this.step,this.min);this.sliderValue=Math.round(e*Math.pow(10,this.precision))/Math.pow(10,this.precision)}},components:{FontAwesomeIcon:O}},Is={class:"form-row mb-1"},Vs={class:"col-md-8"},Ps={class:"form-row vaRow mb-1"},Hs={key:0,class:"col-2 col-form-label valueLabel"},Ms={class:"col"},Ds=["min","max","step"],As={key:0,class:"form-row alert alert-info my-1 small"},qs={class:"col"};function Es(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",Is,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Vs,[n("div",Ps,[s.label?(r(),c("label",Hs,_(s.label),1)):u("v-if",!0),n("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[1]||(t[1]=(...i)=>s.decrement&&s.decrement(...i))},[m(a,{icon:["fas","step-backward"]})]),n("div",Ms,[C(n("input",S({type:"range",class:"form-control-range rangeInput",min:o.min,max:o.max,step:o.step,"onUpdate:modelValue":t[2]||(t[2]=i=>s.sliderValue=i)},e.$attrs),null,16,Ds),[[$,s.sliderValue,void 0,{number:!0}]])]),n("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[3]||(t[3]=(...i)=>s.increment&&s.increment(...i))},[m(a,{icon:["fas","step-forward"]})])]),l.showHelp?(r(),c("div",As,[n("div",qs,[w(e.$slots,"help",{},void 0,!0)])])):u("v-if",!0)])])}const Ls=b(xs,[["render",Es],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),js=Object.freeze(Object.defineProperty({__proto__:null,default:Ls},Symbol.toStringTag,{value:"Module"}));B.add(I,V);const Ws={name:"OpenwbSelectInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Number,Array]},groups:Object,options:Object,notSelected:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},Rs={class:"form-row mb-1"},Ns={class:"col-md-8"},Us={class:"form-row"},zs={key:0,value:void 0,disabled:""},Fs=["value"],Gs=["label"],Js=["value"],Ks={key:0,class:"form-row alert alert-info my-1 small"};function Qs(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",Rs,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Ns,[n("div",Us,[C(n("select",S({class:"col form-control","onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs),[o.notSelected!==void 0?(r(),c("option",zs," -- "+_(o.notSelected)+" -- ",1)):u("v-if",!0),u(" select elements without option groups "),(r(!0),c(x,null,M(o.options,i=>(r(),c("option",{key:i.value,value:i.value},_(i.text),9,Fs))),128)),u(" option groups with options "),(r(!0),c(x,null,M(o.groups,i=>(r(),c("optgroup",{key:i.label,label:i.label},[(r(!0),c(x,null,M(i.options,g=>(r(),c("option",{key:g.value,value:g.value},_(g.text),9,Js))),128))],8,Gs))),128))],16),[[te,s.value]]),w(e.$slots,"append")]),l.showHelp?(r(),c("span",Ks,[w(e.$slots,"help")])):u("v-if",!0)])])}const Ys=b(Ws,[["render",Qs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),Zs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));B.add(E,we,ye);const Xs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:O},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},data(){return{showModalReset:!1,showModalDefaults:!1}},emits:["reset","defaults","save"],computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},eo={class:"row justify-content-center mb-1"},to={class:"col-md-4 d-flex py-1 justify-content-center"},so={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},oo={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function no(e,t,o,d,l,s){const a=h("openwb-base-modal-dialog"),i=h("font-awesome-icon");return r(),c(x,null,[m(a,{show:s.showModalSave,title:"Speichern",subtype:"success",preventClose:!0},{default:f(()=>[p(" Einstellungen werden gespeichert... ")]),_:1},8,["show"]),m(a,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:f(()=>[p(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ")]),_:1},8,["show","onModalResult"]),m(a,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:f(()=>[p(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ")]),_:1},8,["show","onModalResult"]),n("div",eo,[n("div",to,[n("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...g)=>s.saveSettings&&s.saveSettings(...g))},[p(" Speichern "),m(i,{"fixed-width":"",icon:["fas","check"]})])]),o.hideReset?u("v-if",!0):(r(),c("div",so,[n("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...g)=>s.showResetModal&&s.showResetModal(...g))},[p(" Änderungen verwerfen "),m(i,{"fixed-width":"",icon:["fas","undo"]})])])),o.hideDefaults?u("v-if",!0):(r(),c("div",oo,[n("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...g)=>s.showDefaultsModal&&s.showDefaultsModal(...g))},[p(" Werkseinstellungen "),m(i,{"fixed-width":"",icon:["fas","times"]})])]))])],64)}const ao=b(Xs,[["render",no],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),io=Object.freeze(Object.defineProperty({__proto__:null,default:ao},Symbol.toStringTag,{value:"Module"}));B.add(I,V,ke,Se,Ce,Be,Oe,$e,Te,xe,Ie,Ve,Pe,He);const lo={name:"OpenwbTextInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Object]},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:String,unit:String,emptyValue:{required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showHelp:!1,showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch{console.error("parsing JSON failed: "+e),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,o,d=new Date(this.modelValue);switch(this.subtype){case"date":d.setDate(d.getDate()+e),o=String(d.getFullYear())+"-"+String(d.getMonth()+1).padStart(2,"0")+"-"+String(d.getDate()).padStart(2,"0"),t=this.$refs.dateInput;break;case"month":d.setMonth(d.getMonth()+e),o=String(d.getFullYear())+"-"+String(d.getMonth()+1).padStart(2,"0"),t=this.$refs.monthInput;break;case"year":d.setYear(d.getFullYear()+e),o=String(d.getFullYear()),t=this.$refs.yearInput;break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}o>t.max||o<t.min||(this.value=o)}},components:{FontAwesomeIcon:O}},N=e=>(A("data-v-6927d479"),e=e(),q(),e),ro={class:"form-row mb-1"},co={class:"col-md-8"},uo={class:"form-row"},po={class:"input-group"},mo={class:"input-group-prepend"},fo={class:"input-group-text"},_o=["pattern"],ho=["pattern"],go=["type","pattern"],bo=["type"],vo={class:"input-group-text"},wo={key:10,class:"input-group-append"},yo={class:"input-group-text"},ko=N(()=>n("div",{class:"input-group-text"},"-",-1)),So=[ko],Co=N(()=>n("div",{class:"input-group-text"},"+",-1)),Bo=[Co],Oo={key:0,class:"form-row alert alert-info my-1 small"};function $o(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",ro,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",co,[n("div",uo,[n("div",po,[n("div",mo,[n("div",fo,[o.subtype=="text"?(r(),v(a,{key:0,"fixed-width":"",icon:["fas","keyboard"]})):u("v-if",!0),o.subtype=="email"?(r(),v(a,{key:1,"fixed-width":"",icon:["fas","envelope"]})):u("v-if",!0),o.subtype=="host"?(r(),v(a,{key:2,"fixed-width":"",icon:["fas","network-wired"]})):u("v-if",!0),o.subtype=="url"?(r(),v(a,{key:3,"fixed-width":"",icon:["fas","globe"]})):u("v-if",!0),o.subtype=="user"?(r(),v(a,{key:4,"fixed-width":"",icon:["fas","user"]})):u("v-if",!0),o.subtype=="json"?(r(),v(a,{key:5,"fixed-width":"",icon:["fas","code"]})):u("v-if",!0),o.subtype=="password"?(r(),v(a,{key:6,"fixed-width":"",icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):u("v-if",!0),o.subtype=="time"?(r(),v(a,{key:7,"fixed-width":"",icon:["fas","clock"]})):u("v-if",!0),o.subtype=="date"||o.subtype=="month"||o.subtype=="year"?(r(),v(a,{key:8,"fixed-width":"",icon:["fas","calendar-day"]})):u("v-if",!0)])]),["text","user"].includes(o.subtype)?C((r(),c("input",S({key:0,type:"text",class:["form-control",{invalid:l.inputInvalid}],"onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs,{pattern:o.pattern}),null,16,_o)),[[$,s.value]]):u("v-if",!0),o.subtype=="json"?C((r(),c("input",S({key:1,ref:"jsonInput",type:"text",class:"form-control","onUpdate:modelValue":t[2]||(t[2]=i=>s.value=i)},e.$attrs,{pattern:o.pattern}),null,16,ho)),[[$,s.value]]):u("v-if",!0),o.subtype=="password"?C((r(),c("input",S({key:2,type:l.showPassword?"text":"password",class:"form-control","onUpdate:modelValue":t[3]||(t[3]=i=>s.value=i)},e.$attrs,{pattern:o.pattern}),null,16,go)),[[W,s.value]]):u("v-if",!0),o.subtype=="host"?C((r(),c("input",S({key:3,type:"text",class:"form-control","onUpdate:modelValue":t[4]||(t[4]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),["email","url"].includes(o.subtype)?C((r(),c("input",S({key:4,type:o.subtype,class:"form-control","onUpdate:modelValue":t[5]||(t[5]=i=>s.value=i)},e.$attrs),null,16,bo)),[[W,s.value]]):u("v-if",!0),o.subtype=="password"?(r(),c("div",{key:5,class:"input-group-append clickable",onClick:t[6]||(t[6]=(...i)=>s.togglePassword&&s.togglePassword(...i))},[n("div",vo,[m(a,{"fixed-width":"",icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):u("v-if",!0),o.subtype=="time"?C((r(),c("input",S({key:6,type:"time",class:"form-control","onUpdate:modelValue":t[7]||(t[7]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),o.subtype=="date"?C((r(),c("input",S({key:7,type:"date",ref:"dateInput",class:"form-control","onUpdate:modelValue":t[8]||(t[8]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),o.subtype=="month"?C((r(),c("input",S({key:8,type:"month",ref:"monthInput",class:"form-control","onUpdate:modelValue":t[9]||(t[9]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),o.subtype=="year"?C((r(),c("input",S({key:9,type:"number",ref:"yearInput",class:"form-control","onUpdate:modelValue":t[10]||(t[10]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]):u("v-if",!0),o.unit?(r(),c("div",wo,[n("div",yo,_(o.unit),1)])):u("v-if",!0),o.showQuickButtons&&(o.subtype=="date"||o.subtype=="month"||o.subtype=="year")?(r(),c("div",{key:11,class:"input-group-append clickable",onClick:t[11]||(t[11]=i=>s.modify(-1))},So)):u("v-if",!0),o.showQuickButtons&&(o.subtype=="date"||o.subtype=="month"||o.subtype=="year")?(r(),c("div",{key:12,class:"input-group-append clickable",onClick:t[12]||(t[12]=i=>s.modify(1))},Bo)):u("v-if",!0)])]),l.showHelp?(r(),c("span",Oo,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])])}const To=b(lo,[["render",$o],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),xo=Object.freeze(Object.defineProperty({__proto__:null,default:To},Symbol.toStringTag,{value:"Module"}));B.add(I,V);const Io={name:"OpenwbTextareaInput",inheritAttrs:!1,props:{title:String,modelValue:{String,Object},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{showHelp:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch{console.warn("parsing JSON failed: "+e),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},Vo={class:"form-row mb-1"},Po={class:"col-md-8"},Ho={class:"form-row"},Mo={class:"input-group"},Do={class:"input-group-prepend"},Ao={class:"input-group-text"},qo={key:2,class:"input-group-append"},Eo={class:"input-group-text"},Lo={class:"form-text text-muted text-right"},jo={key:0,class:"form-row alert alert-info my-1 small"};function Wo(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",Vo,[n("label",{onClick:t[0]||(t[0]=(...i)=>s.toggleHelp&&s.toggleHelp(...i)),class:"col-md-4 col-form-label"},[p(_(o.title)+" ",1),e.$slots.help?(r(),v(a,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(l.showHelp?"text-info":"")},null,8,["icon","class"])):u("v-if",!0)]),n("div",Po,[n("div",Ho,[n("div",Mo,[n("div",Do,[n("div",Ao,[o.subtype=="text"?(r(),v(a,{key:0,"fixed-width":"",icon:["fas","keyboard"]})):u("v-if",!0),o.subtype=="json"?(r(),v(a,{key:1,"fixed-width":"",icon:["fas","code"]})):u("v-if",!0)])]),o.subtype==="json"?C((r(),c("textarea",S({key:0,ref:"jsonInput",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value,void 0,{lazy:!0}]]):C((r(),c("textarea",S({key:1,class:"form-control","onUpdate:modelValue":t[2]||(t[2]=i=>s.value=i)},e.$attrs),null,16)),[[$,s.value]]),e.$attrs.maxlength?(r(),c("div",qo,[n("div",Eo,[n("small",Lo,_(s.length)+" / "+_(e.$attrs.maxlength),1)])])):u("v-if",!0)])]),l.showHelp?(r(),c("span",jo,[w(e.$slots,"help",{},void 0,!0)])):u("v-if",!0)])])}const Ro=b(Io,[["render",Wo],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),No=Object.freeze(Object.defineProperty({__proto__:null,default:Ro},Symbol.toStringTag,{value:"Module"}));const Uo={name:"OpenwbToast",emits:["dismiss"],props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number}},data(){return{handle:void 0,relativeTime:void 0}},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const o=new Date,d=this.timestamp*1e3-o;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(d/e[l]),l);break}}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)}},U=e=>(A("data-v-c51b5764"),e=e(),q(),e),zo=U(()=>n("strong",{class:"pr-2 mr-auto"},"OpenWB",-1)),Fo={key:0,class:"time-diff"},Go=U(()=>n("span",{"aria-hidden":"true"},"×",-1)),Jo=[Go],Ko={class:"toast-body"};function Qo(e,t,o,d,l,s){return r(),c("div",{class:k(["toast","border-"+o.subtype]),role:"alert"},[n("div",{class:k(["toast-header","bg-"+o.subtype])},[zo,o.timestamp?(r(),c("small",Fo,_(l.relativeTime),1)):u("v-if",!0),n("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>s.dismiss&&s.dismiss(...a))},Jo)],2),n("div",Ko,[w(e.$slots,"default",{},void 0,!0)])],2)}const Yo=b(Uo,[["render",Qo],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Zo=Object.freeze(Object.defineProperty({__proto__:null,default:Yo},Symbol.toStringTag,{value:"Module"}));B.add(Me);const Xo={name:"OpenwbNavBar",components:{FontAwesomeIcon:O},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},P=e=>(A("data-v-e7a6d0c0"),e=e(),q(),e),en={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},tn=P(()=>n("a",{class:"navbar-brand",href:"/openWB/web/"},[n("span",null,"openWB")],-1)),sn={class:"navbar-toggler",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar",ref:"navbarButton"},on=P(()=>n("span",{class:"navbar-toggler-icon"},null,-1)),nn=[on],an={class:"collapse navbar-collapse",id:"collapsibleNavbar",ref:"collapsibleNavbar"},ln={class:"navbar-nav"},rn={class:"nav-item"},dn={class:"nav-item dropdown nav-separator-after"},cn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),un={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},pn={class:"nav-item dropdown"},mn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),fn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_n={class:"nav-item dropdown"},hn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),gn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bn={class:"nav-item dropdown"},vn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),wn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},yn=P(()=>n("div",{class:"dropdown-divider"},null,-1)),kn=P(()=>n("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1)),Sn={class:"nav-item dropdown"},Cn=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),Bn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},On={key:0,class:"nav-item dropdown nav-separator-before"},$n=P(()=>n("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Beispiele ",-1)),Tn={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},xn={class:"nav-item nav-separator-before"},In={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function Vn(e,t,o,d,l,s){const a=h("router-link"),i=h("font-awesome-icon");return r(),c("nav",en,[tn,n("button",sn,nn,512),n("div",an,[n("ul",ln,[n("li",rn,[m(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:f(()=>[p(" Status ")]),_:1})]),n("li",dn,[cn,n("div",un,[m(a,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Ladeprotokoll ")]),_:1}),m(a,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Diagramme ")]),_:1})])]),n("li",pn,[mn,n("div",fn,[m(a,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Allgemein ")]),_:1}),m(a,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Optionale Hardware ")]),_:1})])]),n("li",_n,[hn,n("div",gn,[m(a,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Übergreifendes ")]),_:1}),m(a,{to:"/InstantChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Sofortladen ")]),_:1}),m(a,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" PV-Laden ")]),_:1}),m(a,{to:"/TimeChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Zeitladen ")]),_:1}),m(a,{to:"/ScheduledChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Zielladen ")]),_:1})])]),n("li",bn,[vn,n("div",wn,[m(a,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Geräte und Komponenten ")]),_:1}),m(a,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Lastmanagement ")]),_:1}),m(a,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Ladepunkte ")]),_:1}),m(a,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Fahrzeuge ")]),_:1}),yn,kn])]),n("li",Sn,[Cn,n("div",Bn,[m(a,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" openWB Cloud ")]),_:1}),m(a,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" MQTT-Brücken ")]),_:1}),m(a,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Fehlersuche ")]),_:1}),m(a,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Support ")]),_:1}),m(a,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Datenverwaltung ")]),_:1}),m(a,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" System ")]),_:1}),m(a,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" Rechtliches ")]),_:1})])]),s.nodeEnv!=="production"?(r(),c("li",On,[$n,n("div",Tn,[m(a,{to:"/TestingStore",class:"dropdown-item","active-class":"active disabled"},{default:f(()=>[p(" VUEX Store ")]),_:1})])])):u("v-if",!0),n("li",xn,[n("a",In,[p(" Wiki "),m(i,{"fixed-width":"",icon:["fas","external-link-alt"]})])])])],512)])}const Pn=b(Xo,[["render",Vn],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const Hn={name:"OpenwbPageFooter"},Mn={id:"footer",class:"footer bg-dark text-light font-small"},Dn={class:"container text-center"};function An(e,t,o,d,l,s){return r(),c("footer",Mn,[n("div",Dn,[n("small",null," Sie befinden sich hier: Einstellungen / "+_(e.$route.meta.heading),1)])])}const qn=b(Hn,[["render",An],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);B.add(De);const En={name:"OpenwbDonationBanner",components:{FontAwesomeIcon:O}},Ln={class:"mt-3 alert alert-dark text-center"},jn=n("br",null,null,-1),Wn=n("br",null,null,-1),Rn={action:"https://www.paypal.com/cgi-bin/webscr",method:"post",target:"_blank"},Nn=n("input",{type:"hidden",name:"cmd",value:"_s-xclick"},null,-1),Un=n("input",{type:"hidden",name:"hosted_button_id",value:"2K8C4Y2JTGH7U"},null,-1),zn={type:"submit",class:"btn btn-primary"};function Fn(e,t,o,d,l,s){const a=h("font-awesome-icon");return r(),c("div",Ln,[p(" Open Source made with love!"),jn,p(" Jede Spende hilft die Weiterentwicklung von openWB voranzutreiben"),Wn,n("form",Rn,[Nn,Un,n("button",zn,[p(" Spenden "),m(a,{icon:["fab","paypal"]})])])])}const Gn=b(En,[["render",Fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageDonationBanner.vue"]]),Jn={name:"ComponentState",data(){return{mqttTopicsToSubscribe:[]}},emits:["reset","defaults","save"],computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","standby","stop"]},mqttClientId(){return this.$root.mqttClientId}},methods:{updateState(e,t,o=void 0){console.debug("updateState:",e,t,o),this.$store.commit({type:"updateTopic",topic:e,objectPath:o,payload:t})},getWildcardIndexList(e,t=!1){let o=e;t||(o="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(o));return d.forEach((l,s,a)=>{a[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let o=e;return t||(o="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(o)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,o=t,d=1){return(e*d).toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:o})},formatNumberTopic(e,t=0,o=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,o,d):"-"},formatPhaseArrayNumberTopic(e,t=0,o=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,o,d)).join(" / "):"- / - / -"},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}}},mounted(){this.mqttTopicsToSubscribe.push("openWB/log/"+this.mqttClientId+"/data"),this.mqttTopicsToSubscribe.forEach(e=>{e.includes("#")||e.includes("+")?console.debug("skipping init of wildcard topic:",e):Object.keys(this.$store.state.mqtt).includes(e)?console.error("multiple subscriptions of topic!",e):this.$store.commit("addTopic",{topic:e,payload:void 0})}),this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.$root.doUnsubscribe(this.mqttTopicsToSubscribe),this.mqttTopicsToSubscribe.forEach(e=>{e.includes("#")||e.includes("+")?(console.debug("expanding wildcard topic:",e),Object.keys(this.getWildcardTopics(e)).forEach(t=>{console.debug("removing wildcardTopic:",t),this.$store.commit("removeTopic",t)})):this.$store.commit("removeTopic",e)})}},z=b(Jn,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);const Kn={name:"OpenwbPageMessages",mixins:[z],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+","openWB/command/"+this.$root.mqttClientId+"/error"]}},computed:{messages(){const e=[];return this.alertData&&e.push({topic:"openWB/command/"+this.$root.mqttClientId+"/error",source:"command",type:"danger",message:`Bei der Verarbeitung des Befehls '<span class="font-weight-bold">`+this.alertData.command+`</span>' mit den Parametern '<span class="font-weight-bold">`+this.alertData.data+"</span>' ist ein Fehler aufgetreten:<br /><pre class='font-weight-bold'>"+this.alertData.error+"</pre>"}),this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e},alertData(){return this.$store.state.mqtt["openWB/command/"+this.$root.mqttClientId+"/error"]},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[o,d]of Object.entries(e))t.push({topic:o,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[o,d]of Object.entries(e))t.push({topic:o,...d});return t}},methods:{clearTopic(e){this.$root.doPublish(e,void 0)},dismissError(){this.clearTopic("openWB/command/"+this.$root.mqttClientId+"/error")},dismiss(e){console.debug("removing message: "+e.topic),this.clearTopic(e.topic)}}},Qn={class:"openwb-toast position-fixed bottom-0 right-0 p-3"},Yn=["innerHTML"];function Zn(e,t,o,d,l,s){const a=h("openwb-base-toast");return r(),c("div",Qn,[(r(!0),c(x,null,M(s.messages,i=>(r(),v(a,{key:i.topic,topic:i.topic,source:i.source,subtype:i.type,timestamp:i.timestamp,onDismiss:s.dismiss},{default:f(()=>[n("span",{innerHTML:i.message},null,8,Yn)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss"]))),128))])}const Xn=b(Kn,[["render",Zn],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),ea={name:"OpenwbPageBlocker",mixins:[z],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},ta={class:"openwb-blocker"},sa={key:0},oa={key:1},na={key:2},aa={key:3};function ia(e,t,o,d,l,s){const a=h("openwb-base-modal-dialog");return r(),c("div",ta,[m(a,{show:s.showModalBlocker,title:s.title,subtype:"dark",preventClose:!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=i=>s.handleModalResult(i))},{default:f(()=>[s.bootInProgress?(r(),c("p",sa," Der Systemstart ist noch nicht abgeschlossen. ")):u("v-if",!0),s.updateInProgress?(r(),c("p",oa," Es wird eine Systemaktualisierung ausgeführt. ")):u("v-if",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(r(),c("p",na," Bitte die Seite neu laden. ")):(r(),c("p",aa,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const la=b(ea,[["render",ia],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const ra={name:"settings-app",components:{NavBar:Pn,PageFooter:qn,DonationBanner:Gn,Messages:Xn,Blocker:la},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch{return}},topicList(){return Object.keys(this.$store.state.mqtt)}},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}console.debug("saving values..."),this.$store.state.local.savingData=!0;let o={};e===void 0?o=this.$store.state.mqtt:Array.isArray(e)?e.forEach(d=>{o[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(o)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}console.debug("done saving data"),this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:o,endpoint:d,...l}=this.connection,s=`${e}://${t}:${o}${d}`;console.debug("connecting to broker:",s);try{this.client=se.connect(s,l)}catch(a){console.error("mqtt.connect error",a)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"])}),this.client.on("error",a=>{console.error("Connection failed",a)}),this.client.on("message",(a,i)=>{if(i.toString().length>0){let g;try{g=JSON.parse(i.toString())}catch{console.debug("Json parsing failed, fallback to string: ",a),g=i.toString()}this.$store.commit("addTopic",{topic:a,payload:g})}else this.$store.commit("removeTopic",a)})},doSubscribe(e){this.client.subscribe(e,{},t=>{if(t){console.error("Subscribe to topics error",t);return}})},doUnsubscribe(e){this.client.unsubscribe(e,t=>{t&&console.error("Unsubscribe error",t)})},doPublish(e,t,o=!0,d=2){let l={qos:d,retain:o};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const o=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+o;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(o/1e3)}})}},created(){this.createConnection()}},da={role:"main",class:"container"},ca={id:"content"};function ua(e,t,o,d,l,s){const a=h("nav-bar"),i=h("router-view"),g=h("donation-banner"),T=h("page-footer"),H=h("messages"),D=h("blocker");return r(),c(x,null,[n("header",null,[m(a)]),n("div",da,[n("div",ca,[n("h1",null,_(e.$route.meta.heading),1),m(i,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])]),m(g)]),m(T),m(H),m(D)],64)}const pa=b(ra,[["render",ua],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),ma="modulepreload",fa=function(e){return"/openWB/web/settings/"+e},R={},y=function(t,o,d){if(!o||o.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(o.map(s=>{if(s=fa(s),s in R)return;R[s]=!0;const a=s.endsWith(".css"),i=a?'[rel="stylesheet"]':"";if(!!d)for(let H=l.length-1;H>=0;H--){const D=l[H];if(D.href===s&&(!a||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${i}`))return;const T=document.createElement("link");if(T.rel=a?"stylesheet":ma,a||(T.as="script",T.crossOrigin=""),T.href=s,document.head.appendChild(T),a)return new Promise((H,D)=>{T.addEventListener("load",H),T.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t())};let F={mqtt:{},local:{reloadRequired:!1,savingData:!1},text:{rfidWiki:'Bitte auch hiervon abhängige Einstellungen beachten. Eine Übersicht gibt es im <a href="https://github.com/openWB/core/wiki/Ladung-nur-nach-Freischaltung" target="_blank" rel="noopener noreferrer">Wiki</a>.'}};F.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",number1:5,number2:10,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:"three",buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"]};const G=oe({state:F,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const o=(d,l,s)=>l.split(".").reduce((a,i,g)=>a[i]=l.split(".").length===++g?s:a[i]||{},d);t.topic in e.mqtt?t.objectPath!=null?o(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?o(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var o,d;o=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(o),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})}}}),J=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>y(()=>import("./Status-4190b69b.js"),["assets/Status-4190b69b.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js","assets/Status-49744ef3.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>y(()=>import("./ChargeLog-8f431e93.js"),["assets/ChargeLog-8f431e93.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js","assets/ChargeLog-eab2275c.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>y(()=>import("./Chart-0d3a0216.js"),["assets/Chart-0d3a0216.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-chartjs-dd3fd71e.js","assets/vendor-luxon-1af9332f.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>y(()=>import("./GeneralConfig-ede8ec95.js"),["assets/GeneralConfig-ede8ec95.js","assets/dynamic-import-helper-be004503.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Optionale Hardware"},component:()=>y(()=>import("./OptionalComponents-5a18805b.js"),["assets/OptionalComponents-5a18805b.js","assets/dynamic-import-helper-be004503.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>y(()=>import("./GeneralChargeConfig-f06f295f.js"),["assets/GeneralChargeConfig-f06f295f.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/InstantChargeConfig",name:"InstantChargeConfig",meta:{heading:"Ladeeinstellungen - Sofortladen"},component:()=>y(()=>import("./InstantChargeConfig-ccd32a4a.js"),["assets/InstantChargeConfig-ccd32a4a.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>y(()=>import("./PVChargeConfig-0cf60184.js"),["assets/PVChargeConfig-0cf60184.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/TimeChargeConfig",name:"TimeChargeConfig",meta:{heading:"Ladeeinstellungen - Zeitladen"},component:()=>y(()=>import("./TimeChargeConfig-fc69b7f9.js"),["assets/TimeChargeConfig-fc69b7f9.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/ScheduledChargeConfig",name:"ScheduledChargeConfig",meta:{heading:"Ladeeinstellungen - Zielladen"},component:()=>y(()=>import("./ScheduledChargeConfig-cbe98bc3.js"),["assets/ScheduledChargeConfig-cbe98bc3.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>y(()=>import("./HardwareInstallation-7bc514d7.js"),["assets/HardwareInstallation-7bc514d7.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js","assets/HardwareInstallation-1ee9693f.css"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>y(()=>import("./LoadManagementConfig-9ae6427e.js"),["assets/LoadManagementConfig-9ae6427e.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/OpenwbSortableList-657056f9.js","assets/OpenwbSortableList-15b0be17.css","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>y(()=>import("./ChargePointInstallation-5189015b.js"),["assets/ChargePointInstallation-5189015b.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js","assets/ChargePointInstallation-ed6a5c7e.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>y(()=>import("./VehicleConfig-f9e02415.js"),["assets/VehicleConfig-f9e02415.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js","assets/VehicleConfig-4aeda6ca.css"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>y(()=>import("./CloudConfig-001eee3d.js"),["assets/CloudConfig-001eee3d.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>y(()=>import("./MqttBridgeConfig-60846603.js"),["assets/MqttBridgeConfig-60846603.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js","assets/MqttBridgeConfig-3471079a.css"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>y(()=>import("./DebugConfig-e1b35f85.js"),["assets/DebugConfig-e1b35f85.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>y(()=>import("./Support-3c0af4c2.js"),["assets/Support-3c0af4c2.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>y(()=>import("./LegalSettings-25bcb54e.js"),["assets/LegalSettings-25bcb54e.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>y(()=>import("./System-af32e2a5.js"),["assets/System-af32e2a5.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js","assets/System-0f1d217b.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>y(()=>import("./DataManagement-4ea3b86e.js"),["assets/DataManagement-4ea3b86e.js","assets/vendor-fortawesome-ad83e535.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])}];J.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>y(()=>import("./TestingStore-8306b27e.js"),["assets/TestingStore-8306b27e.js","assets/OpenwbSortableList-657056f9.js","assets/vendor-94ac8c48.js","assets/vendor-sortablejs-dbc23470.js","assets/vendor-7b9e30aa.css","assets/vendor-fortawesome-ad83e535.js","assets/OpenwbSortableList-15b0be17.css","assets/vendor-bootstrap-9f620114.js","assets/vendor-jquery-f7104ff8.js","assets/vendor-bootstrap-e99e333f.css","assets/vendor-axios-dc63434e.js"])});const L=ne({history:ae(),routes:J});L.beforeEach(async e=>{if(e.name!=="LegalSettings"&&!await G.getters.usageTermsAcknowledged)return{name:"LegalSettings"}});L.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const j=ie(pa);j.use(G).use(L).use(Ae,qe);const _a=Object.assign({"./components/OpenwbBaseAlert.vue":We,"./components/OpenwbBaseArrayInput.vue":tt,"./components/OpenwbBaseAvatar.vue":it,"./components/OpenwbBaseButtonGroupInput.vue":ht,"./components/OpenwbBaseButtonInput.vue":Ct,"./components/OpenwbBaseCard.vue":Dt,"./components/OpenwbBaseCheckboxInput.vue":Nt,"./components/OpenwbBaseClickButton.vue":Gt,"./components/OpenwbBaseCopyToClipboard.vue":Zt,"./components/OpenwbBaseHeading.vue":as,"./components/OpenwbBaseModalDialog.vue":_s,"./components/OpenwbBaseNumberInput.vue":Ts,"./components/OpenwbBaseRangeInput.vue":js,"./components/OpenwbBaseSelectInput.vue":Zs,"./components/OpenwbBaseSubmitButtons.vue":io,"./components/OpenwbBaseTextInput.vue":xo,"./components/OpenwbBaseTextarea.vue":No,"./components/OpenwbBaseToast.vue":Zo});Object.entries(_a).forEach(([e,t])=>{const o=le(re(e.split("/").pop().replace(/\.\w+$/,"")));j.component(o,t.default)});j.mount("#app");export{z as C,y as _};
diff --git a/web/settings/assets/inverter-a4741525.js b/web/settings/assets/inverter-09d68c12.js
similarity index 89%
rename from web/settings/assets/inverter-a4741525.js
rename to web/settings/assets/inverter-09d68c12.js
index ef47c37cca..1aad5941ed 100644
--- a/web/settings/assets/inverter-a4741525.js
+++ b/web/settings/assets/inverter-09d68c12.js
@@ -1 +1 @@
-import{_ as l,p as n,k as d,l as c,A as o,L as p,u as v,q as _,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceOpenwbEvukitInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-openwb-evukit-inverter"},g={class:"small"};function h(t,e,i,w,x,a){const s=n("openwb-base-heading"),r=n("openwb-base-select-input");return d(),c("div",b,[o(s,null,{default:p(()=>[v(" Einstellungen für openWB EVU-Kit Wechselrichter "),_("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),o(r,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=u=>a.updateConfiguration(u,"configuration.version"))},null,8,["model-value"])])}const B=l(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_evu_kit/inverter.vue"]]);export{B as default};
+import{_ as l,p as n,k as d,l as c,A as o,L as p,u as v,q as _,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceOpenwbEvukitInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-openwb-evukit-inverter"},g={class:"small"};function h(t,e,i,w,x,a){const s=n("openwb-base-heading"),r=n("openwb-base-select-input");return d(),c("div",b,[o(s,null,{default:p(()=>[v(" Einstellungen für openWB EVU-Kit Wechselrichter "),_("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),o(r,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=u=>a.updateConfiguration(u,"configuration.version"))},null,8,["model-value"])])}const B=l(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_evu_kit/inverter.vue"]]);export{B as default};
diff --git a/web/settings/assets/inverter-1c1592c9.js b/web/settings/assets/inverter-0a8a02aa.js
similarity index 86%
rename from web/settings/assets/inverter-1c1592c9.js
rename to web/settings/assets/inverter-0a8a02aa.js
index 981944bec0..0c80c472c8 100644
--- a/web/settings/assets/inverter-1c1592c9.js
+++ b/web/settings/assets/inverter-0a8a02aa.js
@@ -1 +1 @@
-import{_ as c,p as t,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceFemsInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-fems-inverter"},m={class:"small"};function b(e,n,v,g,h,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openEMS, Fenecon FEMS, Kaco Hy-Control Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const E=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/inverter.vue"]]);export{E as default};
+import{_ as c,p as t,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceFemsInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-fems-inverter"},m={class:"small"};function b(e,n,v,g,h,w){const i=t("openwb-base-heading"),r=t("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für openEMS, Fenecon FEMS, Kaco Hy-Control Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const E=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/inverter.vue"]]);export{E as default};
diff --git a/web/settings/assets/inverter-d02eb41e.js b/web/settings/assets/inverter-0daad30f.js
similarity index 90%
rename from web/settings/assets/inverter-d02eb41e.js
rename to web/settings/assets/inverter-0daad30f.js
index 423c3a1bc0..df86c9e769 100644
--- a/web/settings/assets/inverter-d02eb41e.js
+++ b/web/settings/assets/inverter-0daad30f.js
@@ -1 +1 @@
-import{_ as d,p as o,k as p,l as c,A as i,L as m,u as _,q as f,x as v}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceOpenwbFlexInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-openwb-flex-inverter"},x={class:"small"};function w(t,e,a,M,h,s){const u=o("openwb-base-heading"),l=o("openwb-base-select-input"),r=o("openwb-base-number-input");return p(),c("div",g,[i(u,null,{default:m(()=>[_(" Einstellungen für openWB-Flex Wechselrichter "),f("span",x,"(Modul: "+v(t.$options.name)+")",1)]),_:1}),i(l,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(r,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":a.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const C=d(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_flex/inverter.vue"]]);export{C as default};
+import{_ as d,p as o,k as p,l as c,A as i,L as m,u as _,q as f,x as v}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceOpenwbFlexInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-openwb-flex-inverter"},x={class:"small"};function w(t,e,a,M,h,s){const u=o("openwb-base-heading"),l=o("openwb-base-select-input"),r=o("openwb-base-number-input");return p(),c("div",g,[i(u,null,{default:m(()=>[_(" Einstellungen für openWB-Flex Wechselrichter "),f("span",x,"(Modul: "+v(t.$options.name)+")",1)]),_:1}),i(l,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":a.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(r,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":a.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const C=d(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_flex/inverter.vue"]]);export{C as default};
diff --git a/web/settings/assets/inverter-b959eebb.js b/web/settings/assets/inverter-1a27b5a2.js
similarity index 86%
rename from web/settings/assets/inverter-b959eebb.js
rename to web/settings/assets/inverter-1a27b5a2.js
index 91c0f47d7d..7951b213ba 100644
--- a/web/settings/assets/inverter-b959eebb.js
+++ b/web/settings/assets/inverter-1a27b5a2.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSunwaysInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sunways-inverter"},m={class:"small"};function v(e,n,b,g,h,w){const r=t("openwb-base-heading"),i=t("openwb-base-alert");return d(),p("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für Sunways Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/inverter.vue"]]);export{x as default};
+import{_ as c,p as t,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSunwaysInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sunways-inverter"},m={class:"small"};function v(e,n,b,g,h,w){const r=t("openwb-base-heading"),i=t("openwb-base-alert");return d(),p("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für Sunways Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/inverter.vue"]]);export{x as default};
diff --git a/web/settings/assets/inverter-e3d31521.js b/web/settings/assets/inverter-22be4ed9.js
similarity index 93%
rename from web/settings/assets/inverter-e3d31521.js
rename to web/settings/assets/inverter-22be4ed9.js
index c4d20eac8b..b1004887c8 100644
--- a/web/settings/assets/inverter-e3d31521.js
+++ b/web/settings/assets/inverter-22be4ed9.js
@@ -1 +1 @@
-import{_ as c,p as n,k as d,l,A as o,L as s,u as r,q as p,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolarWorldInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solar_world-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const a=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),l("div",f,[o(a,null,{default:s(()=>[r(" Einstellungen für SolarWorld Wechselrichter "),p("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[r(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as d,l,A as o,L as s,u as r,q as p,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolarWorldInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solar_world-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const a=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),l("div",f,[o(a,null,{default:s(()=>[r(" Einstellungen für SolarWorld Wechselrichter "),p("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[r(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-2558e456.js b/web/settings/assets/inverter-2558e456.js
new file mode 100644
index 0000000000..63e030ee5d
--- /dev/null
+++ b/web/settings/assets/inverter-2558e456.js
@@ -0,0 +1 @@
+import{_ as l,p as i,k as f,l as _,A as r,L as s,u as n,q as o,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DevicePowerfoxInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-powerfox-inverter"},b={class:"small"},v=o("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),w=o("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1);function x(t,e,a,D,k,d){const u=i("openwb-base-heading"),c=i("openwb-base-text-input");return f(),_("div",g,[r(u,null,{default:s(()=>[n(" Einstellungen für Powerfox Wechselrichter "),o("span",b,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),r(c,{title:"ID",required:"","model-value":a.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.id"))},{help:s(()=>[n(" Um die ID herauszufinden mit dem Browser die Adresse "),v,n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter "),w,n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ")]),_:1},8,["model-value"])])}const z=l(h,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/inverter.vue"]]);export{z as default};
diff --git a/web/settings/assets/inverter-a532223b.js b/web/settings/assets/inverter-2b727919.js
similarity index 93%
rename from web/settings/assets/inverter-a532223b.js
rename to web/settings/assets/inverter-2b727919.js
index 8a0ebd42d5..432a6aad38 100644
--- a/web/settings/assets/inverter-a532223b.js
+++ b/web/settings/assets/inverter-2b727919.js
@@ -1 +1 @@
-import{_ as u,p as o,k as c,l,A as t,L as p,u as m,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSolarmaxInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-solarmax-inverter"},g={class:"small"};function x(n,e,a,h,w,i){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return c(),l("div",v,[t(s,null,{default:p(()=>[m(" Einstellungen für Solarmax Wechselrichter "),_("span",g,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),t(r,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/inverter.vue"]]);export{I as default};
+import{_ as u,p as o,k as c,l,A as t,L as p,u as m,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSolarmaxInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-solarmax-inverter"},g={class:"small"};function x(n,e,a,h,w,i){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return c(),l("div",v,[t(s,null,{default:p(()=>[m(" Einstellungen für Solarmax Wechselrichter "),_("span",g,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),t(r,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(b,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/inverter.vue"]]);export{I as default};
diff --git a/web/settings/assets/inverter-f9807fb1.js b/web/settings/assets/inverter-3515d2b5.js
similarity index 93%
rename from web/settings/assets/inverter-f9807fb1.js
rename to web/settings/assets/inverter-3515d2b5.js
index 028aa96230..9eb3674999 100644
--- a/web/settings/assets/inverter-f9807fb1.js
+++ b/web/settings/assets/inverter-3515d2b5.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l,A as o,L as s,u as a,q as d,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceKostalPlenticoreInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-kostalplenticore-inverter"},m={class:"small"};function b(e,t,v,g,h,k){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),l("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Kostal Plenticore Wechselrichter "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_plenticore/inverter.vue"]]);export{x as default};
+import{_ as c,p as n,k as p,l,A as o,L as s,u as a,q as d,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceKostalPlenticoreInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-kostalplenticore-inverter"},m={class:"small"};function b(e,t,v,g,h,k){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),l("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Kostal Plenticore Wechselrichter "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_plenticore/inverter.vue"]]);export{x as default};
diff --git a/web/settings/assets/inverter-be6aac70.js b/web/settings/assets/inverter-35d50734.js
similarity index 86%
rename from web/settings/assets/inverter-be6aac70.js
rename to web/settings/assets/inverter-35d50734.js
index 01d2322610..9de9f05f9b 100644
--- a/web/settings/assets/inverter-be6aac70.js
+++ b/web/settings/assets/inverter-35d50734.js
@@ -1 +1 @@
-import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceE3dcInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-e3dc-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für E3DC Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const E=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/inverter.vue"]]);export{E as default};
+import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceE3dcInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-e3dc-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für E3DC Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const E=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/inverter.vue"]]);export{E as default};
diff --git a/web/settings/assets/inverter-b1415371.js b/web/settings/assets/inverter-39afe3b5.js
similarity index 86%
rename from web/settings/assets/inverter-b1415371.js
rename to web/settings/assets/inverter-39afe3b5.js
index 4d110a8b5d..2d010ef11f 100644
--- a/web/settings/assets/inverter-b1415371.js
+++ b/web/settings/assets/inverter-39afe3b5.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolarLogInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solar_log-inverter"},m={class:"small"};function g(e,t,b,v,h,w){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),d("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für Solar-Log Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolarLogInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solar_log-inverter"},m={class:"small"};function g(e,t,b,v,h,w){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),d("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für Solar-Log Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-326280ce.js b/web/settings/assets/inverter-3b84e31d.js
similarity index 86%
rename from web/settings/assets/inverter-326280ce.js
rename to web/settings/assets/inverter-3b84e31d.js
index b18980b680..b0599a5871 100644
--- a/web/settings/assets/inverter-326280ce.js
+++ b/web/settings/assets/inverter-3b84e31d.js
@@ -1 +1 @@
-import{_ as c,p as n,k as l,l as p,A as o,L as s,u as a,q as d,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceQCelllsInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-qcells-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für QCells ESS Wechselrichter "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/inverter.vue"]]);export{x as default};
+import{_ as c,p as n,k as l,l as p,A as o,L as s,u as a,q as d,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceQCelllsInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-qcells-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für QCells ESS Wechselrichter "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/inverter.vue"]]);export{x as default};
diff --git a/web/settings/assets/inverter-3d45d55a.js b/web/settings/assets/inverter-3d45d55a.js
deleted file mode 100644
index 9645690a31..0000000000
--- a/web/settings/assets/inverter-3d45d55a.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as l,p as o,k as f,l as _,A as r,L as i,u as t,q as s,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DevicePowerfoxInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},v={class:"device-powerfox-inverter"},g={class:"small"},h=s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1);function w(n,e,a,x,D,d){const u=o("openwb-base-heading"),c=o("openwb-base-text-input");return f(),_("div",v,[r(u,null,{default:i(()=>[t(" Einstellungen für Powerfox Wechselrichter "),s("span",g,"(Modul: "+m(n.$options.name)+")",1)]),_:1}),r(c,{title:"ID",required:"","model-value":a.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.id"))},{help:i(()=>[t(" Um die ID herauszufinden mit dem Browser die Adresse "),h,t(" aufrufen und dort Benutzername und Passwort eingeben. Die Device ID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/KLeinschreibung ist zu beachten! ")]),_:1},8,["model-value"])])}const B=l(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/inverter.vue"]]);export{B as default};
diff --git a/web/settings/assets/inverter-d2ccf27d.js b/web/settings/assets/inverter-3df75149.js
similarity index 91%
rename from web/settings/assets/inverter-d2ccf27d.js
rename to web/settings/assets/inverter-3df75149.js
index 64fd7254dc..50a6b4a958 100644
--- a/web/settings/assets/inverter-d2ccf27d.js
+++ b/web/settings/assets/inverter-3df75149.js
@@ -1 +1 @@
-import{_ as c,p as o,k as _,l as m,A as a,L as i,u as s,q as b,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceStuderInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-studer-inverter"},V={class:"small"};function S(t,e,r,T,h,u){const d=o("openwb-base-heading"),l=o("openwb-base-button-group-input"),p=o("openwb-base-number-input");return _(),m("div",v,[a(d,null,{default:i(()=>[s(" Einstellungen für Studer Wechselrichter "),b("span",V,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),a(l,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":r.configuration.vc_type,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.vc_type"))},null,8,["buttons","model-value"]),a(p,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":r.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.vc_count"))},{help:i(()=>[s(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ")]),_:1},8,["model-value"])])}const y=c(g,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/inverter.vue"]]);export{y as default};
+import{_ as c,p as o,k as _,l as m,A as a,L as i,u as s,q as b,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceStuderInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-studer-inverter"},V={class:"small"};function S(t,e,r,T,h,u){const d=o("openwb-base-heading"),l=o("openwb-base-button-group-input"),p=o("openwb-base-number-input");return _(),m("div",v,[a(d,null,{default:i(()=>[s(" Einstellungen für Studer Wechselrichter "),b("span",V,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),a(l,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":r.configuration.vc_type,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.vc_type"))},null,8,["buttons","model-value"]),a(p,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":r.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.vc_count"))},{help:i(()=>[s(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ")]),_:1},8,["model-value"])])}const y=c(g,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/inverter.vue"]]);export{y as default};
diff --git a/web/settings/assets/inverter-a6e26156.js b/web/settings/assets/inverter-3e855a0b.js
similarity index 86%
rename from web/settings/assets/inverter-a6e26156.js
rename to web/settings/assets/inverter-3e855a0b.js
index d49dfb1386..d9d6636f5d 100644
--- a/web/settings/assets/inverter-a6e26156.js
+++ b/web/settings/assets/inverter-3e855a0b.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSonnenbatterieInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sonnenbatterie-inverter"},m={class:"small"};function b(e,n,v,g,h,w){const r=t("openwb-base-heading"),i=t("openwb-base-alert");return d(),p("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für SonnenBatterie Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const B=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnenbatterie/inverter.vue"]]);export{B as default};
+import{_ as c,p as t,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSonnenbatterieInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sonnenbatterie-inverter"},m={class:"small"};function b(e,n,v,g,h,w){const r=t("openwb-base-heading"),i=t("openwb-base-alert");return d(),p("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für SonnenBatterie Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const B=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnenbatterie/inverter.vue"]]);export{B as default};
diff --git a/web/settings/assets/inverter-8ca711bc.js b/web/settings/assets/inverter-42feff92.js
similarity index 86%
rename from web/settings/assets/inverter-8ca711bc.js
rename to web/settings/assets/inverter-42feff92.js
index c05bc7c5db..85e55b1389 100644
--- a/web/settings/assets/inverter-8ca711bc.js
+++ b/web/settings/assets/inverter-42feff92.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceRCTInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-rct-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für RCT Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const C=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/inverter.vue"]]);export{C as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceRCTInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-rct-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für RCT Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const C=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/inverter.vue"]]);export{C as default};
diff --git a/web/settings/assets/inverter-af852271.js b/web/settings/assets/inverter-5500500b.js
similarity index 87%
rename from web/settings/assets/inverter-af852271.js
rename to web/settings/assets/inverter-5500500b.js
index d01b195988..46f2917125 100644
--- a/web/settings/assets/inverter-af852271.js
+++ b/web/settings/assets/inverter-5500500b.js
@@ -1 +1 @@
-import{_ as u,p as n,k as c,l as p,A as o,L as l,u as m,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceSmartMeInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-smart-me-inverter"},b={class:"small"};function h(t,e,a,x,w,i){const r=n("openwb-base-heading"),s=n("openwb-base-text-input");return c(),p("div",g,[o(r,null,{default:l(()=>[m(" Einstellungen für smart-me Wechselrichter "),_("span",b,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(s,{title:"Geräte-ID",required:"","model-value":a.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.id"))},null,8,["model-value"])])}const C=u(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/inverter.vue"]]);export{C as default};
+import{_ as u,p as n,k as c,l as p,A as o,L as l,u as m,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceSmartMeInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-smart-me-inverter"},b={class:"small"};function h(t,e,a,x,w,i){const r=n("openwb-base-heading"),s=n("openwb-base-text-input");return c(),p("div",g,[o(r,null,{default:l(()=>[m(" Einstellungen für smart-me Wechselrichter "),_("span",b,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),o(s,{title:"Geräte-ID",required:"","model-value":a.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.id"))},null,8,["model-value"])])}const C=u(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/inverter.vue"]]);export{C as default};
diff --git a/web/settings/assets/inverter-267fccce.js b/web/settings/assets/inverter-57f7e67c.js
similarity index 86%
rename from web/settings/assets/inverter-267fccce.js
rename to web/settings/assets/inverter-57f7e67c.js
index 537134ccc5..9c3a0f3888 100644
--- a/web/settings/assets/inverter-267fccce.js
+++ b/web/settings/assets/inverter-57f7e67c.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceBatterXInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-batterx-inverter"},m={class:"small"};function b(e,t,v,g,h,x){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),d("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für BatterX Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/inverter.vue"]]);export{$ as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceBatterXInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-batterx-inverter"},m={class:"small"};function b(e,t,v,g,h,x){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),d("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für BatterX Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const $=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/inverter.vue"]]);export{$ as default};
diff --git a/web/settings/assets/inverter-508f415f.js b/web/settings/assets/inverter-66b1df21.js
similarity index 89%
rename from web/settings/assets/inverter-508f415f.js
rename to web/settings/assets/inverter-66b1df21.js
index ae515d5550..40e718c06a 100644
--- a/web/settings/assets/inverter-508f415f.js
+++ b/web/settings/assets/inverter-66b1df21.js
@@ -1 +1 @@
-import{_ as c,p as o,k as l,l as d,A as n,L as p,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceKostalStecaInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-kostal-steca-inverter"},g={class:"small"};function h(t,e,a,k,x,s){const i=o("openwb-base-heading"),r=o("openwb-base-button-group-input");return l(),d("div",v,[n(i,null,{default:p(()=>[_(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(r,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":a.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=u=>s.updateConfiguration(u,"configuration.variant_steca"))},null,8,["buttons","model-value"])])}const C=c(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_steca/inverter.vue"]]);export{C as default};
+import{_ as c,p as o,k as l,l as d,A as n,L as p,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceKostalStecaInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-kostal-steca-inverter"},g={class:"small"};function h(t,e,a,k,x,s){const i=o("openwb-base-heading"),r=o("openwb-base-button-group-input");return l(),d("div",v,[n(i,null,{default:p(()=>[_(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(r,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":a.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=u=>s.updateConfiguration(u,"configuration.variant_steca"))},null,8,["buttons","model-value"])])}const C=c(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_steca/inverter.vue"]]);export{C as default};
diff --git a/web/settings/assets/inverter-6ce20d89.js b/web/settings/assets/inverter-6afece8c.js
similarity index 90%
rename from web/settings/assets/inverter-6ce20d89.js
rename to web/settings/assets/inverter-6afece8c.js
index a2decfca8c..70be004d48 100644
--- a/web/settings/assets/inverter-6ce20d89.js
+++ b/web/settings/assets/inverter-6afece8c.js
@@ -1 +1 @@
-import{_ as p,p as t,k as m,l as _,A as o,L as s,u as i,q as f,x as h}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSmahmInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-smahm-inverter"},v={class:"small"};function w(n,e,r,M,x,a){const u=t("openwb-base-heading"),d=t("openwb-base-alert"),c=t("openwb-base-number-input");return m(),_("div",g,[o(u,null,{default:s(()=>[i(" Einstellungen für SMA-HM/EM Wechselrichter "),f("span",v,"(Modul: "+h(n.$options.name)+")",1)]),_:1}),o(d,{subtype:"info"},{default:s(()=>[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ')]),_:1}),o(c,{title:"Seriennummer",required:"","model-value":r.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=l=>a.updateConfiguration(l,"configuration.serials"))},null,8,["model-value"])])}const B=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_shm/inverter.vue"]]);export{B as default};
+import{_ as p,p as t,k as m,l as _,A as o,L as s,u as i,q as f,x as h}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSmahmInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-smahm-inverter"},v={class:"small"};function w(n,e,r,M,x,a){const u=t("openwb-base-heading"),d=t("openwb-base-alert"),c=t("openwb-base-number-input");return m(),_("div",g,[o(u,null,{default:s(()=>[i(" Einstellungen für SMA-HM/EM Wechselrichter "),f("span",v,"(Modul: "+h(n.$options.name)+")",1)]),_:1}),o(d,{subtype:"info"},{default:s(()=>[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ')]),_:1}),o(c,{title:"Seriennummer",required:"","model-value":r.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=l=>a.updateConfiguration(l,"configuration.serials"))},null,8,["model-value"])])}const B=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_shm/inverter.vue"]]);export{B as default};
diff --git a/web/settings/assets/inverter-15408a2b.js b/web/settings/assets/inverter-735276eb.js
similarity index 94%
rename from web/settings/assets/inverter-15408a2b.js
rename to web/settings/assets/inverter-735276eb.js
index fd96a443b1..dc7953b221 100644
--- a/web/settings/assets/inverter-15408a2b.js
+++ b/web/settings/assets/inverter-735276eb.js
@@ -1 +1 @@
-import{_ as c,p as u,k as m,l as h,A as a,L as o,u as t,q as n,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceHttpInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},f={class:"device-http-inverter"},b={class:"small"},v=n("br",null,null,-1),w=n("br",null,null,-1),z=n("br",null,null,-1);function x(i,e,s,k,L,l){const p=u("openwb-base-heading"),d=u("openwb-base-text-input");return m(),h("div",f,[a(p,null,{default:o(()=>[t(" Einstellungen für Http Wechselrichter "),n("span",b,"(Modul: "+g(i.$options.name)+")",1)]),_:1}),a(d,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":s.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>l.updateConfiguration(r,"configuration.power_path"))},{help:o(()=>[t(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),v,t(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ")]),_:1},8,["model-value"]),a(d,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":s.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>l.updateConfiguration(r,"configuration.exported_path"))},{help:o(()=>[t(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),w,t(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),z,t(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ")]),_:1},8,["model-value"])])}const Z=c(_,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/http/inverter.vue"]]);export{Z as default};
+import{_ as c,p as u,k as m,l as h,A as a,L as o,u as t,q as n,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceHttpInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},f={class:"device-http-inverter"},b={class:"small"},v=n("br",null,null,-1),w=n("br",null,null,-1),z=n("br",null,null,-1);function x(i,e,s,k,L,l){const p=u("openwb-base-heading"),d=u("openwb-base-text-input");return m(),h("div",f,[a(p,null,{default:o(()=>[t(" Einstellungen für Http Wechselrichter "),n("span",b,"(Modul: "+g(i.$options.name)+")",1)]),_:1}),a(d,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":s.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>l.updateConfiguration(r,"configuration.power_path"))},{help:o(()=>[t(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),v,t(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ")]),_:1},8,["model-value"]),a(d,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":s.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>l.updateConfiguration(r,"configuration.exported_path"))},{help:o(()=>[t(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.'),w,t(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt."),z,t(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ")]),_:1},8,["model-value"])])}const Z=c(_,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/http/inverter.vue"]]);export{Z as default};
diff --git a/web/settings/assets/inverter-47bedabe.js b/web/settings/assets/inverter-89a115de.js
similarity index 86%
rename from web/settings/assets/inverter-47bedabe.js
rename to web/settings/assets/inverter-89a115de.js
index ba4d11449e..9d109c2ac2 100644
--- a/web/settings/assets/inverter-47bedabe.js
+++ b/web/settings/assets/inverter-89a115de.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as p,A as o,L as s,u as i,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSiemensInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-siemens-inverter"},f={class:"small"};function v(e,n,b,g,h,w){const a=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),p("div",m,[o(a,null,{default:s(()=>[i(" Einstellungen für Siemens Wechselrichter "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[i(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/inverter.vue"]]);export{k as default};
+import{_ as c,p as t,k as d,l as p,A as o,L as s,u as i,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSiemensInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},m={class:"device-siemens-inverter"},f={class:"small"};function v(e,n,b,g,h,w){const a=t("openwb-base-heading"),r=t("openwb-base-alert");return d(),p("div",m,[o(a,null,{default:s(()=>[i(" Einstellungen für Siemens Wechselrichter "),u("span",f,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[i(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-89491124.js b/web/settings/assets/inverter-8ebf65c2.js
similarity index 96%
rename from web/settings/assets/inverter-89491124.js
rename to web/settings/assets/inverter-8ebf65c2.js
index 1d3b0d5534..6cbe4c2afb 100644
--- a/web/settings/assets/inverter-89491124.js
+++ b/web/settings/assets/inverter-8ebf65c2.js
@@ -1 +1 @@
-import{_ as c,p as o,k as _,l as m,A as a,L as s,u,q as b,x as v}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceSunnyBoyInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-sunnyboy-inverter"},y={class:"small"};function h(t,e,i,w,S,r){const d=o("openwb-base-heading"),l=o("openwb-base-button-group-input"),p=o("openwb-base-select-input");return _(),m("div",g,[a(d,null,{default:s(()=>[u(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter "),b("span",y,"(Modul: "+v(t.$options.name)+")",1)]),_:1}),a(l,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":i.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=n=>r.updateConfiguration(n,"configuration.hybrid"))},{help:s(()=>[u(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ")]),_:1},8,["model-value"]),a(p,{title:"Version",notSelected:"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=n=>r.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const C=c(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/inverter.vue"]]);export{C as default};
+import{_ as c,p as o,k as _,l as m,A as a,L as s,u,q as b,x as v}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceSunnyBoyInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-sunnyboy-inverter"},y={class:"small"};function h(t,e,i,w,S,r){const d=o("openwb-base-heading"),l=o("openwb-base-button-group-input"),p=o("openwb-base-select-input");return _(),m("div",g,[a(d,null,{default:s(()=>[u(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter "),b("span",y,"(Modul: "+v(t.$options.name)+")",1)]),_:1}),a(l,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":i.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=n=>r.updateConfiguration(n,"configuration.hybrid"))},{help:s(()=>[u(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ")]),_:1},8,["model-value"]),a(p,{title:"Version",notSelected:"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=n=>r.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const C=c(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_sunny_boy/inverter.vue"]]);export{C as default};
diff --git a/web/settings/assets/inverter-96db7f1d.js b/web/settings/assets/inverter-91521524.js
similarity index 90%
rename from web/settings/assets/inverter-96db7f1d.js
rename to web/settings/assets/inverter-91521524.js
index 4ba8fe52eb..7c5e5e9089 100644
--- a/web/settings/assets/inverter-96db7f1d.js
+++ b/web/settings/assets/inverter-91521524.js
@@ -1 +1 @@
-import{_ as l,p as o,k as m,l as _,A as r,L as i,u as n,q as s,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceDiscovergyInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-discovergy-inverter"},b={class:"small"},h=s("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1);function w(t,e,a,y,x,d){const u=o("openwb-base-heading"),c=o("openwb-base-text-input");return m(),_("div",g,[r(u,null,{default:i(()=>[n(" Einstellungen für Discovergy Wechselrichter "),s("span",b,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),r(c,{title:"Meter-ID",required:"","model-value":a.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[n(" Um die ID herauszufinden mit dem Browser die Adresse "),h,n(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ")]),_:1},8,["model-value"])])}const I=l(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/inverter.vue"]]);export{I as default};
+import{_ as l,p as o,k as m,l as _,A as r,L as i,u as n,q as s,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceDiscovergyInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-discovergy-inverter"},b={class:"small"},h=s("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1);function w(t,e,a,y,x,d){const u=o("openwb-base-heading"),c=o("openwb-base-text-input");return m(),_("div",g,[r(u,null,{default:i(()=>[n(" Einstellungen für Discovergy Wechselrichter "),s("span",b,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),r(c,{title:"Meter-ID",required:"","model-value":a.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>d.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[n(" Um die ID herauszufinden mit dem Browser die Adresse "),h,n(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ")]),_:1},8,["model-value"])])}const I=l(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/inverter.vue"]]);export{I as default};
diff --git a/web/settings/assets/inverter-90b5924d.js b/web/settings/assets/inverter-973593c5.js
similarity index 86%
rename from web/settings/assets/inverter-90b5924d.js
rename to web/settings/assets/inverter-973593c5.js
index 0ebfa3025a..48438568c2 100644
--- a/web/settings/assets/inverter-90b5924d.js
+++ b/web/settings/assets/inverter-973593c5.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolarwattInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solarwatt-inverter"},m={class:"small"};function v(e,t,b,g,h,w){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),d("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für Solarwatt/My Reserve Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolarwattInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solarwatt-inverter"},m={class:"small"};function v(e,t,b,g,h,w){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return p(),d("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für Solarwatt/My Reserve Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-5d68f662.js b/web/settings/assets/inverter-983f9bf4.js
similarity index 93%
rename from web/settings/assets/inverter-5d68f662.js
rename to web/settings/assets/inverter-983f9bf4.js
index ec89542a32..09d5a29ac5 100644
--- a/web/settings/assets/inverter-5d68f662.js
+++ b/web/settings/assets/inverter-983f9bf4.js
@@ -1 +1 @@
-import{_ as u,p as o,k as c,l,A as t,L as p,u as m,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceSolarEdgeInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-solaredge-inverter"},v={class:"small"};function h(n,e,a,w,x,i){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return c(),l("div",g,[t(s,null,{default:p(()=>[m(" Einstellungen für SolarEdge Wechselrichter "),_("span",v,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),t(r,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/inverter.vue"]]);export{E as default};
+import{_ as u,p as o,k as c,l,A as t,L as p,u as m,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceSolarEdgeInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},g={class:"device-solaredge-inverter"},v={class:"small"};function h(n,e,a,w,x,i){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return c(),l("div",g,[t(s,null,{default:p(()=>[m(" Einstellungen für SolarEdge Wechselrichter "),_("span",v,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),t(r,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>i.updateConfiguration(d,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/inverter.vue"]]);export{E as default};
diff --git a/web/settings/assets/inverter-a028ca0c.js b/web/settings/assets/inverter-98ed6e35.js
similarity index 88%
rename from web/settings/assets/inverter-a028ca0c.js
rename to web/settings/assets/inverter-98ed6e35.js
index 94402753f0..cbf05f9439 100644
--- a/web/settings/assets/inverter-a028ca0c.js
+++ b/web/settings/assets/inverter-98ed6e35.js
@@ -1 +1 @@
-import{_ as l,p as n,k as c,l as d,A as o,L as p,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceYoulessInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-youless-inverter"},v={class:"small"};function h(t,e,s,x,w,a){const u=n("openwb-base-heading"),i=n("openwb-base-button-group-input");return c(),d("div",g,[o(u,null,{default:p(()=>[_(" Einstellungen für Youless LS120 Wechselrichter "),f("span",v,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),o(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":s.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const B=l(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/inverter.vue"]]);export{B as default};
+import{_ as l,p as n,k as c,l as d,A as o,L as p,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceYoulessInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-youless-inverter"},v={class:"small"};function h(t,e,s,x,w,a){const u=n("openwb-base-heading"),i=n("openwb-base-button-group-input");return c(),d("div",g,[o(u,null,{default:p(()=>[_(" Einstellungen für Youless LS120 Wechselrichter "),f("span",v,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),o(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":s.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>a.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const B=l(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/inverter.vue"]]);export{B as default};
diff --git a/web/settings/assets/inverter-5cfbe42d.js b/web/settings/assets/inverter-a4f4de69.js
similarity index 86%
rename from web/settings/assets/inverter-5cfbe42d.js
rename to web/settings/assets/inverter-a4f4de69.js
index f17d6ee39d..a44fea1536 100644
--- a/web/settings/assets/inverter-5cfbe42d.js
+++ b/web/settings/assets/inverter-a4f4de69.js
@@ -1 +1 @@
-import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSolaxInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solax-inverter"},m={class:"small"};function v(e,t,b,g,h,x){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),p("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für Solax Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSolaxInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-solax-inverter"},m={class:"small"};function v(e,t,b,g,h,x){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),p("div",f,[o(r,null,{default:s(()=>[a(" Einstellungen für Solax Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-4c98a82a.js b/web/settings/assets/inverter-aba6e6d2.js
similarity index 94%
rename from web/settings/assets/inverter-4c98a82a.js
rename to web/settings/assets/inverter-aba6e6d2.js
index ffbbc83d4b..0025066b00 100644
--- a/web/settings/assets/inverter-4c98a82a.js
+++ b/web/settings/assets/inverter-aba6e6d2.js
@@ -1 +1 @@
-import{_ as d,p as n,k as c,l,A as o,L as p,u as m,q as _,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceHuaweiSmartLoggerInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-huawei-smart-logger-inverter"},v={class:"small"};function h(t,e,a,w,x,i){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return c(),l("div",b,[o(r,null,{default:p(()=>[m(" Einstellungen für Huawei SmartLogger Wechselrichter "),_("span",v,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),o(s,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei_smartlogger/inverter.vue"]]);export{I as default};
+import{_ as d,p as n,k as c,l,A as o,L as p,u as m,q as _,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceHuaweiSmartLoggerInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-huawei-smart-logger-inverter"},v={class:"small"};function h(t,e,a,w,x,i){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return c(),l("div",b,[o(r,null,{default:p(()=>[m(" Einstellungen für Huawei SmartLogger Wechselrichter "),_("span",v,"(Modul: "+g(t.$options.name)+")",1)]),_:1}),o(s,{title:"Modbus ID","model-value":a.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei_smartlogger/inverter.vue"]]);export{I as default};
diff --git a/web/settings/assets/inverter-3fdb1742.js b/web/settings/assets/inverter-ae905211.js
similarity index 86%
rename from web/settings/assets/inverter-3fdb1742.js
rename to web/settings/assets/inverter-ae905211.js
index 7a85e975fc..fde29c139d 100644
--- a/web/settings/assets/inverter-3fdb1742.js
+++ b/web/settings/assets/inverter-ae905211.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as p,A as o,L as s,u as r,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSungrowInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sungrow-inverter"},m={class:"small"};function g(e,n,v,b,h,w){const a=t("openwb-base-heading"),i=t("openwb-base-alert");return d(),p("div",f,[o(a,null,{default:s(()=>[r(" Einstellungen für Sungrow Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[r(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/inverter.vue"]]);export{k as default};
+import{_ as c,p as t,k as d,l as p,A as o,L as s,u as r,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSungrowInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-sungrow-inverter"},m={class:"small"};function g(e,n,v,b,h,w){const a=t("openwb-base-heading"),i=t("openwb-base-alert");return d(),p("div",f,[o(a,null,{default:s(()=>[r(" Einstellungen für Sungrow Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[r(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-7f5cbd1f.js b/web/settings/assets/inverter-b33414cf.js
similarity index 89%
rename from web/settings/assets/inverter-7f5cbd1f.js
rename to web/settings/assets/inverter-b33414cf.js
index ca85de6e7c..941e5fd81c 100644
--- a/web/settings/assets/inverter-7f5cbd1f.js
+++ b/web/settings/assets/inverter-b33414cf.js
@@ -1 +1 @@
-import{_ as u,p as o,k as p,l as m,A as n,L as a,u as i,q as _,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceSolarViewInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-solar-view-inverter"},h={class:"small"};function b(t,e,r,w,x,s){const d=o("openwb-base-heading"),c=o("openwb-base-text-input");return p(),m("div",g,[n(d,null,{default:a(()=>[i(" Einstellungen für SolarView Wechselrichter "),_("span",h,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(c,{title:"Kommando für die Abfrage",required:"","model-value":r.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=l=>s.updateConfiguration(l,"configuration.command"))},{help:a(()=>[i(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ")]),_:1},8,["model-value"])])}const k=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/inverter.vue"]]);export{k as default};
+import{_ as u,p as o,k as p,l as m,A as n,L as a,u as i,q as _,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceSolarViewInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-solar-view-inverter"},h={class:"small"};function b(t,e,r,w,x,s){const d=o("openwb-base-heading"),c=o("openwb-base-text-input");return p(),m("div",g,[n(d,null,{default:a(()=>[i(" Einstellungen für SolarView Wechselrichter "),_("span",h,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(c,{title:"Kommando für die Abfrage",required:"","model-value":r.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=l=>s.updateConfiguration(l,"configuration.command"))},{help:a(()=>[i(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ")]),_:1},8,["model-value"])])}const k=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-c90183ae.js b/web/settings/assets/inverter-b35ac71f.js
similarity index 88%
rename from web/settings/assets/inverter-c90183ae.js
rename to web/settings/assets/inverter-b35ac71f.js
index 5845b79c8b..b146057765 100644
--- a/web/settings/assets/inverter-c90183ae.js
+++ b/web/settings/assets/inverter-b35ac71f.js
@@ -1 +1 @@
-import{_ as c,p as t,k as l,l as _,A as o,L as a,u as i,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceEnphaseInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},b={class:"device-enphase-inverter"},h={class:"small"};function g(n,e,s,w,E,r){const d=t("openwb-base-heading"),u=t("openwb-base-number-input");return l(),_("div",b,[o(d,null,{default:a(()=>[i(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter "),m("span",h,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(u,{title:"EID",required:"","model-value":s.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.eid"))},{help:a(()=>[i(' EID für "production" ')]),_:1},8,["model-value"])])}const q=c(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/inverter.vue"]]);export{q as default};
+import{_ as c,p as t,k as l,l as _,A as o,L as a,u as i,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceEnphaseInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},b={class:"device-enphase-inverter"},h={class:"small"};function g(n,e,s,w,E,r){const d=t("openwb-base-heading"),u=t("openwb-base-number-input");return l(),_("div",b,[o(d,null,{default:a(()=>[i(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter "),m("span",h,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),o(u,{title:"EID",required:"","model-value":s.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.eid"))},{help:a(()=>[i(' EID für "production" ')]),_:1},8,["model-value"])])}const q=c(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/inverter.vue"]]);export{q as default};
diff --git a/web/settings/assets/inverter-eef610e6.js b/web/settings/assets/inverter-b47e8b65.js
similarity index 86%
rename from web/settings/assets/inverter-eef610e6.js
rename to web/settings/assets/inverter-b47e8b65.js
index 427f9ebe2f..44bdefb92b 100644
--- a/web/settings/assets/inverter-eef610e6.js
+++ b/web/settings/assets/inverter-b47e8b65.js
@@ -1 +1 @@
-import{_ as p,p as n,k as c,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceAlphaessInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-alphaess-inverter"},m={class:"small"};function h(e,t,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return c(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Alpha ESS Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=p(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/inverter.vue"]]);export{k as default};
+import{_ as p,p as n,k as c,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceAlphaessInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-alphaess-inverter"},m={class:"small"};function h(e,t,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return c(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Alpha ESS Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=p(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-8c6dadd9.js b/web/settings/assets/inverter-b6d89f35.js
similarity index 86%
rename from web/settings/assets/inverter-8c6dadd9.js
rename to web/settings/assets/inverter-b6d89f35.js
index 0762908243..f41f140db7 100644
--- a/web/settings/assets/inverter-8c6dadd9.js
+++ b/web/settings/assets/inverter-b6d89f35.js
@@ -1 +1 @@
-import{_ as c,p as o,k as d,l as p,A as n,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceKostalPikoOldInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-kostal-piko-old-inverter"},m={class:"small"};function b(e,t,v,g,h,k){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return d(),p("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für Kostal Piko Wechselrichter (alte Generation) "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko_old/inverter.vue"]]);export{x as default};
+import{_ as c,p as o,k as d,l as p,A as n,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceKostalPikoOldInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-kostal-piko-old-inverter"},m={class:"small"};function b(e,t,v,g,h,k){const i=o("openwb-base-heading"),r=o("openwb-base-alert");return d(),p("div",f,[n(i,null,{default:s(()=>[a(" Einstellungen für Kostal Piko Wechselrichter (alte Generation) "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),n(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko_old/inverter.vue"]]);export{x as default};
diff --git a/web/settings/assets/inverter-9962a05f.js b/web/settings/assets/inverter-ba59974f.js
similarity index 95%
rename from web/settings/assets/inverter-9962a05f.js
rename to web/settings/assets/inverter-ba59974f.js
index 528fad947a..a183a7ca61 100644
--- a/web/settings/assets/inverter-9962a05f.js
+++ b/web/settings/assets/inverter-ba59974f.js
@@ -1 +1 @@
-import{_ as c,p as r,k as g,l as _,A as n,L as s,u,q as m,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceVZLoggerInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-vzlogger-inverter"},h={class:"small"};function w(t,e,i,x,V,a){const d=r("openwb-base-heading"),p=r("openwb-base-alert"),l=r("openwb-base-number-input");return g(),_("div",b,[n(d,null,{default:s(()=>[u(" Einstellungen für VZLogger Wechselrichter "),m("span",h,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(p,{subtype:"info"},{default:s(()=>[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ')]),_:1}),n(l,{title:"Zeile der Leistung",required:"",min:0,"model-value":i.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>a.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),n(l,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":i.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>a.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"])])}const q=c(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/inverter.vue"]]);export{q as default};
+import{_ as c,p as r,k as g,l as _,A as n,L as s,u,q as m,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceVZLoggerInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-vzlogger-inverter"},h={class:"small"};function w(t,e,i,x,V,a){const d=r("openwb-base-heading"),p=r("openwb-base-alert"),l=r("openwb-base-number-input");return g(),_("div",b,[n(d,null,{default:s(()=>[u(" Einstellungen für VZLogger Wechselrichter "),m("span",h,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),n(p,{subtype:"info"},{default:s(()=>[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ')]),_:1}),n(l,{title:"Zeile der Leistung",required:"",min:0,"model-value":i.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>a.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),n(l,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":i.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>a.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"])])}const q=c(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/inverter.vue"]]);export{q as default};
diff --git a/web/settings/assets/inverter-c08d4e42.js b/web/settings/assets/inverter-bc54ef72.js
similarity index 86%
rename from web/settings/assets/inverter-c08d4e42.js
rename to web/settings/assets/inverter-bc54ef72.js
index a0e1e15f37..899d1873c2 100644
--- a/web/settings/assets/inverter-c08d4e42.js
+++ b/web/settings/assets/inverter-bc54ef72.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceTeslaInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-tesla-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Tesla Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as l,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceTeslaInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-tesla-inverter"},m={class:"small"};function b(e,t,v,g,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Tesla Wechselrichter "),l("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-92eb5977.js b/web/settings/assets/inverter-bce80bd5.js
similarity index 86%
rename from web/settings/assets/inverter-92eb5977.js
rename to web/settings/assets/inverter-bce80bd5.js
index c6d8b6f3bb..8a64d22552 100644
--- a/web/settings/assets/inverter-92eb5977.js
+++ b/web/settings/assets/inverter-bce80bd5.js
@@ -1 +1 @@
-import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceSmaWebboxInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},b={class:"device-sma-webbox-inverter"},m={class:"small"};function f(e,t,v,g,h,x){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),p("div",b,[o(r,null,{default:s(()=>[a(" Einstellungen für SMA Webbox Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_webbox/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceSmaWebboxInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},b={class:"device-sma-webbox-inverter"},m={class:"small"};function f(e,t,v,g,h,x){const r=n("openwb-base-heading"),i=n("openwb-base-alert");return d(),p("div",b,[o(r,null,{default:s(()=>[a(" Einstellungen für SMA Webbox Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(i,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma_webbox/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-86ab0f22.js b/web/settings/assets/inverter-be294b52.js
similarity index 86%
rename from web/settings/assets/inverter-86ab0f22.js
rename to web/settings/assets/inverter-be294b52.js
index 45e482b584..6eef22d36d 100644
--- a/web/settings/assets/inverter-86ab0f22.js
+++ b/web/settings/assets/inverter-be294b52.js
@@ -1 +1 @@
-import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceHuaweiInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-huawei-inverter"},m={class:"small"};function v(e,t,b,h,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Huawei Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceHuaweiInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-huawei-inverter"},m={class:"small"};function v(e,t,b,h,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Huawei Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-1b75ddba.js b/web/settings/assets/inverter-c0320c10.js
similarity index 88%
rename from web/settings/assets/inverter-1b75ddba.js
rename to web/settings/assets/inverter-c0320c10.js
index 1f40dad3b3..d9943510b8 100644
--- a/web/settings/assets/inverter-1b75ddba.js
+++ b/web/settings/assets/inverter-c0320c10.js
@@ -1 +1 @@
-import{_ as u,p as n,k as p,l as d,A as o,L as c,u as v,q as _,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const f={name:"DeviceOpenwbPvkitInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-openwb-pvkit-inverter"},g={class:"small"};function h(t,e,i,w,x,a){const s=n("openwb-base-heading"),r=n("openwb-base-select-input");return p(),d("div",b,[o(s,null,{default:c(()=>[v(" Einstellungen für openWB PV-Kit Wechselrichter "),_("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),o(r,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=l=>a.updateConfiguration(l,"configuration.version"))},null,8,["model-value"])])}const B=u(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_pv_kit/inverter.vue"]]);export{B as default};
+import{_ as u,p as n,k as p,l as d,A as o,L as c,u as v,q as _,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const f={name:"DeviceOpenwbPvkitInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"device-openwb-pvkit-inverter"},g={class:"small"};function h(t,e,i,w,x,a){const s=n("openwb-base-heading"),r=n("openwb-base-select-input");return p(),d("div",b,[o(s,null,{default:c(()=>[v(" Einstellungen für openWB PV-Kit Wechselrichter "),_("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),o(r,{title:"Zählermodell",notSelected:"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":i.configuration.version,"onUpdate:modelValue":e[0]||(e[0]=l=>a.updateConfiguration(l,"configuration.version"))},null,8,["model-value"])])}const B=u(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb_pv_kit/inverter.vue"]]);export{B as default};
diff --git a/web/settings/assets/inverter-135f51a3.js b/web/settings/assets/inverter-d5ca1a80.js
similarity index 90%
rename from web/settings/assets/inverter-135f51a3.js
rename to web/settings/assets/inverter-d5ca1a80.js
index 044e690288..a160bd4235 100644
--- a/web/settings/assets/inverter-135f51a3.js
+++ b/web/settings/assets/inverter-d5ca1a80.js
@@ -1 +1 @@
-import{_ as l,p as o,k as p,l as c,A as i,L as m,u as _,q as b,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"DeviceVictronInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-victron-inverter"},V={class:"small"};function w(t,e,a,x,h,u){const r=o("openwb-base-heading"),s=o("openwb-base-number-input"),d=o("openwb-base-button-group-input");return p(),c("div",g,[i(r,null,{default:m(()=>[_(" Einstellungen für Victron Wechselrichter "),b("span",V,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),i(s,{title:"Modbus-ID",min:1,max:255,required:"","model-value":a.configuration.modbus_id,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(d,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":a.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const B=l(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/inverter.vue"]]);export{B as default};
+import{_ as l,p as o,k as p,l as c,A as i,L as m,u as _,q as b,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"DeviceVictronInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},g={class:"device-victron-inverter"},V={class:"small"};function w(t,e,a,x,h,u){const r=o("openwb-base-heading"),s=o("openwb-base-number-input"),d=o("openwb-base-button-group-input");return p(),c("div",g,[i(r,null,{default:m(()=>[_(" Einstellungen für Victron Wechselrichter "),b("span",V,"(Modul: "+f(t.$options.name)+")",1)]),_:1}),i(s,{title:"Modbus-ID",min:1,max:255,required:"","model-value":a.configuration.modbus_id,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(d,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":a.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const B=l(v,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/inverter.vue"]]);export{B as default};
diff --git a/web/settings/assets/inverter-08367390.js b/web/settings/assets/inverter-d63a850e.js
similarity index 86%
rename from web/settings/assets/inverter-08367390.js
rename to web/settings/assets/inverter-d63a850e.js
index 0df08313ca..581d38bcca 100644
--- a/web/settings/assets/inverter-08367390.js
+++ b/web/settings/assets/inverter-d63a850e.js
@@ -1 +1 @@
-import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceGoodWeInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-goodwe-inverter"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für GoodWe Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as d,l as p,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceGoodWeInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-goodwe-inverter"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für GoodWe Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-1f399f0d.js b/web/settings/assets/inverter-d7dcc616.js
similarity index 94%
rename from web/settings/assets/inverter-1f399f0d.js
rename to web/settings/assets/inverter-d7dcc616.js
index 0c27a0da4a..2242b9955d 100644
--- a/web/settings/assets/inverter-1f399f0d.js
+++ b/web/settings/assets/inverter-d7dcc616.js
@@ -1 +1 @@
-import{_ as d,p as o,k as c,l,A as n,L as p,u as _,q as f,x as m}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const b={name:"DeviceKostalPikoInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-kostalpiko-inverter"},g={class:"small"};function h(t,e,a,k,x,i){const s=o("openwb-base-heading"),r=o("openwb-base-button-group-input");return c(),l("div",v,[n(s,null,{default:p(()=>[_(" Einstellungen für Kostal Piko Wechselrichter "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":a.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.bat_configured"))},null,8,["model-value"])])}const B=d(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko/inverter.vue"]]);export{B as default};
+import{_ as d,p as o,k as c,l,A as n,L as p,u as _,q as f,x as m}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const b={name:"DeviceKostalPikoInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-kostalpiko-inverter"},g={class:"small"};function h(t,e,a,k,x,i){const s=o("openwb-base-heading"),r=o("openwb-base-button-group-input");return c(),l("div",v,[n(s,null,{default:p(()=>[_(" Einstellungen für Kostal Piko Wechselrichter "),f("span",g,"(Modul: "+m(t.$options.name)+")",1)]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":a.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.bat_configured"))},null,8,["model-value"])])}const B=d(b,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal_piko/inverter.vue"]]);export{B as default};
diff --git a/web/settings/assets/inverter-5b0c8748.js b/web/settings/assets/inverter-da627431.js
similarity index 93%
rename from web/settings/assets/inverter-5b0c8748.js
rename to web/settings/assets/inverter-da627431.js
index 8fd1584fc1..6cf8869c19 100644
--- a/web/settings/assets/inverter-5b0c8748.js
+++ b/web/settings/assets/inverter-da627431.js
@@ -1 +1 @@
-import{_ as c,p as l,k as m,l as _,A as i,L as r,u as t,q as u,x as f}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"DeviceJsonInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},h={class:"device-json-inverter"},w={class:"small"},b=u("br",null,null,-1);function v(n,e,s,j,x,a){const p=l("openwb-base-heading"),d=l("openwb-base-text-input");return m(),_("div",h,[i(p,null,{default:r(()=>[t(" Einstellungen für JSON Wechselrichter "),u("span",w,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),i(d,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":s.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=o=>a.updateConfiguration(o,"configuration.jq_power"))},{help:r(()=>[t(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. '),b,t(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ")]),_:1},8,["model-value"]),i(d,{title:"Abfrage für Zählerstand",subtype:"text","model-value":s.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>a.updateConfiguration(o,"configuration.jq_exported"))},{help:r(()=>[t(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"])])}const P=c(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/json/inverter.vue"]]);export{P as default};
+import{_ as c,p as l,k as m,l as _,A as i,L as r,u as t,q as u,x as f}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"DeviceJsonInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},h={class:"device-json-inverter"},w={class:"small"},b=u("br",null,null,-1);function v(n,e,s,j,x,a){const p=l("openwb-base-heading"),d=l("openwb-base-text-input");return m(),_("div",h,[i(p,null,{default:r(()=>[t(" Einstellungen für JSON Wechselrichter "),u("span",w,"(Modul: "+f(n.$options.name)+")",1)]),_:1}),i(d,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":s.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=o=>a.updateConfiguration(o,"configuration.jq_power"))},{help:r(()=>[t(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. '),b,t(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ")]),_:1},8,["model-value"]),i(d,{title:"Abfrage für Zählerstand",subtype:"text","model-value":s.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>a.updateConfiguration(o,"configuration.jq_exported"))},{help:r(()=>[t(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ")]),_:1},8,["model-value"])])}const P=c(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/json/inverter.vue"]]);export{P as default};
diff --git a/web/settings/assets/inverter-40f5b027.js b/web/settings/assets/inverter-e383405a.js
similarity index 93%
rename from web/settings/assets/inverter-40f5b027.js
rename to web/settings/assets/inverter-e383405a.js
index 64ec704cdf..b3d7d1d7ee 100644
--- a/web/settings/assets/inverter-40f5b027.js
+++ b/web/settings/assets/inverter-e383405a.js
@@ -1 +1 @@
-import{_ as u,p as s,k as _,l as m,A as t,L as o,u as n,q as e,x as a}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"DeviceMqttInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(i,l=void 0){this.$emit("update:configuration",{value:i,object:l})}}},b={class:"device-mqtt-inverter"},f={class:"small"},g=e("br",null,null,-1),v=e("span",{class:"text-info"},"-123",-1),w=e("br",null,null,-1),x=e("br",null,null,-1),z=e("span",{class:"text-info"},"123.45",-1);function k(i,l,r,B,I,y){const p=s("openwb-base-heading"),c=s("openwb-base-copy-to-clipboard"),d=s("openwb-base-alert");return _(),m("div",b,[t(p,null,{default:o(()=>[n(" Einstellungen für MQTT Wechselrichter "),e("span",f,"(Modul: "+a(i.$options.name)+")",1)]),_:1}),t(d,{subtype:"info"},{default:o(()=>[e("ul",null,[e("li",null,[t(c,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n("openWB/set/pv/"+a(r.componentId)+"/get/power",1)]),_:1}),g,n(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: "),v]),e("li",null,[t(c,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n("openWB/set/pv/"+a(r.componentId)+"/get/exported",1)]),_:1}),w,n(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),x,n(" Beispiel: "),z])])]),_:1})])}const V=u(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mqtt/inverter.vue"]]);export{V as default};
+import{_ as u,p as s,k as _,l as m,A as t,L as o,u as n,q as e,x as a}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"DeviceMqttInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(i,l=void 0){this.$emit("update:configuration",{value:i,object:l})}}},b={class:"device-mqtt-inverter"},f={class:"small"},g=e("br",null,null,-1),v=e("span",{class:"text-info"},"-123",-1),w=e("br",null,null,-1),x=e("br",null,null,-1),z=e("span",{class:"text-info"},"123.45",-1);function k(i,l,r,B,I,y){const p=s("openwb-base-heading"),c=s("openwb-base-copy-to-clipboard"),d=s("openwb-base-alert");return _(),m("div",b,[t(p,null,{default:o(()=>[n(" Einstellungen für MQTT Wechselrichter "),e("span",f,"(Modul: "+a(i.$options.name)+")",1)]),_:1}),t(d,{subtype:"info"},{default:o(()=>[e("ul",null,[e("li",null,[t(c,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n("openWB/set/pv/"+a(r.componentId)+"/get/power",1)]),_:1}),g,n(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: "),v]),e("li",null,[t(c,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n("openWB/set/pv/"+a(r.componentId)+"/get/exported",1)]),_:1}),w,n(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv"),x,n(" Beispiel: "),z])])]),_:1})])}const V=u(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mqtt/inverter.vue"]]);export{V as default};
diff --git a/web/settings/assets/inverter-f7d9af29.js b/web/settings/assets/inverter-f0ad6bcd.js
similarity index 86%
rename from web/settings/assets/inverter-f7d9af29.js
rename to web/settings/assets/inverter-f0ad6bcd.js
index 8b2f813498..00141006d6 100644
--- a/web/settings/assets/inverter-f7d9af29.js
+++ b/web/settings/assets/inverter-f0ad6bcd.js
@@ -1 +1 @@
-import{_ as d,p as t,k as c,l as p,A as n,L as s,u as r,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DevicePowerdogInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-powerdog-inverter"},m={class:"small"};function g(e,o,v,b,h,w){const a=t("openwb-base-heading"),i=t("openwb-base-alert");return c(),p("div",f,[n(a,null,{default:s(()=>[r(" Einstellungen für Powerdog Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(i,{subtype:"info"},{default:s(()=>[r(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=d(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/inverter.vue"]]);export{k as default};
+import{_ as d,p as t,k as c,l as p,A as n,L as s,u as r,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DevicePowerdogInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,o=void 0){this.$emit("update:configuration",{value:e,object:o})}}},f={class:"device-powerdog-inverter"},m={class:"small"};function g(e,o,v,b,h,w){const a=t("openwb-base-heading"),i=t("openwb-base-alert");return c(),p("div",f,[n(a,null,{default:s(()=>[r(" Einstellungen für Powerdog Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),n(i,{subtype:"info"},{default:s(()=>[r(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=d(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-e5461fd3.js b/web/settings/assets/inverter-f266f49d.js
similarity index 86%
rename from web/settings/assets/inverter-e5461fd3.js
rename to web/settings/assets/inverter-f266f49d.js
index 9e46ffc796..32a1e4c073 100644
--- a/web/settings/assets/inverter-e5461fd3.js
+++ b/web/settings/assets/inverter-f266f49d.js
@@ -1 +1 @@
-import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceLGInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-lg-inverter"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für LG ESS V1.0 Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/inverter.vue"]]);export{k as default};
+import{_ as c,p as n,k as p,l as d,A as o,L as s,u as a,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceLGInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-lg-inverter"},m={class:"small"};function b(e,t,g,v,h,w){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return p(),d("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für LG ESS V1.0 Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/inverter-3d819a6f.js b/web/settings/assets/inverter-f900cffa.js
similarity index 86%
rename from web/settings/assets/inverter-3d819a6f.js
rename to web/settings/assets/inverter-f900cffa.js
index c03a3127ff..d39def9f2d 100644
--- a/web/settings/assets/inverter-3d819a6f.js
+++ b/web/settings/assets/inverter-f900cffa.js
@@ -1 +1 @@
-import{_ as c,p as n,k as l,l as p,A as o,L as s,u as a,q as d,x as u}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceShellyInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-shelly-inverter"},m={class:"small"};function h(e,t,b,v,g,y){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Shelly Wechselrichter "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/inverter.vue"]]);export{x as default};
+import{_ as c,p as n,k as l,l as p,A as o,L as s,u as a,q as d,x as u}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceShellyInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},f={class:"device-shelly-inverter"},m={class:"small"};function h(e,t,b,v,g,y){const i=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",f,[o(i,null,{default:s(()=>[a(" Einstellungen für Shelly Wechselrichter "),d("span",m,"(Modul: "+u(e.$options.name)+")",1)]),_:1}),o(r,{subtype:"info"},{default:s(()=>[a(" Diese Komponente benötigt keine Einstellungen. ")]),_:1})])}const x=c(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/inverter.vue"]]);export{x as default};
diff --git a/web/settings/assets/inverter-0fd0b224.js b/web/settings/assets/inverter-fb25d42c.js
similarity index 86%
rename from web/settings/assets/inverter-0fd0b224.js
rename to web/settings/assets/inverter-fb25d42c.js
index 4ca392e360..945ff453a9 100644
--- a/web/settings/assets/inverter-0fd0b224.js
+++ b/web/settings/assets/inverter-fb25d42c.js
@@ -1 +1 @@
-import{_ as c,p as t,k as d,l as p,A as o,L as s,u as r,q as u,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"DeviceFroniusInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-fronius-inverter"},m={class:"small"};function v(e,n,b,g,h,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[r(" Einstellungen für Fronius Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[r(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/inverter.vue"]]);export{k as default};
+import{_ as c,p as t,k as d,l as p,A as o,L as s,u as r,q as u,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"DeviceFroniusInverter",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},componentId:{required:!0}},methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})}}},f={class:"device-fronius-inverter"},m={class:"small"};function v(e,n,b,g,h,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return d(),p("div",f,[o(i,null,{default:s(()=>[r(" Einstellungen für Fronius Wechselrichter "),u("span",m,"(Modul: "+l(e.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[r(" Diese Komponente erfordert keine Einstellungen. ")]),_:1})])}const k=c(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/inverter.vue"]]);export{k as default};
diff --git a/web/settings/assets/vehicle-0ea9ae58.js b/web/settings/assets/vehicle-0247f03c.js
similarity index 93%
rename from web/settings/assets/vehicle-0ea9ae58.js
rename to web/settings/assets/vehicle-0247f03c.js
index e48c00ae01..ef0d198b23 100644
--- a/web/settings/assets/vehicle-0ea9ae58.js
+++ b/web/settings/assets/vehicle-0247f03c.js
@@ -1 +1 @@
-import{_ as p,p as l,k as m,l as c,A as t,L as o,u as a,q as f,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"VehicleSocKia",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(d,e=void 0){this.$emit("update:configuration",{value:d,object:e})}}},_={class:"vehicle-soc-kia"},b={class:"small"};function h(d,e,i,w,V,r){const s=l("openwb-base-heading"),u=l("openwb-base-text-input");return m(),c("div",_,[t(s,null,{default:o(()=>[a(" Einstellungen für Kia/Hyundai SoC "),f("span",b,"(Modul: "+g(d.$options.name)+")",1)]),_:1}),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":i.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>r.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":i.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>r.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"PIN",required:"",subtype:"password","model-value":i.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>r.updateConfiguration(n,"configuration.pin"))},{help:o(()=>[a(" Die PIN für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"VIN",required:"","model-value":i.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>r.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const x=p(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{x as default};
+import{_ as p,p as l,k as m,l as c,A as t,L as o,u as a,q as f,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"VehicleSocKia",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(d,e=void 0){this.$emit("update:configuration",{value:d,object:e})}}},_={class:"vehicle-soc-kia"},b={class:"small"};function h(d,e,i,w,V,r){const s=l("openwb-base-heading"),u=l("openwb-base-text-input");return m(),c("div",_,[t(s,null,{default:o(()=>[a(" Einstellungen für Kia/Hyundai SoC "),f("span",b,"(Modul: "+g(d.$options.name)+")",1)]),_:1}),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":i.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>r.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":i.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>r.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"PIN",required:"",subtype:"password","model-value":i.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>r.updateConfiguration(n,"configuration.pin"))},{help:o(()=>[a(" Die PIN für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"VIN",required:"","model-value":i.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>r.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const x=p(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{x as default};
diff --git a/web/settings/assets/vehicle-cbd74ad8.js b/web/settings/assets/vehicle-0969da15.js
similarity index 91%
rename from web/settings/assets/vehicle-cbd74ad8.js
rename to web/settings/assets/vehicle-0969da15.js
index 0b62f749fc..194ca25dbd 100644
--- a/web/settings/assets/vehicle-cbd74ad8.js
+++ b/web/settings/assets/vehicle-0969da15.js
@@ -1 +1 @@
-import{_ as p,p as d,k as m,l as c,A as t,L as o,u as a,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"VehicleSocSmarteq",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(r,e=void 0){this.$emit("update:configuration",{value:r,object:e})}}},v={class:"vehicle-soc-smarteq"},b={class:"small"};function h(r,e,i,w,q,s){const l=d("openwb-base-heading"),u=d("openwb-base-text-input");return m(),c("div",v,[t(l,null,{default:o(()=>[a(" Einstellungen für SmartEQ SoC "),f("span",b,"(Modul: "+_(r.$options.name)+")",1)]),_:1}),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":i.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":i.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"VIN",required:"","model-value":i.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>s.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const C=p(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarteq/vehicle.vue"]]);export{C as default};
+import{_ as p,p as d,k as m,l as c,A as t,L as o,u as a,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"VehicleSocSmarteq",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(r,e=void 0){this.$emit("update:configuration",{value:r,object:e})}}},v={class:"vehicle-soc-smarteq"},b={class:"small"};function h(r,e,i,w,q,s){const l=d("openwb-base-heading"),u=d("openwb-base-text-input");return m(),c("div",v,[t(l,null,{default:o(()=>[a(" Einstellungen für SmartEQ SoC "),f("span",b,"(Modul: "+_(r.$options.name)+")",1)]),_:1}),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":i.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":i.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den Servern. ")]),_:1},8,["model-value"]),t(u,{title:"VIN",required:"","model-value":i.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>s.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const C=p(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarteq/vehicle.vue"]]);export{C as default};
diff --git a/web/settings/assets/vehicle-c74f02d0.js b/web/settings/assets/vehicle-174df8ec.js
similarity index 93%
rename from web/settings/assets/vehicle-c74f02d0.js
rename to web/settings/assets/vehicle-174df8ec.js
index dae07ed8b9..a2ec255f57 100644
--- a/web/settings/assets/vehicle-c74f02d0.js
+++ b/web/settings/assets/vehicle-174df8ec.js
@@ -1 +1 @@
-import{_ as p,p as d,k as m,l as c,A as t,L as o,u as a,q as f,x as g}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"VehicleSocRenault",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!1}},data(){return{}},methods:{updateConfiguration(l,e=void 0){this.$emit("update:configuration",{value:l,object:e})}}},_={class:"vehicle-soc-renault"},h={class:"small"};function b(l,e,u,w,V,i){const s=d("openwb-base-heading"),r=d("openwb-base-text-input");return m(),c("div",_,[t(s,null,{default:o(()=>[a(" Einstellungen für Renault SoC "),f("span",h,"(Modul: "+g(l.$options.name)+")",1)]),_:1}),t(r,{title:"Benutzername",required:"",subtype:"user","model-value":u.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den Renault-Servern. ")]),_:1},8,["model-value"]),t(r,{title:"Kennwort",required:"",subtype:"password","model-value":u.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den Renault-Servern. ")]),_:1},8,["model-value"]),t(r,{title:"Land",required:"","model-value":u.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=n=>i.updateConfiguration(n,"configuration.country"))},{help:o(()=>[a(" Land des Fahrzeugs, z.b. DE für Deutschland. ")]),_:1},8,["model-value"]),t(r,{title:"VIN","model-value":u.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>i.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ")]),_:1},8,["model-value"])])}const q=p(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{q as default};
+import{_ as p,p as d,k as m,l as c,A as t,L as o,u as a,q as f,x as g}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"VehicleSocRenault",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!1}},data(){return{}},methods:{updateConfiguration(l,e=void 0){this.$emit("update:configuration",{value:l,object:e})}}},_={class:"vehicle-soc-renault"},h={class:"small"};function b(l,e,u,w,V,i){const s=d("openwb-base-heading"),r=d("openwb-base-text-input");return m(),c("div",_,[t(s,null,{default:o(()=>[a(" Einstellungen für Renault SoC "),f("span",h,"(Modul: "+g(l.$options.name)+")",1)]),_:1}),t(r,{title:"Benutzername",required:"",subtype:"user","model-value":u.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den Renault-Servern. ")]),_:1},8,["model-value"]),t(r,{title:"Kennwort",required:"",subtype:"password","model-value":u.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den Renault-Servern. ")]),_:1},8,["model-value"]),t(r,{title:"Land",required:"","model-value":u.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=n=>i.updateConfiguration(n,"configuration.country"))},{help:o(()=>[a(" Land des Fahrzeugs, z.b. DE für Deutschland. ")]),_:1},8,["model-value"]),t(r,{title:"VIN","model-value":u.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>i.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ")]),_:1},8,["model-value"])])}const q=p(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{q as default};
diff --git a/web/settings/assets/vehicle-0e30b50e.js b/web/settings/assets/vehicle-189fc2cb.js
similarity index 94%
rename from web/settings/assets/vehicle-0e30b50e.js
rename to web/settings/assets/vehicle-189fc2cb.js
index 08e081528e..4104b9c93e 100644
--- a/web/settings/assets/vehicle-0e30b50e.js
+++ b/web/settings/assets/vehicle-189fc2cb.js
@@ -1 +1 @@
-import{_ as p,p as i,k as h,l as m,A as r,L as o,u as e,q as n,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const _={name:"VehicleSocManual",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(t,a=void 0){this.$emit("update:configuration",{value:t,object:a})}}},f={class:"vehicle-soc-tesla"},k={class:"small"},w=n("br",null,null,-1),z=n("br",null,null,-1),v=n("br",null,null,-1),W=n("br",null,null,-1);function x(t,a,l,C,B,s){const d=i("openwb-base-heading"),u=i("openwb-base-alert"),c=i("openwb-base-number-input");return h(),m("div",f,[r(d,null,{default:o(()=>[e(" Einstellungen für manuellen SoC "),n("span",k,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),r(u,{subtype:"info"},{default:o(()=>[e(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ')]),_:1}),r(c,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",required:"","model-value":l.configuration.efficiency*100,"onUpdate:modelValue":a[0]||(a[0]=g=>s.updateConfiguration(g/100,"configuration.efficiency"))},{help:o(()=>[e(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleonlader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt."),w,e(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: "),z,e(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren"),v,e(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen"),W]),_:1},8,["model-value"])])}const S=p(_,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{S as default};
+import{_ as p,p as i,k as h,l as m,A as r,L as o,u as e,q as n,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const _={name:"VehicleSocManual",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(t,a=void 0){this.$emit("update:configuration",{value:t,object:a})}}},f={class:"vehicle-soc-tesla"},k={class:"small"},w=n("br",null,null,-1),z=n("br",null,null,-1),v=n("br",null,null,-1),W=n("br",null,null,-1);function x(t,a,l,C,B,s){const d=i("openwb-base-heading"),u=i("openwb-base-alert"),c=i("openwb-base-number-input");return h(),m("div",f,[r(d,null,{default:o(()=>[e(" Einstellungen für manuellen SoC "),n("span",k,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),r(u,{subtype:"info"},{default:o(()=>[e(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ')]),_:1}),r(c,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",required:"","model-value":l.configuration.efficiency*100,"onUpdate:modelValue":a[0]||(a[0]=g=>s.updateConfiguration(g/100,"configuration.efficiency"))},{help:o(()=>[e(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleonlader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt."),w,e(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: "),z,e(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren"),v,e(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen"),W]),_:1},8,["model-value"])])}const S=p(_,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{S as default};
diff --git a/web/settings/assets/vehicle-82a4990a.js b/web/settings/assets/vehicle-2c5d967c.js
similarity index 90%
rename from web/settings/assets/vehicle-82a4990a.js
rename to web/settings/assets/vehicle-2c5d967c.js
index 24d90a00b6..24addf0f73 100644
--- a/web/settings/assets/vehicle-82a4990a.js
+++ b/web/settings/assets/vehicle-2c5d967c.js
@@ -1 +1 @@
-import{_ as d,p as u,k as p,l as c,A as o,L as m,u as f,q as _,x as v}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"VehicleSocEvnotify",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"vehicle-soc-evnotify"},y={class:"small"};function h(t,e,i,k,w,a){const r=u("openwb-base-heading"),s=u("openwb-base-number-input"),l=u("openwb-base-text-input");return p(),c("div",b,[o(r,null,{default:m(()=>[f(" Einstellungen für EVnotify SoC "),_("span",y,"(Modul: "+v(t.$options.name)+")",1)]),_:1}),o(s,{title:"ID",required:"",min:0,"model-value":i.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=n=>a.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),o(l,{title:"AKey",required:"","model-value":i.configuration.akey,"onUpdate:modelValue":e[1]||(e[1]=n=>a.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),o(l,{title:"Token",required:"","model-value":i.configuration.token,"onUpdate:modelValue":e[2]||(e[2]=n=>a.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const C=d(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{C as default};
+import{_ as d,p as u,k as p,l as c,A as o,L as m,u as f,q as _,x as v}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"VehicleSocEvnotify",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},b={class:"vehicle-soc-evnotify"},y={class:"small"};function h(t,e,i,k,w,a){const r=u("openwb-base-heading"),s=u("openwb-base-number-input"),l=u("openwb-base-text-input");return p(),c("div",b,[o(r,null,{default:m(()=>[f(" Einstellungen für EVnotify SoC "),_("span",y,"(Modul: "+v(t.$options.name)+")",1)]),_:1}),o(s,{title:"ID",required:"",min:0,"model-value":i.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=n=>a.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),o(l,{title:"AKey",required:"","model-value":i.configuration.akey,"onUpdate:modelValue":e[1]||(e[1]=n=>a.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),o(l,{title:"Token",required:"","model-value":i.configuration.token,"onUpdate:modelValue":e[2]||(e[2]=n=>a.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const C=d(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{C as default};
diff --git a/web/settings/assets/vehicle-ef079f93.js b/web/settings/assets/vehicle-316d265a.js
similarity index 92%
rename from web/settings/assets/vehicle-ef079f93.js
rename to web/settings/assets/vehicle-316d265a.js
index acdc2a41c7..224ae41541 100644
--- a/web/settings/assets/vehicle-ef079f93.js
+++ b/web/settings/assets/vehicle-316d265a.js
@@ -1 +1 @@
-import{_ as c,p as d,k as p,l as m,A as o,L as t,u as a,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"VehicleSocSkodaconnect",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},v={class:"vehicle-soc-skodaconnect"},b={class:"small"};function h(i,e,r,w,k,s){const l=d("openwb-base-heading"),u=d("openwb-base-text-input");return p(),m("div",v,[o(l,null,{default:t(()=>[a(" Einstellungen für Skoda iV SoC "),f("span",b,"(Modul: "+_(i.$options.name)+")",1)]),_:1}),o(u,{title:"Benutzername",required:"",subtype:"user","model-value":r.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.user_id"))},{help:t(()=>[a(" Der Benutzername für die Anmeldung an den SkodaConnect-Servern. ")]),_:1},8,["model-value"]),o(u,{title:"Kennwort",required:"",subtype:"password","model-value":r.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.password"))},{help:t(()=>[a(" Das Passwort für die Anmeldung an den SkodaConnect-Servern. ")]),_:1},8,["model-value"]),o(u,{title:"VIN",required:"","model-value":r.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>s.updateConfiguration(n,"configuration.vin"))},{help:t(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const V=c(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skodaconnect/vehicle.vue"]]);export{V as default};
+import{_ as c,p as d,k as p,l as m,A as o,L as t,u as a,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"VehicleSocSkodaconnect",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},v={class:"vehicle-soc-skodaconnect"},b={class:"small"};function h(i,e,r,w,k,s){const l=d("openwb-base-heading"),u=d("openwb-base-text-input");return p(),m("div",v,[o(l,null,{default:t(()=>[a(" Einstellungen für Skoda iV SoC "),f("span",b,"(Modul: "+_(i.$options.name)+")",1)]),_:1}),o(u,{title:"Benutzername",required:"",subtype:"user","model-value":r.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.user_id"))},{help:t(()=>[a(" Der Benutzername für die Anmeldung an den SkodaConnect-Servern. ")]),_:1},8,["model-value"]),o(u,{title:"Kennwort",required:"",subtype:"password","model-value":r.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.password"))},{help:t(()=>[a(" Das Passwort für die Anmeldung an den SkodaConnect-Servern. ")]),_:1},8,["model-value"]),o(u,{title:"VIN",required:"","model-value":r.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>s.updateConfiguration(n,"configuration.vin"))},{help:t(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const V=c(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skodaconnect/vehicle.vue"]]);export{V as default};
diff --git a/web/settings/assets/vehicle-3f5d38a0.js b/web/settings/assets/vehicle-3f5d38a0.js
new file mode 100644
index 0000000000..8dd433f070
--- /dev/null
+++ b/web/settings/assets/vehicle-3f5d38a0.js
@@ -0,0 +1 @@
+import{_ as c,p as u,k as p,l as g,A as n,L as i,u as o,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const m={name:"VehicleSocTronity",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(a,e=void 0){this.$emit("update:configuration",{value:a,object:e})}}},b={class:"vehicle-soc-http"},h={class:"small"};function v(a,e,l,C,y,s){const d=u("openwb-base-heading"),r=u("openwb-base-text-input");return p(),g("div",b,[n(d,null,{default:i(()=>[o(" Einstellungen für Tronity SoC "),f("span",h,"(Modul: "+_(a.$options.name)+")",1)]),_:1}),n(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":l.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>s.updateConfiguration(t,"configuration.vehicle_id"))},{help:i(()=>[o(" Vehicle ID aus Tronity angeben. Diese ist in den Assigned Vehicles zu finden. ")]),_:1},8,["model-value"]),n(r,{title:"Client ID",subtype:"text",required:"","model-value":l.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>s.updateConfiguration(t,"configuration.client_id"))},{help:i(()=>[o(" Client ID aus Tronity angeben. Diese ist in den Application Settings zu finden. ")]),_:1},8,["model-value"]),n(r,{title:"Client Secret",subtype:"password",required:"","model-value":l.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>s.updateConfiguration(t,"configuration.client_secret"))},{help:i(()=>[o(" Client Secret aus Tronity angeben. Diese ist in den Application Settings zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ")]),_:1},8,["model-value"])])}const x=c(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{x as default};
diff --git a/web/settings/assets/vehicle-8cbf750d.js b/web/settings/assets/vehicle-6f02cb37.js
similarity index 92%
rename from web/settings/assets/vehicle-8cbf750d.js
rename to web/settings/assets/vehicle-6f02cb37.js
index df388cf068..cfe713b672 100644
--- a/web/settings/assets/vehicle-8cbf750d.js
+++ b/web/settings/assets/vehicle-6f02cb37.js
@@ -1 +1 @@
-import{_ as u,p as i,k as _,l as h,A as n,L as o,u as t,q as e,x as l}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const m={name:"VehicleSocMqtt",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(s,a=void 0){this.$emit("update:configuration",{value:s,object:a})}}},f={class:"vehicle-soc-mqtt"},b={class:"small"},g=e("br",null,null,-1),v=e("br",null,null,-1),w=e("span",{class:"text-info"},"89.5",-1),k=e("br",null,null,-1),x=e("br",null,null,-1),B=e("br",null,null,-1),q=e("span",{class:"text-info"},"356.5",-1);function z(s,a,c,C,T,y){const d=i("openwb-base-heading"),r=i("openwb-base-copy-to-clipboard"),p=i("openwb-base-alert");return _(),h("div",f,[n(d,null,{default:o(()=>[t(" Einstellungen für MQTT SoC "),e("span",b,"(Modul: "+l(s.$options.name)+")",1)]),_:1}),n(p,{subtype:"info"},{default:o(()=>[t(" Die Daten werden immer dann aktualisiert, wenn das Topic veröffentlicht wird. Die Abfrageintervalle werden nicht berücksichtigt, da das Intervall vom sendenden Client festgelegt wird. "),e("ul",null,[e("li",null,[n(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/vehicle/"+l(c.vehicleId)+"/get/soc",1)]),_:1}),g,t(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl"),v,t(" Beispiel: "),w]),e("li",null,[n(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/vehicle/"+l(c.vehicleId)+"/get/range",1)]),_:1}),k,t(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl"),x,t(" Diese Info ist optional."),B,t(" Beispiel: "),q])])]),_:1})])}const N=u(m,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default};
+import{_ as u,p as i,k as _,l as h,A as n,L as o,u as t,q as e,x as l}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const m={name:"VehicleSocMqtt",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(s,a=void 0){this.$emit("update:configuration",{value:s,object:a})}}},f={class:"vehicle-soc-mqtt"},b={class:"small"},g=e("br",null,null,-1),v=e("br",null,null,-1),w=e("span",{class:"text-info"},"89.5",-1),k=e("br",null,null,-1),x=e("br",null,null,-1),B=e("br",null,null,-1),q=e("span",{class:"text-info"},"356.5",-1);function z(s,a,c,C,T,y){const d=i("openwb-base-heading"),r=i("openwb-base-copy-to-clipboard"),p=i("openwb-base-alert");return _(),h("div",f,[n(d,null,{default:o(()=>[t(" Einstellungen für MQTT SoC "),e("span",b,"(Modul: "+l(s.$options.name)+")",1)]),_:1}),n(p,{subtype:"info"},{default:o(()=>[t(" Die Daten werden immer dann aktualisiert, wenn das Topic veröffentlicht wird. Die Abfrageintervalle werden nicht berücksichtigt, da das Intervall vom sendenden Client festgelegt wird. "),e("ul",null,[e("li",null,[n(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/vehicle/"+l(c.vehicleId)+"/get/soc",1)]),_:1}),g,t(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl"),v,t(" Beispiel: "),w]),e("li",null,[n(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t("openWB/set/vehicle/"+l(c.vehicleId)+"/get/range",1)]),_:1}),k,t(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl"),x,t(" Diese Info ist optional."),B,t(" Beispiel: "),q])])]),_:1})])}const N=u(m,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default};
diff --git a/web/settings/assets/vehicle-34ce6cc8.js b/web/settings/assets/vehicle-84dd6d0d.js
similarity index 95%
rename from web/settings/assets/vehicle-34ce6cc8.js
rename to web/settings/assets/vehicle-84dd6d0d.js
index 672a88aa0a..43b35b64c7 100644
--- a/web/settings/assets/vehicle-34ce6cc8.js
+++ b/web/settings/assets/vehicle-84dd6d0d.js
@@ -1 +1 @@
-import{_ as g,p as r,k as f,l as _,A as t,L as a,u as o,q as v,x as b}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const h={name:"VehicleSocPSA",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!1}},data(){return{}},methods:{updateConfiguration(s,e=void 0){this.$emit("update:configuration",{value:s,object:e})}}},w={class:"vehicle-soc-psa"},S={class:"small"};function C(s,e,i,x,A,l){const d=r("openwb-base-heading"),p=r("openwb-base-alert"),u=r("openwb-base-text-input"),c=r("openwb-base-select-input"),m=r("openwb-base-card");return f(),_("div",w,[t(d,null,{default:a(()=>[o(" Einstellungen für PSA SoC "),v("span",S,"(Modul: "+b(s.$options.name)+")",1)]),_:1}),t(p,{subtype:"info"},{default:a(()=>[o(" PSA liefert während eines Ladevorgangs keine Aktualisierung des Ladestands. Die manuelle Berechnung des Ladestands ist derzeit noch nicht implementiert, SoC-gesteuerte Ladung ist daher noch nicht möglich. ")]),_:1}),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":i.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>l.updateConfiguration(n,"configuration.user_id"))},{help:a(()=>[o(" Der Benutzername für die Anmeldung an den PSA-Servern. ")]),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":i.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>l.updateConfiguration(n,"configuration.password"))},{help:a(()=>[o(" Das Passwort für die Anmeldung an den PSA-Servern. ")]),_:1},8,["model-value"]),t(c,{title:"Marke",required:"",notSelected:"Bitte auswählen",options:[{value:"Peugeot",text:"Peugeot"},{value:"Citroen",text:"Citroen"},{value:"DS",text:"DS"},{value:"Opel",text:"Opel"},{value:"Vauxhall",text:"Vauxhall"}],"model-value":i.configuration.manufacturer,"onUpdate:modelValue":e[2]||(e[2]=n=>l.updateConfiguration(n,"configuration.manufacturer"))},{help:a(()=>[o(" Marke aus des Fahrzeugs.")]),_:1},8,["model-value"]),t(u,{title:"VIN","model-value":i.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>l.updateConfiguration(n,"configuration.vin"))},{help:a(()=>[o(" Die Fahrgestellnummer des Fahrzeugs. Nur notwendig falls mehrere Fahrzeuge im selben Account vorhanden sind. ")]),_:1},8,["model-value"]),t(m,{title:"Erweiterte Einstellungen",subtype:"info",collapsible:!0,collapsed:!0},{default:a(()=>[t(u,{title:"Client ID",subtype:"user","model-value":i.configuration.client_id,"onUpdate:modelValue":e[4]||(e[4]=n=>l.updateConfiguration(n,"configuration.client_id"))},{help:a(()=>[o(" Die Client-ID für die Anmeldung an den PSA-Servern, muss normalerweise nicht angegeben werden. ")]),_:1},8,["model-value"]),t(u,{title:"Client Secret",subtype:"password","model-value":i.configuration.client_secret,"onUpdate:modelValue":e[5]||(e[5]=n=>l.updateConfiguration(n,"configuration.client_secret"))},{help:a(()=>[o(" Das Client-Secret für die Anmeldung an den PSA-Servern, muss normalerweise nicht angegeben werden. ")]),_:1},8,["model-value"])]),_:1})])}const P=g(h,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{P as default};
+import{_ as g,p as r,k as f,l as _,A as t,L as a,u as o,q as v,x as b}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const h={name:"VehicleSocPSA",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!1}},data(){return{}},methods:{updateConfiguration(s,e=void 0){this.$emit("update:configuration",{value:s,object:e})}}},w={class:"vehicle-soc-psa"},S={class:"small"};function C(s,e,i,x,A,l){const d=r("openwb-base-heading"),p=r("openwb-base-alert"),u=r("openwb-base-text-input"),c=r("openwb-base-select-input"),m=r("openwb-base-card");return f(),_("div",w,[t(d,null,{default:a(()=>[o(" Einstellungen für PSA SoC "),v("span",S,"(Modul: "+b(s.$options.name)+")",1)]),_:1}),t(p,{subtype:"info"},{default:a(()=>[o(" PSA liefert während eines Ladevorgangs keine Aktualisierung des Ladestands. Die manuelle Berechnung des Ladestands ist derzeit noch nicht implementiert, SoC-gesteuerte Ladung ist daher noch nicht möglich. ")]),_:1}),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":i.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>l.updateConfiguration(n,"configuration.user_id"))},{help:a(()=>[o(" Der Benutzername für die Anmeldung an den PSA-Servern. ")]),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":i.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>l.updateConfiguration(n,"configuration.password"))},{help:a(()=>[o(" Das Passwort für die Anmeldung an den PSA-Servern. ")]),_:1},8,["model-value"]),t(c,{title:"Marke",required:"",notSelected:"Bitte auswählen",options:[{value:"Peugeot",text:"Peugeot"},{value:"Citroen",text:"Citroen"},{value:"DS",text:"DS"},{value:"Opel",text:"Opel"},{value:"Vauxhall",text:"Vauxhall"}],"model-value":i.configuration.manufacturer,"onUpdate:modelValue":e[2]||(e[2]=n=>l.updateConfiguration(n,"configuration.manufacturer"))},{help:a(()=>[o(" Marke aus des Fahrzeugs.")]),_:1},8,["model-value"]),t(u,{title:"VIN","model-value":i.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>l.updateConfiguration(n,"configuration.vin"))},{help:a(()=>[o(" Die Fahrgestellnummer des Fahrzeugs. Nur notwendig falls mehrere Fahrzeuge im selben Account vorhanden sind. ")]),_:1},8,["model-value"]),t(m,{title:"Erweiterte Einstellungen",subtype:"info",collapsible:!0,collapsed:!0},{default:a(()=>[t(u,{title:"Client ID",subtype:"user","model-value":i.configuration.client_id,"onUpdate:modelValue":e[4]||(e[4]=n=>l.updateConfiguration(n,"configuration.client_id"))},{help:a(()=>[o(" Die Client-ID für die Anmeldung an den PSA-Servern, muss normalerweise nicht angegeben werden. ")]),_:1},8,["model-value"]),t(u,{title:"Client Secret",subtype:"password","model-value":i.configuration.client_secret,"onUpdate:modelValue":e[5]||(e[5]=n=>l.updateConfiguration(n,"configuration.client_secret"))},{help:a(()=>[o(" Das Client-Secret für die Anmeldung an den PSA-Servern, muss normalerweise nicht angegeben werden. ")]),_:1},8,["model-value"])]),_:1})])}const P=g(h,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{P as default};
diff --git a/web/settings/assets/vehicle-ebf7e590.js b/web/settings/assets/vehicle-8bdcc244.js
similarity index 95%
rename from web/settings/assets/vehicle-ebf7e590.js
rename to web/settings/assets/vehicle-8bdcc244.js
index f5b78d9b9d..405327e7fb 100644
--- a/web/settings/assets/vehicle-ebf7e590.js
+++ b/web/settings/assets/vehicle-8bdcc244.js
@@ -1 +1 @@
-import{_ as g,p as a,k as h,l as f,A as n,L as o,u as t,q as r,x as d}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const v={name:"VehicleSocMercedesEq",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.configuration.client_id&&this.configuration.client_secret&&this.configuration.vin}},methods:{updateConfiguration(l,e=void 0){this.$emit("update:configuration",{value:l,object:e})},login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var l=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");l.focus()}}},w={class:"vehicle-soc-mercedeseq"},k={class:"small"},C=r("br",null,null,-1),y=r("br",null,null,-1),q=r("br",null,null,-1);function x(l,e,c,B,D,i){const p=a("openwb-base-heading"),u=a("openwb-base-text-input"),_=a("openwb-base-copy-to-clipboard"),b=a("openwb-base-alert"),m=a("openwb-base-button-input");return h(),f("div",w,[n(p,null,{default:o(()=>[t(" Einstellungen für Mercedes EQ SoC "),r("span",k,"(Modul: "+d(l.$options.name)+")",1)]),_:1}),n(u,{title:"Client-ID",required:"",subtype:"user","model-value":c.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=s=>i.updateConfiguration(s,"configuration.client_id"))},{help:o(()=>[t(" Die im Developer Portal angelegte Client-ID. ")]),_:1},8,["model-value"]),n(u,{title:"Client Secret",required:"",subtype:"password","model-value":c.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=s=>i.updateConfiguration(s,"configuration.client_secret"))},{help:o(()=>[t(" Das im Developer Portal angelegte Client Secret. ")]),_:1},8,["model-value"]),n(u,{title:"VIN",required:"","model-value":c.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=s=>i.updateConfiguration(s,"configuration.vin"))},{help:o(()=>[t(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"]),n(b,{subtype:"info"},{default:o(()=>[t(" Vor dem Anmelden bitte die Angaben speichern."),C,t(" Die Callback-URL für die Anmeldung lautet:"),y,n(_,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[t(d(i.callback_url),1)]),_:1})]),_:1}),n(m,{title:"Anmelden",buttonText:"Bei Mercedes Anmelden",subtype:"success",disabled:!i.input_complete,onButtonClicked:i.login_window},{help:o(()=>[t(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können."),q]),_:1},8,["disabled","onButtonClicked"])])}const I=g(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{I as default};
+import{_ as g,p as a,k as h,l as f,A as n,L as o,u as t,q as r,x as d}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const v={name:"VehicleSocMercedesEq",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.configuration.client_id&&this.configuration.client_secret&&this.configuration.vin}},methods:{updateConfiguration(l,e=void 0){this.$emit("update:configuration",{value:l,object:e})},login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var l=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");l.focus()}}},w={class:"vehicle-soc-mercedeseq"},k={class:"small"},C=r("br",null,null,-1),y=r("br",null,null,-1),q=r("br",null,null,-1);function x(l,e,c,B,D,i){const p=a("openwb-base-heading"),u=a("openwb-base-text-input"),_=a("openwb-base-copy-to-clipboard"),b=a("openwb-base-alert"),m=a("openwb-base-button-input");return h(),f("div",w,[n(p,null,{default:o(()=>[t(" Einstellungen für Mercedes EQ SoC "),r("span",k,"(Modul: "+d(l.$options.name)+")",1)]),_:1}),n(u,{title:"Client-ID",required:"",subtype:"user","model-value":c.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=s=>i.updateConfiguration(s,"configuration.client_id"))},{help:o(()=>[t(" Die im Developer Portal angelegte Client-ID. ")]),_:1},8,["model-value"]),n(u,{title:"Client Secret",required:"",subtype:"password","model-value":c.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=s=>i.updateConfiguration(s,"configuration.client_secret"))},{help:o(()=>[t(" Das im Developer Portal angelegte Client Secret. ")]),_:1},8,["model-value"]),n(u,{title:"VIN",required:"","model-value":c.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=s=>i.updateConfiguration(s,"configuration.vin"))},{help:o(()=>[t(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"]),n(b,{subtype:"info"},{default:o(()=>[t(" Vor dem Anmelden bitte die Angaben speichern."),C,t(" Die Callback-URL für die Anmeldung lautet:"),y,n(_,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[t(d(i.callback_url),1)]),_:1})]),_:1}),n(m,{title:"Anmelden",buttonText:"Bei Mercedes Anmelden",subtype:"success",disabled:!i.input_complete,onButtonClicked:i.login_window},{help:o(()=>[t(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können."),q]),_:1},8,["disabled","onButtonClicked"])])}const I=g(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{I as default};
diff --git a/web/settings/assets/vehicle-1c4a57cd.js b/web/settings/assets/vehicle-b45ef3c6.js
similarity index 94%
rename from web/settings/assets/vehicle-1c4a57cd.js
rename to web/settings/assets/vehicle-b45ef3c6.js
index e5c4080abb..f87b490eb6 100644
--- a/web/settings/assets/vehicle-1c4a57cd.js
+++ b/web/settings/assets/vehicle-b45ef3c6.js
@@ -1 +1 @@
-import{_ as f,a4 as g,a5 as h,a6 as b,p as l,k,l as w,A as a,L as i,u as s,q as m,x as v}from"./vendor-20bb207d.js";import{a as y}from"./vendor-axios-13ef03ae.js";import{C}from"./index-2a1b0c80.js";import"./vendor-sortablejs-ad1d2cc8.js";import"./vendor-fortawesome-838df0c9.js";import"./vendor-bootstrap-d275de6c.js";import"./vendor-jquery-89b63fca.js";const T={name:"VehicleSocTesla",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:""}},mixins:[C],methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})},tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=g.encode(h.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=h.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=g.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=b.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const t=await y.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",t),this.updateConfiguration({access_token:t.data.access_token,refresh_token:t.data.refresh_token,created_at:t.data.created_at,expires_in:t.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(t){console.error(t),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!<pre>"+t+"</pre>","danger")}}}},x={class:"vehicle-soc-tesla"},U={class:"small"},B=m("hr",null,null,-1);function z(e,n,t,V,u,r){const _=l("openwb-base-heading"),d=l("openwb-base-number-input"),p=l("openwb-base-button-input"),c=l("openwb-base-text-input");return k(),w("div",x,[a(_,null,{default:i(()=>[s(" Einstellungen für Tesla SoC "),m("span",U,"(Modul: "+v(e.$options.name)+")",1)]),_:1}),a(d,{title:"Fahrzeug-ID",required:"",min:0,"model-value":t.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=o=>r.updateConfiguration(o,"configuration.tesla_ev_num"))},{help:i(()=>[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ')]),_:1},8,["model-value"]),a(_,null,{default:i(()=>[s("Token abrufen oder eingeben")]),_:1}),a(p,{title:"1. Anmelden",buttonText:"Bei Tesla Anmelden",subtype:"success",onButtonClicked:r.tesla_login_window},{help:i(()=>[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ")]),_:1},8,["onButtonClicked"]),a(c,{title:"2. URL kopieren",subtype:"url",emptyValue:"",modelValue:u.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=o=>u.page_not_found_url=o)},{help:i(()=>[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ')]),_:1},8,["modelValue"]),a(p,{title:"3. Token abrufen",buttonText:"Jetzt abrufen",subtype:"success",disabled:u.page_not_found_url.length==0,onButtonClicked:r.tesla_login},{help:i(()=>[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ")]),_:1},8,["disabled","onButtonClicked"]),B,a(c,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":t.configuration.token?t.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=o=>r.updateConfiguration(o,"configuration.token.access_token"))},null,8,["model-value"]),a(c,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":t.configuration.token?t.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=o=>r.updateConfiguration(o,"configuration.token.refresh_token"))},null,8,["model-value"]),a(d,{title:"Erstellt um",required:"","model-value":t.configuration.token?t.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=o=>r.updateConfiguration(o,"configuration.token.created_at"))},{help:i(()=>[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ")]),_:1},8,["model-value"]),a(d,{title:"Ungültig in",unit:"s",required:"","model-value":t.configuration.token?t.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=o=>r.updateConfiguration(o,"configuration.token.expires_in"))},{help:i(()=>[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ")]),_:1},8,["model-value"])])}const N=f(T,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{N as default};
+import{_ as f,a4 as g,a5 as h,a6 as b,p as l,k,l as w,A as a,L as i,u as s,q as m,x as v}from"./vendor-94ac8c48.js";import{a as y}from"./vendor-axios-dc63434e.js";import{C}from"./index-bc47a901.js";import"./vendor-sortablejs-dbc23470.js";import"./vendor-fortawesome-ad83e535.js";import"./vendor-bootstrap-9f620114.js";import"./vendor-jquery-f7104ff8.js";const T={name:"VehicleSocTesla",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:""}},mixins:[C],methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})},tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=g.encode(h.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=h.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=g.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=b.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const t=await y.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",t),this.updateConfiguration({access_token:t.data.access_token,refresh_token:t.data.refresh_token,created_at:t.data.created_at,expires_in:t.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(t){console.error(t),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!<pre>"+t+"</pre>","danger")}}}},x={class:"vehicle-soc-tesla"},U={class:"small"},B=m("hr",null,null,-1);function z(e,n,t,V,u,r){const _=l("openwb-base-heading"),d=l("openwb-base-number-input"),p=l("openwb-base-button-input"),c=l("openwb-base-text-input");return k(),w("div",x,[a(_,null,{default:i(()=>[s(" Einstellungen für Tesla SoC "),m("span",U,"(Modul: "+v(e.$options.name)+")",1)]),_:1}),a(d,{title:"Fahrzeug-ID",required:"",min:0,"model-value":t.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=o=>r.updateConfiguration(o,"configuration.tesla_ev_num"))},{help:i(()=>[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ')]),_:1},8,["model-value"]),a(_,null,{default:i(()=>[s("Token abrufen oder eingeben")]),_:1}),a(p,{title:"1. Anmelden",buttonText:"Bei Tesla Anmelden",subtype:"success",onButtonClicked:r.tesla_login_window},{help:i(()=>[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ")]),_:1},8,["onButtonClicked"]),a(c,{title:"2. URL kopieren",subtype:"url",emptyValue:"",modelValue:u.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=o=>u.page_not_found_url=o)},{help:i(()=>[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ')]),_:1},8,["modelValue"]),a(p,{title:"3. Token abrufen",buttonText:"Jetzt abrufen",subtype:"success",disabled:u.page_not_found_url.length==0,onButtonClicked:r.tesla_login},{help:i(()=>[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ")]),_:1},8,["disabled","onButtonClicked"]),B,a(c,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":t.configuration.token?t.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=o=>r.updateConfiguration(o,"configuration.token.access_token"))},null,8,["model-value"]),a(c,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":t.configuration.token?t.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=o=>r.updateConfiguration(o,"configuration.token.refresh_token"))},null,8,["model-value"]),a(d,{title:"Erstellt um",required:"","model-value":t.configuration.token?t.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=o=>r.updateConfiguration(o,"configuration.token.created_at"))},{help:i(()=>[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ")]),_:1},8,["model-value"]),a(d,{title:"Ungültig in",unit:"s",required:"","model-value":t.configuration.token?t.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=o=>r.updateConfiguration(o,"configuration.token.expires_in"))},{help:i(()=>[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ")]),_:1},8,["model-value"])])}const N=f(T,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{N as default};
diff --git a/web/settings/assets/vehicle-344c6660.js b/web/settings/assets/vehicle-b76d2976.js
similarity index 91%
rename from web/settings/assets/vehicle-344c6660.js
rename to web/settings/assets/vehicle-b76d2976.js
index 0171ceeba3..90cf6cfa74 100644
--- a/web/settings/assets/vehicle-344c6660.js
+++ b/web/settings/assets/vehicle-b76d2976.js
@@ -1 +1 @@
-import{_ as c,p as u,k as p,l as m,A as o,L as i,u as a,q as _,x as h}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"VehicleSocHttp",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},f={class:"vehicle-soc-http"},v={class:"small"};function b(t,e,r,w,k,l){const d=u("openwb-base-heading"),s=u("openwb-base-text-input");return p(),m("div",f,[o(d,null,{default:i(()=>[a(" Einstellungen für HTTP SoC "),_("span",v,"(Modul: "+h(t.$options.name)+")",1)]),_:1}),o(s,{title:"SoC URL",subtype:"url",required:"","model-value":r.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=n=>l.updateConfiguration(n,"configuration.soc_url"))},{help:i(()=>[a(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ")]),_:1},8,["model-value"]),o(s,{title:"Reichweiten URL",subtype:"url","model-value":r.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=n=>l.updateConfiguration(n,"configuration.range_url"))},{help:i(()=>[a(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ")]),_:1},8,["model-value"])])}const z=c(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{z as default};
+import{_ as c,p as u,k as p,l as m,A as o,L as i,u as a,q as _,x as h}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"VehicleSocHttp",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},f={class:"vehicle-soc-http"},v={class:"small"};function b(t,e,r,w,k,l){const d=u("openwb-base-heading"),s=u("openwb-base-text-input");return p(),m("div",f,[o(d,null,{default:i(()=>[a(" Einstellungen für HTTP SoC "),_("span",v,"(Modul: "+h(t.$options.name)+")",1)]),_:1}),o(s,{title:"SoC URL",subtype:"url",required:"","model-value":r.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=n=>l.updateConfiguration(n,"configuration.soc_url"))},{help:i(()=>[a(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ")]),_:1},8,["model-value"]),o(s,{title:"Reichweiten URL",subtype:"url","model-value":r.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=n=>l.updateConfiguration(n,"configuration.range_url"))},{help:i(()=>[a(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ")]),_:1},8,["model-value"])])}const z=c(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{z as default};
diff --git a/web/settings/assets/vehicle-11ffdccd.js b/web/settings/assets/vehicle-c865f314.js
similarity index 91%
rename from web/settings/assets/vehicle-11ffdccd.js
rename to web/settings/assets/vehicle-c865f314.js
index fa98122fda..f02776c353 100644
--- a/web/settings/assets/vehicle-11ffdccd.js
+++ b/web/settings/assets/vehicle-c865f314.js
@@ -1 +1 @@
-import{_ as p,p as d,k as m,l as c,A as t,L as o,u as a,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"VehicleSocBmw",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},v={class:"vehicle-soc-bmw"},b={class:"small"};function w(i,e,r,h,B,u){const l=d("openwb-base-heading"),s=d("openwb-base-text-input");return m(),c("div",v,[t(l,null,{default:o(()=>[a(" Einstellungen für BMW SoC "),f("span",b,"(Modul: "+_(i.$options.name)+")",1)]),_:1}),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":r.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den BMW-Servern. ")]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":r.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den BMW-Servern. ")]),_:1},8,["model-value"]),t(s,{title:"VIN",required:"","model-value":r.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>u.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const C=p(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmw/vehicle.vue"]]);export{C as default};
+import{_ as p,p as d,k as m,l as c,A as t,L as o,u as a,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"VehicleSocBmw",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},v={class:"vehicle-soc-bmw"},b={class:"small"};function w(i,e,r,h,B,u){const l=d("openwb-base-heading"),s=d("openwb-base-text-input");return m(),c("div",v,[t(l,null,{default:o(()=>[a(" Einstellungen für BMW SoC "),f("span",b,"(Modul: "+_(i.$options.name)+")",1)]),_:1}),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":r.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den BMW-Servern. ")]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":r.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den BMW-Servern. ")]),_:1},8,["model-value"]),t(s,{title:"VIN",required:"","model-value":r.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>u.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const C=p(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmw/vehicle.vue"]]);export{C as default};
diff --git a/web/settings/assets/vehicle-677f2094.js b/web/settings/assets/vehicle-f74618cf.js
similarity index 91%
rename from web/settings/assets/vehicle-677f2094.js
rename to web/settings/assets/vehicle-f74618cf.js
index d3c9c744b9..2a9f92b0dd 100644
--- a/web/settings/assets/vehicle-677f2094.js
+++ b/web/settings/assets/vehicle-f74618cf.js
@@ -1 +1 @@
-import{_ as p,p as d,k as c,l as m,A as t,L as o,u as a,q as f,x as _}from"./vendor-20bb207d.js";import"./vendor-sortablejs-ad1d2cc8.js";const g={name:"VehicleSocVwid",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},v={class:"vehicle-soc-vwid"},w={class:"small"};function b(i,e,r,h,V,u){const l=d("openwb-base-heading"),s=d("openwb-base-text-input");return c(),m("div",v,[t(l,null,{default:o(()=>[a(" Einstellungen für VW ID SoC "),f("span",w,"(Modul: "+_(i.$options.name)+")",1)]),_:1}),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":r.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den VW-Servern. ")]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":r.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den VW-Servern. ")]),_:1},8,["model-value"]),t(s,{title:"VIN",required:"","model-value":r.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>u.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const q=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{q as default};
+import{_ as p,p as d,k as c,l as m,A as t,L as o,u as a,q as f,x as _}from"./vendor-94ac8c48.js";import"./vendor-sortablejs-dbc23470.js";const g={name:"VehicleSocVwid",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{required:!0}},data(){return{}},methods:{updateConfiguration(i,e=void 0){this.$emit("update:configuration",{value:i,object:e})}}},v={class:"vehicle-soc-vwid"},w={class:"small"};function b(i,e,r,h,V,u){const l=d("openwb-base-heading"),s=d("openwb-base-text-input");return c(),m("div",v,[t(l,null,{default:o(()=>[a(" Einstellungen für VW ID SoC "),f("span",w,"(Modul: "+_(i.$options.name)+")",1)]),_:1}),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":r.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>u.updateConfiguration(n,"configuration.user_id"))},{help:o(()=>[a(" Der Benutzername für die Anmeldung an den VW-Servern. ")]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":r.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>u.updateConfiguration(n,"configuration.password"))},{help:o(()=>[a(" Das Passwort für die Anmeldung an den VW-Servern. ")]),_:1},8,["model-value"]),t(s,{title:"VIN",required:"","model-value":r.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>u.updateConfiguration(n,"configuration.vin"))},{help:o(()=>[a(" Die Fahrgestellnummer des Fahrzeugs. ")]),_:1},8,["model-value"])])}const q=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{q as default};
diff --git a/web/settings/assets/vendor-20bb207d.js b/web/settings/assets/vendor-20bb207d.js
deleted file mode 100644
index 0e0c5264c8..0000000000
--- a/web/settings/assets/vendor-20bb207d.js
+++ /dev/null
@@ -1,100 +0,0 @@
-import{r as N4}from"./vendor-sortablejs-ad1d2cc8.js";var Ye=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Lo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function tv(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function i(){if(this instanceof i){var a=[null];a.push.apply(a,arguments);var n=Function.bind.apply(t,a);return new n}return t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(i){var a=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(r,i,a.get?a:{enumerable:!0,get:function(){return e[i]}})}),r}var ke={},nh={};nh.byteLength=D4;nh.toByteArray=j4;nh.fromByteArray=q4;var Xi=[],ui=[],k4=typeof Uint8Array<"u"?Uint8Array:Array,Tc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Ca=0,$4=Tc.length;Ca<$4;++Ca)Xi[Ca]=Tc[Ca],ui[Tc.charCodeAt(Ca)]=Ca;ui["-".charCodeAt(0)]=62;ui["_".charCodeAt(0)]=63;function $w(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var i=r===t?0:4-r%4;return[r,i]}function D4(e){var t=$w(e),r=t[0],i=t[1];return(r+i)*3/4-i}function F4(e,t,r){return(t+r)*3/4-r}function j4(e){var t,r=$w(e),i=r[0],a=r[1],n=new k4(F4(e,i,a)),u=0,c=a>0?i-4:i,d;for(d=0;d<c;d+=4)t=ui[e.charCodeAt(d)]<<18|ui[e.charCodeAt(d+1)]<<12|ui[e.charCodeAt(d+2)]<<6|ui[e.charCodeAt(d+3)],n[u++]=t>>16&255,n[u++]=t>>8&255,n[u++]=t&255;return a===2&&(t=ui[e.charCodeAt(d)]<<2|ui[e.charCodeAt(d+1)]>>4,n[u++]=t&255),a===1&&(t=ui[e.charCodeAt(d)]<<10|ui[e.charCodeAt(d+1)]<<4|ui[e.charCodeAt(d+2)]>>2,n[u++]=t>>8&255,n[u++]=t&255),n}function U4(e){return Xi[e>>18&63]+Xi[e>>12&63]+Xi[e>>6&63]+Xi[e&63]}function H4(e,t,r){for(var i,a=[],n=t;n<r;n+=3)i=(e[n]<<16&16711680)+(e[n+1]<<8&65280)+(e[n+2]&255),a.push(U4(i));return a.join("")}function q4(e){for(var t,r=e.length,i=r%3,a=[],n=16383,u=0,c=r-i;u<c;u+=n)a.push(H4(e,u,u+n>c?c:u+n));return i===1?(t=e[r-1],a.push(Xi[t>>2]+Xi[t<<4&63]+"==")):i===2&&(t=(e[r-2]<<8)+e[r-1],a.push(Xi[t>>10]+Xi[t>>4&63]+Xi[t<<2&63]+"=")),a.join("")}var rv={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */rv.read=function(e,t,r,i,a){var n,u,c=a*8-i-1,d=(1<<c)-1,m=d>>1,M=-7,S=r?a-1:0,R=r?-1:1,C=e[t+S];for(S+=R,n=C&(1<<-M)-1,C>>=-M,M+=c;M>0;n=n*256+e[t+S],S+=R,M-=8);for(u=n&(1<<-M)-1,n>>=-M,M+=i;M>0;u=u*256+e[t+S],S+=R,M-=8);if(n===0)n=1-m;else{if(n===d)return u?NaN:(C?-1:1)*(1/0);u=u+Math.pow(2,i),n=n-m}return(C?-1:1)*u*Math.pow(2,n-i)};rv.write=function(e,t,r,i,a,n){var u,c,d,m=n*8-a-1,M=(1<<m)-1,S=M>>1,R=a===23?Math.pow(2,-24)-Math.pow(2,-77):0,C=i?0:n-1,P=i?1:-1,k=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,u=M):(u=Math.floor(Math.log(t)/Math.LN2),t*(d=Math.pow(2,-u))<1&&(u--,d*=2),u+S>=1?t+=R/d:t+=R*Math.pow(2,1-S),t*d>=2&&(u++,d/=2),u+S>=M?(c=0,u=M):u+S>=1?(c=(t*d-1)*Math.pow(2,a),u=u+S):(c=t*Math.pow(2,S-1)*Math.pow(2,a),u=0));a>=8;e[r+C]=c&255,C+=P,c/=256,a-=8);for(u=u<<a|c,m+=a;m>0;e[r+C]=u&255,C+=P,u/=256,m-=8);e[r+C-P]|=k*128};/*!
- * The buffer module from node.js, for the browser.
- *
- * @author   Feross Aboukhadijeh <https://feross.org>
- * @license  MIT
- */(function(e){var t=nh,r=rv,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=c,e.SlowBuffer=B,e.INSPECT_MAX_BYTES=50;var a=2147483647;e.kMaxLength=a,c.TYPED_ARRAY_SUPPORT=n(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function n(){try{var D=new Uint8Array(1),N={foo:function(){return 42}};return Object.setPrototypeOf(N,Uint8Array.prototype),Object.setPrototypeOf(D,N),D.foo()===42}catch{return!1}}Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}});function u(D){if(D>a)throw new RangeError('The value "'+D+'" is invalid for option "size"');var N=new Uint8Array(D);return Object.setPrototypeOf(N,c.prototype),N}function c(D,N,j){if(typeof D=="number"){if(typeof N=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return S(D)}return d(D,N,j)}c.poolSize=8192;function d(D,N,j){if(typeof D=="string")return R(D,N);if(ArrayBuffer.isView(D))return P(D);if(D==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof D);if(O(D,ArrayBuffer)||D&&O(D.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(O(D,SharedArrayBuffer)||D&&O(D.buffer,SharedArrayBuffer)))return k(D,N,j);if(typeof D=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var z=D.valueOf&&D.valueOf();if(z!=null&&z!==D)return c.from(z,N,j);var se=L(D);if(se)return se;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof D[Symbol.toPrimitive]=="function")return c.from(D[Symbol.toPrimitive]("string"),N,j);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof D)}c.from=function(D,N,j){return d(D,N,j)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array);function m(D){if(typeof D!="number")throw new TypeError('"size" argument must be of type number');if(D<0)throw new RangeError('The value "'+D+'" is invalid for option "size"')}function M(D,N,j){return m(D),D<=0?u(D):N!==void 0?typeof j=="string"?u(D).fill(N,j):u(D).fill(N):u(D)}c.alloc=function(D,N,j){return M(D,N,j)};function S(D){return m(D),u(D<0?0:I(D)|0)}c.allocUnsafe=function(D){return S(D)},c.allocUnsafeSlow=function(D){return S(D)};function R(D,N){if((typeof N!="string"||N==="")&&(N="utf8"),!c.isEncoding(N))throw new TypeError("Unknown encoding: "+N);var j=H(D,N)|0,z=u(j),se=z.write(D,N);return se!==j&&(z=z.slice(0,se)),z}function C(D){for(var N=D.length<0?0:I(D.length)|0,j=u(N),z=0;z<N;z+=1)j[z]=D[z]&255;return j}function P(D){if(O(D,Uint8Array)){var N=new Uint8Array(D);return k(N.buffer,N.byteOffset,N.byteLength)}return C(D)}function k(D,N,j){if(N<0||D.byteLength<N)throw new RangeError('"offset" is outside of buffer bounds');if(D.byteLength<N+(j||0))throw new RangeError('"length" is outside of buffer bounds');var z;return N===void 0&&j===void 0?z=new Uint8Array(D):j===void 0?z=new Uint8Array(D,N):z=new Uint8Array(D,N,j),Object.setPrototypeOf(z,c.prototype),z}function L(D){if(c.isBuffer(D)){var N=I(D.length)|0,j=u(N);return j.length===0||D.copy(j,0,0,N),j}if(D.length!==void 0)return typeof D.length!="number"||q(D.length)?u(0):C(D);if(D.type==="Buffer"&&Array.isArray(D.data))return C(D.data)}function I(D){if(D>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return D|0}function B(D){return+D!=D&&(D=0),c.alloc(+D)}c.isBuffer=function(N){return N!=null&&N._isBuffer===!0&&N!==c.prototype},c.compare=function(N,j){if(O(N,Uint8Array)&&(N=c.from(N,N.offset,N.byteLength)),O(j,Uint8Array)&&(j=c.from(j,j.offset,j.byteLength)),!c.isBuffer(N)||!c.isBuffer(j))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(N===j)return 0;for(var z=N.length,se=j.length,te=0,ne=Math.min(z,se);te<ne;++te)if(N[te]!==j[te]){z=N[te],se=j[te];break}return z<se?-1:se<z?1:0},c.isEncoding=function(N){switch(String(N).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(N,j){if(!Array.isArray(N))throw new TypeError('"list" argument must be an Array of Buffers');if(N.length===0)return c.alloc(0);var z;if(j===void 0)for(j=0,z=0;z<N.length;++z)j+=N[z].length;var se=c.allocUnsafe(j),te=0;for(z=0;z<N.length;++z){var ne=N[z];if(O(ne,Uint8Array))te+ne.length>se.length?c.from(ne).copy(se,te):Uint8Array.prototype.set.call(se,ne,te);else if(c.isBuffer(ne))ne.copy(se,te);else throw new TypeError('"list" argument must be an Array of Buffers');te+=ne.length}return se};function H(D,N){if(c.isBuffer(D))return D.length;if(ArrayBuffer.isView(D)||O(D,ArrayBuffer))return D.byteLength;if(typeof D!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof D);var j=D.length,z=arguments.length>2&&arguments[2]===!0;if(!z&&j===0)return 0;for(var se=!1;;)switch(N){case"ascii":case"latin1":case"binary":return j;case"utf8":case"utf-8":return U(D).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j*2;case"hex":return j>>>1;case"base64":return b(D).length;default:if(se)return z?-1:U(D).length;N=(""+N).toLowerCase(),se=!0}}c.byteLength=H;function F(D,N,j){var z=!1;if((N===void 0||N<0)&&(N=0),N>this.length||((j===void 0||j>this.length)&&(j=this.length),j<=0)||(j>>>=0,N>>>=0,j<=N))return"";for(D||(D="utf8");;)switch(D){case"hex":return g(this,N,j);case"utf8":case"utf-8":return l(this,N,j);case"ascii":return w(this,N,j);case"latin1":case"binary":return x(this,N,j);case"base64":return f(this,N,j);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return s(this,N,j);default:if(z)throw new TypeError("Unknown encoding: "+D);D=(D+"").toLowerCase(),z=!0}}c.prototype._isBuffer=!0;function W(D,N,j){var z=D[N];D[N]=D[j],D[j]=z}c.prototype.swap16=function(){var N=this.length;if(N%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var j=0;j<N;j+=2)W(this,j,j+1);return this},c.prototype.swap32=function(){var N=this.length;if(N%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var j=0;j<N;j+=4)W(this,j,j+3),W(this,j+1,j+2);return this},c.prototype.swap64=function(){var N=this.length;if(N%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var j=0;j<N;j+=8)W(this,j,j+7),W(this,j+1,j+6),W(this,j+2,j+5),W(this,j+3,j+4);return this},c.prototype.toString=function(){var N=this.length;return N===0?"":arguments.length===0?l(this,0,N):F.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(N){if(!c.isBuffer(N))throw new TypeError("Argument must be a Buffer");return this===N?!0:c.compare(this,N)===0},c.prototype.inspect=function(){var N="",j=e.INSPECT_MAX_BYTES;return N=this.toString("hex",0,j).replace(/(.{2})/g,"$1 ").trim(),this.length>j&&(N+=" ... "),"<Buffer "+N+">"},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(N,j,z,se,te){if(O(N,Uint8Array)&&(N=c.from(N,N.offset,N.byteLength)),!c.isBuffer(N))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof N);if(j===void 0&&(j=0),z===void 0&&(z=N?N.length:0),se===void 0&&(se=0),te===void 0&&(te=this.length),j<0||z>N.length||se<0||te>this.length)throw new RangeError("out of range index");if(se>=te&&j>=z)return 0;if(se>=te)return-1;if(j>=z)return 1;if(j>>>=0,z>>>=0,se>>>=0,te>>>=0,this===N)return 0;for(var ne=te-se,Ee=z-j,Q=Math.min(ne,Ee),ue=this.slice(se,te),le=N.slice(j,z),ce=0;ce<Q;++ce)if(ue[ce]!==le[ce]){ne=ue[ce],Ee=le[ce];break}return ne<Ee?-1:Ee<ne?1:0};function Y(D,N,j,z,se){if(D.length===0)return-1;if(typeof j=="string"?(z=j,j=0):j>2147483647?j=2147483647:j<-2147483648&&(j=-2147483648),j=+j,q(j)&&(j=se?0:D.length-1),j<0&&(j=D.length+j),j>=D.length){if(se)return-1;j=D.length-1}else if(j<0)if(se)j=0;else return-1;if(typeof N=="string"&&(N=c.from(N,z)),c.isBuffer(N))return N.length===0?-1:ie(D,N,j,z,se);if(typeof N=="number")return N=N&255,typeof Uint8Array.prototype.indexOf=="function"?se?Uint8Array.prototype.indexOf.call(D,N,j):Uint8Array.prototype.lastIndexOf.call(D,N,j):ie(D,[N],j,z,se);throw new TypeError("val must be string, number or Buffer")}function ie(D,N,j,z,se){var te=1,ne=D.length,Ee=N.length;if(z!==void 0&&(z=String(z).toLowerCase(),z==="ucs2"||z==="ucs-2"||z==="utf16le"||z==="utf-16le")){if(D.length<2||N.length<2)return-1;te=2,ne/=2,Ee/=2,j/=2}function Q(de,ae){return te===1?de[ae]:de.readUInt16BE(ae*te)}var ue;if(se){var le=-1;for(ue=j;ue<ne;ue++)if(Q(D,ue)===Q(N,le===-1?0:ue-le)){if(le===-1&&(le=ue),ue-le+1===Ee)return le*te}else le!==-1&&(ue-=ue-le),le=-1}else for(j+Ee>ne&&(j=ne-Ee),ue=j;ue>=0;ue--){for(var ce=!0,pe=0;pe<Ee;pe++)if(Q(D,ue+pe)!==Q(N,pe)){ce=!1;break}if(ce)return ue}return-1}c.prototype.includes=function(N,j,z){return this.indexOf(N,j,z)!==-1},c.prototype.indexOf=function(N,j,z){return Y(this,N,j,z,!0)},c.prototype.lastIndexOf=function(N,j,z){return Y(this,N,j,z,!1)};function J(D,N,j,z){j=Number(j)||0;var se=D.length-j;z?(z=Number(z),z>se&&(z=se)):z=se;var te=N.length;z>te/2&&(z=te/2);for(var ne=0;ne<z;++ne){var Ee=parseInt(N.substr(ne*2,2),16);if(q(Ee))return ne;D[j+ne]=Ee}return ne}function V(D,N,j,z){return y(U(N,D.length-j),D,j,z)}function oe(D,N,j,z){return y(K(N),D,j,z)}function _(D,N,j,z){return y(b(N),D,j,z)}function o(D,N,j,z){return y(Z(N,D.length-j),D,j,z)}c.prototype.write=function(N,j,z,se){if(j===void 0)se="utf8",z=this.length,j=0;else if(z===void 0&&typeof j=="string")se=j,z=this.length,j=0;else if(isFinite(j))j=j>>>0,isFinite(z)?(z=z>>>0,se===void 0&&(se="utf8")):(se=z,z=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var te=this.length-j;if((z===void 0||z>te)&&(z=te),N.length>0&&(z<0||j<0)||j>this.length)throw new RangeError("Attempt to write outside buffer bounds");se||(se="utf8");for(var ne=!1;;)switch(se){case"hex":return J(this,N,j,z);case"utf8":case"utf-8":return V(this,N,j,z);case"ascii":case"latin1":case"binary":return oe(this,N,j,z);case"base64":return _(this,N,j,z);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o(this,N,j,z);default:if(ne)throw new TypeError("Unknown encoding: "+se);se=(""+se).toLowerCase(),ne=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function f(D,N,j){return N===0&&j===D.length?t.fromByteArray(D):t.fromByteArray(D.slice(N,j))}function l(D,N,j){j=Math.min(D.length,j);for(var z=[],se=N;se<j;){var te=D[se],ne=null,Ee=te>239?4:te>223?3:te>191?2:1;if(se+Ee<=j){var Q,ue,le,ce;switch(Ee){case 1:te<128&&(ne=te);break;case 2:Q=D[se+1],(Q&192)===128&&(ce=(te&31)<<6|Q&63,ce>127&&(ne=ce));break;case 3:Q=D[se+1],ue=D[se+2],(Q&192)===128&&(ue&192)===128&&(ce=(te&15)<<12|(Q&63)<<6|ue&63,ce>2047&&(ce<55296||ce>57343)&&(ne=ce));break;case 4:Q=D[se+1],ue=D[se+2],le=D[se+3],(Q&192)===128&&(ue&192)===128&&(le&192)===128&&(ce=(te&15)<<18|(Q&63)<<12|(ue&63)<<6|le&63,ce>65535&&ce<1114112&&(ne=ce))}}ne===null?(ne=65533,Ee=1):ne>65535&&(ne-=65536,z.push(ne>>>10&1023|55296),ne=56320|ne&1023),z.push(ne),se+=Ee}return p(z)}var h=4096;function p(D){var N=D.length;if(N<=h)return String.fromCharCode.apply(String,D);for(var j="",z=0;z<N;)j+=String.fromCharCode.apply(String,D.slice(z,z+=h));return j}function w(D,N,j){var z="";j=Math.min(D.length,j);for(var se=N;se<j;++se)z+=String.fromCharCode(D[se]&127);return z}function x(D,N,j){var z="";j=Math.min(D.length,j);for(var se=N;se<j;++se)z+=String.fromCharCode(D[se]);return z}function g(D,N,j){var z=D.length;(!N||N<0)&&(N=0),(!j||j<0||j>z)&&(j=z);for(var se="",te=N;te<j;++te)se+=X[D[te]];return se}function s(D,N,j){for(var z=D.slice(N,j),se="",te=0;te<z.length-1;te+=2)se+=String.fromCharCode(z[te]+z[te+1]*256);return se}c.prototype.slice=function(N,j){var z=this.length;N=~~N,j=j===void 0?z:~~j,N<0?(N+=z,N<0&&(N=0)):N>z&&(N=z),j<0?(j+=z,j<0&&(j=0)):j>z&&(j=z),j<N&&(j=N);var se=this.subarray(N,j);return Object.setPrototypeOf(se,c.prototype),se};function v(D,N,j){if(D%1!==0||D<0)throw new RangeError("offset is not uint");if(D+N>j)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUintLE=c.prototype.readUIntLE=function(N,j,z){N=N>>>0,j=j>>>0,z||v(N,j,this.length);for(var se=this[N],te=1,ne=0;++ne<j&&(te*=256);)se+=this[N+ne]*te;return se},c.prototype.readUintBE=c.prototype.readUIntBE=function(N,j,z){N=N>>>0,j=j>>>0,z||v(N,j,this.length);for(var se=this[N+--j],te=1;j>0&&(te*=256);)se+=this[N+--j]*te;return se},c.prototype.readUint8=c.prototype.readUInt8=function(N,j){return N=N>>>0,j||v(N,1,this.length),this[N]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(N,j){return N=N>>>0,j||v(N,2,this.length),this[N]|this[N+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(N,j){return N=N>>>0,j||v(N,2,this.length),this[N]<<8|this[N+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(N,j){return N=N>>>0,j||v(N,4,this.length),(this[N]|this[N+1]<<8|this[N+2]<<16)+this[N+3]*16777216},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(N,j){return N=N>>>0,j||v(N,4,this.length),this[N]*16777216+(this[N+1]<<16|this[N+2]<<8|this[N+3])},c.prototype.readIntLE=function(N,j,z){N=N>>>0,j=j>>>0,z||v(N,j,this.length);for(var se=this[N],te=1,ne=0;++ne<j&&(te*=256);)se+=this[N+ne]*te;return te*=128,se>=te&&(se-=Math.pow(2,8*j)),se},c.prototype.readIntBE=function(N,j,z){N=N>>>0,j=j>>>0,z||v(N,j,this.length);for(var se=j,te=1,ne=this[N+--se];se>0&&(te*=256);)ne+=this[N+--se]*te;return te*=128,ne>=te&&(ne-=Math.pow(2,8*j)),ne},c.prototype.readInt8=function(N,j){return N=N>>>0,j||v(N,1,this.length),this[N]&128?(255-this[N]+1)*-1:this[N]},c.prototype.readInt16LE=function(N,j){N=N>>>0,j||v(N,2,this.length);var z=this[N]|this[N+1]<<8;return z&32768?z|4294901760:z},c.prototype.readInt16BE=function(N,j){N=N>>>0,j||v(N,2,this.length);var z=this[N+1]|this[N]<<8;return z&32768?z|4294901760:z},c.prototype.readInt32LE=function(N,j){return N=N>>>0,j||v(N,4,this.length),this[N]|this[N+1]<<8|this[N+2]<<16|this[N+3]<<24},c.prototype.readInt32BE=function(N,j){return N=N>>>0,j||v(N,4,this.length),this[N]<<24|this[N+1]<<16|this[N+2]<<8|this[N+3]},c.prototype.readFloatLE=function(N,j){return N=N>>>0,j||v(N,4,this.length),r.read(this,N,!0,23,4)},c.prototype.readFloatBE=function(N,j){return N=N>>>0,j||v(N,4,this.length),r.read(this,N,!1,23,4)},c.prototype.readDoubleLE=function(N,j){return N=N>>>0,j||v(N,8,this.length),r.read(this,N,!0,52,8)},c.prototype.readDoubleBE=function(N,j){return N=N>>>0,j||v(N,8,this.length),r.read(this,N,!1,52,8)};function T(D,N,j,z,se,te){if(!c.isBuffer(D))throw new TypeError('"buffer" argument must be a Buffer instance');if(N>se||N<te)throw new RangeError('"value" argument is out of bounds');if(j+z>D.length)throw new RangeError("Index out of range")}c.prototype.writeUintLE=c.prototype.writeUIntLE=function(N,j,z,se){if(N=+N,j=j>>>0,z=z>>>0,!se){var te=Math.pow(2,8*z)-1;T(this,N,j,z,te,0)}var ne=1,Ee=0;for(this[j]=N&255;++Ee<z&&(ne*=256);)this[j+Ee]=N/ne&255;return j+z},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(N,j,z,se){if(N=+N,j=j>>>0,z=z>>>0,!se){var te=Math.pow(2,8*z)-1;T(this,N,j,z,te,0)}var ne=z-1,Ee=1;for(this[j+ne]=N&255;--ne>=0&&(Ee*=256);)this[j+ne]=N/Ee&255;return j+z},c.prototype.writeUint8=c.prototype.writeUInt8=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,1,255,0),this[j]=N&255,j+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,2,65535,0),this[j]=N&255,this[j+1]=N>>>8,j+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,2,65535,0),this[j]=N>>>8,this[j+1]=N&255,j+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,4,4294967295,0),this[j+3]=N>>>24,this[j+2]=N>>>16,this[j+1]=N>>>8,this[j]=N&255,j+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,4,4294967295,0),this[j]=N>>>24,this[j+1]=N>>>16,this[j+2]=N>>>8,this[j+3]=N&255,j+4},c.prototype.writeIntLE=function(N,j,z,se){if(N=+N,j=j>>>0,!se){var te=Math.pow(2,8*z-1);T(this,N,j,z,te-1,-te)}var ne=0,Ee=1,Q=0;for(this[j]=N&255;++ne<z&&(Ee*=256);)N<0&&Q===0&&this[j+ne-1]!==0&&(Q=1),this[j+ne]=(N/Ee>>0)-Q&255;return j+z},c.prototype.writeIntBE=function(N,j,z,se){if(N=+N,j=j>>>0,!se){var te=Math.pow(2,8*z-1);T(this,N,j,z,te-1,-te)}var ne=z-1,Ee=1,Q=0;for(this[j+ne]=N&255;--ne>=0&&(Ee*=256);)N<0&&Q===0&&this[j+ne+1]!==0&&(Q=1),this[j+ne]=(N/Ee>>0)-Q&255;return j+z},c.prototype.writeInt8=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,1,127,-128),N<0&&(N=255+N+1),this[j]=N&255,j+1},c.prototype.writeInt16LE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,2,32767,-32768),this[j]=N&255,this[j+1]=N>>>8,j+2},c.prototype.writeInt16BE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,2,32767,-32768),this[j]=N>>>8,this[j+1]=N&255,j+2},c.prototype.writeInt32LE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,4,2147483647,-2147483648),this[j]=N&255,this[j+1]=N>>>8,this[j+2]=N>>>16,this[j+3]=N>>>24,j+4},c.prototype.writeInt32BE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,4,2147483647,-2147483648),N<0&&(N=4294967295+N+1),this[j]=N>>>24,this[j+1]=N>>>16,this[j+2]=N>>>8,this[j+3]=N&255,j+4};function $(D,N,j,z,se,te){if(j+z>D.length)throw new RangeError("Index out of range");if(j<0)throw new RangeError("Index out of range")}function G(D,N,j,z,se){return N=+N,j=j>>>0,se||$(D,N,j,4),r.write(D,N,j,z,23,4),j+4}c.prototype.writeFloatLE=function(N,j,z){return G(this,N,j,!0,z)},c.prototype.writeFloatBE=function(N,j,z){return G(this,N,j,!1,z)};function ee(D,N,j,z,se){return N=+N,j=j>>>0,se||$(D,N,j,8),r.write(D,N,j,z,52,8),j+8}c.prototype.writeDoubleLE=function(N,j,z){return ee(this,N,j,!0,z)},c.prototype.writeDoubleBE=function(N,j,z){return ee(this,N,j,!1,z)},c.prototype.copy=function(N,j,z,se){if(!c.isBuffer(N))throw new TypeError("argument should be a Buffer");if(z||(z=0),!se&&se!==0&&(se=this.length),j>=N.length&&(j=N.length),j||(j=0),se>0&&se<z&&(se=z),se===z||N.length===0||this.length===0)return 0;if(j<0)throw new RangeError("targetStart out of bounds");if(z<0||z>=this.length)throw new RangeError("Index out of range");if(se<0)throw new RangeError("sourceEnd out of bounds");se>this.length&&(se=this.length),N.length-j<se-z&&(se=N.length-j+z);var te=se-z;return this===N&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(j,z,se):Uint8Array.prototype.set.call(N,this.subarray(z,se),j),te},c.prototype.fill=function(N,j,z,se){if(typeof N=="string"){if(typeof j=="string"?(se=j,j=0,z=this.length):typeof z=="string"&&(se=z,z=this.length),se!==void 0&&typeof se!="string")throw new TypeError("encoding must be a string");if(typeof se=="string"&&!c.isEncoding(se))throw new TypeError("Unknown encoding: "+se);if(N.length===1){var te=N.charCodeAt(0);(se==="utf8"&&te<128||se==="latin1")&&(N=te)}}else typeof N=="number"?N=N&255:typeof N=="boolean"&&(N=Number(N));if(j<0||this.length<j||this.length<z)throw new RangeError("Out of range index");if(z<=j)return this;j=j>>>0,z=z===void 0?this.length:z>>>0,N||(N=0);var ne;if(typeof N=="number")for(ne=j;ne<z;++ne)this[ne]=N;else{var Ee=c.isBuffer(N)?N:c.from(N,se),Q=Ee.length;if(Q===0)throw new TypeError('The value "'+N+'" is invalid for argument "value"');for(ne=0;ne<z-j;++ne)this[ne+j]=Ee[ne%Q]}return this};var A=/[^+/0-9A-Za-z-_]/g;function E(D){if(D=D.split("=")[0],D=D.trim().replace(A,""),D.length<2)return"";for(;D.length%4!==0;)D=D+"=";return D}function U(D,N){N=N||1/0;for(var j,z=D.length,se=null,te=[],ne=0;ne<z;++ne){if(j=D.charCodeAt(ne),j>55295&&j<57344){if(!se){if(j>56319){(N-=3)>-1&&te.push(239,191,189);continue}else if(ne+1===z){(N-=3)>-1&&te.push(239,191,189);continue}se=j;continue}if(j<56320){(N-=3)>-1&&te.push(239,191,189),se=j;continue}j=(se-55296<<10|j-56320)+65536}else se&&(N-=3)>-1&&te.push(239,191,189);if(se=null,j<128){if((N-=1)<0)break;te.push(j)}else if(j<2048){if((N-=2)<0)break;te.push(j>>6|192,j&63|128)}else if(j<65536){if((N-=3)<0)break;te.push(j>>12|224,j>>6&63|128,j&63|128)}else if(j<1114112){if((N-=4)<0)break;te.push(j>>18|240,j>>12&63|128,j>>6&63|128,j&63|128)}else throw new Error("Invalid code point")}return te}function K(D){for(var N=[],j=0;j<D.length;++j)N.push(D.charCodeAt(j)&255);return N}function Z(D,N){for(var j,z,se,te=[],ne=0;ne<D.length&&!((N-=2)<0);++ne)j=D.charCodeAt(ne),z=j>>8,se=j%256,te.push(se),te.push(z);return te}function b(D){return t.toByteArray(E(D))}function y(D,N,j,z){for(var se=0;se<z&&!(se+j>=N.length||se>=D.length);++se)N[se+j]=D[se];return se}function O(D,N){return D instanceof N||D!=null&&D.constructor!=null&&D.constructor.name!=null&&D.constructor.name===N.name}function q(D){return D!==D}var X=function(){for(var D="0123456789abcdef",N=new Array(256),j=0;j<16;++j)for(var z=j*16,se=0;se<16;++se)N[z+se]=D[j]+D[se];return N}()})(ke);var Dw={exports:{}},ir=Dw.exports={},Gi,Yi;function P0(){throw new Error("setTimeout has not been defined")}function C0(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Gi=setTimeout:Gi=P0}catch{Gi=P0}try{typeof clearTimeout=="function"?Yi=clearTimeout:Yi=C0}catch{Yi=C0}})();function Fw(e){if(Gi===setTimeout)return setTimeout(e,0);if((Gi===P0||!Gi)&&setTimeout)return Gi=setTimeout,setTimeout(e,0);try{return Gi(e,0)}catch{try{return Gi.call(null,e,0)}catch{return Gi.call(this,e,0)}}}function W4(e){if(Yi===clearTimeout)return clearTimeout(e);if((Yi===C0||!Yi)&&clearTimeout)return Yi=clearTimeout,clearTimeout(e);try{return Yi(e)}catch{try{return Yi.call(null,e)}catch{return Yi.call(this,e)}}}var In=[],za=!1,Go,rl=-1;function K4(){!za||!Go||(za=!1,Go.length?In=Go.concat(In):rl=-1,In.length&&jw())}function jw(){if(!za){var e=Fw(K4);za=!0;for(var t=In.length;t;){for(Go=In,In=[];++rl<t;)Go&&Go[rl].run();rl=-1,t=In.length}Go=null,za=!1,W4(e)}}ir.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];In.push(new Uw(e,t)),In.length===1&&!za&&Fw(jw)};function Uw(e,t){this.fun=e,this.array=t}Uw.prototype.run=function(){this.fun.apply(null,this.array)};ir.title="browser";ir.browser=!0;ir.env={};ir.argv=[];ir.version="";ir.versions={};function Wn(){}ir.on=Wn;ir.addListener=Wn;ir.once=Wn;ir.off=Wn;ir.removeListener=Wn;ir.removeAllListeners=Wn;ir.emit=Wn;ir.prependListener=Wn;ir.prependOnceListener=Wn;ir.listeners=function(e){return[]};ir.binding=function(e){throw new Error("process.binding is not supported")};ir.cwd=function(){return"/"};ir.chdir=function(e){throw new Error("process.chdir is not supported")};ir.umask=function(){return 0};var V4=Dw.exports;const we=Lo(V4);var z4=function(e){function t(){var i=this||self;return delete e.prototype.__magic__,i}if(typeof globalThis=="object")return globalThis;if(this)return t();e.defineProperty(e.prototype,"__magic__",{configurable:!0,get:t});var r=__magic__;return r}(Object),om=z4;const ho=typeof om<"u"?om:typeof self<"u"?self:typeof window<"u"?window:{};function Kn(e,t){const r=Object.create(null),i=e.split(",");for(let a=0;a<i.length;a++)r[i[a]]=!0;return t?a=>!!r[a.toLowerCase()]:a=>!!r[a]}const $t=Object.freeze({}),Ga=Object.freeze([]),qr=()=>{},Hw=()=>!1,G4=/^on[^a-z]/,Ps=e=>G4.test(e),Sl=e=>e.startsWith("onUpdate:"),Pt=Object.assign,iv=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},Y4=Object.prototype.hasOwnProperty,wt=(e,t)=>Y4.call(e,t),ze=Array.isArray,Qo=e=>Cs(e)==="[object Map]",ga=e=>Cs(e)==="[object Set]",am=e=>Cs(e)==="[object Date]",Z4=e=>Cs(e)==="[object RegExp]",Qe=e=>typeof e=="function",Vt=e=>typeof e=="string",Uf=e=>typeof e=="symbol",Rt=e=>e!==null&&typeof e=="object",oh=e=>Rt(e)&&Qe(e.then)&&Qe(e.catch),qw=Object.prototype.toString,Cs=e=>qw.call(e),nv=e=>Cs(e).slice(8,-1),Ww=e=>Cs(e)==="[object Object]",ov=e=>Vt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Af=Kn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),X4=Kn("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),ah=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},J4=/-(\w)/g,Kr=ah(e=>e.replace(J4,(t,r)=>r?r.toUpperCase():"")),Q4=/\B([A-Z])/g,Hr=ah(e=>e.replace(Q4,"-$1").toLowerCase()),_o=ah(e=>e.charAt(0).toUpperCase()+e.slice(1)),xn=ah(e=>e?`on${_o(e)}`:""),as=(e,t)=>!Object.is(e,t),so=(e,t)=>{for(let r=0;r<e.length;r++)e[r](t)},xl=(e,t,r)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},El=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Rl=e=>{const t=Vt(e)?Number(e):NaN;return isNaN(t)?e:t};let sm;const Al=()=>sm||(sm=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof ho<"u"?ho:{}),eE="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console",tE=Kn(eE);function Pn(e){if(ze(e)){const t={};for(let r=0;r<e.length;r++){const i=e[r],a=Vt(i)?oE(i):Pn(i);if(a)for(const n in a)t[n]=a[n]}return t}else{if(Vt(e))return e;if(Rt(e))return e}}const rE=/;(?![^(]*\))/g,iE=/:([^]+)/,nE=/\/\*[^]*?\*\//g;function oE(e){const t={};return e.replace(nE,"").split(rE).forEach(r=>{if(r){const i=r.split(iE);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function vr(e){let t="";if(Vt(e))t=e;else if(ze(e))for(let r=0;r<e.length;r++){const i=vr(e[r]);i&&(t+=i+" ")}else if(Rt(e))for(const r in e)e[r]&&(t+=r+" ");return t.trim()}function aE(e){if(!e)return null;let{class:t,style:r}=e;return t&&!Vt(t)&&(e.class=vr(t)),r&&(e.style=Pn(r)),e}const sE="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",fE="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",uE=Kn(sE),lE=Kn(fE),hE="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",cE=Kn(hE);function Kw(e){return!!e||e===""}function dE(e,t){if(e.length!==t.length)return!1;let r=!0;for(let i=0;r&&i<e.length;i++)r=Mo(e[i],t[i]);return r}function Mo(e,t){if(e===t)return!0;let r=am(e),i=am(t);if(r||i)return r&&i?e.getTime()===t.getTime():!1;if(r=Uf(e),i=Uf(t),r||i)return e===t;if(r=ze(e),i=ze(t),r||i)return r&&i?dE(e,t):!1;if(r=Rt(e),i=Rt(t),r||i){if(!r||!i)return!1;const a=Object.keys(e).length,n=Object.keys(t).length;if(a!==n)return!1;for(const u in e){const c=e.hasOwnProperty(u),d=t.hasOwnProperty(u);if(c&&!d||!c&&d||!Mo(e[u],t[u]))return!1}}return String(e)===String(t)}function sh(e,t){return e.findIndex(r=>Mo(r,t))}const si=e=>Vt(e)?e:e==null?"":ze(e)||Rt(e)&&(e.toString===qw||!Qe(e.toString))?JSON.stringify(e,Vw,2):String(e),Vw=(e,t)=>t&&t.__v_isRef?Vw(e,t.value):Qo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[i,a])=>(r[`${i} =>`]=a,r),{})}:ga(t)?{[`Set(${t.size})`]:[...t.values()]}:Rt(t)&&!ze(t)&&!Ww(t)?String(t):t;function Tl(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let Yr;class av{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Yr,!t&&Yr&&(this.index=(Yr.scopes||(Yr.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Yr;try{return Yr=this,t()}finally{Yr=r}}else Tl("cannot run an inactive effect scope.")}on(){Yr=this}off(){Yr=this.parent}stop(t){if(this._active){let r,i;for(r=0,i=this.effects.length;r<i;r++)this.effects[r].stop();for(r=0,i=this.cleanups.length;r<i;r++)this.cleanups[r]();if(this.scopes)for(r=0,i=this.scopes.length;r<i;r++)this.scopes[r].stop(!0);if(!this.detached&&this.parent&&!t){const a=this.parent.scopes.pop();a&&a!==this&&(this.parent.scopes[this.index]=a,a.index=this.index)}this.parent=void 0,this._active=!1}}}function zw(e){return new av(e)}function Gw(e,t=Yr){t&&t.active&&t.effects.push(e)}function Yw(){return Yr}function pE(e){Yr?Yr.cleanups.push(e):Tl("onScopeDispose() is called when there is no active effect scope to be associated with.")}const sv=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Zw=e=>(e.w&So)>0,Xw=e=>(e.n&So)>0,vE=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=So},gE=e=>{const{deps:t}=e;if(t.length){let r=0;for(let i=0;i<t.length;i++){const a=t[i];Zw(a)&&!Xw(a)?a.delete(e):t[r++]=a,a.w&=~So,a.n&=~So}t.length=r}},Ol=new WeakMap;let bf=0,So=1;const B0=30;let Br;const ea=Symbol("iterate"),L0=Symbol("Map key iterate");class uu{constructor(t,r=null,i){this.fn=t,this.scheduler=r,this.active=!0,this.deps=[],this.parent=void 0,Gw(this,i)}run(){if(!this.active)return this.fn();let t=Br,r=co;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=Br,Br=this,co=!0,So=1<<++bf,bf<=B0?vE(this):fm(this),this.fn()}finally{bf<=B0&&gE(this),So=1<<--bf,Br=this.parent,co=r,this.parent=void 0,this.deferStop&&this.stop()}}stop(){Br===this?this.deferStop=!0:this.active&&(fm(this),this.onStop&&this.onStop(),this.active=!1)}}function fm(e){const{deps:t}=e;if(t.length){for(let r=0;r<t.length;r++)t[r].delete(e);t.length=0}}function mE(e,t){e.effect&&(e=e.effect.fn);const r=new uu(e);t&&(Pt(r,t),t.scope&&Gw(r,t.scope)),(!t||!t.lazy)&&r.run();const i=r.run.bind(r);return i.effect=r,i}function yE(e){e.effect.stop()}let co=!0;const Jw=[];function ma(){Jw.push(co),co=!1}function ya(){const e=Jw.pop();co=e===void 0?!0:e}function Tr(e,t,r){if(co&&Br){let i=Ol.get(e);i||Ol.set(e,i=new Map);let a=i.get(r);a||i.set(r,a=sv()),Qw(a,{effect:Br,target:e,type:t,key:r})}}function Qw(e,t){let r=!1;bf<=B0?Xw(e)||(e.n|=So,r=!Zw(e)):r=!e.has(Br),r&&(e.add(Br),Br.deps.push(e),Br.onTrack&&Br.onTrack(Pt({effect:Br},t)))}function an(e,t,r,i,a,n){const u=Ol.get(e);if(!u)return;let c=[];if(t==="clear")c=[...u.values()];else if(r==="length"&&ze(e)){const m=Number(i);u.forEach((M,S)=>{(S==="length"||S>=m)&&c.push(M)})}else switch(r!==void 0&&c.push(u.get(r)),t){case"add":ze(e)?ov(r)&&c.push(u.get("length")):(c.push(u.get(ea)),Qo(e)&&c.push(u.get(L0)));break;case"delete":ze(e)||(c.push(u.get(ea)),Qo(e)&&c.push(u.get(L0)));break;case"set":Qo(e)&&c.push(u.get(ea));break}const d={target:e,type:t,key:r,newValue:i,oldValue:a,oldTarget:n};if(c.length===1)c[0]&&N0(c[0],d);else{const m=[];for(const M of c)M&&m.push(...M);N0(sv(m),d)}}function N0(e,t){const r=ze(e)?e:[...e];for(const i of r)i.computed&&um(i,t);for(const i of r)i.computed||um(i,t)}function um(e,t){(e!==Br||e.allowRecurse)&&(e.onTrigger&&e.onTrigger(Pt({effect:e},t)),e.scheduler?e.scheduler():e.run())}function bE(e,t){var r;return(r=Ol.get(e))==null?void 0:r.get(t)}const wE=Kn("__proto__,__v_isRef,__isVue"),e2=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Uf)),_E=fh(),ME=fh(!1,!0),SE=fh(!0),xE=fh(!0,!0),lm=EE();function EE(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const i=lt(this);for(let n=0,u=this.length;n<u;n++)Tr(i,"get",n+"");const a=i[t](...r);return a===-1||a===!1?i[t](...r.map(lt)):a}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...r){ma();const i=lt(this)[t].apply(this,r);return ya(),i}}),e}function RE(e){const t=lt(this);return Tr(t,"has",e),t.hasOwnProperty(e)}function fh(e=!1,t=!1){return function(i,a,n){if(a==="__v_isReactive")return!e;if(a==="__v_isReadonly")return e;if(a==="__v_isShallow")return t;if(a==="__v_raw"&&n===(e?t?f2:s2:t?a2:o2).get(i))return i;const u=ze(i);if(!e){if(u&&wt(lm,a))return Reflect.get(lm,a,n);if(a==="hasOwnProperty")return RE}const c=Reflect.get(i,a,n);return(Uf(a)?e2.has(a):wE(a))||(e||Tr(i,"get",a),t)?c:Xt(c)?u&&ov(a)?c:c.value:Rt(c)?e?uv(c):No(c):c}}const AE=t2(),TE=t2(!0);function t2(e=!1){return function(r,i,a,n){let u=r[i];if(Ln(u)&&Xt(u)&&!Xt(a))return!1;if(!e&&(!Hf(a)&&!Ln(a)&&(u=lt(u),a=lt(a)),!ze(r)&&Xt(u)&&!Xt(a)))return u.value=a,!0;const c=ze(r)&&ov(i)?Number(i)<r.length:wt(r,i),d=Reflect.set(r,i,a,n);return r===lt(n)&&(c?as(a,u)&&an(r,"set",i,a,u):an(r,"add",i,a)),d}}function OE(e,t){const r=wt(e,t),i=e[t],a=Reflect.deleteProperty(e,t);return a&&r&&an(e,"delete",t,void 0,i),a}function IE(e,t){const r=Reflect.has(e,t);return(!Uf(t)||!e2.has(t))&&Tr(e,"has",t),r}function PE(e){return Tr(e,"iterate",ze(e)?"length":ea),Reflect.ownKeys(e)}const r2={get:_E,set:AE,deleteProperty:OE,has:IE,ownKeys:PE},i2={get:SE,set(e,t){return Tl(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0},deleteProperty(e,t){return Tl(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}},CE=Pt({},r2,{get:ME,set:TE}),BE=Pt({},i2,{get:xE}),fv=e=>e,uh=e=>Reflect.getPrototypeOf(e);function Du(e,t,r=!1,i=!1){e=e.__v_raw;const a=lt(e),n=lt(t);r||(t!==n&&Tr(a,"get",t),Tr(a,"get",n));const{has:u}=uh(a),c=i?fv:r?hv:Wf;if(u.call(a,t))return c(e.get(t));if(u.call(a,n))return c(e.get(n));e!==a&&e.get(t)}function Fu(e,t=!1){const r=this.__v_raw,i=lt(r),a=lt(e);return t||(e!==a&&Tr(i,"has",e),Tr(i,"has",a)),e===a?r.has(e):r.has(e)||r.has(a)}function ju(e,t=!1){return e=e.__v_raw,!t&&Tr(lt(e),"iterate",ea),Reflect.get(e,"size",e)}function hm(e){e=lt(e);const t=lt(this);return uh(t).has.call(t,e)||(t.add(e),an(t,"add",e,e)),this}function cm(e,t){t=lt(t);const r=lt(this),{has:i,get:a}=uh(r);let n=i.call(r,e);n?n2(r,i,e):(e=lt(e),n=i.call(r,e));const u=a.call(r,e);return r.set(e,t),n?as(t,u)&&an(r,"set",e,t,u):an(r,"add",e,t),this}function dm(e){const t=lt(this),{has:r,get:i}=uh(t);let a=r.call(t,e);a?n2(t,r,e):(e=lt(e),a=r.call(t,e));const n=i?i.call(t,e):void 0,u=t.delete(e);return a&&an(t,"delete",e,void 0,n),u}function pm(){const e=lt(this),t=e.size!==0,r=Qo(e)?new Map(e):new Set(e),i=e.clear();return t&&an(e,"clear",void 0,void 0,r),i}function Uu(e,t){return function(i,a){const n=this,u=n.__v_raw,c=lt(u),d=t?fv:e?hv:Wf;return!e&&Tr(c,"iterate",ea),u.forEach((m,M)=>i.call(a,d(m),d(M),n))}}function Hu(e,t,r){return function(...i){const a=this.__v_raw,n=lt(a),u=Qo(n),c=e==="entries"||e===Symbol.iterator&&u,d=e==="keys"&&u,m=a[e](...i),M=r?fv:t?hv:Wf;return!t&&Tr(n,"iterate",d?L0:ea),{next(){const{value:S,done:R}=m.next();return R?{value:S,done:R}:{value:c?[M(S[0]),M(S[1])]:M(S),done:R}},[Symbol.iterator](){return this}}}}function Xn(e){return function(...t){{const r=t[0]?`on key "${t[0]}" `:"";console.warn(`${_o(e)} operation ${r}failed: target is readonly.`,lt(this))}return e==="delete"?!1:this}}function LE(){const e={get(n){return Du(this,n)},get size(){return ju(this)},has:Fu,add:hm,set:cm,delete:dm,clear:pm,forEach:Uu(!1,!1)},t={get(n){return Du(this,n,!1,!0)},get size(){return ju(this)},has:Fu,add:hm,set:cm,delete:dm,clear:pm,forEach:Uu(!1,!0)},r={get(n){return Du(this,n,!0)},get size(){return ju(this,!0)},has(n){return Fu.call(this,n,!0)},add:Xn("add"),set:Xn("set"),delete:Xn("delete"),clear:Xn("clear"),forEach:Uu(!0,!1)},i={get(n){return Du(this,n,!0,!0)},get size(){return ju(this,!0)},has(n){return Fu.call(this,n,!0)},add:Xn("add"),set:Xn("set"),delete:Xn("delete"),clear:Xn("clear"),forEach:Uu(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(n=>{e[n]=Hu(n,!1,!1),r[n]=Hu(n,!0,!1),t[n]=Hu(n,!1,!0),i[n]=Hu(n,!0,!0)}),[e,r,t,i]}const[NE,kE,$E,DE]=LE();function lh(e,t){const r=t?e?DE:$E:e?kE:NE;return(i,a,n)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?i:Reflect.get(wt(r,a)&&a in i?r:i,a,n)}const FE={get:lh(!1,!1)},jE={get:lh(!1,!0)},UE={get:lh(!0,!1)},HE={get:lh(!0,!0)};function n2(e,t,r){const i=lt(r);if(i!==r&&t.call(e,i)){const a=nv(e);console.warn(`Reactive ${a} contains both the raw and reactive versions of the same object${a==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const o2=new WeakMap,a2=new WeakMap,s2=new WeakMap,f2=new WeakMap;function qE(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function WE(e){return e.__v_skip||!Object.isExtensible(e)?0:qE(nv(e))}function No(e){return Ln(e)?e:hh(e,!1,r2,FE,o2)}function u2(e){return hh(e,!1,CE,jE,a2)}function uv(e){return hh(e,!0,i2,UE,s2)}function Wa(e){return hh(e,!0,BE,HE,f2)}function hh(e,t,r,i,a){if(!Rt(e))return console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const n=a.get(e);if(n)return n;const u=WE(e);if(u===0)return e;const c=new Proxy(e,u===2?i:r);return a.set(e,c),c}function po(e){return Ln(e)?po(e.__v_raw):!!(e&&e.__v_isReactive)}function Ln(e){return!!(e&&e.__v_isReadonly)}function Hf(e){return!!(e&&e.__v_isShallow)}function qf(e){return po(e)||Ln(e)}function lt(e){const t=e&&e.__v_raw;return t?lt(t):e}function lv(e){return xl(e,"__v_skip",!0),e}const Wf=e=>Rt(e)?No(e):e,hv=e=>Rt(e)?uv(e):e;function cv(e){co&&Br&&(e=lt(e),Qw(e.dep||(e.dep=sv()),{target:e,type:"get",key:"value"}))}function ch(e,t){e=lt(e);const r=e.dep;r&&N0(r,{target:e,type:"set",key:"value",newValue:t})}function Xt(e){return!!(e&&e.__v_isRef===!0)}function mr(e){return h2(e,!1)}function l2(e){return h2(e,!0)}function h2(e,t){return Xt(e)?e:new KE(e,t)}class KE{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:lt(t),this._value=r?t:Wf(t)}get value(){return cv(this),this._value}set value(t){const r=this.__v_isShallow||Hf(t)||Ln(t);t=r?t:lt(t),as(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:Wf(t),ch(this,t))}}function VE(e){ch(e,e.value)}function vo(e){return Xt(e)?e.value:e}function zE(e){return Qe(e)?e():vo(e)}const GE={get:(e,t,r)=>vo(Reflect.get(e,t,r)),set:(e,t,r,i)=>{const a=e[t];return Xt(a)&&!Xt(r)?(a.value=r,!0):Reflect.set(e,t,r,i)}};function dv(e){return po(e)?e:new Proxy(e,GE)}class YE{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:r,set:i}=t(()=>cv(this),()=>ch(this));this._get=r,this._set=i}get value(){return this._get()}set value(t){this._set(t)}}function ZE(e){return new YE(e)}function XE(e){qf(e)||console.warn("toRefs() expects a reactive object but received a plain one.");const t=ze(e)?new Array(e.length):{};for(const r in e)t[r]=c2(e,r);return t}class JE{constructor(t,r,i){this._object=t,this._key=r,this._defaultValue=i,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return bE(lt(this._object),this._key)}}class QE{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function e8(e,t,r){return Xt(e)?e:Qe(e)?new QE(e):Rt(e)&&arguments.length>1?c2(e,t,r):mr(e)}function c2(e,t,r){const i=e[t];return Xt(i)?i:new JE(e,t,r)}class t8{constructor(t,r,i,a){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new uu(t,()=>{this._dirty||(this._dirty=!0,ch(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!a,this.__v_isReadonly=i}get value(){const t=lt(this);return cv(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function r8(e,t,r=!1){let i,a;const n=Qe(e);n?(i=e,a=()=>{console.warn("Write operation failed: computed value is readonly")}):(i=e.get,a=e.set);const u=new t8(i,a,n||!a,r);return t&&!r&&(u.effect.onTrack=t.onTrack,u.effect.onTrigger=t.onTrigger),u}const ta=[];function Tf(e){ta.push(e)}function Of(){ta.pop()}function Ue(e,...t){ma();const r=ta.length?ta[ta.length-1].component:null,i=r&&r.appContext.config.warnHandler,a=i8();if(i)en(i,r,11,[e+t.join(""),r&&r.proxy,a.map(({vnode:n})=>`at <${Sh(r,n.type)}>`).join(`
-`),a]);else{const n=[`[Vue warn]: ${e}`,...t];a.length&&n.push(`
-`,...n8(a)),console.warn(...n)}ya()}function i8(){let e=ta[ta.length-1];if(!e)return[];const t=[];for(;e;){const r=t[0];r&&r.vnode===e?r.recurseCount++:t.push({vnode:e,recurseCount:0});const i=e.component&&e.component.parent;e=i&&i.vnode}return t}function n8(e){const t=[];return e.forEach((r,i)=>{t.push(...i===0?[]:[`
-`],...o8(r))}),t}function o8({vnode:e,recurseCount:t}){const r=t>0?`... (${t} recursive calls)`:"",i=e.component?e.component.parent==null:!1,a=` at <${Sh(e.component,e.type,i)}`,n=">"+r;return e.props?[a,...a8(e.props),n]:[a+n]}function a8(e){const t=[],r=Object.keys(e);return r.slice(0,3).forEach(i=>{t.push(...d2(i,e[i]))}),r.length>3&&t.push(" ..."),t}function d2(e,t,r){return Vt(t)?(t=JSON.stringify(t),r?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?r?t:[`${e}=${t}`]:Xt(t)?(t=d2(e,lt(t.value),!0),r?t:[`${e}=Ref<`,t,">"]):Qe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=lt(t),r?t:[`${e}=`,t])}function pv(e,t){e!==void 0&&(typeof e!="number"?Ue(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&Ue(`${t} is NaN - the duration expression might be incorrect.`))}const vv={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",[0]:"setup function",[1]:"render function",[2]:"watcher getter",[3]:"watcher callback",[4]:"watcher cleanup function",[5]:"native event handler",[6]:"component event handler",[7]:"vnode hook",[8]:"directive hook",[9]:"transition hook",[10]:"app errorHandler",[11]:"app warnHandler",[12]:"ref function",[13]:"async component loader",[14]:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"};function en(e,t,r,i){let a;try{a=i?e(...i):e()}catch(n){ba(n,t,r)}return a}function Zr(e,t,r,i){if(Qe(e)){const n=en(e,t,r,i);return n&&oh(n)&&n.catch(u=>{ba(u,t,r)}),n}const a=[];for(let n=0;n<e.length;n++)a.push(Zr(e[n],t,r,i));return a}function ba(e,t,r,i=!0){const a=t?t.vnode:null;if(t){let n=t.parent;const u=t.proxy,c=vv[r];for(;n;){const m=n.ec;if(m){for(let M=0;M<m.length;M++)if(m[M](e,u,c)===!1)return}n=n.parent}const d=t.appContext.config.errorHandler;if(d){en(d,null,10,[e,u,c]);return}}s8(e,r,a,i)}function s8(e,t,r,i=!0){{const a=vv[t];if(r&&Tf(r),Ue(`Unhandled error${a?` during execution of ${a}`:""}`),r&&Of(),i)throw e;console.error(e)}}let Kf=!1,k0=!1;const Er=[];let Ji=0;const Ya=[];let zi=null,io=0;const p2=Promise.resolve();let gv=null;const f8=100;function uo(e){const t=gv||p2;return e?t.then(this?e.bind(this):e):t}function u8(e){let t=Ji+1,r=Er.length;for(;t<r;){const i=t+r>>>1;Vf(Er[i])<e?t=i+1:r=i}return t}function lu(e){(!Er.length||!Er.includes(e,Kf&&e.allowRecurse?Ji+1:Ji))&&(e.id==null?Er.push(e):Er.splice(u8(e.id),0,e),v2())}function v2(){!Kf&&!k0&&(k0=!0,gv=p2.then(g2))}function l8(e){const t=Er.indexOf(e);t>Ji&&Er.splice(t,1)}function dh(e){ze(e)?Ya.push(...e):(!zi||!zi.includes(e,e.allowRecurse?io+1:io))&&Ya.push(e),v2()}function vm(e,t=Kf?Ji+1:0){for(e=e||new Map;t<Er.length;t++){const r=Er[t];if(r&&r.pre){if(mv(e,r))continue;Er.splice(t,1),t--,r()}}}function Il(e){if(Ya.length){const t=[...new Set(Ya)];if(Ya.length=0,zi){zi.push(...t);return}for(zi=t,e=e||new Map,zi.sort((r,i)=>Vf(r)-Vf(i)),io=0;io<zi.length;io++)mv(e,zi[io])||zi[io]();zi=null,io=0}}const Vf=e=>e.id==null?1/0:e.id,h8=(e,t)=>{const r=Vf(e)-Vf(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function g2(e){k0=!1,Kf=!0,e=e||new Map,Er.sort(h8);const t=r=>mv(e,r);try{for(Ji=0;Ji<Er.length;Ji++){const r=Er[Ji];if(r&&r.active!==!1){if(t(r))continue;en(r,null,14)}}}finally{Ji=0,Er.length=0,Il(e),Kf=!1,gv=null,(Er.length||Ya.length)&&g2(e)}}function mv(e,t){if(!e.has(t))e.set(t,1);else{const r=e.get(t);if(r>f8){const i=t.ownerInstance,a=i&&Xf(i.type);return Ue(`Maximum recursive updates exceeded${a?` in component <${a}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`),!0}else e.set(t,r+1)}}let go=!1;const ja=new Set;Al().__VUE_HMR_RUNTIME__={createRecord:Oc(m2),rerender:Oc(p8),reload:Oc(v8)};const sa=new Map;function c8(e){const t=e.type.__hmrId;let r=sa.get(t);r||(m2(t,e.type),r=sa.get(t)),r.instances.add(e)}function d8(e){sa.get(e.type.__hmrId).instances.delete(e)}function m2(e,t){return sa.has(e)?!1:(sa.set(e,{initialDef:If(t),instances:new Set}),!0)}function If(e){return h_(e)?e.__vccOpts:e}function p8(e,t){const r=sa.get(e);r&&(r.initialDef.render=t,[...r.instances].forEach(i=>{t&&(i.render=t,If(i.type).render=t),i.renderCache=[],go=!0,i.update(),go=!1}))}function v8(e,t){const r=sa.get(e);if(!r)return;t=If(t),gm(r.initialDef,t);const i=[...r.instances];for(const a of i){const n=If(a.type);ja.has(n)||(n!==r.initialDef&&gm(n,t),ja.add(n)),a.appContext.propsCache.delete(a.type),a.appContext.emitsCache.delete(a.type),a.appContext.optionsCache.delete(a.type),a.ceReload?(ja.add(n),a.ceReload(t.styles),ja.delete(n)):a.parent?lu(a.parent.update):a.appContext.reload?a.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required.")}dh(()=>{for(const a of i)ja.delete(If(a.type))})}function gm(e,t){Pt(e,t);for(const r in e)r!=="__file"&&!(r in t)&&delete e[r]}function Oc(e){return(t,r)=>{try{return e(t,r)}catch(i){console.error(i),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let Bi,wf=[],$0=!1;function hu(e,...t){Bi?Bi.emit(e,...t):$0||wf.push({event:e,args:t})}function yv(e,t){var r,i;Bi=e,Bi?(Bi.enabled=!0,wf.forEach(({event:a,args:n})=>Bi.emit(a,...n)),wf=[]):typeof window<"u"&&window.HTMLElement&&!((i=(r=window.navigator)==null?void 0:r.userAgent)!=null&&i.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(n=>{yv(n,t)}),setTimeout(()=>{Bi||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,$0=!0,wf=[])},3e3)):($0=!0,wf=[])}function g8(e,t){hu("app:init",e,t,{Fragment:Lt,Text:xo,Comment:rr,Static:mo})}function m8(e){hu("app:unmount",e)}const D0=bv("component:added"),y2=bv("component:updated"),y8=bv("component:removed"),b8=e=>{Bi&&typeof Bi.cleanupBuffer=="function"&&!Bi.cleanupBuffer(e)&&y8(e)};function bv(e){return t=>{hu(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const w8=b2("perf:start"),_8=b2("perf:end");function b2(e){return(t,r,i)=>{hu(e,t.appContext.app,t.uid,t,r,i)}}function M8(e,t,r){hu("component:emit",e.appContext.app,e,t,r)}function S8(e,t,...r){if(e.isUnmounted)return;const i=e.vnode.props||$t;{const{emitsOptions:M,propsOptions:[S]}=e;if(M)if(!(t in M))(!S||!(xn(t)in S))&&Ue(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${xn(t)}" prop.`);else{const R=M[t];Qe(R)&&(R(...r)||Ue(`Invalid event arguments: event validation failed for event "${t}".`))}}let a=r;const n=t.startsWith("update:"),u=n&&t.slice(7);if(u&&u in i){const M=`${u==="modelValue"?"model":u}Modifiers`,{number:S,trim:R}=i[M]||$t;R&&(a=r.map(C=>Vt(C)?C.trim():C)),S&&(a=r.map(El))}M8(e,t,a);{const M=t.toLowerCase();M!==t&&i[xn(M)]&&Ue(`Event "${M}" is emitted in component ${Sh(e,e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${Hr(t)}" instead of "${t}".`)}let c,d=i[c=xn(t)]||i[c=xn(Kr(t))];!d&&n&&(d=i[c=xn(Hr(t))]),d&&Zr(d,e,6,a);const m=i[c+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,Zr(m,e,6,a)}}function w2(e,t,r=!1){const i=t.emitsCache,a=i.get(e);if(a!==void 0)return a;const n=e.emits;let u={},c=!1;if(!Qe(e)){const d=m=>{const M=w2(m,t,!0);M&&(c=!0,Pt(u,M))};!r&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!n&&!c?(Rt(e)&&i.set(e,null),null):(ze(n)?n.forEach(d=>u[d]=null):Pt(u,n),Rt(e)&&i.set(e,u),u)}function ph(e,t){return!e||!Ps(t)?!1:(t=t.slice(2).replace(/Once$/,""),wt(e,t[0].toLowerCase()+t.slice(1))||wt(e,Hr(t))||wt(e,t))}let tr=null,vh=null;function zf(e){const t=tr;return tr=e,vh=e&&e.type.__scopeId||null,t}function _2(e){vh=e}function M2(){vh=null}const x8=e=>wv;function wv(e,t=tr,r){if(!t||e._n)return e;const i=(...a)=>{i._d&&z0(-1);const n=zf(t);let u;try{u=e(...a)}finally{zf(n),i._d&&z0(1)}return y2(t),u};return i._n=!0,i._c=!0,i._d=!0,i}let F0=!1;function Pl(){F0=!0}function il(e){const{type:t,vnode:r,proxy:i,withProxy:a,props:n,propsOptions:[u],slots:c,attrs:d,emit:m,render:M,renderCache:S,data:R,setupState:C,ctx:P,inheritAttrs:k}=e;let L,I;const B=zf(e);F0=!1;try{if(r.shapeFlag&4){const W=a||i;L=Ur(M.call(W,W,S,n,C,R,P)),I=d}else{const W=t;d===n&&Pl(),L=Ur(W.length>1?W(n,{get attrs(){return Pl(),d},slots:c,emit:m}):W(n,null)),I=t.props?d:R8(d)}}catch(W){Bf.length=0,ba(W,e,1),L=Zt(rr)}let H=L,F;if(L.patchFlag>0&&L.patchFlag&2048&&([H,F]=E8(L)),I&&k!==!1){const W=Object.keys(I),{shapeFlag:Y}=H;if(W.length){if(Y&7)u&&W.some(Sl)&&(I=A8(I,u)),H=di(H,I);else if(!F0&&H.type!==rr){const ie=Object.keys(d),J=[],V=[];for(let oe=0,_=ie.length;oe<_;oe++){const o=ie[oe];Ps(o)?Sl(o)||J.push(o[2].toLowerCase()+o.slice(3)):V.push(o)}V.length&&Ue(`Extraneous non-props attributes (${V.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`),J.length&&Ue(`Extraneous non-emits event listeners (${J.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`)}}}return r.dirs&&(mm(H)||Ue("Runtime directive used on component with non-element root node. The directives will not function as intended."),H=di(H),H.dirs=H.dirs?H.dirs.concat(r.dirs):r.dirs),r.transition&&(mm(H)||Ue("Component inside <Transition> renders non-element root node that cannot be animated."),H.transition=r.transition),F?F(H):L=H,zf(B),L}const E8=e=>{const t=e.children,r=e.dynamicChildren,i=_v(t);if(!i)return[e,void 0];const a=t.indexOf(i),n=r?r.indexOf(i):-1,u=c=>{t[a]=c,r&&(n>-1?r[n]=c:c.patchFlag>0&&(e.dynamicChildren=[...r,c]))};return[Ur(i),u]};function _v(e){let t;for(let r=0;r<e.length;r++){const i=e[r];if(Nn(i)){if(i.type!==rr||i.children==="v-if"){if(t)return;t=i}}else return}return t}const R8=e=>{let t;for(const r in e)(r==="class"||r==="style"||Ps(r))&&((t||(t={}))[r]=e[r]);return t},A8=(e,t)=>{const r={};for(const i in e)(!Sl(i)||!(i.slice(9)in t))&&(r[i]=e[i]);return r},mm=e=>e.shapeFlag&7||e.type===rr;function T8(e,t,r){const{props:i,children:a,component:n}=e,{props:u,children:c,patchFlag:d}=t,m=n.emitsOptions;if((a||c)&&go||t.dirs||t.transition)return!0;if(r&&d>=0){if(d&1024)return!0;if(d&16)return i?ym(i,u,m):!!u;if(d&8){const M=t.dynamicProps;for(let S=0;S<M.length;S++){const R=M[S];if(u[R]!==i[R]&&!ph(m,R))return!0}}}else return(a||c)&&(!c||!c.$stable)?!0:i===u?!1:i?u?ym(i,u,m):!0:!!u;return!1}function ym(e,t,r){const i=Object.keys(t);if(i.length!==Object.keys(e).length)return!0;for(let a=0;a<i.length;a++){const n=i[a];if(t[n]!==e[n]&&!ph(r,n))return!0}return!1}function Mv({vnode:e,parent:t},r){for(;t&&t.subTree===e;)(e=t.vnode).el=r,t=t.parent}const S2=e=>e.__isSuspense,O8={name:"Suspense",__isSuspense:!0,process(e,t,r,i,a,n,u,c,d,m){e==null?P8(t,r,i,a,n,u,c,d,m):C8(e,t,r,i,a,u,c,d,m)},hydrate:B8,create:Sv,normalize:L8},I8=O8;function Gf(e,t){const r=e.props&&e.props[t];Qe(r)&&r()}function P8(e,t,r,i,a,n,u,c,d){const{p:m,o:{createElement:M}}=d,S=M("div"),R=e.suspense=Sv(e,a,i,t,S,r,n,u,c,d);m(null,R.pendingBranch=e.ssContent,S,null,i,R,n,u),R.deps>0?(Gf(e,"onPending"),Gf(e,"onFallback"),m(null,e.ssFallback,t,r,i,null,n,u),Za(R,e.ssFallback)):R.resolve(!1,!0)}function C8(e,t,r,i,a,n,u,c,{p:d,um:m,o:{createElement:M}}){const S=t.suspense=e.suspense;S.vnode=t,t.el=e.el;const R=t.ssContent,C=t.ssFallback,{activeBranch:P,pendingBranch:k,isInFallback:L,isHydrating:I}=S;if(k)S.pendingBranch=R,Li(R,k)?(d(k,R,S.hiddenContainer,null,a,S,n,u,c),S.deps<=0?S.resolve():L&&(d(P,C,r,i,a,null,n,u,c),Za(S,C))):(S.pendingId++,I?(S.isHydrating=!1,S.activeBranch=k):m(k,a,S),S.deps=0,S.effects.length=0,S.hiddenContainer=M("div"),L?(d(null,R,S.hiddenContainer,null,a,S,n,u,c),S.deps<=0?S.resolve():(d(P,C,r,i,a,null,n,u,c),Za(S,C))):P&&Li(R,P)?(d(P,R,r,i,a,S,n,u,c),S.resolve(!0)):(d(null,R,S.hiddenContainer,null,a,S,n,u,c),S.deps<=0&&S.resolve()));else if(P&&Li(R,P))d(P,R,r,i,a,S,n,u,c),Za(S,R);else if(Gf(t,"onPending"),S.pendingBranch=R,S.pendingId++,d(null,R,S.hiddenContainer,null,a,S,n,u,c),S.deps<=0)S.resolve();else{const{timeout:B,pendingId:H}=S;B>0?setTimeout(()=>{S.pendingId===H&&S.fallback(C)},B):B===0&&S.fallback(C)}}let bm=!1;function Sv(e,t,r,i,a,n,u,c,d,m,M=!1){bm||(bm=!0,console[console.info?"info":"log"]("<Suspense> is an experimental feature and its API will likely change."));const{p:S,m:R,um:C,n:P,o:{parentNode:k,remove:L}}=m;let I;const B=N8(e);B&&t!=null&&t.pendingBranch&&(I=t.pendingId,t.deps++);const H=e.props?Rl(e.props.timeout):void 0;pv(H,"Suspense timeout");const F={vnode:e,parent:t,parentComponent:r,isSVG:u,container:i,hiddenContainer:a,anchor:n,deps:0,pendingId:0,timeout:typeof H=="number"?H:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:M,isUnmounted:!1,effects:[],resolve(W=!1,Y=!1){{if(!W&&!F.pendingBranch)throw new Error("suspense.resolve() is called without a pending branch.");if(F.isUnmounted)throw new Error("suspense.resolve() is called on an already unmounted suspense boundary.")}const{vnode:ie,activeBranch:J,pendingBranch:V,pendingId:oe,effects:_,parentComponent:o,container:f}=F;if(F.isHydrating)F.isHydrating=!1;else if(!W){const p=J&&V.transition&&V.transition.mode==="out-in";p&&(J.transition.afterLeave=()=>{oe===F.pendingId&&R(V,f,w,0)});let{anchor:w}=F;J&&(w=P(J),C(J,o,F,!0)),p||R(V,f,w,0)}Za(F,V),F.pendingBranch=null,F.isInFallback=!1;let l=F.parent,h=!1;for(;l;){if(l.pendingBranch){l.effects.push(..._),h=!0;break}l=l.parent}h||dh(_),F.effects=[],B&&t&&t.pendingBranch&&I===t.pendingId&&(t.deps--,t.deps===0&&!Y&&t.resolve()),Gf(ie,"onResolve")},fallback(W){if(!F.pendingBranch)return;const{vnode:Y,activeBranch:ie,parentComponent:J,container:V,isSVG:oe}=F;Gf(Y,"onFallback");const _=P(ie),o=()=>{F.isInFallback&&(S(null,W,V,_,J,null,oe,c,d),Za(F,W))},f=W.transition&&W.transition.mode==="out-in";f&&(ie.transition.afterLeave=o),F.isInFallback=!0,C(ie,J,null,!0),f||o()},move(W,Y,ie){F.activeBranch&&R(F.activeBranch,W,Y,ie),F.container=W},next(){return F.activeBranch&&P(F.activeBranch)},registerDep(W,Y){const ie=!!F.pendingBranch;ie&&F.deps++;const J=W.vnode.el;W.asyncDep.catch(V=>{ba(V,W,0)}).then(V=>{if(W.isUnmounted||F.isUnmounted||F.pendingId!==W.suspenseId)return;W.asyncResolved=!0;const{vnode:oe}=W;Tf(oe),Z0(W,V,!1),J&&(oe.el=J);const _=!J&&W.subTree.el;Y(W,oe,k(J||W.subTree.el),J?null:P(W.subTree),F,u,d),_&&L(_),Mv(W,oe.el),Of(),ie&&--F.deps===0&&F.resolve()})},unmount(W,Y){F.isUnmounted=!0,F.activeBranch&&C(F.activeBranch,r,W,Y),F.pendingBranch&&C(F.pendingBranch,r,W,Y)}};return F}function B8(e,t,r,i,a,n,u,c,d){const m=t.suspense=Sv(t,i,r,e.parentNode,document.createElement("div"),null,a,n,u,c,!0),M=d(e,m.pendingBranch=t.ssContent,r,m,n,u);return m.deps===0&&m.resolve(!1,!0),M}function L8(e){const{shapeFlag:t,children:r}=e,i=t&32;e.ssContent=wm(i?r.default:r),e.ssFallback=i?wm(r.fallback):Zt(rr)}function wm(e){let t;if(Qe(e)){const r=ua&&e._c;r&&(e._d=!1,tt()),e=e(),r&&(e._d=!0,t=Wr,e_())}if(ze(e)){const r=_v(e);r||Ue("<Suspense> slots expect a single root node."),e=r}return e=Ur(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(r=>r!==e)),e}function x2(e,t){t&&t.pendingBranch?ze(e)?t.effects.push(...e):t.effects.push(e):dh(e)}function Za(e,t){e.activeBranch=t;const{vnode:r,parentComponent:i}=e,a=r.el=t.el;i&&i.subTree===r&&(i.vnode.el=a,Mv(i,a))}function N8(e){var t;return((t=e.props)==null?void 0:t.suspensible)!=null&&e.props.suspensible!==!1}function E2(e,t){return cu(e,null,t)}function R2(e,t){return cu(e,null,Pt({},t,{flush:"post"}))}function k8(e,t){return cu(e,null,Pt({},t,{flush:"sync"}))}const qu={};function lr(e,t,r){return Qe(t)||Ue("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),cu(e,t,r)}function cu(e,t,{immediate:r,deep:i,flush:a,onTrack:n,onTrigger:u}=$t){var c;t||(r!==void 0&&Ue('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),i!==void 0&&Ue('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));const d=W=>{Ue("Invalid watch source: ",W,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},m=Yw()===((c=er)==null?void 0:c.scope)?er:null;let M,S=!1,R=!1;if(Xt(e)?(M=()=>e.value,S=Hf(e)):po(e)?(M=()=>e,i=!0):ze(e)?(R=!0,S=e.some(W=>po(W)||Hf(W)),M=()=>e.map(W=>{if(Xt(W))return W.value;if(po(W))return Yo(W);if(Qe(W))return en(W,m,2);d(W)})):Qe(e)?t?M=()=>en(e,m,2):M=()=>{if(!(m&&m.isUnmounted))return C&&C(),Zr(e,m,3,[P])}:(M=qr,d(e)),t&&i){const W=M;M=()=>Yo(W())}let C,P=W=>{C=H.onStop=()=>{en(W,m,4)}},k;if(fs)if(P=qr,t?r&&Zr(t,m,3,[M(),R?[]:void 0,P]):M(),a==="sync"){const W=d_();k=W.__watcherHandles||(W.__watcherHandles=[])}else return qr;let L=R?new Array(e.length).fill(qu):qu;const I=()=>{if(H.active)if(t){const W=H.run();(i||S||(R?W.some((Y,ie)=>as(Y,L[ie])):as(W,L)))&&(C&&C(),Zr(t,m,3,[W,L===qu?void 0:R&&L[0]===qu?[]:L,P]),L=W)}else H.run()};I.allowRecurse=!!t;let B;a==="sync"?B=I:a==="post"?B=()=>gr(I,m&&m.suspense):(I.pre=!0,m&&(I.id=m.uid),B=()=>lu(I));const H=new uu(M,B);H.onTrack=n,H.onTrigger=u,t?r?I():L=H.run():a==="post"?gr(H.run.bind(H),m&&m.suspense):H.run();const F=()=>{H.stop(),m&&m.scope&&iv(m.scope.effects,H)};return k&&k.push(F),F}function $8(e,t,r){const i=this.proxy,a=Vt(e)?e.includes(".")?A2(i,e):()=>i[e]:e.bind(i,i);let n;Qe(t)?n=t:(n=t.handler,r=t);const u=er;Eo(this);const c=cu(a,n.bind(i),r);return u?Eo(u):yo(),c}function A2(e,t){const r=t.split(".");return()=>{let i=e;for(let a=0;a<r.length&&i;a++)i=i[r[a]];return i}}function Yo(e,t){if(!Rt(e)||e.__v_skip||(t=t||new Set,t.has(e)))return e;if(t.add(e),Xt(e))Yo(e.value,t);else if(ze(e))for(let r=0;r<e.length;r++)Yo(e[r],t);else if(ga(e)||Qo(e))e.forEach(r=>{Yo(r,t)});else if(Ww(e))for(const r in e)Yo(e[r],t);return e}function T2(e){X4(e)&&Ue("Do not use built-in directive ids as custom directive id: "+e)}function nl(e,t){const r=tr;if(r===null)return Ue("withDirectives can only be used inside render functions."),e;const i=Mh(r)||r.proxy,a=e.dirs||(e.dirs=[]);for(let n=0;n<t.length;n++){let[u,c,d,m=$t]=t[n];u&&(Qe(u)&&(u={mounted:u,updated:u}),u.deep&&Yo(c),a.push({dir:u,instance:i,value:c,oldValue:void 0,arg:d,modifiers:m}))}return e}function Zi(e,t,r,i){const a=e.dirs,n=t&&t.dirs;for(let u=0;u<a.length;u++){const c=a[u];n&&(c.oldValue=n[u].value);let d=c.dir[i];d&&(ma(),Zr(d,r,8,[e.el,c,e,t]),ya())}}function xv(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ns(()=>{e.isMounted=!0}),bh(()=>{e.isUnmounting=!0}),e}const ni=[Function,Array],Ev={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ni,onEnter:ni,onAfterEnter:ni,onEnterCancelled:ni,onBeforeLeave:ni,onLeave:ni,onAfterLeave:ni,onLeaveCancelled:ni,onBeforeAppear:ni,onAppear:ni,onAfterAppear:ni,onAppearCancelled:ni},D8={name:"BaseTransition",props:Ev,setup(e,{slots:t}){const r=Fi(),i=xv();let a;return()=>{const n=t.default&&gh(t.default(),!0);if(!n||!n.length)return;let u=n[0];if(n.length>1){let k=!1;for(const L of n)if(L.type!==rr){if(k){Ue("<transition> can only be used on a single element or component. Use <transition-group> for lists.");break}u=L,k=!0}}const c=lt(e),{mode:d}=c;if(d&&d!=="in-out"&&d!=="out-in"&&d!=="default"&&Ue(`invalid <transition> mode: ${d}`),i.isLeaving)return Ic(u);const m=_m(u);if(!m)return Ic(u);const M=ss(m,c,i,r);fa(m,M);const S=r.subTree,R=S&&_m(S);let C=!1;const{getTransitionKey:P}=m.type;if(P){const k=P();a===void 0?a=k:k!==a&&(a=k,C=!0)}if(R&&R.type!==rr&&(!Li(m,R)||C)){const k=ss(R,c,i,r);if(fa(R,k),d==="out-in")return i.isLeaving=!0,k.afterLeave=()=>{i.isLeaving=!1,r.update.active!==!1&&r.update()},Ic(u);d==="in-out"&&m.type!==rr&&(k.delayLeave=(L,I,B)=>{const H=I2(i,R);H[String(R.key)]=R,L._leaveCb=()=>{I(),L._leaveCb=void 0,delete M.delayedLeave},M.delayedLeave=B})}return u}}},O2=D8;function I2(e,t){const{leavingVNodes:r}=e;let i=r.get(t.type);return i||(i=Object.create(null),r.set(t.type,i)),i}function ss(e,t,r,i){const{appear:a,mode:n,persisted:u=!1,onBeforeEnter:c,onEnter:d,onAfterEnter:m,onEnterCancelled:M,onBeforeLeave:S,onLeave:R,onAfterLeave:C,onLeaveCancelled:P,onBeforeAppear:k,onAppear:L,onAfterAppear:I,onAppearCancelled:B}=t,H=String(e.key),F=I2(r,e),W=(J,V)=>{J&&Zr(J,i,9,V)},Y=(J,V)=>{const oe=V[1];W(J,V),ze(J)?J.every(_=>_.length<=1)&&oe():J.length<=1&&oe()},ie={mode:n,persisted:u,beforeEnter(J){let V=c;if(!r.isMounted)if(a)V=k||c;else return;J._leaveCb&&J._leaveCb(!0);const oe=F[H];oe&&Li(e,oe)&&oe.el._leaveCb&&oe.el._leaveCb(),W(V,[J])},enter(J){let V=d,oe=m,_=M;if(!r.isMounted)if(a)V=L||d,oe=I||m,_=B||M;else return;let o=!1;const f=J._enterCb=l=>{o||(o=!0,l?W(_,[J]):W(oe,[J]),ie.delayedLeave&&ie.delayedLeave(),J._enterCb=void 0)};V?Y(V,[J,f]):f()},leave(J,V){const oe=String(e.key);if(J._enterCb&&J._enterCb(!0),r.isUnmounting)return V();W(S,[J]);let _=!1;const o=J._leaveCb=f=>{_||(_=!0,V(),f?W(P,[J]):W(C,[J]),J._leaveCb=void 0,F[oe]===e&&delete F[oe])};F[oe]=e,R?Y(R,[J,o]):o()},clone(J){return ss(J,t,r,i)}};return ie}function Ic(e){if(Ls(e))return e=di(e),e.children=null,e}function _m(e){return Ls(e)?e.children?e.children[0]:void 0:e}function fa(e,t){e.shapeFlag&6&&e.component?fa(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function gh(e,t=!1,r){let i=[],a=0;for(let n=0;n<e.length;n++){let u=e[n];const c=r==null?u.key:String(r)+String(u.key!=null?u.key:n);u.type===Lt?(u.patchFlag&128&&a++,i=i.concat(gh(u.children,t,c))):(t||u.type!==rr)&&i.push(c!=null?di(u,{key:c}):u)}if(a>1)for(let n=0;n<i.length;n++)i[n].patchFlag=-2;return i}function Bs(e,t){return Qe(e)?(()=>Pt({name:e.name},t,{setup:e}))():e}const ra=e=>!!e.type.__asyncLoader;function F8(e){Qe(e)&&(e={loader:e});const{loader:t,loadingComponent:r,errorComponent:i,delay:a=200,timeout:n,suspensible:u=!0,onError:c}=e;let d=null,m,M=0;const S=()=>(M++,d=null,R()),R=()=>{let C;return d||(C=d=t().catch(P=>{if(P=P instanceof Error?P:new Error(String(P)),c)return new Promise((k,L)=>{c(P,()=>k(S()),()=>L(P),M+1)});throw P}).then(P=>{if(C!==d&&d)return d;if(P||Ue("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),P&&(P.__esModule||P[Symbol.toStringTag]==="Module")&&(P=P.default),P&&!Rt(P)&&!Qe(P))throw new Error(`Invalid async component load result: ${P}`);return m=P,P}))};return Bs({name:"AsyncComponentWrapper",__asyncLoader:R,get __asyncResolved(){return m},setup(){const C=er;if(m)return()=>Pc(m,C);const P=B=>{d=null,ba(B,C,13,!i)};if(u&&C.suspense||fs)return R().then(B=>()=>Pc(B,C)).catch(B=>(P(B),()=>i?Zt(i,{error:B}):null));const k=mr(!1),L=mr(),I=mr(!!a);return a&&setTimeout(()=>{I.value=!1},a),n!=null&&setTimeout(()=>{if(!k.value&&!L.value){const B=new Error(`Async component timed out after ${n}ms.`);P(B),L.value=B}},n),R().then(()=>{k.value=!0,C.parent&&Ls(C.parent.vnode)&&lu(C.parent.update)}).catch(B=>{P(B),L.value=B}),()=>{if(k.value&&m)return Pc(m,C);if(L.value&&i)return Zt(i,{error:L.value});if(r&&!I.value)return Zt(r)}}})}function Pc(e,t){const{ref:r,props:i,children:a,ce:n}=t.vnode,u=Zt(e,i,a);return u.ref=r,u.ce=n,delete t.vnode.ce,u}const Ls=e=>e.type.__isKeepAlive,j8={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const r=Fi(),i=r.ctx;if(!i.renderer)return()=>{const B=t.default&&t.default();return B&&B.length===1?B[0]:B};const a=new Map,n=new Set;let u=null;r.__v_cache=a;const c=r.suspense,{renderer:{p:d,m,um:M,o:{createElement:S}}}=i,R=S("div");i.activate=(B,H,F,W,Y)=>{const ie=B.component;m(B,H,F,0,c),d(ie.vnode,B,H,F,ie,c,W,B.slotScopeIds,Y),gr(()=>{ie.isDeactivated=!1,ie.a&&so(ie.a);const J=B.props&&B.props.onVnodeMounted;J&&Dr(J,ie.parent,B)},c),D0(ie)},i.deactivate=B=>{const H=B.component;m(B,R,null,1,c),gr(()=>{H.da&&so(H.da);const F=B.props&&B.props.onVnodeUnmounted;F&&Dr(F,H.parent,B),H.isDeactivated=!0},c),D0(H)};function C(B){Cc(B),M(B,r,c,!0)}function P(B){a.forEach((H,F)=>{const W=Xf(H.type);W&&(!B||!B(W))&&k(F)})}function k(B){const H=a.get(B);!u||!Li(H,u)?C(H):u&&Cc(u),a.delete(B),n.delete(B)}lr(()=>[e.include,e.exclude],([B,H])=>{B&&P(F=>_f(B,F)),H&&P(F=>!_f(H,F))},{flush:"post",deep:!0});let L=null;const I=()=>{L!=null&&a.set(L,Bc(r.subTree))};return Ns(I),yh(I),bh(()=>{a.forEach(B=>{const{subTree:H,suspense:F}=r,W=Bc(H);if(B.type===W.type&&B.key===W.key){Cc(W);const Y=W.component.da;Y&&gr(Y,F);return}C(B)})}),()=>{if(L=null,!t.default)return null;const B=t.default(),H=B[0];if(B.length>1)return Ue("KeepAlive should contain exactly one component child."),u=null,B;if(!Nn(H)||!(H.shapeFlag&4)&&!(H.shapeFlag&128))return u=null,H;let F=Bc(H);const W=F.type,Y=Xf(ra(F)?F.type.__asyncResolved||{}:W),{include:ie,exclude:J,max:V}=e;if(ie&&(!Y||!_f(ie,Y))||J&&Y&&_f(J,Y))return u=F,H;const oe=F.key==null?W:F.key,_=a.get(oe);return F.el&&(F=di(F),H.shapeFlag&128&&(H.ssContent=F)),L=oe,_?(F.el=_.el,F.component=_.component,F.transition&&fa(F,F.transition),F.shapeFlag|=512,n.delete(oe),n.add(oe)):(n.add(oe),V&&n.size>parseInt(V,10)&&k(n.values().next().value)),F.shapeFlag|=256,u=F,S2(H.type)?H:F}}},U8=j8;function _f(e,t){return ze(e)?e.some(r=>_f(r,t)):Vt(e)?e.split(",").includes(t):Z4(e)?e.test(t):!1}function P2(e,t){B2(e,"a",t)}function C2(e,t){B2(e,"da",t)}function B2(e,t,r=er){const i=e.__wdc||(e.__wdc=()=>{let a=r;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(mh(t,i,r),r){let a=r.parent;for(;a&&a.parent;)Ls(a.parent.vnode)&&H8(i,t,r,a),a=a.parent}}function H8(e,t,r,i){const a=mh(t,e,i,!0);wh(()=>{iv(i[t],a)},r)}function Cc(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Bc(e){return e.shapeFlag&128?e.ssContent:e}function mh(e,t,r=er,i=!1){if(r){const a=r[e]||(r[e]=[]),n=t.__weh||(t.__weh=(...u)=>{if(r.isUnmounted)return;ma(),Eo(r);const c=Zr(t,r,e,u);return yo(),ya(),c});return i?a.unshift(n):a.push(n),n}else{const a=xn(vv[e].replace(/ hook$/,""));Ue(`${a} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const Vn=e=>(t,r=er)=>(!fs||e==="sp")&&mh(e,(...i)=>t(...i),r),L2=Vn("bm"),Ns=Vn("m"),Rv=Vn("bu"),yh=Vn("u"),bh=Vn("bum"),wh=Vn("um"),N2=Vn("sp"),k2=Vn("rtg"),$2=Vn("rtc");function D2(e,t=er){mh("ec",e,t)}const Cl="components",q8="directives";function W8(e,t){return Av(Cl,e,!0,t)||e}const F2=Symbol.for("v-ndc");function K8(e){return Vt(e)?Av(Cl,e,!1)||e:e||F2}function V8(e){return Av(q8,e)}function Av(e,t,r=!0,i=!1){const a=tr||er;if(a){const n=a.type;if(e===Cl){const c=Xf(n,!1);if(c&&(c===t||c===Kr(t)||c===_o(Kr(t))))return n}const u=Mm(a[e]||n[e],t)||Mm(a.appContext[e],t);if(!u&&i)return n;if(r&&!u){const c=e===Cl?`
-If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:"";Ue(`Failed to resolve ${e.slice(0,-1)}: ${t}${c}`)}return u}else Ue(`resolve${_o(e.slice(0,-1))} can only be used in render() or setup().`)}function Mm(e,t){return e&&(e[t]||e[Kr(t)]||e[_o(Kr(t))])}function Ii(e,t,r,i){let a;const n=r&&r[i];if(ze(e)||Vt(e)){a=new Array(e.length);for(let u=0,c=e.length;u<c;u++)a[u]=t(e[u],u,void 0,n&&n[u])}else if(typeof e=="number"){Number.isInteger(e)||Ue(`The v-for range expect an integer value but got ${e}.`),a=new Array(e);for(let u=0;u<e;u++)a[u]=t(u+1,u,void 0,n&&n[u])}else if(Rt(e))if(e[Symbol.iterator])a=Array.from(e,(u,c)=>t(u,c,void 0,n&&n[c]));else{const u=Object.keys(e);a=new Array(u.length);for(let c=0,d=u.length;c<d;c++){const m=u[c];a[c]=t(e[m],m,c,n&&n[c])}}else a=[];return r&&(r[i]=a),a}function z8(e,t){for(let r=0;r<t.length;r++){const i=t[r];if(ze(i))for(let a=0;a<i.length;a++)e[i[a].name]=i[a].fn;else i&&(e[i.name]=i.key?(...a)=>{const n=i.fn(...a);return n&&(n.key=i.key),n}:i.fn)}return e}function j0(e,t,r={},i,a){if(tr.isCE||tr.parent&&ra(tr.parent)&&tr.parent.isCE)return t!=="default"&&(r.name=t),Zt("slot",r,i&&i());let n=e[t];n&&n.length>1&&(Ue("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),n=()=>[]),n&&n._c&&(n._d=!1),tt();const u=n&&j2(n(r)),c=Pv(Lt,{key:r.key||u&&u.key||`_${t}`},u||(i?i():[]),u&&e._===1?64:-2);return!a&&c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),n&&n._c&&(n._d=!0),c}function j2(e){return e.some(t=>Nn(t)?!(t.type===rr||t.type===Lt&&!j2(t.children)):!0)?e:null}function G8(e,t){const r={};if(!Rt(e))return Ue("v-on with no argument expects an object value."),r;for(const i in e)r[t&&/[A-Z]/.test(i)?`on:${i}`:xn(i)]=e[i];return r}const U0=e=>e?s_(e)?Mh(e)||e.proxy:U0(e.parent):null,ia=Pt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>Wa(e.props),$attrs:e=>Wa(e.attrs),$slots:e=>Wa(e.slots),$refs:e=>Wa(e.refs),$parent:e=>U0(e.parent),$root:e=>U0(e.root),$emit:e=>e.emit,$options:e=>Ov(e),$forceUpdate:e=>e.f||(e.f=()=>lu(e.update)),$nextTick:e=>e.n||(e.n=uo.bind(e.proxy)),$watch:e=>$8.bind(e)}),Tv=e=>e==="_"||e==="$",Lc=(e,t)=>e!==$t&&!e.__isScriptSetup&&wt(e,t),Pf={get({_:e},t){const{ctx:r,setupState:i,data:a,props:n,accessCache:u,type:c,appContext:d}=e;if(t==="__isVue")return!0;let m;if(t[0]!=="$"){const C=u[t];if(C!==void 0)switch(C){case 1:return i[t];case 2:return a[t];case 4:return r[t];case 3:return n[t]}else{if(Lc(i,t))return u[t]=1,i[t];if(a!==$t&&wt(a,t))return u[t]=2,a[t];if((m=e.propsOptions[0])&&wt(m,t))return u[t]=3,n[t];if(r!==$t&&wt(r,t))return u[t]=4,r[t];H0&&(u[t]=0)}}const M=ia[t];let S,R;if(M)return t==="$attrs"?(Tr(e,"get",t),Pl()):t==="$slots"&&Tr(e,"get",t),M(e);if((S=c.__cssModules)&&(S=S[t]))return S;if(r!==$t&&wt(r,t))return u[t]=4,r[t];if(R=d.config.globalProperties,wt(R,t))return R[t];tr&&(!Vt(t)||t.indexOf("__v")!==0)&&(a!==$t&&Tv(t[0])&&wt(a,t)?Ue(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===tr&&Ue(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,r){const{data:i,setupState:a,ctx:n}=e;return Lc(a,t)?(a[t]=r,!0):a.__isScriptSetup&&wt(a,t)?(Ue(`Cannot mutate <script setup> binding "${t}" from Options API.`),!1):i!==$t&&wt(i,t)?(i[t]=r,!0):wt(e.props,t)?(Ue(`Attempting to mutate prop "${t}". Props are readonly.`),!1):t[0]==="$"&&t.slice(1)in e?(Ue(`Attempting to mutate public property "${t}". Properties starting with $ are reserved and readonly.`),!1):(t in e.appContext.config.globalProperties?Object.defineProperty(n,t,{enumerable:!0,configurable:!0,value:r}):n[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:i,appContext:a,propsOptions:n}},u){let c;return!!r[u]||e!==$t&&wt(e,u)||Lc(t,u)||(c=n[0])&&wt(c,u)||wt(i,u)||wt(ia,u)||wt(a.config.globalProperties,u)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:wt(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};Pf.ownKeys=e=>(Ue("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead."),Reflect.ownKeys(e));const Y8=Pt({},Pf,{get(e,t){if(t!==Symbol.unscopables)return Pf.get(e,t,e)},has(e,t){const r=t[0]!=="_"&&!tE(t);return!r&&Pf.has(e,t)&&Ue(`Property ${JSON.stringify(t)} should not start with _ which is a reserved prefix for Vue internals.`),r}});function Z8(e){const t={};return Object.defineProperty(t,"_",{configurable:!0,enumerable:!1,get:()=>e}),Object.keys(ia).forEach(r=>{Object.defineProperty(t,r,{configurable:!0,enumerable:!1,get:()=>ia[r](e),set:qr})}),t}function X8(e){const{ctx:t,propsOptions:[r]}=e;r&&Object.keys(r).forEach(i=>{Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>e.props[i],set:qr})})}function J8(e){const{ctx:t,setupState:r}=e;Object.keys(lt(r)).forEach(i=>{if(!r.__isScriptSetup){if(Tv(i[0])){Ue(`setup() return property ${JSON.stringify(i)} should not start with "$" or "_" which are reserved prefixes for Vue internals.`);return}Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r[i],set:qr})}})}const wa=e=>Ue(`${e}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`);function Q8(){return wa("defineProps"),null}function e5(){return wa("defineEmits"),null}function t5(e){wa("defineExpose")}function r5(e){wa("defineOptions")}function i5(){return wa("defineSlots"),null}function n5(){wa("defineModel")}function o5(e,t){return wa("withDefaults"),null}function a5(){return U2().slots}function s5(){return U2().attrs}function f5(e,t,r){const i=Fi();if(!i)return Ue("useModel() called without active instance."),mr();if(!i.propsOptions[0][t])return Ue(`useModel() called with prop "${t}" which is not declared.`),mr();if(r&&r.local){const a=mr(e[t]);return lr(()=>e[t],n=>a.value=n),lr(a,n=>{n!==e[t]&&i.emit(`update:${t}`,n)}),a}else return{__v_isRef:!0,get value(){return e[t]},set value(a){i.emit(`update:${t}`,a)}}}function U2(){const e=Fi();return e||Ue("useContext() called without active instance."),e.setupContext||(e.setupContext=l_(e))}function Yf(e){return ze(e)?e.reduce((t,r)=>(t[r]=null,t),{}):e}function u5(e,t){const r=Yf(e);for(const i in t){if(i.startsWith("__skip"))continue;let a=r[i];a?ze(a)||Qe(a)?a=r[i]={type:a,default:t[i]}:a.default=t[i]:a===null?a=r[i]={default:t[i]}:Ue(`props default key "${i}" has no corresponding declaration.`),a&&t[`__skip_${i}`]&&(a.skipFactory=!0)}return r}function l5(e,t){return!e||!t?e||t:ze(e)&&ze(t)?e.concat(t):Pt({},Yf(e),Yf(t))}function h5(e,t){const r={};for(const i in e)t.includes(i)||Object.defineProperty(r,i,{enumerable:!0,get:()=>e[i]});return r}function c5(e){const t=Fi();t||Ue("withAsyncContext called without active current instance. This is likely a bug.");let r=e();return yo(),oh(r)&&(r=r.catch(i=>{throw Eo(t),i})),[r,()=>Eo(t)]}function d5(){const e=Object.create(null);return(t,r)=>{e[r]?Ue(`${t} property "${r}" is already defined in ${e[r]}.`):e[r]=t}}let H0=!0;function p5(e){const t=Ov(e),r=e.proxy,i=e.ctx;H0=!1,t.beforeCreate&&Sm(t.beforeCreate,e,"bc");const{data:a,computed:n,methods:u,watch:c,provide:d,inject:m,created:M,beforeMount:S,mounted:R,beforeUpdate:C,updated:P,activated:k,deactivated:L,beforeDestroy:I,beforeUnmount:B,destroyed:H,unmounted:F,render:W,renderTracked:Y,renderTriggered:ie,errorCaptured:J,serverPrefetch:V,expose:oe,inheritAttrs:_,components:o,directives:f,filters:l}=t,h=d5();{const[w]=e.propsOptions;if(w)for(const x in w)h("Props",x)}if(m&&v5(m,i,h),u)for(const w in u){const x=u[w];Qe(x)?(Object.defineProperty(i,w,{value:x.bind(r),configurable:!0,enumerable:!0,writable:!0}),h("Methods",w)):Ue(`Method "${w}" has type "${typeof x}" in the component definition. Did you reference the function correctly?`)}if(a){Qe(a)||Ue("The data option must be a function. Plain object usage is no longer supported.");const w=a.call(r,r);if(oh(w)&&Ue("data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>."),!Rt(w))Ue("data() should return an object.");else{e.data=No(w);for(const x in w)h("Data",x),Tv(x[0])||Object.defineProperty(i,x,{configurable:!0,enumerable:!0,get:()=>w[x],set:qr})}}if(H0=!0,n)for(const w in n){const x=n[w],g=Qe(x)?x.bind(r,r):Qe(x.get)?x.get.bind(r,r):qr;g===qr&&Ue(`Computed property "${w}" has no getter.`);const s=!Qe(x)&&Qe(x.set)?x.set.bind(r):()=>{Ue(`Write operation failed: computed property "${w}" is readonly.`)},v=Qt({get:g,set:s});Object.defineProperty(i,w,{enumerable:!0,configurable:!0,get:()=>v.value,set:T=>v.value=T}),h("Computed",w)}if(c)for(const w in c)H2(c[w],i,r,w);if(d){const w=Qe(d)?d.call(r):d;Reflect.ownKeys(w).forEach(x=>{Cf(x,w[x])})}M&&Sm(M,e,"c");function p(w,x){ze(x)?x.forEach(g=>w(g.bind(r))):x&&w(x.bind(r))}if(p(L2,S),p(Ns,R),p(Rv,C),p(yh,P),p(P2,k),p(C2,L),p(D2,J),p($2,Y),p(k2,ie),p(bh,B),p(wh,F),p(N2,V),ze(oe))if(oe.length){const w=e.exposed||(e.exposed={});oe.forEach(x=>{Object.defineProperty(w,x,{get:()=>r[x],set:g=>r[x]=g})})}else e.exposed||(e.exposed={});W&&e.render===qr&&(e.render=W),_!=null&&(e.inheritAttrs=_),o&&(e.components=o),f&&(e.directives=f)}function v5(e,t,r=qr){ze(e)&&(e=q0(e));for(const i in e){const a=e[i];let n;Rt(a)?"default"in a?n=tn(a.from||i,a.default,!0):n=tn(a.from||i):n=tn(a),Xt(n)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>n.value,set:u=>n.value=u}):t[i]=n,r("Inject",i)}}function Sm(e,t,r){Zr(ze(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,r)}function H2(e,t,r,i){const a=i.includes(".")?A2(r,i):()=>r[i];if(Vt(e)){const n=t[e];Qe(n)?lr(a,n):Ue(`Invalid watch handler specified by key "${e}"`,n)}else if(Qe(e))lr(a,e.bind(r));else if(Rt(e))if(ze(e))e.forEach(n=>H2(n,t,r,i));else{const n=Qe(e.handler)?e.handler.bind(r):t[e.handler];Qe(n)?lr(a,n,e):Ue(`Invalid watch handler specified by key "${e.handler}"`,n)}else Ue(`Invalid watch option: "${i}"`,e)}function Ov(e){const t=e.type,{mixins:r,extends:i}=t,{mixins:a,optionsCache:n,config:{optionMergeStrategies:u}}=e.appContext,c=n.get(t);let d;return c?d=c:!a.length&&!r&&!i?d=t:(d={},a.length&&a.forEach(m=>Bl(d,m,u,!0)),Bl(d,t,u)),Rt(t)&&n.set(t,d),d}function Bl(e,t,r,i=!1){const{mixins:a,extends:n}=t;n&&Bl(e,n,r,!0),a&&a.forEach(u=>Bl(e,u,r,!0));for(const u in t)if(i&&u==="expose")Ue('"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.');else{const c=g5[u]||r&&r[u];e[u]=c?c(e[u],t[u]):t[u]}return e}const g5={data:xm,props:Em,emits:Em,methods:Mf,computed:Mf,beforeCreate:Cr,created:Cr,beforeMount:Cr,mounted:Cr,beforeUpdate:Cr,updated:Cr,beforeDestroy:Cr,beforeUnmount:Cr,destroyed:Cr,unmounted:Cr,activated:Cr,deactivated:Cr,errorCaptured:Cr,serverPrefetch:Cr,components:Mf,directives:Mf,watch:y5,provide:xm,inject:m5};function xm(e,t){return t?e?function(){return Pt(Qe(e)?e.call(this,this):e,Qe(t)?t.call(this,this):t)}:t:e}function m5(e,t){return Mf(q0(e),q0(t))}function q0(e){if(ze(e)){const t={};for(let r=0;r<e.length;r++)t[e[r]]=e[r];return t}return e}function Cr(e,t){return e?[...new Set([].concat(e,t))]:t}function Mf(e,t){return e?Pt(Object.create(null),e,t):t}function Em(e,t){return e?ze(e)&&ze(t)?[...new Set([...e,...t])]:Pt(Object.create(null),Yf(e),Yf(t??{})):t}function y5(e,t){if(!e)return t;if(!t)return e;const r=Pt(Object.create(null),e);for(const i in t)r[i]=Cr(e[i],t[i]);return r}function q2(){return{app:null,config:{isNativeTag:Hw,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let b5=0;function w5(e,t){return function(i,a=null){Qe(i)||(i=Pt({},i)),a!=null&&!Rt(a)&&(Ue("root props passed to app.mount() must be an object."),a=null);const n=q2();Object.defineProperty(n.config,"unwrapInjectedRef",{get(){return!0},set(){Ue("app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.")}});const u=new Set;let c=!1;const d=n.app={_uid:b5++,_component:i,_props:a,_container:null,_context:n,_instance:null,version:J0,get config(){return n.config},set config(m){Ue("app.config cannot be replaced. Modify individual options instead.")},use(m,...M){return u.has(m)?Ue("Plugin has already been applied to target app."):m&&Qe(m.install)?(u.add(m),m.install(d,...M)):Qe(m)?(u.add(m),m(d,...M)):Ue('A plugin must either be a function or an object with an "install" function.'),d},mixin(m){return n.mixins.includes(m)?Ue("Mixin has already been applied to target app"+(m.name?`: ${m.name}`:"")):n.mixins.push(m),d},component(m,M){return Y0(m,n.config),M?(n.components[m]&&Ue(`Component "${m}" has already been registered in target app.`),n.components[m]=M,d):n.components[m]},directive(m,M){return T2(m),M?(n.directives[m]&&Ue(`Directive "${m}" has already been registered in target app.`),n.directives[m]=M,d):n.directives[m]},mount(m,M,S){if(c)Ue("App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. `const createMyApp = () => createApp(App)`");else{m.__vue_app__&&Ue("There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling `app.unmount()` first.");const R=Zt(i,a);return R.appContext=n,n.reload=()=>{e(di(R),m,S)},M&&t?t(R,m):e(R,m,S),c=!0,d._container=m,m.__vue_app__=d,d._instance=R.component,g8(d,J0),Mh(R.component)||R.component.proxy}},unmount(){c?(e(null,d._container),d._instance=null,m8(d),delete d._container.__vue_app__):Ue("Cannot unmount an app that is not mounted.")},provide(m,M){return m in n.provides&&Ue(`App already provides property with key "${String(m)}". It will be overwritten with the new value.`),n.provides[m]=M,d},runWithContext(m){Zf=d;try{return m()}finally{Zf=null}}};return d}}let Zf=null;function Cf(e,t){if(!er)Ue("provide() can only be used inside setup().");else{let r=er.provides;const i=er.parent&&er.parent.provides;i===r&&(r=er.provides=Object.create(i)),r[e]=t}}function tn(e,t,r=!1){const i=er||tr;if(i||Zf){const a=i?i.parent==null?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:Zf._context.provides;if(a&&e in a)return a[e];if(arguments.length>1)return r&&Qe(t)?t.call(i&&i.proxy):t;Ue(`injection "${String(e)}" not found.`)}else Ue("inject() can only be used inside setup() or functional components.")}function _5(){return!!(er||tr||Zf)}function M5(e,t,r,i=!1){const a={},n={};xl(n,_h,1),e.propsDefaults=Object.create(null),W2(e,t,a,n);for(const u in e.propsOptions[0])u in a||(a[u]=void 0);V2(t||{},a,e),r?e.props=i?a:u2(a):e.type.props?e.props=a:e.props=n,e.attrs=n}function S5(e){for(;e;){if(e.type.__hmrId)return!0;e=e.parent}}function x5(e,t,r,i){const{props:a,attrs:n,vnode:{patchFlag:u}}=e,c=lt(a),[d]=e.propsOptions;let m=!1;if(!S5(e)&&(i||u>0)&&!(u&16)){if(u&8){const M=e.vnode.dynamicProps;for(let S=0;S<M.length;S++){let R=M[S];if(ph(e.emitsOptions,R))continue;const C=t[R];if(d)if(wt(n,R))C!==n[R]&&(n[R]=C,m=!0);else{const P=Kr(R);a[P]=W0(d,c,P,C,e,!1)}else C!==n[R]&&(n[R]=C,m=!0)}}}else{W2(e,t,a,n)&&(m=!0);let M;for(const S in c)(!t||!wt(t,S)&&((M=Hr(S))===S||!wt(t,M)))&&(d?r&&(r[S]!==void 0||r[M]!==void 0)&&(a[S]=W0(d,c,S,void 0,e,!0)):delete a[S]);if(n!==c)for(const S in n)(!t||!wt(t,S))&&(delete n[S],m=!0)}m&&an(e,"set","$attrs"),V2(t||{},a,e)}function W2(e,t,r,i){const[a,n]=e.propsOptions;let u=!1,c;if(t)for(let d in t){if(Af(d))continue;const m=t[d];let M;a&&wt(a,M=Kr(d))?!n||!n.includes(M)?r[M]=m:(c||(c={}))[M]=m:ph(e.emitsOptions,d)||(!(d in i)||m!==i[d])&&(i[d]=m,u=!0)}if(n){const d=lt(r),m=c||$t;for(let M=0;M<n.length;M++){const S=n[M];r[S]=W0(a,d,S,m[S],e,!wt(m,S))}}return u}function W0(e,t,r,i,a,n){const u=e[r];if(u!=null){const c=wt(u,"default");if(c&&i===void 0){const d=u.default;if(u.type!==Function&&!u.skipFactory&&Qe(d)){const{propsDefaults:m}=a;r in m?i=m[r]:(Eo(a),i=m[r]=d.call(null,t),yo())}else i=d}u[0]&&(n&&!c?i=!1:u[1]&&(i===""||i===Hr(r))&&(i=!0))}return i}function K2(e,t,r=!1){const i=t.propsCache,a=i.get(e);if(a)return a;const n=e.props,u={},c=[];let d=!1;if(!Qe(e)){const M=S=>{d=!0;const[R,C]=K2(S,t,!0);Pt(u,R),C&&c.push(...C)};!r&&t.mixins.length&&t.mixins.forEach(M),e.extends&&M(e.extends),e.mixins&&e.mixins.forEach(M)}if(!n&&!d)return Rt(e)&&i.set(e,Ga),Ga;if(ze(n))for(let M=0;M<n.length;M++){Vt(n[M])||Ue("props must be strings when using array syntax.",n[M]);const S=Kr(n[M]);Rm(S)&&(u[S]=$t)}else if(n){Rt(n)||Ue("invalid props options",n);for(const M in n){const S=Kr(M);if(Rm(S)){const R=n[M],C=u[S]=ze(R)||Qe(R)?{type:R}:Pt({},R);if(C){const P=Tm(Boolean,C.type),k=Tm(String,C.type);C[0]=P>-1,C[1]=k<0||P<k,(P>-1||wt(C,"default"))&&c.push(S)}}}}const m=[u,c];return Rt(e)&&i.set(e,m),m}function Rm(e){return e[0]!=="$"?!0:(Ue(`Invalid prop name: "${e}" is a reserved property.`),!1)}function K0(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Am(e,t){return K0(e)===K0(t)}function Tm(e,t){return ze(t)?t.findIndex(r=>Am(r,e)):Qe(t)&&Am(t,e)?0:-1}function V2(e,t,r){const i=lt(t),a=r.propsOptions[0];for(const n in a){let u=a[n];u!=null&&E5(n,i[n],u,!wt(e,n)&&!wt(e,Hr(n)))}}function E5(e,t,r,i){const{type:a,required:n,validator:u,skipCheck:c}=r;if(n&&i){Ue('Missing required prop: "'+e+'"');return}if(!(t==null&&!n)){if(a!=null&&a!==!0&&!c){let d=!1;const m=ze(a)?a:[a],M=[];for(let S=0;S<m.length&&!d;S++){const{valid:R,expectedType:C}=A5(t,m[S]);M.push(C||""),d=R}if(!d){Ue(T5(e,t,M));return}}u&&!u(t)&&Ue('Invalid prop: custom validator check failed for prop "'+e+'".')}}const R5=Kn("String,Number,Boolean,Function,Symbol,BigInt");function A5(e,t){let r;const i=K0(t);if(R5(i)){const a=typeof e;r=a===i.toLowerCase(),!r&&a==="object"&&(r=e instanceof t)}else i==="Object"?r=Rt(e):i==="Array"?r=ze(e):i==="null"?r=e===null:r=e instanceof t;return{valid:r,expectedType:i}}function T5(e,t,r){let i=`Invalid prop: type check failed for prop "${e}". Expected ${r.map(_o).join(" | ")}`;const a=r[0],n=nv(t),u=Om(t,a),c=Om(t,n);return r.length===1&&Im(a)&&!O5(a,n)&&(i+=` with value ${u}`),i+=`, got ${n} `,Im(n)&&(i+=`with value ${c}.`),i}function Om(e,t){return t==="String"?`"${e}"`:t==="Number"?`${Number(e)}`:`${e}`}function Im(e){return["string","number","boolean"].some(r=>e.toLowerCase()===r)}function O5(...e){return e.some(t=>t.toLowerCase()==="boolean")}const z2=e=>e[0]==="_"||e==="$stable",Iv=e=>ze(e)?e.map(Ur):[Ur(e)],I5=(e,t,r)=>{if(t._n)return t;const i=wv((...a)=>(er&&Ue(`Slot "${e}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`),Iv(t(...a))),r);return i._c=!1,i},G2=(e,t,r)=>{const i=e._ctx;for(const a in e){if(z2(a))continue;const n=e[a];if(Qe(n))t[a]=I5(a,n,i);else if(n!=null){Ue(`Non-function value encountered for slot "${a}". Prefer function slots for better performance.`);const u=Iv(n);t[a]=()=>u}}},Y2=(e,t)=>{Ls(e.vnode)||Ue("Non-function value encountered for default slot. Prefer function slots for better performance.");const r=Iv(t);e.slots.default=()=>r},P5=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=lt(t),xl(t,"_",r)):G2(t,e.slots={})}else e.slots={},t&&Y2(e,t);xl(e.slots,_h,1)},C5=(e,t,r)=>{const{vnode:i,slots:a}=e;let n=!0,u=$t;if(i.shapeFlag&32){const c=t._;c?go?(Pt(a,t),an(e,"set","$slots")):r&&c===1?n=!1:(Pt(a,t),!r&&c===1&&delete a._):(n=!t.$stable,G2(t,a)),u=t}else t&&(Y2(e,t),u={default:1});if(n)for(const c in a)!z2(c)&&!(c in u)&&delete a[c]};function Ll(e,t,r,i,a=!1){if(ze(e)){e.forEach((R,C)=>Ll(R,t&&(ze(t)?t[C]:t),r,i,a));return}if(ra(i)&&!a)return;const n=i.shapeFlag&4?Mh(i.component)||i.component.proxy:i.el,u=a?null:n,{i:c,r:d}=e;if(!c){Ue("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const m=t&&t.r,M=c.refs===$t?c.refs={}:c.refs,S=c.setupState;if(m!=null&&m!==d&&(Vt(m)?(M[m]=null,wt(S,m)&&(S[m]=null)):Xt(m)&&(m.value=null)),Qe(d))en(d,c,12,[u,M]);else{const R=Vt(d),C=Xt(d);if(R||C){const P=()=>{if(e.f){const k=R?wt(S,d)?S[d]:M[d]:d.value;a?ze(k)&&iv(k,n):ze(k)?k.includes(n)||k.push(n):R?(M[d]=[n],wt(S,d)&&(S[d]=M[d])):(d.value=[n],e.k&&(M[e.k]=d.value))}else R?(M[d]=u,wt(S,d)&&(S[d]=u)):C?(d.value=u,e.k&&(M[e.k]=u)):Ue("Invalid template ref type:",d,`(${typeof d})`)};u?(P.id=-1,gr(P,r)):P()}else Ue("Invalid template ref type:",d,`(${typeof d})`)}}let Jn=!1;const Wu=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Gs=e=>e.nodeType===8;function B5(e){const{mt:t,p:r,o:{patchProp:i,createText:a,nextSibling:n,parentNode:u,remove:c,insert:d,createComment:m}}=e,M=(I,B)=>{if(!B.hasChildNodes()){Ue("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),r(null,I,B),Il(),B._vnode=I;return}Jn=!1,S(B.firstChild,I,null,null,null),Il(),B._vnode=I,Jn&&console.error("Hydration completed but contains mismatches.")},S=(I,B,H,F,W,Y=!1)=>{const ie=Gs(I)&&I.data==="[",J=()=>k(I,B,H,F,W,ie),{type:V,ref:oe,shapeFlag:_,patchFlag:o}=B;let f=I.nodeType;B.el=I,o===-2&&(Y=!1,B.dynamicChildren=null);let l=null;switch(V){case xo:f!==3?B.children===""?(d(B.el=a(""),u(I),I),l=I):l=J():(I.data!==B.children&&(Jn=!0,Ue(`Hydration text mismatch:
-- Client: ${JSON.stringify(I.data)}
-- Server: ${JSON.stringify(B.children)}`),I.data=B.children),l=n(I));break;case rr:f!==8||ie?l=J():l=n(I);break;case mo:if(ie&&(I=n(I),f=I.nodeType),f===1||f===3){l=I;const h=!B.children.length;for(let p=0;p<B.staticCount;p++)h&&(B.children+=l.nodeType===1?l.outerHTML:l.data),p===B.staticCount-1&&(B.anchor=l),l=n(l);return ie?n(l):l}else J();break;case Lt:ie?l=P(I,B,H,F,W,Y):l=J();break;default:if(_&1)f!==1||B.type.toLowerCase()!==I.tagName.toLowerCase()?l=J():l=R(I,B,H,F,W,Y);else if(_&6){B.slotScopeIds=W;const h=u(I);if(t(B,h,null,H,F,Wu(h),Y),l=ie?L(I):n(I),l&&Gs(l)&&l.data==="teleport end"&&(l=n(l)),ra(B)){let p;ie?(p=Zt(Lt),p.anchor=l?l.previousSibling:h.lastChild):p=I.nodeType===3?Cv(""):Zt("div"),p.el=I,B.component.subTree=p}}else _&64?f!==8?l=J():l=B.type.hydrate(I,B,H,F,W,Y,e,C):_&128?l=B.type.hydrate(I,B,H,F,Wu(u(I)),W,Y,e,S):Ue("Invalid HostVNode type:",V,`(${typeof V})`)}return oe!=null&&Ll(oe,null,F,B),l},R=(I,B,H,F,W,Y)=>{Y=Y||!!B.dynamicChildren;const{type:ie,props:J,patchFlag:V,shapeFlag:oe,dirs:_}=B,o=ie==="input"&&_||ie==="option";{if(_&&Zi(B,null,H,"created"),J)if(o||!Y||V&48)for(const l in J)(o&&l.endsWith("value")||Ps(l)&&!Af(l))&&i(I,l,null,J[l],!1,void 0,H);else J.onClick&&i(I,"onClick",null,J.onClick,!1,void 0,H);let f;if((f=J&&J.onVnodeBeforeMount)&&Dr(f,H,B),_&&Zi(B,null,H,"beforeMount"),((f=J&&J.onVnodeMounted)||_)&&x2(()=>{f&&Dr(f,H,B),_&&Zi(B,null,H,"mounted")},F),oe&16&&!(J&&(J.innerHTML||J.textContent))){let l=C(I.firstChild,B,I,H,F,W,Y),h=!1;for(;l;){Jn=!0,h||(Ue(`Hydration children mismatch in <${B.type}>: server rendered element contains more child nodes than client vdom.`),h=!0);const p=l;l=l.nextSibling,c(p)}}else oe&8&&I.textContent!==B.children&&(Jn=!0,Ue(`Hydration text content mismatch in <${B.type}>:
-- Client: ${I.textContent}
-- Server: ${B.children}`),I.textContent=B.children)}return I.nextSibling},C=(I,B,H,F,W,Y,ie)=>{ie=ie||!!B.dynamicChildren;const J=B.children,V=J.length;let oe=!1;for(let _=0;_<V;_++){const o=ie?J[_]:J[_]=Ur(J[_]);if(I)I=S(I,o,F,W,Y,ie);else{if(o.type===xo&&!o.children)continue;Jn=!0,oe||(Ue(`Hydration children mismatch in <${H.tagName.toLowerCase()}>: server rendered element contains fewer child nodes than client vdom.`),oe=!0),r(null,o,H,null,F,W,Wu(H),Y)}}return I},P=(I,B,H,F,W,Y)=>{const{slotScopeIds:ie}=B;ie&&(W=W?W.concat(ie):ie);const J=u(I),V=C(n(I),B,J,H,F,W,Y);return V&&Gs(V)&&V.data==="]"?n(B.anchor=V):(Jn=!0,d(B.anchor=m("]"),J,V),V)},k=(I,B,H,F,W,Y)=>{if(Jn=!0,Ue(`Hydration node mismatch:
-- Client vnode:`,B.type,`
-- Server rendered DOM:`,I,I.nodeType===3?"(text)":Gs(I)&&I.data==="["?"(start of fragment)":""),B.el=null,Y){const V=L(I);for(;;){const oe=n(I);if(oe&&oe!==V)c(oe);else break}}const ie=n(I),J=u(I);return c(I),r(null,B,J,ie,H,F,Wu(J),W),ie},L=I=>{let B=0;for(;I;)if(I=n(I),I&&Gs(I)&&(I.data==="["&&B++,I.data==="]")){if(B===0)return n(I);B--}return I};return[M,S]}let Ys,fo;function bn(e,t){e.appContext.config.performance&&Nl()&&fo.mark(`vue-${t}-${e.uid}`),w8(e,t,Nl()?fo.now():Date.now())}function wn(e,t){if(e.appContext.config.performance&&Nl()){const r=`vue-${t}-${e.uid}`,i=r+":end";fo.mark(i),fo.measure(`<${Sh(e,e.type)}> ${t}`,r,i),fo.clearMarks(r),fo.clearMarks(i)}_8(e,t,Nl()?fo.now():Date.now())}function Nl(){return Ys!==void 0||(typeof window<"u"&&window.performance?(Ys=!0,fo=window.performance):Ys=!1),Ys}function L5(){const e=[];if(e.length){const t=e.length>1;console.warn(`Feature flag${t?"s":""} ${e.join(", ")} ${t?"are":"is"} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.
-
-For more details, see https://link.vuejs.org/feature-flags.`)}}const gr=x2;function Z2(e){return J2(e)}function X2(e){return J2(e,B5)}function J2(e,t){L5();const r=Al();r.__VUE__=!0,yv(r.__VUE_DEVTOOLS_GLOBAL_HOOK__,r);const{insert:i,remove:a,patchProp:n,createElement:u,createText:c,createComment:d,setText:m,setElementText:M,parentNode:S,nextSibling:R,setScopeId:C=qr,insertStaticContent:P}=e,k=(O,q,X,D=null,N=null,j=null,z=!1,se=null,te=go?!1:!!q.dynamicChildren)=>{if(O===q)return;O&&!Li(O,q)&&(D=U(O),$(O,N,j,!0),O=null),q.patchFlag===-2&&(te=!1,q.dynamicChildren=null);const{type:ne,ref:Ee,shapeFlag:Q}=q;switch(ne){case xo:L(O,q,X,D);break;case rr:I(O,q,X,D);break;case mo:O==null?B(q,X,D,z):H(O,q,X,z);break;case Lt:f(O,q,X,D,N,j,z,se,te);break;default:Q&1?Y(O,q,X,D,N,j,z,se,te):Q&6?l(O,q,X,D,N,j,z,se,te):Q&64||Q&128?ne.process(O,q,X,D,N,j,z,se,te,Z):Ue("Invalid VNode type:",ne,`(${typeof ne})`)}Ee!=null&&N&&Ll(Ee,O&&O.ref,j,q||O,!q)},L=(O,q,X,D)=>{if(O==null)i(q.el=c(q.children),X,D);else{const N=q.el=O.el;q.children!==O.children&&m(N,q.children)}},I=(O,q,X,D)=>{O==null?i(q.el=d(q.children||""),X,D):q.el=O.el},B=(O,q,X,D)=>{[O.el,O.anchor]=P(O.children,q,X,D,O.el,O.anchor)},H=(O,q,X,D)=>{if(q.children!==O.children){const N=R(O.anchor);W(O),[q.el,q.anchor]=P(q.children,X,N,D)}else q.el=O.el,q.anchor=O.anchor},F=({el:O,anchor:q},X,D)=>{let N;for(;O&&O!==q;)N=R(O),i(O,X,D),O=N;i(q,X,D)},W=({el:O,anchor:q})=>{let X;for(;O&&O!==q;)X=R(O),a(O),O=X;a(q)},Y=(O,q,X,D,N,j,z,se,te)=>{z=z||q.type==="svg",O==null?ie(q,X,D,N,j,z,se,te):oe(O,q,N,j,z,se,te)},ie=(O,q,X,D,N,j,z,se)=>{let te,ne;const{type:Ee,props:Q,shapeFlag:ue,transition:le,dirs:ce}=O;if(te=O.el=u(O.type,j,Q&&Q.is,Q),ue&8?M(te,O.children):ue&16&&V(O.children,te,null,D,N,j&&Ee!=="foreignObject",z,se),ce&&Zi(O,null,D,"created"),J(te,O,O.scopeId,z,D),Q){for(const de in Q)de!=="value"&&!Af(de)&&n(te,de,null,Q[de],j,O.children,D,N,E);"value"in Q&&n(te,"value",null,Q.value),(ne=Q.onVnodeBeforeMount)&&Dr(ne,D,O)}Object.defineProperty(te,"__vnode",{value:O,enumerable:!1}),Object.defineProperty(te,"__vueParentComponent",{value:D,enumerable:!1}),ce&&Zi(O,null,D,"beforeMount");const pe=(!N||N&&!N.pendingBranch)&&le&&!le.persisted;pe&&le.beforeEnter(te),i(te,q,X),((ne=Q&&Q.onVnodeMounted)||pe||ce)&&gr(()=>{ne&&Dr(ne,D,O),pe&&le.enter(te),ce&&Zi(O,null,D,"mounted")},N)},J=(O,q,X,D,N)=>{if(X&&C(O,X),D)for(let j=0;j<D.length;j++)C(O,D[j]);if(N){let j=N.subTree;if(j.patchFlag>0&&j.patchFlag&2048&&(j=_v(j.children)||j),q===j){const z=N.vnode;J(O,z,z.scopeId,z.slotScopeIds,N.parent)}}},V=(O,q,X,D,N,j,z,se,te=0)=>{for(let ne=te;ne<O.length;ne++){const Ee=O[ne]=se?no(O[ne]):Ur(O[ne]);k(null,Ee,q,X,D,N,j,z,se)}},oe=(O,q,X,D,N,j,z)=>{const se=q.el=O.el;let{patchFlag:te,dynamicChildren:ne,dirs:Ee}=q;te|=O.patchFlag&16;const Q=O.props||$t,ue=q.props||$t;let le;X&&Fo(X,!1),(le=ue.onVnodeBeforeUpdate)&&Dr(le,X,q,O),Ee&&Zi(q,O,X,"beforeUpdate"),X&&Fo(X,!0),go&&(te=0,z=!1,ne=null);const ce=N&&q.type!=="foreignObject";if(ne?(_(O.dynamicChildren,ne,se,X,D,ce,j),kl(O,q)):z||g(O,q,se,null,X,D,ce,j,!1),te>0){if(te&16)o(se,q,Q,ue,X,D,N);else if(te&2&&Q.class!==ue.class&&n(se,"class",null,ue.class,N),te&4&&n(se,"style",Q.style,ue.style,N),te&8){const pe=q.dynamicProps;for(let de=0;de<pe.length;de++){const ae=pe[de],fe=Q[ae],Te=ue[ae];(Te!==fe||ae==="value")&&n(se,ae,fe,Te,N,O.children,X,D,E)}}te&1&&O.children!==q.children&&M(se,q.children)}else!z&&ne==null&&o(se,q,Q,ue,X,D,N);((le=ue.onVnodeUpdated)||Ee)&&gr(()=>{le&&Dr(le,X,q,O),Ee&&Zi(q,O,X,"updated")},D)},_=(O,q,X,D,N,j,z)=>{for(let se=0;se<q.length;se++){const te=O[se],ne=q[se],Ee=te.el&&(te.type===Lt||!Li(te,ne)||te.shapeFlag&70)?S(te.el):X;k(te,ne,Ee,null,D,N,j,z,!0)}},o=(O,q,X,D,N,j,z)=>{if(X!==D){if(X!==$t)for(const se in X)!Af(se)&&!(se in D)&&n(O,se,X[se],null,z,q.children,N,j,E);for(const se in D){if(Af(se))continue;const te=D[se],ne=X[se];te!==ne&&se!=="value"&&n(O,se,ne,te,z,q.children,N,j,E)}"value"in D&&n(O,"value",X.value,D.value)}},f=(O,q,X,D,N,j,z,se,te)=>{const ne=q.el=O?O.el:c(""),Ee=q.anchor=O?O.anchor:c("");let{patchFlag:Q,dynamicChildren:ue,slotScopeIds:le}=q;(go||Q&2048)&&(Q=0,te=!1,ue=null),le&&(se=se?se.concat(le):le),O==null?(i(ne,X,D),i(Ee,X,D),V(q.children,X,Ee,N,j,z,se,te)):Q>0&&Q&64&&ue&&O.dynamicChildren?(_(O.dynamicChildren,ue,X,N,j,z,se),kl(O,q)):g(O,q,X,Ee,N,j,z,se,te)},l=(O,q,X,D,N,j,z,se,te)=>{q.slotScopeIds=se,O==null?q.shapeFlag&512?N.ctx.activate(q,X,D,z,te):h(q,X,D,N,j,z,te):p(O,q,te)},h=(O,q,X,D,N,j,z)=>{const se=O.component=a_(O,D,N);if(se.type.__hmrId&&c8(se),Tf(O),bn(se,"mount"),Ls(O)&&(se.ctx.renderer=Z),bn(se,"init"),f_(se),wn(se,"init"),se.asyncDep){if(N&&N.registerDep(se,w),!O.el){const te=se.subTree=Zt(rr);I(null,te,q,X)}return}w(se,O,q,X,N,j,z),Of(),wn(se,"mount")},p=(O,q,X)=>{const D=q.component=O.component;if(T8(O,q,X))if(D.asyncDep&&!D.asyncResolved){Tf(q),x(D,q,X),Of();return}else D.next=q,l8(D.update),D.update();else q.el=O.el,D.vnode=q},w=(O,q,X,D,N,j,z)=>{const se=()=>{if(O.isMounted){let{next:Ee,bu:Q,u:ue,parent:le,vnode:ce}=O,pe=Ee,de;Tf(Ee||O.vnode),Fo(O,!1),Ee?(Ee.el=ce.el,x(O,Ee,z)):Ee=ce,Q&&so(Q),(de=Ee.props&&Ee.props.onVnodeBeforeUpdate)&&Dr(de,le,Ee,ce),Fo(O,!0),bn(O,"render");const ae=il(O);wn(O,"render");const fe=O.subTree;O.subTree=ae,bn(O,"patch"),k(fe,ae,S(fe.el),U(fe),O,N,j),wn(O,"patch"),Ee.el=ae.el,pe===null&&Mv(O,ae.el),ue&&gr(ue,N),(de=Ee.props&&Ee.props.onVnodeUpdated)&&gr(()=>Dr(de,le,Ee,ce),N),y2(O),Of()}else{let Ee;const{el:Q,props:ue}=q,{bm:le,m:ce,parent:pe}=O,de=ra(q);if(Fo(O,!1),le&&so(le),!de&&(Ee=ue&&ue.onVnodeBeforeMount)&&Dr(Ee,pe,q),Fo(O,!0),Q&&y){const ae=()=>{bn(O,"render"),O.subTree=il(O),wn(O,"render"),bn(O,"hydrate"),y(Q,O.subTree,O,N,null),wn(O,"hydrate")};de?q.type.__asyncLoader().then(()=>!O.isUnmounted&&ae()):ae()}else{bn(O,"render");const ae=O.subTree=il(O);wn(O,"render"),bn(O,"patch"),k(null,ae,X,D,O,N,j),wn(O,"patch"),q.el=ae.el}if(ce&&gr(ce,N),!de&&(Ee=ue&&ue.onVnodeMounted)){const ae=q;gr(()=>Dr(Ee,pe,ae),N)}(q.shapeFlag&256||pe&&ra(pe.vnode)&&pe.vnode.shapeFlag&256)&&O.a&&gr(O.a,N),O.isMounted=!0,D0(O),q=X=D=null}},te=O.effect=new uu(se,()=>lu(ne),O.scope),ne=O.update=()=>te.run();ne.id=O.uid,Fo(O,!0),te.onTrack=O.rtc?Ee=>so(O.rtc,Ee):void 0,te.onTrigger=O.rtg?Ee=>so(O.rtg,Ee):void 0,ne.ownerInstance=O,ne()},x=(O,q,X)=>{q.component=O;const D=O.vnode.props;O.vnode=q,O.next=null,x5(O,q.props,D,X),C5(O,q.children,X),ma(),vm(),ya()},g=(O,q,X,D,N,j,z,se,te=!1)=>{const ne=O&&O.children,Ee=O?O.shapeFlag:0,Q=q.children,{patchFlag:ue,shapeFlag:le}=q;if(ue>0){if(ue&128){v(ne,Q,X,D,N,j,z,se,te);return}else if(ue&256){s(ne,Q,X,D,N,j,z,se,te);return}}le&8?(Ee&16&&E(ne,N,j),Q!==ne&&M(X,Q)):Ee&16?le&16?v(ne,Q,X,D,N,j,z,se,te):E(ne,N,j,!0):(Ee&8&&M(X,""),le&16&&V(Q,X,D,N,j,z,se,te))},s=(O,q,X,D,N,j,z,se,te)=>{O=O||Ga,q=q||Ga;const ne=O.length,Ee=q.length,Q=Math.min(ne,Ee);let ue;for(ue=0;ue<Q;ue++){const le=q[ue]=te?no(q[ue]):Ur(q[ue]);k(O[ue],le,X,null,N,j,z,se,te)}ne>Ee?E(O,N,j,!0,!1,Q):V(q,X,D,N,j,z,se,te,Q)},v=(O,q,X,D,N,j,z,se,te)=>{let ne=0;const Ee=q.length;let Q=O.length-1,ue=Ee-1;for(;ne<=Q&&ne<=ue;){const le=O[ne],ce=q[ne]=te?no(q[ne]):Ur(q[ne]);if(Li(le,ce))k(le,ce,X,null,N,j,z,se,te);else break;ne++}for(;ne<=Q&&ne<=ue;){const le=O[Q],ce=q[ue]=te?no(q[ue]):Ur(q[ue]);if(Li(le,ce))k(le,ce,X,null,N,j,z,se,te);else break;Q--,ue--}if(ne>Q){if(ne<=ue){const le=ue+1,ce=le<Ee?q[le].el:D;for(;ne<=ue;)k(null,q[ne]=te?no(q[ne]):Ur(q[ne]),X,ce,N,j,z,se,te),ne++}}else if(ne>ue)for(;ne<=Q;)$(O[ne],N,j,!0),ne++;else{const le=ne,ce=ne,pe=new Map;for(ne=ce;ne<=ue;ne++){const be=q[ne]=te?no(q[ne]):Ur(q[ne]);be.key!=null&&(pe.has(be.key)&&Ue("Duplicate keys found during update:",JSON.stringify(be.key),"Make sure keys are unique."),pe.set(be.key,ne))}let de,ae=0;const fe=ue-ce+1;let Te=!1,ve=0;const Me=new Array(fe);for(ne=0;ne<fe;ne++)Me[ne]=0;for(ne=le;ne<=Q;ne++){const be=O[ne];if(ae>=fe){$(be,N,j,!0);continue}let Se;if(be.key!=null)Se=pe.get(be.key);else for(de=ce;de<=ue;de++)if(Me[de-ce]===0&&Li(be,q[de])){Se=de;break}Se===void 0?$(be,N,j,!0):(Me[Se-ce]=ne+1,Se>=ve?ve=Se:Te=!0,k(be,q[Se],X,null,N,j,z,se,te),ae++)}const Ke=Te?N5(Me):Ga;for(de=Ke.length-1,ne=fe-1;ne>=0;ne--){const be=ce+ne,Se=q[be],qe=be+1<Ee?q[be+1].el:D;Me[ne]===0?k(null,Se,X,qe,N,j,z,se,te):Te&&(de<0||ne!==Ke[de]?T(Se,X,qe,2):de--)}}},T=(O,q,X,D,N=null)=>{const{el:j,type:z,transition:se,children:te,shapeFlag:ne}=O;if(ne&6){T(O.component.subTree,q,X,D);return}if(ne&128){O.suspense.move(q,X,D);return}if(ne&64){z.move(O,q,X,Z);return}if(z===Lt){i(j,q,X);for(let Q=0;Q<te.length;Q++)T(te[Q],q,X,D);i(O.anchor,q,X);return}if(z===mo){F(O,q,X);return}if(D!==2&&ne&1&&se)if(D===0)se.beforeEnter(j),i(j,q,X),gr(()=>se.enter(j),N);else{const{leave:Q,delayLeave:ue,afterLeave:le}=se,ce=()=>i(j,q,X),pe=()=>{Q(j,()=>{ce(),le&&le()})};ue?ue(j,ce,pe):pe()}else i(j,q,X)},$=(O,q,X,D=!1,N=!1)=>{const{type:j,props:z,ref:se,children:te,dynamicChildren:ne,shapeFlag:Ee,patchFlag:Q,dirs:ue}=O;if(se!=null&&Ll(se,null,X,O,!0),Ee&256){q.ctx.deactivate(O);return}const le=Ee&1&&ue,ce=!ra(O);let pe;if(ce&&(pe=z&&z.onVnodeBeforeUnmount)&&Dr(pe,q,O),Ee&6)A(O.component,X,D);else{if(Ee&128){O.suspense.unmount(X,D);return}le&&Zi(O,null,q,"beforeUnmount"),Ee&64?O.type.remove(O,q,X,N,Z,D):ne&&(j!==Lt||Q>0&&Q&64)?E(ne,q,X,!1,!0):(j===Lt&&Q&384||!N&&Ee&16)&&E(te,q,X),D&&G(O)}(ce&&(pe=z&&z.onVnodeUnmounted)||le)&&gr(()=>{pe&&Dr(pe,q,O),le&&Zi(O,null,q,"unmounted")},X)},G=O=>{const{type:q,el:X,anchor:D,transition:N}=O;if(q===Lt){O.patchFlag>0&&O.patchFlag&2048&&N&&!N.persisted?O.children.forEach(z=>{z.type===rr?a(z.el):G(z)}):ee(X,D);return}if(q===mo){W(O);return}const j=()=>{a(X),N&&!N.persisted&&N.afterLeave&&N.afterLeave()};if(O.shapeFlag&1&&N&&!N.persisted){const{leave:z,delayLeave:se}=N,te=()=>z(X,j);se?se(O.el,j,te):te()}else j()},ee=(O,q)=>{let X;for(;O!==q;)X=R(O),a(O),O=X;a(q)},A=(O,q,X)=>{O.type.__hmrId&&d8(O);const{bum:D,scope:N,update:j,subTree:z,um:se}=O;D&&so(D),N.stop(),j&&(j.active=!1,$(z,O,q,X)),se&&gr(se,q),gr(()=>{O.isUnmounted=!0},q),q&&q.pendingBranch&&!q.isUnmounted&&O.asyncDep&&!O.asyncResolved&&O.suspenseId===q.pendingId&&(q.deps--,q.deps===0&&q.resolve()),b8(O)},E=(O,q,X,D=!1,N=!1,j=0)=>{for(let z=j;z<O.length;z++)$(O[z],q,X,D,N)},U=O=>O.shapeFlag&6?U(O.component.subTree):O.shapeFlag&128?O.suspense.next():R(O.anchor||O.el),K=(O,q,X)=>{O==null?q._vnode&&$(q._vnode,null,null,!0):k(q._vnode||null,O,q,null,null,null,X),vm(),Il(),q._vnode=O},Z={p:k,um:$,m:T,r:G,mt:h,mc:V,pc:g,pbc:_,n:U,o:e};let b,y;return t&&([b,y]=t(Z)),{render:K,hydrate:b,createApp:w5(K,b)}}function Fo({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function kl(e,t,r=!1){const i=e.children,a=t.children;if(ze(i)&&ze(a))for(let n=0;n<i.length;n++){const u=i[n];let c=a[n];c.shapeFlag&1&&!c.dynamicChildren&&((c.patchFlag<=0||c.patchFlag===32)&&(c=a[n]=no(a[n]),c.el=u.el),r||kl(u,c)),c.type===xo&&(c.el=u.el),c.type===rr&&!c.el&&(c.el=u.el)}}function N5(e){const t=e.slice(),r=[0];let i,a,n,u,c;const d=e.length;for(i=0;i<d;i++){const m=e[i];if(m!==0){if(a=r[r.length-1],e[a]<m){t[i]=a,r.push(i);continue}for(n=0,u=r.length-1;n<u;)c=n+u>>1,e[r[c]]<m?n=c+1:u=c;m<e[r[n]]&&(n>0&&(t[i]=r[n-1]),r[n]=i)}}for(n=r.length,u=r[n-1];n-- >0;)r[n]=u,u=t[u];return r}const k5=e=>e.__isTeleport,Xa=e=>e&&(e.disabled||e.disabled===""),Pm=e=>typeof SVGElement<"u"&&e instanceof SVGElement,V0=(e,t)=>{const r=e&&e.to;if(Vt(r))if(t){const i=t(r);return i||Ue(`Failed to locate Teleport target with selector "${r}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),i}else return Ue("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!r&&!Xa(e)&&Ue(`Invalid Teleport target: ${r}`),r},$5={__isTeleport:!0,process(e,t,r,i,a,n,u,c,d,m){const{mc:M,pc:S,pbc:R,o:{insert:C,querySelector:P,createText:k,createComment:L}}=m,I=Xa(t.props);let{shapeFlag:B,children:H,dynamicChildren:F}=t;if(go&&(d=!1,F=null),e==null){const W=t.el=L("teleport start"),Y=t.anchor=L("teleport end");C(W,r,i),C(Y,r,i);const ie=t.target=V0(t.props,P),J=t.targetAnchor=k("");ie?(C(J,ie),u=u||Pm(ie)):I||Ue("Invalid Teleport target on mount:",ie,`(${typeof ie})`);const V=(oe,_)=>{B&16&&M(H,oe,_,a,n,u,c,d)};I?V(r,Y):ie&&V(ie,J)}else{t.el=e.el;const W=t.anchor=e.anchor,Y=t.target=e.target,ie=t.targetAnchor=e.targetAnchor,J=Xa(e.props),V=J?r:Y,oe=J?W:ie;if(u=u||Pm(Y),F?(R(e.dynamicChildren,F,V,a,n,u,c),kl(e,t,!0)):d||S(e,t,V,oe,a,n,u,c,!1),I)J||Ku(t,r,W,m,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const _=t.target=V0(t.props,P);_?Ku(t,_,null,m,0):Ue("Invalid Teleport target on update:",Y,`(${typeof Y})`)}else J&&Ku(t,Y,ie,m,1)}Q2(t)},remove(e,t,r,i,{um:a,o:{remove:n}},u){const{shapeFlag:c,children:d,anchor:m,targetAnchor:M,target:S,props:R}=e;if(S&&n(M),(u||!Xa(R))&&(n(m),c&16))for(let C=0;C<d.length;C++){const P=d[C];a(P,t,r,!0,!!P.dynamicChildren)}},move:Ku,hydrate:D5};function Ku(e,t,r,{o:{insert:i},m:a},n=2){n===0&&i(e.targetAnchor,t,r);const{el:u,anchor:c,shapeFlag:d,children:m,props:M}=e,S=n===2;if(S&&i(u,t,r),(!S||Xa(M))&&d&16)for(let R=0;R<m.length;R++)a(m[R],t,r,2);S&&i(c,t,r)}function D5(e,t,r,i,a,n,{o:{nextSibling:u,parentNode:c,querySelector:d}},m){const M=t.target=V0(t.props,d);if(M){const S=M._lpa||M.firstChild;if(t.shapeFlag&16)if(Xa(t.props))t.anchor=m(u(e),t,c(e),r,i,a,n),t.targetAnchor=S;else{t.anchor=u(e);let R=S;for(;R;)if(R=u(R),R&&R.nodeType===8&&R.data==="teleport anchor"){t.targetAnchor=R,M._lpa=t.targetAnchor&&u(t.targetAnchor);break}m(S,t,M,r,i,a,n)}Q2(t)}return t.anchor&&u(t.anchor)}const F5=$5;function Q2(e){const t=e.ctx;if(t&&t.ut){let r=e.children[0].el;for(;r!==e.targetAnchor;)r.nodeType===1&&r.setAttribute("data-v-owner",t.uid),r=r.nextSibling;t.ut()}}const Lt=Symbol.for("v-fgt"),xo=Symbol.for("v-txt"),rr=Symbol.for("v-cmt"),mo=Symbol.for("v-stc"),Bf=[];let Wr=null;function tt(e=!1){Bf.push(Wr=e?null:[])}function e_(){Bf.pop(),Wr=Bf[Bf.length-1]||null}let ua=1;function z0(e){ua+=e}function t_(e){return e.dynamicChildren=ua>0?Wr||Ga:null,e_(),ua>0&&Wr&&Wr.push(e),e}function ft(e,t,r,i,a,n){return t_(Je(e,t,r,i,a,n,!0))}function Pv(e,t,r,i,a){return t_(Zt(e,t,r,i,a,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function Li(e,t){return t.shapeFlag&6&&ja.has(t.type)?(e.shapeFlag&=-257,t.shapeFlag&=-513,!1):e.type===t.type&&e.key===t.key}let G0;function j5(e){G0=e}const U5=(...e)=>H5(...G0?G0(e,tr):e),_h="__vInternal",r_=({key:e})=>e??null,ol=({ref:e,ref_key:t,ref_for:r})=>(typeof e=="number"&&(e=""+e),e!=null?Vt(e)||Xt(e)||Qe(e)?{i:tr,r:e,k:t,f:!!r}:e:null);function Je(e,t=null,r=null,i=0,a=null,n=e===Lt?0:1,u=!1,c=!1){const d={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&r_(t),ref:t&&ol(t),scopeId:vh,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:n,patchFlag:i,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:tr};return c?(Bv(d,r),n&128&&e.normalize(d)):r&&(d.shapeFlag|=Vt(r)?8:16),d.key!==d.key&&Ue("VNode created with invalid key (NaN). VNode type:",d.type),ua>0&&!u&&Wr&&(d.patchFlag>0||n&6)&&d.patchFlag!==32&&Wr.push(d),d}const Zt=U5;function H5(e,t=null,r=null,i=0,a=null,n=!1){if((!e||e===F2)&&(e||Ue(`Invalid vnode type when creating vnode: ${e}.`),e=rr),Nn(e)){const c=di(e,t,!0);return r&&Bv(c,r),ua>0&&!n&&Wr&&(c.shapeFlag&6?Wr[Wr.indexOf(e)]=c:Wr.push(c)),c.patchFlag|=-2,c}if(h_(e)&&(e=e.__vccOpts),t){t=i_(t);let{class:c,style:d}=t;c&&!Vt(c)&&(t.class=vr(c)),Rt(d)&&(qf(d)&&!ze(d)&&(d=Pt({},d)),t.style=Pn(d))}const u=Vt(e)?1:S2(e)?128:k5(e)?64:Rt(e)?4:Qe(e)?2:0;return u&4&&qf(e)&&(e=lt(e),Ue("Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.",`
-Component that was made reactive: `,e)),Je(e,t,r,i,a,u,n,!0)}function i_(e){return e?qf(e)||_h in e?Pt({},e):e:null}function di(e,t,r=!1){const{props:i,ref:a,patchFlag:n,children:u}=e,c=t?o_(i||{},t):i;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&r_(c),ref:t&&t.ref?r&&a?ze(a)?a.concat(ol(t)):[a,ol(t)]:ol(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:n===-1&&ze(u)?u.map(n_):u,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Lt?n===-1?16:n|16:n,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&di(e.ssContent),ssFallback:e.ssFallback&&di(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function n_(e){const t=di(e);return ze(e.children)&&(t.children=e.children.map(n_)),t}function Cv(e=" ",t=0){return Zt(xo,null,e,t)}function q5(e,t){const r=Zt(mo,null,e);return r.staticCount=t,r}function fi(e="",t=!1){return t?(tt(),Pv(rr,null,e)):Zt(rr,null,e)}function Ur(e){return e==null||typeof e=="boolean"?Zt(rr):ze(e)?Zt(Lt,null,e.slice()):typeof e=="object"?no(e):Zt(xo,null,String(e))}function no(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:di(e)}function Bv(e,t){let r=0;const{shapeFlag:i}=e;if(t==null)t=null;else if(ze(t))r=16;else if(typeof t=="object")if(i&65){const a=t.default;a&&(a._c&&(a._d=!1),Bv(e,a()),a._c&&(a._d=!0));return}else{r=32;const a=t._;!a&&!(_h in t)?t._ctx=tr:a===3&&tr&&(tr.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Qe(t)?(t={default:t,_ctx:tr},r=32):(t=String(t),i&64?(r=16,t=[Cv(t)]):r=8);e.children=t,e.shapeFlag|=r}function o_(...e){const t={};for(let r=0;r<e.length;r++){const i=e[r];for(const a in i)if(a==="class")t.class!==i.class&&(t.class=vr([t.class,i.class]));else if(a==="style")t.style=Pn([t.style,i.style]);else if(Ps(a)){const n=t[a],u=i[a];u&&n!==u&&!(ze(n)&&n.includes(u))&&(t[a]=n?[].concat(n,u):u)}else a!==""&&(t[a]=i[a])}return t}function Dr(e,t,r,i=null){Zr(e,t,7,[r,i])}const W5=q2();let K5=0;function a_(e,t,r){const i=e.type,a=(t?t.appContext:e.appContext)||W5,n={uid:K5++,vnode:e,type:i,parent:t,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,scope:new av(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(a.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:K2(i,a),emitsOptions:w2(i,a),emit:null,emitted:null,propsDefaults:$t,inheritAttrs:i.inheritAttrs,ctx:$t,data:$t,props:$t,attrs:$t,slots:$t,refs:$t,setupState:$t,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:r,suspenseId:r?r.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return n.ctx=Z8(n),n.root=t?t.root:n,n.emit=S8.bind(null,n),e.ce&&e.ce(n),n}let er=null;const Fi=()=>er||tr;let Lv,Ba,Cm="__VUE_INSTANCE_SETTERS__";(Ba=Al()[Cm])||(Ba=Al()[Cm]=[]),Ba.push(e=>er=e),Lv=e=>{Ba.length>1?Ba.forEach(t=>t(e)):Ba[0](e)};const Eo=e=>{Lv(e),e.scope.on()},yo=()=>{er&&er.scope.off(),Lv(null)},V5=Kn("slot,component");function Y0(e,t){const r=t.isNativeTag||Hw;(V5(e)||r(e))&&Ue("Do not use built-in or reserved HTML elements as component id: "+e)}function s_(e){return e.vnode.shapeFlag&4}let fs=!1;function f_(e,t=!1){fs=t;const{props:r,children:i}=e.vnode,a=s_(e);M5(e,r,a,t),P5(e,i);const n=a?z5(e,t):void 0;return fs=!1,n}function z5(e,t){var r;const i=e.type;{if(i.name&&Y0(i.name,e.appContext.config),i.components){const n=Object.keys(i.components);for(let u=0;u<n.length;u++)Y0(n[u],e.appContext.config)}if(i.directives){const n=Object.keys(i.directives);for(let u=0;u<n.length;u++)T2(n[u])}i.compilerOptions&&Nv()&&Ue('"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.')}e.accessCache=Object.create(null),e.proxy=lv(new Proxy(e.ctx,Pf)),X8(e);const{setup:a}=i;if(a){const n=e.setupContext=a.length>1?l_(e):null;Eo(e),ma();const u=en(a,e,0,[Wa(e.props),n]);if(ya(),yo(),oh(u)){if(u.then(yo,yo),t)return u.then(c=>{Z0(e,c,t)}).catch(c=>{ba(c,e,0)});if(e.asyncDep=u,!e.suspense){const c=(r=i.name)!=null?r:"Anonymous";Ue(`Component <${c}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`)}}else Z0(e,u,t)}else u_(e,t)}function Z0(e,t,r){Qe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Rt(t)?(Nn(t)&&Ue("setup() should not return VNodes directly - return a render function instead."),e.devtoolsRawSetupState=t,e.setupState=dv(t),J8(e)):t!==void 0&&Ue(`setup() should return an object. Received: ${t===null?"null":typeof t}`),u_(e,r)}let Lf,X0;function G5(e){Lf=e,X0=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,Y8))}}const Nv=()=>!Lf;function u_(e,t,r){const i=e.type;if(!e.render){if(!t&&Lf&&!i.render){const a=i.template||Ov(e).template;if(a){bn(e,"compile");const{isCustomElement:n,compilerOptions:u}=e.appContext.config,{delimiters:c,compilerOptions:d}=i,m=Pt(Pt({isCustomElement:n,delimiters:c},u),d);i.render=Lf(a,m),wn(e,"compile")}}e.render=i.render||qr,X0&&X0(e)}Eo(e),ma(),p5(e),ya(),yo(),!i.render&&e.render===qr&&!t&&(!Lf&&i.template?Ue('Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".'):Ue("Component is missing template or render function."))}function Y5(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,r){return Pl(),Tr(e,"get","$attrs"),t[r]},set(){return Ue("setupContext.attrs is readonly."),!1},deleteProperty(){return Ue("setupContext.attrs is readonly."),!1}}))}function Z5(e){return e.slotsProxy||(e.slotsProxy=new Proxy(e.slots,{get(t,r){return Tr(e,"get","$slots"),t[r]}}))}function l_(e){return Object.freeze({get attrs(){return Y5(e)},get slots(){return Z5(e)},get emit(){return(r,...i)=>e.emit(r,...i)},expose:r=>{if(e.exposed&&Ue("expose() should be called only once per setup()."),r!=null){let i=typeof r;i==="object"&&(ze(r)?i="array":Xt(r)&&(i="ref")),i!=="object"&&Ue(`expose() should be passed a plain object, received ${i}.`)}e.exposed=r||{}}})}function Mh(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(dv(lv(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in ia)return ia[r](e)},has(t,r){return r in t||r in ia}}))}const X5=/(?:^|[-_])(\w)/g,J5=e=>e.replace(X5,t=>t.toUpperCase()).replace(/[-_]/g,"");function Xf(e,t=!0){return Qe(e)?e.displayName||e.name:e.name||t&&e.__name}function Sh(e,t,r=!1){let i=Xf(t);if(!i&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(i=a[1])}if(!i&&e&&e.parent){const a=n=>{for(const u in n)if(n[u]===t)return u};i=a(e.components||e.parent.type.components)||a(e.appContext.components)}return i?J5(i):r?"App":"Anonymous"}function h_(e){return Qe(e)&&"__vccOpts"in e}const Qt=(e,t)=>r8(e,t,fs);function xh(e,t,r){const i=arguments.length;return i===2?Rt(t)&&!ze(t)?Nn(t)?Zt(e,null,[t]):Zt(e,t):Zt(e,null,t):(i>3?r=Array.prototype.slice.call(arguments,2):i===3&&Nn(r)&&(r=[r]),Zt(e,t,r))}const c_=Symbol.for("v-scx"),d_=()=>{{const e=tn(c_);return e||Ue("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function Nc(e){return!!(e&&e.__v_isShallow)}function p_(){if(typeof window>"u")return;const e={style:"color:#3ba776"},t={style:"color:#0b1bc9"},r={style:"color:#b62e24"},i={style:"color:#9d288c"},a={header(S){return Rt(S)?S.__isVue?["div",e,"VueInstance"]:Xt(S)?["div",{},["span",e,M(S)],"<",c(S.value),">"]:po(S)?["div",{},["span",e,Nc(S)?"ShallowReactive":"Reactive"],"<",c(S),`>${Ln(S)?" (readonly)":""}`]:Ln(S)?["div",{},["span",e,Nc(S)?"ShallowReadonly":"Readonly"],"<",c(S),">"]:null:null},hasBody(S){return S&&S.__isVue},body(S){if(S&&S.__isVue)return["div",{},...n(S.$)]}};function n(S){const R=[];S.type.props&&S.props&&R.push(u("props",lt(S.props))),S.setupState!==$t&&R.push(u("setup",S.setupState)),S.data!==$t&&R.push(u("data",lt(S.data)));const C=d(S,"computed");C&&R.push(u("computed",C));const P=d(S,"inject");return P&&R.push(u("injected",P)),R.push(["div",{},["span",{style:i.style+";opacity:0.66"},"$ (internal): "],["object",{object:S}]]),R}function u(S,R){return R=Pt({},R),Object.keys(R).length?["div",{style:"line-height:1.25em;margin-bottom:0.6em"},["div",{style:"color:#476582"},S],["div",{style:"padding-left:1.25em"},...Object.keys(R).map(C=>["div",{},["span",i,C+": "],c(R[C],!1)])]]:["span",{}]}function c(S,R=!0){return typeof S=="number"?["span",t,S]:typeof S=="string"?["span",r,JSON.stringify(S)]:typeof S=="boolean"?["span",i,S]:Rt(S)?["object",{object:R?lt(S):S}]:["span",r,String(S)]}function d(S,R){const C=S.type;if(Qe(C))return;const P={};for(const k in S.ctx)m(C,k,R)&&(P[k]=S.ctx[k]);return P}function m(S,R,C){const P=S[C];if(ze(P)&&P.includes(R)||Rt(P)&&R in P||S.extends&&m(S.extends,R,C)||S.mixins&&S.mixins.some(k=>m(k,R,C)))return!0}function M(S){return Nc(S)?"ShallowRef":S.effect?"ComputedRef":"Ref"}window.devtoolsFormatters?window.devtoolsFormatters.push(a):window.devtoolsFormatters=[a]}function Q5(e,t,r,i){const a=r[i];if(a&&v_(a,e))return a;const n=t();return n.memo=e.slice(),r[i]=n}function v_(e,t){const r=e.memo;if(r.length!=t.length)return!1;for(let i=0;i<r.length;i++)if(as(r[i],t[i]))return!1;return ua>0&&Wr&&Wr.push(e),!0}const J0="3.3.4",eR={createComponentInstance:a_,setupComponent:f_,renderComponentRoot:il,setCurrentRenderingInstance:zf,isVNode:Nn,normalizeVNode:Ur},tR=eR,rR=null,iR=null,nR="http://www.w3.org/2000/svg",Ko=typeof document<"u"?document:null,Bm=Ko&&Ko.createElement("template"),oR={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,i)=>{const a=t?Ko.createElementNS(nR,e):Ko.createElement(e,r?{is:r}:void 0);return e==="select"&&i&&i.multiple!=null&&a.setAttribute("multiple",i.multiple),a},createText:e=>Ko.createTextNode(e),createComment:e=>Ko.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ko.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,i,a,n){const u=r?r.previousSibling:t.lastChild;if(a&&(a===n||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),r),!(a===n||!(a=a.nextSibling)););else{Bm.innerHTML=i?`<svg>${e}</svg>`:e;const c=Bm.content;if(i){const d=c.firstChild;for(;d.firstChild;)c.appendChild(d.firstChild);c.removeChild(d)}t.insertBefore(c,r)}return[u?u.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function aR(e,t,r){const i=e._vtc;i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function sR(e,t,r){const i=e.style,a=Vt(r);if(r&&!a){if(t&&!Vt(t))for(const n in t)r[n]==null&&Q0(i,n,"");for(const n in r)Q0(i,n,r[n])}else{const n=i.display;a?t!==r&&(i.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(i.display=n)}}const fR=/[^\\];\s*$/,Lm=/\s*!important$/;function Q0(e,t,r){if(ze(r))r.forEach(i=>Q0(e,t,i));else if(r==null&&(r=""),fR.test(r)&&Ue(`Unexpected semicolon at the end of '${t}' style value: '${r}'`),t.startsWith("--"))e.setProperty(t,r);else{const i=uR(e,t);Lm.test(r)?e.setProperty(Hr(i),r.replace(Lm,""),"important"):e[i]=r}}const Nm=["Webkit","Moz","ms"],kc={};function uR(e,t){const r=kc[t];if(r)return r;let i=Kr(t);if(i!=="filter"&&i in e)return kc[t]=i;i=_o(i);for(let a=0;a<Nm.length;a++){const n=Nm[a]+i;if(n in e)return kc[t]=n}return t}const km="http://www.w3.org/1999/xlink";function lR(e,t,r,i,a){if(i&&t.startsWith("xlink:"))r==null?e.removeAttributeNS(km,t.slice(6,t.length)):e.setAttributeNS(km,t,r);else{const n=cE(t);r==null||n&&!Kw(r)?e.removeAttribute(t):e.setAttribute(t,n?"":r)}}function hR(e,t,r,i,a,n,u){if(t==="innerHTML"||t==="textContent"){i&&u(i,a,n),e[t]=r??"";return}const c=e.tagName;if(t==="value"&&c!=="PROGRESS"&&!c.includes("-")){e._value=r;const m=c==="OPTION"?e.getAttribute("value"):e.value,M=r??"";m!==M&&(e.value=M),r==null&&e.removeAttribute(t);return}let d=!1;if(r===""||r==null){const m=typeof e[t];m==="boolean"?r=Kw(r):r==null&&m==="string"?(r="",d=!0):m==="number"&&(r=0,d=!0)}try{e[t]=r}catch(m){d||Ue(`Failed setting prop "${t}" on <${c.toLowerCase()}>: value ${r} is invalid.`,m)}d&&e.removeAttribute(t)}function Tn(e,t,r,i){e.addEventListener(t,r,i)}function cR(e,t,r,i){e.removeEventListener(t,r,i)}function dR(e,t,r,i,a=null){const n=e._vei||(e._vei={}),u=n[t];if(i&&u)u.value=i;else{const[c,d]=pR(t);if(i){const m=n[t]=mR(i,a);Tn(e,c,m,d)}else u&&(cR(e,c,u,d),n[t]=void 0)}}const $m=/(?:Once|Passive|Capture)$/;function pR(e){let t;if($m.test(e)){t={};let i;for(;i=e.match($m);)e=e.slice(0,e.length-i[0].length),t[i[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Hr(e.slice(2)),t]}let $c=0;const vR=Promise.resolve(),gR=()=>$c||(vR.then(()=>$c=0),$c=Date.now());function mR(e,t){const r=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=r.attached)return;Zr(yR(i,r.value),t,5,[i])};return r.value=e,r.attached=gR(),r}function yR(e,t){if(ze(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(i=>a=>!a._stopped&&i&&i(a))}else return t}const Dm=/^on[a-z]/,bR=(e,t,r,i,a=!1,n,u,c,d)=>{t==="class"?aR(e,i,a):t==="style"?sR(e,r,i):Ps(t)?Sl(t)||dR(e,t,r,i,u):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wR(e,t,i,a))?hR(e,t,i,n,u,c,d):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),lR(e,t,i,a))};function wR(e,t,r,i){return i?!!(t==="innerHTML"||t==="textContent"||t in e&&Dm.test(t)&&Qe(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Dm.test(t)&&Vt(r)?!1:t in e}function g_(e,t){const r=Bs(e);class i extends Eh{constructor(n){super(r,n,t)}}return i.def=r,i}const _R=e=>g_(e,P_),MR=typeof HTMLElement<"u"?HTMLElement:class{};class Eh extends MR{constructor(t,r={},i){super(),this._def=t,this._props=r,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&i?i(this._createVNode(),this.shadowRoot):(this.shadowRoot&&Ue("Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use `defineSSRCustomElement`."),this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,uo(()=>{this._connected||(rp(null,this.shadowRoot),this._instance=null)})}_resolveDef(){this._resolved=!0;for(let i=0;i<this.attributes.length;i++)this._setAttr(this.attributes[i].name);new MutationObserver(i=>{for(const a of i)this._setAttr(a.attributeName)}).observe(this,{attributes:!0});const t=(i,a=!1)=>{const{props:n,styles:u}=i;let c;if(n&&!ze(n))for(const d in n){const m=n[d];(m===Number||m&&m.type===Number)&&(d in this._props&&(this._props[d]=Rl(this._props[d])),(c||(c=Object.create(null)))[Kr(d)]=!0)}this._numberProps=c,a&&this._resolveProps(i),this._applyStyles(u),this._update()},r=this._def.__asyncLoader;r?r().then(i=>t(i,!0)):t(this._def)}_resolveProps(t){const{props:r}=t,i=ze(r)?r:Object.keys(r||{});for(const a of Object.keys(this))a[0]!=="_"&&i.includes(a)&&this._setProp(a,this[a],!0,!1);for(const a of i.map(Kr))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(n){this._setProp(a,n)}})}_setAttr(t){let r=this.getAttribute(t);const i=Kr(t);this._numberProps&&this._numberProps[i]&&(r=Rl(r)),this._setProp(i,r,!1)}_getProp(t){return this._props[t]}_setProp(t,r,i=!0,a=!0){r!==this._props[t]&&(this._props[t]=r,a&&this._instance&&this._update(),i&&(r===!0?this.setAttribute(Hr(t),""):typeof r=="string"||typeof r=="number"?this.setAttribute(Hr(t),r+""):r||this.removeAttribute(Hr(t))))}_update(){rp(this._createVNode(),this.shadowRoot)}_createVNode(){const t=Zt(this._def,Pt({},this._props));return this._instance||(t.ce=r=>{this._instance=r,r.isCE=!0,r.ceReload=n=>{this._styles&&(this._styles.forEach(u=>this.shadowRoot.removeChild(u)),this._styles.length=0),this._applyStyles(n),this._instance=null,this._update()};const i=(n,u)=>{this.dispatchEvent(new CustomEvent(n,{detail:u}))};r.emit=(n,...u)=>{i(n,u),Hr(n)!==n&&i(Hr(n),u)};let a=this;for(;a=a&&(a.parentNode||a.host);)if(a instanceof Eh){r.parent=a._instance,r.provides=a._instance.provides;break}}),t}_applyStyles(t){t&&t.forEach(r=>{const i=document.createElement("style");i.textContent=r,this.shadowRoot.appendChild(i),(this._styles||(this._styles=[])).push(i)})}}function SR(e="$style"){{const t=Fi();if(!t)return Ue("useCssModule must be called inside setup()"),$t;const r=t.type.__cssModules;if(!r)return Ue("Current instance does not have CSS modules injected."),$t;const i=r[e];return i||(Ue(`Current instance does not have CSS module named "${e}".`),$t)}}function xR(e){const t=Fi();if(!t){Ue("useCssVars is called without current active component instance.");return}const r=t.ut=(a=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(n=>tp(n,a))},i=()=>{const a=e(t.proxy);ep(t.subTree,a),r(a)};R2(i),Ns(()=>{const a=new MutationObserver(i);a.observe(t.subTree.el.parentNode,{childList:!0}),wh(()=>a.disconnect())})}function ep(e,t){if(e.shapeFlag&128){const r=e.suspense;e=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{ep(r.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)tp(e.el,t);else if(e.type===Lt)e.children.forEach(r=>ep(r,t));else if(e.type===mo){let{el:r,anchor:i}=e;for(;r&&(tp(r,t),r!==i);)r=r.nextSibling}}function tp(e,t){if(e.nodeType===1){const r=e.style;for(const i in t)r.setProperty(`--${i}`,t[i])}}const Qn="transition",Zs="animation",kv=(e,{slots:t})=>xh(O2,y_(e),t);kv.displayName="Transition";const m_={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ER=kv.props=Pt({},Ev,m_),jo=(e,t=[])=>{ze(e)?e.forEach(r=>r(...t)):e&&e(...t)},Fm=e=>e?ze(e)?e.some(t=>t.length>1):e.length>1:!1;function y_(e){const t={};for(const o in e)o in m_||(t[o]=e[o]);if(e.css===!1)return t;const{name:r="v",type:i,duration:a,enterFromClass:n=`${r}-enter-from`,enterActiveClass:u=`${r}-enter-active`,enterToClass:c=`${r}-enter-to`,appearFromClass:d=n,appearActiveClass:m=u,appearToClass:M=c,leaveFromClass:S=`${r}-leave-from`,leaveActiveClass:R=`${r}-leave-active`,leaveToClass:C=`${r}-leave-to`}=e,P=RR(a),k=P&&P[0],L=P&&P[1],{onBeforeEnter:I,onEnter:B,onEnterCancelled:H,onLeave:F,onLeaveCancelled:W,onBeforeAppear:Y=I,onAppear:ie=B,onAppearCancelled:J=H}=t,V=(o,f,l)=>{ro(o,f?M:c),ro(o,f?m:u),l&&l()},oe=(o,f)=>{o._isLeaving=!1,ro(o,S),ro(o,C),ro(o,R),f&&f()},_=o=>(f,l)=>{const h=o?ie:B,p=()=>V(f,o,l);jo(h,[f,p]),jm(()=>{ro(f,o?d:n),_n(f,o?M:c),Fm(h)||Um(f,i,k,p)})};return Pt(t,{onBeforeEnter(o){jo(I,[o]),_n(o,n),_n(o,u)},onBeforeAppear(o){jo(Y,[o]),_n(o,d),_n(o,m)},onEnter:_(!1),onAppear:_(!0),onLeave(o,f){o._isLeaving=!0;const l=()=>oe(o,f);_n(o,S),w_(),_n(o,R),jm(()=>{o._isLeaving&&(ro(o,S),_n(o,C),Fm(F)||Um(o,i,L,l))}),jo(F,[o,l])},onEnterCancelled(o){V(o,!1),jo(H,[o])},onAppearCancelled(o){V(o,!0),jo(J,[o])},onLeaveCancelled(o){oe(o),jo(W,[o])}})}function RR(e){if(e==null)return null;if(Rt(e))return[Dc(e.enter),Dc(e.leave)];{const t=Dc(e);return[t,t]}}function Dc(e){const t=Rl(e);return pv(t,"<transition> explicit duration"),t}function _n(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function ro(e,t){t.split(/\s+/).forEach(i=>i&&e.classList.remove(i));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function jm(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let AR=0;function Um(e,t,r,i){const a=e._endId=++AR,n=()=>{a===e._endId&&i()};if(r)return setTimeout(n,r);const{type:u,timeout:c,propCount:d}=b_(e,t);if(!u)return i();const m=u+"end";let M=0;const S=()=>{e.removeEventListener(m,R),n()},R=C=>{C.target===e&&++M>=d&&S()};setTimeout(()=>{M<d&&S()},c+1),e.addEventListener(m,R)}function b_(e,t){const r=window.getComputedStyle(e),i=P=>(r[P]||"").split(", "),a=i(`${Qn}Delay`),n=i(`${Qn}Duration`),u=Hm(a,n),c=i(`${Zs}Delay`),d=i(`${Zs}Duration`),m=Hm(c,d);let M=null,S=0,R=0;t===Qn?u>0&&(M=Qn,S=u,R=n.length):t===Zs?m>0&&(M=Zs,S=m,R=d.length):(S=Math.max(u,m),M=S>0?u>m?Qn:Zs:null,R=M?M===Qn?n.length:d.length:0);const C=M===Qn&&/\b(transform|all)(,|$)/.test(i(`${Qn}Property`).toString());return{type:M,timeout:S,propCount:R,hasTransform:C}}function Hm(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((r,i)=>qm(r)+qm(e[i])))}function qm(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function w_(){return document.body.offsetHeight}const __=new WeakMap,M_=new WeakMap,S_={name:"TransitionGroup",props:Pt({},ER,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=Fi(),i=xv();let a,n;return yh(()=>{if(!a.length)return;const u=e.moveClass||`${e.name||"v"}-move`;if(!BR(a[0].el,r.vnode.el,u))return;a.forEach(IR),a.forEach(PR);const c=a.filter(CR);w_(),c.forEach(d=>{const m=d.el,M=m.style;_n(m,u),M.transform=M.webkitTransform=M.transitionDuration="";const S=m._moveCb=R=>{R&&R.target!==m||(!R||/transform$/.test(R.propertyName))&&(m.removeEventListener("transitionend",S),m._moveCb=null,ro(m,u))};m.addEventListener("transitionend",S)})}),()=>{const u=lt(e),c=y_(u);let d=u.tag||Lt;a=n,n=t.default?gh(t.default()):[];for(let m=0;m<n.length;m++){const M=n[m];M.key!=null?fa(M,ss(M,c,i,r)):Ue("<TransitionGroup> children must be keyed.")}if(a)for(let m=0;m<a.length;m++){const M=a[m];fa(M,ss(M,c,i,r)),__.set(M,M.el.getBoundingClientRect())}return Zt(d,null,n)}}},TR=e=>delete e.mode;S_.props;const OR=S_;function IR(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function PR(e){M_.set(e,e.el.getBoundingClientRect())}function CR(e){const t=__.get(e),r=M_.get(e),i=t.left-r.left,a=t.top-r.top;if(i||a){const n=e.el.style;return n.transform=n.webkitTransform=`translate(${i}px,${a}px)`,n.transitionDuration="0s",e}}function BR(e,t,r){const i=e.cloneNode();e._vtc&&e._vtc.forEach(u=>{u.split(/\s+/).forEach(c=>c&&i.classList.remove(c))}),r.split(/\s+/).forEach(u=>u&&i.classList.add(u)),i.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(i);const{hasTransform:n}=b_(i);return a.removeChild(i),n}const Ro=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ze(t)?r=>so(t,r):t};function LR(e){e.target.composing=!0}function Wm(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const $l={created(e,{modifiers:{lazy:t,trim:r,number:i}},a){e._assign=Ro(a);const n=i||a.props&&a.props.type==="number";Tn(e,t?"change":"input",u=>{if(u.target.composing)return;let c=e.value;r&&(c=c.trim()),n&&(c=El(c)),e._assign(c)}),r&&Tn(e,"change",()=>{e.value=e.value.trim()}),t||(Tn(e,"compositionstart",LR),Tn(e,"compositionend",Wm),Tn(e,"change",Wm))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:r,trim:i,number:a}},n){if(e._assign=Ro(n),e.composing||document.activeElement===e&&e.type!=="range"&&(r||i&&e.value.trim()===t||(a||e.type==="number")&&El(e.value)===t))return;const u=t??"";e.value!==u&&(e.value=u)}},Rh={deep:!0,created(e,t,r){e._assign=Ro(r),Tn(e,"change",()=>{const i=e._modelValue,a=us(e),n=e.checked,u=e._assign;if(ze(i)){const c=sh(i,a),d=c!==-1;if(n&&!d)u(i.concat(a));else if(!n&&d){const m=[...i];m.splice(c,1),u(m)}}else if(ga(i)){const c=new Set(i);n?c.add(a):c.delete(a),u(c)}else u(x_(e,n))})},mounted:Km,beforeUpdate(e,t,r){e._assign=Ro(r),Km(e,t,r)}};function Km(e,{value:t,oldValue:r},i){e._modelValue=t,ze(t)?e.checked=sh(t,i.props.value)>-1:ga(t)?e.checked=t.has(i.props.value):t!==r&&(e.checked=Mo(t,x_(e,!0)))}const $v={created(e,{value:t},r){e.checked=Mo(t,r.props.value),e._assign=Ro(r),Tn(e,"change",()=>{e._assign(us(e))})},beforeUpdate(e,{value:t,oldValue:r},i){e._assign=Ro(i),t!==r&&(e.checked=Mo(t,i.props.value))}},Dl={deep:!0,created(e,{value:t,modifiers:{number:r}},i){const a=ga(t);Tn(e,"change",()=>{const n=Array.prototype.filter.call(e.options,u=>u.selected).map(u=>r?El(us(u)):us(u));e._assign(e.multiple?a?new Set(n):n:n[0])}),e._assign=Ro(i)},mounted(e,{value:t}){Vm(e,t)},beforeUpdate(e,t,r){e._assign=Ro(r)},updated(e,{value:t}){Vm(e,t)}};function Vm(e,t){const r=e.multiple;if(r&&!ze(t)&&!ga(t)){Ue(`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(t).slice(8,-1)}.`);return}for(let i=0,a=e.options.length;i<a;i++){const n=e.options[i],u=us(n);if(r)ze(t)?n.selected=sh(t,u)>-1:n.selected=t.has(u);else if(Mo(us(n),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}function us(e){return"_value"in e?e._value:e.value}function x_(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const E_={created(e,t,r){Vu(e,t,r,null,"created")},mounted(e,t,r){Vu(e,t,r,null,"mounted")},beforeUpdate(e,t,r,i){Vu(e,t,r,i,"beforeUpdate")},updated(e,t,r,i){Vu(e,t,r,i,"updated")}};function R_(e,t){switch(e){case"SELECT":return Dl;case"TEXTAREA":return $l;default:switch(t){case"checkbox":return Rh;case"radio":return $v;default:return $l}}}function Vu(e,t,r,i,a){const u=R_(e.tagName,r.props&&r.props.type)[a];u&&u(e,t,r,i)}function NR(){$l.getSSRProps=({value:e})=>({value:e}),$v.getSSRProps=({value:e},t)=>{if(t.props&&Mo(t.props.value,e))return{checked:!0}},Rh.getSSRProps=({value:e},t)=>{if(ze(e)){if(t.props&&sh(e,t.props.value)>-1)return{checked:!0}}else if(ga(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},E_.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const r=R_(t.type.toUpperCase(),t.props&&t.props.type);if(r.getSSRProps)return r.getSSRProps(e,t)}}const kR=["ctrl","shift","alt","meta"],$R={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>kR.some(r=>e[`${r}Key`]&&!t.includes(r))},Mn=(e,t)=>(r,...i)=>{for(let a=0;a<t.length;a++){const n=$R[t[a]];if(n&&n(r,t))return}return e(r,...i)},DR={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},FR=(e,t)=>r=>{if(!("key"in r))return;const i=Hr(r.key);if(t.some(a=>a===i||DR[a]===i))return e(r)},A_={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):Xs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:i}){!t!=!r&&(i?t?(i.beforeEnter(e),Xs(e,!0),i.enter(e)):i.leave(e,()=>{Xs(e,!1)}):Xs(e,t))},beforeUnmount(e,{value:t}){Xs(e,t)}};function Xs(e,t){e.style.display=t?e._vod:"none"}function jR(){A_.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const T_=Pt({patchProp:bR},oR);let Nf,zm=!1;function O_(){return Nf||(Nf=Z2(T_))}function I_(){return Nf=zm?Nf:X2(T_),zm=!0,Nf}const rp=(...e)=>{O_().render(...e)},P_=(...e)=>{I_().hydrate(...e)},UR=(...e)=>{const t=O_().createApp(...e);C_(t),B_(t);const{mount:r}=t;return t.mount=i=>{const a=L_(i);if(!a)return;const n=t._component;!Qe(n)&&!n.render&&!n.template&&(n.template=a.innerHTML),a.innerHTML="";const u=r(a,!1,a instanceof SVGElement);return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),u},t},HR=(...e)=>{const t=I_().createApp(...e);C_(t),B_(t);const{mount:r}=t;return t.mount=i=>{const a=L_(i);if(a)return r(a,!0,a instanceof SVGElement)},t};function C_(e){Object.defineProperty(e.config,"isNativeTag",{value:t=>uE(t)||lE(t),writable:!1})}function B_(e){if(Nv()){const t=e.config.isCustomElement;Object.defineProperty(e.config,"isCustomElement",{get(){return t},set(){Ue("The `isCustomElement` config option is deprecated. Use `compilerOptions.isCustomElement` instead.")}});const r=e.config.compilerOptions,i='The `compilerOptions` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, `compilerOptions` must be passed to `@vue/compiler-dom` in the build setup instead.\n- For vue-loader: pass it via vue-loader\'s `compilerOptions` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc';Object.defineProperty(e.config,"compilerOptions",{get(){return Ue(i),r},set(){Ue(i)}})}}function L_(e){if(Vt(e)){const t=document.querySelector(e);return t||Ue(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&e.mode==="closed"&&Ue('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}let Gm=!1;const qR=()=>{Gm||(Gm=!0,NR(),jR())};function WR(){p_()}WR();const KR=()=>{Ue('Runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".')},VR=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:O2,BaseTransitionPropsValidators:Ev,Comment:rr,EffectScope:av,Fragment:Lt,KeepAlive:U8,ReactiveEffect:uu,Static:mo,Suspense:I8,Teleport:F5,Text:xo,Transition:kv,TransitionGroup:OR,VueElement:Eh,assertNumber:pv,callWithAsyncErrorHandling:Zr,callWithErrorHandling:en,camelize:Kr,capitalize:_o,cloneVNode:di,compatUtils:iR,compile:KR,computed:Qt,createApp:UR,createBlock:Pv,createCommentVNode:fi,createElementBlock:ft,createElementVNode:Je,createHydrationRenderer:X2,createPropsRestProxy:h5,createRenderer:Z2,createSSRApp:HR,createSlots:z8,createStaticVNode:q5,createTextVNode:Cv,createVNode:Zt,customRef:ZE,defineAsyncComponent:F8,defineComponent:Bs,defineCustomElement:g_,defineEmits:e5,defineExpose:t5,defineModel:n5,defineOptions:r5,defineProps:Q8,defineSSRCustomElement:_R,defineSlots:i5,get devtools(){return Bi},effect:mE,effectScope:zw,getCurrentInstance:Fi,getCurrentScope:Yw,getTransitionRawChildren:gh,guardReactiveProps:i_,h:xh,handleError:ba,hasInjectionContext:_5,hydrate:P_,initCustomFormatter:p_,initDirectivesForSSR:qR,inject:tn,isMemoSame:v_,isProxy:qf,isReactive:po,isReadonly:Ln,isRef:Xt,isRuntimeOnly:Nv,isShallow:Hf,isVNode:Nn,markRaw:lv,mergeDefaults:u5,mergeModels:l5,mergeProps:o_,nextTick:uo,normalizeClass:vr,normalizeProps:aE,normalizeStyle:Pn,onActivated:P2,onBeforeMount:L2,onBeforeUnmount:bh,onBeforeUpdate:Rv,onDeactivated:C2,onErrorCaptured:D2,onMounted:Ns,onRenderTracked:$2,onRenderTriggered:k2,onScopeDispose:pE,onServerPrefetch:N2,onUnmounted:wh,onUpdated:yh,openBlock:tt,popScopeId:M2,provide:Cf,proxyRefs:dv,pushScopeId:_2,queuePostFlushCb:dh,reactive:No,readonly:uv,ref:mr,registerRuntimeCompiler:G5,render:rp,renderList:Ii,renderSlot:j0,resolveComponent:W8,resolveDirective:V8,resolveDynamicComponent:K8,resolveFilter:rR,resolveTransitionHooks:ss,setBlockTracking:z0,setDevtoolsHook:yv,setTransitionHooks:fa,shallowReactive:u2,shallowReadonly:Wa,shallowRef:l2,ssrContextKey:c_,ssrUtils:tR,stop:yE,toDisplayString:si,toHandlerKey:xn,toHandlers:G8,toRaw:lt,toRef:e8,toRefs:XE,toValue:zE,transformVNodeArgs:j5,triggerRef:VE,unref:vo,useAttrs:s5,useCssModule:SR,useCssVars:xR,useModel:f5,useSSRContext:d_,useSlots:a5,useTransitionState:xv,vModelCheckbox:Rh,vModelDynamic:E_,vModelRadio:$v,vModelSelect:Dl,vModelText:$l,vShow:A_,version:J0,warn:Ue,watch:lr,watchEffect:E2,watchPostEffect:R2,watchSyncEffect:k8,withAsyncContext:c5,withCtx:wv,withDefaults:o5,withDirectives:nl,withKeys:FR,withMemo:Q5,withModifiers:Mn,withScopeId:x8},Symbol.toStringTag,{value:"Module"})),zR=(e,t)=>{const r=e.__vccOpts||e;for(const[i,a]of t)r[i]=a;return r};var du={exports:{}},Dv={exports:{}},Ja=typeof Reflect=="object"?Reflect:null,Ym=Ja&&typeof Ja.apply=="function"?Ja.apply:function(t,r,i){return Function.prototype.apply.call(t,r,i)},al;Ja&&typeof Ja.ownKeys=="function"?al=Ja.ownKeys:Object.getOwnPropertySymbols?al=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:al=function(t){return Object.getOwnPropertyNames(t)};function GR(e){console&&console.warn&&console.warn(e)}var N_=Number.isNaN||function(t){return t!==t};function Wt(){Wt.init.call(this)}Dv.exports=Wt;Dv.exports.once=JR;Wt.EventEmitter=Wt;Wt.prototype._events=void 0;Wt.prototype._eventsCount=0;Wt.prototype._maxListeners=void 0;var Zm=10;function Ah(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Wt,"defaultMaxListeners",{enumerable:!0,get:function(){return Zm},set:function(e){if(typeof e!="number"||e<0||N_(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Zm=e}});Wt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Wt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||N_(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function k_(e){return e._maxListeners===void 0?Wt.defaultMaxListeners:e._maxListeners}Wt.prototype.getMaxListeners=function(){return k_(this)};Wt.prototype.emit=function(t){for(var r=[],i=1;i<arguments.length;i++)r.push(arguments[i]);var a=t==="error",n=this._events;if(n!==void 0)a=a&&n.error===void 0;else if(!a)return!1;if(a){var u;if(r.length>0&&(u=r[0]),u instanceof Error)throw u;var c=new Error("Unhandled error."+(u?" ("+u.message+")":""));throw c.context=u,c}var d=n[t];if(d===void 0)return!1;if(typeof d=="function")Ym(d,this,r);else for(var m=d.length,M=U_(d,m),i=0;i<m;++i)Ym(M[i],this,r);return!0};function $_(e,t,r,i){var a,n,u;if(Ah(r),n=e._events,n===void 0?(n=e._events=Object.create(null),e._eventsCount=0):(n.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),n=e._events),u=n[t]),u===void 0)u=n[t]=r,++e._eventsCount;else if(typeof u=="function"?u=n[t]=i?[r,u]:[u,r]:i?u.unshift(r):u.push(r),a=k_(e),a>0&&u.length>a&&!u.warned){u.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=u.length,GR(c)}return e}Wt.prototype.addListener=function(t,r){return $_(this,t,r,!1)};Wt.prototype.on=Wt.prototype.addListener;Wt.prototype.prependListener=function(t,r){return $_(this,t,r,!0)};function YR(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function D_(e,t,r){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},a=YR.bind(i);return a.listener=r,i.wrapFn=a,a}Wt.prototype.once=function(t,r){return Ah(r),this.on(t,D_(this,t,r)),this};Wt.prototype.prependOnceListener=function(t,r){return Ah(r),this.prependListener(t,D_(this,t,r)),this};Wt.prototype.removeListener=function(t,r){var i,a,n,u,c;if(Ah(r),a=this._events,a===void 0)return this;if(i=a[t],i===void 0)return this;if(i===r||i.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete a[t],a.removeListener&&this.emit("removeListener",t,i.listener||r));else if(typeof i!="function"){for(n=-1,u=i.length-1;u>=0;u--)if(i[u]===r||i[u].listener===r){c=i[u].listener,n=u;break}if(n<0)return this;n===0?i.shift():ZR(i,n),i.length===1&&(a[t]=i[0]),a.removeListener!==void 0&&this.emit("removeListener",t,c||r)}return this};Wt.prototype.off=Wt.prototype.removeListener;Wt.prototype.removeAllListeners=function(t){var r,i,a;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var n=Object.keys(i),u;for(a=0;a<n.length;++a)u=n[a],u!=="removeListener"&&this.removeAllListeners(u);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=i[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(a=r.length-1;a>=0;a--)this.removeListener(t,r[a]);return this};function F_(e,t,r){var i=e._events;if(i===void 0)return[];var a=i[t];return a===void 0?[]:typeof a=="function"?r?[a.listener||a]:[a]:r?XR(a):U_(a,a.length)}Wt.prototype.listeners=function(t){return F_(this,t,!0)};Wt.prototype.rawListeners=function(t){return F_(this,t,!1)};Wt.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):j_.call(e,t)};Wt.prototype.listenerCount=j_;function j_(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}Wt.prototype.eventNames=function(){return this._eventsCount>0?al(this._events):[]};function U_(e,t){for(var r=new Array(t),i=0;i<t;++i)r[i]=e[i];return r}function ZR(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function XR(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function JR(e,t){return new Promise(function(r,i){function a(u){e.removeListener(t,n),i(u)}function n(){typeof e.removeListener=="function"&&e.removeListener("error",a),r([].slice.call(arguments))}H_(e,t,n,{once:!0}),t!=="error"&&QR(e,a,{once:!0})})}function QR(e,t,r){typeof e.on=="function"&&H_(e,"error",t,r)}function H_(e,t,r,i){if(typeof e.on=="function")i.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function a(n){i.once&&e.removeEventListener(t,a),r(n)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var Or=Dv.exports,Fv=t7,e7=Object.prototype.hasOwnProperty;function t7(){for(var e={},t=0;t<arguments.length;t++){var r=arguments[t];for(var i in r)e7.call(r,i)&&(e[i]=r[i])}return e}var ip={exports:{}},q_=Or.EventEmitter,ei={},W_={},K_=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),i=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(i)!=="[object Symbol]")return!1;var a=42;t[r]=a;for(r in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var n=Object.getOwnPropertySymbols(t);if(n.length!==1||n[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var u=Object.getOwnPropertyDescriptor(t,r);if(u.value!==a||u.enumerable!==!0)return!1}return!0},r7=K_,Th=function(){return r7()&&!!Symbol.toStringTag},Xm=typeof Symbol<"u"&&Symbol,i7=K_,n7=function(){return typeof Xm!="function"||typeof Symbol!="function"||typeof Xm("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:i7()},Jm={foo:{}},o7=Object,a7=function(){return{__proto__:Jm}.foo===Jm.foo&&!({__proto__:null}instanceof o7)},s7="Function.prototype.bind called on incompatible ",Fc=Array.prototype.slice,f7=Object.prototype.toString,u7="[object Function]",l7=function(t){var r=this;if(typeof r!="function"||f7.call(r)!==u7)throw new TypeError(s7+r);for(var i=Fc.call(arguments,1),a,n=function(){if(this instanceof a){var M=r.apply(this,i.concat(Fc.call(arguments)));return Object(M)===M?M:this}else return r.apply(t,i.concat(Fc.call(arguments)))},u=Math.max(0,r.length-i.length),c=[],d=0;d<u;d++)c.push("$"+d);if(a=Function("binder","return function ("+c.join(",")+"){ return binder.apply(this,arguments); }")(n),r.prototype){var m=function(){};m.prototype=r.prototype,a.prototype=new m,m.prototype=null}return a},h7=l7,jv=Function.prototype.bind||h7,c7=jv,d7=c7.call(Function.call,Object.prototype.hasOwnProperty),Mt,ls=SyntaxError,V_=Function,Qa=TypeError,jc=function(e){try{return V_('"use strict"; return ('+e+").constructor;")()}catch{}},na=Object.getOwnPropertyDescriptor;if(na)try{na({},"")}catch{na=null}var Uc=function(){throw new Qa},p7=na?function(){try{return arguments.callee,Uc}catch{try{return na(arguments,"callee").get}catch{return Uc}}}():Uc,La=n7(),v7=a7(),ur=Object.getPrototypeOf||(v7?function(e){return e.__proto__}:null),Ua={},g7=typeof Uint8Array>"u"||!ur?Mt:ur(Uint8Array),oa={"%AggregateError%":typeof AggregateError>"u"?Mt:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Mt:ArrayBuffer,"%ArrayIteratorPrototype%":La&&ur?ur([][Symbol.iterator]()):Mt,"%AsyncFromSyncIteratorPrototype%":Mt,"%AsyncFunction%":Ua,"%AsyncGenerator%":Ua,"%AsyncGeneratorFunction%":Ua,"%AsyncIteratorPrototype%":Ua,"%Atomics%":typeof Atomics>"u"?Mt:Atomics,"%BigInt%":typeof BigInt>"u"?Mt:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Mt:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Mt:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Mt:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?Mt:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Mt:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Mt:FinalizationRegistry,"%Function%":V_,"%GeneratorFunction%":Ua,"%Int8Array%":typeof Int8Array>"u"?Mt:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Mt:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Mt:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":La&&ur?ur(ur([][Symbol.iterator]())):Mt,"%JSON%":typeof JSON=="object"?JSON:Mt,"%Map%":typeof Map>"u"?Mt:Map,"%MapIteratorPrototype%":typeof Map>"u"||!La||!ur?Mt:ur(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Mt:Promise,"%Proxy%":typeof Proxy>"u"?Mt:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?Mt:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Mt:Set,"%SetIteratorPrototype%":typeof Set>"u"||!La||!ur?Mt:ur(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Mt:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":La&&ur?ur(""[Symbol.iterator]()):Mt,"%Symbol%":La?Symbol:Mt,"%SyntaxError%":ls,"%ThrowTypeError%":p7,"%TypedArray%":g7,"%TypeError%":Qa,"%Uint8Array%":typeof Uint8Array>"u"?Mt:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Mt:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Mt:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Mt:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?Mt:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Mt:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Mt:WeakSet};if(ur)try{null.error}catch(e){var m7=ur(ur(e));oa["%Error.prototype%"]=m7}var y7=function e(t){var r;if(t==="%AsyncFunction%")r=jc("async function () {}");else if(t==="%GeneratorFunction%")r=jc("function* () {}");else if(t==="%AsyncGeneratorFunction%")r=jc("async function* () {}");else if(t==="%AsyncGenerator%"){var i=e("%AsyncGeneratorFunction%");i&&(r=i.prototype)}else if(t==="%AsyncIteratorPrototype%"){var a=e("%AsyncGenerator%");a&&ur&&(r=ur(a.prototype))}return oa[t]=r,r},Qm={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},pu=jv,Fl=d7,b7=pu.call(Function.call,Array.prototype.concat),w7=pu.call(Function.apply,Array.prototype.splice),e1=pu.call(Function.call,String.prototype.replace),jl=pu.call(Function.call,String.prototype.slice),_7=pu.call(Function.call,RegExp.prototype.exec),M7=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,S7=/\\(\\)?/g,x7=function(t){var r=jl(t,0,1),i=jl(t,-1);if(r==="%"&&i!=="%")throw new ls("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&r!=="%")throw new ls("invalid intrinsic syntax, expected opening `%`");var a=[];return e1(t,M7,function(n,u,c,d){a[a.length]=c?e1(d,S7,"$1"):u||n}),a},E7=function(t,r){var i=t,a;if(Fl(Qm,i)&&(a=Qm[i],i="%"+a[0]+"%"),Fl(oa,i)){var n=oa[i];if(n===Ua&&(n=y7(i)),typeof n>"u"&&!r)throw new Qa("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:a,name:i,value:n}}throw new ls("intrinsic "+t+" does not exist!")},Uv=function(t,r){if(typeof t!="string"||t.length===0)throw new Qa("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Qa('"allowMissing" argument must be a boolean');if(_7(/^%?[^%]*%?$/,t)===null)throw new ls("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=x7(t),a=i.length>0?i[0]:"",n=E7("%"+a+"%",r),u=n.name,c=n.value,d=!1,m=n.alias;m&&(a=m[0],w7(i,b7([0,1],m)));for(var M=1,S=!0;M<i.length;M+=1){var R=i[M],C=jl(R,0,1),P=jl(R,-1);if((C==='"'||C==="'"||C==="`"||P==='"'||P==="'"||P==="`")&&C!==P)throw new ls("property names with quotes must have matching quotes");if((R==="constructor"||!S)&&(d=!0),a+="."+R,u="%"+a+"%",Fl(oa,u))c=oa[u];else if(c!=null){if(!(R in c)){if(!r)throw new Qa("base intrinsic for "+t+" exists, but the property is not available.");return}if(na&&M+1>=i.length){var k=na(c,R);S=!!k,S&&"get"in k&&!("originalValue"in k.get)?c=k.get:c=c[R]}else S=Fl(c,R),c=c[R];S&&!d&&(oa[u]=c)}}return c},z_={exports:{}};(function(e){var t=jv,r=Uv,i=r("%Function.prototype.apply%"),a=r("%Function.prototype.call%"),n=r("%Reflect.apply%",!0)||t.call(a,i),u=r("%Object.getOwnPropertyDescriptor%",!0),c=r("%Object.defineProperty%",!0),d=r("%Math.max%");if(c)try{c({},"a",{value:1})}catch{c=null}e.exports=function(S){var R=n(t,a,arguments);if(u&&c){var C=u(R,"length");C.configurable&&c(R,"length",{value:1+d(0,S.length-(arguments.length-1))})}return R};var m=function(){return n(t,i,arguments)};c?c(e.exports,"apply",{value:m}):e.exports.apply=m})(z_);var R7=z_.exports,G_=Uv,Y_=R7,A7=Y_(G_("String.prototype.indexOf")),Hv=function(t,r){var i=G_(t,!!r);return typeof i=="function"&&A7(t,".prototype.")>-1?Y_(i):i},T7=Th(),O7=Hv,np=O7("Object.prototype.toString"),Oh=function(t){return T7&&t&&typeof t=="object"&&Symbol.toStringTag in t?!1:np(t)==="[object Arguments]"},Z_=function(t){return Oh(t)?!0:t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&np(t)!=="[object Array]"&&np(t.callee)==="[object Function]"},I7=function(){return Oh(arguments)}();Oh.isLegacyArguments=Z_;var P7=I7?Oh:Z_,C7=Object.prototype.toString,B7=Function.prototype.toString,L7=/^\s*(?:function)?\*/,X_=Th(),Hc=Object.getPrototypeOf,N7=function(){if(!X_)return!1;try{return Function("return function*() {}")()}catch{}},qc,k7=function(t){if(typeof t!="function")return!1;if(L7.test(B7.call(t)))return!0;if(!X_){var r=C7.call(t);return r==="[object GeneratorFunction]"}if(!Hc)return!1;if(typeof qc>"u"){var i=N7();qc=i?Hc(i):!1}return Hc(t)===qc},J_=Function.prototype.toString,Ka=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,op,sl;if(typeof Ka=="function"&&typeof Object.defineProperty=="function")try{op=Object.defineProperty({},"length",{get:function(){throw sl}}),sl={},Ka(function(){throw 42},null,op)}catch(e){e!==sl&&(Ka=null)}else Ka=null;var $7=/^\s*class\b/,ap=function(t){try{var r=J_.call(t);return $7.test(r)}catch{return!1}},Wc=function(t){try{return ap(t)?!1:(J_.call(t),!0)}catch{return!1}},fl=Object.prototype.toString,D7="[object Object]",F7="[object Function]",j7="[object GeneratorFunction]",U7="[object HTMLAllCollection]",H7="[object HTML document.all class]",q7="[object HTMLCollection]",W7=typeof Symbol=="function"&&!!Symbol.toStringTag,K7=!(0 in[,]),sp=function(){return!1};if(typeof document=="object"){var V7=document.all;fl.call(V7)===fl.call(document.all)&&(sp=function(t){if((K7||!t)&&(typeof t>"u"||typeof t=="object"))try{var r=fl.call(t);return(r===U7||r===H7||r===q7||r===D7)&&t("")==null}catch{}return!1})}var z7=Ka?function(t){if(sp(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;try{Ka(t,null,op)}catch(r){if(r!==sl)return!1}return!ap(t)&&Wc(t)}:function(t){if(sp(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;if(W7)return Wc(t);if(ap(t))return!1;var r=fl.call(t);return r!==F7&&r!==j7&&!/^\[object HTML/.test(r)?!1:Wc(t)},G7=z7,Y7=Object.prototype.toString,Q_=Object.prototype.hasOwnProperty,Z7=function(t,r,i){for(var a=0,n=t.length;a<n;a++)Q_.call(t,a)&&(i==null?r(t[a],a,t):r.call(i,t[a],a,t))},X7=function(t,r,i){for(var a=0,n=t.length;a<n;a++)i==null?r(t.charAt(a),a,t):r.call(i,t.charAt(a),a,t)},J7=function(t,r,i){for(var a in t)Q_.call(t,a)&&(i==null?r(t[a],a,t):r.call(i,t[a],a,t))},Q7=function(t,r,i){if(!G7(r))throw new TypeError("iterator must be a function");var a;arguments.length>=3&&(a=i),Y7.call(t)==="[object Array]"?Z7(t,r,a):typeof t=="string"?X7(t,r,a):J7(t,r,a)},eM=Q7,Kc=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],e9=typeof globalThis>"u"?Ye:globalThis,tM=function(){for(var t=[],r=0;r<Kc.length;r++)typeof e9[Kc[r]]=="function"&&(t[t.length]=Kc[r]);return t},t9=Uv,ul=t9("%Object.getOwnPropertyDescriptor%",!0);if(ul)try{ul([],"length")}catch{ul=null}var rM=ul,iM=eM,r9=tM,qv=Hv,i9=qv("Object.prototype.toString"),nM=Th(),ll=rM,n9=typeof globalThis>"u"?Ye:globalThis,oM=r9(),o9=qv("Array.prototype.indexOf",!0)||function(t,r){for(var i=0;i<t.length;i+=1)if(t[i]===r)return i;return-1},a9=qv("String.prototype.slice"),aM={},Vc=Object.getPrototypeOf;nM&&ll&&Vc&&iM(oM,function(e){var t=new n9[e];if(Symbol.toStringTag in t){var r=Vc(t),i=ll(r,Symbol.toStringTag);if(!i){var a=Vc(r);i=ll(a,Symbol.toStringTag)}aM[e]=i.get}});var s9=function(t){var r=!1;return iM(aM,function(i,a){if(!r)try{r=i.call(t)===a}catch{}}),r},sM=function(t){if(!t||typeof t!="object")return!1;if(!nM||!(Symbol.toStringTag in t)){var r=a9(i9(t),8,-1);return o9(oM,r)>-1}return ll?s9(t):!1},fM=eM,f9=tM,uM=Hv,zc=rM,u9=uM("Object.prototype.toString"),lM=Th(),t1=typeof globalThis>"u"?Ye:globalThis,l9=f9(),h9=uM("String.prototype.slice"),hM={},Gc=Object.getPrototypeOf;lM&&zc&&Gc&&fM(l9,function(e){if(typeof t1[e]=="function"){var t=new t1[e];if(Symbol.toStringTag in t){var r=Gc(t),i=zc(r,Symbol.toStringTag);if(!i){var a=Gc(r);i=zc(a,Symbol.toStringTag)}hM[e]=i.get}}});var c9=function(t){var r=!1;return fM(hM,function(i,a){if(!r)try{var n=i.call(t);n===a&&(r=n)}catch{}}),r},d9=sM,p9=function(t){return d9(t)?!lM||!(Symbol.toStringTag in t)?h9(u9(t),8,-1):c9(t):!1};(function(e){var t=P7,r=k7,i=p9,a=sM;function n(z){return z.call.bind(z)}var u=typeof BigInt<"u",c=typeof Symbol<"u",d=n(Object.prototype.toString),m=n(Number.prototype.valueOf),M=n(String.prototype.valueOf),S=n(Boolean.prototype.valueOf);if(u)var R=n(BigInt.prototype.valueOf);if(c)var C=n(Symbol.prototype.valueOf);function P(z,se){if(typeof z!="object")return!1;try{return se(z),!0}catch{return!1}}e.isArgumentsObject=t,e.isGeneratorFunction=r,e.isTypedArray=a;function k(z){return typeof Promise<"u"&&z instanceof Promise||z!==null&&typeof z=="object"&&typeof z.then=="function"&&typeof z.catch=="function"}e.isPromise=k;function L(z){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(z):a(z)||$(z)}e.isArrayBufferView=L;function I(z){return i(z)==="Uint8Array"}e.isUint8Array=I;function B(z){return i(z)==="Uint8ClampedArray"}e.isUint8ClampedArray=B;function H(z){return i(z)==="Uint16Array"}e.isUint16Array=H;function F(z){return i(z)==="Uint32Array"}e.isUint32Array=F;function W(z){return i(z)==="Int8Array"}e.isInt8Array=W;function Y(z){return i(z)==="Int16Array"}e.isInt16Array=Y;function ie(z){return i(z)==="Int32Array"}e.isInt32Array=ie;function J(z){return i(z)==="Float32Array"}e.isFloat32Array=J;function V(z){return i(z)==="Float64Array"}e.isFloat64Array=V;function oe(z){return i(z)==="BigInt64Array"}e.isBigInt64Array=oe;function _(z){return i(z)==="BigUint64Array"}e.isBigUint64Array=_;function o(z){return d(z)==="[object Map]"}o.working=typeof Map<"u"&&o(new Map);function f(z){return typeof Map>"u"?!1:o.working?o(z):z instanceof Map}e.isMap=f;function l(z){return d(z)==="[object Set]"}l.working=typeof Set<"u"&&l(new Set);function h(z){return typeof Set>"u"?!1:l.working?l(z):z instanceof Set}e.isSet=h;function p(z){return d(z)==="[object WeakMap]"}p.working=typeof WeakMap<"u"&&p(new WeakMap);function w(z){return typeof WeakMap>"u"?!1:p.working?p(z):z instanceof WeakMap}e.isWeakMap=w;function x(z){return d(z)==="[object WeakSet]"}x.working=typeof WeakSet<"u"&&x(new WeakSet);function g(z){return x(z)}e.isWeakSet=g;function s(z){return d(z)==="[object ArrayBuffer]"}s.working=typeof ArrayBuffer<"u"&&s(new ArrayBuffer);function v(z){return typeof ArrayBuffer>"u"?!1:s.working?s(z):z instanceof ArrayBuffer}e.isArrayBuffer=v;function T(z){return d(z)==="[object DataView]"}T.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&T(new DataView(new ArrayBuffer(1),0,1));function $(z){return typeof DataView>"u"?!1:T.working?T(z):z instanceof DataView}e.isDataView=$;var G=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function ee(z){return d(z)==="[object SharedArrayBuffer]"}function A(z){return typeof G>"u"?!1:(typeof ee.working>"u"&&(ee.working=ee(new G)),ee.working?ee(z):z instanceof G)}e.isSharedArrayBuffer=A;function E(z){return d(z)==="[object AsyncFunction]"}e.isAsyncFunction=E;function U(z){return d(z)==="[object Map Iterator]"}e.isMapIterator=U;function K(z){return d(z)==="[object Set Iterator]"}e.isSetIterator=K;function Z(z){return d(z)==="[object Generator]"}e.isGeneratorObject=Z;function b(z){return d(z)==="[object WebAssembly.Module]"}e.isWebAssemblyCompiledModule=b;function y(z){return P(z,m)}e.isNumberObject=y;function O(z){return P(z,M)}e.isStringObject=O;function q(z){return P(z,S)}e.isBooleanObject=q;function X(z){return u&&P(z,R)}e.isBigIntObject=X;function D(z){return c&&P(z,C)}e.isSymbolObject=D;function N(z){return y(z)||O(z)||q(z)||X(z)||D(z)}e.isBoxedPrimitive=N;function j(z){return typeof Uint8Array<"u"&&(v(z)||A(z))}e.isAnyArrayBuffer=j,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(z){Object.defineProperty(e,z,{enumerable:!1,value:function(){throw new Error(z+" is not supported in userland")}})})})(W_);var v9=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"},fp={exports:{}};typeof Object.create=="function"?fp.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:fp.exports=function(t,r){if(r){t.super_=r;var i=function(){};i.prototype=r.prototype,t.prototype=new i,t.prototype.constructor=t}};var Ze=fp.exports;(function(e){var t=Object.getOwnPropertyDescriptors||function($){for(var G=Object.keys($),ee={},A=0;A<G.length;A++)ee[G[A]]=Object.getOwnPropertyDescriptor($,G[A]);return ee},r=/%[sdj%]/g;e.format=function(T){if(!W(T)){for(var $=[],G=0;G<arguments.length;G++)$.push(u(arguments[G]));return $.join(" ")}for(var G=1,ee=arguments,A=ee.length,E=String(T).replace(r,function(K){if(K==="%%")return"%";if(G>=A)return K;switch(K){case"%s":return String(ee[G++]);case"%d":return Number(ee[G++]);case"%j":try{return JSON.stringify(ee[G++])}catch{return"[Circular]"}default:return K}}),U=ee[G];G<A;U=ee[++G])B(U)||!V(U)?E+=" "+U:E+=" "+u(U);return E},e.deprecate=function(T,$){if(typeof we<"u"&&we.noDeprecation===!0)return T;if(typeof we>"u")return function(){return e.deprecate(T,$).apply(this,arguments)};var G=!1;function ee(){if(!G){if(we.throwDeprecation)throw new Error($);we.traceDeprecation?console.trace($):console.error($),G=!0}return T.apply(this,arguments)}return ee};var i={},a=/^$/;if({}.NODE_DEBUG){var n={}.NODE_DEBUG;n=n.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),a=new RegExp("^"+n+"$","i")}e.debuglog=function(T){if(T=T.toUpperCase(),!i[T])if(a.test(T)){var $=we.pid;i[T]=function(){var G=e.format.apply(e,arguments);console.error("%s %d: %s",T,$,G)}}else i[T]=function(){};return i[T]};function u(T,$){var G={seen:[],stylize:d};return arguments.length>=3&&(G.depth=arguments[2]),arguments.length>=4&&(G.colors=arguments[3]),I($)?G.showHidden=$:$&&e._extend(G,$),ie(G.showHidden)&&(G.showHidden=!1),ie(G.depth)&&(G.depth=2),ie(G.colors)&&(G.colors=!1),ie(G.customInspect)&&(G.customInspect=!0),G.colors&&(G.stylize=c),M(G,T,G.depth)}e.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function c(T,$){var G=u.styles[$];return G?"\x1B["+u.colors[G][0]+"m"+T+"\x1B["+u.colors[G][1]+"m":T}function d(T,$){return T}function m(T){var $={};return T.forEach(function(G,ee){$[G]=!0}),$}function M(T,$,G){if(T.customInspect&&$&&o($.inspect)&&$.inspect!==e.inspect&&!($.constructor&&$.constructor.prototype===$)){var ee=$.inspect(G,T);return W(ee)||(ee=M(T,ee,G)),ee}var A=S(T,$);if(A)return A;var E=Object.keys($),U=m(E);if(T.showHidden&&(E=Object.getOwnPropertyNames($)),_($)&&(E.indexOf("message")>=0||E.indexOf("description")>=0))return R($);if(E.length===0){if(o($)){var K=$.name?": "+$.name:"";return T.stylize("[Function"+K+"]","special")}if(J($))return T.stylize(RegExp.prototype.toString.call($),"regexp");if(oe($))return T.stylize(Date.prototype.toString.call($),"date");if(_($))return R($)}var Z="",b=!1,y=["{","}"];if(L($)&&(b=!0,y=["[","]"]),o($)){var O=$.name?": "+$.name:"";Z=" [Function"+O+"]"}if(J($)&&(Z=" "+RegExp.prototype.toString.call($)),oe($)&&(Z=" "+Date.prototype.toUTCString.call($)),_($)&&(Z=" "+R($)),E.length===0&&(!b||$.length==0))return y[0]+Z+y[1];if(G<0)return J($)?T.stylize(RegExp.prototype.toString.call($),"regexp"):T.stylize("[Object]","special");T.seen.push($);var q;return b?q=C(T,$,G,U,E):q=E.map(function(X){return P(T,$,G,U,X,b)}),T.seen.pop(),k(q,Z,y)}function S(T,$){if(ie($))return T.stylize("undefined","undefined");if(W($)){var G="'"+JSON.stringify($).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return T.stylize(G,"string")}if(F($))return T.stylize(""+$,"number");if(I($))return T.stylize(""+$,"boolean");if(B($))return T.stylize("null","null")}function R(T){return"["+Error.prototype.toString.call(T)+"]"}function C(T,$,G,ee,A){for(var E=[],U=0,K=$.length;U<K;++U)x($,String(U))?E.push(P(T,$,G,ee,String(U),!0)):E.push("");return A.forEach(function(Z){Z.match(/^\d+$/)||E.push(P(T,$,G,ee,Z,!0))}),E}function P(T,$,G,ee,A,E){var U,K,Z;if(Z=Object.getOwnPropertyDescriptor($,A)||{value:$[A]},Z.get?Z.set?K=T.stylize("[Getter/Setter]","special"):K=T.stylize("[Getter]","special"):Z.set&&(K=T.stylize("[Setter]","special")),x(ee,A)||(U="["+A+"]"),K||(T.seen.indexOf(Z.value)<0?(B(G)?K=M(T,Z.value,null):K=M(T,Z.value,G-1),K.indexOf(`
-`)>-1&&(E?K=K.split(`
-`).map(function(b){return"  "+b}).join(`
-`).slice(2):K=`
-`+K.split(`
-`).map(function(b){return"   "+b}).join(`
-`))):K=T.stylize("[Circular]","special")),ie(U)){if(E&&A.match(/^\d+$/))return K;U=JSON.stringify(""+A),U.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(U=U.slice(1,-1),U=T.stylize(U,"name")):(U=U.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),U=T.stylize(U,"string"))}return U+": "+K}function k(T,$,G){var ee=T.reduce(function(A,E){return E.indexOf(`
-`)>=0,A+E.replace(/\u001b\[\d\d?m/g,"").length+1},0);return ee>60?G[0]+($===""?"":$+`
- `)+" "+T.join(`,
-  `)+" "+G[1]:G[0]+$+" "+T.join(", ")+" "+G[1]}e.types=W_;function L(T){return Array.isArray(T)}e.isArray=L;function I(T){return typeof T=="boolean"}e.isBoolean=I;function B(T){return T===null}e.isNull=B;function H(T){return T==null}e.isNullOrUndefined=H;function F(T){return typeof T=="number"}e.isNumber=F;function W(T){return typeof T=="string"}e.isString=W;function Y(T){return typeof T=="symbol"}e.isSymbol=Y;function ie(T){return T===void 0}e.isUndefined=ie;function J(T){return V(T)&&l(T)==="[object RegExp]"}e.isRegExp=J,e.types.isRegExp=J;function V(T){return typeof T=="object"&&T!==null}e.isObject=V;function oe(T){return V(T)&&l(T)==="[object Date]"}e.isDate=oe,e.types.isDate=oe;function _(T){return V(T)&&(l(T)==="[object Error]"||T instanceof Error)}e.isError=_,e.types.isNativeError=_;function o(T){return typeof T=="function"}e.isFunction=o;function f(T){return T===null||typeof T=="boolean"||typeof T=="number"||typeof T=="string"||typeof T=="symbol"||typeof T>"u"}e.isPrimitive=f,e.isBuffer=v9;function l(T){return Object.prototype.toString.call(T)}function h(T){return T<10?"0"+T.toString(10):T.toString(10)}var p=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function w(){var T=new Date,$=[h(T.getHours()),h(T.getMinutes()),h(T.getSeconds())].join(":");return[T.getDate(),p[T.getMonth()],$].join(" ")}e.log=function(){console.log("%s - %s",w(),e.format.apply(e,arguments))},e.inherits=Ze,e._extend=function(T,$){if(!$||!V($))return T;for(var G=Object.keys($),ee=G.length;ee--;)T[G[ee]]=$[G[ee]];return T};function x(T,$){return Object.prototype.hasOwnProperty.call(T,$)}var g=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;e.promisify=function($){if(typeof $!="function")throw new TypeError('The "original" argument must be of type Function');if(g&&$[g]){var G=$[g];if(typeof G!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(G,g,{value:G,enumerable:!1,writable:!1,configurable:!0}),G}function G(){for(var ee,A,E=new Promise(function(Z,b){ee=Z,A=b}),U=[],K=0;K<arguments.length;K++)U.push(arguments[K]);U.push(function(Z,b){Z?A(Z):ee(b)});try{$.apply(this,U)}catch(Z){A(Z)}return E}return Object.setPrototypeOf(G,Object.getPrototypeOf($)),g&&Object.defineProperty(G,g,{value:G,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(G,t($))},e.promisify.custom=g;function s(T,$){if(!T){var G=new Error("Promise was rejected with a falsy value");G.reason=T,T=G}return $(T)}function v(T){if(typeof T!="function")throw new TypeError('The "original" argument must be of type Function');function $(){for(var G=[],ee=0;ee<arguments.length;ee++)G.push(arguments[ee]);var A=G.pop();if(typeof A!="function")throw new TypeError("The last argument must be of type Function");var E=this,U=function(){return A.apply(E,arguments)};T.apply(this,G).then(function(K){we.nextTick(U.bind(null,null,K))},function(K){we.nextTick(s.bind(null,K,U))})}return Object.setPrototypeOf($,Object.getPrototypeOf(T)),Object.defineProperties($,t(T)),$}e.callbackify=v})(ei);var Yc,r1;function g9(){if(r1)return Yc;r1=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return Yc=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),Yc}function m9(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(up,this,e)):we.nextTick(up,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(hl,r):(r._writableState.errorEmitted=!0,we.nextTick(i1,r,n)):we.nextTick(i1,r,n):t?(we.nextTick(hl,r),t(n)):we.nextTick(hl,r)}),this)}function i1(e,t){up(e,t),hl(e)}function hl(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function y9(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function up(e,t){e.emit("error",t)}function b9(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var cM={destroy:m9,undestroy:y9,errorOrDestroy:b9},_a={};function w9(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var dM={};function yi(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){w9(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,dM[e]=a}function n1(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function _9(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function M9(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function S9(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}yi("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);yi("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&_9(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(M9(e," argument"))a="The ".concat(e," ").concat(i," ").concat(n1(t,"type"));else{var n=S9(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(n1(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);yi("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");yi("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});yi("ERR_STREAM_PREMATURE_CLOSE","Premature close");yi("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});yi("ERR_MULTIPLE_CALLBACK","Callback called multiple times");yi("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");yi("ERR_STREAM_WRITE_AFTER_END","write after end");yi("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);yi("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);yi("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");_a.codes=dM;var x9=_a.codes.ERR_INVALID_OPT_VALUE;function E9(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function R9(e,t,r,i){var a=E9(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new x9(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var pM={getHighWaterMark:R9},ks=A9;function A9(e,t){if(Zc("noDeprecation"))return e;var r=!1;function i(){if(!r){if(Zc("throwDeprecation"))throw new Error(t);Zc("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return i}function Zc(e){try{if(!Ye.localStorage)return!1}catch{return!1}var t=Ye.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var Xc,o1;function vM(){if(o1)return Xc;o1=1,Xc=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=q_,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=cM,m=pM,M=m.getHighWaterMark,S=_a.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||hs(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||hs();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},Xc}var Jc,a1;function hs(){if(a1)return Jc;a1=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};Jc=u;var t=mM(),r=vM();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),Jc}var Qc={},lp={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var r=ke,i=r.Buffer;function a(u,c){for(var d in u)c[d]=u[d]}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=n);function n(u,c,d){return i(u,c,d)}n.prototype=Object.create(i.prototype),a(i,n),n.from=function(u,c,d){if(typeof u=="number")throw new TypeError("Argument must not be a number");return i(u,c,d)},n.alloc=function(u,c,d){if(typeof u!="number")throw new TypeError("Argument must be a number");var m=i(u);return c!==void 0?typeof d=="string"?m.fill(c,d):m.fill(c):m.fill(0),m},n.allocUnsafe=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return i(u)},n.allocUnsafeSlow=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(u)}})(lp,lp.exports);var pt=lp.exports,s1;function Xr(){if(s1)return Qc;s1=1;var e=pt.Buffer,t=e.isEncoding||function(I){switch(I=""+I,I&&I.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r(I){if(!I)return"utf8";for(var B;;)switch(I){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return I;default:if(B)return;I=(""+I).toLowerCase(),B=!0}}function i(I){var B=r(I);if(typeof B!="string"&&(e.isEncoding===t||!t(I)))throw new Error("Unknown encoding: "+I);return B||I}Qc.StringDecoder=a;function a(I){this.encoding=i(I);var B;switch(this.encoding){case"utf16le":this.text=S,this.end=R,B=4;break;case"utf8":this.fillLast=d,B=4;break;case"base64":this.text=C,this.end=P,B=3;break;default:this.write=k,this.end=L;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=e.allocUnsafe(B)}a.prototype.write=function(I){if(I.length===0)return"";var B,H;if(this.lastNeed){if(B=this.fillLast(I),B===void 0)return"";H=this.lastNeed,this.lastNeed=0}else H=0;return H<I.length?B?B+this.text(I,H):this.text(I,H):B||""},a.prototype.end=M,a.prototype.text=m,a.prototype.fillLast=function(I){if(this.lastNeed<=I.length)return I.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);I.copy(this.lastChar,this.lastTotal-this.lastNeed,0,I.length),this.lastNeed-=I.length};function n(I){return I<=127?0:I>>5===6?2:I>>4===14?3:I>>3===30?4:I>>6===2?-1:-2}function u(I,B,H){var F=B.length-1;if(F<H)return 0;var W=n(B[F]);return W>=0?(W>0&&(I.lastNeed=W-1),W):--F<H||W===-2?0:(W=n(B[F]),W>=0?(W>0&&(I.lastNeed=W-2),W):--F<H||W===-2?0:(W=n(B[F]),W>=0?(W>0&&(W===2?W=0:I.lastNeed=W-3),W):0))}function c(I,B,H){if((B[0]&192)!==128)return I.lastNeed=0,"�";if(I.lastNeed>1&&B.length>1){if((B[1]&192)!==128)return I.lastNeed=1,"�";if(I.lastNeed>2&&B.length>2&&(B[2]&192)!==128)return I.lastNeed=2,"�"}}function d(I){var B=this.lastTotal-this.lastNeed,H=c(this,I);if(H!==void 0)return H;if(this.lastNeed<=I.length)return I.copy(this.lastChar,B,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);I.copy(this.lastChar,B,0,I.length),this.lastNeed-=I.length}function m(I,B){var H=u(this,I,B);if(!this.lastNeed)return I.toString("utf8",B);this.lastTotal=H;var F=I.length-(H-this.lastNeed);return I.copy(this.lastChar,0,F),I.toString("utf8",B,F)}function M(I){var B=I&&I.length?this.write(I):"";return this.lastNeed?B+"�":B}function S(I,B){if((I.length-B)%2===0){var H=I.toString("utf16le",B);if(H){var F=H.charCodeAt(H.length-1);if(F>=55296&&F<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=I[I.length-2],this.lastChar[1]=I[I.length-1],H.slice(0,-1)}return H}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=I[I.length-1],I.toString("utf16le",B,I.length-1)}function R(I){var B=I&&I.length?this.write(I):"";if(this.lastNeed){var H=this.lastTotal-this.lastNeed;return B+this.lastChar.toString("utf16le",0,H)}return B}function C(I,B){var H=(I.length-B)%3;return H===0?I.toString("base64",B):(this.lastNeed=3-H,this.lastTotal=3,H===1?this.lastChar[0]=I[I.length-1]:(this.lastChar[0]=I[I.length-2],this.lastChar[1]=I[I.length-1]),I.toString("base64",B,I.length-H))}function P(I){var B=I&&I.length?this.write(I):"";return this.lastNeed?B+this.lastChar.toString("base64",0,3-this.lastNeed):B}function k(I){return I.toString(this.encoding)}function L(I){return I&&I.length?this.write(I):""}return Qc}var f1=_a.codes.ERR_STREAM_PREMATURE_CLOSE;function T9(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function O9(){}function I9(e){return e.setHeader&&typeof e.abort=="function"}function gM(e,t,r){if(typeof t=="function")return gM(e,null,t);t||(t={}),r=T9(r||O9);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new f1),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new f1),r.call(e,P)},R=function(){e.req.on("finish",c)};return I9(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var Wv=gM,ed,u1;function P9(){if(u1)return ed;u1=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=Wv,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return ed=B,ed}var td,l1;function C9(){return l1||(l1=1,td=function(){throw new Error("Readable.from is not available in the browser")}),td}var rd,h1;function mM(){if(h1)return rd;h1=1,rd=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=q_,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=g9(),M=cM,S=pM,R=S.getHighWaterMark,C=_a.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||hs(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||hs(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=P9()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=C9()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return rd}var yM=kn,Ih=_a.codes,B9=Ih.ERR_METHOD_NOT_IMPLEMENTED,L9=Ih.ERR_MULTIPLE_CALLBACK,N9=Ih.ERR_TRANSFORM_ALREADY_TRANSFORMING,k9=Ih.ERR_TRANSFORM_WITH_LENGTH_0,Ph=hs();Ze(kn,Ph);function $9(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new L9);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function kn(e){if(!(this instanceof kn))return new kn(e);Ph.call(this,e),this._transformState={afterTransform:$9.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",D9)}function D9(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){c1(e,t,r)}):c1(this,null,null)}kn.prototype.push=function(e,t){return this._transformState.needTransform=!1,Ph.prototype.push.call(this,e,t)};kn.prototype._transform=function(e,t,r){r(new B9("_transform()"))};kn.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};kn.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};kn.prototype._destroy=function(e,t){Ph.prototype._destroy.call(this,e,function(r){t(r)})};function c1(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new k9;if(e._transformState.transforming)throw new N9;return e.push(null)}var F9=Jf,bM=yM;Ze(Jf,bM);function Jf(e){if(!(this instanceof Jf))return new Jf(e);bM.call(this,e)}Jf.prototype._transform=function(e,t,r){r(null,e)};var id;function j9(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var wM=_a.codes,U9=wM.ERR_MISSING_ARGS,H9=wM.ERR_STREAM_DESTROYED;function d1(e){if(e)throw e}function q9(e){return e.setHeader&&typeof e.abort=="function"}function W9(e,t,r,i){i=j9(i);var a=!1;e.on("close",function(){a=!0}),id===void 0&&(id=Wv),id(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,q9(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new H9("pipe"))}}}function p1(e){e()}function K9(e,t){return e.pipe(t)}function V9(e){return!e.length||typeof e[e.length-1]!="function"?d1:e.pop()}function z9(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=V9(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new U9("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return W9(u,d,m,function(M){a||(a=M),M&&n.forEach(p1),!d&&(n.forEach(p1),i(a))})});return t.reduce(K9)}var G9=z9;(function(e,t){t=e.exports=mM(),t.Stream=t,t.Readable=t,t.Writable=vM(),t.Duplex=hs(),t.Transform=yM,t.PassThrough=F9,t.finished=Wv,t.pipeline=G9})(ip,ip.exports);var vu=ip.exports;const Y9=Fv,Z9=vu.Readable,X9={objectMode:!0},J9={clean:!0};function Ao(e){if(!(this instanceof Ao))return new Ao(e);this.options=e||{},this.options=Y9(J9,e),this._inflights=new Map}Ao.prototype.put=function(e,t){return this._inflights.set(e.messageId,e),t&&t(),this};Ao.prototype.createStream=function(){const e=new Z9(X9),t=[];let r=!1,i=0;return this._inflights.forEach(function(a,n){t.push(a)}),e._read=function(){!r&&i<t.length?this.push(t[i++]):this.push(null)},e.destroy=function(){if(r)return;const a=this;r=!0,setTimeout(function(){a.emit("close")},0)},e};Ao.prototype.del=function(e,t){return e=this._inflights.get(e.messageId),e?(this._inflights.delete(e.messageId),t(null,e)):t&&t(new Error("missing packet")),this};Ao.prototype.get=function(e,t){return e=this._inflights.get(e.messageId),e?t(null,e):t&&t(new Error("missing packet")),this};Ao.prototype.close=function(e){this.options.clean&&(this._inflights=null),e&&e()};var _M=Ao;function cs(e){if(!(this instanceof cs))return new cs(e);this.aliasToTopic={},this.max=e}cs.prototype.put=function(e,t){return t===0||t>this.max?!1:(this.aliasToTopic[t]=e,this.length=Object.keys(this.aliasToTopic).length,!0)};cs.prototype.getTopicByAlias=function(e){return this.aliasToTopic[e]};cs.prototype.clear=function(){this.aliasToTopic={}};var Q9=cs,nd,v1;function eA(){return v1||(v1=1,nd=function(e){e.prototype[Symbol.iterator]=function*(){for(let t=this.head;t;t=t.next)yield t.value}}),nd}var tA=Nt;Nt.Node=la;Nt.create=Nt;function Nt(e){var t=this;if(t instanceof Nt||(t=new Nt),t.tail=null,t.head=null,t.length=0,e&&typeof e.forEach=="function")e.forEach(function(a){t.push(a)});else if(arguments.length>0)for(var r=0,i=arguments.length;r<i;r++)t.push(arguments[r]);return t}Nt.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t};Nt.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}};Nt.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}};Nt.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)iA(this,arguments[e]);return this.length};Nt.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)nA(this,arguments[e]);return this.length};Nt.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}};Nt.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}};Nt.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,i=0;r!==null;i++)e.call(t,r.value,i,this),r=r.next};Nt.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,i=this.length-1;r!==null;i--)e.call(t,r.value,i,this),r=r.prev};Nt.prototype.get=function(e){for(var t=0,r=this.head;r!==null&&t<e;t++)r=r.next;if(t===e&&r!==null)return r.value};Nt.prototype.getReverse=function(e){for(var t=0,r=this.tail;r!==null&&t<e;t++)r=r.prev;if(t===e&&r!==null)return r.value};Nt.prototype.map=function(e,t){t=t||this;for(var r=new Nt,i=this.head;i!==null;)r.push(e.call(t,i.value,this)),i=i.next;return r};Nt.prototype.mapReverse=function(e,t){t=t||this;for(var r=new Nt,i=this.tail;i!==null;)r.push(e.call(t,i.value,this)),i=i.prev;return r};Nt.prototype.reduce=function(e,t){var r,i=this.head;if(arguments.length>1)r=t;else if(this.head)i=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;i!==null;a++)r=e(r,i.value,a),i=i.next;return r};Nt.prototype.reduceReverse=function(e,t){var r,i=this.tail;if(arguments.length>1)r=t;else if(this.tail)i=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;i!==null;a--)r=e(r,i.value,a),i=i.prev;return r};Nt.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;r!==null;t++)e[t]=r.value,r=r.next;return e};Nt.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;r!==null;t++)e[t]=r.value,r=r.prev;return e};Nt.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var r=new Nt;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=0,a=this.head;a!==null&&i<e;i++)a=a.next;for(;a!==null&&i<t;i++,a=a.next)r.push(a.value);return r};Nt.prototype.sliceReverse=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var r=new Nt;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=this.length,a=this.tail;a!==null&&i>t;i--)a=a.prev;for(;a!==null&&i>e;i--,a=a.prev)r.push(a.value);return r};Nt.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,a=this.head;a!==null&&i<e;i++)a=a.next;for(var n=[],i=0;a&&i<t;i++)n.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var i=0;i<r.length;i++)a=rA(this,a,r[i]);return n};Nt.prototype.reverse=function(){for(var e=this.head,t=this.tail,r=e;r!==null;r=r.prev){var i=r.prev;r.prev=r.next,r.next=i}return this.head=t,this.tail=e,this};function rA(e,t,r){var i=t===e.head?new la(r,null,t,e):new la(r,t,t.next,e);return i.next===null&&(e.tail=i),i.prev===null&&(e.head=i),e.length++,i}function iA(e,t){e.tail=new la(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function nA(e,t){e.head=new la(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function la(e,t,r,i){if(!(this instanceof la))return new la(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}try{eA()(Nt)}catch{}const oA=tA,Vo=Symbol("max"),En=Symbol("length"),Na=Symbol("lengthCalculator"),kf=Symbol("allowStale"),Zo=Symbol("maxAge"),Sn=Symbol("dispose"),g1=Symbol("noDisposeOnSet"),fr=Symbol("lruList"),Pi=Symbol("cache"),MM=Symbol("updateAgeOnGet"),od=()=>1;class aA{constructor(t){if(typeof t=="number"&&(t={max:t}),t||(t={}),t.max&&(typeof t.max!="number"||t.max<0))throw new TypeError("max must be a non-negative number");this[Vo]=t.max||1/0;const r=t.length||od;if(this[Na]=typeof r!="function"?od:r,this[kf]=t.stale||!1,t.maxAge&&typeof t.maxAge!="number")throw new TypeError("maxAge must be a number");this[Zo]=t.maxAge||0,this[Sn]=t.dispose,this[g1]=t.noDisposeOnSet||!1,this[MM]=t.updateAgeOnGet||!1,this.reset()}set max(t){if(typeof t!="number"||t<0)throw new TypeError("max must be a non-negative number");this[Vo]=t||1/0,Js(this)}get max(){return this[Vo]}set allowStale(t){this[kf]=!!t}get allowStale(){return this[kf]}set maxAge(t){if(typeof t!="number")throw new TypeError("maxAge must be a non-negative number");this[Zo]=t,Js(this)}get maxAge(){return this[Zo]}set lengthCalculator(t){typeof t!="function"&&(t=od),t!==this[Na]&&(this[Na]=t,this[En]=0,this[fr].forEach(r=>{r.length=this[Na](r.value,r.key),this[En]+=r.length})),Js(this)}get lengthCalculator(){return this[Na]}get length(){return this[En]}get itemCount(){return this[fr].length}rforEach(t,r){r=r||this;for(let i=this[fr].tail;i!==null;){const a=i.prev;m1(this,t,i,r),i=a}}forEach(t,r){r=r||this;for(let i=this[fr].head;i!==null;){const a=i.next;m1(this,t,i,r),i=a}}keys(){return this[fr].toArray().map(t=>t.key)}values(){return this[fr].toArray().map(t=>t.value)}reset(){this[Sn]&&this[fr]&&this[fr].length&&this[fr].forEach(t=>this[Sn](t.key,t.value)),this[Pi]=new Map,this[fr]=new oA,this[En]=0}dump(){return this[fr].map(t=>Ul(this,t)?!1:{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}).toArray().filter(t=>t)}dumpLru(){return this[fr]}set(t,r,i){if(i=i||this[Zo],i&&typeof i!="number")throw new TypeError("maxAge must be a number");const a=i?Date.now():0,n=this[Na](r,t);if(this[Pi].has(t)){if(n>this[Vo])return es(this,this[Pi].get(t)),!1;const d=this[Pi].get(t).value;return this[Sn]&&(this[g1]||this[Sn](t,d.value)),d.now=a,d.maxAge=i,d.value=r,this[En]+=n-d.length,d.length=n,this.get(t),Js(this),!0}const u=new sA(t,r,n,a,i);return u.length>this[Vo]?(this[Sn]&&this[Sn](t,r),!1):(this[En]+=u.length,this[fr].unshift(u),this[Pi].set(t,this[fr].head),Js(this),!0)}has(t){if(!this[Pi].has(t))return!1;const r=this[Pi].get(t).value;return!Ul(this,r)}get(t){return ad(this,t,!0)}peek(t){return ad(this,t,!1)}pop(){const t=this[fr].tail;return t?(es(this,t),t.value):null}del(t){es(this,this[Pi].get(t))}load(t){this.reset();const r=Date.now();for(let i=t.length-1;i>=0;i--){const a=t[i],n=a.e||0;if(n===0)this.set(a.k,a.v);else{const u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[Pi].forEach((t,r)=>ad(this,r,!1))}}const ad=(e,t,r)=>{const i=e[Pi].get(t);if(i){const a=i.value;if(Ul(e,a)){if(es(e,i),!e[kf])return}else r&&(e[MM]&&(i.value.now=Date.now()),e[fr].unshiftNode(i));return a.value}},Ul=(e,t)=>{if(!t||!t.maxAge&&!e[Zo])return!1;const r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[Zo]&&r>e[Zo]},Js=e=>{if(e[En]>e[Vo])for(let t=e[fr].tail;e[En]>e[Vo]&&t!==null;){const r=t.prev;es(e,t),t=r}},es=(e,t)=>{if(t){const r=t.value;e[Sn]&&e[Sn](r.key,r.value),e[En]-=r.length,e[Pi].delete(r.key),e[fr].removeNode(t)}};class sA{constructor(t,r,i,a,n){this.key=t,this.value=r,this.length=i,this.now=a,this.maxAge=n||0}}const m1=(e,t,r,i)=>{let a=r.value;Ul(e,a)&&(es(e,r),e[kf]||(a=void 0)),a&&t.call(i,a.value,a.key,e)};var fA=aA,SM={},uA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),Ch=function(){function e(t){t===void 0&&(t=0),this.iteratorType=t}return e.prototype.equals=function(t){return this.o===t.o},e}(),Bh=function(){function e(){this.M=0}return Object.defineProperty(e.prototype,"length",{get:function(){return this.M},enumerable:!1,configurable:!0}),e.prototype.size=function(){return this.M},e.prototype.empty=function(){return this.M===0},e}(),Kv=function(e){uA(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(Bh),lA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),hA=function(e){lA(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this;i.nt=[];var a=i;return r.forEach(function(n){a.push(n)}),i}return t.prototype.clear=function(){this.M=0,this.nt=[]},t.prototype.push=function(r){return this.nt.push(r),this.M+=1,this.M},t.prototype.pop=function(){if(this.M!==0)return this.M-=1,this.nt.pop()},t.prototype.top=function(){return this.nt[this.M-1]},t}(Bh);const cA=hA;var dA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),pA=function(e){dA(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this;i.A=0,i.tt=[];var a=i;return r.forEach(function(n){a.push(n)}),i}return t.prototype.clear=function(){this.tt=[],this.M=this.A=0},t.prototype.push=function(r){var i=this.tt.length;if(this.A/i>.5&&this.A+this.M>=i&&i>4096){for(var a=this.M,n=0;n<a;++n)this.tt[n]=this.tt[this.A+n];this.A=0,this.tt[this.M]=r}else this.tt[this.A+this.M]=r;return++this.M},t.prototype.pop=function(){if(this.M!==0){var r=this.tt[this.A++];return this.M-=1,r}},t.prototype.front=function(){if(this.M!==0)return this.tt[this.A]},t}(Bh);const vA=pA;var gA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),y1=globalThis&&globalThis.q||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),a,n=[],u;try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)n.push(a.value)}catch(c){u={error:c}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(u)throw u.error}}return n},b1=globalThis&&globalThis.D||function(e,t,r){if(r||arguments.length===2)for(var i=0,a=t.length,n;i<a;i++)(n||!(i in t))&&(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))},mA=function(e){gA(t,e);function t(r,i,a){r===void 0&&(r=[]),i===void 0&&(i=function(m,M){return m>M?-1:m<M?1:0}),a===void 0&&(a=!0);var n=e.call(this)||this;if(n.$=i,Array.isArray(r))n.ii=a?b1([],y1(r),!1):r;else{n.ii=[];var u=n;r.forEach(function(m){u.ii.push(m)})}n.M=n.ii.length;for(var c=n.M>>1,d=n.M-1>>1;d>=0;--d)n.ri(d,c);return n}return t.prototype.ti=function(r){for(var i=this.ii[r];r>0;){var a=r-1>>1,n=this.ii[a];if(this.$(n,i)<=0)break;this.ii[r]=n,r=a}this.ii[r]=i},t.prototype.ri=function(r,i){for(var a=this.ii[r];r<i;){var n=r<<1|1,u=n+1,c=this.ii[n];if(u<this.M&&this.$(c,this.ii[u])>0&&(n=u,c=this.ii[u]),this.$(c,a)>=0)break;this.ii[r]=c,r=n}this.ii[r]=a},t.prototype.clear=function(){this.M=0,this.ii.length=0},t.prototype.push=function(r){this.ii.push(r),this.ti(this.M),this.M+=1},t.prototype.pop=function(){if(this.M!==0){var r=this.ii[0],i=this.ii.pop();return this.M-=1,this.M&&(this.ii[0]=i,this.ri(0,this.M>>1)),r}},t.prototype.top=function(){return this.ii[0]},t.prototype.find=function(r){return this.ii.indexOf(r)>=0},t.prototype.remove=function(r){var i=this.ii.indexOf(r);return i<0?!1:(i===0?this.pop():i===this.M-1?(this.ii.pop(),this.M-=1):(this.ii.splice(i,1,this.ii.pop()),this.M-=1,this.ti(i),this.ri(i,this.M>>1)),!0)},t.prototype.updateItem=function(r){var i=this.ii.indexOf(r);return i<0?!1:(this.ti(i),this.ri(i,this.M>>1),!0)},t.prototype.toArray=function(){return b1([],y1(this.ii),!1)},t}(Bh);const yA=mA;var bA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),wA=function(e){bA(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(Kv);const Vv=wA;function zt(){throw new RangeError("Iterator access denied!")}var _A=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),xM=function(e){_A(t,e);function t(r,i){var a=e.call(this,i)||this;return a.o=r,a.iteratorType===0?(a.pre=function(){return this.o===0&&zt(),this.o-=1,this},a.next=function(){return this.o===this.container.size()&&zt(),this.o+=1,this}):(a.pre=function(){return this.o===this.container.size()-1&&zt(),this.o+=1,this},a.next=function(){return this.o===-1&&zt(),this.o-=1,this}),a}return Object.defineProperty(t.prototype,"pointer",{get:function(){return this.container.getElementByPos(this.o)},set:function(r){this.container.setElementByPos(this.o,r)},enumerable:!1,configurable:!0}),t}(Ch),EM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),MA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},w1=globalThis&&globalThis.q||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),a,n=[],u;try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)n.push(a.value)}catch(c){u={error:c}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(u)throw u.error}}return n},_1=globalThis&&globalThis.D||function(e,t,r){if(r||arguments.length===2)for(var i=0,a=t.length,n;i<a;i++)(n||!(i in t))&&(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))},SA=globalThis&&globalThis.V||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Qs=function(e){EM(t,e);function t(r,i,a){var n=e.call(this,r,a)||this;return n.container=i,n}return t.prototype.copy=function(){return new t(this.o,this.container,this.iteratorType)},t}(xM),xA=function(e){EM(t,e);function t(r,i){r===void 0&&(r=[]),i===void 0&&(i=!0);var a=e.call(this)||this;if(Array.isArray(r))a.J=i?_1([],w1(r),!1):r,a.M=r.length;else{a.J=[];var n=a;r.forEach(function(u){n.pushBack(u)})}return a}return t.prototype.clear=function(){this.M=0,this.J.length=0},t.prototype.begin=function(){return new Qs(0,this)},t.prototype.end=function(){return new Qs(this.M,this)},t.prototype.rBegin=function(){return new Qs(this.M-1,this,1)},t.prototype.rEnd=function(){return new Qs(-1,this,1)},t.prototype.front=function(){return this.J[0]},t.prototype.back=function(){return this.J[this.M-1]},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;return this.J[r]},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;return this.J.splice(r,1),this.M-=1,this.M},t.prototype.eraseElementByValue=function(r){for(var i=0,a=0;a<this.M;++a)this.J[a]!==r&&(this.J[i++]=this.J[a]);return this.M=this.J.length=i,this.M},t.prototype.eraseElementByIterator=function(r){var i=r.o;return r=r.next(),this.eraseElementByPos(i),r},t.prototype.pushBack=function(r){return this.J.push(r),this.M+=1,this.M},t.prototype.popBack=function(){if(this.M!==0)return this.M-=1,this.J.pop()},t.prototype.setElementByPos=function(r,i){if(r<0||r>this.M-1)throw new RangeError;this.J[r]=i},t.prototype.insert=function(r,i,a){var n;if(a===void 0&&(a=1),r<0||r>this.M)throw new RangeError;return(n=this.J).splice.apply(n,_1([r,0],w1(new Array(a).fill(i)),!1)),this.M+=a,this.M},t.prototype.find=function(r){for(var i=0;i<this.M;++i)if(this.J[i]===r)return new Qs(i,this);return this.end()},t.prototype.reverse=function(){this.J.reverse()},t.prototype.unique=function(){for(var r=1,i=1;i<this.M;++i)this.J[i]!==this.J[i-1]&&(this.J[r++]=this.J[i]);return this.M=this.J.length=r,this.M},t.prototype.sort=function(r){this.J.sort(r)},t.prototype.forEach=function(r){for(var i=0;i<this.M;++i)r(this.J[i],i,this)},t.prototype[Symbol.iterator]=function(){return function(){return MA(this,function(r){switch(r.label){case 0:return[5,SA(this.J)];case 1:return r.sent(),[2]}})}.bind(this)()},t}(Vv);const EA=xA;var RM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),RA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},ef=function(e){RM(t,e);function t(r,i,a,n){var u=e.call(this,n)||this;return u.o=r,u.h=i,u.container=a,u.iteratorType===0?(u.pre=function(){return this.o.L===this.h&&zt(),this.o=this.o.L,this},u.next=function(){return this.o===this.h&&zt(),this.o=this.o.m,this}):(u.pre=function(){return this.o.m===this.h&&zt(),this.o=this.o.m,this},u.next=function(){return this.o===this.h&&zt(),this.o=this.o.L,this}),u}return Object.defineProperty(t.prototype,"pointer",{get:function(){return this.o===this.h&&zt(),this.o.p},set:function(r){this.o===this.h&&zt(),this.o.p=r},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(Ch),AA=function(e){RM(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this;i.h={},i.H=i.l=i.h.L=i.h.m=i.h;var a=i;return r.forEach(function(n){a.pushBack(n)}),i}return t.prototype.G=function(r){var i=r.L,a=r.m;i.m=a,a.L=i,r===this.H&&(this.H=a),r===this.l&&(this.l=i),this.M-=1},t.prototype.F=function(r,i){var a=i.m,n={p:r,L:i,m:a};i.m=n,a.L=n,i===this.h&&(this.H=n),a===this.h&&(this.l=n),this.M+=1},t.prototype.clear=function(){this.M=0,this.H=this.l=this.h.L=this.h.m=this.h},t.prototype.begin=function(){return new ef(this.H,this.h,this)},t.prototype.end=function(){return new ef(this.h,this.h,this)},t.prototype.rBegin=function(){return new ef(this.l,this.h,this,1)},t.prototype.rEnd=function(){return new ef(this.h,this.h,this,1)},t.prototype.front=function(){return this.H.p},t.prototype.back=function(){return this.l.p},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return i.p},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return this.G(i),this.M},t.prototype.eraseElementByValue=function(r){for(var i=this.H;i!==this.h;)i.p===r&&this.G(i),i=i.m;return this.M},t.prototype.eraseElementByIterator=function(r){var i=r.o;return i===this.h&&zt(),r=r.next(),this.G(i),r},t.prototype.pushBack=function(r){return this.F(r,this.l),this.M},t.prototype.popBack=function(){if(this.M!==0){var r=this.l.p;return this.G(this.l),r}},t.prototype.pushFront=function(r){return this.F(r,this.h),this.M},t.prototype.popFront=function(){if(this.M!==0){var r=this.H.p;return this.G(this.H),r}},t.prototype.setElementByPos=function(r,i){if(r<0||r>this.M-1)throw new RangeError;for(var a=this.H;r--;)a=a.m;a.p=i},t.prototype.insert=function(r,i,a){if(a===void 0&&(a=1),r<0||r>this.M)throw new RangeError;if(a<=0)return this.M;if(r===0)for(;a--;)this.pushFront(i);else if(r===this.M)for(;a--;)this.pushBack(i);else{for(var n=this.H,u=1;u<r;++u)n=n.m;var c=n.m;for(this.M+=a;a--;)n.m={p:i,L:n},n.m.L=n,n=n.m;n.m=c,c.L=n}return this.M},t.prototype.find=function(r){for(var i=this.H;i!==this.h;){if(i.p===r)return new ef(i,this.h,this);i=i.m}return this.end()},t.prototype.reverse=function(){if(!(this.M<=1))for(var r=this.H,i=this.l,a=0;a<<1<this.M;){var n=r.p;r.p=i.p,i.p=n,r=r.m,i=i.L,a+=1}},t.prototype.unique=function(){if(this.M<=1)return this.M;for(var r=this.H;r!==this.h;){for(var i=r;i.m!==this.h&&i.p===i.m.p;)i=i.m,this.M-=1;r.m=i.m,r.m.L=r,r=r.m}return this.M},t.prototype.sort=function(r){if(!(this.M<=1)){var i=[];this.forEach(function(n){i.push(n)}),i.sort(r);var a=this.H;i.forEach(function(n){a.p=n,a=a.m})}},t.prototype.merge=function(r){var i=this;if(this.M===0)r.forEach(function(n){i.pushBack(n)});else{var a=this.H;r.forEach(function(n){for(;a!==i.h&&a.p<=n;)a=a.m;i.F(n,a.L)})}return this.M},t.prototype.forEach=function(r){for(var i=this.H,a=0;i!==this.h;)r(i.p,a++,this),i=i.m},t.prototype[Symbol.iterator]=function(){return function(){var r;return RA(this,function(i){switch(i.label){case 0:if(this.M===0)return[2];r=this.H,i.label=1;case 1:return r===this.h?[3,3]:[4,r.p];case 2:return i.sent(),r=r.m,[3,1];case 3:return[2]}})}.bind(this)()},t}(Vv);const TA=AA;var AM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),OA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},IA=globalThis&&globalThis.q||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),a,n=[],u;try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)n.push(a.value)}catch(c){u={error:c}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(u)throw u.error}}return n},PA=globalThis&&globalThis.D||function(e,t,r){if(r||arguments.length===2)for(var i=0,a=t.length,n;i<a;i++)(n||!(i in t))&&(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))},tf=function(e){AM(t,e);function t(r,i,a){var n=e.call(this,r,a)||this;return n.container=i,n}return t.prototype.copy=function(){return new t(this.o,this.container,this.iteratorType)},t}(xM),CA=function(e){AM(t,e);function t(r,i){r===void 0&&(r=[]),i===void 0&&(i=4096);var a=e.call(this)||this;a.A=0,a.S=0,a.R=0,a.k=0,a.C=0,a.j=[];var n=function(){if(typeof r.length=="number")return r.length;if(typeof r.size=="number")return r.size;if(typeof r.size=="function")return r.size();throw new TypeError("Cannot get the length or size of the container")}();a.B=i,a.C=Math.max(Math.ceil(n/a.B),1);for(var u=0;u<a.C;++u)a.j.push(new Array(a.B));var c=Math.ceil(n/a.B);a.A=a.R=(a.C>>1)-(c>>1),a.S=a.k=a.B-n%a.B>>1;var d=a;return r.forEach(function(m){d.pushBack(m)}),a}return t.prototype.O=function(){for(var r=[],i=Math.max(this.C>>1,1),a=0;a<i;++a)r[a]=new Array(this.B);for(var a=this.A;a<this.C;++a)r[r.length]=this.j[a];for(var a=0;a<this.R;++a)r[r.length]=this.j[a];r[r.length]=PA([],IA(this.j[this.R]),!1),this.A=i,this.R=r.length-1;for(var a=0;a<i;++a)r[r.length]=new Array(this.B);this.j=r,this.C=r.length},t.prototype.T=function(r){var i=this.S+r+1,a=i%this.B,n=a-1,u=this.A+(i-a)/this.B;return a===0&&(u-=1),u%=this.C,n<0&&(n+=this.B),{curNodeBucketIndex:u,curNodePointerIndex:n}},t.prototype.clear=function(){this.j=[new Array(this.B)],this.C=1,this.A=this.R=this.M=0,this.S=this.k=this.B>>1},t.prototype.begin=function(){return new tf(0,this)},t.prototype.end=function(){return new tf(this.M,this)},t.prototype.rBegin=function(){return new tf(this.M-1,this,1)},t.prototype.rEnd=function(){return new tf(-1,this,1)},t.prototype.front=function(){if(this.M!==0)return this.j[this.A][this.S]},t.prototype.back=function(){if(this.M!==0)return this.j[this.R][this.k]},t.prototype.pushBack=function(r){return this.M&&(this.k<this.B-1?this.k+=1:this.R<this.C-1?(this.R+=1,this.k=0):(this.R=0,this.k=0),this.R===this.A&&this.k===this.S&&this.O()),this.M+=1,this.j[this.R][this.k]=r,this.M},t.prototype.popBack=function(){if(this.M!==0){var r=this.j[this.R][this.k];return this.M!==1&&(this.k>0?this.k-=1:this.R>0?(this.R-=1,this.k=this.B-1):(this.R=this.C-1,this.k=this.B-1)),this.M-=1,r}},t.prototype.pushFront=function(r){return this.M&&(this.S>0?this.S-=1:this.A>0?(this.A-=1,this.S=this.B-1):(this.A=this.C-1,this.S=this.B-1),this.A===this.R&&this.S===this.k&&this.O()),this.M+=1,this.j[this.A][this.S]=r,this.M},t.prototype.popFront=function(){if(this.M!==0){var r=this.j[this.A][this.S];return this.M!==1&&(this.S<this.B-1?this.S+=1:this.A<this.C-1?(this.A+=1,this.S=0):(this.A=0,this.S=0)),this.M-=1,r}},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;var i=this.T(r),a=i.curNodeBucketIndex,n=i.curNodePointerIndex;return this.j[a][n]},t.prototype.setElementByPos=function(r,i){if(r<0||r>this.M-1)throw new RangeError;var a=this.T(r),n=a.curNodeBucketIndex,u=a.curNodePointerIndex;this.j[n][u]=i},t.prototype.insert=function(r,i,a){if(a===void 0&&(a=1),r<0||r>this.M)throw new RangeError;if(r===0)for(;a--;)this.pushFront(i);else if(r===this.M)for(;a--;)this.pushBack(i);else{for(var n=[],u=r;u<this.M;++u)n.push(this.getElementByPos(u));this.cut(r-1);for(var u=0;u<a;++u)this.pushBack(i);for(var u=0;u<n.length;++u)this.pushBack(n[u])}return this.M},t.prototype.cut=function(r){if(r<0)return this.clear(),0;var i=this.T(r),a=i.curNodeBucketIndex,n=i.curNodePointerIndex;return this.R=a,this.k=n,this.M=r+1,this.M},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;if(r===0)this.popFront();else if(r===this.M-1)this.popBack();else{for(var i=[],a=r+1;a<this.M;++a)i.push(this.getElementByPos(a));this.cut(r),this.popBack();var n=this;i.forEach(function(u){n.pushBack(u)})}return this.M},t.prototype.eraseElementByValue=function(r){if(this.M===0)return 0;for(var i=[],a=0;a<this.M;++a){var n=this.getElementByPos(a);n!==r&&i.push(n)}for(var u=i.length,a=0;a<u;++a)this.setElementByPos(a,i[a]);return this.cut(u-1)},t.prototype.eraseElementByIterator=function(r){var i=r.o;return this.eraseElementByPos(i),r=r.next(),r},t.prototype.find=function(r){for(var i=0;i<this.M;++i)if(this.getElementByPos(i)===r)return new tf(i,this);return this.end()},t.prototype.reverse=function(){for(var r=0,i=this.M-1;r<i;){var a=this.getElementByPos(r);this.setElementByPos(r,this.getElementByPos(i)),this.setElementByPos(i,a),r+=1,i-=1}},t.prototype.unique=function(){if(this.M<=1)return this.M;for(var r=1,i=this.getElementByPos(0),a=1;a<this.M;++a){var n=this.getElementByPos(a);n!==i&&(i=n,this.setElementByPos(r++,n))}for(;this.M>r;)this.popBack();return this.M},t.prototype.sort=function(r){for(var i=[],a=0;a<this.M;++a)i.push(this.getElementByPos(a));i.sort(r);for(var a=0;a<this.M;++a)this.setElementByPos(a,i[a])},t.prototype.shrinkToFit=function(){if(this.M!==0){var r=[];this.forEach(function(a){r.push(a)}),this.C=Math.max(Math.ceil(this.M/this.B),1),this.M=this.A=this.R=this.S=this.k=0,this.j=[];for(var i=0;i<this.C;++i)this.j.push(new Array(this.B));for(var i=0;i<r.length;++i)this.pushBack(r[i])}},t.prototype.forEach=function(r){for(var i=0;i<this.M;++i)r(this.getElementByPos(i),i,this)},t.prototype[Symbol.iterator]=function(){return function(){var r;return OA(this,function(i){switch(i.label){case 0:r=0,i.label=1;case 1:return r<this.M?[4,this.getElementByPos(r)]:[3,4];case 2:i.sent(),i.label=3;case 3:return++r,[3,1];case 4:return[2]}})}.bind(this)()},t}(Vv);const BA=CA;var LA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),TM=function(){function e(t,r){this.ee=1,this.u=void 0,this.p=void 0,this.K=void 0,this.N=void 0,this.rr=void 0,this.u=t,this.p=r}return e.prototype.L=function(){var t=this;if(t.ee===1&&t.rr.rr===t)t=t.N;else if(t.K)for(t=t.K;t.N;)t=t.N;else{for(var r=t.rr;r.K===t;)t=r,r=t.rr;t=r}return t},e.prototype.m=function(){var t=this;if(t.N){for(t=t.N;t.K;)t=t.K;return t}else{for(var r=t.rr;r.N===t;)t=r,r=t.rr;return t.N!==r?r:t}},e.prototype.ne=function(){var t=this.rr,r=this.N,i=r.K;return t.rr===this?t.rr=r:t.K===this?t.K=r:t.N=r,r.rr=t,r.K=this,this.rr=r,this.N=i,i&&(i.rr=this),r},e.prototype.te=function(){var t=this.rr,r=this.K,i=r.N;return t.rr===this?t.rr=r:t.K===this?t.K=r:t.N=r,r.rr=t,r.N=this,this.rr=r,this.K=i,i&&(i.rr=this),r},e}(),NA=function(e){LA(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.tr=1,r}return t.prototype.ne=function(){var r=e.prototype.ne.call(this);return this.ie(),r.ie(),r},t.prototype.te=function(){var r=e.prototype.te.call(this);return this.ie(),r.ie(),r},t.prototype.ie=function(){this.tr=1,this.K&&(this.tr+=this.K.tr),this.N&&(this.tr+=this.N.tr)},t}(TM),kA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),M1=globalThis&&globalThis.q||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),a,n=[],u;try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)n.push(a.value)}catch(c){u={error:c}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(u)throw u.error}}return n},S1=globalThis&&globalThis.V||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},$A=function(e){kA(t,e);function t(r,i){r===void 0&&(r=function(n,u){return n<u?-1:n>u?1:0}),i===void 0&&(i=!1);var a=e.call(this)||this;return a.W=void 0,a.$=r,i?(a.re=NA,a.v=function(n,u,c){var d=this.se(n,u,c);if(d){for(var m=d.rr;m!==this.h;)m.tr+=1,m=m.rr;var M=this.fe(d);if(M){var S=M,R=S.parentNode,C=S.grandParent,P=S.curNode;R.ie(),C.ie(),P.ie()}}return this.M},a.G=function(n){for(var u=this.he(n);u!==this.h;)u.tr-=1,u=u.rr}):(a.re=TM,a.v=function(n,u,c){var d=this.se(n,u,c);return d&&this.fe(d),this.M},a.G=a.he),a.h=new a.re,a}return t.prototype.U=function(r,i){for(var a=this.h;r;){var n=this.$(r.u,i);if(n<0)r=r.N;else if(n>0)a=r,r=r.K;else return r}return a},t.prototype.X=function(r,i){for(var a=this.h;r;){var n=this.$(r.u,i);n<=0?r=r.N:(a=r,r=r.K)}return a},t.prototype.Y=function(r,i){for(var a=this.h;r;){var n=this.$(r.u,i);if(n<0)a=r,r=r.N;else if(n>0)r=r.K;else return r}return a},t.prototype.Z=function(r,i){for(var a=this.h;r;){var n=this.$(r.u,i);n<0?(a=r,r=r.N):r=r.K}return a},t.prototype.ue=function(r){for(;;){var i=r.rr;if(i===this.h)return;if(r.ee===1){r.ee=0;return}if(r===i.K){var a=i.N;if(a.ee===1)a.ee=0,i.ee=1,i===this.W?this.W=i.ne():i.ne();else if(a.N&&a.N.ee===1){a.ee=i.ee,i.ee=0,a.N.ee=0,i===this.W?this.W=i.ne():i.ne();return}else a.K&&a.K.ee===1?(a.ee=1,a.K.ee=0,a.te()):(a.ee=1,r=i)}else{var a=i.K;if(a.ee===1)a.ee=0,i.ee=1,i===this.W?this.W=i.te():i.te();else if(a.K&&a.K.ee===1){a.ee=i.ee,i.ee=0,a.K.ee=0,i===this.W?this.W=i.te():i.te();return}else a.N&&a.N.ee===1?(a.ee=1,a.N.ee=0,a.ne()):(a.ee=1,r=i)}}},t.prototype.he=function(r){var i,a;if(this.M===1)return this.clear(),this.h;for(var n=r;n.K||n.N;){if(n.N)for(n=n.N;n.K;)n=n.K;else n=n.K;i=M1([n.u,r.u],2),r.u=i[0],n.u=i[1],a=M1([n.p,r.p],2),r.p=a[0],n.p=a[1],r=n}this.h.K===n?this.h.K=n.rr:this.h.N===n&&(this.h.N=n.rr),this.ue(n);var u=n.rr;return n===u.K?u.K=void 0:u.N=void 0,this.M-=1,this.W.ee=0,u},t.prototype.ae=function(r,i){if(r===void 0)return!1;var a=this.ae(r.K,i);return a||i(r)?!0:this.ae(r.N,i)},t.prototype.fe=function(r){for(;;){var i=r.rr;if(i.ee===0)return;var a=i.rr;if(i===a.K){var n=a.N;if(n&&n.ee===1){if(n.ee=i.ee=0,a===this.W)return;a.ee=1,r=a;continue}else if(r===i.N){if(r.ee=0,r.K&&(r.K.rr=i),r.N&&(r.N.rr=a),i.N=r.K,a.K=r.N,r.K=i,r.N=a,a===this.W)this.W=r,this.h.rr=r;else{var u=a.rr;u.K===a?u.K=r:u.N=r}return r.rr=a.rr,i.rr=r,a.rr=r,a.ee=1,{parentNode:i,grandParent:a,curNode:r}}else i.ee=0,a===this.W?this.W=a.te():a.te(),a.ee=1}else{var n=a.K;if(n&&n.ee===1){if(n.ee=i.ee=0,a===this.W)return;a.ee=1,r=a;continue}else if(r===i.K){if(r.ee=0,r.K&&(r.K.rr=a),r.N&&(r.N.rr=i),a.N=r.K,i.K=r.N,r.K=a,r.N=i,a===this.W)this.W=r,this.h.rr=r;else{var u=a.rr;u.K===a?u.K=r:u.N=r}return r.rr=a.rr,i.rr=r,a.rr=r,a.ee=1,{parentNode:i,grandParent:a,curNode:r}}else i.ee=0,a===this.W?this.W=a.ne():a.ne(),a.ee=1}return}},t.prototype.se=function(r,i,a){if(this.W===void 0){this.M+=1,this.W=new this.re(r,i),this.W.ee=0,this.W.rr=this.h,this.h.rr=this.W,this.h.K=this.W,this.h.N=this.W;return}var n,u=this.h.K,c=this.$(u.u,r);if(c===0){u.p=i;return}else if(c>0)u.K=new this.re(r,i),u.K.rr=u,n=u.K,this.h.K=n;else{var d=this.h.N,m=this.$(d.u,r);if(m===0){d.p=i;return}else if(m<0)d.N=new this.re(r,i),d.N.rr=d,n=d.N,this.h.N=n;else{if(a!==void 0){var M=a.o;if(M!==this.h){var S=this.$(M.u,r);if(S===0){M.p=i;return}else if(S>0){var R=M.L(),C=this.$(R.u,r);if(C===0){R.p=i;return}else C<0&&(n=new this.re(r,i),R.N===void 0?(R.N=n,n.rr=R):(M.K=n,n.rr=M))}}}if(n===void 0)for(n=this.W;;){var P=this.$(n.u,r);if(P>0){if(n.K===void 0){n.K=new this.re(r,i),n.K.rr=n,n=n.K;break}n=n.K}else if(P<0){if(n.N===void 0){n.N=new this.re(r,i),n.N.rr=n,n=n.N;break}n=n.N}else{n.p=i;return}}}}return this.M+=1,n},t.prototype.g=function(r,i){for(;r;){var a=this.$(r.u,i);if(a<0)r=r.N;else if(a>0)r=r.K;else return r}return r||this.h},t.prototype.clear=function(){this.M=0,this.W=void 0,this.h.rr=void 0,this.h.K=this.h.N=void 0},t.prototype.updateKeyByIterator=function(r,i){var a=r.o;if(a===this.h&&zt(),this.M===1)return a.u=i,!0;if(a===this.h.K)return this.$(a.m().u,i)>0?(a.u=i,!0):!1;if(a===this.h.N)return this.$(a.L().u,i)<0?(a.u=i,!0):!1;var n=a.L().u;if(this.$(n,i)>=0)return!1;var u=a.m().u;return this.$(u,i)<=0?!1:(a.u=i,!0)},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;var i=0,a=this;return this.ae(this.W,function(n){return r===i?(a.G(n),!0):(i+=1,!1)}),this.M},t.prototype.eraseElementByKey=function(r){if(this.M===0)return!1;var i=this.g(this.W,r);return i===this.h?!1:(this.G(i),!0)},t.prototype.eraseElementByIterator=function(r){var i=r.o;i===this.h&&zt();var a=i.N===void 0,n=r.iteratorType===0;return n?a&&r.next():(!a||i.K===void 0)&&r.next(),this.G(i),r},t.prototype.forEach=function(r){var i,a,n=0;try{for(var u=S1(this),c=u.next();!c.done;c=u.next()){var d=c.value;r(d,n++,this)}}catch(m){i={error:m}}finally{try{c&&!c.done&&(a=u.return)&&a.call(u)}finally{if(i)throw i.error}}},t.prototype.getElementByPos=function(r){var i,a;if(r<0||r>this.M-1)throw new RangeError;var n,u=0;try{for(var c=S1(this),d=c.next();!d.done;d=c.next()){var m=d.value;if(u===r){n=m;break}u+=1}}catch(M){i={error:M}}finally{try{d&&!d.done&&(a=c.return)&&a.call(c)}finally{if(i)throw i.error}}return n},t.prototype.getHeight=function(){if(this.M===0)return 0;var r=function(i){return i?Math.max(r(i.K),r(i.N))+1:0};return r(this.W)},t}(Kv);const OM=$A;var DA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),FA=function(e){DA(t,e);function t(r,i,a){var n=e.call(this,a)||this;return n.o=r,n.h=i,n.iteratorType===0?(n.pre=function(){return this.o===this.h.K&&zt(),this.o=this.o.L(),this},n.next=function(){return this.o===this.h&&zt(),this.o=this.o.m(),this}):(n.pre=function(){return this.o===this.h.N&&zt(),this.o=this.o.m(),this},n.next=function(){return this.o===this.h&&zt(),this.o=this.o.L(),this}),n}return Object.defineProperty(t.prototype,"index",{get:function(){var r=this.o,i=this.h.rr;if(r===this.h)return i?i.tr-1:0;var a=0;for(r.K&&(a+=r.K.tr);r!==i;){var n=r.rr;r===n.N&&(a+=1,n.K&&(a+=n.K.tr)),r=n}return a},enumerable:!1,configurable:!0}),t}(Ch);const IM=FA;var PM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),jA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},x1=globalThis&&globalThis.V||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},vn=function(e){PM(t,e);function t(r,i,a,n){var u=e.call(this,r,i,n)||this;return u.container=a,u}return Object.defineProperty(t.prototype,"pointer",{get:function(){return this.o===this.h&&zt(),this.o.u},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(IM),UA=function(e){PM(t,e);function t(r,i,a){r===void 0&&(r=[]);var n=e.call(this,i,a)||this,u=n;return r.forEach(function(c){u.insert(c)}),n}return t.prototype.P=function(r){return jA(this,function(i){switch(i.label){case 0:return r===void 0?[2]:[5,x1(this.P(r.K))];case 1:return i.sent(),[4,r.u];case 2:return i.sent(),[5,x1(this.P(r.N))];case 3:return i.sent(),[2]}})},t.prototype.begin=function(){return new vn(this.h.K||this.h,this.h,this)},t.prototype.end=function(){return new vn(this.h,this.h,this)},t.prototype.rBegin=function(){return new vn(this.h.N||this.h,this.h,this,1)},t.prototype.rEnd=function(){return new vn(this.h,this.h,this,1)},t.prototype.front=function(){return this.h.K?this.h.K.u:void 0},t.prototype.back=function(){return this.h.N?this.h.N.u:void 0},t.prototype.insert=function(r,i){return this.v(r,void 0,i)},t.prototype.find=function(r){var i=this.g(this.W,r);return new vn(i,this.h,this)},t.prototype.lowerBound=function(r){var i=this.U(this.W,r);return new vn(i,this.h,this)},t.prototype.upperBound=function(r){var i=this.X(this.W,r);return new vn(i,this.h,this)},t.prototype.reverseLowerBound=function(r){var i=this.Y(this.W,r);return new vn(i,this.h,this)},t.prototype.reverseUpperBound=function(r){var i=this.Z(this.W,r);return new vn(i,this.h,this)},t.prototype.union=function(r){var i=this;return r.forEach(function(a){i.insert(a)}),this.M},t.prototype[Symbol.iterator]=function(){return this.P(this.W)},t}(OM);const HA=UA;var CM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),qA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},E1=globalThis&&globalThis.V||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},gn=function(e){CM(t,e);function t(r,i,a,n){var u=e.call(this,r,i,n)||this;return u.container=a,u}return Object.defineProperty(t.prototype,"pointer",{get:function(){this.o===this.h&&zt();var r=this;return new Proxy([],{get:function(i,a){if(a==="0")return r.o.u;if(a==="1")return r.o.p},set:function(i,a,n){if(a!=="1")throw new TypeError("props must be 1");return r.o.p=n,!0}})},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(IM),WA=function(e){CM(t,e);function t(r,i,a){r===void 0&&(r=[]);var n=e.call(this,i,a)||this,u=n;return r.forEach(function(c){u.setElement(c[0],c[1])}),n}return t.prototype.P=function(r){return qA(this,function(i){switch(i.label){case 0:return r===void 0?[2]:[5,E1(this.P(r.K))];case 1:return i.sent(),[4,[r.u,r.p]];case 2:return i.sent(),[5,E1(this.P(r.N))];case 3:return i.sent(),[2]}})},t.prototype.begin=function(){return new gn(this.h.K||this.h,this.h,this)},t.prototype.end=function(){return new gn(this.h,this.h,this)},t.prototype.rBegin=function(){return new gn(this.h.N||this.h,this.h,this,1)},t.prototype.rEnd=function(){return new gn(this.h,this.h,this,1)},t.prototype.front=function(){if(this.M!==0){var r=this.h.K;return[r.u,r.p]}},t.prototype.back=function(){if(this.M!==0){var r=this.h.N;return[r.u,r.p]}},t.prototype.lowerBound=function(r){var i=this.U(this.W,r);return new gn(i,this.h,this)},t.prototype.upperBound=function(r){var i=this.X(this.W,r);return new gn(i,this.h,this)},t.prototype.reverseLowerBound=function(r){var i=this.Y(this.W,r);return new gn(i,this.h,this)},t.prototype.reverseUpperBound=function(r){var i=this.Z(this.W,r);return new gn(i,this.h,this)},t.prototype.setElement=function(r,i,a){return this.v(r,i,a)},t.prototype.find=function(r){var i=this.g(this.W,r);return new gn(i,this.h,this)},t.prototype.getElementByKey=function(r){var i=this.g(this.W,r);return i.p},t.prototype.union=function(r){var i=this;return r.forEach(function(a){i.setElement(a[0],a[1])}),this.M},t.prototype[Symbol.iterator]=function(){return this.P(this.W)},t}(OM);const KA=WA;function cl(e){var t=typeof e;return t==="object"&&e!==null||t==="function"}var BM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),LM=function(e){BM(t,e);function t(r,i,a){var n=e.call(this,a)||this;return n.o=r,n.h=i,n.iteratorType===0?(n.pre=function(){return this.o.L===this.h&&zt(),this.o=this.o.L,this},n.next=function(){return this.o===this.h&&zt(),this.o=this.o.m,this}):(n.pre=function(){return this.o.m===this.h&&zt(),this.o=this.o.m,this},n.next=function(){return this.o===this.h&&zt(),this.o=this.o.L,this}),n}return t}(Ch),NM=function(e){BM(t,e);function t(){var r=e.call(this)||this;return r._=[],r.I={},r.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(r.I,null),r.h={},r.h.L=r.h.m=r.H=r.l=r.h,r}return t.prototype.G=function(r){var i=r.L,a=r.m;i.m=a,a.L=i,r===this.H&&(this.H=a),r===this.l&&(this.l=i),this.M-=1},t.prototype.v=function(r,i,a){a===void 0&&(a=cl(r));var n;if(a){var u=r[this.HASH_TAG];if(u!==void 0)return this._[u].p=i,this.M;Object.defineProperty(r,this.HASH_TAG,{value:this._.length,configurable:!0}),n={u:r,p:i,L:this.l,m:this.h},this._.push(n)}else{var c=this.I[r];if(c)return c.p=i,this.M;n={u:r,p:i,L:this.l,m:this.h},this.I[r]=n}return this.M===0?(this.H=n,this.h.m=n):this.l.m=n,this.l=n,this.h.L=n,++this.M},t.prototype.g=function(r,i){if(i===void 0&&(i=cl(r)),i){var a=r[this.HASH_TAG];return a===void 0?this.h:this._[a]}else return this.I[r]||this.h},t.prototype.clear=function(){var r=this.HASH_TAG;this._.forEach(function(i){delete i.u[r]}),this._=[],this.I={},Object.setPrototypeOf(this.I,null),this.M=0,this.H=this.l=this.h.L=this.h.m=this.h},t.prototype.eraseElementByKey=function(r,i){var a;if(i===void 0&&(i=cl(r)),i){var n=r[this.HASH_TAG];if(n===void 0)return!1;delete r[this.HASH_TAG],a=this._[n],delete this._[n]}else{if(a=this.I[r],a===void 0)return!1;delete this.I[r]}return this.G(a),!0},t.prototype.eraseElementByIterator=function(r){var i=r.o;return i===this.h&&zt(),this.G(i),r.next()},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return this.G(i),this.M},t}(Kv),kM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),VA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},rf=function(e){kM(t,e);function t(r,i,a,n){var u=e.call(this,r,i,n)||this;return u.container=a,u}return Object.defineProperty(t.prototype,"pointer",{get:function(){return this.o===this.h&&zt(),this.o.u},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(LM),zA=function(e){kM(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this,a=i;return r.forEach(function(n){a.insert(n)}),i}return t.prototype.begin=function(){return new rf(this.H,this.h,this)},t.prototype.end=function(){return new rf(this.h,this.h,this)},t.prototype.rBegin=function(){return new rf(this.l,this.h,this,1)},t.prototype.rEnd=function(){return new rf(this.h,this.h,this,1)},t.prototype.front=function(){return this.H.u},t.prototype.back=function(){return this.l.u},t.prototype.insert=function(r,i){return this.v(r,void 0,i)},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return i.u},t.prototype.find=function(r,i){var a=this.g(r,i);return new rf(a,this.h,this)},t.prototype.forEach=function(r){for(var i=0,a=this.H;a!==this.h;)r(a.u,i++,this),a=a.m},t.prototype[Symbol.iterator]=function(){return function(){var r;return VA(this,function(i){switch(i.label){case 0:r=this.H,i.label=1;case 1:return r===this.h?[3,3]:[4,r.u];case 2:return i.sent(),r=r.m,[3,1];case 3:return[2]}})}.bind(this)()},t}(NM);const GA=zA;var $M=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),YA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},nf=function(e){$M(t,e);function t(r,i,a,n){var u=e.call(this,r,i,n)||this;return u.container=a,u}return Object.defineProperty(t.prototype,"pointer",{get:function(){this.o===this.h&&zt();var r=this;return new Proxy([],{get:function(i,a){if(a==="0")return r.o.u;if(a==="1")return r.o.p},set:function(i,a,n){if(a!=="1")throw new TypeError("props must be 1");return r.o.p=n,!0}})},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(LM),ZA=function(e){$M(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this,a=i;return r.forEach(function(n){a.setElement(n[0],n[1])}),i}return t.prototype.begin=function(){return new nf(this.H,this.h,this)},t.prototype.end=function(){return new nf(this.h,this.h,this)},t.prototype.rBegin=function(){return new nf(this.l,this.h,this,1)},t.prototype.rEnd=function(){return new nf(this.h,this.h,this,1)},t.prototype.front=function(){if(this.M!==0)return[this.H.u,this.H.p]},t.prototype.back=function(){if(this.M!==0)return[this.l.u,this.l.p]},t.prototype.setElement=function(r,i,a){return this.v(r,i,a)},t.prototype.getElementByKey=function(r,i){if(i===void 0&&(i=cl(r)),i){var a=r[this.HASH_TAG];return a!==void 0?this._[a].p:void 0}var n=this.I[r];return n?n.p:void 0},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return[i.u,i.p]},t.prototype.find=function(r,i){var a=this.g(r,i);return new nf(a,this.h,this)},t.prototype.forEach=function(r){for(var i=0,a=this.H;a!==this.h;)r([a.u,a.p],i++,this),a=a.m},t.prototype[Symbol.iterator]=function(){return function(){var r;return YA(this,function(i){switch(i.label){case 0:r=this.H,i.label=1;case 1:return r===this.h?[3,3]:[4,[r.u,r.p]];case 2:return i.sent(),r=r.m,[3,1];case 3:return[2]}})}.bind(this)()},t}(NM);const XA=ZA,JA=Object.freeze(Object.defineProperty({__proto__:null,Deque:BA,HashMap:XA,HashSet:GA,LinkList:TA,OrderedMap:KA,OrderedSet:HA,PriorityQueue:yA,Queue:vA,Stack:cA,Vector:EA},Symbol.toStringTag,{value:"Module"})),QA=tv(JA);var hp={exports:{}},sd,R1;function eT(){if(R1)return sd;R1=1;var e=1e3,t=e*60,r=t*60,i=r*24,a=i*7,n=i*365.25;sd=function(M,S){S=S||{};var R=typeof M;if(R==="string"&&M.length>0)return u(M);if(R==="number"&&isFinite(M))return S.long?d(M):c(M);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(M))};function u(M){if(M=String(M),!(M.length>100)){var S=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(M);if(S){var R=parseFloat(S[1]),C=(S[2]||"ms").toLowerCase();switch(C){case"years":case"year":case"yrs":case"yr":case"y":return R*n;case"weeks":case"week":case"w":return R*a;case"days":case"day":case"d":return R*i;case"hours":case"hour":case"hrs":case"hr":case"h":return R*r;case"minutes":case"minute":case"mins":case"min":case"m":return R*t;case"seconds":case"second":case"secs":case"sec":case"s":return R*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return R;default:return}}}}function c(M){var S=Math.abs(M);return S>=i?Math.round(M/i)+"d":S>=r?Math.round(M/r)+"h":S>=t?Math.round(M/t)+"m":S>=e?Math.round(M/e)+"s":M+"ms"}function d(M){var S=Math.abs(M);return S>=i?m(M,S,i,"day"):S>=r?m(M,S,r,"hour"):S>=t?m(M,S,t,"minute"):S>=e?m(M,S,e,"second"):M+" ms"}function m(M,S,R,C){var P=S>=R*1.5;return Math.round(M/R)+" "+C+(P?"s":"")}return sd}function tT(e){r.debug=r,r.default=r,r.coerce=d,r.disable=n,r.enable=a,r.enabled=u,r.humanize=eT(),r.destroy=m,Object.keys(e).forEach(M=>{r[M]=e[M]}),r.names=[],r.skips=[],r.formatters={};function t(M){let S=0;for(let R=0;R<M.length;R++)S=(S<<5)-S+M.charCodeAt(R),S|=0;return r.colors[Math.abs(S)%r.colors.length]}r.selectColor=t;function r(M){let S,R=null,C,P;function k(...L){if(!k.enabled)return;const I=k,B=Number(new Date),H=B-(S||B);I.diff=H,I.prev=S,I.curr=B,S=B,L[0]=r.coerce(L[0]),typeof L[0]!="string"&&L.unshift("%O");let F=0;L[0]=L[0].replace(/%([a-zA-Z%])/g,(Y,ie)=>{if(Y==="%%")return"%";F++;const J=r.formatters[ie];if(typeof J=="function"){const V=L[F];Y=J.call(I,V),L.splice(F,1),F--}return Y}),r.formatArgs.call(I,L),(I.log||r.log).apply(I,L)}return k.namespace=M,k.useColors=r.useColors(),k.color=r.selectColor(M),k.extend=i,k.destroy=r.destroy,Object.defineProperty(k,"enabled",{enumerable:!0,configurable:!1,get:()=>R!==null?R:(C!==r.namespaces&&(C=r.namespaces,P=r.enabled(M)),P),set:L=>{R=L}}),typeof r.init=="function"&&r.init(k),k}function i(M,S){const R=r(this.namespace+(typeof S>"u"?":":S)+M);return R.log=this.log,R}function a(M){r.save(M),r.namespaces=M,r.names=[],r.skips=[];let S;const R=(typeof M=="string"?M:"").split(/[\s,]+/),C=R.length;for(S=0;S<C;S++)R[S]&&(M=R[S].replace(/\*/g,".*?"),M[0]==="-"?r.skips.push(new RegExp("^"+M.slice(1)+"$")):r.names.push(new RegExp("^"+M+"$")))}function n(){const M=[...r.names.map(c),...r.skips.map(c).map(S=>"-"+S)].join(",");return r.enable(""),M}function u(M){if(M[M.length-1]==="*")return!0;let S,R;for(S=0,R=r.skips.length;S<R;S++)if(r.skips[S].test(M))return!1;for(S=0,R=r.names.length;S<R;S++)if(r.names[S].test(M))return!0;return!1}function c(M){return M.toString().substring(2,M.toString().length-2).replace(/\.\*\?$/,"*")}function d(M){return M instanceof Error?M.stack||M.message:M}function m(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}var rT=tT;(function(e,t){t.formatArgs=i,t.save=a,t.load=n,t.useColors=r,t.storage=u(),t.destroy=(()=>{let d=!1;return()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function i(d){if(d[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+d[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const m="color: "+this.color;d.splice(1,0,m,"color: inherit");let M=0,S=0;d[0].replace(/%[a-zA-Z%]/g,R=>{R!=="%%"&&(M++,R==="%c"&&(S=M))}),d.splice(S,0,m)}t.log=console.debug||console.log||(()=>{});function a(d){try{d?t.storage.setItem("debug",d):t.storage.removeItem("debug")}catch{}}function n(){let d;try{d=t.storage.getItem("debug")}catch{}return!d&&typeof we<"u"&&"env"in we&&(d={}.DEBUG),d}function u(){try{return localStorage}catch{}}e.exports=rT(t);const{formatters:c}=e.exports;c.j=function(d){try{return JSON.stringify(d)}catch(m){return"[UnexpectedJSONParseError]: "+m.message}}})(hp,hp.exports);var zn=hp.exports;const iT=QA.OrderedSet,Qi=zn("number-allocator:trace"),nT=zn("number-allocator:error");function Lr(e,t){this.low=e,this.high=t}Lr.prototype.equals=function(e){return this.low===e.low&&this.high===e.high};Lr.prototype.compare=function(e){return this.low<e.low&&this.high<e.low?-1:e.low<this.low&&e.high<this.low?1:0};function sn(e,t){if(!(this instanceof sn))return new sn(e,t);this.min=e,this.max=t,this.ss=new iT([],(r,i)=>r.compare(i)),Qi("Create"),this.clear()}sn.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low};sn.prototype.alloc=function(){if(this.ss.size()===0)return Qi("alloc():empty"),null;const e=this.ss.begin(),t=e.pointer.low,r=e.pointer.high,i=t;return i+1<=r?this.ss.updateKeyByIterator(e,new Lr(t+1,r)):this.ss.eraseElementByPos(0),Qi("alloc():"+i),i};sn.prototype.use=function(e){const t=new Lr(e,e),r=this.ss.lowerBound(t);if(!r.equals(this.ss.end())){const i=r.pointer.low,a=r.pointer.high;return r.pointer.equals(t)?(this.ss.eraseElementByIterator(r),Qi("use():"+e),!0):i>e?!1:i===e?(this.ss.updateKeyByIterator(r,new Lr(i+1,a)),Qi("use():"+e),!0):a===e?(this.ss.updateKeyByIterator(r,new Lr(i,a-1)),Qi("use():"+e),!0):(this.ss.updateKeyByIterator(r,new Lr(e+1,a)),this.ss.insert(new Lr(i,e-1)),Qi("use():"+e),!0)}return Qi("use():failed"),!1};sn.prototype.free=function(e){if(e<this.min||e>this.max){nT("free():"+e+" is out of range");return}const t=new Lr(e,e),r=this.ss.upperBound(t);if(r.equals(this.ss.end())){if(r.equals(this.ss.begin())){this.ss.insert(t);return}r.pre();const i=r.pointer.high;r.pointer.high+1===e?this.ss.updateKeyByIterator(r,new Lr(i,e)):this.ss.insert(t)}else if(r.equals(this.ss.begin()))if(e+1===r.pointer.low){const i=r.pointer.high;this.ss.updateKeyByIterator(r,new Lr(e,i))}else this.ss.insert(t);else{const i=r.pointer.low,a=r.pointer.high;r.pre();const n=r.pointer.low;r.pointer.high+1===e?e+1===i?(this.ss.eraseElementByIterator(r),this.ss.updateKeyByIterator(r,new Lr(n,a))):this.ss.updateKeyByIterator(r,new Lr(n,e)):e+1===i?(this.ss.eraseElementByIterator(r.next()),this.ss.insert(new Lr(e,a))):this.ss.insert(t)}Qi("free():"+e)};sn.prototype.clear=function(){Qi("clear()"),this.ss.clear(),this.ss.insert(new Lr(this.min,this.max))};sn.prototype.intervalCount=function(){return this.ss.size()};sn.prototype.dump=function(){console.log("length:"+this.ss.size());for(const e of this.ss)console.log(e)};var oT=sn;const aT=oT;SM.NumberAllocator=aT;const sT=fA,fT=SM.NumberAllocator;function To(e){if(!(this instanceof To))return new To(e);e>0&&(this.aliasToTopic=new sT({max:e}),this.topicToAlias={},this.numberAllocator=new fT(1,e),this.max=e,this.length=0)}To.prototype.put=function(e,t){if(t===0||t>this.max)return!1;const r=this.aliasToTopic.get(t);return r&&delete this.topicToAlias[r],this.aliasToTopic.set(t,e),this.topicToAlias[e]=t,this.numberAllocator.use(t),this.length=this.aliasToTopic.length,!0};To.prototype.getTopicByAlias=function(e){return this.aliasToTopic.get(e)};To.prototype.getAliasByTopic=function(e){const t=this.topicToAlias[e];return typeof t<"u"&&this.aliasToTopic.get(t),t};To.prototype.clear=function(){this.aliasToTopic.reset(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0};To.prototype.getLruAlias=function(){const e=this.numberAllocator.firstVacant();return e||this.aliasToTopic.keys()[this.aliasToTopic.length-1]};var uT=To,Lh={},Nh={exports:{}},cp={exports:{}},DM=Or.EventEmitter,fd,A1;function lT(){if(A1)return fd;A1=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return fd=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),fd}function hT(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(dp,this,e)):we.nextTick(dp,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(dl,r):(r._writableState.errorEmitted=!0,we.nextTick(T1,r,n)):we.nextTick(T1,r,n):t?(we.nextTick(dl,r),t(n)):we.nextTick(dl,r)}),this)}function T1(e,t){dp(e,t),dl(e)}function dl(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function cT(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function dp(e,t){e.emit("error",t)}function dT(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var FM={destroy:hT,undestroy:cT,errorOrDestroy:dT},Ma={};function pT(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var jM={};function bi(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){pT(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,jM[e]=a}function O1(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function vT(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function gT(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function mT(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}bi("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);bi("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&vT(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(gT(e," argument"))a="The ".concat(e," ").concat(i," ").concat(O1(t,"type"));else{var n=mT(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(O1(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);bi("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");bi("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});bi("ERR_STREAM_PREMATURE_CLOSE","Premature close");bi("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});bi("ERR_MULTIPLE_CALLBACK","Callback called multiple times");bi("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");bi("ERR_STREAM_WRITE_AFTER_END","write after end");bi("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);bi("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);bi("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Ma.codes=jM;var yT=Ma.codes.ERR_INVALID_OPT_VALUE;function bT(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function wT(e,t,r,i){var a=bT(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new yT(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var UM={getHighWaterMark:wT},ud,I1;function HM(){if(I1)return ud;I1=1,ud=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=DM,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=FM,m=UM,M=m.getHighWaterMark,S=Ma.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||ds(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||ds();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},ud}var ld,P1;function ds(){if(P1)return ld;P1=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};ld=u;var t=WM(),r=HM();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),ld}var C1=Ma.codes.ERR_STREAM_PREMATURE_CLOSE;function _T(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function MT(){}function ST(e){return e.setHeader&&typeof e.abort=="function"}function qM(e,t,r){if(typeof t=="function")return qM(e,null,t);t||(t={}),r=_T(r||MT);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new C1),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new C1),r.call(e,P)},R=function(){e.req.on("finish",c)};return ST(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var zv=qM,hd,B1;function xT(){if(B1)return hd;B1=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=zv,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return hd=B,hd}var cd,L1;function ET(){return L1||(L1=1,cd=function(){throw new Error("Readable.from is not available in the browser")}),cd}var dd,N1;function WM(){if(N1)return dd;N1=1,dd=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=DM,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=lT(),M=FM,S=UM,R=S.getHighWaterMark,C=Ma.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||ds(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||ds(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=xT()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=ET()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return dd}var KM=$n,kh=Ma.codes,RT=kh.ERR_METHOD_NOT_IMPLEMENTED,AT=kh.ERR_MULTIPLE_CALLBACK,TT=kh.ERR_TRANSFORM_ALREADY_TRANSFORMING,OT=kh.ERR_TRANSFORM_WITH_LENGTH_0,$h=ds();Ze($n,$h);function IT(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new AT);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function $n(e){if(!(this instanceof $n))return new $n(e);$h.call(this,e),this._transformState={afterTransform:IT.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",PT)}function PT(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){k1(e,t,r)}):k1(this,null,null)}$n.prototype.push=function(e,t){return this._transformState.needTransform=!1,$h.prototype.push.call(this,e,t)};$n.prototype._transform=function(e,t,r){r(new RT("_transform()"))};$n.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};$n.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};$n.prototype._destroy=function(e,t){$h.prototype._destroy.call(this,e,function(r){t(r)})};function k1(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new OT;if(e._transformState.transforming)throw new TT;return e.push(null)}var CT=Qf,VM=KM;Ze(Qf,VM);function Qf(e){if(!(this instanceof Qf))return new Qf(e);VM.call(this,e)}Qf.prototype._transform=function(e,t,r){r(null,e)};var pd;function BT(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var zM=Ma.codes,LT=zM.ERR_MISSING_ARGS,NT=zM.ERR_STREAM_DESTROYED;function $1(e){if(e)throw e}function kT(e){return e.setHeader&&typeof e.abort=="function"}function $T(e,t,r,i){i=BT(i);var a=!1;e.on("close",function(){a=!0}),pd===void 0&&(pd=zv),pd(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,kT(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new NT("pipe"))}}}function D1(e){e()}function DT(e,t){return e.pipe(t)}function FT(e){return!e.length||typeof e[e.length-1]!="function"?$1:e.pop()}function jT(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=FT(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new LT("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return $T(u,d,m,function(M){a||(a=M),M&&n.forEach(D1),!d&&(n.forEach(D1),i(a))})});return t.reduce(DT)}var UT=jT;(function(e,t){t=e.exports=WM(),t.Stream=t,t.Readable=t,t.Writable=HM(),t.Duplex=ds(),t.Transform=KM,t.PassThrough=CT,t.finished=zv,t.pipeline=UT})(cp,cp.exports);var HT=cp.exports;const{Buffer:Ni}=ke,GM=Symbol.for("BufferList");function Gt(e){if(!(this instanceof Gt))return new Gt(e);Gt._init.call(this,e)}Gt._init=function(t){Object.defineProperty(this,GM,{value:!0}),this._bufs=[],this.length=0,t&&this.append(t)};Gt.prototype._new=function(t){return new Gt(t)};Gt.prototype._offset=function(t){if(t===0)return[0,0];let r=0;for(let i=0;i<this._bufs.length;i++){const a=r+this._bufs[i].length;if(t<a||i===this._bufs.length-1)return[i,t-r];r=a}};Gt.prototype._reverseOffset=function(e){const t=e[0];let r=e[1];for(let i=0;i<t;i++)r+=this._bufs[i].length;return r};Gt.prototype.get=function(t){if(t>this.length||t<0)return;const r=this._offset(t);return this._bufs[r[0]][r[1]]};Gt.prototype.slice=function(t,r){return typeof t=="number"&&t<0&&(t+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,t,r)};Gt.prototype.copy=function(t,r,i,a){if((typeof i!="number"||i<0)&&(i=0),(typeof a!="number"||a>this.length)&&(a=this.length),i>=this.length||a<=0)return t||Ni.alloc(0);const n=!!t,u=this._offset(i),c=a-i;let d=c,m=n&&r||0,M=u[1];if(i===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:Ni.concat(this._bufs,this.length);for(let S=0;S<this._bufs.length;S++)this._bufs[S].copy(t,m),m+=this._bufs[S].length;return t}if(d<=this._bufs[u[0]].length-M)return n?this._bufs[u[0]].copy(t,r,M,M+d):this._bufs[u[0]].slice(M,M+d);n||(t=Ni.allocUnsafe(c));for(let S=u[0];S<this._bufs.length;S++){const R=this._bufs[S].length-M;if(d>R)this._bufs[S].copy(t,m,M),m+=R;else{this._bufs[S].copy(t,m,M,M+d),m+=R;break}d-=R,M&&(M=0)}return t.length>m?t.slice(0,m):t};Gt.prototype.shallowSlice=function(t,r){if(t=t||0,r=typeof r!="number"?this.length:r,t<0&&(t+=this.length),r<0&&(r+=this.length),t===r)return this._new();const i=this._offset(t),a=this._offset(r),n=this._bufs.slice(i[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),i[1]!==0&&(n[0]=n[0].slice(i[1])),this._new(n)};Gt.prototype.toString=function(t,r,i){return this.slice(r,i).toString(t)};Gt.prototype.consume=function(t){if(t=Math.trunc(t),Number.isNaN(t)||t<=0)return this;for(;this._bufs.length;)if(t>=this._bufs[0].length)t-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(t),this.length-=t;break}return this};Gt.prototype.duplicate=function(){const t=this._new();for(let r=0;r<this._bufs.length;r++)t.append(this._bufs[r]);return t};Gt.prototype.append=function(t){if(t==null)return this;if(t.buffer)this._appendBuffer(Ni.from(t.buffer,t.byteOffset,t.byteLength));else if(Array.isArray(t))for(let r=0;r<t.length;r++)this.append(t[r]);else if(this._isBufferList(t))for(let r=0;r<t._bufs.length;r++)this.append(t._bufs[r]);else typeof t=="number"&&(t=t.toString()),this._appendBuffer(Ni.from(t));return this};Gt.prototype._appendBuffer=function(t){this._bufs.push(t),this.length+=t.length};Gt.prototype.indexOf=function(e,t,r){if(r===void 0&&typeof t=="string"&&(r=t,t=void 0),typeof e=="function"||Array.isArray(e))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof e=="number"?e=Ni.from([e]):typeof e=="string"?e=Ni.from(e,r):this._isBufferList(e)?e=e.slice():Array.isArray(e.buffer)?e=Ni.from(e.buffer,e.byteOffset,e.byteLength):Ni.isBuffer(e)||(e=Ni.from(e)),t=Number(t||0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;const i=this._offset(t);let a=i[0],n=i[1];for(;a<this._bufs.length;a++){const u=this._bufs[a];for(;n<u.length;)if(u.length-n>=e.length){const d=u.indexOf(e,n);if(d!==-1)return this._reverseOffset([a,d]);n=u.length-e.length+1}else{const d=this._reverseOffset([a,n]);if(this._match(d,e))return d;n++}n=0}return-1};Gt.prototype._match=function(e,t){if(this.length-e<t.length)return!1;for(let r=0;r<t.length;r++)if(this.get(e+r)!==t[r])return!1;return!0};(function(){const e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(const t in e)(function(r){e[r]===null?Gt.prototype[r]=function(i,a){return this.slice(i,i+a)[r](0,a)}:Gt.prototype[r]=function(i=0){return this.slice(i,i+e[r])[r](0)}})(t)})();Gt.prototype._isBufferList=function(t){return t instanceof Gt||Gt.isBufferList(t)};Gt.isBufferList=function(t){return t!=null&&t[GM]};var qT=Gt;const Gv=HT.Duplex,WT=Ze,gu=qT;function Rr(e){if(!(this instanceof Rr))return new Rr(e);if(typeof e=="function"){this._callback=e;const t=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",t)}),this.on("unpipe",function(i){i.removeListener("error",t)}),e=null}gu._init.call(this,e),Gv.call(this)}WT(Rr,Gv);Object.assign(Rr.prototype,gu.prototype);Rr.prototype._new=function(t){return new Rr(t)};Rr.prototype._write=function(t,r,i){this._appendBuffer(t),typeof i=="function"&&i()};Rr.prototype._read=function(t){if(!this.length)return this.push(null);t=Math.min(t,this.length),this.push(this.slice(0,t)),this.consume(t)};Rr.prototype.end=function(t){Gv.prototype.end.call(this,t),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Rr.prototype._destroy=function(t,r){this._bufs.length=0,this.length=0,r(t)};Rr.prototype._isBufferList=function(t){return t instanceof Rr||t instanceof gu||Rr.isBufferList(t)};Rr.isBufferList=gu.isBufferList;Nh.exports=Rr;Nh.exports.BufferListStream=Rr;Nh.exports.BufferList=gu;var KT=Nh.exports;let VT=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};var zT=VT,YM={exports:{}};(function(e){const t=e.exports;t.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},t.codes={};for(const i in t.types){const a=t.types[i];t.codes[a]=i}t.CMD_SHIFT=4,t.CMD_MASK=240,t.DUP_MASK=8,t.QOS_MASK=3,t.QOS_SHIFT=1,t.RETAIN_MASK=1,t.VARBYTEINT_MASK=127,t.VARBYTEINT_FIN_MASK=128,t.VARBYTEINT_MAX=268435455,t.SESSIONPRESENT_MASK=1,t.SESSIONPRESENT_HEADER=ke.Buffer.from([t.SESSIONPRESENT_MASK]),t.CONNACK_HEADER=ke.Buffer.from([t.codes.connack<<t.CMD_SHIFT]),t.USERNAME_MASK=128,t.PASSWORD_MASK=64,t.WILL_RETAIN_MASK=32,t.WILL_QOS_MASK=24,t.WILL_QOS_SHIFT=3,t.WILL_FLAG_MASK=4,t.CLEAN_SESSION_MASK=2,t.CONNECT_HEADER=ke.Buffer.from([t.codes.connect<<t.CMD_SHIFT]),t.properties={sessionExpiryInterval:17,willDelayInterval:24,receiveMaximum:33,maximumPacketSize:39,topicAliasMaximum:34,requestResponseInformation:25,requestProblemInformation:23,userProperties:38,authenticationMethod:21,authenticationData:22,payloadFormatIndicator:1,messageExpiryInterval:2,contentType:3,responseTopic:8,correlationData:9,maximumQoS:36,retainAvailable:37,assignedClientIdentifier:18,reasonString:31,wildcardSubscriptionAvailable:40,subscriptionIdentifiersAvailable:41,sharedSubscriptionAvailable:42,serverKeepAlive:19,responseInformation:26,serverReference:28,topicAlias:35,subscriptionIdentifier:11},t.propertiesCodes={};for(const i in t.properties){const a=t.properties[i];t.propertiesCodes[a]=i}t.propertiesTypes={sessionExpiryInterval:"int32",willDelayInterval:"int32",receiveMaximum:"int16",maximumPacketSize:"int32",topicAliasMaximum:"int16",requestResponseInformation:"byte",requestProblemInformation:"byte",userProperties:"pair",authenticationMethod:"string",authenticationData:"binary",payloadFormatIndicator:"byte",messageExpiryInterval:"int32",contentType:"string",responseTopic:"string",correlationData:"binary",maximumQoS:"int8",retainAvailable:"byte",assignedClientIdentifier:"string",reasonString:"string",wildcardSubscriptionAvailable:"byte",subscriptionIdentifiersAvailable:"byte",sharedSubscriptionAvailable:"byte",serverKeepAlive:"int16",responseInformation:"string",serverReference:"string",topicAlias:"int16",subscriptionIdentifier:"var"};function r(i){return[0,1,2].map(a=>[0,1].map(n=>[0,1].map(u=>{const c=ke.Buffer.alloc(1);return c.writeUInt8(t.codes[i]<<t.CMD_SHIFT|(n?t.DUP_MASK:0)|a<<t.QOS_SHIFT|u,0,!0),c})))}t.PUBLISH_HEADER=r("publish"),t.SUBSCRIBE_HEADER=r("subscribe"),t.SUBSCRIBE_OPTIONS_QOS_MASK=3,t.SUBSCRIBE_OPTIONS_NL_MASK=1,t.SUBSCRIBE_OPTIONS_NL_SHIFT=2,t.SUBSCRIBE_OPTIONS_RAP_MASK=1,t.SUBSCRIBE_OPTIONS_RAP_SHIFT=3,t.SUBSCRIBE_OPTIONS_RH_MASK=3,t.SUBSCRIBE_OPTIONS_RH_SHIFT=4,t.SUBSCRIBE_OPTIONS_RH=[0,16,32],t.SUBSCRIBE_OPTIONS_NL=4,t.SUBSCRIBE_OPTIONS_RAP=8,t.SUBSCRIBE_OPTIONS_QOS=[0,1,2],t.UNSUBSCRIBE_HEADER=r("unsubscribe"),t.ACKS={unsuback:r("unsuback"),puback:r("puback"),pubcomp:r("pubcomp"),pubrel:r("pubrel"),pubrec:r("pubrec")},t.SUBACK_HEADER=ke.Buffer.from([t.codes.suback<<t.CMD_SHIFT]),t.VERSION3=ke.Buffer.from([3]),t.VERSION4=ke.Buffer.from([4]),t.VERSION5=ke.Buffer.from([5]),t.VERSION131=ke.Buffer.from([131]),t.VERSION132=ke.Buffer.from([132]),t.QOS=[0,1,2].map(i=>ke.Buffer.from([i])),t.EMPTY={pingreq:ke.Buffer.from([t.codes.pingreq<<4,0]),pingresp:ke.Buffer.from([t.codes.pingresp<<4,0]),disconnect:ke.Buffer.from([t.codes.disconnect<<4,0])}})(YM);var ZM=YM.exports;const GT=KT,YT=Or,F1=zT,qt=ZM,ot=zn("mqtt-packet:parser");class Hl extends YT{constructor(){super(),this.parser=this.constructor.parser}static parser(t){return this instanceof Hl?(this.settings=t||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new Hl().parser(t)}_resetState(){ot("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new F1,this.error=null,this._list=GT(),this._stateCounter=0}parse(t){for(this.error&&this._resetState(),this._list.append(t),ot("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,ot("parse: state complete. _stateCounter is now: %d",this._stateCounter),ot("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return ot("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){const t=this._list.readUInt8(0);return this.packet.cmd=qt.types[t>>qt.CMD_SHIFT],this.packet.retain=(t&qt.RETAIN_MASK)!==0,this.packet.qos=t>>qt.QOS_SHIFT&qt.QOS_MASK,this.packet.dup=(t&qt.DUP_MASK)!==0,ot("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0}_parseLength(){const t=this._parseVarByteNum(!0);return t&&(this.packet.length=t.value,this._list.consume(t.bytes)),ot("_parseLength %d",t.value),!!t}_parsePayload(){ot("_parsePayload: payload %O",this._list);let t=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}t=!0}return ot("_parsePayload complete result: %s",t),t}_parseConnect(){ot("_parseConnect");let t,r,i,a;const n={},u=this.packet,c=this._parseString();if(c===null)return this._emitError(new Error("Cannot parse protocolId"));if(c!=="MQTT"&&c!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(u.protocolId=c,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(u.protocolVersion=this._list.readUInt8(this._pos),u.protocolVersion>=128&&(u.bridgeMode=!0,u.protocolVersion=u.protocolVersion-128),u.protocolVersion!==3&&u.protocolVersion!==4&&u.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(n.username=this._list.readUInt8(this._pos)&qt.USERNAME_MASK,n.password=this._list.readUInt8(this._pos)&qt.PASSWORD_MASK,n.will=this._list.readUInt8(this._pos)&qt.WILL_FLAG_MASK,n.will&&(u.will={},u.will.retain=(this._list.readUInt8(this._pos)&qt.WILL_RETAIN_MASK)!==0,u.will.qos=(this._list.readUInt8(this._pos)&qt.WILL_QOS_MASK)>>qt.WILL_QOS_SHIFT),u.clean=(this._list.readUInt8(this._pos)&qt.CLEAN_SESSION_MASK)!==0,this._pos++,u.keepalive=this._parseNum(),u.keepalive===-1)return this._emitError(new Error("Packet too short"));if(u.protocolVersion===5){const m=this._parseProperties();Object.getOwnPropertyNames(m).length&&(u.properties=m)}const d=this._parseString();if(d===null)return this._emitError(new Error("Packet too short"));if(u.clientId=d,ot("_parseConnect: packet.clientId: %s",u.clientId),n.will){if(u.protocolVersion===5){const m=this._parseProperties();Object.getOwnPropertyNames(m).length&&(u.will.properties=m)}if(t=this._parseString(),t===null)return this._emitError(new Error("Cannot parse will topic"));if(u.will.topic=t,ot("_parseConnect: packet.will.topic: %s",u.will.topic),r=this._parseBuffer(),r===null)return this._emitError(new Error("Cannot parse will payload"));u.will.payload=r,ot("_parseConnect: packet.will.paylaod: %s",u.will.payload)}if(n.username){if(a=this._parseString(),a===null)return this._emitError(new Error("Cannot parse username"));u.username=a,ot("_parseConnect: packet.username: %s",u.username)}if(n.password){if(i=this._parseBuffer(),i===null)return this._emitError(new Error("Cannot parse password"));u.password=i}return this.settings=u,ot("_parseConnect: complete"),u}_parseConnack(){ot("_parseConnack");const t=this.packet;if(this._list.length<1)return null;if(t.sessionPresent=!!(this._list.readUInt8(this._pos++)&qt.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?t.reasonCode=this._list.readUInt8(this._pos++):t.reasonCode=0;else{if(this._list.length<2)return null;t.returnCode=this._list.readUInt8(this._pos++)}if(t.returnCode===-1||t.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}ot("_parseConnack: complete")}_parsePublish(){ot("_parsePublish");const t=this.packet;if(t.topic=this._parseString(),t.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(t.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}t.payload=this._list.slice(this._pos,t.length),ot("_parsePublish: payload from buffer list: %o",t.payload)}}_parseSubscribe(){ot("_parseSubscribe");const t=this.packet;let r,i,a,n,u,c,d;if(t.qos!==1)return this._emitError(new Error("Wrong subscribe header"));if(t.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const m=this._parseProperties();Object.getOwnPropertyNames(m).length&&(t.properties=m)}for(;this._pos<t.length;){if(r=this._parseString(),r===null)return this._emitError(new Error("Cannot parse topic"));if(this._pos>=t.length)return this._emitError(new Error("Malformed Subscribe Payload"));i=this._parseByte(),a=i&qt.SUBSCRIBE_OPTIONS_QOS_MASK,c=(i>>qt.SUBSCRIBE_OPTIONS_NL_SHIFT&qt.SUBSCRIBE_OPTIONS_NL_MASK)!==0,u=(i>>qt.SUBSCRIBE_OPTIONS_RAP_SHIFT&qt.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,n=i>>qt.SUBSCRIBE_OPTIONS_RH_SHIFT&qt.SUBSCRIBE_OPTIONS_RH_MASK,d={topic:r,qos:a},this.settings.protocolVersion===5?(d.nl=c,d.rap=u,d.rh=n):this.settings.bridgeMode&&(d.rh=0,d.rap=!0,d.nl=!0),ot("_parseSubscribe: push subscription `%s` to subscription",d),t.subscriptions.push(d)}}}_parseSuback(){ot("_parseSuback");const t=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}for(;this._pos<this.packet.length;)this.packet.granted.push(this._list.readUInt8(this._pos++))}}_parseUnsubscribe(){ot("_parseUnsubscribe");const t=this.packet;if(t.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}for(;this._pos<t.length;){const r=this._parseString();if(r===null)return this._emitError(new Error("Cannot parse topic"));ot("_parseUnsubscribe: push topic `%s` to unsubscriptions",r),t.unsubscriptions.push(r)}}}_parseUnsuback(){ot("_parseUnsuback");const t=this.packet;if(!this._parseMessageId())return this._emitError(new Error("Cannot parse messageId"));if(this.settings.protocolVersion===5){const r=this._parseProperties();for(Object.getOwnPropertyNames(r).length&&(t.properties=r),t.granted=[];this._pos<this.packet.length;)this.packet.granted.push(this._list.readUInt8(this._pos++))}}_parseConfirmation(){ot("_parseConfirmation: packet.cmd: `%s`",this.packet.cmd);const t=this.packet;if(this._parseMessageId(),this.settings.protocolVersion===5&&(t.length>2?(t.reasonCode=this._parseByte(),ot("_parseConfirmation: packet.reasonCode `%d`",t.reasonCode)):t.reasonCode=0,t.length>3)){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}return!0}_parseDisconnect(){const t=this.packet;if(ot("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?t.reasonCode=this._parseByte():t.reasonCode=0;const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}return ot("_parseDisconnect result: true"),!0}_parseAuth(){ot("_parseAuth");const t=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));t.reasonCode=this._parseByte();const r=this._parseProperties();return Object.getOwnPropertyNames(r).length&&(t.properties=r),ot("_parseAuth: result: true"),!0}_parseMessageId(){const t=this.packet;return t.messageId=this._parseNum(),t.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(ot("_parseMessageId: packet.messageId %d",t.messageId),!0)}_parseString(t){const r=this._parseNum(),i=r+this._pos;if(r===-1||i>this._list.length||i>this.packet.length)return null;const a=this._list.toString("utf8",this._pos,i);return this._pos+=r,ot("_parseString: result: %s",a),a}_parseStringPair(){return ot("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){const t=this._parseNum(),r=t+this._pos;if(t===-1||r>this._list.length||r>this.packet.length)return null;const i=this._list.slice(this._pos,r);return this._pos+=t,ot("_parseBuffer: result: %o",i),i}_parseNum(){if(this._list.length-this._pos<2)return-1;const t=this._list.readUInt16BE(this._pos);return this._pos+=2,ot("_parseNum: result: %s",t),t}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;const t=this._list.readUInt32BE(this._pos);return this._pos+=4,ot("_parse4ByteNum: result: %s",t),t}_parseVarByteNum(t){ot("_parseVarByteNum");const r=4;let i=0,a=1,n=0,u=!1,c;const d=this._pos?this._pos:0;for(;i<r&&d+i<this._list.length;){if(c=this._list.readUInt8(d+i++),n+=a*(c&qt.VARBYTEINT_MASK),a*=128,!(c&qt.VARBYTEINT_FIN_MASK)){u=!0;break}if(this._list.length<=i)break}return!u&&i===r&&this._list.length>=i&&this._emitError(new Error("Invalid variable byte integer")),d&&(this._pos+=i),u=u?t?{bytes:i,value:n}:n:!1,ot("_parseVarByteNum: result: %o",u),u}_parseByte(){let t;return this._pos<this._list.length&&(t=this._list.readUInt8(this._pos),this._pos++),ot("_parseByte: result: %o",t),t}_parseByType(t){switch(ot("_parseByType: type: %s",t),t){case"byte":return this._parseByte()!==0;case"int8":return this._parseByte();case"int16":return this._parseNum();case"int32":return this._parse4ByteNum();case"var":return this._parseVarByteNum();case"string":return this._parseString();case"pair":return this._parseStringPair();case"binary":return this._parseBuffer()}}_parseProperties(){ot("_parseProperties");const t=this._parseVarByteNum(),i=this._pos+t,a={};for(;this._pos<i;){const n=this._parseByte();if(!n)return this._emitError(new Error("Cannot parse property code type")),!1;const u=qt.propertiesCodes[n];if(!u)return this._emitError(new Error("Unknown property")),!1;if(u==="userProperties"){a[u]||(a[u]=Object.create(null));const c=this._parseByType(qt.propertiesTypes[u]);if(a[u][c.name])if(Array.isArray(a[u][c.name]))a[u][c.name].push(c.value);else{const d=a[u][c.name];a[u][c.name]=[d],a[u][c.name].push(c.value)}else a[u][c.name]=c.value;continue}a[u]?Array.isArray(a[u])?a[u].push(this._parseByType(qt.propertiesTypes[u])):(a[u]=[a[u]],a[u].push(this._parseByType(qt.propertiesTypes[u]))):a[u]=this._parseByType(qt.propertiesTypes[u])}return a}_newPacket(){return ot("_newPacket"),this.packet&&(this._list.consume(this.packet.length),ot("_newPacket: parser emit packet: packet.cmd: %s, packet.payload: %s, packet.length: %d",this.packet.cmd,this.packet.payload,this.packet.length),this.emit("packet",this.packet)),ot("_newPacket: new packet"),this.packet=new F1,this._pos=0,!0}_emitError(t){ot("_emitError"),this.error=t,this.emit("error",t)}}var ZT=Hl;const XT=65536,XM={},JT=ke.Buffer.isBuffer(ke.Buffer.from([1,2]).subarray(0,1));function JM(e){const t=ke.Buffer.allocUnsafe(2);return t.writeUInt8(e>>8,0),t.writeUInt8(e&255,0+1),t}function QT(){for(let e=0;e<XT;e++)XM[e]=JM(e)}function eO(e){let r=0,i=0;const a=ke.Buffer.allocUnsafe(4);do r=e%128|0,e=e/128|0,e>0&&(r=r|128),a.writeUInt8(r,i++);while(e>0&&i<4);return e>0&&(i=0),JT?a.subarray(0,i):a.slice(0,i)}function tO(e){const t=ke.Buffer.allocUnsafe(4);return t.writeUInt32BE(e,0),t}var rO={cache:XM,generateCache:QT,generateNumber:JM,genBufVariableByteInt:eO,generate4ByteBuffer:tO},pp={exports:{}};typeof we>"u"||!we.version||we.version.indexOf("v0.")===0||we.version.indexOf("v1.")===0&&we.version.indexOf("v1.8.")!==0?pp.exports={nextTick:iO}:pp.exports=we;function iO(e,t,r,i){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var a=arguments.length,n,u;switch(a){case 0:case 1:return we.nextTick(e);case 2:return we.nextTick(function(){e.call(null,t)});case 3:return we.nextTick(function(){e.call(null,t,r)});case 4:return we.nextTick(function(){e.call(null,t,r,i)});default:for(n=new Array(a-1),u=0;u<n.length;)n[u++]=arguments[u];return we.nextTick(function(){e.apply(null,n)})}}var nO=pp.exports;const ut=ZM,oO=ke.Buffer.allocUnsafe(0),aO=ke.Buffer.from([0]),mu=rO,sO=nO.nextTick,pi=zn("mqtt-packet:writeToStream"),ql=mu.cache,fO=mu.generateNumber,uO=mu.generateCache,vp=mu.genBufVariableByteInt,lO=mu.generate4ByteBuffer;let Nr=gp,Wl=!0;function QM(e,t,r){switch(pi("generate called"),t.cork&&(t.cork(),sO(hO,t)),Wl&&(Wl=!1,uO()),pi("generate: packet.cmd: %s",e.cmd),e.cmd){case"connect":return cO(e,t);case"connack":return dO(e,t,r);case"publish":return pO(e,t,r);case"puback":case"pubrec":case"pubrel":case"pubcomp":return vO(e,t,r);case"subscribe":return gO(e,t,r);case"suback":return mO(e,t,r);case"unsubscribe":return yO(e,t,r);case"unsuback":return bO(e,t,r);case"pingreq":case"pingresp":return wO(e,t);case"disconnect":return _O(e,t,r);case"auth":return MO(e,t,r);default:return t.emit("error",new Error("Unknown command")),!1}}Object.defineProperty(QM,"cacheNumbers",{get(){return Nr===gp},set(e){e?((!ql||Object.keys(ql).length===0)&&(Wl=!0),Nr=gp):(Wl=!1,Nr=SO)}});function hO(e){e.uncork()}function cO(e,t,r){const i=e||{},a=i.protocolId||"MQTT";let n=i.protocolVersion||4;const u=i.will;let c=i.clean;const d=i.keepalive||0,m=i.clientId||"",M=i.username,S=i.password,R=i.properties;c===void 0&&(c=!0);let C=0;if(!a||typeof a!="string"&&!ke.Buffer.isBuffer(a))return t.emit("error",new Error("Invalid protocolId")),!1;if(C+=a.length+2,n!==3&&n!==4&&n!==5)return t.emit("error",new Error("Invalid protocol version")),!1;if(C+=1,(typeof m=="string"||ke.Buffer.isBuffer(m))&&(m||n>=4)&&(m||c))C+=ke.Buffer.byteLength(m)+2;else{if(n<4)return t.emit("error",new Error("clientId must be supplied before 3.1.1")),!1;if(c*1===0)return t.emit("error",new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof d!="number"||d<0||d>65535||d%1!==0)return t.emit("error",new Error("Invalid keepalive")),!1;if(C+=2,C+=1,n===5){var P=Oo(t,R);if(!P)return!1;C+=P.length}if(u){if(typeof u!="object")return t.emit("error",new Error("Invalid will")),!1;if(!u.topic||typeof u.topic!="string")return t.emit("error",new Error("Invalid will topic")),!1;if(C+=ke.Buffer.byteLength(u.topic)+2,C+=2,u.payload)if(u.payload.length>=0)typeof u.payload=="string"?C+=ke.Buffer.byteLength(u.payload):C+=u.payload.length;else return t.emit("error",new Error("Invalid will payload")),!1;var k={};if(n===5){if(k=Oo(t,u.properties),!k)return!1;C+=k.length}}let L=!1;if(M!=null)if(W1(M))L=!0,C+=ke.Buffer.byteLength(M)+2;else return t.emit("error",new Error("Invalid username")),!1;if(S!=null){if(!L)return t.emit("error",new Error("Username is required to use password")),!1;if(W1(S))C+=e3(S)+2;else return t.emit("error",new Error("Invalid password")),!1}t.write(ut.CONNECT_HEADER),wi(t,C),Ha(t,a),i.bridgeMode&&(n+=128),t.write(n===131?ut.VERSION131:n===132?ut.VERSION132:n===4?ut.VERSION4:n===5?ut.VERSION5:ut.VERSION3);let I=0;return I|=M!=null?ut.USERNAME_MASK:0,I|=S!=null?ut.PASSWORD_MASK:0,I|=u&&u.retain?ut.WILL_RETAIN_MASK:0,I|=u&&u.qos?u.qos<<ut.WILL_QOS_SHIFT:0,I|=u?ut.WILL_FLAG_MASK:0,I|=c?ut.CLEAN_SESSION_MASK:0,t.write(ke.Buffer.from([I])),Nr(t,d),n===5&&P.write(),Ha(t,m),u&&(n===5&&k.write(),ha(t,u.topic),Ha(t,u.payload)),M!=null&&Ha(t,M),S!=null&&Ha(t,S),!0}function dO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=i===5?a.reasonCode:a.returnCode,u=a.properties;let c=2;if(typeof n!="number")return t.emit("error",new Error("Invalid return code")),!1;let d=null;if(i===5){if(d=Oo(t,u),!d)return!1;c+=d.length}return t.write(ut.CONNACK_HEADER),wi(t,c),t.write(a.sessionPresent?ut.SESSIONPRESENT_HEADER:aO),t.write(ke.Buffer.from([n])),d!=null&&d.write(),!0}function pO(e,t,r){pi("publish: packet: %o",e);const i=r?r.protocolVersion:4,a=e||{},n=a.qos||0,u=a.retain?ut.RETAIN_MASK:0,c=a.topic,d=a.payload||oO,m=a.messageId,M=a.properties;let S=0;if(typeof c=="string")S+=ke.Buffer.byteLength(c)+2;else if(ke.Buffer.isBuffer(c))S+=c.length+2;else return t.emit("error",new Error("Invalid topic")),!1;if(ke.Buffer.isBuffer(d)?S+=d.length:S+=ke.Buffer.byteLength(d),n&&typeof m!="number")return t.emit("error",new Error("Invalid messageId")),!1;n&&(S+=2);let R=null;if(i===5){if(R=Oo(t,M),!R)return!1;S+=R.length}return t.write(ut.PUBLISH_HEADER[n][a.dup?1:0][u?1:0]),wi(t,S),Nr(t,e3(c)),t.write(c),n>0&&Nr(t,m),R!=null&&R.write(),pi("publish: payload: %o",d),t.write(d)}function vO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.cmd||"puback",u=a.messageId,c=a.dup&&n==="pubrel"?ut.DUP_MASK:0;let d=0;const m=a.reasonCode,M=a.properties;let S=i===5?3:2;if(n==="pubrel"&&(d=1),typeof u!="number")return t.emit("error",new Error("Invalid messageId")),!1;let R=null;if(i===5&&typeof M=="object"){if(R=yu(t,M,r,S),!R)return!1;S+=R.length}return t.write(ut.ACKS[n][d][c][0]),wi(t,S),Nr(t,u),i===5&&t.write(ke.Buffer.from([m])),R!==null&&R.write(),!0}function gO(e,t,r){pi("subscribe: packet: ");const i=r?r.protocolVersion:4,a=e||{},n=a.dup?ut.DUP_MASK:0,u=a.messageId,c=a.subscriptions,d=a.properties;let m=0;if(typeof u!="number")return t.emit("error",new Error("Invalid messageId")),!1;m+=2;let M=null;if(i===5){if(M=Oo(t,d),!M)return!1;m+=M.length}if(typeof c=="object"&&c.length)for(let R=0;R<c.length;R+=1){const C=c[R].topic,P=c[R].qos;if(typeof C!="string")return t.emit("error",new Error("Invalid subscriptions - invalid topic")),!1;if(typeof P!="number")return t.emit("error",new Error("Invalid subscriptions - invalid qos")),!1;if(i===5){if(typeof(c[R].nl||!1)!="boolean")return t.emit("error",new Error("Invalid subscriptions - invalid No Local")),!1;if(typeof(c[R].rap||!1)!="boolean")return t.emit("error",new Error("Invalid subscriptions - invalid Retain as Published")),!1;const I=c[R].rh||0;if(typeof I!="number"||I>2)return t.emit("error",new Error("Invalid subscriptions - invalid Retain Handling")),!1}m+=ke.Buffer.byteLength(C)+2+1}else return t.emit("error",new Error("Invalid subscriptions")),!1;pi("subscribe: writing to stream: %o",ut.SUBSCRIBE_HEADER),t.write(ut.SUBSCRIBE_HEADER[1][n?1:0][0]),wi(t,m),Nr(t,u),M!==null&&M.write();let S=!0;for(const R of c){const C=R.topic,P=R.qos,k=+R.nl,L=+R.rap,I=R.rh;let B;ha(t,C),B=ut.SUBSCRIBE_OPTIONS_QOS[P],i===5&&(B|=k?ut.SUBSCRIBE_OPTIONS_NL:0,B|=L?ut.SUBSCRIBE_OPTIONS_RAP:0,B|=I?ut.SUBSCRIBE_OPTIONS_RH[I]:0),S=t.write(ke.Buffer.from([B]))}return S}function mO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.messageId,u=a.granted,c=a.properties;let d=0;if(typeof n!="number")return t.emit("error",new Error("Invalid messageId")),!1;if(d+=2,typeof u=="object"&&u.length)for(let M=0;M<u.length;M+=1){if(typeof u[M]!="number")return t.emit("error",new Error("Invalid qos vector")),!1;d+=1}else return t.emit("error",new Error("Invalid qos vector")),!1;let m=null;if(i===5){if(m=yu(t,c,r,d),!m)return!1;d+=m.length}return t.write(ut.SUBACK_HEADER),wi(t,d),Nr(t,n),m!==null&&m.write(),t.write(ke.Buffer.from(u))}function yO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.messageId,u=a.dup?ut.DUP_MASK:0,c=a.unsubscriptions,d=a.properties;let m=0;if(typeof n!="number")return t.emit("error",new Error("Invalid messageId")),!1;if(m+=2,typeof c=="object"&&c.length)for(let R=0;R<c.length;R+=1){if(typeof c[R]!="string")return t.emit("error",new Error("Invalid unsubscriptions")),!1;m+=ke.Buffer.byteLength(c[R])+2}else return t.emit("error",new Error("Invalid unsubscriptions")),!1;let M=null;if(i===5){if(M=Oo(t,d),!M)return!1;m+=M.length}t.write(ut.UNSUBSCRIBE_HEADER[1][u?1:0][0]),wi(t,m),Nr(t,n),M!==null&&M.write();let S=!0;for(let R=0;R<c.length;R++)S=ha(t,c[R]);return S}function bO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.messageId,u=a.dup?ut.DUP_MASK:0,c=a.granted,d=a.properties,m=a.cmd,M=0;let S=2;if(typeof n!="number")return t.emit("error",new Error("Invalid messageId")),!1;if(i===5)if(typeof c=="object"&&c.length)for(let C=0;C<c.length;C+=1){if(typeof c[C]!="number")return t.emit("error",new Error("Invalid qos vector")),!1;S+=1}else return t.emit("error",new Error("Invalid qos vector")),!1;let R=null;if(i===5){if(R=yu(t,d,r,S),!R)return!1;S+=R.length}return t.write(ut.ACKS[m][M][u][0]),wi(t,S),Nr(t,n),R!==null&&R.write(),i===5&&t.write(ke.Buffer.from(c)),!0}function wO(e,t,r){return t.write(ut.EMPTY[e.cmd])}function _O(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.reasonCode,u=a.properties;let c=i===5?1:0,d=null;if(i===5){if(d=yu(t,u,r,c),!d)return!1;c+=d.length}return t.write(ke.Buffer.from([ut.codes.disconnect<<4])),wi(t,c),i===5&&t.write(ke.Buffer.from([n])),d!==null&&d.write(),!0}function MO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.reasonCode,u=a.properties;let c=i===5?1:0;i!==5&&t.emit("error",new Error("Invalid mqtt version for auth packet"));const d=yu(t,u,r,c);return d?(c+=d.length,t.write(ke.Buffer.from([ut.codes.auth<<4])),wi(t,c),t.write(ke.Buffer.from([n])),d!==null&&d.write(),!0):!1}const j1={};function wi(e,t){if(t>ut.VARBYTEINT_MAX)return e.emit("error",new Error(`Invalid variable byte integer: ${t}`)),!1;let r=j1[t];return r||(r=vp(t),t<16384&&(j1[t]=r)),pi("writeVarByteInt: writing to stream: %o",r),e.write(r)}function ha(e,t){const r=ke.Buffer.byteLength(t);return Nr(e,r),pi("writeString: %s",t),e.write(t,"utf8")}function U1(e,t,r){ha(e,t),ha(e,r)}function gp(e,t){return pi("writeNumberCached: number: %d",t),pi("writeNumberCached: %o",ql[t]),e.write(ql[t])}function SO(e,t){const r=fO(t);return pi("writeNumberGenerated: %o",r),e.write(r)}function xO(e,t){const r=lO(t);return pi("write4ByteNumber: %o",r),e.write(r)}function Ha(e,t){typeof t=="string"?ha(e,t):t?(Nr(e,t.length),e.write(t)):Nr(e,0)}function Oo(e,t){if(typeof t!="object"||t.length!=null)return{length:1,write(){q1(e,{},0)}};let r=0;function i(n,u){const c=ut.propertiesTypes[n];let d=0;switch(c){case"byte":{if(typeof u!="boolean")return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+1;break}case"int8":{if(typeof u!="number"||u<0||u>255)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+1;break}case"binary":{if(u&&u===null)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+ke.Buffer.byteLength(u)+2;break}case"int16":{if(typeof u!="number"||u<0||u>65535)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+2;break}case"int32":{if(typeof u!="number"||u<0||u>4294967295)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+4;break}case"var":{if(typeof u!="number"||u<0||u>268435455)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+ke.Buffer.byteLength(vp(u));break}case"string":{if(typeof u!="string")return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+2+ke.Buffer.byteLength(u.toString());break}case"pair":{if(typeof u!="object")return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=Object.getOwnPropertyNames(u).reduce((m,M)=>{const S=u[M];return Array.isArray(S)?m+=S.reduce((R,C)=>(R+=1+2+ke.Buffer.byteLength(M.toString())+2+ke.Buffer.byteLength(C.toString()),R),0):m+=1+2+ke.Buffer.byteLength(M.toString())+2+ke.Buffer.byteLength(u[M].toString()),m},0);break}default:return e.emit("error",new Error(`Invalid property ${n}: ${u}`)),!1}return d}if(t)for(const n in t){let u=0,c=0;const d=t[n];if(Array.isArray(d))for(let m=0;m<d.length;m++){if(c=i(n,d[m]),!c)return!1;u+=c}else{if(c=i(n,d),!c)return!1;u=c}if(!u)return!1;r+=u}return{length:ke.Buffer.byteLength(vp(r))+r,write(){q1(e,t,r)}}}function yu(e,t,r,i){const a=["reasonString","userProperties"],n=r&&r.properties&&r.properties.maximumPacketSize?r.properties.maximumPacketSize:0;let u=Oo(e,t);if(n)for(;i+u.length>n;){const c=a.shift();if(c&&t[c])delete t[c],u=Oo(e,t);else return!1}return u}function H1(e,t,r){switch(ut.propertiesTypes[t]){case"byte":{e.write(ke.Buffer.from([ut.properties[t]])),e.write(ke.Buffer.from([+r]));break}case"int8":{e.write(ke.Buffer.from([ut.properties[t]])),e.write(ke.Buffer.from([r]));break}case"binary":{e.write(ke.Buffer.from([ut.properties[t]])),Ha(e,r);break}case"int16":{e.write(ke.Buffer.from([ut.properties[t]])),Nr(e,r);break}case"int32":{e.write(ke.Buffer.from([ut.properties[t]])),xO(e,r);break}case"var":{e.write(ke.Buffer.from([ut.properties[t]])),wi(e,r);break}case"string":{e.write(ke.Buffer.from([ut.properties[t]])),ha(e,r);break}case"pair":{Object.getOwnPropertyNames(r).forEach(a=>{const n=r[a];Array.isArray(n)?n.forEach(u=>{e.write(ke.Buffer.from([ut.properties[t]])),U1(e,a.toString(),u.toString())}):(e.write(ke.Buffer.from([ut.properties[t]])),U1(e,a.toString(),n.toString()))});break}default:return e.emit("error",new Error(`Invalid property ${t} value: ${r}`)),!1}}function q1(e,t,r){wi(e,r);for(const i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&t[i]!==null){const a=t[i];if(Array.isArray(a))for(let n=0;n<a.length;n++)H1(e,i,a[n]);else H1(e,i,a)}}function e3(e){return e?e instanceof ke.Buffer?e.length:ke.Buffer.byteLength(e):0}function W1(e){return typeof e=="string"||e instanceof ke.Buffer}var t3=QM;const EO=t3,RO=Or;function AO(e,t){const r=new TO;return EO(e,r,t),r.concat()}class TO extends RO{constructor(){super(),this._array=new Array(20),this._i=0}write(t){return this._array[this._i++]=t,!0}concat(){let t=0;const r=new Array(this._array.length),i=this._array;let a=0,n;for(n=0;n<i.length&&i[n]!==void 0;n++)typeof i[n]!="string"?r[n]=i[n].length:r[n]=ke.Buffer.byteLength(i[n]),t+=r[n];const u=ke.Buffer.allocUnsafe(t);for(n=0;n<i.length&&i[n]!==void 0;n++)typeof i[n]!="string"?(i[n].copy(u,a),a+=r[n]):(u.write(i[n],a),a+=r[n]);return u}}var OO=AO;Lh.parser=ZT.parser;Lh.generate=OO;Lh.writeToStream=t3;function Io(){if(!(this instanceof Io))return new Io;this.nextId=Math.max(1,Math.floor(Math.random()*65535))}Io.prototype.allocate=function(){const e=this.nextId++;return this.nextId===65536&&(this.nextId=1),e};Io.prototype.getLastAllocated=function(){return this.nextId===1?65535:this.nextId-1};Io.prototype.register=function(e){return!0};Io.prototype.deallocate=function(e){};Io.prototype.clear=function(){};var IO=Io;function PO(e,t,r){var i=this;this._callback=e,this._args=r,this._interval=setInterval(e,t,this._args),this.reschedule=function(a){a||(a=i._interval),i._interval&&clearInterval(i._interval),i._interval=setInterval(i._callback,a,i._args)},this.clear=function(){i._interval&&(clearInterval(i._interval),i._interval=void 0)},this.destroy=function(){i._interval&&clearInterval(i._interval),i._callback=void 0,i._interval=void 0,i._args=void 0}}function CO(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("interval needed");var e;if(arguments.length>0){e=new Array(arguments.length-2);for(var t=0;t<e.length;t++)e[t]=arguments[t+2]}return new PO(arguments[0],arguments[1],e)}var BO=CO,LO=NO;function ts(e){return e instanceof ke.Buffer?ke.Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function NO(e){if(e=e||{},e.circles)return kO(e);return e.proto?i:r;function t(a,n){for(var u=Object.keys(a),c=new Array(u.length),d=0;d<u.length;d++){var m=u[d],M=a[m];typeof M!="object"||M===null?c[m]=M:M instanceof Date?c[m]=new Date(M):ArrayBuffer.isView(M)?c[m]=ts(M):c[m]=n(M)}return c}function r(a){if(typeof a!="object"||a===null)return a;if(a instanceof Date)return new Date(a);if(Array.isArray(a))return t(a,r);if(a instanceof Map)return new Map(t(Array.from(a),r));if(a instanceof Set)return new Set(t(Array.from(a),r));var n={};for(var u in a)if(Object.hasOwnProperty.call(a,u)!==!1){var c=a[u];typeof c!="object"||c===null?n[u]=c:c instanceof Date?n[u]=new Date(c):c instanceof Map?n[u]=new Map(t(Array.from(c),r)):c instanceof Set?n[u]=new Set(t(Array.from(c),r)):ArrayBuffer.isView(c)?n[u]=ts(c):n[u]=r(c)}return n}function i(a){if(typeof a!="object"||a===null)return a;if(a instanceof Date)return new Date(a);if(Array.isArray(a))return t(a,i);if(a instanceof Map)return new Map(t(Array.from(a),i));if(a instanceof Set)return new Set(t(Array.from(a),i));var n={};for(var u in a){var c=a[u];typeof c!="object"||c===null?n[u]=c:c instanceof Date?n[u]=new Date(c):c instanceof Map?n[u]=new Map(t(Array.from(c),i)):c instanceof Set?n[u]=new Set(t(Array.from(c),i)):ArrayBuffer.isView(c)?n[u]=ts(c):n[u]=i(c)}return n}}function kO(e){var t=[],r=[];return e.proto?n:a;function i(u,c){for(var d=Object.keys(u),m=new Array(d.length),M=0;M<d.length;M++){var S=d[M],R=u[S];if(typeof R!="object"||R===null)m[S]=R;else if(R instanceof Date)m[S]=new Date(R);else if(ArrayBuffer.isView(R))m[S]=ts(R);else{var C=t.indexOf(R);C!==-1?m[S]=r[C]:m[S]=c(R)}}return m}function a(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return i(u,a);if(u instanceof Map)return new Map(i(Array.from(u),a));if(u instanceof Set)return new Set(i(Array.from(u),a));var c={};t.push(u),r.push(c);for(var d in u)if(Object.hasOwnProperty.call(u,d)!==!1){var m=u[d];if(typeof m!="object"||m===null)c[d]=m;else if(m instanceof Date)c[d]=new Date(m);else if(m instanceof Map)c[d]=new Map(i(Array.from(m),a));else if(m instanceof Set)c[d]=new Set(i(Array.from(m),a));else if(ArrayBuffer.isView(m))c[d]=ts(m);else{var M=t.indexOf(m);M!==-1?c[d]=r[M]:c[d]=a(m)}}return t.pop(),r.pop(),c}function n(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return i(u,n);if(u instanceof Map)return new Map(i(Array.from(u),n));if(u instanceof Set)return new Set(i(Array.from(u),n));var c={};t.push(u),r.push(c);for(var d in u){var m=u[d];if(typeof m!="object"||m===null)c[d]=m;else if(m instanceof Date)c[d]=new Date(m);else if(m instanceof Map)c[d]=new Map(i(Array.from(m),n));else if(m instanceof Set)c[d]=new Set(i(Array.from(m),n));else if(ArrayBuffer.isView(m))c[d]=ts(m);else{var M=t.indexOf(m);M!==-1?c[d]=r[M]:c[d]=n(m)}}return t.pop(),r.pop(),c}}var $O=LO();function DO(e){const t=e.split("/");for(let r=0;r<t.length;r++)if(t[r]!=="+"){if(t[r]==="#")return r===t.length-1;if(t[r].indexOf("+")!==-1||t[r].indexOf("#")!==-1)return!1}return!0}function FO(e){if(e.length===0)return"empty_topic_list";for(let t=0;t<e.length;t++)if(!DO(e[t]))return e[t];return null}var jO={validateTopics:FO};const r3=Or.EventEmitter,Kl=_M,UO=Q9,HO=uT,i3=Lh,qO=IO,WO=vu.Writable,KO=Ze,VO=BO,n3=$O,o3=jO,Dh=Fv,He=zn("mqttjs:client"),Yv=we?we.nextTick:function(e){setTimeout(e,0)},Zv=Ye.setImmediate||function(e){Yv(e)},K1={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0},zO=["ECONNREFUSED","EADDRINUSE","ECONNRESET","ENOTFOUND"],Vl={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};function GO(){return"mqttjs_"+Math.random().toString(16).substr(2,8)}function YO(e,t){if(e.options.protocolVersion===5&&t.cmd==="publish"){let r;t.properties&&(r=t.properties.topicAlias);const i=t.topic.toString();if(e.topicAliasSend)if(r){if(i.length!==0&&(He("applyTopicAlias :: register topic: %s - alias: %d",i,r),!e.topicAliasSend.put(i,r)))return He("applyTopicAlias :: error out of range. topic: %s - alias: %d",i,r),new Error("Sending Topic Alias out of range")}else i.length!==0&&(e.options.autoAssignTopicAlias?(r=e.topicAliasSend.getAliasByTopic(i),r?(t.topic="",t.properties={...t.properties,topicAlias:r},He("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",i,r)):(r=e.topicAliasSend.getLruAlias(),e.topicAliasSend.put(i,r),t.properties={...t.properties,topicAlias:r},He("applyTopicAlias :: auto assign topic: %s - alias: %d",i,r))):e.options.autoUseTopicAlias&&(r=e.topicAliasSend.getAliasByTopic(i),r&&(t.topic="",t.properties={...t.properties,topicAlias:r},He("applyTopicAlias :: auto use topic: %s - alias: %d",i,r))));else if(r)return He("applyTopicAlias :: error out of range. topic: %s - alias: %d",i,r),new Error("Sending Topic Alias out of range")}}function a3(e,t){let r;t.properties&&(r=t.properties.topicAlias);let i=t.topic.toString();if(i.length===0){if(typeof r>"u")return new Error("Unregistered Topic Alias");if(i=e.topicAliasSend.getTopicByAlias(r),typeof i>"u")return new Error("Unregistered Topic Alias");t.topic=i}r&&delete t.properties.topicAlias}function rs(e,t,r){He("sendPacket :: packet: %O",t),He("sendPacket :: emitting `packetsend`"),e.emit("packetsend",t),He("sendPacket :: writing to stream");const i=i3.writeToStream(t,e.stream,e.options);He("sendPacket :: writeToStream result %s",i),!i&&r&&r!==yr?(He("sendPacket :: handle events on `drain` once through callback."),e.stream.once("drain",r)):r&&(He("sendPacket :: invoking cb"),r())}function ZO(e){e&&(He("flush: queue exists? %b",!!e),Object.keys(e).forEach(function(t){typeof e[t].cb=="function"&&(e[t].cb(new Error("Connection closed")),delete e[t])}))}function XO(e){e&&(He("flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(e).forEach(function(t){e[t].volatile&&typeof e[t].cb=="function"&&(e[t].cb(new Error("Connection closed")),delete e[t])}))}function V1(e,t,r,i){He("storeAndSend :: store packet with cmd %s to outgoingStore",t.cmd);let a=t,n;if(a.cmd==="publish"&&(a=n3(t),n=a3(e,a),n))return r&&r(n);e.outgoingStore.put(a,function(c){if(c)return r&&r(c);i(),rs(e,t,r)})}function yr(e){He("nop ::",e)}function gt(e,t){let r;const i=this;if(!(this instanceof gt))return new gt(e,t);this.options=t||{};for(r in K1)typeof this.options[r]>"u"?this.options[r]=K1[r]:this.options[r]=t[r];He("MqttClient :: options.protocol",t.protocol),He("MqttClient :: options.protocolVersion",t.protocolVersion),He("MqttClient :: options.username",t.username),He("MqttClient :: options.keepalive",t.keepalive),He("MqttClient :: options.reconnectPeriod",t.reconnectPeriod),He("MqttClient :: options.rejectUnauthorized",t.rejectUnauthorized),He("MqttClient :: options.topicAliasMaximum",t.topicAliasMaximum),this.options.clientId=typeof t.clientId=="string"?t.clientId:GO(),He("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=t.protocolVersion===5&&t.customHandleAcks?t.customHandleAcks:function(){arguments[3](0)},this.streamBuilder=e,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new qO:this.options.messageIdProvider,this.outgoingStore=t.outgoingStore||new Kl,this.incomingStore=t.incomingStore||new Kl,this.queueQoSZero=t.queueQoSZero===void 0?!0:t.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.pingTimer=null,this.connected=!1,this.disconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,t.topicAliasMaximum>0&&(t.topicAliasMaximum>65535?He("MqttClient :: options.topicAliasMaximum is out of range"):this.topicAliasRecv=new UO(t.topicAliasMaximum)),this.on("connect",function(){const a=this.queue;function n(){const u=a.shift();He("deliver :: entry %o",u);let c=null;if(!u){i._resubscribe();return}c=u.packet,He("deliver :: call _sendPacket for %o",c);let d=!0;c.messageId&&c.messageId!==0&&(i.messageIdProvider.register(c.messageId)||(d=!1)),d?i._sendPacket(c,function(m){u.cb&&u.cb(m),n()}):(He("messageId: %d has already used. The message is skipped and removed.",c.messageId),n())}He("connect :: sending queued packets"),n()}),this.on("close",function(){He("close :: connected set to `false`"),this.connected=!1,He("close :: clearing connackTimer"),clearTimeout(this.connackTimer),He("close :: clearing ping timer"),i.pingTimer!==null&&(i.pingTimer.clear(),i.pingTimer=null),this.topicAliasRecv&&this.topicAliasRecv.clear(),He("close :: calling _setupReconnect"),this._setupReconnect()}),r3.call(this),He("MqttClient :: setting up stream"),this._setupStream()}KO(gt,r3);gt.prototype._setupStream=function(){const e=this,t=new WO,r=i3.parser(this.options);let i=null;const a=[];He("_setupStream :: calling method to clear reconnect"),this._clearReconnect(),He("_setupStream :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),r.on("packet",function(m){He("parser :: on packet push to packets array."),a.push(m)});function n(){if(a.length)Yv(u);else{const m=i;i=null,m()}}function u(){He("work :: getting next packet in queue");const m=a.shift();if(m)He("work :: packet pulled from queue"),e._handlePacket(m,n);else{He("work :: no packets in queue");const M=i;i=null,He("work :: done flag is %s",!!M),M&&M()}}t._write=function(m,M,S){i=S,He("writable stream :: parsing buffer"),r.parse(m),u()};function c(m){He("streamErrorHandler :: error",m.message),zO.includes(m.code)?(He("streamErrorHandler :: emitting error"),e.emit("error",m)):yr(m)}He("_setupStream :: pipe stream to writable stream"),this.stream.pipe(t),this.stream.on("error",c),this.stream.on("close",function(){He("(%s)stream :: on close",e.options.clientId),XO(e.outgoing),He("stream: emit close to MqttClient"),e.emit("close")}),He("_setupStream: sending packet `connect`");const d=Object.create(this.options);if(d.cmd="connect",this.topicAliasRecv&&(d.properties||(d.properties={}),this.topicAliasRecv&&(d.properties.topicAliasMaximum=this.topicAliasRecv.max)),rs(this,d),r.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return e.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){const m=Dh({cmd:"auth",reasonCode:0},this.options.authPacket);rs(this,m)}}this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(function(){He("!!connectTimeout hit!! Calling _cleanUp with force `true`"),e._cleanUp(!0)},this.options.connectTimeout)};gt.prototype._handlePacket=function(e,t){const r=this.options;if(r.protocolVersion===5&&r.properties&&r.properties.maximumPacketSize&&r.properties.maximumPacketSize<e.length)return this.emit("error",new Error("exceeding packets size "+e.cmd)),this.end({reasonCode:149,properties:{reasonString:"Maximum packet size was exceeded"}}),this;switch(He("_handlePacket :: emitting packetreceive"),this.emit("packetreceive",e),e.cmd){case"publish":this._handlePublish(e,t);break;case"puback":case"pubrec":case"pubcomp":case"suback":case"unsuback":this._handleAck(e),t();break;case"pubrel":this._handlePubrel(e,t);break;case"connack":this._handleConnack(e),t();break;case"auth":this._handleAuth(e),t();break;case"pingresp":this._handlePingresp(e),t();break;case"disconnect":this._handleDisconnect(e),t();break}};gt.prototype._checkDisconnecting=function(e){return this.disconnecting&&(e&&e!==yr?e(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting};gt.prototype.publish=function(e,t,r,i){He("publish :: message `%s` to topic `%s`",t,e);const a=this.options;if(typeof r=="function"&&(i=r,r=null),r=Dh({qos:0,retain:!1,dup:!1},r),this._checkDisconnecting(i))return this;const u=this,c=function(){let d=0;if((r.qos===1||r.qos===2)&&(d=u._nextId(),d===null))return He("No messageId left"),!1;const m={cmd:"publish",topic:e,payload:t,qos:r.qos,retain:r.retain,messageId:d,dup:r.dup};switch(a.protocolVersion===5&&(m.properties=r.properties),He("publish :: qos",r.qos),r.qos){case 1:case 2:u.outgoing[m.messageId]={volatile:!1,cb:i||yr},He("MqttClient:publish: packet cmd: %s",m.cmd),u._sendPacket(m,void 0,r.cbStorePut);break;default:He("MqttClient:publish: packet cmd: %s",m.cmd),u._sendPacket(m,i,r.cbStorePut);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!c())&&this._storeProcessingQueue.push({invoke:c,cbStorePut:r.cbStorePut,callback:i}),this};gt.prototype.subscribe=function(){const e=this,t=new Array(arguments.length);for(let S=0;S<arguments.length;S++)t[S]=arguments[S];const r=[];let i=t.shift();const a=i.resubscribe;let n=t.pop()||yr,u=t.pop();const c=this.options.protocolVersion;delete i.resubscribe,typeof i=="string"&&(i=[i]),typeof n!="function"&&(u=n,n=yr);const d=o3.validateTopics(i);if(d!==null)return Zv(n,new Error("Invalid topic "+d)),this;if(this._checkDisconnecting(n))return He("subscribe: discconecting true"),this;const m={qos:0};if(c===5&&(m.nl=!1,m.rap=!1,m.rh=0),u=Dh(m,u),Array.isArray(i)?i.forEach(function(S){if(He("subscribe: array topic %s",S),!Object.prototype.hasOwnProperty.call(e._resubscribeTopics,S)||e._resubscribeTopics[S].qos<u.qos||a){const R={topic:S,qos:u.qos};c===5&&(R.nl=u.nl,R.rap=u.rap,R.rh=u.rh,R.properties=u.properties),He("subscribe: pushing topic `%s` and qos `%s` to subs list",R.topic,R.qos),r.push(R)}}):Object.keys(i).forEach(function(S){if(He("subscribe: object topic %s",S),!Object.prototype.hasOwnProperty.call(e._resubscribeTopics,S)||e._resubscribeTopics[S].qos<i[S].qos||a){const R={topic:S,qos:i[S].qos};c===5&&(R.nl=i[S].nl,R.rap=i[S].rap,R.rh=i[S].rh,R.properties=u.properties),He("subscribe: pushing `%s` to subs list",R),r.push(R)}}),!r.length)return n(null,[]),this;const M=function(){const S=e._nextId();if(S===null)return He("No messageId left"),!1;const R={cmd:"subscribe",subscriptions:r,qos:1,retain:!1,dup:!1,messageId:S};if(u.properties&&(R.properties=u.properties),e.options.resubscribe){He("subscribe :: resubscribe true");const C=[];r.forEach(function(P){if(e.options.reconnectPeriod>0){const k={qos:P.qos};c===5&&(k.nl=P.nl||!1,k.rap=P.rap||!1,k.rh=P.rh||0,k.properties=P.properties),e._resubscribeTopics[P.topic]=k,C.push(P.topic)}}),e.messageIdToTopic[R.messageId]=C}return e.outgoing[R.messageId]={volatile:!0,cb:function(C,P){if(!C){const k=P.granted;for(let L=0;L<k.length;L+=1)r[L].qos=k[L]}n(C,r)}},He("subscribe :: call _sendPacket"),e._sendPacket(R),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!M())&&this._storeProcessingQueue.push({invoke:M,callback:n}),this};gt.prototype.unsubscribe=function(){const e=this,t=new Array(arguments.length);for(let c=0;c<arguments.length;c++)t[c]=arguments[c];let r=t.shift(),i=t.pop()||yr,a=t.pop();typeof r=="string"&&(r=[r]),typeof i!="function"&&(a=i,i=yr);const n=o3.validateTopics(r);if(n!==null)return Zv(i,new Error("Invalid topic "+n)),this;if(e._checkDisconnecting(i))return this;const u=function(){const c=e._nextId();if(c===null)return He("No messageId left"),!1;const d={cmd:"unsubscribe",qos:1,messageId:c};return typeof r=="string"?d.unsubscriptions=[r]:Array.isArray(r)&&(d.unsubscriptions=r),e.options.resubscribe&&d.unsubscriptions.forEach(function(m){delete e._resubscribeTopics[m]}),typeof a=="object"&&a.properties&&(d.properties=a.properties),e.outgoing[d.messageId]={volatile:!0,cb:i},He("unsubscribe: call _sendPacket"),e._sendPacket(d),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!u())&&this._storeProcessingQueue.push({invoke:u,callback:i}),this};gt.prototype.end=function(e,t,r){const i=this;He("end :: (%s)",this.options.clientId),(e==null||typeof e!="boolean")&&(r=t||yr,t=e,e=!1,typeof t!="object"&&(r=t,t=null,typeof r!="function"&&(r=yr))),typeof t!="object"&&(r=t,t=null),He("end :: cb? %s",!!r),r=r||yr;function a(){He("end :: closeStores: closing incoming and outgoing stores"),i.disconnected=!0,i.incomingStore.close(function(u){i.outgoingStore.close(function(c){if(He("end :: closeStores: emitting end"),i.emit("end"),r){const d=u||c;He("end :: closeStores: invoking callback with args"),r(d)}})}),i._deferredReconnect&&i._deferredReconnect()}function n(){He("end :: (%s) :: finish :: calling _cleanUp with force %s",i.options.clientId,e),i._cleanUp(e,()=>{He("end :: finish :: calling process.nextTick on closeStores"),Yv(a.bind(i))},t)}return this.disconnecting?(r(),this):(this._clearReconnect(),this.disconnecting=!0,!e&&Object.keys(this.outgoing).length>0?(He("end :: (%s) :: calling finish in 10ms once outgoing is empty",i.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,n,10))):(He("end :: (%s) :: immediately calling finish",i.options.clientId),n()),this)};gt.prototype.removeOutgoingMessage=function(e){const t=this.outgoing[e]?this.outgoing[e].cb:null;return delete this.outgoing[e],this.outgoingStore.del({messageId:e},function(){t(new Error("Message removed"))}),this};gt.prototype.reconnect=function(e){He("client reconnect");const t=this,r=function(){e?(t.options.incomingStore=e.incomingStore,t.options.outgoingStore=e.outgoingStore):(t.options.incomingStore=null,t.options.outgoingStore=null),t.incomingStore=t.options.incomingStore||new Kl,t.outgoingStore=t.options.outgoingStore||new Kl,t.disconnecting=!1,t.disconnected=!1,t._deferredReconnect=null,t._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=r:r(),this};gt.prototype._reconnect=function(){He("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this._setupStream()}),He("client already connected. disconnecting first.")):(He("_reconnect: calling _setupStream"),this._setupStream())};gt.prototype._setupReconnect=function(){const e=this;!e.disconnecting&&!e.reconnectTimer&&e.options.reconnectPeriod>0?(this.reconnecting||(He("_setupReconnect :: emit `offline` state"),this.emit("offline"),He("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),He("_setupReconnect :: setting reconnectTimer for %d ms",e.options.reconnectPeriod),e.reconnectTimer=setInterval(function(){He("reconnectTimer :: reconnect triggered!"),e._reconnect()},e.options.reconnectPeriod)):He("_setupReconnect :: doing nothing...")};gt.prototype._clearReconnect=function(){He("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)};gt.prototype._cleanUp=function(e,t){const r=arguments[2];if(t&&(He("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",t)),He("_cleanUp :: forced? %s",e),e)this.options.reconnectPeriod===0&&this.options.clean&&ZO(this.outgoing),He("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{const i=Dh({cmd:"disconnect"},r);He("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(i,Zv.bind(null,this.stream.end.bind(this.stream)))}this.disconnecting||(He("_cleanUp :: client not disconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this.pingTimer!==null&&(He("_cleanUp :: clearing pingTimer"),this.pingTimer.clear(),this.pingTimer=null),t&&!this.connected&&(He("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",t),t())};gt.prototype._sendPacket=function(e,t,r){He("_sendPacket :: (%s) ::  start",this.options.clientId),r=r||yr,t=t||yr;const i=YO(this,e);if(i){t(i);return}if(!this.connected){if(e.cmd==="auth"){this._shiftPingInterval(),rs(this,e,t);return}He("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(e,t,r);return}switch(this._shiftPingInterval(),e.cmd){case"publish":break;case"pubrel":V1(this,e,t,r);return;default:rs(this,e,t);return}switch(e.qos){case 2:case 1:V1(this,e,t,r);break;case 0:default:rs(this,e,t);break}He("_sendPacket :: (%s) ::  end",this.options.clientId)};gt.prototype._storePacket=function(e,t,r){He("_storePacket :: packet: %o",e),He("_storePacket :: cb? %s",!!t),r=r||yr;let i=e;if(i.cmd==="publish"){i=n3(e);const a=a3(this,i);if(a)return t&&t(a)}(i.qos||0)===0&&this.queueQoSZero||i.cmd!=="publish"?this.queue.push({packet:i,cb:t}):i.qos>0?(t=this.outgoing[i.messageId]?this.outgoing[i.messageId].cb:null,this.outgoingStore.put(i,function(a){if(a)return t&&t(a);r()})):t&&t(new Error("No connection to broker"))};gt.prototype._setupPingTimer=function(){He("_setupPingTimer :: keepalive %d (seconds)",this.options.keepalive);const e=this;!this.pingTimer&&this.options.keepalive&&(this.pingResp=!0,this.pingTimer=VO(function(){e._checkPing()},this.options.keepalive*1e3))};gt.prototype._shiftPingInterval=function(){this.pingTimer&&this.options.keepalive&&this.options.reschedulePings&&this.pingTimer.reschedule(this.options.keepalive*1e3)};gt.prototype._checkPing=function(){He("_checkPing :: checking ping..."),this.pingResp?(He("_checkPing :: ping response received. Clearing flag and sending `pingreq`"),this.pingResp=!1,this._sendPacket({cmd:"pingreq"})):(He("_checkPing :: calling _cleanUp with force true"),this._cleanUp(!0))};gt.prototype._handlePingresp=function(){this.pingResp=!0};gt.prototype._handleConnack=function(e){He("_handleConnack");const t=this.options,i=t.protocolVersion===5?e.reasonCode:e.returnCode;if(clearTimeout(this.connackTimer),delete this.topicAliasSend,e.properties){if(e.properties.topicAliasMaximum){if(e.properties.topicAliasMaximum>65535){this.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}e.properties.topicAliasMaximum>0&&(this.topicAliasSend=new HO(e.properties.topicAliasMaximum))}e.properties.serverKeepAlive&&t.keepalive&&(t.keepalive=e.properties.serverKeepAlive,this._shiftPingInterval()),e.properties.maximumPacketSize&&(t.properties||(t.properties={}),t.properties.maximumPacketSize=e.properties.maximumPacketSize)}if(i===0)this.reconnecting=!1,this._onConnect(e);else if(i>0){const a=new Error("Connection refused: "+Vl[i]);a.code=i,this.emit("error",a)}};gt.prototype._handleAuth=function(e){const r=this.options.protocolVersion,i=r===5?e.reasonCode:e.returnCode;if(r!==5){const n=new Error("Protocol error: Auth packets are only supported in MQTT 5. Your version:"+r);n.code=i,this.emit("error",n);return}const a=this;this.handleAuth(e,function(n,u){if(n){a.emit("error",n);return}if(i===24)a.reconnecting=!1,a._sendPacket(u);else{const c=new Error("Connection refused: "+Vl[i]);n.code=i,a.emit("error",c)}})};gt.prototype.handleAuth=function(e,t){t()};gt.prototype._handlePublish=function(e,t){He("_handlePublish: packet %o",e),t=typeof t<"u"?t:yr;let r=e.topic.toString();const i=e.payload,a=e.qos,n=e.messageId,u=this,c=this.options,d=[0,16,128,131,135,144,145,151,153];if(this.options.protocolVersion===5){let m;if(e.properties&&(m=e.properties.topicAlias),typeof m<"u")if(r.length===0)if(m>0&&m<=65535){const M=this.topicAliasRecv.getTopicByAlias(m);if(M)r=M,He("_handlePublish :: topic complemented by alias. topic: %s - alias: %d",r,m);else{He("_handlePublish :: unregistered topic alias. alias: %d",m),this.emit("error",new Error("Received unregistered Topic Alias"));return}}else{He("_handlePublish :: topic alias out of range. alias: %d",m),this.emit("error",new Error("Received Topic Alias is out of range"));return}else if(this.topicAliasRecv.put(r,m))He("_handlePublish :: registered topic: %s - alias: %d",r,m);else{He("_handlePublish :: topic alias out of range. alias: %d",m),this.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(He("_handlePublish: qos %d",a),a){case 2:{c.customHandleAcks(r,i,e,function(m,M){if(m instanceof Error||(M=m,m=null),m)return u.emit("error",m);if(d.indexOf(M)===-1)return u.emit("error",new Error("Wrong reason code for pubrec"));M?u._sendPacket({cmd:"pubrec",messageId:n,reasonCode:M},t):u.incomingStore.put(e,function(){u._sendPacket({cmd:"pubrec",messageId:n},t)})});break}case 1:{c.customHandleAcks(r,i,e,function(m,M){if(m instanceof Error||(M=m,m=null),m)return u.emit("error",m);if(d.indexOf(M)===-1)return u.emit("error",new Error("Wrong reason code for puback"));M||u.emit("message",r,i,e),u.handleMessage(e,function(S){if(S)return t&&t(S);u._sendPacket({cmd:"puback",messageId:n,reasonCode:M},t)})});break}case 0:this.emit("message",r,i,e),this.handleMessage(e,t);break;default:He("_handlePublish: unknown QoS. Doing nothing.");break}};gt.prototype.handleMessage=function(e,t){t()};gt.prototype._handleAck=function(e){const t=e.messageId,r=e.cmd;let i=null;const a=this.outgoing[t]?this.outgoing[t].cb:null,n=this;let u;if(!a){He("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(He("_handleAck :: packet type",r),r){case"pubcomp":case"puback":{const c=e.reasonCode;c&&c>0&&c!==16&&(u=new Error("Publish error: "+Vl[c]),u.code=c,a(u,e)),delete this.outgoing[t],this.outgoingStore.del(e,a),this.messageIdProvider.deallocate(t),this._invokeStoreProcessingQueue();break}case"pubrec":{i={cmd:"pubrel",qos:2,messageId:t};const c=e.reasonCode;c&&c>0&&c!==16?(u=new Error("Publish error: "+Vl[c]),u.code=c,a(u,e)):this._sendPacket(i);break}case"suback":{delete this.outgoing[t],this.messageIdProvider.deallocate(t);for(let c=0;c<e.granted.length;c++)if(e.granted[c]&128){const d=this.messageIdToTopic[t];d&&d.forEach(function(m){delete n._resubscribeTopics[m]})}this._invokeStoreProcessingQueue(),a(null,e);break}case"unsuback":{delete this.outgoing[t],this.messageIdProvider.deallocate(t),this._invokeStoreProcessingQueue(),a(null);break}default:n.emit("error",new Error("unrecognized packet type"))}this.disconnecting&&Object.keys(this.outgoing).length===0&&this.emit("outgoingEmpty")};gt.prototype._handlePubrel=function(e,t){He("handling pubrel packet"),t=typeof t<"u"?t:yr;const r=e.messageId,i=this,a={cmd:"pubcomp",messageId:r};i.incomingStore.get(e,function(n,u){n?i._sendPacket(a,t):(i.emit("message",u.topic,u.payload,u),i.handleMessage(u,function(c){if(c)return t(c);i.incomingStore.del(u,yr),i._sendPacket(a,t)}))})};gt.prototype._handleDisconnect=function(e){this.emit("disconnect",e)};gt.prototype._nextId=function(){return this.messageIdProvider.allocate()};gt.prototype.getLastMessageId=function(){return this.messageIdProvider.getLastAllocated()};gt.prototype._resubscribe=function(){He("_resubscribe");const e=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion===5&&!this.connackPacket.sessionPresent)&&e.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){He("_resubscribe: protocolVersion 5");for(let t=0;t<e.length;t++){const r={};r[e[t]]=this._resubscribeTopics[e[t]],r.resubscribe=!0,this.subscribe(r,{properties:r[e[t]].properties})}}else this._resubscribeTopics.resubscribe=!0,this.subscribe(this._resubscribeTopics);else this._resubscribeTopics={};this._firstConnection=!1};gt.prototype._onConnect=function(e){if(this.disconnected){this.emit("connect",e);return}const t=this;this.connackPacket=e,this.messageIdProvider.clear(),this._setupPingTimer(),this.connected=!0;function r(){let i=t.outgoingStore.createStream();function a(){t._storeProcessing=!1,t._packetIdsDuringStoreProcessing={}}t.once("close",n),i.on("error",function(c){a(),t._flushStoreProcessingQueue(),t.removeListener("close",n),t.emit("error",c)});function n(){i.destroy(),i=null,t._flushStoreProcessingQueue(),a()}function u(){if(!i)return;t._storeProcessing=!0;const c=i.read(1);let d;if(!c){i.once("readable",u);return}if(t._packetIdsDuringStoreProcessing[c.messageId]){u();return}!t.disconnecting&&!t.reconnectTimer?(d=t.outgoing[c.messageId]?t.outgoing[c.messageId].cb:null,t.outgoing[c.messageId]={volatile:!1,cb:function(m,M){d&&d(m,M),u()}},t._packetIdsDuringStoreProcessing[c.messageId]=!0,t.messageIdProvider.register(c.messageId)?t._sendPacket(c):He("messageId: %d has already used.",c.messageId)):i.destroy&&i.destroy()}i.on("end",function(){let c=!0;for(const d in t._packetIdsDuringStoreProcessing)if(!t._packetIdsDuringStoreProcessing[d]){c=!1;break}c?(a(),t.removeListener("close",n),t._invokeAllStoreProcessingQueue(),t.emit("connect",e)):r()}),u()}r()};gt.prototype._invokeStoreProcessingQueue=function(){if(this._storeProcessingQueue.length>0){const e=this._storeProcessingQueue[0];if(e&&e.invoke())return this._storeProcessingQueue.shift(),!0}return!1};gt.prototype._invokeAllStoreProcessingQueue=function(){for(;this._invokeStoreProcessingQueue(););};gt.prototype._flushStoreProcessingQueue=function(){for(const e of this._storeProcessingQueue)e.cbStorePut&&e.cbStorePut(new Error("Connection closed")),e.callback&&e.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)};var JO=gt,mp={exports:{}},zl={exports:{}};/*! https://mths.be/punycode v1.4.1 by @mathias */zl.exports;(function(e,t){(function(r){var i=t&&!t.nodeType&&t,a=e&&!e.nodeType&&e,n=typeof Ye=="object"&&Ye;(n.global===n||n.window===n||n.self===n)&&(r=n);var u,c=2147483647,d=36,m=1,M=26,S=38,R=700,C=72,P=128,k="-",L=/^xn--/,I=/[^\x20-\x7E]/,B=/[\x2E\u3002\uFF0E\uFF61]/g,H={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},F=d-m,W=Math.floor,Y=String.fromCharCode,ie;function J(s){throw new RangeError(H[s])}function V(s,v){for(var T=s.length,$=[];T--;)$[T]=v(s[T]);return $}function oe(s,v){var T=s.split("@"),$="";T.length>1&&($=T[0]+"@",s=T[1]),s=s.replace(B,".");var G=s.split("."),ee=V(G,v).join(".");return $+ee}function _(s){for(var v=[],T=0,$=s.length,G,ee;T<$;)G=s.charCodeAt(T++),G>=55296&&G<=56319&&T<$?(ee=s.charCodeAt(T++),(ee&64512)==56320?v.push(((G&1023)<<10)+(ee&1023)+65536):(v.push(G),T--)):v.push(G);return v}function o(s){return V(s,function(v){var T="";return v>65535&&(v-=65536,T+=Y(v>>>10&1023|55296),v=56320|v&1023),T+=Y(v),T}).join("")}function f(s){return s-48<10?s-22:s-65<26?s-65:s-97<26?s-97:d}function l(s,v){return s+22+75*(s<26)-((v!=0)<<5)}function h(s,v,T){var $=0;for(s=T?W(s/R):s>>1,s+=W(s/v);s>F*M>>1;$+=d)s=W(s/F);return W($+(F+1)*s/(s+S))}function p(s){var v=[],T=s.length,$,G=0,ee=P,A=C,E,U,K,Z,b,y,O,q,X;for(E=s.lastIndexOf(k),E<0&&(E=0),U=0;U<E;++U)s.charCodeAt(U)>=128&&J("not-basic"),v.push(s.charCodeAt(U));for(K=E>0?E+1:0;K<T;){for(Z=G,b=1,y=d;K>=T&&J("invalid-input"),O=f(s.charCodeAt(K++)),(O>=d||O>W((c-G)/b))&&J("overflow"),G+=O*b,q=y<=A?m:y>=A+M?M:y-A,!(O<q);y+=d)X=d-q,b>W(c/X)&&J("overflow"),b*=X;$=v.length+1,A=h(G-Z,$,Z==0),W(G/$)>c-ee&&J("overflow"),ee+=W(G/$),G%=$,v.splice(G++,0,ee)}return o(v)}function w(s){var v,T,$,G,ee,A,E,U,K,Z,b,y=[],O,q,X,D;for(s=_(s),O=s.length,v=P,T=0,ee=C,A=0;A<O;++A)b=s[A],b<128&&y.push(Y(b));for($=G=y.length,G&&y.push(k);$<O;){for(E=c,A=0;A<O;++A)b=s[A],b>=v&&b<E&&(E=b);for(q=$+1,E-v>W((c-T)/q)&&J("overflow"),T+=(E-v)*q,v=E,A=0;A<O;++A)if(b=s[A],b<v&&++T>c&&J("overflow"),b==v){for(U=T,K=d;Z=K<=ee?m:K>=ee+M?M:K-ee,!(U<Z);K+=d)D=U-Z,X=d-Z,y.push(Y(l(Z+D%X,0))),U=W(D/X);y.push(Y(l(U,0))),ee=h(T,q,$==G),T=0,++$}++T,++v}return y.join("")}function x(s){return oe(s,function(v){return L.test(v)?p(v.slice(4).toLowerCase()):v})}function g(s){return oe(s,function(v){return I.test(v)?"xn--"+w(v):v})}if(u={version:"1.4.1",ucs2:{decode:_,encode:o},decode:p,encode:w,toASCII:g,toUnicode:x},i&&a)if(e.exports==i)a.exports=u;else for(ie in u)u.hasOwnProperty(ie)&&(i[ie]=u[ie]);else r.punycode=u})(Ye)})(zl,zl.exports);var QO=zl.exports,yp={exports:{}},eu={};function eI(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var tI=function(e,t,r,i){t=t||"&",r=r||"=";var a={};if(typeof e!="string"||e.length===0)return a;var n=/\+/g;e=e.split(t);var u=1e3;i&&typeof i.maxKeys=="number"&&(u=i.maxKeys);var c=e.length;u>0&&c>u&&(c=u);for(var d=0;d<c;++d){var m=e[d].replace(n,"%20"),M=m.indexOf(r),S,R,C,P;M>=0?(S=m.substr(0,M),R=m.substr(M+1)):(S=m,R=""),C=decodeURIComponent(S),P=decodeURIComponent(R),eI(a,C)?rI(a[C])?a[C].push(P):a[C]=[a[C],P]:a[C]=P}return a},rI=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"},of=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},iI=function(e,t,r,i){return t=t||"&",r=r||"=",e===null&&(e=void 0),typeof e=="object"?z1(oI(e),function(a){var n=encodeURIComponent(of(a))+r;return nI(e[a])?z1(e[a],function(u){return n+encodeURIComponent(of(u))}).join(t):n+encodeURIComponent(of(e[a]))}).join(t):i?encodeURIComponent(of(i))+r+encodeURIComponent(of(e)):""},nI=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};function z1(e,t){if(e.map)return e.map(t);for(var r=[],i=0;i<e.length;i++)r.push(t(e[i],i));return r}var oI=Object.keys||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t};eu.decode=eu.parse=tI;eu.encode=eu.stringify=iI;(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=eu;function i(u){return encodeURIComponent(u)}function a(u){return decodeURIComponent(u)}var n={decode:r.decode,encode:r.encode,parse:r.parse,stringify:r.stringify,escape:i,unescape:a};Object.defineProperty(t,"decode",{enumerable:!0,get:function(){return r.decode}}),Object.defineProperty(t,"encode",{enumerable:!0,get:function(){return r.encode}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return r.parse}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),t.default=n,t.escape=i,t.unescape=a,t=e.exports=n})(yp,yp.exports);var aI=yp.exports;(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=QO,i=aI;function a(Q){return Q&&typeof Q=="object"&&"default"in Q?Q:{default:Q}}var n=a(r),u=a(i),c={isString:function(Q){return typeof Q=="string"},isObject:function(Q){return typeof Q=="object"&&Q!==null},isNull:function(Q){return Q===null},isNullOrUndefined:function(Q){return Q==null}},d=n.default,m=c,M=h,S=w,R=x,C=p,P=k;function k(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var L=/^([a-z0-9.+-]+:)/i,I=/:[0-9]*$/,B=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,H=["<",">",'"',"`"," ","\r",`
-`,"	"],F=["{","}","|","\\","^","`"].concat(H),W=["'"].concat(F),Y=["%","/","?",";","#"].concat(W),ie=["/","?","#"],J=255,V=/^[+a-z0-9A-Z_-]{0,63}$/,oe=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,_={javascript:!0,"javascript:":!0},o={javascript:!0,"javascript:":!0},f={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},l=u.default;function h(Q,ue,le){if(Q&&m.isObject(Q)&&Q instanceof k)return Q;var ce=new k;return ce.parse(Q,ue,le),ce}k.prototype.parse=function(Q,ue,le){if(!m.isString(Q))throw new TypeError("Parameter 'url' must be a string, not "+typeof Q);var ce=Q.indexOf("?"),pe=ce!==-1&&ce<Q.indexOf("#")?"?":"#",de=Q.split(pe),ae=/\\/g;de[0]=de[0].replace(ae,"/"),Q=de.join(pe);var fe=Q;if(fe=fe.trim(),!le&&Q.split("#").length===1){var Te=B.exec(fe);if(Te)return this.path=fe,this.href=fe,this.pathname=Te[1],Te[2]?(this.search=Te[2],ue?this.query=l.parse(this.search.substr(1)):this.query=this.search.substr(1)):ue&&(this.search="",this.query={}),this}var ve=L.exec(fe);if(ve){ve=ve[0];var Me=ve.toLowerCase();this.protocol=Me,fe=fe.substr(ve.length)}if(le||ve||fe.match(/^\/\/[^@\/]+@[^@\/]+/)){var Ke=fe.substr(0,2)==="//";Ke&&!(ve&&o[ve])&&(fe=fe.substr(2),this.slashes=!0)}if(!o[ve]&&(Ke||ve&&!f[ve])){for(var be=-1,Se=0;Se<ie.length;Se++){var qe=fe.indexOf(ie[Se]);qe!==-1&&(be===-1||qe<be)&&(be=qe)}var ye,_e;be===-1?_e=fe.lastIndexOf("@"):_e=fe.lastIndexOf("@",be),_e!==-1&&(ye=fe.slice(0,_e),fe=fe.slice(_e+1),this.auth=decodeURIComponent(ye)),be=-1;for(var Se=0;Se<Y.length;Se++){var qe=fe.indexOf(Y[Se]);qe!==-1&&(be===-1||qe<be)&&(be=qe)}be===-1&&(be=fe.length),this.host=fe.slice(0,be),fe=fe.slice(be),this.parseHost(),this.hostname=this.hostname||"";var Ve=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!Ve)for(var ge=this.hostname.split(/\./),Se=0,xe=ge.length;Se<xe;Se++){var Xe=ge[Se];if(Xe&&!Xe.match(V)){for(var Re="",Le=0,at=Xe.length;Le<at;Le++)Xe.charCodeAt(Le)>127?Re+="x":Re+=Xe[Le];if(!Re.match(V)){var Ae=ge.slice(0,Se),Ne=ge.slice(Se+1),rt=Xe.match(oe);rt&&(Ae.push(rt[1]),Ne.unshift(rt[2])),Ne.length&&(fe="/"+Ne.join(".")+fe),this.hostname=Ae.join(".");break}}}this.hostname.length>J?this.hostname="":this.hostname=this.hostname.toLowerCase(),Ve||(this.hostname=d.toASCII(this.hostname));var Oe=this.port?":"+this.port:"",De=this.hostname||"";this.host=De+Oe,this.href+=this.host,Ve&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),fe[0]!=="/"&&(fe="/"+fe))}if(!_[Me])for(var Se=0,xe=W.length;Se<xe;Se++){var nt=W[Se];if(fe.indexOf(nt)!==-1){var Ie=encodeURIComponent(nt);Ie===nt&&(Ie=escape(nt)),fe=fe.split(nt).join(Ie)}}var $e=fe.indexOf("#");$e!==-1&&(this.hash=fe.substr($e),fe=fe.slice(0,$e));var st=fe.indexOf("?");if(st!==-1?(this.search=fe.substr(st),this.query=fe.substr(st+1),ue&&(this.query=l.parse(this.query)),fe=fe.slice(0,st)):ue&&(this.search="",this.query={}),fe&&(this.pathname=fe),f[Me]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var Oe=this.pathname||"",Pe=this.search||"";this.path=Oe+Pe}return this.href=this.format(),this};function p(Q){return m.isString(Q)&&(Q=h(Q)),Q instanceof k?Q.format():k.prototype.format.call(Q)}k.prototype.format=function(){var Q=this.auth||"";Q&&(Q=encodeURIComponent(Q),Q=Q.replace(/%3A/i,":"),Q+="@");var ue=this.protocol||"",le=this.pathname||"",ce=this.hash||"",pe=!1,de="";this.host?pe=Q+this.host:this.hostname&&(pe=Q+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(pe+=":"+this.port)),this.query&&m.isObject(this.query)&&Object.keys(this.query).length&&(de=l.stringify(this.query));var ae=this.search||de&&"?"+de||"";return ue&&ue.substr(-1)!==":"&&(ue+=":"),this.slashes||(!ue||f[ue])&&pe!==!1?(pe="//"+(pe||""),le&&le.charAt(0)!=="/"&&(le="/"+le)):pe||(pe=""),ce&&ce.charAt(0)!=="#"&&(ce="#"+ce),ae&&ae.charAt(0)!=="?"&&(ae="?"+ae),le=le.replace(/[?#]/g,function(fe){return encodeURIComponent(fe)}),ae=ae.replace("#","%23"),ue+pe+le+ae+ce};function w(Q,ue){return h(Q,!1,!0).resolve(ue)}k.prototype.resolve=function(Q){return this.resolveObject(h(Q,!1,!0)).format()};function x(Q,ue){return Q?h(Q,!1,!0).resolveObject(ue):ue}k.prototype.resolveObject=function(Q){if(m.isString(Q)){var ue=new k;ue.parse(Q,!1,!0),Q=ue}for(var le=new k,ce=Object.keys(this),pe=0;pe<ce.length;pe++){var de=ce[pe];le[de]=this[de]}if(le.hash=Q.hash,Q.href==="")return le.href=le.format(),le;if(Q.slashes&&!Q.protocol){for(var ae=Object.keys(Q),fe=0;fe<ae.length;fe++){var Te=ae[fe];Te!=="protocol"&&(le[Te]=Q[Te])}return f[le.protocol]&&le.hostname&&!le.pathname&&(le.path=le.pathname="/"),le.href=le.format(),le}if(Q.protocol&&Q.protocol!==le.protocol){if(!f[Q.protocol]){for(var ve=Object.keys(Q),Me=0;Me<ve.length;Me++){var Ke=ve[Me];le[Ke]=Q[Ke]}return le.href=le.format(),le}if(le.protocol=Q.protocol,!Q.host&&!o[Q.protocol]){for(var xe=(Q.pathname||"").split("/");xe.length&&!(Q.host=xe.shift()););Q.host||(Q.host=""),Q.hostname||(Q.hostname=""),xe[0]!==""&&xe.unshift(""),xe.length<2&&xe.unshift(""),le.pathname=xe.join("/")}else le.pathname=Q.pathname;if(le.search=Q.search,le.query=Q.query,le.host=Q.host||"",le.auth=Q.auth,le.hostname=Q.hostname||Q.host,le.port=Q.port,le.pathname||le.search){var be=le.pathname||"",Se=le.search||"";le.path=be+Se}return le.slashes=le.slashes||Q.slashes,le.href=le.format(),le}var qe=le.pathname&&le.pathname.charAt(0)==="/",ye=Q.host||Q.pathname&&Q.pathname.charAt(0)==="/",_e=ye||qe||le.host&&Q.pathname,Ve=_e,ge=le.pathname&&le.pathname.split("/")||[],xe=Q.pathname&&Q.pathname.split("/")||[],Xe=le.protocol&&!f[le.protocol];if(Xe&&(le.hostname="",le.port=null,le.host&&(ge[0]===""?ge[0]=le.host:ge.unshift(le.host)),le.host="",Q.protocol&&(Q.hostname=null,Q.port=null,Q.host&&(xe[0]===""?xe[0]=Q.host:xe.unshift(Q.host)),Q.host=null),_e=_e&&(xe[0]===""||ge[0]==="")),ye)le.host=Q.host||Q.host===""?Q.host:le.host,le.hostname=Q.hostname||Q.hostname===""?Q.hostname:le.hostname,le.search=Q.search,le.query=Q.query,ge=xe;else if(xe.length)ge||(ge=[]),ge.pop(),ge=ge.concat(xe),le.search=Q.search,le.query=Q.query;else if(!m.isNullOrUndefined(Q.search)){if(Xe){le.hostname=le.host=ge.shift();var Re=le.host&&le.host.indexOf("@")>0?le.host.split("@"):!1;Re&&(le.auth=Re.shift(),le.host=le.hostname=Re.shift())}return le.search=Q.search,le.query=Q.query,(!m.isNull(le.pathname)||!m.isNull(le.search))&&(le.path=(le.pathname?le.pathname:"")+(le.search?le.search:"")),le.href=le.format(),le}if(!ge.length)return le.pathname=null,le.search?le.path="/"+le.search:le.path=null,le.href=le.format(),le;for(var Le=ge.slice(-1)[0],at=(le.host||Q.host||ge.length>1)&&(Le==="."||Le==="..")||Le==="",Ae=0,Ne=ge.length;Ne>=0;Ne--)Le=ge[Ne],Le==="."?ge.splice(Ne,1):Le===".."?(ge.splice(Ne,1),Ae++):Ae&&(ge.splice(Ne,1),Ae--);if(!_e&&!Ve)for(;Ae--;Ae)ge.unshift("..");_e&&ge[0]!==""&&(!ge[0]||ge[0].charAt(0)!=="/")&&ge.unshift(""),at&&ge.join("/").substr(-1)!=="/"&&ge.push("");var rt=ge[0]===""||ge[0]&&ge[0].charAt(0)==="/";if(Xe){le.hostname=le.host=rt?"":ge.length?ge.shift():"";var Re=le.host&&le.host.indexOf("@")>0?le.host.split("@"):!1;Re&&(le.auth=Re.shift(),le.host=le.hostname=Re.shift())}return _e=_e||le.host&&ge.length,_e&&!rt&&ge.unshift(""),ge.length?le.pathname=ge.join("/"):(le.pathname=null,le.path=null),(!m.isNull(le.pathname)||!m.isNull(le.search))&&(le.path=(le.pathname?le.pathname:"")+(le.search?le.search:"")),le.auth=Q.auth||le.auth,le.slashes=le.slashes||Q.slashes,le.href=le.format(),le},k.prototype.parseHost=function(){var Q=this.host,ue=I.exec(Q);ue&&(ue=ue[0],ue!==":"&&(this.port=ue.substr(1)),Q=Q.substr(0,Q.length-ue.length)),Q&&(this.hostname=Q)};function g(Q,ue){for(var le=0,ce=Q.length-1;ce>=0;ce--){var pe=Q[ce];pe==="."?Q.splice(ce,1):pe===".."?(Q.splice(ce,1),le++):le&&(Q.splice(ce,1),le--)}if(ue)for(;le--;le)Q.unshift("..");return Q}function s(){for(var Q="",ue=!1,le=arguments.length-1;le>=-1&&!ue;le--){var ce=le>=0?arguments[le]:"/";if(typeof ce!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!ce)continue;Q=ce+"/"+Q,ue=ce.charAt(0)==="/"}return Q=g(v(Q.split("/"),function(pe){return!!pe}),!ue).join("/"),(ue?"/":"")+Q||"."}function v(Q,ue){if(Q.filter)return Q.filter(ue);for(var le=[],ce=0;ce<Q.length;ce++)ue(Q[ce],ce,Q)&&le.push(Q[ce]);return le}var T=function(Q){function ue(){var ce=this||self;return delete Q.prototype.__magic__,ce}if(typeof globalThis=="object")return globalThis;if(this)return ue();Q.defineProperty(Q.prototype,"__magic__",{configurable:!0,get:ue});var le=__magic__;return le}(Object),$=C,G=M,ee=S,A=P,E=T.URL,U=T.URLSearchParams,K=/%/g,Z=/\\/g,b=/\n/g,y=/\r/g,O=/\t/g,q=47;function X(Q){var ue=Q??null;return!!(ue!==null&&(ue!=null&&ue.href)&&(ue!=null&&ue.origin))}function D(Q){if(Q.hostname!=="")throw new TypeError('File URL host must be "localhost" or empty on browser');for(var ue=Q.pathname,le=0;le<ue.length;le++)if(ue[le]==="%"){var ce=ue.codePointAt(le+2)|32;if(ue[le+1]==="2"&&ce===102)throw new TypeError("File URL path must not include encoded / characters")}return decodeURIComponent(ue)}function N(Q){return Q.includes("%")&&(Q=Q.replace(K,"%25")),Q.includes("\\")&&(Q=Q.replace(Z,"%5C")),Q.includes(`
-`)&&(Q=Q.replace(b,"%0A")),Q.includes("\r")&&(Q=Q.replace(y,"%0D")),Q.includes("	")&&(Q=Q.replace(O,"%09")),Q}var j=function(ue){if(typeof ue>"u")throw new TypeError('The "domain" argument must be specified');return new E("http://"+ue).hostname},z=function(ue){if(typeof ue>"u")throw new TypeError('The "domain" argument must be specified');return new E("http://"+ue).hostname},se=function(ue){var le=new E("file://"),ce=s(ue),pe=ue.charCodeAt(ue.length-1);return pe===q&&ce[ce.length-1]!=="/"&&(ce+="/"),le.pathname=N(ce),le},te=function(ue){if(!X(ue)&&typeof ue!="string")throw new TypeError('The "path" argument must be of type string or an instance of URL. Received type '+typeof ue+" ("+ue+")");var le=new E(ue);if(le.protocol!=="file:")throw new TypeError("The URL must be of scheme file");return D(le)},ne=function(ue,le){var ce,pe,de;if(le===void 0&&(le={}),!(ue instanceof E))return $(ue);if(typeof le!="object"||le===null)throw new TypeError('The "options" argument must be of type object.');var ae=(ce=le.auth)!=null?ce:!0,fe=(pe=le.fragment)!=null?pe:!0,Te=(de=le.search)!=null?de:!0,ve=new E(ue.toString());return ae||(ve.username="",ve.password=""),fe||(ve.hash=""),Te||(ve.search=""),ve.toString()},Ee={format:ne,parse:G,resolve:ee,resolveObject:R,Url:A,URL:E,URLSearchParams:U,domainToASCII:j,domainToUnicode:z,pathToFileURL:se,fileURLToPath:te};t.URL=E,t.URLSearchParams=U,t.Url=A,t.default=Ee,t.domainToASCII=j,t.domainToUnicode=z,t.fileURLToPath=te,t.format=ne,t.parse=G,t.pathToFileURL=se,t.resolve=ee,t.resolveObject=R,t=e.exports=Ee})(mp,mp.exports);var s3=mp.exports;const PV=Lo(s3);var vd,G1;function bp(){if(G1)return vd;G1=1;var e=null;return vd=e,vd}var gd,Y1;function Z1(){if(Y1)return gd;Y1=1;const e=bp(),t=zn("mqttjs:tcp");function r(i,a){a.port=a.port||1883,a.hostname=a.hostname||a.host||"localhost";const n=a.port,u=a.hostname;return t("port %d and host %s",n,u),e.createConnection(n,u)}return gd=r,gd}var md,X1;function yd(){if(X1)return md;X1=1;const e=bp(),t=bp(),r=zn("mqttjs:tls");function i(a,n){n.port=n.port||8883,n.host=n.hostname||n.host||"localhost",t.isIP(n.host)===0&&(n.servername=n.host),n.rejectUnauthorized=n.rejectUnauthorized!==!1,delete n.path,r("port %d host %s rejectUnauthorized %b",n.port,n.host,n.rejectUnauthorized);const u=e.connect(n);u.on("secureConnect",function(){n.rejectUnauthorized&&!u.authorized?u.emit("error",new Error("TLS not authorized")):u.removeListener("error",c)});function c(d){n.rejectUnauthorized&&a.emit("error",d),u.end()}return u.on("error",c),u}return md=i,md}var wp={exports:{}},f3=Or.EventEmitter,bd,J1;function sI(){if(J1)return bd;J1=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return bd=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),bd}function fI(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(_p,this,e)):we.nextTick(_p,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(pl,r):(r._writableState.errorEmitted=!0,we.nextTick(Q1,r,n)):we.nextTick(Q1,r,n):t?(we.nextTick(pl,r),t(n)):we.nextTick(pl,r)}),this)}function Q1(e,t){_p(e,t),pl(e)}function pl(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function uI(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function _p(e,t){e.emit("error",t)}function lI(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var u3={destroy:fI,undestroy:uI,errorOrDestroy:lI},Sa={};function hI(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var l3={};function _i(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){hI(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,l3[e]=a}function ey(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function cI(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function dI(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function pI(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}_i("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);_i("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&cI(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(dI(e," argument"))a="The ".concat(e," ").concat(i," ").concat(ey(t,"type"));else{var n=pI(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(ey(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);_i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");_i("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});_i("ERR_STREAM_PREMATURE_CLOSE","Premature close");_i("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});_i("ERR_MULTIPLE_CALLBACK","Callback called multiple times");_i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");_i("ERR_STREAM_WRITE_AFTER_END","write after end");_i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);_i("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);_i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Sa.codes=l3;var vI=Sa.codes.ERR_INVALID_OPT_VALUE;function gI(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function mI(e,t,r,i){var a=gI(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new vI(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var h3={getHighWaterMark:mI},wd,ty;function c3(){if(ty)return wd;ty=1,wd=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=f3,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=u3,m=h3,M=m.getHighWaterMark,S=Sa.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||ps(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||ps();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},wd}var _d,ry;function ps(){if(ry)return _d;ry=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};_d=u;var t=p3(),r=c3();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),_d}var iy=Sa.codes.ERR_STREAM_PREMATURE_CLOSE;function yI(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function bI(){}function wI(e){return e.setHeader&&typeof e.abort=="function"}function d3(e,t,r){if(typeof t=="function")return d3(e,null,t);t||(t={}),r=yI(r||bI);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new iy),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new iy),r.call(e,P)},R=function(){e.req.on("finish",c)};return wI(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var Xv=d3,Md,ny;function _I(){if(ny)return Md;ny=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=Xv,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return Md=B,Md}var Sd,oy;function MI(){return oy||(oy=1,Sd=function(){throw new Error("Readable.from is not available in the browser")}),Sd}var xd,ay;function p3(){if(ay)return xd;ay=1,xd=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=f3,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=sI(),M=u3,S=h3,R=S.getHighWaterMark,C=Sa.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||ps(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||ps(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=_I()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=MI()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return xd}var v3=Dn,Fh=Sa.codes,SI=Fh.ERR_METHOD_NOT_IMPLEMENTED,xI=Fh.ERR_MULTIPLE_CALLBACK,EI=Fh.ERR_TRANSFORM_ALREADY_TRANSFORMING,RI=Fh.ERR_TRANSFORM_WITH_LENGTH_0,jh=ps();Ze(Dn,jh);function AI(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new xI);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function Dn(e){if(!(this instanceof Dn))return new Dn(e);jh.call(this,e),this._transformState={afterTransform:AI.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",TI)}function TI(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){sy(e,t,r)}):sy(this,null,null)}Dn.prototype.push=function(e,t){return this._transformState.needTransform=!1,jh.prototype.push.call(this,e,t)};Dn.prototype._transform=function(e,t,r){r(new SI("_transform()"))};Dn.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};Dn.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Dn.prototype._destroy=function(e,t){jh.prototype._destroy.call(this,e,function(r){t(r)})};function sy(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new RI;if(e._transformState.transforming)throw new EI;return e.push(null)}var OI=tu,g3=v3;Ze(tu,g3);function tu(e){if(!(this instanceof tu))return new tu(e);g3.call(this,e)}tu.prototype._transform=function(e,t,r){r(null,e)};var Ed;function II(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var m3=Sa.codes,PI=m3.ERR_MISSING_ARGS,CI=m3.ERR_STREAM_DESTROYED;function fy(e){if(e)throw e}function BI(e){return e.setHeader&&typeof e.abort=="function"}function LI(e,t,r,i){i=II(i);var a=!1;e.on("close",function(){a=!0}),Ed===void 0&&(Ed=Xv),Ed(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,BI(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new CI("pipe"))}}}function uy(e){e()}function NI(e,t){return e.pipe(t)}function kI(e){return!e.length||typeof e[e.length-1]!="function"?fy:e.pop()}function $I(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=kI(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new PI("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return LI(u,d,m,function(M){a||(a=M),M&&n.forEach(uy),!d&&(n.forEach(uy),i(a))})});return t.reduce(NI)}var DI=$I;(function(e,t){t=e.exports=p3(),t.Stream=t,t.Readable=t,t.Writable=c3(),t.Duplex=ps(),t.Transform=v3,t.PassThrough=OI,t.finished=Xv,t.pipeline=DI})(wp,wp.exports);var FI=wp.exports,Jv={exports:{}},jI=y3;function y3(e,t){if(e&&t)return y3(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(i){r[i]=e[i]}),r;function r(){for(var i=new Array(arguments.length),a=0;a<i.length;a++)i[a]=arguments[a];var n=e.apply(this,i),u=i[i.length-1];return typeof n=="function"&&n!==u&&Object.keys(u).forEach(function(c){n[c]=u[c]}),n}}var b3=jI;Jv.exports=b3(vl);Jv.exports.strict=b3(w3);vl.proto=vl(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return vl(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return w3(this)},configurable:!0})});function vl(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function w3(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}var UI=Jv.exports,HI=UI,qI=function(){},WI=function(e){return e.setHeader&&typeof e.abort=="function"},KI=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},_3=function(e,t,r){if(typeof t=="function")return _3(e,null,t);t||(t={}),r=HI(r||qI);var i=e._writableState,a=e._readableState,n=t.readable||t.readable!==!1&&e.readable,u=t.writable||t.writable!==!1&&e.writable,c=!1,d=function(){e.writable||m()},m=function(){u=!1,n||r.call(e)},M=function(){n=!1,u||r.call(e)},S=function(L){r.call(e,L?new Error("exited with error code: "+L):null)},R=function(L){r.call(e,L)},C=function(){we.nextTick(P)},P=function(){if(!c){if(n&&!(a&&a.ended&&!a.destroyed))return r.call(e,new Error("premature close"));if(u&&!(i&&i.ended&&!i.destroyed))return r.call(e,new Error("premature close"))}},k=function(){e.req.on("finish",m)};return WI(e)?(e.on("complete",m),e.on("abort",C),e.req?k():e.on("request",k)):u&&!i&&(e.on("end",d),e.on("close",d)),KI(e)&&e.on("exit",S),e.on("end",M),e.on("finish",m),t.error!==!1&&e.on("error",R),e.on("close",C),function(){c=!0,e.removeListener("complete",m),e.removeListener("abort",C),e.removeListener("request",k),e.req&&e.req.removeListener("finish",m),e.removeListener("end",d),e.removeListener("close",d),e.removeListener("finish",m),e.removeListener("exit",S),e.removeListener("end",M),e.removeListener("error",R),e.removeListener("close",C)}},VI=_3,zI=GI;function GI(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(YI(t)):null}function YI(e){return e.buffer.length?e.buffer.head?e.buffer.head.data.length:e.buffer[0].length:e.length}var Uh=FI,M3=VI,ZI=Ze,XI=zI,S3=ke.Buffer.from&&ke.Buffer.from!==Uint8Array.from?ke.Buffer.from([0]):new ke.Buffer([0]),Mp=function(e,t){e._corked?e.once("uncork",t):t()},JI=function(e,t){e._autoDestroy&&e.destroy(t)},x3=function(e,t){return function(r){r?JI(e,r.message==="premature close"?null:r):t&&!e._ended&&e.end()}},QI=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},eP=function(){},tP=function(e){return new Uh.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},br=function(e,t,r){if(!(this instanceof br))return new br(e,t,r);Uh.Duplex.call(this,r),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!r||r.autoDestroy!==!1,this._forwardDestroy=!r||r.destroy!==!1,this._forwardEnd=!r||r.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,e&&this.setWritable(e),t&&this.setReadable(t)};ZI(br,Uh.Duplex);br.obj=function(e,t,r){return r||(r={}),r.objectMode=!0,r.highWaterMark=16,new br(e,t,r)};br.prototype.cork=function(){++this._corked===1&&this.emit("cork")};br.prototype.uncork=function(){this._corked&&--this._corked===0&&this.emit("uncork")};br.prototype.setWritable=function(e){if(this._unwrite&&this._unwrite(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.end();return}var t=this,r=M3(e,{writable:!0,readable:!1},x3(this,this._forwardEnd)),i=function(){var n=t._ondrain;t._ondrain=null,n&&n()},a=function(){t._writable.removeListener("drain",i),r()};this._unwrite&&we.nextTick(i),this._writable=e,this._writable.on("drain",i),this._unwrite=a,this.uncork()};br.prototype.setReadable=function(e){if(this._unread&&this._unread(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.push(null),this.resume();return}var t=this,r=M3(e,{writable:!1,readable:!0},x3(this)),i=function(){t._forward()},a=function(){t.push(null)},n=function(){t._readable2.removeListener("readable",i),t._readable2.removeListener("end",a),r()};this._drained=!0,this._readable=e,this._readable2=e._readableState?e:tP(e),this._readable2.on("readable",i),this._readable2.on("end",a),this._unread=n,this._forward()};br.prototype._read=function(){this._drained=!0,this._forward()};br.prototype._forward=function(){if(!(this._forwarding||!this._readable2||!this._drained)){this._forwarding=!0;for(var e;this._drained&&(e=XI(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};br.prototype.destroy=function(e,t){if(t||(t=eP),this.destroyed)return t(null);this.destroyed=!0;var r=this;we.nextTick(function(){r._destroy(e),t(null)})};br.prototype._destroy=function(e){if(e){var t=this._ondrain;this._ondrain=null,t?t(e):this.emit("error",e)}this._forwardDestroy&&(this._readable&&this._readable.destroy&&this._readable.destroy(),this._writable&&this._writable.destroy&&this._writable.destroy()),this.emit("close")};br.prototype._write=function(e,t,r){if(!this.destroyed){if(this._corked)return Mp(this,this._write.bind(this,e,t,r));if(e===S3)return this._finish(r);if(!this._writable)return r();this._writable.write(e)===!1?this._ondrain=r:this.destroyed||r()}};br.prototype._finish=function(e){var t=this;this.emit("preend"),Mp(this,function(){QI(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),Mp(t,e)})})};br.prototype.end=function(e,t,r){return typeof e=="function"?this.end(null,null,e):typeof t=="function"?this.end(e,null,t):(this._ended=!0,e&&this.write(e),!this._writableState.ending&&!this._writableState.destroyed&&this.write(S3),Uh.Writable.prototype.end.call(this,r))};var Qv=br,Rd,ly;function hy(){if(ly)return Rd;ly=1;const{Buffer:e}=ke,t=vu.Transform,r=Qv;let i,a,n;function u(){const S=new t;return S._write=function(R,C,P){i.send({data:R.buffer,success:function(){P()},fail:function(k){P(new Error(k))}})},S._flush=function(C){i.close({success:function(){C()}})},S}function c(S){S.hostname||(S.hostname="localhost"),S.path||(S.path="/"),S.wsOptions||(S.wsOptions={})}function d(S,R){const C=S.protocol==="wxs"?"wss":"ws";let P=C+"://"+S.hostname+S.path;return S.port&&S.port!==80&&S.port!==443&&(P=C+"://"+S.hostname+":"+S.port+S.path),typeof S.transformWsUrl=="function"&&(P=S.transformWsUrl(P,S,R)),P}function m(){i.onOpen(function(){n.setReadable(a),n.setWritable(a),n.emit("connect")}),i.onMessage(function(S){let R=S.data;R instanceof ArrayBuffer?R=e.from(R):R=e.from(R,"utf8"),a.push(R)}),i.onClose(function(){n.end(),n.destroy()}),i.onError(function(S){n.destroy(new Error(S.errMsg))})}function M(S,R){if(R.hostname=R.hostname||R.host,!R.hostname)throw new Error("Could not determine host. Specify host manually.");const C=R.protocolId==="MQIsdp"&&R.protocolVersion===3?"mqttv3.1":"mqtt";c(R);const P=d(R,S);i=wx.connectSocket({url:P,protocols:[C]}),a=u(),n=r.obj(),n._destroy=function(L,I){i.close({success:function(){I&&I(L)}})};const k=n.destroy;return n.destroy=function(){n.destroy=k;const L=this;setTimeout(function(){i.close({fail:function(){L._destroy(new Error)}})},0)}.bind(n),m(),n}return Rd=M,Rd}var Ad,cy;function dy(){if(cy)return Ad;cy=1;const{Buffer:e}=ke,t=vu.Transform,r=Qv;let i,a,n,u=!1;function c(){const R=new t;return R._write=function(C,P,k){i.sendSocketMessage({data:C.buffer,success:function(){k()},fail:function(){k(new Error)}})},R._flush=function(P){i.closeSocket({success:function(){P()}})},R}function d(R){R.hostname||(R.hostname="localhost"),R.path||(R.path="/"),R.wsOptions||(R.wsOptions={})}function m(R,C){const P=R.protocol==="alis"?"wss":"ws";let k=P+"://"+R.hostname+R.path;return R.port&&R.port!==80&&R.port!==443&&(k=P+"://"+R.hostname+":"+R.port+R.path),typeof R.transformWsUrl=="function"&&(k=R.transformWsUrl(k,R,C)),k}function M(){u||(u=!0,i.onSocketOpen(function(){n.setReadable(a),n.setWritable(a),n.emit("connect")}),i.onSocketMessage(function(R){if(typeof R.data=="string"){const C=e.from(R.data,"base64");a.push(C)}else{const C=new FileReader;C.addEventListener("load",function(){let P=C.result;P instanceof ArrayBuffer?P=e.from(P):P=e.from(P,"utf8"),a.push(P)}),C.readAsArrayBuffer(R.data)}}),i.onSocketClose(function(){n.end(),n.destroy()}),i.onSocketError(function(R){n.destroy(R)}))}function S(R,C){if(C.hostname=C.hostname||C.host,!C.hostname)throw new Error("Could not determine host. Specify host manually.");const P=C.protocolId==="MQIsdp"&&C.protocolVersion===3?"mqttv3.1":"mqtt";d(C);const k=m(C,R);return i=C.my,i.connectSocket({url:k,protocols:P}),a=c(),n=r.obj(),M(),n}return Ad=S,Ad}var Sp={exports:{}},rP=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")};const{Buffer:af}=ke,E3=rP,$f=zn("mqttjs:ws"),iP=Qv,nP=vu.Transform,oP=["rejectUnauthorized","ca","cert","key","pfx","passphrase"],R3=typeof we<"u"&&we.title==="browser"||typeof __webpack_require__=="function";function A3(e,t){let r=e.protocol+"://"+e.hostname+":"+e.port+e.path;return typeof e.transformWsUrl=="function"&&(r=e.transformWsUrl(r,e,t)),r}function T3(e){const t=e;return e.hostname||(t.hostname="localhost"),e.port||(e.protocol==="wss"?t.port=443:t.port=80),e.path||(t.path="/"),e.wsOptions||(t.wsOptions={}),!R3&&e.protocol==="wss"&&oP.forEach(function(r){Object.prototype.hasOwnProperty.call(e,r)&&!Object.prototype.hasOwnProperty.call(e.wsOptions,r)&&(t.wsOptions[r]=e[r])}),t}function aP(e){const t=T3(e);if(t.hostname||(t.hostname=t.host),!t.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");const r=new URL(document.URL);t.hostname=r.hostname,t.port||(t.port=r.port)}return t.objectMode===void 0&&(t.objectMode=!(t.binary===!0||t.binary===void 0)),t}function sP(e,t,r){$f("createWebSocket"),$f("protocol: "+r.protocolId+" "+r.protocolVersion);const i=r.protocolId==="MQIsdp"&&r.protocolVersion===3?"mqttv3.1":"mqtt";return $f("creating new Websocket for url: "+t+" and protocol: "+i),new E3(t,[i],r.wsOptions)}function fP(e,t){const r=t.protocolId==="MQIsdp"&&t.protocolVersion===3?"mqttv3.1":"mqtt",i=A3(t,e),a=new WebSocket(i,[r]);return a.binaryType="arraybuffer",a}function uP(e,t){$f("streamBuilder");const r=T3(t),i=A3(r,e),a=sP(e,i,r),n=E3.createWebSocketStream(a,r.wsOptions);return n.url=i,a.on("close",()=>{n.destroy()}),n}function lP(e,t){$f("browserStreamBuilder");let r;const a=aP(t).browserBufferSize||1024*512,n=t.browserBufferTimeout||1e3,u=!t.objectMode,c=fP(e,t),d=M(t,L,I);t.objectMode||(d._writev=k),d.on("close",()=>{c.close()});const m=typeof c.addEventListener<"u";c.readyState===c.OPEN?r=d:(r=r=iP(void 0,void 0,t),t.objectMode||(r._writev=k),m?c.addEventListener("open",S):c.onopen=S),r.socket=c,m?(c.addEventListener("close",R),c.addEventListener("error",C),c.addEventListener("message",P)):(c.onclose=R,c.onerror=C,c.onmessage=P);function M(B,H,F){const W=new nP({objectModeMode:B.objectMode});return W._write=H,W._flush=F,W}function S(){r.setReadable(d),r.setWritable(d),r.emit("connect")}function R(){r.end(),r.destroy()}function C(B){r.destroy(B)}function P(B){let H=B.data;H instanceof ArrayBuffer?H=af.from(H):H=af.from(H,"utf8"),d.push(H)}function k(B,H){const F=new Array(B.length);for(let W=0;W<B.length;W++)typeof B[W].chunk=="string"?F[W]=af.from(B[W],"utf8"):F[W]=B[W].chunk;this._write(af.concat(F),"binary",H)}function L(B,H,F){c.bufferedAmount>a&&setTimeout(L,n,B,H,F),u&&typeof B=="string"&&(B=af.from(B,"utf8"));try{c.send(B)}catch(W){return F(W)}F()}function I(B){c.close(),B()}return r}R3?Sp.exports=lP:Sp.exports=uP;var O3=Sp.exports;const I3=JO,hP=_M,cP=s3,dP=Fv,py=zn("mqttjs"),Fr={};typeof we<"u"&&we.title!=="browser"||typeof __webpack_require__!="function"?(Fr.mqtt=Z1(),Fr.tcp=Z1(),Fr.ssl=yd(),Fr.tls=yd(),Fr.mqtts=yd()):(Fr.wx=hy(),Fr.wxs=hy(),Fr.ali=dy(),Fr.alis=dy());Fr.ws=O3;Fr.wss=O3;function pP(e){let t;e.auth&&(t=e.auth.match(/^(.+):(.+)$/),t?(e.username=t[1],e.password=t[2]):e.username=e.auth)}function P3(e,t){if(py("connecting to an MQTT broker..."),typeof e=="object"&&!t&&(t=e,e=null),t=t||{},e){const a=cP.parse(e,!0);if(a.port!=null&&(a.port=Number(a.port)),t=dP(a,t),t.protocol===null)throw new Error("Missing protocol");t.protocol=t.protocol.replace(/:$/,"")}if(pP(t),t.query&&typeof t.query.clientId=="string"&&(t.clientId=t.query.clientId),t.cert&&t.key)if(t.protocol){if(["mqtts","wss","wxs","alis"].indexOf(t.protocol)===-1)switch(t.protocol){case"mqtt":t.protocol="mqtts";break;case"ws":t.protocol="wss";break;case"wx":t.protocol="wxs";break;case"ali":t.protocol="alis";break;default:throw new Error('Unknown protocol for secure connection: "'+t.protocol+'"!')}}else throw new Error("Missing secure protocol key");if(!Fr[t.protocol]){const a=["mqtts","wss"].indexOf(t.protocol)!==-1;t.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter(function(n,u){return a&&u%2===0?!1:typeof Fr[n]=="function"})[0]}if(t.clean===!1&&!t.clientId)throw new Error("Missing clientId for unclean clients");t.protocol&&(t.defaultProtocol=t.protocol);function r(a){return t.servers&&((!a._reconnectCount||a._reconnectCount===t.servers.length)&&(a._reconnectCount=0),t.host=t.servers[a._reconnectCount].host,t.port=t.servers[a._reconnectCount].port,t.protocol=t.servers[a._reconnectCount].protocol?t.servers[a._reconnectCount].protocol:t.defaultProtocol,t.hostname=t.host,a._reconnectCount++),py("calling streambuilder for",t.protocol),Fr[t.protocol](a,t)}const i=new I3(r,t);return i.on("error",function(){}),i}du.exports=P3;du.exports.connect=P3;du.exports.MqttClient=I3;du.exports.Store=hP;var vP=du.exports;const CV=Lo(vP);function gP(){return C3().__VUE_DEVTOOLS_GLOBAL_HOOK__}function C3(){return typeof navigator<"u"&&typeof window<"u"?window:typeof ho<"u"?ho:{}}const mP=typeof Proxy=="function",yP="devtools-plugin:setup",bP="plugin:settings:set";let ka,xp;function wP(){var e;return ka!==void 0||(typeof window<"u"&&window.performance?(ka=!0,xp=window.performance):typeof ho<"u"&&(!((e=ho.perf_hooks)===null||e===void 0)&&e.performance)?(ka=!0,xp=ho.perf_hooks.performance):ka=!1),ka}function _P(){return wP()?xp.now():Date.now()}class MP{constructor(t,r){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=r;const i={};if(t.settings)for(const u in t.settings){const c=t.settings[u];i[u]=c.defaultValue}const a=`__vue-devtools-plugin-settings__${t.id}`;let n=Object.assign({},i);try{const u=localStorage.getItem(a),c=JSON.parse(u);Object.assign(n,c)}catch{}this.fallbacks={getSettings(){return n},setSettings(u){try{localStorage.setItem(a,JSON.stringify(u))}catch{}n=u},now(){return _P()}},r&&r.on(bP,(u,c)=>{u===this.plugin.id&&this.fallbacks.setSettings(c)}),this.proxiedOn=new Proxy({},{get:(u,c)=>this.target?this.target.on[c]:(...d)=>{this.onQueue.push({method:c,args:d})}}),this.proxiedTarget=new Proxy({},{get:(u,c)=>this.target?this.target[c]:c==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(c)?(...d)=>(this.targetQueue.push({method:c,args:d,resolve:()=>{}}),this.fallbacks[c](...d)):(...d)=>new Promise(m=>{this.targetQueue.push({method:c,args:d,resolve:m})})})}async setRealTarget(t){this.target=t;for(const r of this.onQueue)this.target.on[r.method](...r.args);for(const r of this.targetQueue)r.resolve(await this.target[r.method](...r.args))}}function B3(e,t){const r=e,i=C3(),a=gP(),n=mP&&r.enableEarlyProxy;if(a&&(i.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!n))a.emit(yP,e,t);else{const u=n?new MP(r,a):null;(i.__VUE_DEVTOOLS_PLUGINS__=i.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:r,setupFn:t,proxy:u}),u&&t(u.proxiedTarget)}}/*!
-  * vue-router v4.2.2
-  * (c) 2023 Eduardo San Martin Morote
-  * @license MIT
-  */const Rn=typeof window<"u";function SP(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const jt=Object.assign;function Td(e,t){const r={};for(const i in t){const a=t[i];r[i]=Jr(a)?a.map(e):e(a)}return r}const Df=()=>{},Jr=Array.isArray;function Et(e){const t=Array.from(arguments).slice(1);console.warn.apply(console,["[Vue Router warn]: "+e].concat(t))}const xP=/\/$/,EP=e=>e.replace(xP,"");function Od(e,t,r="/"){let i,a={},n="",u="";const c=t.indexOf("#");let d=t.indexOf("?");return c<d&&c>=0&&(d=-1),d>-1&&(i=t.slice(0,d),n=t.slice(d+1,c>-1?c:t.length),a=e(n)),c>-1&&(i=i||t.slice(0,c),u=t.slice(c,t.length)),i=TP(i??t,r),{fullPath:i+(n&&"?")+n+u,path:i,query:a,hash:u}}function RP(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function vy(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function gy(e,t,r){const i=t.matched.length-1,a=r.matched.length-1;return i>-1&&i===a&&Po(t.matched[i],r.matched[a])&&L3(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function Po(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function L3(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!AP(e[r],t[r]))return!1;return!0}function AP(e,t){return Jr(e)?my(e,t):Jr(t)?my(t,e):e===t}function my(e,t){return Jr(t)?e.length===t.length&&e.every((r,i)=>r===t[i]):e.length===1&&e[0]===t}function TP(e,t){if(e.startsWith("/"))return e;if(!t.startsWith("/"))return Et(`Cannot resolve a relative location without an absolute path. Trying to resolve "${e}" from "${t}". It should look like "/${t}".`),e;if(!e)return t;const r=t.split("/"),i=e.split("/"),a=i[i.length-1];(a===".."||a===".")&&i.push("");let n=r.length-1,u,c;for(u=0;u<i.length;u++)if(c=i[u],c!==".")if(c==="..")n>1&&n--;else break;return r.slice(0,n).join("/")+"/"+i.slice(u-(u===i.length?1:0)).join("/")}var ru;(function(e){e.pop="pop",e.push="push"})(ru||(ru={}));var Ff;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ff||(Ff={}));function OP(e){if(!e)if(Rn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),EP(e)}const IP=/^[^#]+#/;function PP(e,t){return e.replace(IP,"#")+t}function CP(e,t){const r=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{behavior:t.behavior,left:i.left-r.left-(t.left||0),top:i.top-r.top-(t.top||0)}}const Hh=()=>({left:window.pageXOffset,top:window.pageYOffset});function BP(e){let t;if("el"in e){const r=e.el,i=typeof r=="string"&&r.startsWith("#");if(typeof e.el=="string"&&(!i||!document.getElementById(e.el.slice(1))))try{const n=document.querySelector(e.el);if(i&&n){Et(`The selector "${e.el}" should be passed as "el: document.querySelector('${e.el}')" because it starts with "#".`);return}}catch{Et(`The selector "${e.el}" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);return}const a=typeof r=="string"?i?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!a){Et(`Couldn't find element using selector "${e.el}" returned by scrollBehavior.`);return}t=CP(a,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function yy(e,t){return(history.state?history.state.position-t:-1)+e}const Ep=new Map;function LP(e,t){Ep.set(e,t)}function NP(e){const t=Ep.get(e);return Ep.delete(e),t}let kP=()=>location.protocol+"//"+location.host;function N3(e,t){const{pathname:r,search:i,hash:a}=t,n=e.indexOf("#");if(n>-1){let c=a.includes(e.slice(n))?e.slice(n).length:1,d=a.slice(c);return d[0]!=="/"&&(d="/"+d),vy(d,"")}return vy(r,e)+i+a}function $P(e,t,r,i){let a=[],n=[],u=null;const c=({state:R})=>{const C=N3(e,location),P=r.value,k=t.value;let L=0;if(R){if(r.value=C,t.value=R,u&&u===P){u=null;return}L=k?R.position-k.position:0}else i(C);a.forEach(I=>{I(r.value,P,{delta:L,type:ru.pop,direction:L?L>0?Ff.forward:Ff.back:Ff.unknown})})};function d(){u=r.value}function m(R){a.push(R);const C=()=>{const P=a.indexOf(R);P>-1&&a.splice(P,1)};return n.push(C),C}function M(){const{history:R}=window;R.state&&R.replaceState(jt({},R.state,{scroll:Hh()}),"")}function S(){for(const R of n)R();n=[],window.removeEventListener("popstate",c),window.removeEventListener("beforeunload",M)}return window.addEventListener("popstate",c),window.addEventListener("beforeunload",M,{passive:!0}),{pauseListeners:d,listen:m,destroy:S}}function by(e,t,r,i=!1,a=!1){return{back:e,current:t,forward:r,replaced:i,position:window.history.length,scroll:a?Hh():null}}function DP(e){const{history:t,location:r}=window,i={value:N3(e,r)},a={value:t.state};a.value||n(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function n(d,m,M){const S=e.indexOf("#"),R=S>-1?(r.host&&document.querySelector("base")?e:e.slice(S))+d:kP()+e+d;try{t[M?"replaceState":"pushState"](m,"",R),a.value=m}catch(C){Et("Error with push/replace State",C),r[M?"replace":"assign"](R)}}function u(d,m){const M=jt({},t.state,by(a.value.back,d,a.value.forward,!0),m,{position:a.value.position});n(d,M,!0),i.value=d}function c(d,m){const M=jt({},a.value,t.state,{forward:d,scroll:Hh()});t.state||Et(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:
-
-history.replaceState(history.state, '', url)
-
-You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`),n(M.current,M,!0);const S=jt({},by(i.value,d,null),{position:M.position+1},m);n(d,S,!1),i.value=d}return{location:i,state:a,push:c,replace:u}}function FP(e){e=OP(e);const t=DP(e),r=$P(e,t.state,t.location,t.replace);function i(n,u=!0){u||r.pauseListeners(),history.go(n)}const a=jt({location:"",base:e,go:i,createHref:PP.bind(null,e)},t,r);return Object.defineProperty(a,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(a,"state",{enumerable:!0,get:()=>t.state.value}),a}function BV(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),!e.endsWith("#/")&&!e.endsWith("#")&&Et(`A hash base must end with a "#":
-"${e}" should be "${e.replace(/#.*$/,"#")}".`),FP(e)}function jP(e){return typeof e=="string"||e&&typeof e=="object"}function k3(e){return typeof e=="string"||typeof e=="symbol"}const eo={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},$3=Symbol("navigation failure");var wy;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(wy||(wy={}));const UP={[1]({location:e,currentLocation:t}){return`No match for
- ${JSON.stringify(e)}${t?`
-while being at
-`+JSON.stringify(t):""}`},[2]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${qP(t)}" via a navigation guard.`},[4]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[8]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[16]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function vs(e,t){return jt(new Error(UP[e](t)),{type:e,[$3]:!0},t)}function mn(e,t){return e instanceof Error&&$3 in e&&(t==null||!!(e.type&t))}const HP=["params","query","hash"];function qP(e){if(typeof e=="string")return e;if("path"in e)return e.path;const t={};for(const r of HP)r in e&&(t[r]=e[r]);return JSON.stringify(t,null,2)}const _y="[^/]+?",WP={sensitive:!1,strict:!1,start:!0,end:!0},KP=/[.+*?^${}()[\]/\\]/g;function VP(e,t){const r=jt({},WP,t),i=[];let a=r.start?"^":"";const n=[];for(const m of e){const M=m.length?[]:[90];r.strict&&!m.length&&(a+="/");for(let S=0;S<m.length;S++){const R=m[S];let C=40+(r.sensitive?.25:0);if(R.type===0)S||(a+="/"),a+=R.value.replace(KP,"\\$&"),C+=40;else if(R.type===1){const{value:P,repeatable:k,optional:L,regexp:I}=R;n.push({name:P,repeatable:k,optional:L});const B=I||_y;if(B!==_y){C+=10;try{new RegExp(`(${B})`)}catch(F){throw new Error(`Invalid custom RegExp for param "${P}" (${B}): `+F.message)}}let H=k?`((?:${B})(?:/(?:${B}))*)`:`(${B})`;S||(H=L&&m.length<2?`(?:/${H})`:"/"+H),L&&(H+="?"),a+=H,C+=20,L&&(C+=-8),k&&(C+=-20),B===".*"&&(C+=-50)}M.push(C)}i.push(M)}if(r.strict&&r.end){const m=i.length-1;i[m][i[m].length-1]+=.7000000000000001}r.strict||(a+="/?"),r.end?a+="$":r.strict&&(a+="(?:/|$)");const u=new RegExp(a,r.sensitive?"":"i");function c(m){const M=m.match(u),S={};if(!M)return null;for(let R=1;R<M.length;R++){const C=M[R]||"",P=n[R-1];S[P.name]=C&&P.repeatable?C.split("/"):C}return S}function d(m){let M="",S=!1;for(const R of e){(!S||!M.endsWith("/"))&&(M+="/"),S=!1;for(const C of R)if(C.type===0)M+=C.value;else if(C.type===1){const{value:P,repeatable:k,optional:L}=C,I=P in m?m[P]:"";if(Jr(I)&&!k)throw new Error(`Provided param "${P}" is an array but it is not repeatable (* or + modifiers)`);const B=Jr(I)?I.join("/"):I;if(!B)if(L)R.length<2&&(M.endsWith("/")?M=M.slice(0,-1):S=!0);else throw new Error(`Missing required param "${P}"`);M+=B}}return M||"/"}return{re:u,score:i,keys:n,parse:c,stringify:d}}function zP(e,t){let r=0;for(;r<e.length&&r<t.length;){const i=t[r]-e[r];if(i)return i;r++}return e.length<t.length?e.length===1&&e[0]===40+40?-1:1:e.length>t.length?t.length===1&&t[0]===40+40?1:-1:0}function GP(e,t){let r=0;const i=e.score,a=t.score;for(;r<i.length&&r<a.length;){const n=zP(i[r],a[r]);if(n)return n;r++}if(Math.abs(a.length-i.length)===1){if(My(i))return 1;if(My(a))return-1}return a.length-i.length}function My(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const YP={type:0,value:""},ZP=/[a-zA-Z0-9_]/;function XP(e){if(!e)return[[]];if(e==="/")return[[YP]];if(!e.startsWith("/"))throw new Error(`Route paths should start with a "/": "${e}" should be "/${e}".`);function t(C){throw new Error(`ERR (${r})/"${m}": ${C}`)}let r=0,i=r;const a=[];let n;function u(){n&&a.push(n),n=[]}let c=0,d,m="",M="";function S(){m&&(r===0?n.push({type:0,value:m}):r===1||r===2||r===3?(n.length>1&&(d==="*"||d==="+")&&t(`A repeatable param (${m}) must be alone in its segment. eg: '/:ids+.`),n.push({type:1,value:m,regexp:M,repeatable:d==="*"||d==="+",optional:d==="*"||d==="?"})):t("Invalid state to consume buffer"),m="")}function R(){m+=d}for(;c<e.length;){if(d=e[c++],d==="\\"&&r!==2){i=r,r=4;continue}switch(r){case 0:d==="/"?(m&&S(),u()):d===":"?(S(),r=1):R();break;case 4:R(),r=i;break;case 1:d==="("?r=2:ZP.test(d)?R():(S(),r=0,d!=="*"&&d!=="?"&&d!=="+"&&c--);break;case 2:d===")"?M[M.length-1]=="\\"?M=M.slice(0,-1)+d:r=3:M+=d;break;case 3:S(),r=0,d!=="*"&&d!=="?"&&d!=="+"&&c--,M="";break;default:t("Unknown state");break}}return r===2&&t(`Unfinished custom RegExp for param "${m}"`),S(),u(),a}function JP(e,t,r){const i=VP(XP(e.path),r);{const n=new Set;for(const u of i.keys)n.has(u.name)&&Et(`Found duplicated params with name "${u.name}" for path "${e.path}". Only the last one will be available on "$route.params".`),n.add(u.name)}const a=jt(i,{record:e,parent:t,children:[],alias:[]});return t&&!a.record.aliasOf==!t.record.aliasOf&&t.children.push(a),a}function QP(e,t){const r=[],i=new Map;t=Ey({strict:!1,end:!0,sensitive:!1},t);function a(M){return i.get(M)}function n(M,S,R){const C=!R,P=eC(M);nC(P,S),P.aliasOf=R&&R.record;const k=Ey(t,M),L=[P];if("alias"in M){const H=typeof M.alias=="string"?[M.alias]:M.alias;for(const F of H)L.push(jt({},P,{components:R?R.record.components:P.components,path:F,aliasOf:R?R.record:P}))}let I,B;for(const H of L){const{path:F}=H;if(S&&F[0]!=="/"){const W=S.record.path,Y=W[W.length-1]==="/"?"":"/";H.path=S.record.path+(F&&Y+F)}if(H.path==="*")throw new Error(`Catch all routes ("*") must now be defined using a param with a custom regexp.
-See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.`);if(I=JP(H,S,k),S&&F[0]==="/"&&oC(I,S),R?(R.alias.push(I),iC(R,I)):(B=B||I,B!==I&&B.alias.push(I),C&&M.name&&!xy(I)&&u(M.name)),P.children){const W=P.children;for(let Y=0;Y<W.length;Y++)n(W[Y],I,R&&R.children[Y])}R=R||I,(I.record.components&&Object.keys(I.record.components).length||I.record.name||I.record.redirect)&&d(I)}return B?()=>{u(B)}:Df}function u(M){if(k3(M)){const S=i.get(M);S&&(i.delete(M),r.splice(r.indexOf(S),1),S.children.forEach(u),S.alias.forEach(u))}else{const S=r.indexOf(M);S>-1&&(r.splice(S,1),M.record.name&&i.delete(M.record.name),M.children.forEach(u),M.alias.forEach(u))}}function c(){return r}function d(M){let S=0;for(;S<r.length&&GP(M,r[S])>=0&&(M.record.path!==r[S].record.path||!D3(M,r[S]));)S++;r.splice(S,0,M),M.record.name&&!xy(M)&&i.set(M.record.name,M)}function m(M,S){let R,C={},P,k;if("name"in M&&M.name){if(R=i.get(M.name),!R)throw vs(1,{location:M});{const B=Object.keys(M.params||{}).filter(H=>!R.keys.find(F=>F.name===H));B.length&&Et(`Discarded invalid param(s) "${B.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`)}k=R.record.name,C=jt(Sy(S.params,R.keys.filter(B=>!B.optional).map(B=>B.name)),M.params&&Sy(M.params,R.keys.map(B=>B.name))),P=R.stringify(C)}else if("path"in M)P=M.path,P.startsWith("/")||Et(`The Matcher cannot resolve relative paths but received "${P}". Unless you directly called \`matcher.resolve("${P}")\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`),R=r.find(B=>B.re.test(P)),R&&(C=R.parse(P),k=R.record.name);else{if(R=S.name?i.get(S.name):r.find(B=>B.re.test(S.path)),!R)throw vs(1,{location:M,currentLocation:S});k=R.record.name,C=jt({},S.params,M.params),P=R.stringify(C)}const L=[];let I=R;for(;I;)L.unshift(I.record),I=I.parent;return{name:k,path:P,params:C,matched:L,meta:rC(L)}}return e.forEach(M=>n(M)),{addRoute:n,resolve:m,removeRoute:u,getRoutes:c,getRecordMatcher:a}}function Sy(e,t){const r={};for(const i of t)i in e&&(r[i]=e[i]);return r}function eC(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:tC(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function tC(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const i in e.components)t[i]=typeof r=="boolean"?r:r[i];return t}function xy(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function rC(e){return e.reduce((t,r)=>jt(t,r.meta),{})}function Ey(e,t){const r={};for(const i in e)r[i]=i in t?t[i]:e[i];return r}function Rp(e,t){return e.name===t.name&&e.optional===t.optional&&e.repeatable===t.repeatable}function iC(e,t){for(const r of e.keys)if(!r.optional&&!t.keys.find(Rp.bind(null,r)))return Et(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${r.name}"`);for(const r of t.keys)if(!r.optional&&!e.keys.find(Rp.bind(null,r)))return Et(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${r.name}"`)}function nC(e,t){t&&t.record.name&&!e.name&&!e.path&&Et(`The route named "${String(t.record.name)}" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`)}function oC(e,t){for(const r of t.keys)if(!e.keys.find(Rp.bind(null,r)))return Et(`Absolute path "${e.record.path}" must have the exact same param named "${r.name}" as its parent "${t.record.path}".`)}function D3(e,t){return t.children.some(r=>r===e||D3(e,r))}const F3=/#/g,aC=/&/g,sC=/\//g,fC=/=/g,uC=/\?/g,j3=/\+/g,lC=/%5B/g,hC=/%5D/g,U3=/%5E/g,cC=/%60/g,H3=/%7B/g,dC=/%7C/g,q3=/%7D/g,pC=/%20/g;function eg(e){return encodeURI(""+e).replace(dC,"|").replace(lC,"[").replace(hC,"]")}function vC(e){return eg(e).replace(H3,"{").replace(q3,"}").replace(U3,"^")}function Ap(e){return eg(e).replace(j3,"%2B").replace(pC,"+").replace(F3,"%23").replace(aC,"%26").replace(cC,"`").replace(H3,"{").replace(q3,"}").replace(U3,"^")}function gC(e){return Ap(e).replace(fC,"%3D")}function mC(e){return eg(e).replace(F3,"%23").replace(uC,"%3F")}function yC(e){return e==null?"":mC(e).replace(sC,"%2F")}function iu(e){try{return decodeURIComponent(""+e)}catch{Et(`Error decoding "${e}". Using original value`)}return""+e}function bC(e){const t={};if(e===""||e==="?")return t;const i=(e[0]==="?"?e.slice(1):e).split("&");for(let a=0;a<i.length;++a){const n=i[a].replace(j3," "),u=n.indexOf("="),c=iu(u<0?n:n.slice(0,u)),d=u<0?null:iu(n.slice(u+1));if(c in t){let m=t[c];Jr(m)||(m=t[c]=[m]),m.push(d)}else t[c]=d}return t}function Ry(e){let t="";for(let r in e){const i=e[r];if(r=gC(r),i==null){i!==void 0&&(t+=(t.length?"&":"")+r);continue}(Jr(i)?i.map(n=>n&&Ap(n)):[i&&Ap(i)]).forEach(n=>{n!==void 0&&(t+=(t.length?"&":"")+r,n!=null&&(t+="="+n))})}return t}function wC(e){const t={};for(const r in e){const i=e[r];i!==void 0&&(t[r]=Jr(i)?i.map(a=>a==null?null:""+a):i==null?i:""+i)}return t}const _C=Symbol("router view location matched"),Ay=Symbol("router view depth"),tg=Symbol("router"),W3=Symbol("route location"),Tp=Symbol("router view location");function sf(){let e=[];function t(i){return e.push(i),()=>{const a=e.indexOf(i);a>-1&&e.splice(a,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function oo(e,t,r,i,a){const n=i&&(i.enterCallbacks[a]=i.enterCallbacks[a]||[]);return()=>new Promise((u,c)=>{const d=S=>{S===!1?c(vs(4,{from:r,to:t})):S instanceof Error?c(S):jP(S)?c(vs(2,{from:t,to:S})):(n&&i.enterCallbacks[a]===n&&typeof S=="function"&&n.push(S),u())},m=e.call(i&&i.instances[a],t,r,MC(d,t,r));let M=Promise.resolve(m);if(e.length<3&&(M=M.then(d)),e.length>2){const S=`The "next" callback was never called inside of ${e.name?'"'+e.name+'"':""}:
-${e.toString()}
-. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`;if(typeof m=="object"&&"then"in m)M=M.then(R=>d._called?R:(Et(S),Promise.reject(new Error("Invalid navigation guard"))));else if(m!==void 0&&!d._called){Et(S),c(new Error("Invalid navigation guard"));return}}M.catch(S=>c(S))})}function MC(e,t,r){let i=0;return function(){i++===1&&Et(`The "next" callback was called more than once in one navigation guard when going from "${r.fullPath}" to "${t.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`),e._called=!0,i===1&&e.apply(null,arguments)}}function Id(e,t,r,i){const a=[];for(const n of e){!n.components&&!n.children.length&&Et(`Record with path "${n.path}" is either missing a "component(s)" or "children" property.`);for(const u in n.components){let c=n.components[u];{if(!c||typeof c!="object"&&typeof c!="function")throw Et(`Component "${u}" in record with path "${n.path}" is not a valid component. Received "${String(c)}".`),new Error("Invalid route component");if("then"in c){Et(`Component "${u}" in record with path "${n.path}" is a Promise instead of a function that returns a Promise. Did you write "import('./MyPage.vue')" instead of "() => import('./MyPage.vue')" ? This will break in production if not fixed.`);const d=c;c=()=>d}else c.__asyncLoader&&!c.__warnedDefineAsync&&(c.__warnedDefineAsync=!0,Et(`Component "${u}" in record with path "${n.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`))}if(!(t!=="beforeRouteEnter"&&!n.instances[u]))if(SC(c)){const m=(c.__vccOpts||c)[t];m&&a.push(oo(m,r,i,n,u))}else{let d=c();"catch"in d||(Et(`Component "${u}" in record with path "${n.path}" is a function that does not return a Promise. If you were passing a functional component, make sure to add a "displayName" to the component. This will break in production if not fixed.`),d=Promise.resolve(d)),a.push(()=>d.then(m=>{if(!m)return Promise.reject(new Error(`Couldn't resolve component "${u}" at "${n.path}"`));const M=SP(m)?m.default:m;n.components[u]=M;const R=(M.__vccOpts||M)[t];return R&&oo(R,r,i,n,u)()}))}}}return a}function SC(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Ty(e){const t=tn(tg),r=tn(W3),i=Qt(()=>t.resolve(vo(e.to))),a=Qt(()=>{const{matched:d}=i.value,{length:m}=d,M=d[m-1],S=r.matched;if(!M||!S.length)return-1;const R=S.findIndex(Po.bind(null,M));if(R>-1)return R;const C=Oy(d[m-2]);return m>1&&Oy(M)===C&&S[S.length-1].path!==C?S.findIndex(Po.bind(null,d[m-2])):R}),n=Qt(()=>a.value>-1&&AC(r.params,i.value.params)),u=Qt(()=>a.value>-1&&a.value===r.matched.length-1&&L3(r.params,i.value.params));function c(d={}){return RC(d)?t[vo(e.replace)?"replace":"push"](vo(e.to)).catch(Df):Promise.resolve()}if(Rn){const d=Fi();if(d){const m={route:i.value,isActive:n.value,isExactActive:u.value};d.__vrl_devtools=d.__vrl_devtools||[],d.__vrl_devtools.push(m),E2(()=>{m.route=i.value,m.isActive=n.value,m.isExactActive=u.value},{flush:"post"})}}return{route:i,href:Qt(()=>i.value.href),isActive:n,isExactActive:u,navigate:c}}const xC=Bs({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Ty,setup(e,{slots:t}){const r=No(Ty(e)),{options:i}=tn(tg),a=Qt(()=>({[Iy(e.activeClass,i.linkActiveClass,"router-link-active")]:r.isActive,[Iy(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const n=t.default&&t.default(r);return e.custom?n:xh("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:a.value},n)}}}),EC=xC;function RC(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function AC(e,t){for(const r in t){const i=t[r],a=e[r];if(typeof i=="string"){if(i!==a)return!1}else if(!Jr(a)||a.length!==i.length||i.some((n,u)=>n!==a[u]))return!1}return!0}function Oy(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Iy=(e,t,r)=>e??t??r,TC=Bs({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){IC();const i=tn(Tp),a=Qt(()=>e.route||i.value),n=tn(Ay,0),u=Qt(()=>{let m=vo(n);const{matched:M}=a.value;let S;for(;(S=M[m])&&!S.components;)m++;return m}),c=Qt(()=>a.value.matched[u.value]);Cf(Ay,Qt(()=>u.value+1)),Cf(_C,c),Cf(Tp,a);const d=mr();return lr(()=>[d.value,c.value,e.name],([m,M,S],[R,C,P])=>{M&&(M.instances[S]=m,C&&C!==M&&m&&m===R&&(M.leaveGuards.size||(M.leaveGuards=C.leaveGuards),M.updateGuards.size||(M.updateGuards=C.updateGuards))),m&&M&&(!C||!Po(M,C)||!R)&&(M.enterCallbacks[S]||[]).forEach(k=>k(m))},{flush:"post"}),()=>{const m=a.value,M=e.name,S=c.value,R=S&&S.components[M];if(!R)return Py(r.default,{Component:R,route:m});const C=S.props[M],P=C?C===!0?m.params:typeof C=="function"?C(m):C:null,L=xh(R,jt({},P,t,{onVnodeUnmounted:I=>{I.component.isUnmounted&&(S.instances[M]=null)},ref:d}));if(Rn&&L.ref){const I={depth:u.value,name:S.name,path:S.path,meta:S.meta};(Jr(L.ref)?L.ref.map(H=>H.i):[L.ref.i]).forEach(H=>{H.__vrv_devtools=I})}return Py(r.default,{Component:L,route:m})||L}}});function Py(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const OC=TC;function IC(){const e=Fi(),t=e.parent&&e.parent.type.name,r=e.parent&&e.parent.subTree&&e.parent.subTree.type;if(t&&(t==="KeepAlive"||t.includes("Transition"))&&typeof r=="object"&&r.name==="RouterView"){const i=t==="KeepAlive"?"keep-alive":"transition";Et(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.
-Use slot props instead:
-
-<router-view v-slot="{ Component }">
-  <${i}>
-    <component :is="Component" />
-  </${i}>
-</router-view>`)}}function ff(e,t){const r=jt({},e,{matched:e.matched.map(i=>FC(i,["instances","children","aliasOf"]))});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:r}}}function zu(e){return{_custom:{display:e}}}let PC=0;function CC(e,t,r){if(t.__hasDevtools)return;t.__hasDevtools=!0;const i=PC++;B3({id:"org.vuejs.router"+(i?"."+i:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:e},a=>{typeof a.now!="function"&&console.warn("[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),a.on.inspectComponent((M,S)=>{M.instanceData&&M.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:ff(t.currentRoute.value,"Current Route")})}),a.on.visitComponentTree(({treeNode:M,componentInstance:S})=>{if(S.__vrv_devtools){const R=S.__vrv_devtools;M.tags.push({label:(R.name?`${R.name.toString()}: `:"")+R.path,textColor:0,tooltip:"This component is rendered by &lt;router-view&gt;",backgroundColor:K3})}Jr(S.__vrl_devtools)&&(S.__devtoolsApi=a,S.__vrl_devtools.forEach(R=>{let C=G3,P="";R.isExactActive?(C=z3,P="This is exactly active"):R.isActive&&(C=V3,P="This link is active"),M.tags.push({label:R.route.path,textColor:0,tooltip:P,backgroundColor:C})}))}),lr(t.currentRoute,()=>{d(),a.notifyComponentUpdate(),a.sendInspectorTree(c),a.sendInspectorState(c)});const n="router:navigations:"+i;a.addTimelineLayer({id:n,label:`Router${i?" "+i:""} Navigations`,color:4237508}),t.onError((M,S)=>{a.addTimelineEvent({layerId:n,event:{title:"Error during Navigation",subtitle:S.fullPath,logType:"error",time:a.now(),data:{error:M},groupId:S.meta.__navigationId}})});let u=0;t.beforeEach((M,S)=>{const R={guard:zu("beforeEach"),from:ff(S,"Current Location during this navigation"),to:ff(M,"Target location")};Object.defineProperty(M.meta,"__navigationId",{value:u++}),a.addTimelineEvent({layerId:n,event:{time:a.now(),title:"Start of navigation",subtitle:M.fullPath,data:R,groupId:M.meta.__navigationId}})}),t.afterEach((M,S,R)=>{const C={guard:zu("afterEach")};R?(C.failure={_custom:{type:Error,readOnly:!0,display:R?R.message:"",tooltip:"Navigation Failure",value:R}},C.status=zu("❌")):C.status=zu("✅"),C.from=ff(S,"Current Location during this navigation"),C.to=ff(M,"Target location"),a.addTimelineEvent({layerId:n,event:{title:"End of navigation",subtitle:M.fullPath,time:a.now(),data:C,logType:R?"warning":"default",groupId:M.meta.__navigationId}})});const c="router-inspector:"+i;a.addInspector({id:c,label:"Routes"+(i?" "+i:""),icon:"book",treeFilterPlaceholder:"Search routes"});function d(){if(!m)return;const M=m;let S=r.getRoutes().filter(R=>!R.parent);S.forEach(X3),M.filter&&(S=S.filter(R=>Op(R,M.filter.toLowerCase()))),S.forEach(R=>Z3(R,t.currentRoute.value)),M.rootNodes=S.map(Y3)}let m;a.on.getInspectorTree(M=>{m=M,M.app===e&&M.inspectorId===c&&d()}),a.on.getInspectorState(M=>{if(M.app===e&&M.inspectorId===c){const R=r.getRoutes().find(C=>C.record.__vd_id===M.nodeId);R&&(M.state={options:LC(R)})}}),a.sendInspectorTree(c),a.sendInspectorState(c)})}function BC(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}function LC(e){const{record:t}=e,r=[{editable:!1,key:"path",value:t.path}];return t.name!=null&&r.push({editable:!1,key:"name",value:t.name}),r.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&r.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(i=>`${i.name}${BC(i)}`).join(" "),tooltip:"Param keys",value:e.keys}}}),t.redirect!=null&&r.push({editable:!1,key:"redirect",value:t.redirect}),e.alias.length&&r.push({editable:!1,key:"aliases",value:e.alias.map(i=>i.record.path)}),Object.keys(e.record.meta).length&&r.push({editable:!1,key:"meta",value:e.record.meta}),r.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(i=>i.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),r}const K3=15485081,V3=2450411,z3=8702998,NC=2282478,G3=16486972,kC=6710886;function Y3(e){const t=[],{record:r}=e;r.name!=null&&t.push({label:String(r.name),textColor:0,backgroundColor:NC}),r.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:G3}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:K3}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:z3}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:V3}),r.redirect&&t.push({label:typeof r.redirect=="string"?`redirect: ${r.redirect}`:"redirects",textColor:16777215,backgroundColor:kC});let i=r.__vd_id;return i==null&&(i=String($C++),r.__vd_id=i),{id:i,label:r.path,tags:t,children:e.children.map(Y3)}}let $C=0;const DC=/^\/(.*)\/([a-z]*)$/;function Z3(e,t){const r=t.matched.length&&Po(t.matched[t.matched.length-1],e.record);e.__vd_exactActive=e.__vd_active=r,r||(e.__vd_active=t.matched.some(i=>Po(i,e.record))),e.children.forEach(i=>Z3(i,t))}function X3(e){e.__vd_match=!1,e.children.forEach(X3)}function Op(e,t){const r=String(e.re).match(DC);if(e.__vd_match=!1,!r||r.length<3)return!1;if(new RegExp(r[1].replace(/\$$/,""),r[2]).test(t))return e.children.forEach(u=>Op(u,t)),e.record.path!=="/"||t==="/"?(e.__vd_match=e.re.test(t),!0):!1;const a=e.record.path.toLowerCase(),n=iu(a);return!t.startsWith("/")&&(n.includes(t)||a.includes(t))||n.startsWith(t)||a.startsWith(t)||e.record.name&&String(e.record.name).includes(t)?!0:e.children.some(u=>Op(u,t))}function FC(e,t){const r={};for(const i in e)t.includes(i)||(r[i]=e[i]);return r}function LV(e){const t=QP(e.routes,e),r=e.parseQuery||bC,i=e.stringifyQuery||Ry,a=e.history;if(!a)throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.');const n=sf(),u=sf(),c=sf(),d=l2(eo);let m=eo;Rn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const M=Td.bind(null,E=>""+E),S=Td.bind(null,yC),R=Td.bind(null,iu);function C(E,U){let K,Z;return k3(E)?(K=t.getRecordMatcher(E),Z=U):Z=E,t.addRoute(Z,K)}function P(E){const U=t.getRecordMatcher(E);U?t.removeRoute(U):Et(`Cannot remove non-existent route "${String(E)}"`)}function k(){return t.getRoutes().map(E=>E.record)}function L(E){return!!t.getRecordMatcher(E)}function I(E,U){if(U=jt({},U||d.value),typeof E=="string"){const q=Od(r,E,U.path),X=t.resolve({path:q.path},U),D=a.createHref(q.fullPath);return D.startsWith("//")?Et(`Location "${E}" resolved to "${D}". A resolved location cannot start with multiple slashes.`):X.matched.length||Et(`No match found for location with path "${E}"`),jt(q,X,{params:R(X.params),hash:iu(q.hash),redirectedFrom:void 0,href:D})}let K;if("path"in E)"params"in E&&!("name"in E)&&Object.keys(E.params).length&&Et(`Path "${E.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`),K=jt({},E,{path:Od(r,E.path,U.path).path});else{const q=jt({},E.params);for(const X in q)q[X]==null&&delete q[X];K=jt({},E,{params:S(q)}),U.params=S(U.params)}const Z=t.resolve(K,U),b=E.hash||"";b&&!b.startsWith("#")&&Et(`A \`hash\` should always start with the character "#". Replace "${b}" with "#${b}".`),Z.params=M(R(Z.params));const y=RP(i,jt({},E,{hash:vC(b),path:Z.path})),O=a.createHref(y);return O.startsWith("//")?Et(`Location "${E}" resolved to "${O}". A resolved location cannot start with multiple slashes.`):Z.matched.length||Et(`No match found for location with path "${"path"in E?E.path:E}"`),jt({fullPath:y,hash:b,query:i===Ry?wC(E.query):E.query||{}},Z,{redirectedFrom:void 0,href:O})}function B(E){return typeof E=="string"?Od(r,E,d.value.path):jt({},E)}function H(E,U){if(m!==E)return vs(8,{from:U,to:E})}function F(E){return ie(E)}function W(E){return F(jt(B(E),{replace:!0}))}function Y(E){const U=E.matched[E.matched.length-1];if(U&&U.redirect){const{redirect:K}=U;let Z=typeof K=="function"?K(E):K;if(typeof Z=="string"&&(Z=Z.includes("?")||Z.includes("#")?Z=B(Z):{path:Z},Z.params={}),!("path"in Z)&&!("name"in Z))throw Et(`Invalid redirect found:
-${JSON.stringify(Z,null,2)}
- when navigating to "${E.fullPath}". A redirect must contain a name or path. This will break in production.`),new Error("Invalid redirect");return jt({query:E.query,hash:E.hash,params:"path"in Z?{}:E.params},Z)}}function ie(E,U){const K=m=I(E),Z=d.value,b=E.state,y=E.force,O=E.replace===!0,q=Y(K);if(q)return ie(jt(B(q),{state:typeof q=="object"?jt({},b,q.state):b,force:y,replace:O}),U||K);const X=K;X.redirectedFrom=U;let D;return!y&&gy(i,Z,K)&&(D=vs(16,{to:X,from:Z}),v(Z,Z,!0,!1)),(D?Promise.resolve(D):oe(X,Z)).catch(N=>mn(N)?mn(N,2)?N:s(N):x(N,X,Z)).then(N=>{if(N){if(mn(N,2))return gy(i,I(N.to),X)&&U&&(U._count=U._count?U._count+1:1)>30?(Et(`Detected a possibly infinite redirection in a navigation guard when going from "${Z.fullPath}" to "${X.fullPath}". Aborting to avoid a Stack Overflow.
- Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`),Promise.reject(new Error("Infinite redirect in navigation guard"))):ie(jt({replace:O},B(N.to),{state:typeof N.to=="object"?jt({},b,N.to.state):b,force:y}),U||X)}else N=o(X,Z,!0,O,b);return _(X,Z,N),N})}function J(E,U){const K=H(E,U);return K?Promise.reject(K):Promise.resolve()}function V(E){const U=G.values().next().value;return U&&typeof U.runWithContext=="function"?U.runWithContext(E):E()}function oe(E,U){let K;const[Z,b,y]=jC(E,U);K=Id(Z.reverse(),"beforeRouteLeave",E,U);for(const q of Z)q.leaveGuards.forEach(X=>{K.push(oo(X,E,U))});const O=J.bind(null,E,U);return K.push(O),A(K).then(()=>{K=[];for(const q of n.list())K.push(oo(q,E,U));return K.push(O),A(K)}).then(()=>{K=Id(b,"beforeRouteUpdate",E,U);for(const q of b)q.updateGuards.forEach(X=>{K.push(oo(X,E,U))});return K.push(O),A(K)}).then(()=>{K=[];for(const q of E.matched)if(q.beforeEnter&&!U.matched.includes(q))if(Jr(q.beforeEnter))for(const X of q.beforeEnter)K.push(oo(X,E,U));else K.push(oo(q.beforeEnter,E,U));return K.push(O),A(K)}).then(()=>(E.matched.forEach(q=>q.enterCallbacks={}),K=Id(y,"beforeRouteEnter",E,U),K.push(O),A(K))).then(()=>{K=[];for(const q of u.list())K.push(oo(q,E,U));return K.push(O),A(K)}).catch(q=>mn(q,8)?q:Promise.reject(q))}function _(E,U,K){for(const Z of c.list())V(()=>Z(E,U,K))}function o(E,U,K,Z,b){const y=H(E,U);if(y)return y;const O=U===eo,q=Rn?history.state:{};K&&(Z||O?a.replace(E.fullPath,jt({scroll:O&&q&&q.scroll},b)):a.push(E.fullPath,b)),d.value=E,v(E,U,K,O),s()}let f;function l(){f||(f=a.listen((E,U,K)=>{if(!ee.listening)return;const Z=I(E),b=Y(Z);if(b){ie(jt(b,{replace:!0}),Z).catch(Df);return}m=Z;const y=d.value;Rn&&LP(yy(y.fullPath,K.delta),Hh()),oe(Z,y).catch(O=>mn(O,12)?O:mn(O,2)?(ie(O.to,Z).then(q=>{mn(q,20)&&!K.delta&&K.type===ru.pop&&a.go(-1,!1)}).catch(Df),Promise.reject()):(K.delta&&a.go(-K.delta,!1),x(O,Z,y))).then(O=>{O=O||o(Z,y,!1),O&&(K.delta&&!mn(O,8)?a.go(-K.delta,!1):K.type===ru.pop&&mn(O,20)&&a.go(-1,!1)),_(Z,y,O)}).catch(Df)}))}let h=sf(),p=sf(),w;function x(E,U,K){s(E);const Z=p.list();return Z.length?Z.forEach(b=>b(E,U,K)):(Et("uncaught error during route navigation:"),console.error(E)),Promise.reject(E)}function g(){return w&&d.value!==eo?Promise.resolve():new Promise((E,U)=>{h.add([E,U])})}function s(E){return w||(w=!E,l(),h.list().forEach(([U,K])=>E?K(E):U()),h.reset()),E}function v(E,U,K,Z){const{scrollBehavior:b}=e;if(!Rn||!b)return Promise.resolve();const y=!K&&NP(yy(E.fullPath,0))||(Z||!K)&&history.state&&history.state.scroll||null;return uo().then(()=>b(E,U,y)).then(O=>O&&BP(O)).catch(O=>x(O,E,U))}const T=E=>a.go(E);let $;const G=new Set,ee={currentRoute:d,listening:!0,addRoute:C,removeRoute:P,hasRoute:L,getRoutes:k,resolve:I,options:e,push:F,replace:W,go:T,back:()=>T(-1),forward:()=>T(1),beforeEach:n.add,beforeResolve:u.add,afterEach:c.add,onError:p.add,isReady:g,install(E){const U=this;E.component("RouterLink",EC),E.component("RouterView",OC),E.config.globalProperties.$router=U,Object.defineProperty(E.config.globalProperties,"$route",{enumerable:!0,get:()=>vo(d)}),Rn&&!$&&d.value===eo&&($=!0,F(a.location).catch(b=>{Et("Unexpected error when starting the router:",b)}));const K={};for(const b in eo)K[b]=Qt(()=>d.value[b]);E.provide(tg,U),E.provide(W3,No(K)),E.provide(Tp,d);const Z=E.unmount;G.add(E),E.unmount=function(){G.delete(E),G.size<1&&(m=eo,f&&f(),f=null,d.value=eo,$=!1,w=!1),Z()},Rn&&CC(E,U,t)}};function A(E){return E.reduce((U,K)=>U.then(()=>V(K)),Promise.resolve())}return ee}function jC(e,t){const r=[],i=[],a=[],n=Math.max(t.matched.length,e.matched.length);for(let u=0;u<n;u++){const c=t.matched[u];c&&(e.matched.find(m=>Po(m,c))?i.push(c):r.push(c));const d=e.matched[u];d&&(t.matched.find(m=>Po(m,d))||a.push(d))}return[r,i,a]}/*!
- * vuex v4.1.0
- * (c) 2022 Evan You
- * @license MIT
- */var UC="store";function xa(e,t){Object.keys(e).forEach(function(r){return t(e[r],r)})}function HC(e){return e!==null&&typeof e=="object"}function qC(e){return e&&typeof e.then=="function"}function ki(e,t){if(!e)throw new Error("[vuex] "+t)}function WC(e,t){return function(){return e(t)}}function J3(e,t,r){return t.indexOf(e)<0&&(r&&r.prepend?t.unshift(e):t.push(e)),function(){var i=t.indexOf(e);i>-1&&t.splice(i,1)}}function Q3(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var r=e.state;qh(e,r,[],e._modules.root,!0),rg(e,r,t)}function rg(e,t,r){var i=e._state,a=e._scope;e.getters={},e._makeLocalGettersCache=Object.create(null);var n=e._wrappedGetters,u={},c={},d=zw(!0);d.run(function(){xa(n,function(m,M){u[M]=WC(m,e),c[M]=Qt(function(){return u[M]()}),Object.defineProperty(e.getters,M,{get:function(){return c[M].value},enumerable:!0})})}),e._state=No({data:t}),e._scope=d,e.strict&&YC(e),i&&r&&e._withCommit(function(){i.data=null}),a&&a.stop()}function qh(e,t,r,i,a){var n=!r.length,u=e._modules.getNamespace(r);if(i.namespaced&&(e._modulesNamespaceMap[u]&&console.error("[vuex] duplicate namespace "+u+" for the namespaced module "+r.join("/")),e._modulesNamespaceMap[u]=i),!n&&!a){var c=ig(t,r.slice(0,-1)),d=r[r.length-1];e._withCommit(function(){d in c&&console.warn('[vuex] state field "'+d+'" was overridden by a module with the same name at "'+r.join(".")+'"'),c[d]=i.state})}var m=i.context=KC(e,u,r);i.forEachMutation(function(M,S){var R=u+S;VC(e,R,M,m)}),i.forEachAction(function(M,S){var R=M.root?S:u+S,C=M.handler||M;zC(e,R,C,m)}),i.forEachGetter(function(M,S){var R=u+S;GC(e,R,M,m)}),i.forEachChild(function(M,S){qh(e,t,r.concat(S),M,a)})}function KC(e,t,r){var i=t==="",a={dispatch:i?e.dispatch:function(n,u,c){var d=Gl(n,u,c),m=d.payload,M=d.options,S=d.type;if((!M||!M.root)&&(S=t+S,!e._actions[S])){console.error("[vuex] unknown local action type: "+d.type+", global type: "+S);return}return e.dispatch(S,m)},commit:i?e.commit:function(n,u,c){var d=Gl(n,u,c),m=d.payload,M=d.options,S=d.type;if((!M||!M.root)&&(S=t+S,!e._mutations[S])){console.error("[vuex] unknown local mutation type: "+d.type+", global type: "+S);return}e.commit(S,m,M)}};return Object.defineProperties(a,{getters:{get:i?function(){return e.getters}:function(){return e6(e,t)}},state:{get:function(){return ig(e.state,r)}}}),a}function e6(e,t){if(!e._makeLocalGettersCache[t]){var r={},i=t.length;Object.keys(e.getters).forEach(function(a){if(a.slice(0,i)===t){var n=a.slice(i);Object.defineProperty(r,n,{get:function(){return e.getters[a]},enumerable:!0})}}),e._makeLocalGettersCache[t]=r}return e._makeLocalGettersCache[t]}function VC(e,t,r,i){var a=e._mutations[t]||(e._mutations[t]=[]);a.push(function(u){r.call(e,i.state,u)})}function zC(e,t,r,i){var a=e._actions[t]||(e._actions[t]=[]);a.push(function(u){var c=r.call(e,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:e.getters,rootState:e.state},u);return qC(c)||(c=Promise.resolve(c)),e._devtoolHook?c.catch(function(d){throw e._devtoolHook.emit("vuex:error",d),d}):c})}function GC(e,t,r,i){if(e._wrappedGetters[t]){console.error("[vuex] duplicate getter key: "+t);return}e._wrappedGetters[t]=function(n){return r(i.state,i.getters,n.state,n.getters)}}function YC(e){lr(function(){return e._state.data},function(){ki(e._committing,"do not mutate vuex store state outside mutation handlers.")},{deep:!0,flush:"sync"})}function ig(e,t){return t.reduce(function(r,i){return r[i]},e)}function Gl(e,t,r){return HC(e)&&e.type&&(r=t,t=e,e=e.type),ki(typeof e=="string","expects string as the type, but found "+typeof e+"."),{type:e,payload:t,options:r}}var ZC="vuex bindings",Cy="vuex:mutations",Pd="vuex:actions",$a="vuex",XC=0;function JC(e,t){B3({id:"org.vuejs.vuex",app:e,label:"Vuex",homepage:"https://next.vuex.vuejs.org/",logo:"https://vuejs.org/images/icons/favicon-96x96.png",packageName:"vuex",componentStateTypes:[ZC]},function(r){r.addTimelineLayer({id:Cy,label:"Vuex Mutations",color:By}),r.addTimelineLayer({id:Pd,label:"Vuex Actions",color:By}),r.addInspector({id:$a,label:"Vuex",icon:"storage",treeFilterPlaceholder:"Filter stores..."}),r.on.getInspectorTree(function(i){if(i.app===e&&i.inspectorId===$a)if(i.filter){var a=[];n6(a,t._modules.root,i.filter,""),i.rootNodes=a}else i.rootNodes=[i6(t._modules.root,"")]}),r.on.getInspectorState(function(i){if(i.app===e&&i.inspectorId===$a){var a=i.nodeId;e6(t,a),i.state=tB(iB(t._modules,a),a==="root"?t.getters:t._makeLocalGettersCache,a)}}),r.on.editInspectorState(function(i){if(i.app===e&&i.inspectorId===$a){var a=i.nodeId,n=i.path;a!=="root"&&(n=a.split("/").filter(Boolean).concat(n)),t._withCommit(function(){i.set(t._state.data,n,i.state.value)})}}),t.subscribe(function(i,a){var n={};i.payload&&(n.payload=i.payload),n.state=a,r.notifyComponentUpdate(),r.sendInspectorTree($a),r.sendInspectorState($a),r.addTimelineEvent({layerId:Cy,event:{time:Date.now(),title:i.type,data:n}})}),t.subscribeAction({before:function(i,a){var n={};i.payload&&(n.payload=i.payload),i._id=XC++,i._time=Date.now(),n.state=a,r.addTimelineEvent({layerId:Pd,event:{time:i._time,title:i.type,groupId:i._id,subtitle:"start",data:n}})},after:function(i,a){var n={},u=Date.now()-i._time;n.duration={_custom:{type:"duration",display:u+"ms",tooltip:"Action duration",value:u}},i.payload&&(n.payload=i.payload),n.state=a,r.addTimelineEvent({layerId:Pd,event:{time:Date.now(),title:i.type,groupId:i._id,subtitle:"end",data:n}})}})})}var By=8702998,QC=6710886,eB=16777215,t6={label:"namespaced",textColor:eB,backgroundColor:QC};function r6(e){return e&&e!=="root"?e.split("/").slice(-2,-1)[0]:"Root"}function i6(e,t){return{id:t||"root",label:r6(t),tags:e.namespaced?[t6]:[],children:Object.keys(e._children).map(function(r){return i6(e._children[r],t+r+"/")})}}function n6(e,t,r,i){i.includes(r)&&e.push({id:i||"root",label:i.endsWith("/")?i.slice(0,i.length-1):i||"Root",tags:t.namespaced?[t6]:[]}),Object.keys(t._children).forEach(function(a){n6(e,t._children[a],r,i+a+"/")})}function tB(e,t,r){t=r==="root"?t:t[r];var i=Object.keys(t),a={state:Object.keys(e.state).map(function(u){return{key:u,editable:!0,value:e.state[u]}})};if(i.length){var n=rB(t);a.getters=Object.keys(n).map(function(u){return{key:u.endsWith("/")?r6(u):u,editable:!1,value:Ip(function(){return n[u]})}})}return a}function rB(e){var t={};return Object.keys(e).forEach(function(r){var i=r.split("/");if(i.length>1){var a=t,n=i.pop();i.forEach(function(u){a[u]||(a[u]={_custom:{value:{},display:u,tooltip:"Module",abstract:!0}}),a=a[u]._custom.value}),a[n]=Ip(function(){return e[r]})}else t[r]=Ip(function(){return e[r]})}),t}function iB(e,t){var r=t.split("/").filter(function(i){return i});return r.reduce(function(i,a,n){var u=i[a];if(!u)throw new Error('Missing module "'+a+'" for path "'+t+'".');return n===r.length-1?u:u._children},t==="root"?e:e.root._children)}function Ip(e){try{return e()}catch(t){return t}}var ji=function(t,r){this.runtime=r,this._children=Object.create(null),this._rawModule=t;var i=t.state;this.state=(typeof i=="function"?i():i)||{}},o6={namespaced:{configurable:!0}};o6.namespaced.get=function(){return!!this._rawModule.namespaced};ji.prototype.addChild=function(t,r){this._children[t]=r};ji.prototype.removeChild=function(t){delete this._children[t]};ji.prototype.getChild=function(t){return this._children[t]};ji.prototype.hasChild=function(t){return t in this._children};ji.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)};ji.prototype.forEachChild=function(t){xa(this._children,t)};ji.prototype.forEachGetter=function(t){this._rawModule.getters&&xa(this._rawModule.getters,t)};ji.prototype.forEachAction=function(t){this._rawModule.actions&&xa(this._rawModule.actions,t)};ji.prototype.forEachMutation=function(t){this._rawModule.mutations&&xa(this._rawModule.mutations,t)};Object.defineProperties(ji.prototype,o6);var Ea=function(t){this.register([],t,!1)};Ea.prototype.get=function(t){return t.reduce(function(r,i){return r.getChild(i)},this.root)};Ea.prototype.getNamespace=function(t){var r=this.root;return t.reduce(function(i,a){return r=r.getChild(a),i+(r.namespaced?a+"/":"")},"")};Ea.prototype.update=function(t){a6([],this.root,t)};Ea.prototype.register=function(t,r,i){var a=this;i===void 0&&(i=!0),s6(t,r);var n=new ji(r,i);if(t.length===0)this.root=n;else{var u=this.get(t.slice(0,-1));u.addChild(t[t.length-1],n)}r.modules&&xa(r.modules,function(c,d){a.register(t.concat(d),c,i)})};Ea.prototype.unregister=function(t){var r=this.get(t.slice(0,-1)),i=t[t.length-1],a=r.getChild(i);if(!a){console.warn("[vuex] trying to unregister module '"+i+"', which is not registered");return}a.runtime&&r.removeChild(i)};Ea.prototype.isRegistered=function(t){var r=this.get(t.slice(0,-1)),i=t[t.length-1];return r?r.hasChild(i):!1};function a6(e,t,r){if(s6(e,r),t.update(r),r.modules)for(var i in r.modules){if(!t.getChild(i)){console.warn("[vuex] trying to add a new module '"+i+"' on hot reloading, manual reload is needed");return}a6(e.concat(i),t.getChild(i),r.modules[i])}}var Ly={assert:function(e){return typeof e=="function"},expected:"function"},nB={assert:function(e){return typeof e=="function"||typeof e=="object"&&typeof e.handler=="function"},expected:'function or object with "handler" function'},Ny={getters:Ly,mutations:Ly,actions:nB};function s6(e,t){Object.keys(Ny).forEach(function(r){if(t[r]){var i=Ny[r];xa(t[r],function(a,n){ki(i.assert(a),oB(e,r,n,a,i.expected))})}})}function oB(e,t,r,i,a){var n=t+" should be "+a+' but "'+t+"."+r+'"';return e.length>0&&(n+=' in module "'+e.join(".")+'"'),n+=" is "+JSON.stringify(i)+".",n}function NV(e){return new Gr(e)}var Gr=function e(t){var r=this;t===void 0&&(t={}),ki(typeof Promise<"u","vuex requires a Promise polyfill in this browser."),ki(this instanceof e,"store must be called with the new operator.");var i=t.plugins;i===void 0&&(i=[]);var a=t.strict;a===void 0&&(a=!1);var n=t.devtools;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new Ea(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._makeLocalGettersCache=Object.create(null),this._scope=null,this._devtools=n;var u=this,c=this,d=c.dispatch,m=c.commit;this.dispatch=function(R,C){return d.call(u,R,C)},this.commit=function(R,C,P){return m.call(u,R,C,P)},this.strict=a;var M=this._modules.root.state;qh(this,M,[],this._modules.root),rg(this,M),i.forEach(function(S){return S(r)})},ng={state:{configurable:!0}};Gr.prototype.install=function(t,r){t.provide(r||UC,this),t.config.globalProperties.$store=this;var i=this._devtools!==void 0?this._devtools:!0;i&&JC(t,this)};ng.state.get=function(){return this._state.data};ng.state.set=function(e){ki(!1,"use store.replaceState() to explicit replace store state.")};Gr.prototype.commit=function(t,r,i){var a=this,n=Gl(t,r,i),u=n.type,c=n.payload,d=n.options,m={type:u,payload:c},M=this._mutations[u];if(!M){console.error("[vuex] unknown mutation type: "+u);return}this._withCommit(function(){M.forEach(function(R){R(c)})}),this._subscribers.slice().forEach(function(S){return S(m,a.state)}),d&&d.silent&&console.warn("[vuex] mutation type: "+u+". Silent option has been removed. Use the filter functionality in the vue-devtools")};Gr.prototype.dispatch=function(t,r){var i=this,a=Gl(t,r),n=a.type,u=a.payload,c={type:n,payload:u},d=this._actions[n];if(!d){console.error("[vuex] unknown action type: "+n);return}try{this._actionSubscribers.slice().filter(function(M){return M.before}).forEach(function(M){return M.before(c,i.state)})}catch(M){console.warn("[vuex] error in before action subscribers: "),console.error(M)}var m=d.length>1?Promise.all(d.map(function(M){return M(u)})):d[0](u);return new Promise(function(M,S){m.then(function(R){try{i._actionSubscribers.filter(function(C){return C.after}).forEach(function(C){return C.after(c,i.state)})}catch(C){console.warn("[vuex] error in after action subscribers: "),console.error(C)}M(R)},function(R){try{i._actionSubscribers.filter(function(C){return C.error}).forEach(function(C){return C.error(c,i.state,R)})}catch(C){console.warn("[vuex] error in error action subscribers: "),console.error(C)}S(R)})})};Gr.prototype.subscribe=function(t,r){return J3(t,this._subscribers,r)};Gr.prototype.subscribeAction=function(t,r){var i=typeof t=="function"?{before:t}:t;return J3(i,this._actionSubscribers,r)};Gr.prototype.watch=function(t,r,i){var a=this;return ki(typeof t=="function","store.watch only accepts a function."),lr(function(){return t(a.state,a.getters)},r,Object.assign({},i))};Gr.prototype.replaceState=function(t){var r=this;this._withCommit(function(){r._state.data=t})};Gr.prototype.registerModule=function(t,r,i){i===void 0&&(i={}),typeof t=="string"&&(t=[t]),ki(Array.isArray(t),"module path must be a string or an Array."),ki(t.length>0,"cannot register the root module by using registerModule."),this._modules.register(t,r),qh(this,this.state,t,this._modules.get(t),i.preserveState),rg(this,this.state)};Gr.prototype.unregisterModule=function(t){var r=this;typeof t=="string"&&(t=[t]),ki(Array.isArray(t),"module path must be a string or an Array."),this._modules.unregister(t),this._withCommit(function(){var i=ig(r.state,t.slice(0,-1));delete i[t[t.length-1]]}),Q3(this)};Gr.prototype.hasModule=function(t){return typeof t=="string"&&(t=[t]),ki(Array.isArray(t),"module path must be a string or an Array."),this._modules.isRegistered(t)};Gr.prototype.hotUpdate=function(t){this._modules.update(t),Q3(this,!0)};Gr.prototype._withCommit=function(t){var r=this._committing;this._committing=!0,t(),this._committing=r};Object.defineProperties(Gr.prototype,ng);function aB(e,t,r){var i=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var n=Array(a);++i<a;)n[i]=e[i+t];return n}var sB=aB,fB=sB;function uB(e,t,r){var i=e.length;return r=r===void 0?i:r,!t&&r>=i?e:fB(e,t,r)}var lB=uB,hB="\\ud800-\\udfff",cB="\\u0300-\\u036f",dB="\\ufe20-\\ufe2f",pB="\\u20d0-\\u20ff",vB=cB+dB+pB,gB="\\ufe0e\\ufe0f",mB="\\u200d",yB=RegExp("["+mB+hB+vB+gB+"]");function bB(e){return yB.test(e)}var f6=bB;function wB(e){return e.split("")}var _B=wB,u6="\\ud800-\\udfff",MB="\\u0300-\\u036f",SB="\\ufe20-\\ufe2f",xB="\\u20d0-\\u20ff",EB=MB+SB+xB,RB="\\ufe0e\\ufe0f",AB="["+u6+"]",Pp="["+EB+"]",Cp="\\ud83c[\\udffb-\\udfff]",TB="(?:"+Pp+"|"+Cp+")",l6="[^"+u6+"]",h6="(?:\\ud83c[\\udde6-\\uddff]){2}",c6="[\\ud800-\\udbff][\\udc00-\\udfff]",OB="\\u200d",d6=TB+"?",p6="["+RB+"]?",IB="(?:"+OB+"(?:"+[l6,h6,c6].join("|")+")"+p6+d6+")*",PB=p6+d6+IB,CB="(?:"+[l6+Pp+"?",Pp,h6,c6,AB].join("|")+")",BB=RegExp(Cp+"(?="+Cp+")|"+CB+PB,"g");function LB(e){return e.match(BB)||[]}var NB=LB,kB=_B,$B=f6,DB=NB;function FB(e){return $B(e)?DB(e):kB(e)}var jB=FB,UB=typeof Ye=="object"&&Ye&&Ye.Object===Object&&Ye,HB=UB,qB=HB,WB=typeof self=="object"&&self&&self.Object===Object&&self,KB=qB||WB||Function("return this")(),VB=KB,zB=VB,GB=zB.Symbol,og=GB;function YB(e,t){for(var r=-1,i=e==null?0:e.length,a=Array(i);++r<i;)a[r]=t(e[r],r,e);return a}var ZB=YB,XB=Array.isArray,JB=XB,ky=og,v6=Object.prototype,QB=v6.hasOwnProperty,eL=v6.toString,uf=ky?ky.toStringTag:void 0;function tL(e){var t=QB.call(e,uf),r=e[uf];try{e[uf]=void 0;var i=!0}catch{}var a=eL.call(e);return i&&(t?e[uf]=r:delete e[uf]),a}var rL=tL,iL=Object.prototype,nL=iL.toString;function oL(e){return nL.call(e)}var aL=oL,$y=og,sL=rL,fL=aL,uL="[object Null]",lL="[object Undefined]",Dy=$y?$y.toStringTag:void 0;function hL(e){return e==null?e===void 0?lL:uL:Dy&&Dy in Object(e)?sL(e):fL(e)}var cL=hL;function dL(e){return e!=null&&typeof e=="object"}var pL=dL,vL=cL,gL=pL,mL="[object Symbol]";function yL(e){return typeof e=="symbol"||gL(e)&&vL(e)==mL}var bL=yL,Fy=og,wL=ZB,_L=JB,ML=bL,SL=1/0,jy=Fy?Fy.prototype:void 0,Uy=jy?jy.toString:void 0;function g6(e){if(typeof e=="string")return e;if(_L(e))return wL(e,g6)+"";if(ML(e))return Uy?Uy.call(e):"";var t=e+"";return t=="0"&&1/e==-SL?"-0":t}var xL=g6,EL=xL;function RL(e){return e==null?"":EL(e)}var Wh=RL,AL=lB,TL=f6,OL=jB,IL=Wh;function PL(e){return function(t){t=IL(t);var r=TL(t)?OL(t):void 0,i=r?r[0]:t.charAt(0),a=r?AL(r,1).join(""):t.slice(1);return i[e]()+a}}var CL=PL,BL=CL,LL=BL("toUpperCase"),m6=LL;const kV=Lo(m6);var NL=Wh,kL=m6;function $L(e){return kL(NL(e).toLowerCase())}var DL=$L;function FL(e,t,r,i){var a=-1,n=e==null?0:e.length;for(i&&n&&(r=e[++a]);++a<n;)r=t(r,e[a],a,e);return r}var jL=FL;function UL(e){return function(t){return e==null?void 0:e[t]}}var HL=UL,qL=HL,WL={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",Ĳ:"IJ",ĳ:"ij",Œ:"Oe",œ:"oe",ŉ:"'n",ſ:"s"},KL=qL(WL),VL=KL,zL=VL,GL=Wh,YL=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ZL="\\u0300-\\u036f",XL="\\ufe20-\\ufe2f",JL="\\u20d0-\\u20ff",QL=ZL+XL+JL,eN="["+QL+"]",tN=RegExp(eN,"g");function rN(e){return e=GL(e),e&&e.replace(YL,zL).replace(tN,"")}var iN=rN,nN=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function oN(e){return e.match(nN)||[]}var aN=oN,sN=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function fN(e){return sN.test(e)}var uN=fN,y6="\\ud800-\\udfff",lN="\\u0300-\\u036f",hN="\\ufe20-\\ufe2f",cN="\\u20d0-\\u20ff",dN=lN+hN+cN,b6="\\u2700-\\u27bf",w6="a-z\\xdf-\\xf6\\xf8-\\xff",pN="\\xac\\xb1\\xd7\\xf7",vN="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",gN="\\u2000-\\u206f",mN=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",_6="A-Z\\xc0-\\xd6\\xd8-\\xde",yN="\\ufe0e\\ufe0f",M6=pN+vN+gN+mN,S6="['’]",Hy="["+M6+"]",bN="["+dN+"]",x6="\\d+",wN="["+b6+"]",E6="["+w6+"]",R6="[^"+y6+M6+x6+b6+w6+_6+"]",_N="\\ud83c[\\udffb-\\udfff]",MN="(?:"+bN+"|"+_N+")",SN="[^"+y6+"]",A6="(?:\\ud83c[\\udde6-\\uddff]){2}",T6="[\\ud800-\\udbff][\\udc00-\\udfff]",qa="["+_6+"]",xN="\\u200d",qy="(?:"+E6+"|"+R6+")",EN="(?:"+qa+"|"+R6+")",Wy="(?:"+S6+"(?:d|ll|m|re|s|t|ve))?",Ky="(?:"+S6+"(?:D|LL|M|RE|S|T|VE))?",O6=MN+"?",I6="["+yN+"]?",RN="(?:"+xN+"(?:"+[SN,A6,T6].join("|")+")"+I6+O6+")*",AN="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",TN="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",ON=I6+O6+RN,IN="(?:"+[wN,A6,T6].join("|")+")"+ON,PN=RegExp([qa+"?"+E6+"+"+Wy+"(?="+[Hy,qa,"$"].join("|")+")",EN+"+"+Ky+"(?="+[Hy,qa+qy,"$"].join("|")+")",qa+"?"+qy+"+"+Wy,qa+"+"+Ky,TN,AN,x6,IN].join("|"),"g");function CN(e){return e.match(PN)||[]}var BN=CN,LN=aN,NN=uN,kN=Wh,$N=BN;function DN(e,t,r){return e=kN(e),t=r?void 0:t,t===void 0?NN(e)?$N(e):LN(e):e.match(t)||[]}var FN=DN,jN=jL,UN=iN,HN=FN,qN="['’]",WN=RegExp(qN,"g");function KN(e){return function(t){return jN(HN(UN(t).replace(WN,"")),e,"")}}var VN=KN,zN=DL,GN=VN,YN=GN(function(e,t,r){return t=t.toLowerCase(),e+(r?zN(t):t)}),ZN=YN;const $V=Lo(ZN);/**!
- * @fileOverview Kickass library to create and place poppers near their reference elements.
- * @version 1.16.1
- * @license
- * Copyright (c) 2016 Federico Zivolo and contributors
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */var bu=typeof window<"u"&&typeof document<"u"&&typeof navigator<"u",XN=function(){for(var e=["Edge","Trident","Firefox"],t=0;t<e.length;t+=1)if(bu&&navigator.userAgent.indexOf(e[t])>=0)return 1;return 0}();function JN(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}function QN(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},XN))}}var ek=bu&&window.Promise,tk=ek?JN:QN;function P6(e){var t={};return e&&t.toString.call(e)==="[object Function]"}function Ra(e,t){if(e.nodeType!==1)return[];var r=e.ownerDocument.defaultView,i=r.getComputedStyle(e,null);return t?i[t]:i}function ag(e){return e.nodeName==="HTML"?e:e.parentNode||e.host}function wu(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=Ra(e),r=t.overflow,i=t.overflowX,a=t.overflowY;return/(auto|scroll|overlay)/.test(r+a+i)?e:wu(ag(e))}function C6(e){return e&&e.referenceNode?e.referenceNode:e}var Vy=bu&&!!(window.MSInputMethodContext&&document.documentMode),zy=bu&&/MSIE 10/.test(navigator.userAgent);function $s(e){return e===11?Vy:e===10?zy:Vy||zy}function gs(e){if(!e)return document.documentElement;for(var t=$s(10)?document.body:null,r=e.offsetParent||null;r===t&&e.nextElementSibling;)r=(e=e.nextElementSibling).offsetParent;var i=r&&r.nodeName;return!i||i==="BODY"||i==="HTML"?e?e.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(r.nodeName)!==-1&&Ra(r,"position")==="static"?gs(r):r}function rk(e){var t=e.nodeName;return t==="BODY"?!1:t==="HTML"||gs(e.firstElementChild)===e}function Bp(e){return e.parentNode!==null?Bp(e.parentNode):e}function Yl(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var r=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=r?e:t,a=r?t:e,n=document.createRange();n.setStart(i,0),n.setEnd(a,0);var u=n.commonAncestorContainer;if(e!==u&&t!==u||i.contains(a))return rk(u)?u:gs(u);var c=Bp(e);return c.host?Yl(c.host,t):Yl(e,Bp(t).host)}function ms(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",r=t==="top"?"scrollTop":"scrollLeft",i=e.nodeName;if(i==="BODY"||i==="HTML"){var a=e.ownerDocument.documentElement,n=e.ownerDocument.scrollingElement||a;return n[r]}return e[r]}function ik(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=ms(t,"top"),a=ms(t,"left"),n=r?-1:1;return e.top+=i*n,e.bottom+=i*n,e.left+=a*n,e.right+=a*n,e}function Gy(e,t){var r=t==="x"?"Left":"Top",i=r==="Left"?"Right":"Bottom";return parseFloat(e["border"+r+"Width"])+parseFloat(e["border"+i+"Width"])}function Yy(e,t,r,i){return Math.max(t["offset"+e],t["scroll"+e],r["client"+e],r["offset"+e],r["scroll"+e],$s(10)?parseInt(r["offset"+e])+parseInt(i["margin"+(e==="Height"?"Top":"Left")])+parseInt(i["margin"+(e==="Height"?"Bottom":"Right")]):0)}function B6(e){var t=e.body,r=e.documentElement,i=$s(10)&&getComputedStyle(r);return{height:Yy("Height",t,r,i),width:Yy("Width",t,r,i)}}var nk=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},ok=function(){function e(t,r){for(var i=0;i<r.length;i++){var a=r[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),ys=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},ci=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e};function Co(e){return ci({},e,{right:e.left+e.width,bottom:e.top+e.height})}function Lp(e){var t={};try{if($s(10)){t=e.getBoundingClientRect();var r=ms(e,"top"),i=ms(e,"left");t.top+=r,t.left+=i,t.bottom+=r,t.right+=i}else t=e.getBoundingClientRect()}catch{}var a={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},n=e.nodeName==="HTML"?B6(e.ownerDocument):{},u=n.width||e.clientWidth||a.width,c=n.height||e.clientHeight||a.height,d=e.offsetWidth-u,m=e.offsetHeight-c;if(d||m){var M=Ra(e);d-=Gy(M,"x"),m-=Gy(M,"y"),a.width-=d,a.height-=m}return Co(a)}function sg(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=$s(10),a=t.nodeName==="HTML",n=Lp(e),u=Lp(t),c=wu(e),d=Ra(t),m=parseFloat(d.borderTopWidth),M=parseFloat(d.borderLeftWidth);r&&a&&(u.top=Math.max(u.top,0),u.left=Math.max(u.left,0));var S=Co({top:n.top-u.top-m,left:n.left-u.left-M,width:n.width,height:n.height});if(S.marginTop=0,S.marginLeft=0,!i&&a){var R=parseFloat(d.marginTop),C=parseFloat(d.marginLeft);S.top-=m-R,S.bottom-=m-R,S.left-=M-C,S.right-=M-C,S.marginTop=R,S.marginLeft=C}return(i&&!r?t.contains(c):t===c&&c.nodeName!=="BODY")&&(S=ik(S,t)),S}function ak(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=e.ownerDocument.documentElement,i=sg(e,r),a=Math.max(r.clientWidth,window.innerWidth||0),n=Math.max(r.clientHeight,window.innerHeight||0),u=t?0:ms(r),c=t?0:ms(r,"left"),d={top:u-i.top+i.marginTop,left:c-i.left+i.marginLeft,width:a,height:n};return Co(d)}function L6(e){var t=e.nodeName;if(t==="BODY"||t==="HTML")return!1;if(Ra(e,"position")==="fixed")return!0;var r=ag(e);return r?L6(r):!1}function N6(e){if(!e||!e.parentElement||$s())return document.documentElement;for(var t=e.parentElement;t&&Ra(t,"transform")==="none";)t=t.parentElement;return t||document.documentElement}function fg(e,t,r,i){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,n={top:0,left:0},u=a?N6(e):Yl(e,C6(t));if(i==="viewport")n=ak(u,a);else{var c=void 0;i==="scrollParent"?(c=wu(ag(t)),c.nodeName==="BODY"&&(c=e.ownerDocument.documentElement)):i==="window"?c=e.ownerDocument.documentElement:c=i;var d=sg(c,u,a);if(c.nodeName==="HTML"&&!L6(u)){var m=B6(e.ownerDocument),M=m.height,S=m.width;n.top+=d.top-d.marginTop,n.bottom=M+d.top,n.left+=d.left-d.marginLeft,n.right=S+d.left}else n=d}r=r||0;var R=typeof r=="number";return n.left+=R?r:r.left||0,n.top+=R?r:r.top||0,n.right-=R?r:r.right||0,n.bottom-=R?r:r.bottom||0,n}function sk(e){var t=e.width,r=e.height;return t*r}function k6(e,t,r,i,a){var n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(e.indexOf("auto")===-1)return e;var u=fg(r,i,n,a),c={top:{width:u.width,height:t.top-u.top},right:{width:u.right-t.right,height:u.height},bottom:{width:u.width,height:u.bottom-t.bottom},left:{width:t.left-u.left,height:u.height}},d=Object.keys(c).map(function(R){return ci({key:R},c[R],{area:sk(c[R])})}).sort(function(R,C){return C.area-R.area}),m=d.filter(function(R){var C=R.width,P=R.height;return C>=r.clientWidth&&P>=r.clientHeight}),M=m.length>0?m[0].key:d[0].key,S=e.split("-")[1];return M+(S?"-"+S:"")}function $6(e,t,r){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,a=i?N6(t):Yl(t,C6(r));return sg(r,a,i)}function D6(e){var t=e.ownerDocument.defaultView,r=t.getComputedStyle(e),i=parseFloat(r.marginTop||0)+parseFloat(r.marginBottom||0),a=parseFloat(r.marginLeft||0)+parseFloat(r.marginRight||0),n={width:e.offsetWidth+a,height:e.offsetHeight+i};return n}function Zl(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(r){return t[r]})}function F6(e,t,r){r=r.split("-")[0];var i=D6(e),a={width:i.width,height:i.height},n=["right","left"].indexOf(r)!==-1,u=n?"top":"left",c=n?"left":"top",d=n?"height":"width",m=n?"width":"height";return a[u]=t[u]+t[d]/2-i[d]/2,r===c?a[c]=t[c]-i[m]:a[c]=t[Zl(c)],a}function _u(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function fk(e,t,r){if(Array.prototype.findIndex)return e.findIndex(function(a){return a[t]===r});var i=_u(e,function(a){return a[t]===r});return e.indexOf(i)}function j6(e,t,r){var i=r===void 0?e:e.slice(0,fk(e,"name",r));return i.forEach(function(a){a.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=a.function||a.fn;a.enabled&&P6(n)&&(t.offsets.popper=Co(t.offsets.popper),t.offsets.reference=Co(t.offsets.reference),t=n(t,a))}),t}function uk(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=$6(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=k6(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=F6(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=j6(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function U6(e,t){return e.some(function(r){var i=r.name,a=r.enabled;return a&&i===t})}function ug(e){for(var t=[!1,"ms","Webkit","Moz","O"],r=e.charAt(0).toUpperCase()+e.slice(1),i=0;i<t.length;i++){var a=t[i],n=a?""+a+r:e;if(typeof document.body.style[n]<"u")return n}return null}function lk(){return this.state.isDestroyed=!0,U6(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[ug("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function H6(e){var t=e.ownerDocument;return t?t.defaultView:window}function q6(e,t,r,i){var a=e.nodeName==="BODY",n=a?e.ownerDocument.defaultView:e;n.addEventListener(t,r,{passive:!0}),a||q6(wu(n.parentNode),t,r,i),i.push(n)}function hk(e,t,r,i){r.updateBound=i,H6(e).addEventListener("resize",r.updateBound,{passive:!0});var a=wu(e);return q6(a,"scroll",r.updateBound,r.scrollParents),r.scrollElement=a,r.eventsEnabled=!0,r}function ck(){this.state.eventsEnabled||(this.state=hk(this.reference,this.options,this.state,this.scheduleUpdate))}function dk(e,t){return H6(e).removeEventListener("resize",t.updateBound),t.scrollParents.forEach(function(r){r.removeEventListener("scroll",t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function pk(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=dk(this.reference,this.state))}function lg(e){return e!==""&&!isNaN(parseFloat(e))&&isFinite(e)}function Np(e,t){Object.keys(t).forEach(function(r){var i="";["width","height","top","right","bottom","left"].indexOf(r)!==-1&&lg(t[r])&&(i="px"),e.style[r]=t[r]+i})}function vk(e,t){Object.keys(t).forEach(function(r){var i=t[r];i!==!1?e.setAttribute(r,t[r]):e.removeAttribute(r)})}function gk(e){return Np(e.instance.popper,e.styles),vk(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&Np(e.arrowElement,e.arrowStyles),e}function mk(e,t,r,i,a){var n=$6(a,t,e,r.positionFixed),u=k6(r.placement,n,t,e,r.modifiers.flip.boundariesElement,r.modifiers.flip.padding);return t.setAttribute("x-placement",u),Np(t,{position:r.positionFixed?"fixed":"absolute"}),r}function yk(e,t){var r=e.offsets,i=r.popper,a=r.reference,n=Math.round,u=Math.floor,c=function(I){return I},d=n(a.width),m=n(i.width),M=["left","right"].indexOf(e.placement)!==-1,S=e.placement.indexOf("-")!==-1,R=d%2===m%2,C=d%2===1&&m%2===1,P=t?M||S||R?n:u:c,k=t?n:c;return{left:P(C&&!S&&t?i.left-1:i.left),top:k(i.top),bottom:k(i.bottom),right:P(i.right)}}var bk=bu&&/Firefox/i.test(navigator.userAgent);function wk(e,t){var r=t.x,i=t.y,a=e.offsets.popper,n=_u(e.instance.modifiers,function(H){return H.name==="applyStyle"}).gpuAcceleration;n!==void 0&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var u=n!==void 0?n:t.gpuAcceleration,c=gs(e.instance.popper),d=Lp(c),m={position:a.position},M=yk(e,window.devicePixelRatio<2||!bk),S=r==="bottom"?"top":"bottom",R=i==="right"?"left":"right",C=ug("transform"),P=void 0,k=void 0;if(S==="bottom"?c.nodeName==="HTML"?k=-c.clientHeight+M.bottom:k=-d.height+M.bottom:k=M.top,R==="right"?c.nodeName==="HTML"?P=-c.clientWidth+M.right:P=-d.width+M.right:P=M.left,u&&C)m[C]="translate3d("+P+"px, "+k+"px, 0)",m[S]=0,m[R]=0,m.willChange="transform";else{var L=S==="bottom"?-1:1,I=R==="right"?-1:1;m[S]=k*L,m[R]=P*I,m.willChange=S+", "+R}var B={"x-placement":e.placement};return e.attributes=ci({},B,e.attributes),e.styles=ci({},m,e.styles),e.arrowStyles=ci({},e.offsets.arrow,e.arrowStyles),e}function W6(e,t,r){var i=_u(e,function(c){var d=c.name;return d===t}),a=!!i&&e.some(function(c){return c.name===r&&c.enabled&&c.order<i.order});if(!a){var n="`"+t+"`",u="`"+r+"`";console.warn(u+" modifier is required by "+n+" modifier in order to work, be sure to include it before "+n+"!")}return a}function _k(e,t){var r;if(!W6(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if(typeof i=="string"){if(i=e.instance.popper.querySelector(i),!i)return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var a=e.placement.split("-")[0],n=e.offsets,u=n.popper,c=n.reference,d=["left","right"].indexOf(a)!==-1,m=d?"height":"width",M=d?"Top":"Left",S=M.toLowerCase(),R=d?"left":"top",C=d?"bottom":"right",P=D6(i)[m];c[C]-P<u[S]&&(e.offsets.popper[S]-=u[S]-(c[C]-P)),c[S]+P>u[C]&&(e.offsets.popper[S]+=c[S]+P-u[C]),e.offsets.popper=Co(e.offsets.popper);var k=c[S]+c[m]/2-P/2,L=Ra(e.instance.popper),I=parseFloat(L["margin"+M]),B=parseFloat(L["border"+M+"Width"]),H=k-e.offsets.popper[S]-I-B;return H=Math.max(Math.min(u[m]-P,H),0),e.arrowElement=i,e.offsets.arrow=(r={},ys(r,S,Math.round(H)),ys(r,R,""),r),e}function Mk(e){return e==="end"?"start":e==="start"?"end":e}var K6=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Cd=K6.slice(3);function Zy(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=Cd.indexOf(e),i=Cd.slice(r+1).concat(Cd.slice(0,r));return t?i.reverse():i}var Bd={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Sk(e,t){if(U6(e.instance.modifiers,"inner")||e.flipped&&e.placement===e.originalPlacement)return e;var r=fg(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),i=e.placement.split("-")[0],a=Zl(i),n=e.placement.split("-")[1]||"",u=[];switch(t.behavior){case Bd.FLIP:u=[i,a];break;case Bd.CLOCKWISE:u=Zy(i);break;case Bd.COUNTERCLOCKWISE:u=Zy(i,!0);break;default:u=t.behavior}return u.forEach(function(c,d){if(i!==c||u.length===d+1)return e;i=e.placement.split("-")[0],a=Zl(i);var m=e.offsets.popper,M=e.offsets.reference,S=Math.floor,R=i==="left"&&S(m.right)>S(M.left)||i==="right"&&S(m.left)<S(M.right)||i==="top"&&S(m.bottom)>S(M.top)||i==="bottom"&&S(m.top)<S(M.bottom),C=S(m.left)<S(r.left),P=S(m.right)>S(r.right),k=S(m.top)<S(r.top),L=S(m.bottom)>S(r.bottom),I=i==="left"&&C||i==="right"&&P||i==="top"&&k||i==="bottom"&&L,B=["top","bottom"].indexOf(i)!==-1,H=!!t.flipVariations&&(B&&n==="start"&&C||B&&n==="end"&&P||!B&&n==="start"&&k||!B&&n==="end"&&L),F=!!t.flipVariationsByContent&&(B&&n==="start"&&P||B&&n==="end"&&C||!B&&n==="start"&&L||!B&&n==="end"&&k),W=H||F;(R||I||W)&&(e.flipped=!0,(R||I)&&(i=u[d+1]),W&&(n=Mk(n)),e.placement=i+(n?"-"+n:""),e.offsets.popper=ci({},e.offsets.popper,F6(e.instance.popper,e.offsets.reference,e.placement)),e=j6(e.instance.modifiers,e,"flip"))}),e}function xk(e){var t=e.offsets,r=t.popper,i=t.reference,a=e.placement.split("-")[0],n=Math.floor,u=["top","bottom"].indexOf(a)!==-1,c=u?"right":"bottom",d=u?"left":"top",m=u?"width":"height";return r[c]<n(i[d])&&(e.offsets.popper[d]=n(i[d])-r[m]),r[d]>n(i[c])&&(e.offsets.popper[d]=n(i[c])),e}function Ek(e,t,r,i){var a=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),n=+a[1],u=a[2];if(!n)return e;if(u.indexOf("%")===0){var c=void 0;switch(u){case"%p":c=r;break;case"%":case"%r":default:c=i}var d=Co(c);return d[t]/100*n}else if(u==="vh"||u==="vw"){var m=void 0;return u==="vh"?m=Math.max(document.documentElement.clientHeight,window.innerHeight||0):m=Math.max(document.documentElement.clientWidth,window.innerWidth||0),m/100*n}else return n}function Rk(e,t,r,i){var a=[0,0],n=["right","left"].indexOf(i)!==-1,u=e.split(/(\+|\-)/).map(function(M){return M.trim()}),c=u.indexOf(_u(u,function(M){return M.search(/,|\s/)!==-1}));u[c]&&u[c].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var d=/\s*,\s*|\s+/,m=c!==-1?[u.slice(0,c).concat([u[c].split(d)[0]]),[u[c].split(d)[1]].concat(u.slice(c+1))]:[u];return m=m.map(function(M,S){var R=(S===1?!n:n)?"height":"width",C=!1;return M.reduce(function(P,k){return P[P.length-1]===""&&["+","-"].indexOf(k)!==-1?(P[P.length-1]=k,C=!0,P):C?(P[P.length-1]+=k,C=!1,P):P.concat(k)},[]).map(function(P){return Ek(P,R,t,r)})}),m.forEach(function(M,S){M.forEach(function(R,C){lg(R)&&(a[S]+=R*(M[C-1]==="-"?-1:1))})}),a}function Ak(e,t){var r=t.offset,i=e.placement,a=e.offsets,n=a.popper,u=a.reference,c=i.split("-")[0],d=void 0;return lg(+r)?d=[+r,0]:d=Rk(r,n,u,c),c==="left"?(n.top+=d[0],n.left-=d[1]):c==="right"?(n.top+=d[0],n.left+=d[1]):c==="top"?(n.left+=d[0],n.top-=d[1]):c==="bottom"&&(n.left+=d[0],n.top+=d[1]),e.popper=n,e}function Tk(e,t){var r=t.boundariesElement||gs(e.instance.popper);e.instance.reference===r&&(r=gs(r));var i=ug("transform"),a=e.instance.popper.style,n=a.top,u=a.left,c=a[i];a.top="",a.left="",a[i]="";var d=fg(e.instance.popper,e.instance.reference,t.padding,r,e.positionFixed);a.top=n,a.left=u,a[i]=c,t.boundaries=d;var m=t.priority,M=e.offsets.popper,S={primary:function(C){var P=M[C];return M[C]<d[C]&&!t.escapeWithReference&&(P=Math.max(M[C],d[C])),ys({},C,P)},secondary:function(C){var P=C==="right"?"left":"top",k=M[P];return M[C]>d[C]&&!t.escapeWithReference&&(k=Math.min(M[P],d[C]-(C==="right"?M.width:M.height))),ys({},P,k)}};return m.forEach(function(R){var C=["left","top"].indexOf(R)!==-1?"primary":"secondary";M=ci({},M,S[C](R))}),e.offsets.popper=M,e}function Ok(e){var t=e.placement,r=t.split("-")[0],i=t.split("-")[1];if(i){var a=e.offsets,n=a.reference,u=a.popper,c=["bottom","top"].indexOf(r)!==-1,d=c?"left":"top",m=c?"width":"height",M={start:ys({},d,n[d]),end:ys({},d,n[d]+n[m]-u[m])};e.offsets.popper=ci({},u,M[i])}return e}function Ik(e){if(!W6(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,r=_u(e.instance.modifiers,function(i){return i.name==="preventOverflow"}).boundaries;if(t.bottom<r.top||t.left>r.right||t.top>r.bottom||t.right<r.left){if(e.hide===!0)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(e.hide===!1)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}function Pk(e){var t=e.placement,r=t.split("-")[0],i=e.offsets,a=i.popper,n=i.reference,u=["left","right"].indexOf(r)!==-1,c=["top","left"].indexOf(r)===-1;return a[u?"left":"top"]=n[r]-(c?a[u?"width":"height"]:0),e.placement=Zl(t),e.offsets.popper=Co(a),e}var Ck={shift:{order:100,enabled:!0,fn:Ok},offset:{order:200,enabled:!0,fn:Ak,offset:0},preventOverflow:{order:300,enabled:!0,fn:Tk,priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:xk},arrow:{order:500,enabled:!0,fn:_k,element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:Sk,behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:Pk},hide:{order:800,enabled:!0,fn:Ik},computeStyle:{order:850,enabled:!0,fn:wk,gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:gk,onLoad:mk,gpuAcceleration:void 0}},Bk={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:Ck},Kh=function(){function e(t,r){var i=this,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};nk(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=tk(this.update.bind(this)),this.options=ci({},e.Defaults,a),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=r&&r.jquery?r[0]:r,this.options.modifiers={},Object.keys(ci({},e.Defaults.modifiers,a.modifiers)).forEach(function(u){i.options.modifiers[u]=ci({},e.Defaults.modifiers[u]||{},a.modifiers?a.modifiers[u]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(u){return ci({name:u},i.options.modifiers[u])}).sort(function(u,c){return u.order-c.order}),this.modifiers.forEach(function(u){u.enabled&&P6(u.onLoad)&&u.onLoad(i.reference,i.popper,i.options,u,i.state)}),this.update();var n=this.options.eventsEnabled;n&&this.enableEventListeners(),this.state.eventsEnabled=n}return ok(e,[{key:"update",value:function(){return uk.call(this)}},{key:"destroy",value:function(){return lk.call(this)}},{key:"enableEventListeners",value:function(){return ck.call(this)}},{key:"disableEventListeners",value:function(){return pk.call(this)}}]),e}();Kh.Utils=(typeof window<"u"?window:ho).PopperUtils;Kh.placements=K6;Kh.Defaults=Bk;const Lk=Object.freeze(Object.defineProperty({__proto__:null,default:Kh},Symbol.toStringTag,{value:"Module"})),DV=tv(Lk);const Nk=Bs({name:"my-table",emits:["return-checked-rows","do-search","is-finished","get-now-page","row-clicked","row-toggled"],props:{isLoading:{type:Boolean,require:!0},isReSearch:{type:Boolean,require:!0},hasCheckbox:{type:Boolean,default:!1},checkedReturnType:{type:String,default:"key"},title:{type:String,default:""},isFixedFirstColumn:{type:Boolean,default:!1},columns:{type:Array,default:()=>[]},rows:{type:Array,default:()=>[]},rowClasses:{type:[Array,Function],default:()=>[]},pageSize:{type:Number,default:10},total:{type:Number,default:100},page:{type:Number,default:1},sortable:{type:Object,default:()=>({order:"id",sort:"asc"})},messages:{type:Object,default:()=>({pagingInfo:"Showing {0}-{1} of {2}",pageSizeChangeLabel:"Row count:",gotoPageLabel:"Go to page:",noDataAvailable:"No data"})},isStaticMode:{type:Boolean,default:!1},isSlotMode:{type:Boolean,default:!1},isHidePaging:{type:Boolean,default:!1},pageOptions:{type:Array,default:()=>[{value:10,text:10},{value:25,text:25},{value:50,text:50}]},groupingKey:{type:String,default:""},hasGroupToggle:{type:Boolean,default:!1},groupingDisplay:{type:Function,default:null},maxHeight:{default:"auto"},startCollapsed:{type:Boolean,default:!1},isKeepCollapsed:{type:Boolean,default:!1}},setup(e,{emit:t,slots:r}){let i=mr(null),a=e.pageOptions.length>0?mr(e.pageOptions[0].value):mr(e.pageSize);e.pageOptions.length>0&&e.pageOptions.forEach(oe=>{Object.prototype.hasOwnProperty.call(oe,"value")&&Object.prototype.hasOwnProperty.call(oe,"text")&&e.pageSize==oe.value&&(a.value=oe.value)});const n=No({isSlotMode:e.isSlotMode,isCheckAll:!1,isHidePaging:e.isHidePaging,keyColumn:Qt(()=>{let oe="";return Object.assign(e.columns).forEach(_=>{_.isKey&&(oe=_.field)}),oe}),page:e.page,pageSize:a.value,maxPage:Qt(()=>{if(e.total<=0)return 0;let oe=Math.floor(e.total/n.pageSize);return e.total%n.pageSize>0&&oe++,oe}),offset:Qt(()=>(n.page-1)*n.pageSize+1),limit:Qt(()=>{let oe=n.page*n.pageSize;return e.total>=oe?oe:e.total}),paging:Qt(()=>{let oe=n.page-2<=0?1:n.page-2;n.maxPage-n.page<=2&&(oe=n.maxPage-4),oe=oe<=0?1:oe;let _=[];for(let o=oe;o<=n.maxPage;o++)_.length<5&&_.push(o);return _}),order:e.sortable.order,sort:e.sortable.sort,pageOptions:e.pageOptions}),u=mr([]),c=Qt(()=>{let oe=e.rows;var _=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});let o=n.sort==="desc"?-1:1;oe.sort(function(l,h){return _.compare(l[n.order],h[n.order])*o});let f=null;if(e.groupingKey){let l={};oe.forEach(h=>{l[h[e.groupingKey]]||(l[h[e.groupingKey]]=[]),l[h[e.groupingKey]].push(h)}),f={};for(let h=n.offset-1;h<n.limit;h++)f[oe[h][e.groupingKey]]=l[oe[h][e.groupingKey]]}else{f=[];for(let l=n.offset-1;l<n.limit;l++)f.push(oe[l])}return uo(function(){B()}),f}),d=mr([]);Rv(()=>{d.value=[]}),lr(()=>n.isCheckAll,oe=>{if(e.hasCheckbox){if(u.value=[],oe){let _=e.isStaticMode?e.rows.slice(n.offset-1,n.limit):e.rows;e.checkedReturnType=="row"?u.value=_:_.forEach(o=>{u.value.push(o[n.keyColumn])})}d.value.forEach(_=>{_&&(_.checked=oe)}),t("return-checked-rows",u.value)}}),lr(()=>e.hasCheckbox,oe=>{oe||(n.isCheckAll=!1)});const m=(oe,_)=>{_.stopPropagation();let o=oe[n.keyColumn];if(e.checkedReturnType=="row"&&(o=oe),_.target.checked)u.value.push(o);else{const f=u.value.indexOf(o);f>=0&&u.value.splice(f,1)}u.value.length==e.rows.length?n.isCheckAll=!0:t("return-checked-rows",u.value)},M=()=>{u.value=[],d.value.forEach(oe=>{oe&&oe.checked&&(oe.checked=!1)}),t("return-checked-rows",u.value)},S=oe=>{let _="asc";oe==n.order&&n.sort=="asc"&&(_="desc");let o=(n.page-1)*n.pageSize,f=n.pageSize;n.order=oe,n.sort=_,t("do-search",o,f,oe,_),n.isCheckAll?n.isCheckAll=!1:e.hasCheckbox&&M()},R=(oe,_)=>{n.isCheckAll=!1,e.hasCheckbox&&(u.value=[]);let o=n.order,f=n.sort,l=(oe-1)*n.pageSize,h=n.pageSize;(!e.isReSearch||oe>1||oe==_)&&t("do-search",l,h,o,f)};lr(()=>n.page,R),lr(()=>e.page,oe=>{oe<=1?(n.page=1,t("get-now-page",n.page)):oe>=n.maxPage?(n.page=n.maxPage,t("get-now-page",n.page)):n.page=oe}),lr(()=>n.pageSize,()=>{n.page===1?R(n.page,n.page):(n.page=1,n.isCheckAll=!1)}),lr(()=>e.pageSize,oe=>{n.pageSize=oe});const P=()=>{if(n.page==1)return!1;n.page--},k=oe=>{n.page=oe},L=()=>{if(n.page>=n.maxPage)return!1;n.page++};lr(()=>e.rows,()=>{(e.isReSearch||e.isStaticMode)&&(n.page=1),uo(function(){e.isStaticMode||B()})});const I=(oe,..._)=>oe.replace(/{(\d+)}/g,function(o,f){return typeof _[f]<"u"?_[f]:o}),B=()=>{if(i.value){let oe=i.value.getElementsByClassName("is-rows-el");t("is-finished",oe)}t("get-now-page",n.page)},H=mr({}),F=mr({}),W=mr({}),Y=Qt(()=>{let oe={};return e.rows.forEach(_=>{oe[_[e.groupingKey]]||(oe[_[e.groupingKey]]=[]),oe[_[e.groupingKey]].push(_)}),uo(function(){if(e.startCollapsed||e.isKeepCollapsed){for(const[_,o]of Object.entries(H.value))if(o){let f=!e.startCollapsed;e.isKeepCollapsed&&W.value[_]!==void 0&&(f=!W.value[_]),(f&&o.parentElement.classList.contains("rotated-90")||!f&&!o.parentElement.classList.contains("rotated-90"))&&o.parentElement.classList.toggle("rotated-90"),f||F.value[_].forEach(l=>{l&&l.classList.add("hidden")})}}B()}),oe}),ie=oe=>{let _=H.value[oe];if(_){_.parentElement.classList.toggle("rotated-90");const o=_.parentElement.classList.contains("rotated-90");F.value[oe].forEach(f=>{f&&(o?f.classList.add("hidden"):f.classList.remove("hidden"))}),W.value[oe]=o,t("row-toggled",Y.value[oe],o)}},J=oe=>{oe.target.classList.add("hover")},V=oe=>{oe.target.classList.remove("hover")};return Ns(()=>{uo(()=>{e.rows.length>0&&B()})}),{slots:r,localTable:i,localRows:c,setting:n,rowCheckbox:d,checked:m,clearChecked:M,doSort:S,prevPage:P,movePage:k,nextPage:L,stringFormat:I,toggleButtonRefs:H,groupingRowsRefs:F,groupingRows:Y,toggleGroup:ie,addHoverClassToTr:J,removeHoverClassFromTr:V}}}),Gn=e=>(_2("data-v-30c302e9"),e=e(),M2(),e),kk={class:"vtl vtl-card"},$k={key:0,class:"vtl-card-title"},Dk={class:"vtl-card-body"},Fk={class:"vtl-row"},jk={key:0,class:"vtl-loading-mask"},Uk=Gn(()=>Je("div",{class:"vtl-loading-content"},[Je("span",{style:{color:"white"}},"Loading...")],-1)),Hk=[Uk],qk={class:"vtl-thead"},Wk={class:"vtl-thead-tr"},Kk={key:0,class:"vtl-thead-th vtl-checkbox-th"},Vk=["onClick"],zk=["set"],Gk={key:0,class:"vtl-tbody-tr vtl-group-tr"},Yk=["colspan"],Zk={class:"flex"},Xk={key:0,class:"animation"},Jk=["onClick"],Qk=["innerHTML"],e$=["name","onClick"],t$={key:0,class:"vtl-tbody-td vtl-checkbox-td"},r$=["value","onClick"],i$=["innerHTML"],n$={key:1},o$={key:0},a$={key:1},s$=["set"],f$={key:0,class:"vtl-tbody-tr vtl-group-tr"},u$=["colspan"],l$={class:"flex"},h$={key:0,class:"animation"},c$=["onClick"],d$=["innerHTML"],p$=["name","onClick"],v$={key:0,class:"vtl-tbody-td vtl-checkbox-td"},g$=["value","onClick"],m$=["innerHTML"],y$={key:1},b$={key:0},w$={key:1},_$={key:0,class:"vtl-paging vtl-row"},M$={class:"vtl-paging-info col-sm-12 col-md-4"},S$={role:"status","aria-live":"polite"},x$={class:"vtl-paging-change-div col-sm-12 col-md-4"},E$={class:"vtl-paging-count-label"},R$=["value"],A$={class:"vtl-paging-page-label"},T$=["value"],O$={class:"vtl-paging-pagination-div col-sm-12 col-md-4"},I$={class:"dataTables_paginate"},P$={class:"vtl-paging-pagination-ul vtl-pagination"},C$=Gn(()=>Je("span",{"aria-hidden":"true"},"«",-1)),B$=Gn(()=>Je("span",{class:"sr-only"},"First",-1)),L$=[C$,B$],N$=Gn(()=>Je("span",{"aria-hidden":"true"},"<",-1)),k$=Gn(()=>Je("span",{class:"sr-only"},"Prev",-1)),$$=[N$,k$],D$=["onClick"],F$=Gn(()=>Je("span",{"aria-hidden":"true"},">",-1)),j$=Gn(()=>Je("span",{class:"sr-only"},"Next",-1)),U$=[F$,j$],H$=Gn(()=>Je("span",{"aria-hidden":"true"},"»",-1)),q$=Gn(()=>Je("span",{class:"sr-only"},"Last",-1)),W$=[H$,q$],K$={key:1,class:"vtl-row"},V$={class:"vtl-empty-msg col-sm-12 text-center"};function z$(e,t,r,i,a,n){return tt(),ft("div",kk,[e.title?(tt(),ft("div",$k,si(e.title),1)):fi("v-if",!0),Je("div",Dk,[Je("div",Fk,[Je("div",{class:vr(["col-sm-12",{"fixed-first-column":e.isFixedFirstColumn,"fixed-first-second-column":e.isFixedFirstColumn&&e.hasCheckbox}])},[e.isLoading?(tt(),ft("div",jk,Hk)):fi("v-if",!0),Je("table",{class:"vtl-table vtl-table-hover vtl-table-bordered vtl-table-responsive vtl-table-responsive-sm",ref:"localTable",style:Pn("max-height: "+e.maxHeight+"px;")},[Je("thead",qk,[Je("tr",Wk,[e.hasCheckbox?(tt(),ft("th",Kk,[Je("div",null,[nl(Je("input",{type:"checkbox",class:"vtl-thead-checkbox","onUpdate:modelValue":t[0]||(t[0]=u=>e.setting.isCheckAll=u)},null,512),[[Rh,e.setting.isCheckAll]])])])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(e.columns,(u,c)=>(tt(),ft("th",{class:vr(["vtl-thead-th",u.headerClasses]),key:c,style:Pn(Object.assign({width:u.width?u.width:"auto"},u.headerStyles))},[Je("div",{class:vr(["vtl-thead-column",{"vtl-sortable":u.sortable,"vtl-both":u.sortable,"vtl-asc":e.setting.order===u.field&&e.setting.sort==="asc","vtl-desc":e.setting.order===u.field&&e.setting.sort==="desc"}]),onClick:Mn(d=>u.sortable?e.doSort(u.field):!1,["prevent"])},si(u.label),11,Vk)],6))),128))])]),e.rows.length>0?(tt(),ft(Lt,{key:0},[e.isStaticMode?(tt(),ft("tbody",{key:0,class:"vtl-tbody",set:e.templateRows=e.groupingKey==""?[e.localRows]:e.localRows},[(tt(!0),ft(Lt,null,Ii(e.templateRows,(u,c)=>(tt(),ft(Lt,{key:c},[e.groupingKey!=""?(tt(),ft("tr",Gk,[Je("td",{colspan:e.hasCheckbox?e.columns.length+1:e.columns.length,class:"vtl-tbody-td vtl-group-td"},[Je("div",Zk,[e.hasGroupToggle?(tt(),ft("div",Xk,[Je("a",{ref_for:!0,ref:d=>e.toggleButtonRefs[c]=d,class:"cursor-pointer",onClick:Mn(d=>e.toggleGroup(c),["prevent"])},"▼",8,Jk)])):fi("v-if",!0),Je("div",{class:"ml-2",innerHTML:e.groupingDisplay?e.groupingDisplay(c):c},null,8,Qk)])],8,Yk)])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(u,(d,m)=>(tt(),ft("tr",{key:d[e.setting.keyColumn]?d[e.setting.keyColumn]:m,ref_for:!0,ref:M=>{e.groupingRowsRefs[c]||(e.groupingRowsRefs[c]=[]),e.groupingRowsRefs[c][m]=M},name:"vtl-group-"+c,class:vr(["vtl-tbody-tr",typeof e.rowClasses=="function"?e.rowClasses(d):e.rowClasses]),onMouseenter:t[1]||(t[1]=(...M)=>e.addHoverClassToTr&&e.addHoverClassToTr(...M)),onMouseleave:t[2]||(t[2]=(...M)=>e.removeHoverClassFromTr&&e.removeHoverClassFromTr(...M)),onClick:M=>e.$emit("row-clicked",d)},[e.hasCheckbox?(tt(),ft("td",t$,[Je("div",null,[Je("input",{type:"checkbox",class:"vtl-tbody-checkbox",ref_for:!0,ref:M=>{e.rowCheckbox.push(M)},value:d[e.setting.keyColumn],onClick:M=>e.checked(d,M)},null,8,r$)])])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(e.columns,(M,S)=>(tt(),ft("td",{key:S,class:vr(["vtl-tbody-td",M.columnClasses]),style:Pn(M.columnStyles)},[M.display?(tt(),ft("div",{key:0,innerHTML:M.display(d)},null,8,i$)):(tt(),ft("div",n$,[e.setting.isSlotMode&&e.slots[M.field]?(tt(),ft("div",o$,[j0(e.$slots,M.field,{value:d},void 0,!0)])):(tt(),ft("span",a$,si(d[M.field]),1))]))],6))),128))],42,e$))),128))],64))),128))],8,zk)):(tt(),ft("tbody",{key:1,set:e.templateRows=e.groupingKey==""?[e.rows]:e.groupingRows},[(tt(!0),ft(Lt,null,Ii(e.templateRows,(u,c)=>(tt(),ft(Lt,{key:c},[e.groupingKey!=""?(tt(),ft("tr",f$,[Je("td",{colspan:e.hasCheckbox?e.columns.length+1:e.columns.length,class:"vtl-tbody-td vtl-group-td"},[Je("div",l$,[e.hasGroupToggle?(tt(),ft("div",h$,[Je("a",{ref_for:!0,ref:d=>e.toggleButtonRefs[c]=d,class:"cursor-pointer",onClick:Mn(d=>e.toggleGroup(c),["prevent"])},"▼",8,c$)])):fi("v-if",!0),Je("div",{class:"ml-2",innerHTML:e.groupingDisplay?e.groupingDisplay(c):c},null,8,d$)])],8,u$)])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(u,(d,m)=>(tt(),ft("tr",{ref_for:!0,ref:M=>{e.groupingRowsRefs[c]||(e.groupingRowsRefs[c]=[]),e.groupingRowsRefs[c][m]=M},name:"vtl-group-"+c,key:d[e.setting.keyColumn]?d[e.setting.keyColumn]:m,class:vr(["vtl-tbody-tr",typeof e.rowClasses=="function"?e.rowClasses(d):e.rowClasses]),onMouseenter:t[3]||(t[3]=(...M)=>e.addHoverClassToTr&&e.addHoverClassToTr(...M)),onMouseleave:t[4]||(t[4]=(...M)=>e.removeHoverClassFromTr&&e.removeHoverClassFromTr(...M)),onClick:M=>e.$emit("row-clicked",d)},[e.hasCheckbox?(tt(),ft("td",v$,[Je("div",null,[Je("input",{type:"checkbox",class:"vtl-tbody-checkbox",ref_for:!0,ref:M=>{e.rowCheckbox.push(M)},value:d[e.setting.keyColumn],onClick:M=>e.checked(d,M)},null,8,g$)])])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(e.columns,(M,S)=>(tt(),ft("td",{key:S,class:vr(["vtl-tbody-td",M.columnClasses]),style:Pn(M.columnStyles)},[M.display?(tt(),ft("div",{key:0,innerHTML:M.display(d)},null,8,m$)):(tt(),ft("div",y$,[e.setting.isSlotMode&&e.slots[M.field]?(tt(),ft("div",b$,[j0(e.$slots,M.field,{value:d},void 0,!0)])):(tt(),ft("span",w$,si(d[M.field]),1))]))],6))),128))],42,p$))),128))],64))),128))],8,s$))],64)):fi("v-if",!0)],4)],2)]),e.rows.length>0?(tt(),ft("div",_$,[e.setting.isHidePaging?fi("v-if",!0):(tt(),ft(Lt,{key:0},[Je("div",M$,[Je("div",S$,si(e.stringFormat(e.messages.pagingInfo,e.setting.offset,e.setting.limit,e.total)),1)]),Je("div",x$,[Je("span",E$,si(e.messages.pageSizeChangeLabel),1),nl(Je("select",{class:"vtl-paging-count-dropdown","onUpdate:modelValue":t[5]||(t[5]=u=>e.setting.pageSize=u)},[(tt(!0),ft(Lt,null,Ii(e.pageOptions,u=>(tt(),ft("option",{value:u.value,key:u.value},si(u.text),9,R$))),128))],512),[[Dl,e.setting.pageSize]]),Je("span",A$,si(e.messages.gotoPageLabel),1),nl(Je("select",{class:"vtl-paging-page-dropdown","onUpdate:modelValue":t[6]||(t[6]=u=>e.setting.page=u)},[(tt(!0),ft(Lt,null,Ii(e.setting.maxPage,u=>(tt(),ft("option",{key:u,value:parseInt(u)},si(u),9,T$))),128))],512),[[Dl,e.setting.page]])]),Je("div",O$,[Je("div",I$,[Je("ul",P$,[Je("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-first page-item",{disabled:e.setting.page<=1}])},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-first page-link cursor-pointer","aria-label":"Previous",onClick:t[7]||(t[7]=Mn(u=>e.setting.page=1,["prevent"]))},L$)],2),Je("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-prev page-item",{disabled:e.setting.page<=1}])},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-prev page-link cursor-pointer","aria-label":"Previous",onClick:t[8]||(t[8]=Mn((...u)=>e.prevPage&&e.prevPage(...u),["prevent"]))},$$)],2),(tt(!0),ft(Lt,null,Ii(e.setting.paging,u=>(tt(),ft("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-number page-item",{disabled:e.setting.page===u}]),key:u},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-number page-link cursor-pointer",onClick:Mn(c=>e.movePage(u),["prevent"])},si(u),9,D$)],2))),128)),Je("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-next page-item",{disabled:e.setting.page>=e.setting.maxPage}])},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-next page-link cursor-pointer","aria-label":"Next",onClick:t[9]||(t[9]=Mn((...u)=>e.nextPage&&e.nextPage(...u),["prevent"]))},U$)],2),Je("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-last page-item",{disabled:e.setting.page>=e.setting.maxPage}])},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-last page-link cursor-pointer","aria-label":"Next",onClick:t[10]||(t[10]=Mn(u=>e.setting.page=e.setting.maxPage,["prevent"]))},W$)],2)])])])],64))])):(tt(),ft("div",K$,[Je("div",V$,si(e.messages.noDataAvailable),1)]))])])}const FV=zR(Nk,[["render",z$],["__scopeId","data-v-30c302e9"],["__file","/opt/openWB-dev/openwb-ui-settings/node_modules/vue3-table-lite/src/components/TableLite.vue"]]);/*!
- * @kurkle/color v0.3.2
- * https://github.com/kurkle/color#readme
- * (c) 2023 Jukka Kurkela
- * Released under the MIT License
- */function Mu(e){return e+.5|0}const lo=(e,t,r)=>Math.max(Math.min(e,r),t);function Sf(e){return lo(Mu(e*2.55),0,255)}function bo(e){return lo(Mu(e*255),0,255)}function An(e){return lo(Mu(e/2.55)/100,0,1)}function Xy(e){return lo(Mu(e*100),0,100)}const oi={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},kp=[..."0123456789ABCDEF"],G$=e=>kp[e&15],Y$=e=>kp[(e&240)>>4]+kp[e&15],Gu=e=>(e&240)>>4===(e&15),Z$=e=>Gu(e.r)&&Gu(e.g)&&Gu(e.b)&&Gu(e.a);function X$(e){var t=e.length,r;return e[0]==="#"&&(t===4||t===5?r={r:255&oi[e[1]]*17,g:255&oi[e[2]]*17,b:255&oi[e[3]]*17,a:t===5?oi[e[4]]*17:255}:(t===7||t===9)&&(r={r:oi[e[1]]<<4|oi[e[2]],g:oi[e[3]]<<4|oi[e[4]],b:oi[e[5]]<<4|oi[e[6]],a:t===9?oi[e[7]]<<4|oi[e[8]]:255})),r}const J$=(e,t)=>e<255?t(e):"";function Q$(e){var t=Z$(e)?G$:Y$;return e?"#"+t(e.r)+t(e.g)+t(e.b)+J$(e.a,t):void 0}const eD=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function V6(e,t,r){const i=t*Math.min(r,1-r),a=(n,u=(n+e/30)%12)=>r-i*Math.max(Math.min(u-3,9-u,1),-1);return[a(0),a(8),a(4)]}function tD(e,t,r){const i=(a,n=(a+e/60)%6)=>r-r*t*Math.max(Math.min(n,4-n,1),0);return[i(5),i(3),i(1)]}function rD(e,t,r){const i=V6(e,1,.5);let a;for(t+r>1&&(a=1/(t+r),t*=a,r*=a),a=0;a<3;a++)i[a]*=1-t-r,i[a]+=t;return i}function iD(e,t,r,i,a){return e===a?(t-r)/i+(t<r?6:0):t===a?(r-e)/i+2:(e-t)/i+4}function hg(e){const r=e.r/255,i=e.g/255,a=e.b/255,n=Math.max(r,i,a),u=Math.min(r,i,a),c=(n+u)/2;let d,m,M;return n!==u&&(M=n-u,m=c>.5?M/(2-n-u):M/(n+u),d=iD(r,i,a,M,n),d=d*60+.5),[d|0,m||0,c]}function cg(e,t,r,i){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,r,i)).map(bo)}function dg(e,t,r){return cg(V6,e,t,r)}function nD(e,t,r){return cg(rD,e,t,r)}function oD(e,t,r){return cg(tD,e,t,r)}function z6(e){return(e%360+360)%360}function aD(e){const t=eD.exec(e);let r=255,i;if(!t)return;t[5]!==i&&(r=t[6]?Sf(+t[5]):bo(+t[5]));const a=z6(+t[2]),n=+t[3]/100,u=+t[4]/100;return t[1]==="hwb"?i=nD(a,n,u):t[1]==="hsv"?i=oD(a,n,u):i=dg(a,n,u),{r:i[0],g:i[1],b:i[2],a:r}}function sD(e,t){var r=hg(e);r[0]=z6(r[0]+t),r=dg(r),e.r=r[0],e.g=r[1],e.b=r[2]}function fD(e){if(!e)return;const t=hg(e),r=t[0],i=Xy(t[1]),a=Xy(t[2]);return e.a<255?`hsla(${r}, ${i}%, ${a}%, ${An(e.a)})`:`hsl(${r}, ${i}%, ${a}%)`}const Jy={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Qy={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function uD(){const e={},t=Object.keys(Qy),r=Object.keys(Jy);let i,a,n,u,c;for(i=0;i<t.length;i++){for(u=c=t[i],a=0;a<r.length;a++)n=r[a],c=c.replace(n,Jy[n]);n=parseInt(Qy[u],16),e[c]=[n>>16&255,n>>8&255,n&255]}return e}let Yu;function lD(e){Yu||(Yu=uD(),Yu.transparent=[0,0,0,0]);const t=Yu[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}const hD=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function cD(e){const t=hD.exec(e);let r=255,i,a,n;if(t){if(t[7]!==i){const u=+t[7];r=t[8]?Sf(u):lo(u*255,0,255)}return i=+t[1],a=+t[3],n=+t[5],i=255&(t[2]?Sf(i):lo(i,0,255)),a=255&(t[4]?Sf(a):lo(a,0,255)),n=255&(t[6]?Sf(n):lo(n,0,255)),{r:i,g:a,b:n,a:r}}}function dD(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${An(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}const Ld=e=>e<=.0031308?e*12.92:Math.pow(e,1/2.4)*1.055-.055,Da=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function pD(e,t,r){const i=Da(An(e.r)),a=Da(An(e.g)),n=Da(An(e.b));return{r:bo(Ld(i+r*(Da(An(t.r))-i))),g:bo(Ld(a+r*(Da(An(t.g))-a))),b:bo(Ld(n+r*(Da(An(t.b))-n))),a:e.a+r*(t.a-e.a)}}function Zu(e,t,r){if(e){let i=hg(e);i[t]=Math.max(0,Math.min(i[t]+i[t]*r,t===0?360:1)),i=dg(i),e.r=i[0],e.g=i[1],e.b=i[2]}}function G6(e,t){return e&&Object.assign(t||{},e)}function eb(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=bo(e[3]))):(t=G6(e,{r:0,g:0,b:0,a:1}),t.a=bo(t.a)),t}function vD(e){return e.charAt(0)==="r"?cD(e):aD(e)}class $p{constructor(t){if(t instanceof $p)return t;const r=typeof t;let i;r==="object"?i=eb(t):r==="string"&&(i=X$(t)||lD(t)||vD(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=G6(this._rgb);return t&&(t.a=An(t.a)),t}set rgb(t){this._rgb=eb(t)}rgbString(){return this._valid?dD(this._rgb):void 0}hexString(){return this._valid?Q$(this._rgb):void 0}hslString(){return this._valid?fD(this._rgb):void 0}mix(t,r){if(t){const i=this.rgb,a=t.rgb;let n;const u=r===n?.5:r,c=2*u-1,d=i.a-a.a,m=((c*d===-1?c:(c+d)/(1+c*d))+1)/2;n=1-m,i.r=255&m*i.r+n*a.r+.5,i.g=255&m*i.g+n*a.g+.5,i.b=255&m*i.b+n*a.b+.5,i.a=u*i.a+(1-u)*a.a,this.rgb=i}return this}interpolate(t,r){return t&&(this._rgb=pD(this._rgb,t._rgb,r)),this}clone(){return new $p(this.rgb)}alpha(t){return this._rgb.a=bo(t),this}clearer(t){const r=this._rgb;return r.a*=1-t,this}greyscale(){const t=this._rgb,r=Mu(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=r,this}opaquer(t){const r=this._rgb;return r.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Zu(this._rgb,2,t),this}darken(t){return Zu(this._rgb,2,-t),this}saturate(t){return Zu(this._rgb,1,t),this}desaturate(t){return Zu(this._rgb,1,-t),this}rotate(t){return sD(this._rgb,t),this}}var Y6={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22
- * http://hammerjs.github.io/
- *
- * Copyright (c) 2016 Jorik Tangelder;
- * Licensed under the MIT license */(function(e){(function(t,r,i,a){var n=["","webkit","Moz","MS","ms","o"],u=r.createElement("div"),c="function",d=Math.round,m=Math.abs,M=Date.now;function S(re,he,me){return setTimeout(H(re,me),he)}function R(re,he,me){return Array.isArray(re)?(C(re,me[he],me),!0):!1}function C(re,he,me){var Be;if(re)if(re.forEach)re.forEach(he,me);else if(re.length!==a)for(Be=0;Be<re.length;)he.call(me,re[Be],Be,re),Be++;else for(Be in re)re.hasOwnProperty(Be)&&he.call(me,re[Be],Be,re)}function P(re,he,me){var Be="DEPRECATED METHOD: "+he+`
-`+me+` AT 
-`;return function(){var We=new Error("get-stack-trace"),Ge=We&&We.stack?We.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",bt=t.console&&(t.console.warn||t.console.log);return bt&&bt.call(t.console,Be,Ge),re.apply(this,arguments)}}var k;typeof Object.assign!="function"?k=function(he){if(he===a||he===null)throw new TypeError("Cannot convert undefined or null to object");for(var me=Object(he),Be=1;Be<arguments.length;Be++){var We=arguments[Be];if(We!==a&&We!==null)for(var Ge in We)We.hasOwnProperty(Ge)&&(me[Ge]=We[Ge])}return me}:k=Object.assign;var L=P(function(he,me,Be){for(var We=Object.keys(me),Ge=0;Ge<We.length;)(!Be||Be&&he[We[Ge]]===a)&&(he[We[Ge]]=me[We[Ge]]),Ge++;return he},"extend","Use `assign`."),I=P(function(he,me){return L(he,me,!0)},"merge","Use `assign`.");function B(re,he,me){var Be=he.prototype,We;We=re.prototype=Object.create(Be),We.constructor=re,We._super=Be,me&&k(We,me)}function H(re,he){return function(){return re.apply(he,arguments)}}function F(re,he){return typeof re==c?re.apply(he&&he[0]||a,he):re}function W(re,he){return re===a?he:re}function Y(re,he,me){C(oe(he),function(Be){re.addEventListener(Be,me,!1)})}function ie(re,he,me){C(oe(he),function(Be){re.removeEventListener(Be,me,!1)})}function J(re,he){for(;re;){if(re==he)return!0;re=re.parentNode}return!1}function V(re,he){return re.indexOf(he)>-1}function oe(re){return re.trim().split(/\s+/g)}function _(re,he,me){if(re.indexOf&&!me)return re.indexOf(he);for(var Be=0;Be<re.length;){if(me&&re[Be][me]==he||!me&&re[Be]===he)return Be;Be++}return-1}function o(re){return Array.prototype.slice.call(re,0)}function f(re,he,me){for(var Be=[],We=[],Ge=0;Ge<re.length;){var bt=he?re[Ge][he]:re[Ge];_(We,bt)<0&&Be.push(re[Ge]),We[Ge]=bt,Ge++}return me&&(he?Be=Be.sort(function(pr,Pr){return pr[he]>Pr[he]}):Be=Be.sort()),Be}function l(re,he){for(var me,Be,We=he[0].toUpperCase()+he.slice(1),Ge=0;Ge<n.length;){if(me=n[Ge],Be=me?me+We:he,Be in re)return Be;Ge++}return a}var h=1;function p(){return h++}function w(re){var he=re.ownerDocument||re;return he.defaultView||he.parentWindow||t}var x=/mobile|tablet|ip(ad|hone|od)|android/i,g="ontouchstart"in t,s=l(t,"PointerEvent")!==a,v=g&&x.test(navigator.userAgent),T="touch",$="pen",G="mouse",ee="kinect",A=25,E=1,U=2,K=4,Z=8,b=1,y=2,O=4,q=8,X=16,D=y|O,N=q|X,j=D|N,z=["x","y"],se=["clientX","clientY"];function te(re,he){var me=this;this.manager=re,this.callback=he,this.element=re.element,this.target=re.options.inputTarget,this.domHandler=function(Be){F(re.options.enable,[re])&&me.handler(Be)},this.init()}te.prototype={handler:function(){},init:function(){this.evEl&&Y(this.element,this.evEl,this.domHandler),this.evTarget&&Y(this.target,this.evTarget,this.domHandler),this.evWin&&Y(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&ie(this.element,this.evEl,this.domHandler),this.evTarget&&ie(this.target,this.evTarget,this.domHandler),this.evWin&&ie(w(this.element),this.evWin,this.domHandler)}};function ne(re){var he,me=re.options.inputClass;return me?he=me:s?he=xe:v?he=Oe:g?he=$e:he=qe,new he(re,Ee)}function Ee(re,he,me){var Be=me.pointers.length,We=me.changedPointers.length,Ge=he&E&&Be-We===0,bt=he&(K|Z)&&Be-We===0;me.isFirst=!!Ge,me.isFinal=!!bt,Ge&&(re.session={}),me.eventType=he,Q(re,me),re.emit("hammer.input",me),re.recognize(me),re.session.prevInput=me}function Q(re,he){var me=re.session,Be=he.pointers,We=Be.length;me.firstInput||(me.firstInput=ce(he)),We>1&&!me.firstMultiple?me.firstMultiple=ce(he):We===1&&(me.firstMultiple=!1);var Ge=me.firstInput,bt=me.firstMultiple,ar=bt?bt.center:Ge.center,pr=he.center=pe(Be);he.timeStamp=M(),he.deltaTime=he.timeStamp-Ge.timeStamp,he.angle=Te(ar,pr),he.distance=fe(ar,pr),ue(me,he),he.offsetDirection=ae(he.deltaX,he.deltaY);var Pr=de(he.deltaTime,he.deltaX,he.deltaY);he.overallVelocityX=Pr.x,he.overallVelocityY=Pr.y,he.overallVelocity=m(Pr.x)>m(Pr.y)?Pr.x:Pr.y,he.scale=bt?Me(bt.pointers,Be):1,he.rotation=bt?ve(bt.pointers,Be):0,he.maxPointers=me.prevInput?he.pointers.length>me.prevInput.maxPointers?he.pointers.length:me.prevInput.maxPointers:he.pointers.length,le(me,he);var Vi=re.element;J(he.srcEvent.target,Vi)&&(Vi=he.srcEvent.target),he.target=Vi}function ue(re,he){var me=he.center,Be=re.offsetDelta||{},We=re.prevDelta||{},Ge=re.prevInput||{};(he.eventType===E||Ge.eventType===K)&&(We=re.prevDelta={x:Ge.deltaX||0,y:Ge.deltaY||0},Be=re.offsetDelta={x:me.x,y:me.y}),he.deltaX=We.x+(me.x-Be.x),he.deltaY=We.y+(me.y-Be.y)}function le(re,he){var me=re.lastInterval||he,Be=he.timeStamp-me.timeStamp,We,Ge,bt,ar;if(he.eventType!=Z&&(Be>A||me.velocity===a)){var pr=he.deltaX-me.deltaX,Pr=he.deltaY-me.deltaY,Vi=de(Be,pr,Pr);Ge=Vi.x,bt=Vi.y,We=m(Vi.x)>m(Vi.y)?Vi.x:Vi.y,ar=ae(pr,Pr),re.lastInterval=he}else We=me.velocity,Ge=me.velocityX,bt=me.velocityY,ar=me.direction;he.velocity=We,he.velocityX=Ge,he.velocityY=bt,he.direction=ar}function ce(re){for(var he=[],me=0;me<re.pointers.length;)he[me]={clientX:d(re.pointers[me].clientX),clientY:d(re.pointers[me].clientY)},me++;return{timeStamp:M(),pointers:he,center:pe(he),deltaX:re.deltaX,deltaY:re.deltaY}}function pe(re){var he=re.length;if(he===1)return{x:d(re[0].clientX),y:d(re[0].clientY)};for(var me=0,Be=0,We=0;We<he;)me+=re[We].clientX,Be+=re[We].clientY,We++;return{x:d(me/he),y:d(Be/he)}}function de(re,he,me){return{x:he/re||0,y:me/re||0}}function ae(re,he){return re===he?b:m(re)>=m(he)?re<0?y:O:he<0?q:X}function fe(re,he,me){me||(me=z);var Be=he[me[0]]-re[me[0]],We=he[me[1]]-re[me[1]];return Math.sqrt(Be*Be+We*We)}function Te(re,he,me){me||(me=z);var Be=he[me[0]]-re[me[0]],We=he[me[1]]-re[me[1]];return Math.atan2(We,Be)*180/Math.PI}function ve(re,he){return Te(he[1],he[0],se)+Te(re[1],re[0],se)}function Me(re,he){return fe(he[0],he[1],se)/fe(re[0],re[1],se)}var Ke={mousedown:E,mousemove:U,mouseup:K},be="mousedown",Se="mousemove mouseup";function qe(){this.evEl=be,this.evWin=Se,this.pressed=!1,te.apply(this,arguments)}B(qe,te,{handler:function(he){var me=Ke[he.type];me&E&&he.button===0&&(this.pressed=!0),me&U&&he.which!==1&&(me=K),this.pressed&&(me&K&&(this.pressed=!1),this.callback(this.manager,me,{pointers:[he],changedPointers:[he],pointerType:G,srcEvent:he}))}});var ye={pointerdown:E,pointermove:U,pointerup:K,pointercancel:Z,pointerout:Z},_e={2:T,3:$,4:G,5:ee},Ve="pointerdown",ge="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Ve="MSPointerDown",ge="MSPointerMove MSPointerUp MSPointerCancel");function xe(){this.evEl=Ve,this.evWin=ge,te.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}B(xe,te,{handler:function(he){var me=this.store,Be=!1,We=he.type.toLowerCase().replace("ms",""),Ge=ye[We],bt=_e[he.pointerType]||he.pointerType,ar=bt==T,pr=_(me,he.pointerId,"pointerId");Ge&E&&(he.button===0||ar)?pr<0&&(me.push(he),pr=me.length-1):Ge&(K|Z)&&(Be=!0),!(pr<0)&&(me[pr]=he,this.callback(this.manager,Ge,{pointers:me,changedPointers:[he],pointerType:bt,srcEvent:he}),Be&&me.splice(pr,1))}});var Xe={touchstart:E,touchmove:U,touchend:K,touchcancel:Z},Re="touchstart",Le="touchstart touchmove touchend touchcancel";function at(){this.evTarget=Re,this.evWin=Le,this.started=!1,te.apply(this,arguments)}B(at,te,{handler:function(he){var me=Xe[he.type];if(me===E&&(this.started=!0),!!this.started){var Be=Ae.call(this,he,me);me&(K|Z)&&Be[0].length-Be[1].length===0&&(this.started=!1),this.callback(this.manager,me,{pointers:Be[0],changedPointers:Be[1],pointerType:T,srcEvent:he})}}});function Ae(re,he){var me=o(re.touches),Be=o(re.changedTouches);return he&(K|Z)&&(me=f(me.concat(Be),"identifier",!0)),[me,Be]}var Ne={touchstart:E,touchmove:U,touchend:K,touchcancel:Z},rt="touchstart touchmove touchend touchcancel";function Oe(){this.evTarget=rt,this.targetIds={},te.apply(this,arguments)}B(Oe,te,{handler:function(he){var me=Ne[he.type],Be=De.call(this,he,me);Be&&this.callback(this.manager,me,{pointers:Be[0],changedPointers:Be[1],pointerType:T,srcEvent:he})}});function De(re,he){var me=o(re.touches),Be=this.targetIds;if(he&(E|U)&&me.length===1)return Be[me[0].identifier]=!0,[me,me];var We,Ge,bt=o(re.changedTouches),ar=[],pr=this.target;if(Ge=me.filter(function(Pr){return J(Pr.target,pr)}),he===E)for(We=0;We<Ge.length;)Be[Ge[We].identifier]=!0,We++;for(We=0;We<bt.length;)Be[bt[We].identifier]&&ar.push(bt[We]),he&(K|Z)&&delete Be[bt[We].identifier],We++;if(ar.length)return[f(Ge.concat(ar),"identifier",!0),ar]}var nt=2500,Ie=25;function $e(){te.apply(this,arguments);var re=H(this.handler,this);this.touch=new Oe(this.manager,re),this.mouse=new qe(this.manager,re),this.primaryTouch=null,this.lastTouches=[]}B($e,te,{handler:function(he,me,Be){var We=Be.pointerType==T,Ge=Be.pointerType==G;if(!(Ge&&Be.sourceCapabilities&&Be.sourceCapabilities.firesTouchEvents)){if(We)st.call(this,me,Be);else if(Ge&&je.call(this,Be))return;this.callback(he,me,Be)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function st(re,he){re&E?(this.primaryTouch=he.changedPointers[0].identifier,Pe.call(this,he)):re&(K|Z)&&Pe.call(this,he)}function Pe(re){var he=re.changedPointers[0];if(he.identifier===this.primaryTouch){var me={x:he.clientX,y:he.clientY};this.lastTouches.push(me);var Be=this.lastTouches,We=function(){var Ge=Be.indexOf(me);Ge>-1&&Be.splice(Ge,1)};setTimeout(We,nt)}}function je(re){for(var he=re.srcEvent.clientX,me=re.srcEvent.clientY,Be=0;Be<this.lastTouches.length;Be++){var We=this.lastTouches[Be],Ge=Math.abs(he-We.x),bt=Math.abs(me-We.y);if(Ge<=Ie&&bt<=Ie)return!0}return!1}var ht=l(u.style,"touchAction"),Ce=ht!==a,Fe="compute",it="auto",et="manipulation",xt="none",Tt="pan-x",Ot="pan-y",Ct=Ht();function kt(re,he){this.manager=re,this.set(he)}kt.prototype={set:function(re){re==Fe&&(re=this.compute()),Ce&&this.manager.element.style&&Ct[re]&&(this.manager.element.style[ht]=re),this.actions=re.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var re=[];return C(this.manager.recognizers,function(he){F(he.options.enable,[he])&&(re=re.concat(he.getTouchAction()))}),Ut(re.join(" "))},preventDefaults:function(re){var he=re.srcEvent,me=re.offsetDirection;if(this.manager.session.prevented){he.preventDefault();return}var Be=this.actions,We=V(Be,xt)&&!Ct[xt],Ge=V(Be,Ot)&&!Ct[Ot],bt=V(Be,Tt)&&!Ct[Tt];if(We){var ar=re.pointers.length===1,pr=re.distance<2,Pr=re.deltaTime<250;if(ar&&pr&&Pr)return}if(!(bt&&Ge)&&(We||Ge&&me&D||bt&&me&N))return this.preventSrc(he)},preventSrc:function(re){this.manager.session.prevented=!0,re.preventDefault()}};function Ut(re){if(V(re,xt))return xt;var he=V(re,Tt),me=V(re,Ot);return he&&me?xt:he||me?he?Tt:Ot:V(re,et)?et:it}function Ht(){if(!Ce)return!1;var re={},he=t.CSS&&t.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(me){re[me]=he?t.CSS.supports("touch-action",me):!0}),re}var Bt=1,dt=2,At=4,_t=8,mt=_t,It=16,vt=32;function yt(re){this.options=k({},this.defaults,re||{}),this.id=p(),this.manager=null,this.options.enable=W(this.options.enable,!0),this.state=Bt,this.simultaneous={},this.requireFail=[]}yt.prototype={defaults:{},set:function(re){return k(this.options,re),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(re){if(R(re,"recognizeWith",this))return this;var he=this.simultaneous;return re=Zn(re,this),he[re.id]||(he[re.id]=re,re.recognizeWith(this)),this},dropRecognizeWith:function(re){return R(re,"dropRecognizeWith",this)?this:(re=Zn(re,this),delete this.simultaneous[re.id],this)},requireFailure:function(re){if(R(re,"requireFailure",this))return this;var he=this.requireFail;return re=Zn(re,this),_(he,re)===-1&&(he.push(re),re.requireFailure(this)),this},dropRequireFailure:function(re){if(R(re,"dropRequireFailure",this))return this;re=Zn(re,this);var he=_(this.requireFail,re);return he>-1&&this.requireFail.splice(he,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(re){return!!this.simultaneous[re.id]},emit:function(re){var he=this,me=this.state;function Be(We){he.manager.emit(We,re)}me<_t&&Be(he.options.event+Dt(me)),Be(he.options.event),re.additionalEvent&&Be(re.additionalEvent),me>=_t&&Be(he.options.event+Dt(me))},tryEmit:function(re){if(this.canEmit())return this.emit(re);this.state=vt},canEmit:function(){for(var re=0;re<this.requireFail.length;){if(!(this.requireFail[re].state&(vt|Bt)))return!1;re++}return!0},recognize:function(re){var he=k({},re);if(!F(this.options.enable,[this,he])){this.reset(),this.state=vt;return}this.state&(mt|It|vt)&&(this.state=Bt),this.state=this.process(he),this.state&(dt|At|_t|It)&&this.tryEmit(he)},process:function(re){},getTouchAction:function(){},reset:function(){}};function Dt(re){return re&It?"cancel":re&_t?"end":re&At?"move":re&dt?"start":""}function Ft(re){return re==X?"down":re==q?"up":re==y?"left":re==O?"right":""}function Zn(re,he){var me=he.manager;return me?me.get(re):re}function Ir(){yt.apply(this,arguments)}B(Ir,yt,{defaults:{pointers:1},attrTest:function(re){var he=this.options.pointers;return he===0||re.pointers.length===he},process:function(re){var he=this.state,me=re.eventType,Be=he&(dt|At),We=this.attrTest(re);return Be&&(me&Z||!We)?he|It:Be||We?me&K?he|_t:he&dt?he|At:dt:vt}});function ku(){Ir.apply(this,arguments),this.pX=null,this.pY=null}B(ku,Ir,{defaults:{event:"pan",threshold:10,pointers:1,direction:j},getTouchAction:function(){var re=this.options.direction,he=[];return re&D&&he.push(Ot),re&N&&he.push(Tt),he},directionTest:function(re){var he=this.options,me=!0,Be=re.distance,We=re.direction,Ge=re.deltaX,bt=re.deltaY;return We&he.direction||(he.direction&D?(We=Ge===0?b:Ge<0?y:O,me=Ge!=this.pX,Be=Math.abs(re.deltaX)):(We=bt===0?b:bt<0?q:X,me=bt!=this.pY,Be=Math.abs(re.deltaY))),re.direction=We,me&&Be>he.threshold&&We&he.direction},attrTest:function(re){return Ir.prototype.attrTest.call(this,re)&&(this.state&dt||!(this.state&dt)&&this.directionTest(re))},emit:function(re){this.pX=re.deltaX,this.pY=re.deltaY;var he=Ft(re.direction);he&&(re.additionalEvent=this.options.event+he),this._super.emit.call(this,re)}});function Sc(){Ir.apply(this,arguments)}B(Sc,Ir,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[xt]},attrTest:function(re){return this._super.attrTest.call(this,re)&&(Math.abs(re.scale-1)>this.options.threshold||this.state&dt)},emit:function(re){if(re.scale!==1){var he=re.scale<1?"in":"out";re.additionalEvent=this.options.event+he}this._super.emit.call(this,re)}});function xc(){yt.apply(this,arguments),this._timer=null,this._input=null}B(xc,yt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[it]},process:function(re){var he=this.options,me=re.pointers.length===he.pointers,Be=re.distance<he.threshold,We=re.deltaTime>he.time;if(this._input=re,!Be||!me||re.eventType&(K|Z)&&!We)this.reset();else if(re.eventType&E)this.reset(),this._timer=S(function(){this.state=mt,this.tryEmit()},he.time,this);else if(re.eventType&K)return mt;return vt},reset:function(){clearTimeout(this._timer)},emit:function(re){this.state===mt&&(re&&re.eventType&K?this.manager.emit(this.options.event+"up",re):(this._input.timeStamp=M(),this.manager.emit(this.options.event,this._input)))}});function Ec(){Ir.apply(this,arguments)}B(Ec,Ir,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[xt]},attrTest:function(re){return this._super.attrTest.call(this,re)&&(Math.abs(re.rotation)>this.options.threshold||this.state&dt)}});function Rc(){Ir.apply(this,arguments)}B(Rc,Ir,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:D|N,pointers:1},getTouchAction:function(){return ku.prototype.getTouchAction.call(this)},attrTest:function(re){var he=this.options.direction,me;return he&(D|N)?me=re.overallVelocity:he&D?me=re.overallVelocityX:he&N&&(me=re.overallVelocityY),this._super.attrTest.call(this,re)&&he&re.offsetDirection&&re.distance>this.options.threshold&&re.maxPointers==this.options.pointers&&m(me)>this.options.velocity&&re.eventType&K},emit:function(re){var he=Ft(re.offsetDirection);he&&this.manager.emit(this.options.event+he,re),this.manager.emit(this.options.event,re)}});function $u(){yt.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}B($u,yt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[et]},process:function(re){var he=this.options,me=re.pointers.length===he.pointers,Be=re.distance<he.threshold,We=re.deltaTime<he.time;if(this.reset(),re.eventType&E&&this.count===0)return this.failTimeout();if(Be&&We&&me){if(re.eventType!=K)return this.failTimeout();var Ge=this.pTime?re.timeStamp-this.pTime<he.interval:!0,bt=!this.pCenter||fe(this.pCenter,re.center)<he.posThreshold;this.pTime=re.timeStamp,this.pCenter=re.center,!bt||!Ge?this.count=1:this.count+=1,this._input=re;var ar=this.count%he.taps;if(ar===0)return this.hasRequireFailures()?(this._timer=S(function(){this.state=mt,this.tryEmit()},he.interval,this),dt):mt}return vt},failTimeout:function(){return this._timer=S(function(){this.state=vt},this.options.interval,this),vt},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==mt&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function pn(re,he){return he=he||{},he.recognizers=W(he.recognizers,pn.defaults.preset),new Ac(re,he)}pn.VERSION="2.0.7",pn.defaults={domEvents:!1,touchAction:Fe,enable:!0,inputTarget:null,inputClass:null,preset:[[Ec,{enable:!1}],[Sc,{enable:!1},["rotate"]],[Rc,{direction:D}],[ku,{direction:D},["swipe"]],[$u],[$u,{event:"doubletap",taps:2},["tap"]],[xc]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var C4=1,im=2;function Ac(re,he){this.options=k({},pn.defaults,he||{}),this.options.inputTarget=this.options.inputTarget||re,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=re,this.input=ne(this),this.touchAction=new kt(this,this.options.touchAction),nm(this,!0),C(this.options.recognizers,function(me){var Be=this.add(new me[0](me[1]));me[2]&&Be.recognizeWith(me[2]),me[3]&&Be.requireFailure(me[3])},this)}Ac.prototype={set:function(re){return k(this.options,re),re.touchAction&&this.touchAction.update(),re.inputTarget&&(this.input.destroy(),this.input.target=re.inputTarget,this.input.init()),this},stop:function(re){this.session.stopped=re?im:C4},recognize:function(re){var he=this.session;if(!he.stopped){this.touchAction.preventDefaults(re);var me,Be=this.recognizers,We=he.curRecognizer;(!We||We&&We.state&mt)&&(We=he.curRecognizer=null);for(var Ge=0;Ge<Be.length;)me=Be[Ge],he.stopped!==im&&(!We||me==We||me.canRecognizeWith(We))?me.recognize(re):me.reset(),!We&&me.state&(dt|At|_t)&&(We=he.curRecognizer=me),Ge++}},get:function(re){if(re instanceof yt)return re;for(var he=this.recognizers,me=0;me<he.length;me++)if(he[me].options.event==re)return he[me];return null},add:function(re){if(R(re,"add",this))return this;var he=this.get(re.options.event);return he&&this.remove(he),this.recognizers.push(re),re.manager=this,this.touchAction.update(),re},remove:function(re){if(R(re,"remove",this))return this;if(re=this.get(re),re){var he=this.recognizers,me=_(he,re);me!==-1&&(he.splice(me,1),this.touchAction.update())}return this},on:function(re,he){if(re!==a&&he!==a){var me=this.handlers;return C(oe(re),function(Be){me[Be]=me[Be]||[],me[Be].push(he)}),this}},off:function(re,he){if(re!==a){var me=this.handlers;return C(oe(re),function(Be){he?me[Be]&&me[Be].splice(_(me[Be],he),1):delete me[Be]}),this}},emit:function(re,he){this.options.domEvents&&B4(re,he);var me=this.handlers[re]&&this.handlers[re].slice();if(!(!me||!me.length)){he.type=re,he.preventDefault=function(){he.srcEvent.preventDefault()};for(var Be=0;Be<me.length;)me[Be](he),Be++}},destroy:function(){this.element&&nm(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function nm(re,he){var me=re.element;if(me.style){var Be;C(re.options.cssProps,function(We,Ge){Be=l(me.style,Ge),he?(re.oldCssProps[Be]=me.style[Be],me.style[Be]=We):me.style[Be]=re.oldCssProps[Be]||""}),he||(re.oldCssProps={})}}function B4(re,he){var me=r.createEvent("Event");me.initEvent(re,!0,!0),me.gesture=he,he.target.dispatchEvent(me)}k(pn,{INPUT_START:E,INPUT_MOVE:U,INPUT_END:K,INPUT_CANCEL:Z,STATE_POSSIBLE:Bt,STATE_BEGAN:dt,STATE_CHANGED:At,STATE_ENDED:_t,STATE_RECOGNIZED:mt,STATE_CANCELLED:It,STATE_FAILED:vt,DIRECTION_NONE:b,DIRECTION_LEFT:y,DIRECTION_RIGHT:O,DIRECTION_UP:q,DIRECTION_DOWN:X,DIRECTION_HORIZONTAL:D,DIRECTION_VERTICAL:N,DIRECTION_ALL:j,Manager:Ac,Input:te,TouchAction:kt,TouchInput:Oe,MouseInput:qe,PointerEventInput:xe,TouchMouseInput:$e,SingleTouchInput:at,Recognizer:yt,AttrRecognizer:Ir,Tap:$u,Pan:ku,Swipe:Rc,Pinch:Sc,Rotate:Ec,Press:xc,on:Y,off:ie,each:C,merge:I,extend:L,assign:k,inherit:B,bindFn:H,prefixed:l});var L4=typeof t<"u"?t:typeof self<"u"?self:{};L4.Hammer=pn,typeof a=="function"&&a.amd?a(function(){return pn}):e.exports?e.exports=pn:t[i]=pn})(window,document,"Hammer")})(Y6);var gD=Y6.exports;const jV=Lo(gD);var Z6={exports:{}};const mD=tv(VR);(function(e,t){(function(i,a){e.exports=a(mD,N4)})(typeof self<"u"?self:Ye,function(r,i){return function(a){var n={};function u(c){if(n[c])return n[c].exports;var d=n[c]={i:c,l:!1,exports:{}};return a[c].call(d.exports,d,d.exports,u),d.l=!0,d.exports}return u.m=a,u.c=n,u.d=function(c,d,m){u.o(c,d)||Object.defineProperty(c,d,{enumerable:!0,get:m})},u.r=function(c){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},u.t=function(c,d){if(d&1&&(c=u(c)),d&8||d&4&&typeof c=="object"&&c&&c.__esModule)return c;var m=Object.create(null);if(u.r(m),Object.defineProperty(m,"default",{enumerable:!0,value:c}),d&2&&typeof c!="string")for(var M in c)u.d(m,M,function(S){return c[S]}.bind(null,M));return m},u.n=function(c){var d=c&&c.__esModule?function(){return c.default}:function(){return c};return u.d(d,"a",d),d},u.o=function(c,d){return Object.prototype.hasOwnProperty.call(c,d)},u.p="",u(u.s="fb15")}({"00ee":function(a,n,u){var c=u("b622"),d=c("toStringTag"),m={};m[d]="z",a.exports=String(m)==="[object z]"},"0366":function(a,n,u){var c=u("1c0b");a.exports=function(d,m,M){if(c(d),m===void 0)return d;switch(M){case 0:return function(){return d.call(m)};case 1:return function(S){return d.call(m,S)};case 2:return function(S,R){return d.call(m,S,R)};case 3:return function(S,R,C){return d.call(m,S,R,C)}}return function(){return d.apply(m,arguments)}}},"057f":function(a,n,u){var c=u("fc6a"),d=u("241c").f,m={}.toString,M=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],S=function(R){try{return d(R)}catch{return M.slice()}};a.exports.f=function(C){return M&&m.call(C)=="[object Window]"?S(C):d(c(C))}},"06cf":function(a,n,u){var c=u("83ab"),d=u("d1e7"),m=u("5c6c"),M=u("fc6a"),S=u("c04e"),R=u("5135"),C=u("0cfb"),P=Object.getOwnPropertyDescriptor;n.f=c?P:function(L,I){if(L=M(L),I=S(I,!0),C)try{return P(L,I)}catch{}if(R(L,I))return m(!d.f.call(L,I),L[I])}},"0cfb":function(a,n,u){var c=u("83ab"),d=u("d039"),m=u("cc12");a.exports=!c&&!d(function(){return Object.defineProperty(m("div"),"a",{get:function(){return 7}}).a!=7})},"13d5":function(a,n,u){var c=u("23e7"),d=u("d58f").left,m=u("a640"),M=u("ae40"),S=m("reduce"),R=M("reduce",{1:0});c({target:"Array",proto:!0,forced:!S||!R},{reduce:function(P){return d(this,P,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(a,n,u){var c=u("c6b6"),d=u("9263");a.exports=function(m,M){var S=m.exec;if(typeof S=="function"){var R=S.call(m,M);if(typeof R!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return R}if(c(m)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return d.call(m,M)}},"159b":function(a,n,u){var c=u("da84"),d=u("fdbc"),m=u("17c2"),M=u("9112");for(var S in d){var R=c[S],C=R&&R.prototype;if(C&&C.forEach!==m)try{M(C,"forEach",m)}catch{C.forEach=m}}},"17c2":function(a,n,u){var c=u("b727").forEach,d=u("a640"),m=u("ae40"),M=d("forEach"),S=m("forEach");a.exports=!M||!S?function(C){return c(this,C,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(a,n,u){var c=u("d066");a.exports=c("document","documentElement")},"1c0b":function(a,n){a.exports=function(u){if(typeof u!="function")throw TypeError(String(u)+" is not a function");return u}},"1c7e":function(a,n,u){var c=u("b622"),d=c("iterator"),m=!1;try{var M=0,S={next:function(){return{done:!!M++}},return:function(){m=!0}};S[d]=function(){return this},Array.from(S,function(){throw 2})}catch{}a.exports=function(R,C){if(!C&&!m)return!1;var P=!1;try{var k={};k[d]=function(){return{next:function(){return{done:P=!0}}}},R(k)}catch{}return P}},"1d80":function(a,n){a.exports=function(u){if(u==null)throw TypeError("Can't call method on "+u);return u}},"1dde":function(a,n,u){var c=u("d039"),d=u("b622"),m=u("2d00"),M=d("species");a.exports=function(S){return m>=51||!c(function(){var R=[],C=R.constructor={};return C[M]=function(){return{foo:1}},R[S](Boolean).foo!==1})}},"23cb":function(a,n,u){var c=u("a691"),d=Math.max,m=Math.min;a.exports=function(M,S){var R=c(M);return R<0?d(R+S,0):m(R,S)}},"23e7":function(a,n,u){var c=u("da84"),d=u("06cf").f,m=u("9112"),M=u("6eeb"),S=u("ce4e"),R=u("e893"),C=u("94ca");a.exports=function(P,k){var L=P.target,I=P.global,B=P.stat,H,F,W,Y,ie,J;if(I?F=c:B?F=c[L]||S(L,{}):F=(c[L]||{}).prototype,F)for(W in k){if(ie=k[W],P.noTargetGet?(J=d(F,W),Y=J&&J.value):Y=F[W],H=C(I?W:L+(B?".":"#")+W,P.forced),!H&&Y!==void 0){if(typeof ie==typeof Y)continue;R(ie,Y)}(P.sham||Y&&Y.sham)&&m(ie,"sham",!0),M(F,W,ie,P)}}},"241c":function(a,n,u){var c=u("ca84"),d=u("7839"),m=d.concat("length","prototype");n.f=Object.getOwnPropertyNames||function(S){return c(S,m)}},"25f0":function(a,n,u){var c=u("6eeb"),d=u("825a"),m=u("d039"),M=u("ad6d"),S="toString",R=RegExp.prototype,C=R[S],P=m(function(){return C.call({source:"a",flags:"b"})!="/a/b"}),k=C.name!=S;(P||k)&&c(RegExp.prototype,S,function(){var I=d(this),B=String(I.source),H=I.flags,F=String(H===void 0&&I instanceof RegExp&&!("flags"in R)?M.call(I):H);return"/"+B+"/"+F},{unsafe:!0})},"2ca0":function(a,n,u){var c=u("23e7"),d=u("06cf").f,m=u("50c4"),M=u("5a34"),S=u("1d80"),R=u("ab13"),C=u("c430"),P="".startsWith,k=Math.min,L=R("startsWith"),I=!C&&!L&&!!function(){var B=d(String.prototype,"startsWith");return B&&!B.writable}();c({target:"String",proto:!0,forced:!I&&!L},{startsWith:function(H){var F=String(S(this));M(H);var W=m(k(arguments.length>1?arguments[1]:void 0,F.length)),Y=String(H);return P?P.call(F,Y,W):F.slice(W,W+Y.length)===Y}})},"2d00":function(a,n,u){var c=u("da84"),d=u("342f"),m=c.process,M=m&&m.versions,S=M&&M.v8,R,C;S?(R=S.split("."),C=R[0]+R[1]):d&&(R=d.match(/Edge\/(\d+)/),(!R||R[1]>=74)&&(R=d.match(/Chrome\/(\d+)/),R&&(C=R[1]))),a.exports=C&&+C},"342f":function(a,n,u){var c=u("d066");a.exports=c("navigator","userAgent")||""},"35a1":function(a,n,u){var c=u("f5df"),d=u("3f8c"),m=u("b622"),M=m("iterator");a.exports=function(S){if(S!=null)return S[M]||S["@@iterator"]||d[c(S)]}},"37e8":function(a,n,u){var c=u("83ab"),d=u("9bf2"),m=u("825a"),M=u("df75");a.exports=c?Object.defineProperties:function(R,C){m(R);for(var P=M(C),k=P.length,L=0,I;k>L;)d.f(R,I=P[L++],C[I]);return R}},"3bbe":function(a,n,u){var c=u("861d");a.exports=function(d){if(!c(d)&&d!==null)throw TypeError("Can't set "+String(d)+" as a prototype");return d}},"3ca3":function(a,n,u){var c=u("6547").charAt,d=u("69f3"),m=u("7dd0"),M="String Iterator",S=d.set,R=d.getterFor(M);m(String,"String",function(C){S(this,{type:M,string:String(C),index:0})},function(){var P=R(this),k=P.string,L=P.index,I;return L>=k.length?{value:void 0,done:!0}:(I=c(k,L),P.index+=I.length,{value:I,done:!1})})},"3f8c":function(a,n){a.exports={}},4160:function(a,n,u){var c=u("23e7"),d=u("17c2");c({target:"Array",proto:!0,forced:[].forEach!=d},{forEach:d})},"428f":function(a,n,u){var c=u("da84");a.exports=c},"44ad":function(a,n,u){var c=u("d039"),d=u("c6b6"),m="".split;a.exports=c(function(){return!Object("z").propertyIsEnumerable(0)})?function(M){return d(M)=="String"?m.call(M,""):Object(M)}:Object},"44d2":function(a,n,u){var c=u("b622"),d=u("7c73"),m=u("9bf2"),M=c("unscopables"),S=Array.prototype;S[M]==null&&m.f(S,M,{configurable:!0,value:d(null)}),a.exports=function(R){S[M][R]=!0}},"44e7":function(a,n,u){var c=u("861d"),d=u("c6b6"),m=u("b622"),M=m("match");a.exports=function(S){var R;return c(S)&&((R=S[M])!==void 0?!!R:d(S)=="RegExp")}},4930:function(a,n,u){var c=u("d039");a.exports=!!Object.getOwnPropertySymbols&&!c(function(){return!String(Symbol())})},"4d64":function(a,n,u){var c=u("fc6a"),d=u("50c4"),m=u("23cb"),M=function(S){return function(R,C,P){var k=c(R),L=d(k.length),I=m(P,L),B;if(S&&C!=C){for(;L>I;)if(B=k[I++],B!=B)return!0}else for(;L>I;I++)if((S||I in k)&&k[I]===C)return S||I||0;return!S&&-1}};a.exports={includes:M(!0),indexOf:M(!1)}},"4de4":function(a,n,u){var c=u("23e7"),d=u("b727").filter,m=u("1dde"),M=u("ae40"),S=m("filter"),R=M("filter");c({target:"Array",proto:!0,forced:!S||!R},{filter:function(P){return d(this,P,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(a,n,u){var c=u("0366"),d=u("7b0b"),m=u("9bdd"),M=u("e95a"),S=u("50c4"),R=u("8418"),C=u("35a1");a.exports=function(k){var L=d(k),I=typeof this=="function"?this:Array,B=arguments.length,H=B>1?arguments[1]:void 0,F=H!==void 0,W=C(L),Y=0,ie,J,V,oe,_,o;if(F&&(H=c(H,B>2?arguments[2]:void 0,2)),W!=null&&!(I==Array&&M(W)))for(oe=W.call(L),_=oe.next,J=new I;!(V=_.call(oe)).done;Y++)o=F?m(oe,H,[V.value,Y],!0):V.value,R(J,Y,o);else for(ie=S(L.length),J=new I(ie);ie>Y;Y++)o=F?H(L[Y],Y):L[Y],R(J,Y,o);return J.length=Y,J}},"4fad":function(a,n,u){var c=u("23e7"),d=u("6f53").entries;c({target:"Object",stat:!0},{entries:function(M){return d(M)}})},"50c4":function(a,n,u){var c=u("a691"),d=Math.min;a.exports=function(m){return m>0?d(c(m),9007199254740991):0}},5135:function(a,n){var u={}.hasOwnProperty;a.exports=function(c,d){return u.call(c,d)}},5319:function(a,n,u){var c=u("d784"),d=u("825a"),m=u("7b0b"),M=u("50c4"),S=u("a691"),R=u("1d80"),C=u("8aa5"),P=u("14c3"),k=Math.max,L=Math.min,I=Math.floor,B=/\$([$&'`]|\d\d?|<[^>]*>)/g,H=/\$([$&'`]|\d\d?)/g,F=function(W){return W===void 0?W:String(W)};c("replace",2,function(W,Y,ie,J){var V=J.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,oe=J.REPLACE_KEEPS_$0,_=V?"$":"$0";return[function(l,h){var p=R(this),w=l==null?void 0:l[W];return w!==void 0?w.call(l,p,h):Y.call(String(p),l,h)},function(f,l){if(!V&&oe||typeof l=="string"&&l.indexOf(_)===-1){var h=ie(Y,f,this,l);if(h.done)return h.value}var p=d(f),w=String(this),x=typeof l=="function";x||(l=String(l));var g=p.global;if(g){var s=p.unicode;p.lastIndex=0}for(var v=[];;){var T=P(p,w);if(T===null||(v.push(T),!g))break;var $=String(T[0]);$===""&&(p.lastIndex=C(w,M(p.lastIndex),s))}for(var G="",ee=0,A=0;A<v.length;A++){T=v[A];for(var E=String(T[0]),U=k(L(S(T.index),w.length),0),K=[],Z=1;Z<T.length;Z++)K.push(F(T[Z]));var b=T.groups;if(x){var y=[E].concat(K,U,w);b!==void 0&&y.push(b);var O=String(l.apply(void 0,y))}else O=o(E,w,U,K,b,l);U>=ee&&(G+=w.slice(ee,U)+O,ee=U+E.length)}return G+w.slice(ee)}];function o(f,l,h,p,w,x){var g=h+f.length,s=p.length,v=H;return w!==void 0&&(w=m(w),v=B),Y.call(x,v,function(T,$){var G;switch($.charAt(0)){case"$":return"$";case"&":return f;case"`":return l.slice(0,h);case"'":return l.slice(g);case"<":G=w[$.slice(1,-1)];break;default:var ee=+$;if(ee===0)return T;if(ee>s){var A=I(ee/10);return A===0?T:A<=s?p[A-1]===void 0?$.charAt(1):p[A-1]+$.charAt(1):T}G=p[ee-1]}return G===void 0?"":G})}})},5692:function(a,n,u){var c=u("c430"),d=u("c6cd");(a.exports=function(m,M){return d[m]||(d[m]=M!==void 0?M:{})})("versions",[]).push({version:"3.6.5",mode:c?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(a,n,u){var c=u("d066"),d=u("241c"),m=u("7418"),M=u("825a");a.exports=c("Reflect","ownKeys")||function(R){var C=d.f(M(R)),P=m.f;return P?C.concat(P(R)):C}},"5a34":function(a,n,u){var c=u("44e7");a.exports=function(d){if(c(d))throw TypeError("The method doesn't accept regular expressions");return d}},"5c6c":function(a,n){a.exports=function(u,c){return{enumerable:!(u&1),configurable:!(u&2),writable:!(u&4),value:c}}},"5db7":function(a,n,u){var c=u("23e7"),d=u("a2bf"),m=u("7b0b"),M=u("50c4"),S=u("1c0b"),R=u("65f0");c({target:"Array",proto:!0},{flatMap:function(P){var k=m(this),L=M(k.length),I;return S(P),I=R(k,0),I.length=d(I,k,k,L,0,1,P,arguments.length>1?arguments[1]:void 0),I}})},6547:function(a,n,u){var c=u("a691"),d=u("1d80"),m=function(M){return function(S,R){var C=String(d(S)),P=c(R),k=C.length,L,I;return P<0||P>=k?M?"":void 0:(L=C.charCodeAt(P),L<55296||L>56319||P+1===k||(I=C.charCodeAt(P+1))<56320||I>57343?M?C.charAt(P):L:M?C.slice(P,P+2):(L-55296<<10)+(I-56320)+65536)}};a.exports={codeAt:m(!1),charAt:m(!0)}},"65f0":function(a,n,u){var c=u("861d"),d=u("e8b5"),m=u("b622"),M=m("species");a.exports=function(S,R){var C;return d(S)&&(C=S.constructor,typeof C=="function"&&(C===Array||d(C.prototype))?C=void 0:c(C)&&(C=C[M],C===null&&(C=void 0))),new(C===void 0?Array:C)(R===0?0:R)}},"69f3":function(a,n,u){var c=u("7f9a"),d=u("da84"),m=u("861d"),M=u("9112"),S=u("5135"),R=u("f772"),C=u("d012"),P=d.WeakMap,k,L,I,B=function(V){return I(V)?L(V):k(V,{})},H=function(V){return function(oe){var _;if(!m(oe)||(_=L(oe)).type!==V)throw TypeError("Incompatible receiver, "+V+" required");return _}};if(c){var F=new P,W=F.get,Y=F.has,ie=F.set;k=function(V,oe){return ie.call(F,V,oe),oe},L=function(V){return W.call(F,V)||{}},I=function(V){return Y.call(F,V)}}else{var J=R("state");C[J]=!0,k=function(V,oe){return M(V,J,oe),oe},L=function(V){return S(V,J)?V[J]:{}},I=function(V){return S(V,J)}}a.exports={set:k,get:L,has:I,enforce:B,getterFor:H}},"6eeb":function(a,n,u){var c=u("da84"),d=u("9112"),m=u("5135"),M=u("ce4e"),S=u("8925"),R=u("69f3"),C=R.get,P=R.enforce,k=String(String).split("String");(a.exports=function(L,I,B,H){var F=H?!!H.unsafe:!1,W=H?!!H.enumerable:!1,Y=H?!!H.noTargetGet:!1;if(typeof B=="function"&&(typeof I=="string"&&!m(B,"name")&&d(B,"name",I),P(B).source=k.join(typeof I=="string"?I:"")),L===c){W?L[I]=B:M(I,B);return}else F?!Y&&L[I]&&(W=!0):delete L[I];W?L[I]=B:d(L,I,B)})(Function.prototype,"toString",function(){return typeof this=="function"&&C(this).source||S(this)})},"6f53":function(a,n,u){var c=u("83ab"),d=u("df75"),m=u("fc6a"),M=u("d1e7").f,S=function(R){return function(C){for(var P=m(C),k=d(P),L=k.length,I=0,B=[],H;L>I;)H=k[I++],(!c||M.call(P,H))&&B.push(R?[H,P[H]]:P[H]);return B}};a.exports={entries:S(!0),values:S(!1)}},"73d9":function(a,n,u){var c=u("44d2");c("flatMap")},7418:function(a,n){n.f=Object.getOwnPropertySymbols},"746f":function(a,n,u){var c=u("428f"),d=u("5135"),m=u("e538"),M=u("9bf2").f;a.exports=function(S){var R=c.Symbol||(c.Symbol={});d(R,S)||M(R,S,{value:m.f(S)})}},7839:function(a,n){a.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(a,n,u){var c=u("1d80");a.exports=function(d){return Object(c(d))}},"7c73":function(a,n,u){var c=u("825a"),d=u("37e8"),m=u("7839"),M=u("d012"),S=u("1be4"),R=u("cc12"),C=u("f772"),P=">",k="<",L="prototype",I="script",B=C("IE_PROTO"),H=function(){},F=function(V){return k+I+P+V+k+"/"+I+P},W=function(V){V.write(F("")),V.close();var oe=V.parentWindow.Object;return V=null,oe},Y=function(){var V=R("iframe"),oe="java"+I+":",_;return V.style.display="none",S.appendChild(V),V.src=String(oe),_=V.contentWindow.document,_.open(),_.write(F("document.F=Object")),_.close(),_.F},ie,J=function(){try{ie=document.domain&&new ActiveXObject("htmlfile")}catch{}J=ie?W(ie):Y();for(var V=m.length;V--;)delete J[L][m[V]];return J()};M[B]=!0,a.exports=Object.create||function(oe,_){var o;return oe!==null?(H[L]=c(oe),o=new H,H[L]=null,o[B]=oe):o=J(),_===void 0?o:d(o,_)}},"7dd0":function(a,n,u){var c=u("23e7"),d=u("9ed3"),m=u("e163"),M=u("d2bb"),S=u("d44e"),R=u("9112"),C=u("6eeb"),P=u("b622"),k=u("c430"),L=u("3f8c"),I=u("ae93"),B=I.IteratorPrototype,H=I.BUGGY_SAFARI_ITERATORS,F=P("iterator"),W="keys",Y="values",ie="entries",J=function(){return this};a.exports=function(V,oe,_,o,f,l,h){d(_,oe,o);var p=function(A){if(A===f&&v)return v;if(!H&&A in g)return g[A];switch(A){case W:return function(){return new _(this,A)};case Y:return function(){return new _(this,A)};case ie:return function(){return new _(this,A)}}return function(){return new _(this)}},w=oe+" Iterator",x=!1,g=V.prototype,s=g[F]||g["@@iterator"]||f&&g[f],v=!H&&s||p(f),T=oe=="Array"&&g.entries||s,$,G,ee;if(T&&($=m(T.call(new V)),B!==Object.prototype&&$.next&&(!k&&m($)!==B&&(M?M($,B):typeof $[F]!="function"&&R($,F,J)),S($,w,!0,!0),k&&(L[w]=J))),f==Y&&s&&s.name!==Y&&(x=!0,v=function(){return s.call(this)}),(!k||h)&&g[F]!==v&&R(g,F,v),L[oe]=v,f)if(G={values:p(Y),keys:l?v:p(W),entries:p(ie)},h)for(ee in G)(H||x||!(ee in g))&&C(g,ee,G[ee]);else c({target:oe,proto:!0,forced:H||x},G);return G}},"7f9a":function(a,n,u){var c=u("da84"),d=u("8925"),m=c.WeakMap;a.exports=typeof m=="function"&&/native code/.test(d(m))},"825a":function(a,n,u){var c=u("861d");a.exports=function(d){if(!c(d))throw TypeError(String(d)+" is not an object");return d}},"83ab":function(a,n,u){var c=u("d039");a.exports=!c(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},8418:function(a,n,u){var c=u("c04e"),d=u("9bf2"),m=u("5c6c");a.exports=function(M,S,R){var C=c(S);C in M?d.f(M,C,m(0,R)):M[C]=R}},"861d":function(a,n){a.exports=function(u){return typeof u=="object"?u!==null:typeof u=="function"}},8875:function(a,n,u){var c,d,m;(function(M,S){d=[],c=S,m=typeof c=="function"?c.apply(n,d):c,m!==void 0&&(a.exports=m)})(typeof self<"u"?self:this,function(){function M(){var S=Object.getOwnPropertyDescriptor(document,"currentScript");if(!S&&"currentScript"in document&&document.currentScript||S&&S.get!==M&&document.currentScript)return document.currentScript;try{throw new Error}catch(ie){var R=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,C=/@([^@]*):(\d+):(\d+)\s*$/ig,P=R.exec(ie.stack)||C.exec(ie.stack),k=P&&P[1]||!1,L=P&&P[2]||!1,I=document.location.href.replace(document.location.hash,""),B,H,F,W=document.getElementsByTagName("script");k===I&&(B=document.documentElement.outerHTML,H=new RegExp("(?:[^\\n]+?\\n){0,"+(L-2)+"}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*","i"),F=B.replace(H,"$1").trim());for(var Y=0;Y<W.length;Y++)if(W[Y].readyState==="interactive"||W[Y].src===k||k===I&&W[Y].innerHTML&&W[Y].innerHTML.trim()===F)return W[Y];return null}}return M})},8925:function(a,n,u){var c=u("c6cd"),d=Function.toString;typeof c.inspectSource!="function"&&(c.inspectSource=function(m){return d.call(m)}),a.exports=c.inspectSource},"8aa5":function(a,n,u){var c=u("6547").charAt;a.exports=function(d,m,M){return m+(M?c(d,m).length:1)}},"8bbf":function(a,n){a.exports=r},"90e3":function(a,n){var u=0,c=Math.random();a.exports=function(d){return"Symbol("+String(d===void 0?"":d)+")_"+(++u+c).toString(36)}},9112:function(a,n,u){var c=u("83ab"),d=u("9bf2"),m=u("5c6c");a.exports=c?function(M,S,R){return d.f(M,S,m(1,R))}:function(M,S,R){return M[S]=R,M}},9263:function(a,n,u){var c=u("ad6d"),d=u("9f7f"),m=RegExp.prototype.exec,M=String.prototype.replace,S=m,R=function(){var L=/a/,I=/b*/g;return m.call(L,"a"),m.call(I,"a"),L.lastIndex!==0||I.lastIndex!==0}(),C=d.UNSUPPORTED_Y||d.BROKEN_CARET,P=/()??/.exec("")[1]!==void 0,k=R||P||C;k&&(S=function(I){var B=this,H,F,W,Y,ie=C&&B.sticky,J=c.call(B),V=B.source,oe=0,_=I;return ie&&(J=J.replace("y",""),J.indexOf("g")===-1&&(J+="g"),_=String(I).slice(B.lastIndex),B.lastIndex>0&&(!B.multiline||B.multiline&&I[B.lastIndex-1]!==`
-`)&&(V="(?: "+V+")",_=" "+_,oe++),F=new RegExp("^(?:"+V+")",J)),P&&(F=new RegExp("^"+V+"$(?!\\s)",J)),R&&(H=B.lastIndex),W=m.call(ie?F:B,_),ie?W?(W.input=W.input.slice(oe),W[0]=W[0].slice(oe),W.index=B.lastIndex,B.lastIndex+=W[0].length):B.lastIndex=0:R&&W&&(B.lastIndex=B.global?W.index+W[0].length:H),P&&W&&W.length>1&&M.call(W[0],F,function(){for(Y=1;Y<arguments.length-2;Y++)arguments[Y]===void 0&&(W[Y]=void 0)}),W}),a.exports=S},"94ca":function(a,n,u){var c=u("d039"),d=/#|\.prototype\./,m=function(P,k){var L=S[M(P)];return L==C?!0:L==R?!1:typeof k=="function"?c(k):!!k},M=m.normalize=function(P){return String(P).replace(d,".").toLowerCase()},S=m.data={},R=m.NATIVE="N",C=m.POLYFILL="P";a.exports=m},"99af":function(a,n,u){var c=u("23e7"),d=u("d039"),m=u("e8b5"),M=u("861d"),S=u("7b0b"),R=u("50c4"),C=u("8418"),P=u("65f0"),k=u("1dde"),L=u("b622"),I=u("2d00"),B=L("isConcatSpreadable"),H=9007199254740991,F="Maximum allowed index exceeded",W=I>=51||!d(function(){var V=[];return V[B]=!1,V.concat()[0]!==V}),Y=k("concat"),ie=function(V){if(!M(V))return!1;var oe=V[B];return oe!==void 0?!!oe:m(V)},J=!W||!Y;c({target:"Array",proto:!0,forced:J},{concat:function(oe){var _=S(this),o=P(_,0),f=0,l,h,p,w,x;for(l=-1,p=arguments.length;l<p;l++)if(x=l===-1?_:arguments[l],ie(x)){if(w=R(x.length),f+w>H)throw TypeError(F);for(h=0;h<w;h++,f++)h in x&&C(o,f,x[h])}else{if(f>=H)throw TypeError(F);C(o,f++,x)}return o.length=f,o}})},"9bdd":function(a,n,u){var c=u("825a");a.exports=function(d,m,M,S){try{return S?m(c(M)[0],M[1]):m(M)}catch(C){var R=d.return;throw R!==void 0&&c(R.call(d)),C}}},"9bf2":function(a,n,u){var c=u("83ab"),d=u("0cfb"),m=u("825a"),M=u("c04e"),S=Object.defineProperty;n.f=c?S:function(C,P,k){if(m(C),P=M(P,!0),m(k),d)try{return S(C,P,k)}catch{}if("get"in k||"set"in k)throw TypeError("Accessors not supported");return"value"in k&&(C[P]=k.value),C}},"9ed3":function(a,n,u){var c=u("ae93").IteratorPrototype,d=u("7c73"),m=u("5c6c"),M=u("d44e"),S=u("3f8c"),R=function(){return this};a.exports=function(C,P,k){var L=P+" Iterator";return C.prototype=d(c,{next:m(1,k)}),M(C,L,!1,!0),S[L]=R,C}},"9f7f":function(a,n,u){var c=u("d039");function d(m,M){return RegExp(m,M)}n.UNSUPPORTED_Y=c(function(){var m=d("a","y");return m.lastIndex=2,m.exec("abcd")!=null}),n.BROKEN_CARET=c(function(){var m=d("^r","gy");return m.lastIndex=2,m.exec("str")!=null})},a2bf:function(a,n,u){var c=u("e8b5"),d=u("50c4"),m=u("0366"),M=function(S,R,C,P,k,L,I,B){for(var H=k,F=0,W=I?m(I,B,3):!1,Y;F<P;){if(F in C){if(Y=W?W(C[F],F,R):C[F],L>0&&c(Y))H=M(S,R,Y,d(Y.length),H,L-1)-1;else{if(H>=9007199254740991)throw TypeError("Exceed the acceptable array length");S[H]=Y}H++}F++}return H};a.exports=M},a352:function(a,n){a.exports=i},a434:function(a,n,u){var c=u("23e7"),d=u("23cb"),m=u("a691"),M=u("50c4"),S=u("7b0b"),R=u("65f0"),C=u("8418"),P=u("1dde"),k=u("ae40"),L=P("splice"),I=k("splice",{ACCESSORS:!0,0:0,1:2}),B=Math.max,H=Math.min,F=9007199254740991,W="Maximum allowed length exceeded";c({target:"Array",proto:!0,forced:!L||!I},{splice:function(ie,J){var V=S(this),oe=M(V.length),_=d(ie,oe),o=arguments.length,f,l,h,p,w,x;if(o===0?f=l=0:o===1?(f=0,l=oe-_):(f=o-2,l=H(B(m(J),0),oe-_)),oe+f-l>F)throw TypeError(W);for(h=R(V,l),p=0;p<l;p++)w=_+p,w in V&&C(h,p,V[w]);if(h.length=l,f<l){for(p=_;p<oe-l;p++)w=p+l,x=p+f,w in V?V[x]=V[w]:delete V[x];for(p=oe;p>oe-l+f;p--)delete V[p-1]}else if(f>l)for(p=oe-l;p>_;p--)w=p+l-1,x=p+f-1,w in V?V[x]=V[w]:delete V[x];for(p=0;p<f;p++)V[p+_]=arguments[p+2];return V.length=oe-l+f,h}})},a4d3:function(a,n,u){var c=u("23e7"),d=u("da84"),m=u("d066"),M=u("c430"),S=u("83ab"),R=u("4930"),C=u("fdbf"),P=u("d039"),k=u("5135"),L=u("e8b5"),I=u("861d"),B=u("825a"),H=u("7b0b"),F=u("fc6a"),W=u("c04e"),Y=u("5c6c"),ie=u("7c73"),J=u("df75"),V=u("241c"),oe=u("057f"),_=u("7418"),o=u("06cf"),f=u("9bf2"),l=u("d1e7"),h=u("9112"),p=u("6eeb"),w=u("5692"),x=u("f772"),g=u("d012"),s=u("90e3"),v=u("b622"),T=u("e538"),$=u("746f"),G=u("d44e"),ee=u("69f3"),A=u("b727").forEach,E=x("hidden"),U="Symbol",K="prototype",Z=v("toPrimitive"),b=ee.set,y=ee.getterFor(U),O=Object[K],q=d.Symbol,X=m("JSON","stringify"),D=o.f,N=f.f,j=oe.f,z=l.f,se=w("symbols"),te=w("op-symbols"),ne=w("string-to-symbol-registry"),Ee=w("symbol-to-string-registry"),Q=w("wks"),ue=d.QObject,le=!ue||!ue[K]||!ue[K].findChild,ce=S&&P(function(){return ie(N({},"a",{get:function(){return N(this,"a",{value:7}).a}})).a!=7})?function(qe,ye,_e){var Ve=D(O,ye);Ve&&delete O[ye],N(qe,ye,_e),Ve&&qe!==O&&N(O,ye,Ve)}:N,pe=function(qe,ye){var _e=se[qe]=ie(q[K]);return b(_e,{type:U,tag:qe,description:ye}),S||(_e.description=ye),_e},de=C?function(qe){return typeof qe=="symbol"}:function(qe){return Object(qe)instanceof q},ae=function(ye,_e,Ve){ye===O&&ae(te,_e,Ve),B(ye);var ge=W(_e,!0);return B(Ve),k(se,ge)?(Ve.enumerable?(k(ye,E)&&ye[E][ge]&&(ye[E][ge]=!1),Ve=ie(Ve,{enumerable:Y(0,!1)})):(k(ye,E)||N(ye,E,Y(1,{})),ye[E][ge]=!0),ce(ye,ge,Ve)):N(ye,ge,Ve)},fe=function(ye,_e){B(ye);var Ve=F(_e),ge=J(Ve).concat(be(Ve));return A(ge,function(xe){(!S||ve.call(Ve,xe))&&ae(ye,xe,Ve[xe])}),ye},Te=function(ye,_e){return _e===void 0?ie(ye):fe(ie(ye),_e)},ve=function(ye){var _e=W(ye,!0),Ve=z.call(this,_e);return this===O&&k(se,_e)&&!k(te,_e)?!1:Ve||!k(this,_e)||!k(se,_e)||k(this,E)&&this[E][_e]?Ve:!0},Me=function(ye,_e){var Ve=F(ye),ge=W(_e,!0);if(!(Ve===O&&k(se,ge)&&!k(te,ge))){var xe=D(Ve,ge);return xe&&k(se,ge)&&!(k(Ve,E)&&Ve[E][ge])&&(xe.enumerable=!0),xe}},Ke=function(ye){var _e=j(F(ye)),Ve=[];return A(_e,function(ge){!k(se,ge)&&!k(g,ge)&&Ve.push(ge)}),Ve},be=function(ye){var _e=ye===O,Ve=j(_e?te:F(ye)),ge=[];return A(Ve,function(xe){k(se,xe)&&(!_e||k(O,xe))&&ge.push(se[xe])}),ge};if(R||(q=function(){if(this instanceof q)throw TypeError("Symbol is not a constructor");var ye=!arguments.length||arguments[0]===void 0?void 0:String(arguments[0]),_e=s(ye),Ve=function(ge){this===O&&Ve.call(te,ge),k(this,E)&&k(this[E],_e)&&(this[E][_e]=!1),ce(this,_e,Y(1,ge))};return S&&le&&ce(O,_e,{configurable:!0,set:Ve}),pe(_e,ye)},p(q[K],"toString",function(){return y(this).tag}),p(q,"withoutSetter",function(qe){return pe(s(qe),qe)}),l.f=ve,f.f=ae,o.f=Me,V.f=oe.f=Ke,_.f=be,T.f=function(qe){return pe(v(qe),qe)},S&&(N(q[K],"description",{configurable:!0,get:function(){return y(this).description}}),M||p(O,"propertyIsEnumerable",ve,{unsafe:!0}))),c({global:!0,wrap:!0,forced:!R,sham:!R},{Symbol:q}),A(J(Q),function(qe){$(qe)}),c({target:U,stat:!0,forced:!R},{for:function(qe){var ye=String(qe);if(k(ne,ye))return ne[ye];var _e=q(ye);return ne[ye]=_e,Ee[_e]=ye,_e},keyFor:function(ye){if(!de(ye))throw TypeError(ye+" is not a symbol");if(k(Ee,ye))return Ee[ye]},useSetter:function(){le=!0},useSimple:function(){le=!1}}),c({target:"Object",stat:!0,forced:!R,sham:!S},{create:Te,defineProperty:ae,defineProperties:fe,getOwnPropertyDescriptor:Me}),c({target:"Object",stat:!0,forced:!R},{getOwnPropertyNames:Ke,getOwnPropertySymbols:be}),c({target:"Object",stat:!0,forced:P(function(){_.f(1)})},{getOwnPropertySymbols:function(ye){return _.f(H(ye))}}),X){var Se=!R||P(function(){var qe=q();return X([qe])!="[null]"||X({a:qe})!="{}"||X(Object(qe))!="{}"});c({target:"JSON",stat:!0,forced:Se},{stringify:function(ye,_e,Ve){for(var ge=[ye],xe=1,Xe;arguments.length>xe;)ge.push(arguments[xe++]);if(Xe=_e,!(!I(_e)&&ye===void 0||de(ye)))return L(_e)||(_e=function(Re,Le){if(typeof Xe=="function"&&(Le=Xe.call(this,Re,Le)),!de(Le))return Le}),ge[1]=_e,X.apply(null,ge)}})}q[K][Z]||h(q[K],Z,q[K].valueOf),G(q,U),g[E]=!0},a630:function(a,n,u){var c=u("23e7"),d=u("4df4"),m=u("1c7e"),M=!m(function(S){Array.from(S)});c({target:"Array",stat:!0,forced:M},{from:d})},a640:function(a,n,u){var c=u("d039");a.exports=function(d,m){var M=[][d];return!!M&&c(function(){M.call(null,m||function(){throw 1},1)})}},a691:function(a,n){var u=Math.ceil,c=Math.floor;a.exports=function(d){return isNaN(d=+d)?0:(d>0?c:u)(d)}},ab13:function(a,n,u){var c=u("b622"),d=c("match");a.exports=function(m){var M=/./;try{"/./"[m](M)}catch{try{return M[d]=!1,"/./"[m](M)}catch{}}return!1}},ac1f:function(a,n,u){var c=u("23e7"),d=u("9263");c({target:"RegExp",proto:!0,forced:/./.exec!==d},{exec:d})},ad6d:function(a,n,u){var c=u("825a");a.exports=function(){var d=c(this),m="";return d.global&&(m+="g"),d.ignoreCase&&(m+="i"),d.multiline&&(m+="m"),d.dotAll&&(m+="s"),d.unicode&&(m+="u"),d.sticky&&(m+="y"),m}},ae40:function(a,n,u){var c=u("83ab"),d=u("d039"),m=u("5135"),M=Object.defineProperty,S={},R=function(C){throw C};a.exports=function(C,P){if(m(S,C))return S[C];P||(P={});var k=[][C],L=m(P,"ACCESSORS")?P.ACCESSORS:!1,I=m(P,0)?P[0]:R,B=m(P,1)?P[1]:void 0;return S[C]=!!k&&!d(function(){if(L&&!c)return!0;var H={length:-1};L?M(H,1,{enumerable:!0,get:R}):H[1]=1,k.call(H,I,B)})}},ae93:function(a,n,u){var c=u("e163"),d=u("9112"),m=u("5135"),M=u("b622"),S=u("c430"),R=M("iterator"),C=!1,P=function(){return this},k,L,I;[].keys&&(I=[].keys(),"next"in I?(L=c(c(I)),L!==Object.prototype&&(k=L)):C=!0),k==null&&(k={}),!S&&!m(k,R)&&d(k,R,P),a.exports={IteratorPrototype:k,BUGGY_SAFARI_ITERATORS:C}},b041:function(a,n,u){var c=u("00ee"),d=u("f5df");a.exports=c?{}.toString:function(){return"[object "+d(this)+"]"}},b0c0:function(a,n,u){var c=u("83ab"),d=u("9bf2").f,m=Function.prototype,M=m.toString,S=/^\s*function ([^ (]*)/,R="name";c&&!(R in m)&&d(m,R,{configurable:!0,get:function(){try{return M.call(this).match(S)[1]}catch{return""}}})},b622:function(a,n,u){var c=u("da84"),d=u("5692"),m=u("5135"),M=u("90e3"),S=u("4930"),R=u("fdbf"),C=d("wks"),P=c.Symbol,k=R?P:P&&P.withoutSetter||M;a.exports=function(L){return m(C,L)||(S&&m(P,L)?C[L]=P[L]:C[L]=k("Symbol."+L)),C[L]}},b64b:function(a,n,u){var c=u("23e7"),d=u("7b0b"),m=u("df75"),M=u("d039"),S=M(function(){m(1)});c({target:"Object",stat:!0,forced:S},{keys:function(C){return m(d(C))}})},b727:function(a,n,u){var c=u("0366"),d=u("44ad"),m=u("7b0b"),M=u("50c4"),S=u("65f0"),R=[].push,C=function(P){var k=P==1,L=P==2,I=P==3,B=P==4,H=P==6,F=P==5||H;return function(W,Y,ie,J){for(var V=m(W),oe=d(V),_=c(Y,ie,3),o=M(oe.length),f=0,l=J||S,h=k?l(W,o):L?l(W,0):void 0,p,w;o>f;f++)if((F||f in oe)&&(p=oe[f],w=_(p,f,V),P)){if(k)h[f]=w;else if(w)switch(P){case 3:return!0;case 5:return p;case 6:return f;case 2:R.call(h,p)}else if(B)return!1}return H?-1:I||B?B:h}};a.exports={forEach:C(0),map:C(1),filter:C(2),some:C(3),every:C(4),find:C(5),findIndex:C(6)}},c04e:function(a,n,u){var c=u("861d");a.exports=function(d,m){if(!c(d))return d;var M,S;if(m&&typeof(M=d.toString)=="function"&&!c(S=M.call(d))||typeof(M=d.valueOf)=="function"&&!c(S=M.call(d))||!m&&typeof(M=d.toString)=="function"&&!c(S=M.call(d)))return S;throw TypeError("Can't convert object to primitive value")}},c430:function(a,n){a.exports=!1},c6b6:function(a,n){var u={}.toString;a.exports=function(c){return u.call(c).slice(8,-1)}},c6cd:function(a,n,u){var c=u("da84"),d=u("ce4e"),m="__core-js_shared__",M=c[m]||d(m,{});a.exports=M},c740:function(a,n,u){var c=u("23e7"),d=u("b727").findIndex,m=u("44d2"),M=u("ae40"),S="findIndex",R=!0,C=M(S);S in[]&&Array(1)[S](function(){R=!1}),c({target:"Array",proto:!0,forced:R||!C},{findIndex:function(k){return d(this,k,arguments.length>1?arguments[1]:void 0)}}),m(S)},c8ba:function(a,n){var u;u=function(){return this}();try{u=u||new Function("return this")()}catch{typeof window=="object"&&(u=window)}a.exports=u},c975:function(a,n,u){var c=u("23e7"),d=u("4d64").indexOf,m=u("a640"),M=u("ae40"),S=[].indexOf,R=!!S&&1/[1].indexOf(1,-0)<0,C=m("indexOf"),P=M("indexOf",{ACCESSORS:!0,1:0});c({target:"Array",proto:!0,forced:R||!C||!P},{indexOf:function(L){return R?S.apply(this,arguments)||0:d(this,L,arguments.length>1?arguments[1]:void 0)}})},ca84:function(a,n,u){var c=u("5135"),d=u("fc6a"),m=u("4d64").indexOf,M=u("d012");a.exports=function(S,R){var C=d(S),P=0,k=[],L;for(L in C)!c(M,L)&&c(C,L)&&k.push(L);for(;R.length>P;)c(C,L=R[P++])&&(~m(k,L)||k.push(L));return k}},caad:function(a,n,u){var c=u("23e7"),d=u("4d64").includes,m=u("44d2"),M=u("ae40"),S=M("indexOf",{ACCESSORS:!0,1:0});c({target:"Array",proto:!0,forced:!S},{includes:function(C){return d(this,C,arguments.length>1?arguments[1]:void 0)}}),m("includes")},cc12:function(a,n,u){var c=u("da84"),d=u("861d"),m=c.document,M=d(m)&&d(m.createElement);a.exports=function(S){return M?m.createElement(S):{}}},ce4e:function(a,n,u){var c=u("da84"),d=u("9112");a.exports=function(m,M){try{d(c,m,M)}catch{c[m]=M}return M}},d012:function(a,n){a.exports={}},d039:function(a,n){a.exports=function(u){try{return!!u()}catch{return!0}}},d066:function(a,n,u){var c=u("428f"),d=u("da84"),m=function(M){return typeof M=="function"?M:void 0};a.exports=function(M,S){return arguments.length<2?m(c[M])||m(d[M]):c[M]&&c[M][S]||d[M]&&d[M][S]}},d1e7:function(a,n,u){var c={}.propertyIsEnumerable,d=Object.getOwnPropertyDescriptor,m=d&&!c.call({1:2},1);n.f=m?function(S){var R=d(this,S);return!!R&&R.enumerable}:c},d28b:function(a,n,u){var c=u("746f");c("iterator")},d2bb:function(a,n,u){var c=u("825a"),d=u("3bbe");a.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var m=!1,M={},S;try{S=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,S.call(M,[]),m=M instanceof Array}catch{}return function(C,P){return c(C),d(P),m?S.call(C,P):C.__proto__=P,C}}():void 0)},d3b7:function(a,n,u){var c=u("00ee"),d=u("6eeb"),m=u("b041");c||d(Object.prototype,"toString",m,{unsafe:!0})},d44e:function(a,n,u){var c=u("9bf2").f,d=u("5135"),m=u("b622"),M=m("toStringTag");a.exports=function(S,R,C){S&&!d(S=C?S:S.prototype,M)&&c(S,M,{configurable:!0,value:R})}},d58f:function(a,n,u){var c=u("1c0b"),d=u("7b0b"),m=u("44ad"),M=u("50c4"),S=function(R){return function(C,P,k,L){c(P);var I=d(C),B=m(I),H=M(I.length),F=R?H-1:0,W=R?-1:1;if(k<2)for(;;){if(F in B){L=B[F],F+=W;break}if(F+=W,R?F<0:H<=F)throw TypeError("Reduce of empty array with no initial value")}for(;R?F>=0:H>F;F+=W)F in B&&(L=P(L,B[F],F,I));return L}};a.exports={left:S(!1),right:S(!0)}},d784:function(a,n,u){u("ac1f");var c=u("6eeb"),d=u("d039"),m=u("b622"),M=u("9263"),S=u("9112"),R=m("species"),C=!d(function(){var B=/./;return B.exec=function(){var H=[];return H.groups={a:"7"},H},"".replace(B,"$<a>")!=="7"}),P=function(){return"a".replace(/./,"$0")==="$0"}(),k=m("replace"),L=function(){return/./[k]?/./[k]("a","$0")==="":!1}(),I=!d(function(){var B=/(?:)/,H=B.exec;B.exec=function(){return H.apply(this,arguments)};var F="ab".split(B);return F.length!==2||F[0]!=="a"||F[1]!=="b"});a.exports=function(B,H,F,W){var Y=m(B),ie=!d(function(){var f={};return f[Y]=function(){return 7},""[B](f)!=7}),J=ie&&!d(function(){var f=!1,l=/a/;return B==="split"&&(l={},l.constructor={},l.constructor[R]=function(){return l},l.flags="",l[Y]=/./[Y]),l.exec=function(){return f=!0,null},l[Y](""),!f});if(!ie||!J||B==="replace"&&!(C&&P&&!L)||B==="split"&&!I){var V=/./[Y],oe=F(Y,""[B],function(f,l,h,p,w){return l.exec===M?ie&&!w?{done:!0,value:V.call(l,h,p)}:{done:!0,value:f.call(h,l,p)}:{done:!1}},{REPLACE_KEEPS_$0:P,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:L}),_=oe[0],o=oe[1];c(String.prototype,B,_),c(RegExp.prototype,Y,H==2?function(f,l){return o.call(f,this,l)}:function(f){return o.call(f,this)})}W&&S(RegExp.prototype[Y],"sham",!0)}},d81d:function(a,n,u){var c=u("23e7"),d=u("b727").map,m=u("1dde"),M=u("ae40"),S=m("map"),R=M("map");c({target:"Array",proto:!0,forced:!S||!R},{map:function(P){return d(this,P,arguments.length>1?arguments[1]:void 0)}})},da84:function(a,n,u){(function(c){var d=function(m){return m&&m.Math==Math&&m};a.exports=d(typeof globalThis=="object"&&globalThis)||d(typeof window=="object"&&window)||d(typeof self=="object"&&self)||d(typeof c=="object"&&c)||Function("return this")()}).call(this,u("c8ba"))},dbb4:function(a,n,u){var c=u("23e7"),d=u("83ab"),m=u("56ef"),M=u("fc6a"),S=u("06cf"),R=u("8418");c({target:"Object",stat:!0,sham:!d},{getOwnPropertyDescriptors:function(P){for(var k=M(P),L=S.f,I=m(k),B={},H=0,F,W;I.length>H;)W=L(k,F=I[H++]),W!==void 0&&R(B,F,W);return B}})},dbf1:function(a,n,u){(function(c){u.d(n,"a",function(){return m});function d(){return typeof window<"u"?window.console:c.console}var m=d()}).call(this,u("c8ba"))},ddb0:function(a,n,u){var c=u("da84"),d=u("fdbc"),m=u("e260"),M=u("9112"),S=u("b622"),R=S("iterator"),C=S("toStringTag"),P=m.values;for(var k in d){var L=c[k],I=L&&L.prototype;if(I){if(I[R]!==P)try{M(I,R,P)}catch{I[R]=P}if(I[C]||M(I,C,k),d[k]){for(var B in m)if(I[B]!==m[B])try{M(I,B,m[B])}catch{I[B]=m[B]}}}}},df75:function(a,n,u){var c=u("ca84"),d=u("7839");a.exports=Object.keys||function(M){return c(M,d)}},e01a:function(a,n,u){var c=u("23e7"),d=u("83ab"),m=u("da84"),M=u("5135"),S=u("861d"),R=u("9bf2").f,C=u("e893"),P=m.Symbol;if(d&&typeof P=="function"&&(!("description"in P.prototype)||P().description!==void 0)){var k={},L=function(){var Y=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),ie=this instanceof L?new P(Y):Y===void 0?P():P(Y);return Y===""&&(k[ie]=!0),ie};C(L,P);var I=L.prototype=P.prototype;I.constructor=L;var B=I.toString,H=String(P("test"))=="Symbol(test)",F=/^Symbol\((.*)\)[^)]+$/;R(I,"description",{configurable:!0,get:function(){var Y=S(this)?this.valueOf():this,ie=B.call(Y);if(M(k,Y))return"";var J=H?ie.slice(7,-1):ie.replace(F,"$1");return J===""?void 0:J}}),c({global:!0,forced:!0},{Symbol:L})}},e163:function(a,n,u){var c=u("5135"),d=u("7b0b"),m=u("f772"),M=u("e177"),S=m("IE_PROTO"),R=Object.prototype;a.exports=M?Object.getPrototypeOf:function(C){return C=d(C),c(C,S)?C[S]:typeof C.constructor=="function"&&C instanceof C.constructor?C.constructor.prototype:C instanceof Object?R:null}},e177:function(a,n,u){var c=u("d039");a.exports=!c(function(){function d(){}return d.prototype.constructor=null,Object.getPrototypeOf(new d)!==d.prototype})},e260:function(a,n,u){var c=u("fc6a"),d=u("44d2"),m=u("3f8c"),M=u("69f3"),S=u("7dd0"),R="Array Iterator",C=M.set,P=M.getterFor(R);a.exports=S(Array,"Array",function(k,L){C(this,{type:R,target:c(k),index:0,kind:L})},function(){var k=P(this),L=k.target,I=k.kind,B=k.index++;return!L||B>=L.length?(k.target=void 0,{value:void 0,done:!0}):I=="keys"?{value:B,done:!1}:I=="values"?{value:L[B],done:!1}:{value:[B,L[B]],done:!1}},"values"),m.Arguments=m.Array,d("keys"),d("values"),d("entries")},e439:function(a,n,u){var c=u("23e7"),d=u("d039"),m=u("fc6a"),M=u("06cf").f,S=u("83ab"),R=d(function(){M(1)}),C=!S||R;c({target:"Object",stat:!0,forced:C,sham:!S},{getOwnPropertyDescriptor:function(k,L){return M(m(k),L)}})},e538:function(a,n,u){var c=u("b622");n.f=c},e893:function(a,n,u){var c=u("5135"),d=u("56ef"),m=u("06cf"),M=u("9bf2");a.exports=function(S,R){for(var C=d(R),P=M.f,k=m.f,L=0;L<C.length;L++){var I=C[L];c(S,I)||P(S,I,k(R,I))}}},e8b5:function(a,n,u){var c=u("c6b6");a.exports=Array.isArray||function(m){return c(m)=="Array"}},e95a:function(a,n,u){var c=u("b622"),d=u("3f8c"),m=c("iterator"),M=Array.prototype;a.exports=function(S){return S!==void 0&&(d.Array===S||M[m]===S)}},f5df:function(a,n,u){var c=u("00ee"),d=u("c6b6"),m=u("b622"),M=m("toStringTag"),S=d(function(){return arguments}())=="Arguments",R=function(C,P){try{return C[P]}catch{}};a.exports=c?d:function(C){var P,k,L;return C===void 0?"Undefined":C===null?"Null":typeof(k=R(P=Object(C),M))=="string"?k:S?d(P):(L=d(P))=="Object"&&typeof P.callee=="function"?"Arguments":L}},f772:function(a,n,u){var c=u("5692"),d=u("90e3"),m=c("keys");a.exports=function(M){return m[M]||(m[M]=d(M))}},fb15:function(a,n,u){if(u.r(n),typeof window<"u"){var c=window.document.currentScript;{var d=u("8875");c=d(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:d})}var m=c&&c.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);m&&(u.p=m[1])}u("99af"),u("4de4"),u("4160"),u("c975"),u("d81d"),u("a434"),u("159b"),u("a4d3"),u("e439"),u("dbb4"),u("b64b");function M(de,ae,fe){return ae in de?Object.defineProperty(de,ae,{value:fe,enumerable:!0,configurable:!0,writable:!0}):de[ae]=fe,de}function S(de,ae){var fe=Object.keys(de);if(Object.getOwnPropertySymbols){var Te=Object.getOwnPropertySymbols(de);ae&&(Te=Te.filter(function(ve){return Object.getOwnPropertyDescriptor(de,ve).enumerable})),fe.push.apply(fe,Te)}return fe}function R(de){for(var ae=1;ae<arguments.length;ae++){var fe=arguments[ae]!=null?arguments[ae]:{};ae%2?S(Object(fe),!0).forEach(function(Te){M(de,Te,fe[Te])}):Object.getOwnPropertyDescriptors?Object.defineProperties(de,Object.getOwnPropertyDescriptors(fe)):S(Object(fe)).forEach(function(Te){Object.defineProperty(de,Te,Object.getOwnPropertyDescriptor(fe,Te))})}return de}function C(de){if(Array.isArray(de))return de}u("e01a"),u("d28b"),u("e260"),u("d3b7"),u("3ca3"),u("ddb0");function P(de,ae){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(de)))){var fe=[],Te=!0,ve=!1,Me=void 0;try{for(var Ke=de[Symbol.iterator](),be;!(Te=(be=Ke.next()).done)&&(fe.push(be.value),!(ae&&fe.length===ae));Te=!0);}catch(Se){ve=!0,Me=Se}finally{try{!Te&&Ke.return!=null&&Ke.return()}finally{if(ve)throw Me}}return fe}}u("a630"),u("fb6a"),u("b0c0"),u("25f0");function k(de,ae){(ae==null||ae>de.length)&&(ae=de.length);for(var fe=0,Te=new Array(ae);fe<ae;fe++)Te[fe]=de[fe];return Te}function L(de,ae){if(de){if(typeof de=="string")return k(de,ae);var fe=Object.prototype.toString.call(de).slice(8,-1);if(fe==="Object"&&de.constructor&&(fe=de.constructor.name),fe==="Map"||fe==="Set")return Array.from(de);if(fe==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(fe))return k(de,ae)}}function I(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function B(de,ae){return C(de)||P(de,ae)||L(de,ae)||I()}function H(de){if(Array.isArray(de))return k(de)}function F(de){if(typeof Symbol<"u"&&Symbol.iterator in Object(de))return Array.from(de)}function W(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Y(de){return H(de)||F(de)||L(de)||W()}var ie=u("a352"),J=u.n(ie);function V(de){de.parentElement!==null&&de.parentElement.removeChild(de)}function oe(de,ae,fe){var Te=fe===0?de.children[0]:de.children[fe-1].nextSibling;de.insertBefore(ae,Te)}var _=u("dbf1");u("13d5"),u("4fad"),u("ac1f"),u("5319");function o(de){var ae=Object.create(null);return function(Te){var ve=ae[Te];return ve||(ae[Te]=de(Te))}}var f=/-(\w)/g,l=o(function(de){return de.replace(f,function(ae,fe){return fe.toUpperCase()})});u("5db7"),u("73d9");var h=["Start","Add","Remove","Update","End"],p=["Choose","Unchoose","Sort","Filter","Clone"],w=["Move"],x=[w,h,p].flatMap(function(de){return de}).map(function(de){return"on".concat(de)}),g={manage:w,manageAndEmit:h,emit:p};function s(de){return x.indexOf(de)!==-1}u("caad"),u("2ca0");var v=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];function T(de){return v.includes(de)}function $(de){return["transition-group","TransitionGroup"].includes(de)}function G(de){return["id","class","role","style"].includes(de)||de.startsWith("data-")||de.startsWith("aria-")||de.startsWith("on")}function ee(de){return de.reduce(function(ae,fe){var Te=B(fe,2),ve=Te[0],Me=Te[1];return ae[ve]=Me,ae},{})}function A(de){var ae=de.$attrs,fe=de.componentData,Te=fe===void 0?{}:fe,ve=ee(Object.entries(ae).filter(function(Me){var Ke=B(Me,2),be=Ke[0];return Ke[1],G(be)}));return R(R({},ve),Te)}function E(de){var ae=de.$attrs,fe=de.callBackBuilder,Te=ee(U(ae));Object.entries(fe).forEach(function(Me){var Ke=B(Me,2),be=Ke[0],Se=Ke[1];g[be].forEach(function(qe){Te["on".concat(qe)]=Se(qe)})});var ve="[data-draggable]".concat(Te.draggable||"");return R(R({},Te),{},{draggable:ve})}function U(de){return Object.entries(de).filter(function(ae){var fe=B(ae,2),Te=fe[0];return fe[1],!G(Te)}).map(function(ae){var fe=B(ae,2),Te=fe[0],ve=fe[1];return[l(Te),ve]}).filter(function(ae){var fe=B(ae,2),Te=fe[0];return fe[1],!s(Te)})}u("c740");function K(de,ae){if(!(de instanceof ae))throw new TypeError("Cannot call a class as a function")}function Z(de,ae){for(var fe=0;fe<ae.length;fe++){var Te=ae[fe];Te.enumerable=Te.enumerable||!1,Te.configurable=!0,"value"in Te&&(Te.writable=!0),Object.defineProperty(de,Te.key,Te)}}function b(de,ae,fe){return ae&&Z(de.prototype,ae),fe&&Z(de,fe),de}var y=function(ae){var fe=ae.el;return fe},O=function(ae,fe){return ae.__draggable_context=fe},q=function(ae){return ae.__draggable_context},X=function(){function de(ae){var fe=ae.nodes,Te=fe.header,ve=fe.default,Me=fe.footer,Ke=ae.root,be=ae.realList;K(this,de),this.defaultNodes=ve,this.children=[].concat(Y(Te),Y(ve),Y(Me)),this.externalComponent=Ke.externalComponent,this.rootTransition=Ke.transition,this.tag=Ke.tag,this.realList=be}return b(de,[{key:"render",value:function(fe,Te){var ve=this.tag,Me=this.children,Ke=this._isRootComponent,be=Ke?{default:function(){return Me}}:Me;return fe(ve,Te,be)}},{key:"updated",value:function(){var fe=this.defaultNodes,Te=this.realList;fe.forEach(function(ve,Me){O(y(ve),{element:Te[Me],index:Me})})}},{key:"getUnderlyingVm",value:function(fe){return q(fe)}},{key:"getVmIndexFromDomIndex",value:function(fe,Te){var ve=this.defaultNodes,Me=ve.length,Ke=Te.children,be=Ke.item(fe);if(be===null)return Me;var Se=q(be);if(Se)return Se.index;if(Me===0)return 0;var qe=y(ve[0]),ye=Y(Ke).findIndex(function(_e){return _e===qe});return fe<ye?0:Me}},{key:"_isRootComponent",get:function(){return this.externalComponent||this.rootTransition}}]),de}(),D=u("8bbf");function N(de,ae){var fe=de[ae];return fe?fe():[]}function j(de){var ae=de.$slots,fe=de.realList,Te=de.getKey,ve=fe||[],Me=["header","footer"].map(function(_e){return N(ae,_e)}),Ke=B(Me,2),be=Ke[0],Se=Ke[1],qe=ae.item;if(!qe)throw new Error("draggable element must have an item slot");var ye=ve.flatMap(function(_e,Ve){return qe({element:_e,index:Ve}).map(function(ge){return ge.key=Te(_e),ge.props=R(R({},ge.props||{}),{},{"data-draggable":!0}),ge})});if(ye.length!==ve.length)throw new Error("Item slot must have only one child");return{header:be,footer:Se,default:ye}}function z(de){var ae=$(de),fe=!T(de)&&!ae;return{transition:ae,externalComponent:fe,tag:fe?Object(D.resolveComponent)(de):ae?D.TransitionGroup:de}}function se(de){var ae=de.$slots,fe=de.tag,Te=de.realList,ve=de.getKey,Me=j({$slots:ae,realList:Te,getKey:ve}),Ke=z(fe);return new X({nodes:Me,root:Ke,realList:Te})}function te(de,ae){var fe=this;Object(D.nextTick)(function(){return fe.$emit(de.toLowerCase(),ae)})}function ne(de){var ae=this;return function(fe,Te){if(ae.realList!==null)return ae["onDrag".concat(de)](fe,Te)}}function Ee(de){var ae=this,fe=ne.call(this,de);return function(Te,ve){fe.call(ae,Te,ve),te.call(ae,de,Te)}}var Q=null,ue={list:{type:Array,required:!1,default:null},modelValue:{type:Array,required:!1,default:null},itemKey:{type:[String,Function],required:!0},clone:{type:Function,default:function(ae){return ae}},tag:{type:String,default:"div"},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},le=["update:modelValue","change"].concat(Y([].concat(Y(g.manageAndEmit),Y(g.emit)).map(function(de){return de.toLowerCase()}))),ce=Object(D.defineComponent)({name:"draggable",inheritAttrs:!1,props:ue,emits:le,data:function(){return{error:!1}},render:function(){try{this.error=!1;var ae=this.$slots,fe=this.$attrs,Te=this.tag,ve=this.componentData,Me=this.realList,Ke=this.getKey,be=se({$slots:ae,tag:Te,realList:Me,getKey:Ke});this.componentStructure=be;var Se=A({$attrs:fe,componentData:ve});return be.render(D.h,Se)}catch(qe){return this.error=!0,Object(D.h)("pre",{style:{color:"red"}},qe.stack)}},created:function(){this.list!==null&&this.modelValue!==null&&_.a.error("modelValue and list props are mutually exclusive! Please set one or another.")},mounted:function(){var ae=this;if(!this.error){var fe=this.$attrs,Te=this.$el,ve=this.componentStructure;ve.updated();var Me=E({$attrs:fe,callBackBuilder:{manageAndEmit:function(Se){return Ee.call(ae,Se)},emit:function(Se){return te.bind(ae,Se)},manage:function(Se){return ne.call(ae,Se)}}}),Ke=Te.nodeType===1?Te:Te.parentElement;this._sortable=new J.a(Ke,Me),this.targetDomElement=Ke,Ke.__draggable_component__=this}},updated:function(){this.componentStructure.updated()},beforeUnmount:function(){this._sortable!==void 0&&this._sortable.destroy()},computed:{realList:function(){var ae=this.list;return ae||this.modelValue},getKey:function(){var ae=this.itemKey;return typeof ae=="function"?ae:function(fe){return fe[ae]}}},watch:{$attrs:{handler:function(ae){var fe=this._sortable;fe&&U(ae).forEach(function(Te){var ve=B(Te,2),Me=ve[0],Ke=ve[1];fe.option(Me,Ke)})},deep:!0}},methods:{getUnderlyingVm:function(ae){return this.componentStructure.getUnderlyingVm(ae)||null},getUnderlyingPotencialDraggableComponent:function(ae){return ae.__draggable_component__},emitChanges:function(ae){var fe=this;Object(D.nextTick)(function(){return fe.$emit("change",ae)})},alterList:function(ae){if(this.list){ae(this.list);return}var fe=Y(this.modelValue);ae(fe),this.$emit("update:modelValue",fe)},spliceList:function(){var ae=arguments,fe=function(ve){return ve.splice.apply(ve,Y(ae))};this.alterList(fe)},updatePosition:function(ae,fe){var Te=function(Me){return Me.splice(fe,0,Me.splice(ae,1)[0])};this.alterList(Te)},getRelatedContextFromMoveEvent:function(ae){var fe=ae.to,Te=ae.related,ve=this.getUnderlyingPotencialDraggableComponent(fe);if(!ve)return{component:ve};var Me=ve.realList,Ke={list:Me,component:ve};if(fe!==Te&&Me){var be=ve.getUnderlyingVm(Te)||{};return R(R({},be),Ke)}return Ke},getVmIndexFromDomIndex:function(ae){return this.componentStructure.getVmIndexFromDomIndex(ae,this.targetDomElement)},onDragStart:function(ae){this.context=this.getUnderlyingVm(ae.item),ae.item._underlying_vm_=this.clone(this.context.element),Q=ae.item},onDragAdd:function(ae){var fe=ae.item._underlying_vm_;if(fe!==void 0){V(ae.item);var Te=this.getVmIndexFromDomIndex(ae.newIndex);this.spliceList(Te,0,fe);var ve={element:fe,newIndex:Te};this.emitChanges({added:ve})}},onDragRemove:function(ae){if(oe(this.$el,ae.item,ae.oldIndex),ae.pullMode==="clone"){V(ae.clone);return}var fe=this.context,Te=fe.index,ve=fe.element;this.spliceList(Te,1);var Me={element:ve,oldIndex:Te};this.emitChanges({removed:Me})},onDragUpdate:function(ae){V(ae.item),oe(ae.from,ae.item,ae.oldIndex);var fe=this.context.index,Te=this.getVmIndexFromDomIndex(ae.newIndex);this.updatePosition(fe,Te);var ve={element:this.context.element,oldIndex:fe,newIndex:Te};this.emitChanges({moved:ve})},computeFutureIndex:function(ae,fe){if(!ae.element)return 0;var Te=Y(fe.to.children).filter(function(be){return be.style.display!=="none"}),ve=Te.indexOf(fe.related),Me=ae.component.getVmIndexFromDomIndex(ve),Ke=Te.indexOf(Q)!==-1;return Ke||!fe.willInsertAfter?Me:Me+1},onDragMove:function(ae,fe){var Te=this.move,ve=this.realList;if(!Te||!ve)return!0;var Me=this.getRelatedContextFromMoveEvent(ae),Ke=this.computeFutureIndex(Me,ae),be=R(R({},this.context),{},{futureIndex:Ke}),Se=R(R({},ae),{},{relatedContext:Me,draggedContext:be});return Te(Se,fe)},onDragEnd:function(){Q=null}}}),pe=ce;n.default=pe},fb6a:function(a,n,u){var c=u("23e7"),d=u("861d"),m=u("e8b5"),M=u("23cb"),S=u("50c4"),R=u("fc6a"),C=u("8418"),P=u("b622"),k=u("1dde"),L=u("ae40"),I=k("slice"),B=L("slice",{ACCESSORS:!0,0:0,1:2}),H=P("species"),F=[].slice,W=Math.max;c({target:"Array",proto:!0,forced:!I||!B},{slice:function(ie,J){var V=R(this),oe=S(V.length),_=M(ie,oe),o=M(J===void 0?oe:J,oe),f,l,h;if(m(V)&&(f=V.constructor,typeof f=="function"&&(f===Array||m(f.prototype))?f=void 0:d(f)&&(f=f[H],f===null&&(f=void 0)),f===Array||f===void 0))return F.call(V,_,o);for(l=new(f===void 0?Array:f)(W(o-_,0)),h=0;_<o;_++,h++)_ in V&&C(l,h,V[_]);return l.length=h,l}})},fc6a:function(a,n,u){var c=u("44ad"),d=u("1d80");a.exports=function(m){return c(d(m))}},fdbc:function(a,n){a.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(a,n,u){var c=u("4930");a.exports=c&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}}).default})})(Z6);var yD=Z6.exports;const UV=Lo(yD);var Su={};Su.version="1.0.0";Su.encode=function(t){return t.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")};Su.decode=function(t){return t+=Array(5-t.length%4).join("="),t=t.replace(/\-/g,"+").replace(/\_/g,"/"),new ke.Buffer(t,"base64")};Su.validate=function(t){return/^[A-Za-z0-9\-_]+$/.test(t)};var HV=Su,ct={},Dp={exports:{}},Nd=65536,bD=4294967295;function wD(){throw new Error(`Secure random number generation is not supported by this browser.
-Use Chrome, Firefox or Internet Explorer 11`)}var _D=pt.Buffer,Xl=Ye.crypto||Ye.msCrypto;Xl&&Xl.getRandomValues?Dp.exports=MD:Dp.exports=wD;function MD(e,t){if(e>bD)throw new RangeError("requested too many random bytes");var r=_D.allocUnsafe(e);if(e>0)if(e>Nd)for(var i=0;i<e;i+=Nd)Xl.getRandomValues(r.slice(i,i+Nd));else Xl.getRandomValues(r);return typeof t=="function"?we.nextTick(function(){t(null,r)}):r}var Ds=Dp.exports,Fp={exports:{}},X6=Or.EventEmitter,kd,tb;function SD(){if(tb)return kd;tb=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return kd=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),kd}function xD(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(jp,this,e)):we.nextTick(jp,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(gl,r):(r._writableState.errorEmitted=!0,we.nextTick(rb,r,n)):we.nextTick(rb,r,n):t?(we.nextTick(gl,r),t(n)):we.nextTick(gl,r)}),this)}function rb(e,t){jp(e,t),gl(e)}function gl(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function ED(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function jp(e,t){e.emit("error",t)}function RD(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var J6={destroy:xD,undestroy:ED,errorOrDestroy:RD},Aa={};function AD(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Q6={};function Mi(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){AD(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,Q6[e]=a}function ib(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function TD(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function OD(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function ID(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}Mi("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Mi("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&TD(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(OD(e," argument"))a="The ".concat(e," ").concat(i," ").concat(ib(t,"type"));else{var n=ID(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(ib(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);Mi("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Mi("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Mi("ERR_STREAM_PREMATURE_CLOSE","Premature close");Mi("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Mi("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Mi("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Mi("ERR_STREAM_WRITE_AFTER_END","write after end");Mi("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Mi("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Mi("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Aa.codes=Q6;var PD=Aa.codes.ERR_INVALID_OPT_VALUE;function CD(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function BD(e,t,r,i){var a=CD(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new PD(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var eS={getHighWaterMark:BD},$d,nb;function tS(){if(nb)return $d;nb=1,$d=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=X6,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=J6,m=eS,M=m.getHighWaterMark,S=Aa.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||bs(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||bs();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},$d}var Dd,ob;function bs(){if(ob)return Dd;ob=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};Dd=u;var t=iS(),r=tS();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),Dd}var ab=Aa.codes.ERR_STREAM_PREMATURE_CLOSE;function LD(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function ND(){}function kD(e){return e.setHeader&&typeof e.abort=="function"}function rS(e,t,r){if(typeof t=="function")return rS(e,null,t);t||(t={}),r=LD(r||ND);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new ab),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new ab),r.call(e,P)},R=function(){e.req.on("finish",c)};return kD(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var pg=rS,Fd,sb;function $D(){if(sb)return Fd;sb=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=pg,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return Fd=B,Fd}var jd,fb;function DD(){return fb||(fb=1,jd=function(){throw new Error("Readable.from is not available in the browser")}),jd}var Ud,ub;function iS(){if(ub)return Ud;ub=1,Ud=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=X6,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=SD(),M=J6,S=eS,R=S.getHighWaterMark,C=Aa.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||bs(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||bs(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=$D()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=DD()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return Ud}var nS=Fn,Vh=Aa.codes,FD=Vh.ERR_METHOD_NOT_IMPLEMENTED,jD=Vh.ERR_MULTIPLE_CALLBACK,UD=Vh.ERR_TRANSFORM_ALREADY_TRANSFORMING,HD=Vh.ERR_TRANSFORM_WITH_LENGTH_0,zh=bs();Ze(Fn,zh);function qD(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new jD);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function Fn(e){if(!(this instanceof Fn))return new Fn(e);zh.call(this,e),this._transformState={afterTransform:qD.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",WD)}function WD(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){lb(e,t,r)}):lb(this,null,null)}Fn.prototype.push=function(e,t){return this._transformState.needTransform=!1,zh.prototype.push.call(this,e,t)};Fn.prototype._transform=function(e,t,r){r(new FD("_transform()"))};Fn.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};Fn.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Fn.prototype._destroy=function(e,t){zh.prototype._destroy.call(this,e,function(r){t(r)})};function lb(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new HD;if(e._transformState.transforming)throw new UD;return e.push(null)}var KD=nu,oS=nS;Ze(nu,oS);function nu(e){if(!(this instanceof nu))return new nu(e);oS.call(this,e)}nu.prototype._transform=function(e,t,r){r(null,e)};var Hd;function VD(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var aS=Aa.codes,zD=aS.ERR_MISSING_ARGS,GD=aS.ERR_STREAM_DESTROYED;function hb(e){if(e)throw e}function YD(e){return e.setHeader&&typeof e.abort=="function"}function ZD(e,t,r,i){i=VD(i);var a=!1;e.on("close",function(){a=!0}),Hd===void 0&&(Hd=pg),Hd(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,YD(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new GD("pipe"))}}}function cb(e){e()}function XD(e,t){return e.pipe(t)}function JD(e){return!e.length||typeof e[e.length-1]!="function"?hb:e.pop()}function QD(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=JD(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new zD("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return ZD(u,d,m,function(M){a||(a=M),M&&n.forEach(cb),!d&&(n.forEach(cb),i(a))})});return t.reduce(XD)}var eF=QD;(function(e,t){t=e.exports=iS(),t.Stream=t,t.Readable=t,t.Writable=tS(),t.Duplex=bs(),t.Transform=nS,t.PassThrough=KD,t.finished=pg,t.pipeline=eF})(Fp,Fp.exports);var tF=Fp.exports,Jl=pt.Buffer,sS=tF.Transform,rF=Ze;function iF(e,t){if(!Jl.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function ko(e){sS.call(this),this._block=Jl.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}rF(ko,sS);ko.prototype._transform=function(e,t,r){var i=null;try{this.update(e,t)}catch(a){i=a}r(i)};ko.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};ko.prototype.update=function(e,t){if(iF(e,"Data"),this._finalized)throw new Error("Digest already called");Jl.isBuffer(e)||(e=Jl.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var a=this._blockOffset;a<this._blockSize;)r[a++]=e[i++];this._update(),this._blockOffset=0}for(;i<e.length;)r[this._blockOffset++]=e[i++];for(var n=0,u=e.length*8;u>0;++n)this._length[n]+=u,u=this._length[n]/4294967296|0,u>0&&(this._length[n]-=4294967296*u);return this};ko.prototype._update=function(){throw new Error("_update is not implemented")};ko.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};ko.prototype._digest=function(){throw new Error("_digest is not implemented")};var fS=ko,nF=Ze,uS=fS,oF=pt.Buffer,aF=new Array(16);function Gh(){uS.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}nF(Gh,uS);Gh.prototype._update=function(){for(var e=aF,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);var r=this._a,i=this._b,a=this._c,n=this._d;r=_r(r,i,a,n,e[0],3614090360,7),n=_r(n,r,i,a,e[1],3905402710,12),a=_r(a,n,r,i,e[2],606105819,17),i=_r(i,a,n,r,e[3],3250441966,22),r=_r(r,i,a,n,e[4],4118548399,7),n=_r(n,r,i,a,e[5],1200080426,12),a=_r(a,n,r,i,e[6],2821735955,17),i=_r(i,a,n,r,e[7],4249261313,22),r=_r(r,i,a,n,e[8],1770035416,7),n=_r(n,r,i,a,e[9],2336552879,12),a=_r(a,n,r,i,e[10],4294925233,17),i=_r(i,a,n,r,e[11],2304563134,22),r=_r(r,i,a,n,e[12],1804603682,7),n=_r(n,r,i,a,e[13],4254626195,12),a=_r(a,n,r,i,e[14],2792965006,17),i=_r(i,a,n,r,e[15],1236535329,22),r=Mr(r,i,a,n,e[1],4129170786,5),n=Mr(n,r,i,a,e[6],3225465664,9),a=Mr(a,n,r,i,e[11],643717713,14),i=Mr(i,a,n,r,e[0],3921069994,20),r=Mr(r,i,a,n,e[5],3593408605,5),n=Mr(n,r,i,a,e[10],38016083,9),a=Mr(a,n,r,i,e[15],3634488961,14),i=Mr(i,a,n,r,e[4],3889429448,20),r=Mr(r,i,a,n,e[9],568446438,5),n=Mr(n,r,i,a,e[14],3275163606,9),a=Mr(a,n,r,i,e[3],4107603335,14),i=Mr(i,a,n,r,e[8],1163531501,20),r=Mr(r,i,a,n,e[13],2850285829,5),n=Mr(n,r,i,a,e[2],4243563512,9),a=Mr(a,n,r,i,e[7],1735328473,14),i=Mr(i,a,n,r,e[12],2368359562,20),r=Sr(r,i,a,n,e[5],4294588738,4),n=Sr(n,r,i,a,e[8],2272392833,11),a=Sr(a,n,r,i,e[11],1839030562,16),i=Sr(i,a,n,r,e[14],4259657740,23),r=Sr(r,i,a,n,e[1],2763975236,4),n=Sr(n,r,i,a,e[4],1272893353,11),a=Sr(a,n,r,i,e[7],4139469664,16),i=Sr(i,a,n,r,e[10],3200236656,23),r=Sr(r,i,a,n,e[13],681279174,4),n=Sr(n,r,i,a,e[0],3936430074,11),a=Sr(a,n,r,i,e[3],3572445317,16),i=Sr(i,a,n,r,e[6],76029189,23),r=Sr(r,i,a,n,e[9],3654602809,4),n=Sr(n,r,i,a,e[12],3873151461,11),a=Sr(a,n,r,i,e[15],530742520,16),i=Sr(i,a,n,r,e[2],3299628645,23),r=xr(r,i,a,n,e[0],4096336452,6),n=xr(n,r,i,a,e[7],1126891415,10),a=xr(a,n,r,i,e[14],2878612391,15),i=xr(i,a,n,r,e[5],4237533241,21),r=xr(r,i,a,n,e[12],1700485571,6),n=xr(n,r,i,a,e[3],2399980690,10),a=xr(a,n,r,i,e[10],4293915773,15),i=xr(i,a,n,r,e[1],2240044497,21),r=xr(r,i,a,n,e[8],1873313359,6),n=xr(n,r,i,a,e[15],4264355552,10),a=xr(a,n,r,i,e[6],2734768916,15),i=xr(i,a,n,r,e[13],1309151649,21),r=xr(r,i,a,n,e[4],4149444226,6),n=xr(n,r,i,a,e[11],3174756917,10),a=xr(a,n,r,i,e[2],718787259,15),i=xr(i,a,n,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+i|0,this._c=this._c+a|0,this._d=this._d+n|0};Gh.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=oF.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e};function Yh(e,t){return e<<t|e>>>32-t}function _r(e,t,r,i,a,n,u){return Yh(e+(t&r|~t&i)+a+n|0,u)+t|0}function Mr(e,t,r,i,a,n,u){return Yh(e+(t&i|r&~i)+a+n|0,u)+t|0}function Sr(e,t,r,i,a,n,u){return Yh(e+(t^r^i)+a+n|0,u)+t|0}function xr(e,t,r,i,a,n,u){return Yh(e+(r^(t|~i))+a+n|0,u)+t|0}var vg=Gh,qd=ke.Buffer,sF=Ze,lS=fS,fF=new Array(16),lf=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],hf=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],cf=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],df=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],pf=[0,1518500249,1859775393,2400959708,2840853838],vf=[1352829926,1548603684,1836072691,2053994217,0];function Zh(){lS.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}sF(Zh,lS);Zh.prototype._update=function(){for(var e=fF,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);for(var r=this._a|0,i=this._b|0,a=this._c|0,n=this._d|0,u=this._e|0,c=this._a|0,d=this._b|0,m=this._c|0,M=this._d|0,S=this._e|0,R=0;R<80;R+=1){var C,P;R<16?(C=db(r,i,a,n,u,e[lf[R]],pf[0],cf[R]),P=mb(c,d,m,M,S,e[hf[R]],vf[0],df[R])):R<32?(C=pb(r,i,a,n,u,e[lf[R]],pf[1],cf[R]),P=gb(c,d,m,M,S,e[hf[R]],vf[1],df[R])):R<48?(C=vb(r,i,a,n,u,e[lf[R]],pf[2],cf[R]),P=vb(c,d,m,M,S,e[hf[R]],vf[2],df[R])):R<64?(C=gb(r,i,a,n,u,e[lf[R]],pf[3],cf[R]),P=pb(c,d,m,M,S,e[hf[R]],vf[3],df[R])):(C=mb(r,i,a,n,u,e[lf[R]],pf[4],cf[R]),P=db(c,d,m,M,S,e[hf[R]],vf[4],df[R])),r=u,u=n,n=ca(a,10),a=i,i=C,c=S,S=M,M=ca(m,10),m=d,d=P}var k=this._b+a+M|0;this._b=this._c+n+S|0,this._c=this._d+u+c|0,this._d=this._e+r+d|0,this._e=this._a+i+m|0,this._a=k};Zh.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=qd.alloc?qd.alloc(20):new qd(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e};function ca(e,t){return e<<t|e>>>32-t}function db(e,t,r,i,a,n,u,c){return ca(e+(t^r^i)+n+u|0,c)+a|0}function pb(e,t,r,i,a,n,u,c){return ca(e+(t&r|~t&i)+n+u|0,c)+a|0}function vb(e,t,r,i,a,n,u,c){return ca(e+((t|~r)^i)+n+u|0,c)+a|0}function gb(e,t,r,i,a,n,u,c){return ca(e+(t&i|r&~i)+n+u|0,c)+a|0}function mb(e,t,r,i,a,n,u,c){return ca(e+(t^(r|~i))+n+u|0,c)+a|0}var gg=Zh,hS={exports:{}},cS=pt.Buffer;function Xh(e,t){this._block=cS.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}Xh.prototype.update=function(e,t){typeof e=="string"&&(t=t||"utf8",e=cS.from(e,t));for(var r=this._block,i=this._blockSize,a=e.length,n=this._len,u=0;u<a;){for(var c=n%i,d=Math.min(a-u,i-c),m=0;m<d;m++)r[c+m]=e[u+m];n+=d,u+=d,n%i===0&&this._update(r)}return this._len+=a,this};Xh.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var i=(r&4294967295)>>>0,a=(r-i)/4294967296;this._block.writeUInt32BE(a,this._blockSize-8),this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var n=this._hash();return e?n.toString(e):n};Xh.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var Fs=Xh,uF=Ze,dS=Fs,lF=pt.Buffer,hF=[1518500249,1859775393,-1894007588,-899497514],cF=new Array(80);function xu(){this.init(),this._w=cF,dS.call(this,64,56)}uF(xu,dS);xu.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function dF(e){return e<<5|e>>>27}function pF(e){return e<<30|e>>>2}function vF(e,t,r,i){return e===0?t&r|~t&i:e===2?t&r|t&i|r&i:t^r^i}xu.prototype._update=function(e){for(var t=this._w,r=this._a|0,i=this._b|0,a=this._c|0,n=this._d|0,u=this._e|0,c=0;c<16;++c)t[c]=e.readInt32BE(c*4);for(;c<80;++c)t[c]=t[c-3]^t[c-8]^t[c-14]^t[c-16];for(var d=0;d<80;++d){var m=~~(d/20),M=dF(r)+vF(m,i,a,n)+u+t[d]+hF[m]|0;u=n,n=a,a=pF(i),i=r,r=M}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=n+this._d|0,this._e=u+this._e|0};xu.prototype._hash=function(){var e=lF.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var gF=xu,mF=Ze,pS=Fs,yF=pt.Buffer,bF=[1518500249,1859775393,-1894007588,-899497514],wF=new Array(80);function Eu(){this.init(),this._w=wF,pS.call(this,64,56)}mF(Eu,pS);Eu.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function _F(e){return e<<1|e>>>31}function MF(e){return e<<5|e>>>27}function SF(e){return e<<30|e>>>2}function xF(e,t,r,i){return e===0?t&r|~t&i:e===2?t&r|t&i|r&i:t^r^i}Eu.prototype._update=function(e){for(var t=this._w,r=this._a|0,i=this._b|0,a=this._c|0,n=this._d|0,u=this._e|0,c=0;c<16;++c)t[c]=e.readInt32BE(c*4);for(;c<80;++c)t[c]=_F(t[c-3]^t[c-8]^t[c-14]^t[c-16]);for(var d=0;d<80;++d){var m=~~(d/20),M=MF(r)+xF(m,i,a,n)+u+t[d]+bF[m]|0;u=n,n=a,a=SF(i),i=r,r=M}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=n+this._d|0,this._e=u+this._e|0};Eu.prototype._hash=function(){var e=yF.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var EF=Eu,RF=Ze,vS=Fs,AF=pt.Buffer,TF=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OF=new Array(64);function Ru(){this.init(),this._w=OF,vS.call(this,64,56)}RF(Ru,vS);Ru.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function IF(e,t,r){return r^e&(t^r)}function PF(e,t,r){return e&t|r&(e|t)}function CF(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function BF(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function LF(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function NF(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}Ru.prototype._update=function(e){for(var t=this._w,r=this._a|0,i=this._b|0,a=this._c|0,n=this._d|0,u=this._e|0,c=this._f|0,d=this._g|0,m=this._h|0,M=0;M<16;++M)t[M]=e.readInt32BE(M*4);for(;M<64;++M)t[M]=NF(t[M-2])+t[M-7]+LF(t[M-15])+t[M-16]|0;for(var S=0;S<64;++S){var R=m+BF(u)+IF(u,c,d)+TF[S]+t[S]|0,C=CF(r)+PF(r,i,a)|0;m=d,d=c,c=u,u=n+R|0,n=a,a=i,i=r,r=R+C|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=n+this._d|0,this._e=u+this._e|0,this._f=c+this._f|0,this._g=d+this._g|0,this._h=m+this._h|0};Ru.prototype._hash=function(){var e=AF.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e};var gS=Ru,kF=Ze,$F=gS,DF=Fs,FF=pt.Buffer,jF=new Array(64);function Jh(){this.init(),this._w=jF,DF.call(this,64,56)}kF(Jh,$F);Jh.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};Jh.prototype._hash=function(){var e=FF.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e};var UF=Jh,HF=Ze,mS=Fs,qF=pt.Buffer,yb=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],WF=new Array(160);function Au(){this.init(),this._w=WF,mS.call(this,128,112)}HF(Au,mS);Au.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function bb(e,t,r){return r^e&(t^r)}function wb(e,t,r){return e&t|r&(e|t)}function _b(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function Mb(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function KF(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function VF(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function zF(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function GF(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function sr(e,t){return e>>>0<t>>>0?1:0}Au.prototype._update=function(e){for(var t=this._w,r=this._ah|0,i=this._bh|0,a=this._ch|0,n=this._dh|0,u=this._eh|0,c=this._fh|0,d=this._gh|0,m=this._hh|0,M=this._al|0,S=this._bl|0,R=this._cl|0,C=this._dl|0,P=this._el|0,k=this._fl|0,L=this._gl|0,I=this._hl|0,B=0;B<32;B+=2)t[B]=e.readInt32BE(B*4),t[B+1]=e.readInt32BE(B*4+4);for(;B<160;B+=2){var H=t[B-30],F=t[B-15*2+1],W=KF(H,F),Y=VF(F,H);H=t[B-2*2],F=t[B-2*2+1];var ie=zF(H,F),J=GF(F,H),V=t[B-7*2],oe=t[B-7*2+1],_=t[B-16*2],o=t[B-16*2+1],f=Y+oe|0,l=W+V+sr(f,Y)|0;f=f+J|0,l=l+ie+sr(f,J)|0,f=f+o|0,l=l+_+sr(f,o)|0,t[B]=l,t[B+1]=f}for(var h=0;h<160;h+=2){l=t[h],f=t[h+1];var p=wb(r,i,a),w=wb(M,S,R),x=_b(r,M),g=_b(M,r),s=Mb(u,P),v=Mb(P,u),T=yb[h],$=yb[h+1],G=bb(u,c,d),ee=bb(P,k,L),A=I+v|0,E=m+s+sr(A,I)|0;A=A+ee|0,E=E+G+sr(A,ee)|0,A=A+$|0,E=E+T+sr(A,$)|0,A=A+f|0,E=E+l+sr(A,f)|0;var U=g+w|0,K=x+p+sr(U,g)|0;m=d,I=L,d=c,L=k,c=u,k=P,P=C+A|0,u=n+E+sr(P,C)|0,n=a,C=R,a=i,R=S,i=r,S=M,M=A+U|0,r=E+K+sr(M,A)|0}this._al=this._al+M|0,this._bl=this._bl+S|0,this._cl=this._cl+R|0,this._dl=this._dl+C|0,this._el=this._el+P|0,this._fl=this._fl+k|0,this._gl=this._gl+L|0,this._hl=this._hl+I|0,this._ah=this._ah+r+sr(this._al,M)|0,this._bh=this._bh+i+sr(this._bl,S)|0,this._ch=this._ch+a+sr(this._cl,R)|0,this._dh=this._dh+n+sr(this._dl,C)|0,this._eh=this._eh+u+sr(this._el,P)|0,this._fh=this._fh+c+sr(this._fl,k)|0,this._gh=this._gh+d+sr(this._gl,L)|0,this._hh=this._hh+m+sr(this._hl,I)|0};Au.prototype._hash=function(){var e=qF.allocUnsafe(64);function t(r,i,a){e.writeInt32BE(r,a),e.writeInt32BE(i,a+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e};var yS=Au,YF=Ze,ZF=yS,XF=Fs,JF=pt.Buffer,QF=new Array(160);function Qh(){this.init(),this._w=QF,XF.call(this,128,112)}YF(Qh,ZF);Qh.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};Qh.prototype._hash=function(){var e=JF.allocUnsafe(48);function t(r,i,a){e.writeInt32BE(r,a),e.writeInt32BE(i,a+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e};var ej=Qh,Ta=hS.exports=function(t){t=t.toLowerCase();var r=Ta[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};Ta.sha=gF;Ta.sha1=EF;Ta.sha224=UF;Ta.sha256=gS;Ta.sha384=ej;Ta.sha512=yS;var mg=hS.exports,Wd,Sb;function bS(){return Sb||(Sb=1,Wd=Or.EventEmitter),Wd}var Kd,xb;function tj(){if(xb)return Kd;xb=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return Kd=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),Kd}var Vd,Eb;function wS(){if(Eb)return Vd;Eb=1;function e(u,c){var d=this,m=this._readableState&&this._readableState.destroyed,M=this._writableState&&this._writableState.destroyed;return m||M?(c?c(u):u&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(a,this,u)):we.nextTick(a,this,u)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(u||null,function(S){!c&&S?d._writableState?d._writableState.errorEmitted?we.nextTick(r,d):(d._writableState.errorEmitted=!0,we.nextTick(t,d,S)):we.nextTick(t,d,S):c?(we.nextTick(r,d),c(S)):we.nextTick(r,d)}),this)}function t(u,c){a(u,c),r(u)}function r(u){u._writableState&&!u._writableState.emitClose||u._readableState&&!u._readableState.emitClose||u.emit("close")}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(u,c){u.emit("error",c)}function n(u,c){var d=u._readableState,m=u._writableState;d&&d.autoDestroy||m&&m.autoDestroy?u.destroy(c):u.emit("error",c)}return Vd={destroy:e,undestroy:i,errorOrDestroy:n},Vd}var zd={},Rb;function js(){if(Rb)return zd;Rb=1;function e(c,d){c.prototype=Object.create(d.prototype),c.prototype.constructor=c,c.__proto__=d}var t={};function r(c,d,m){m||(m=Error);function M(R,C,P){return typeof d=="string"?d:d(R,C,P)}var S=function(R){e(C,R);function C(P,k,L){return R.call(this,M(P,k,L))||this}return C}(m);S.prototype.name=m.name,S.prototype.code=c,t[c]=S}function i(c,d){if(Array.isArray(c)){var m=c.length;return c=c.map(function(M){return String(M)}),m>2?"one of ".concat(d," ").concat(c.slice(0,m-1).join(", "),", or ")+c[m-1]:m===2?"one of ".concat(d," ").concat(c[0]," or ").concat(c[1]):"of ".concat(d," ").concat(c[0])}else return"of ".concat(d," ").concat(String(c))}function a(c,d,m){return c.substr(!m||m<0?0:+m,d.length)===d}function n(c,d,m){return(m===void 0||m>c.length)&&(m=c.length),c.substring(m-d.length,m)===d}function u(c,d,m){return typeof m!="number"&&(m=0),m+d.length>c.length?!1:c.indexOf(d,m)!==-1}return r("ERR_INVALID_OPT_VALUE",function(c,d){return'The value "'+d+'" is invalid for option "'+c+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(c,d,m){var M;typeof d=="string"&&a(d,"not ")?(M="must not be",d=d.replace(/^not /,"")):M="must be";var S;if(n(c," argument"))S="The ".concat(c," ").concat(M," ").concat(i(d,"type"));else{var R=u(c,".")?"property":"argument";S='The "'.concat(c,'" ').concat(R," ").concat(M," ").concat(i(d,"type"))}return S+=". Received type ".concat(typeof m),S},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(c){return"The "+c+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(c){return"Cannot call "+c+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(c){return"Unknown encoding: "+c},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),zd.codes=t,zd}var Gd,Ab;function _S(){if(Ab)return Gd;Ab=1;var e=js().codes.ERR_INVALID_OPT_VALUE;function t(i,a,n){return i.highWaterMark!=null?i.highWaterMark:a?i[n]:null}function r(i,a,n,u){var c=t(a,u,n);if(c!=null){if(!(isFinite(c)&&Math.floor(c)===c)||c<0){var d=u?n:"highWaterMark";throw new e(d,c)}return Math.floor(c)}return i.objectMode?16:16*1024}return Gd={getHighWaterMark:r},Gd}var Yd,Tb;function MS(){if(Tb)return Yd;Tb=1,Yd=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=bS(),a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=wS(),m=_S(),M=m.getHighWaterMark,S=js().codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||ws(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||ws();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},Yd}var Zd,Ob;function ws(){if(Ob)return Zd;Ob=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};Zd=u;var t=SS(),r=MS();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),Zd}var Xd,Ib;function yg(){if(Ib)return Xd;Ib=1;var e=js().codes.ERR_STREAM_PREMATURE_CLOSE;function t(n){var u=!1;return function(){if(!u){u=!0;for(var c=arguments.length,d=new Array(c),m=0;m<c;m++)d[m]=arguments[m];n.apply(this,d)}}}function r(){}function i(n){return n.setHeader&&typeof n.abort=="function"}function a(n,u,c){if(typeof u=="function")return a(n,null,u);u||(u={}),c=t(c||r);var d=u.readable||u.readable!==!1&&n.readable,m=u.writable||u.writable!==!1&&n.writable,M=function(){n.writable||R()},S=n._writableState&&n._writableState.finished,R=function(){m=!1,S=!0,d||c.call(n)},C=n._readableState&&n._readableState.endEmitted,P=function(){d=!1,C=!0,m||c.call(n)},k=function(H){c.call(n,H)},L=function(){var H;if(d&&!C)return(!n._readableState||!n._readableState.ended)&&(H=new e),c.call(n,H);if(m&&!S)return(!n._writableState||!n._writableState.ended)&&(H=new e),c.call(n,H)},I=function(){n.req.on("finish",R)};return i(n)?(n.on("complete",R),n.on("abort",L),n.req?I():n.on("request",I)):m&&!n._writableState&&(n.on("end",M),n.on("close",M)),n.on("end",P),n.on("finish",R),u.error!==!1&&n.on("error",k),n.on("close",L),function(){n.removeListener("complete",R),n.removeListener("abort",L),n.removeListener("request",I),n.req&&n.req.removeListener("finish",R),n.removeListener("end",M),n.removeListener("close",M),n.removeListener("finish",R),n.removeListener("end",P),n.removeListener("error",k),n.removeListener("close",L)}}return Xd=a,Xd}var Jd,Pb;function rj(){if(Pb)return Jd;Pb=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=yg(),n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return Jd=B,Jd}var Qd,Cb;function ij(){return Cb||(Cb=1,Qd=function(){throw new Error("Readable.from is not available in the browser")}),Qd}var e0,Bb;function SS(){if(Bb)return e0;Bb=1,e0=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=bS(),i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=tj(),M=wS(),S=_S(),R=S.getHighWaterMark,C=js().codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||ws(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||ws(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=rj()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=ij()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return e0}var t0,Lb;function xS(){if(Lb)return t0;Lb=1,t0=c;var e=js().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,r=e.ERR_MULTIPLE_CALLBACK,i=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=e.ERR_TRANSFORM_WITH_LENGTH_0,n=ws();Ze(c,n);function u(M,S){var R=this._transformState;R.transforming=!1;var C=R.writecb;if(C===null)return this.emit("error",new r);R.writechunk=null,R.writecb=null,S!=null&&this.push(S),C(M);var P=this._readableState;P.reading=!1,(P.needReadable||P.length<P.highWaterMark)&&this._read(P.highWaterMark)}function c(M){if(!(this instanceof c))return new c(M);n.call(this,M),this._transformState={afterTransform:u.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,M&&(typeof M.transform=="function"&&(this._transform=M.transform),typeof M.flush=="function"&&(this._flush=M.flush)),this.on("prefinish",d)}function d(){var M=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(S,R){m(M,S,R)}):m(this,null,null)}c.prototype.push=function(M,S){return this._transformState.needTransform=!1,n.prototype.push.call(this,M,S)},c.prototype._transform=function(M,S,R){R(new t("_transform()"))},c.prototype._write=function(M,S,R){var C=this._transformState;if(C.writecb=R,C.writechunk=M,C.writeencoding=S,!C.transforming){var P=this._readableState;(C.needTransform||P.needReadable||P.length<P.highWaterMark)&&this._read(P.highWaterMark)}},c.prototype._read=function(M){var S=this._transformState;S.writechunk!==null&&!S.transforming?(S.transforming=!0,this._transform(S.writechunk,S.writeencoding,S.afterTransform)):S.needTransform=!0},c.prototype._destroy=function(M,S){n.prototype._destroy.call(this,M,function(R){S(R)})};function m(M,S,R){if(S)return M.emit("error",S);if(R!=null&&M.push(R),M._writableState.length)throw new a;if(M._transformState.transforming)throw new i;return M.push(null)}return t0}var r0,Nb;function nj(){if(Nb)return r0;Nb=1,r0=t;var e=xS();Ze(t,e);function t(r){if(!(this instanceof t))return new t(r);e.call(this,r)}return t.prototype._transform=function(r,i,a){a(null,r)},r0}var i0,kb;function oj(){if(kb)return i0;kb=1;var e;function t(R){var C=!1;return function(){C||(C=!0,R.apply(void 0,arguments))}}var r=js().codes,i=r.ERR_MISSING_ARGS,a=r.ERR_STREAM_DESTROYED;function n(R){if(R)throw R}function u(R){return R.setHeader&&typeof R.abort=="function"}function c(R,C,P,k){k=t(k);var L=!1;R.on("close",function(){L=!0}),e===void 0&&(e=yg()),e(R,{readable:C,writable:P},function(B){if(B)return k(B);L=!0,k()});var I=!1;return function(B){if(!L&&!I){if(I=!0,u(R))return R.abort();if(typeof R.destroy=="function")return R.destroy();k(B||new a("pipe"))}}}function d(R){R()}function m(R,C){return R.pipe(C)}function M(R){return!R.length||typeof R[R.length-1]!="function"?n:R.pop()}function S(){for(var R=arguments.length,C=new Array(R),P=0;P<R;P++)C[P]=arguments[P];var k=M(C);if(Array.isArray(C[0])&&(C=C[0]),C.length<2)throw new i("streams");var L,I=C.map(function(B,H){var F=H<C.length-1,W=H>0;return c(B,F,W,function(Y){L||(L=Y),Y&&I.forEach(d),!F&&(I.forEach(d),k(L))})});return C.reduce(m)}return i0=S,i0}var aj=vi,bg=Or.EventEmitter,sj=Ze;sj(vi,bg);vi.Readable=SS();vi.Writable=MS();vi.Duplex=ws();vi.Transform=xS();vi.PassThrough=nj();vi.finished=yg();vi.pipeline=oj();vi.Stream=vi;function vi(){bg.call(this)}vi.prototype.pipe=function(e,t){var r=this;function i(M){e.writable&&e.write(M)===!1&&r.pause&&r.pause()}r.on("data",i);function a(){r.readable&&r.resume&&r.resume()}e.on("drain",a),!e._isStdio&&(!t||t.end!==!1)&&(r.on("end",u),r.on("close",c));var n=!1;function u(){n||(n=!0,e.end())}function c(){n||(n=!0,typeof e.destroy=="function"&&e.destroy())}function d(M){if(m(),bg.listenerCount(this,"error")===0)throw M}r.on("error",d),e.on("error",d);function m(){r.removeListener("data",i),e.removeListener("drain",a),r.removeListener("end",u),r.removeListener("close",c),r.removeListener("error",d),e.removeListener("error",d),r.removeListener("end",m),r.removeListener("close",m),e.removeListener("close",m)}return r.on("end",m),r.on("close",m),e.on("close",m),e.emit("pipe",r),e};var ES=pt.Buffer,RS=aj.Transform,fj=Xr().StringDecoder,uj=Ze;function Ui(e){RS.call(this),this.hashMode=typeof e=="string",this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}uj(Ui,RS);Ui.prototype.update=function(e,t,r){typeof e=="string"&&(e=ES.from(e,t));var i=this._update(e);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)};Ui.prototype.setAutoPadding=function(){};Ui.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};Ui.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};Ui.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};Ui.prototype._transform=function(e,t,r){var i;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(a){i=a}finally{r(i)}};Ui.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(r){t=r}e(t)};Ui.prototype._finalOrDigest=function(e){var t=this.__final()||ES.alloc(0);return e&&(t=this._toString(t,e,!0)),t};Ui.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new fj(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var i=this._decoder.write(e);return r&&(i+=this._decoder.end()),i};var $o=Ui,lj=Ze,hj=vg,cj=gg,dj=mg,AS=$o;function ec(e){AS.call(this,"digest"),this._hash=e}lj(ec,AS);ec.prototype._update=function(e){this._hash.update(e)};ec.prototype._final=function(){return this._hash.digest()};var Tu=function(t){return t=t.toLowerCase(),t==="md5"?new hj:t==="rmd160"||t==="ripemd160"?new cj:new ec(dj(t))},pj=Ze,Xo=pt.Buffer,TS=$o,vj=Xo.alloc(128),Fa=64;function tc(e,t){TS.call(this,"digest"),typeof t=="string"&&(t=Xo.from(t)),this._alg=e,this._key=t,t.length>Fa?t=e(t):t.length<Fa&&(t=Xo.concat([t,vj],Fa));for(var r=this._ipad=Xo.allocUnsafe(Fa),i=this._opad=Xo.allocUnsafe(Fa),a=0;a<Fa;a++)r[a]=t[a]^54,i[a]=t[a]^92;this._hash=[r]}pj(tc,TS);tc.prototype._update=function(e){this._hash.push(e)};tc.prototype._final=function(){var e=this._alg(Xo.concat(this._hash));return this._alg(Xo.concat([this._opad,e]))};var gj=tc,mj=vg,OS=function(e){return new mj().update(e).digest()},yj=Ze,bj=gj,IS=$o,xf=pt.Buffer,wj=OS,Up=gg,Hp=mg,_j=xf.alloc(128);function ou(e,t){IS.call(this,"digest"),typeof t=="string"&&(t=xf.from(t));var r=e==="sha512"||e==="sha384"?128:64;if(this._alg=e,this._key=t,t.length>r){var i=e==="rmd160"?new Up:Hp(e);t=i.update(t).digest()}else t.length<r&&(t=xf.concat([t,_j],r));for(var a=this._ipad=xf.allocUnsafe(r),n=this._opad=xf.allocUnsafe(r),u=0;u<r;u++)a[u]=t[u]^54,n[u]=t[u]^92;this._hash=e==="rmd160"?new Up:Hp(e),this._hash.update(a)}yj(ou,IS);ou.prototype._update=function(e){this._hash.update(e)};ou.prototype._final=function(){var e=this._hash.digest(),t=this._alg==="rmd160"?new Up:Hp(this._alg);return t.update(this._opad).update(e).digest()};var PS=function(t,r){return t=t.toLowerCase(),t==="rmd160"||t==="ripemd160"?new ou("rmd160",r):t==="md5"?new bj(wj,r):new ou(t,r)};const Mj={sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},Sj={sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},xj={sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},Ej={sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},Rj={sign:"ecdsa",hash:"sha256",id:""},Aj={sign:"ecdsa",hash:"sha224",id:""},Tj={sign:"ecdsa",hash:"sha384",id:""},Oj={sign:"ecdsa",hash:"sha512",id:""},Ij={sign:"dsa",hash:"sha1",id:""},Pj={sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},Cj={sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},CS={sha224WithRSAEncryption:Mj,"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:Sj,"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:xj,"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:Ej,"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:Rj,sha224:Aj,sha384:Tj,sha512:Oj,"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:Ij,"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:Pj,"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:Cj,"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}};var Bj=CS,rc={},Lj=Math.pow(2,30)-1,BS=function(e,t){if(typeof e!="number")throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if(typeof t!="number")throw new TypeError("Key length not a number");if(t<0||t>Lj||t!==t)throw new TypeError("Bad key length")},ml;if(Ye.process&&Ye.process.browser)ml="utf-8";else if(Ye.process&&Ye.process.version){var Nj=parseInt(we.version.split(".")[0].slice(1),10);ml=Nj>=6?"utf-8":"binary"}else ml="utf-8";var LS=ml,n0=pt.Buffer,NS=function(e,t,r){if(n0.isBuffer(e))return e;if(typeof e=="string")return n0.from(e,t);if(ArrayBuffer.isView(e))return n0.from(e.buffer);throw new TypeError(r+" must be a string, a Buffer, a typed array or a DataView")},kj=OS,$j=gg,Dj=mg,Jo=pt.Buffer,Fj=BS,$b=LS,Db=NS,jj=Jo.alloc(128),yl={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function kS(e,t,r){var i=Uj(e),a=e==="sha512"||e==="sha384"?128:64;t.length>a?t=i(t):t.length<a&&(t=Jo.concat([t,jj],a));for(var n=Jo.allocUnsafe(a+yl[e]),u=Jo.allocUnsafe(a+yl[e]),c=0;c<a;c++)n[c]=t[c]^54,u[c]=t[c]^92;var d=Jo.allocUnsafe(a+r+4);n.copy(d,0,0,a),this.ipad1=d,this.ipad2=n,this.opad=u,this.alg=e,this.blocksize=a,this.hash=i,this.size=yl[e]}kS.prototype.run=function(e,t){e.copy(t,this.blocksize);var r=this.hash(t);return r.copy(this.opad,this.blocksize),this.hash(this.opad)};function Uj(e){function t(i){return Dj(e).update(i).digest()}function r(i){return new $j().update(i).digest()}return e==="rmd160"||e==="ripemd160"?r:e==="md5"?kj:t}function Hj(e,t,r,i,a){Fj(r,i),e=Db(e,$b,"Password"),t=Db(t,$b,"Salt"),a=a||"sha1";var n=new kS(a,e,t.length),u=Jo.allocUnsafe(i),c=Jo.allocUnsafe(t.length+4);t.copy(c,0,0,t.length);for(var d=0,m=yl[a],M=Math.ceil(i/m),S=1;S<=M;S++){c.writeUInt32BE(S,t.length);for(var R=n.run(c,n.ipad1),C=R,P=1;P<r;P++){C=n.run(C,n.ipad2);for(var k=0;k<m;k++)R[k]^=C[k]}R.copy(u,d),d+=m}return u}var $S=Hj,DS=pt.Buffer,qj=BS,Fb=LS,jb=$S,Ub=NS,Xu,jf=Ye.crypto&&Ye.crypto.subtle,Wj={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},o0=[];function Kj(e){if(Ye.process&&!Ye.process.browser||!jf||!jf.importKey||!jf.deriveBits)return Promise.resolve(!1);if(o0[e]!==void 0)return o0[e];Xu=Xu||DS.alloc(8);var t=FS(Xu,Xu,10,128,e).then(function(){return!0}).catch(function(){return!1});return o0[e]=t,t}var Uo;function qp(){return Uo||(Ye.process&&Ye.process.nextTick?Uo=Ye.process.nextTick:Ye.queueMicrotask?Uo=Ye.queueMicrotask:Ye.setImmediate?Uo=Ye.setImmediate:Uo=Ye.setTimeout,Uo)}function FS(e,t,r,i,a){return jf.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then(function(n){return jf.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:a}},n,i<<3)}).then(function(n){return DS.from(n)})}function Vj(e,t){e.then(function(r){qp()(function(){t(null,r)})},function(r){qp()(function(){t(r)})})}var zj=function(e,t,r,i,a,n){typeof a=="function"&&(n=a,a=void 0),a=a||"sha1";var u=Wj[a.toLowerCase()];if(!u||typeof Ye.Promise!="function"){qp()(function(){var c;try{c=jb(e,t,r,i,a)}catch(d){return n(d)}n(null,c)});return}if(qj(r,i),e=Ub(e,Fb,"Password"),t=Ub(t,Fb,"Salt"),typeof n!="function")throw new Error("No callback provided to pbkdf2");Vj(Kj(u).then(function(c){return c?FS(e,t,r,i,u):jb(e,t,r,i,a)}),n)};rc.pbkdf2=zj;rc.pbkdf2Sync=$S;var $i={},Us={},ti={};ti.readUInt32BE=function(t,r){var i=t[0+r]<<24|t[1+r]<<16|t[2+r]<<8|t[3+r];return i>>>0};ti.writeUInt32BE=function(t,r,i){t[0+i]=r>>>24,t[1+i]=r>>>16&255,t[2+i]=r>>>8&255,t[3+i]=r&255};ti.ip=function(t,r,i,a){for(var n=0,u=0,c=6;c>=0;c-=2){for(var d=0;d<=24;d+=8)n<<=1,n|=r>>>d+c&1;for(var d=0;d<=24;d+=8)n<<=1,n|=t>>>d+c&1}for(var c=6;c>=0;c-=2){for(var d=1;d<=25;d+=8)u<<=1,u|=r>>>d+c&1;for(var d=1;d<=25;d+=8)u<<=1,u|=t>>>d+c&1}i[a+0]=n>>>0,i[a+1]=u>>>0};ti.rip=function(t,r,i,a){for(var n=0,u=0,c=0;c<4;c++)for(var d=24;d>=0;d-=8)n<<=1,n|=r>>>d+c&1,n<<=1,n|=t>>>d+c&1;for(var c=4;c<8;c++)for(var d=24;d>=0;d-=8)u<<=1,u|=r>>>d+c&1,u<<=1,u|=t>>>d+c&1;i[a+0]=n>>>0,i[a+1]=u>>>0};ti.pc1=function(t,r,i,a){for(var n=0,u=0,c=7;c>=5;c--){for(var d=0;d<=24;d+=8)n<<=1,n|=r>>d+c&1;for(var d=0;d<=24;d+=8)n<<=1,n|=t>>d+c&1}for(var d=0;d<=24;d+=8)n<<=1,n|=r>>d+c&1;for(var c=1;c<=3;c++){for(var d=0;d<=24;d+=8)u<<=1,u|=r>>d+c&1;for(var d=0;d<=24;d+=8)u<<=1,u|=t>>d+c&1}for(var d=0;d<=24;d+=8)u<<=1,u|=t>>d+c&1;i[a+0]=n>>>0,i[a+1]=u>>>0};ti.r28shl=function(t,r){return t<<r&268435455|t>>>28-r};var Ju=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];ti.pc2=function(t,r,i,a){for(var n=0,u=0,c=Ju.length>>>1,d=0;d<c;d++)n<<=1,n|=t>>>Ju[d]&1;for(var d=c;d<Ju.length;d++)u<<=1,u|=r>>>Ju[d]&1;i[a+0]=n>>>0,i[a+1]=u>>>0};ti.expand=function(t,r,i){var a=0,n=0;a=(t&1)<<5|t>>>27;for(var u=23;u>=15;u-=4)a<<=6,a|=t>>>u&63;for(var u=11;u>=3;u-=4)n|=t>>>u&63,n<<=6;n|=(t&31)<<1|t>>>31,r[i+0]=a>>>0,r[i+1]=n>>>0};var Hb=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];ti.substitute=function(t,r){for(var i=0,a=0;a<4;a++){var n=t>>>18-a*6&63,u=Hb[a*64+n];i<<=4,i|=u}for(var a=0;a<4;a++){var n=r>>>18-a*6&63,u=Hb[4*64+a*64+n];i<<=4,i|=u}return i>>>0};var qb=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];ti.permute=function(t){for(var r=0,i=0;i<qb.length;i++)r<<=1,r|=t>>>qb[i]&1;return r>>>0};ti.padSplit=function(t,r,i){for(var a=t.toString(2);a.length<r;)a="0"+a;for(var n=[],u=0;u<r;u+=i)n.push(a.slice(u,u+i));return n.join(" ")};var Si=jS;function jS(e,t){if(!e)throw new Error(t||"Assertion failed")}jS.equal=function(t,r,i){if(t!=r)throw new Error(i||"Assertion failed: "+t+" != "+r)};var Gj=Si;function xi(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0,this.padding=e.padding!==!1}var wg=xi;xi.prototype._init=function(){};xi.prototype.update=function(t){return t.length===0?[]:this.type==="decrypt"?this._updateDecrypt(t):this._updateEncrypt(t)};xi.prototype._buffer=function(t,r){for(var i=Math.min(this.buffer.length-this.bufferOff,t.length-r),a=0;a<i;a++)this.buffer[this.bufferOff+a]=t[r+a];return this.bufferOff+=i,i};xi.prototype._flushBuffer=function(t,r){return this._update(this.buffer,0,t,r),this.bufferOff=0,this.blockSize};xi.prototype._updateEncrypt=function(t){var r=0,i=0,a=(this.bufferOff+t.length)/this.blockSize|0,n=new Array(a*this.blockSize);this.bufferOff!==0&&(r+=this._buffer(t,r),this.bufferOff===this.buffer.length&&(i+=this._flushBuffer(n,i)));for(var u=t.length-(t.length-r)%this.blockSize;r<u;r+=this.blockSize)this._update(t,r,n,i),i+=this.blockSize;for(;r<t.length;r++,this.bufferOff++)this.buffer[this.bufferOff]=t[r];return n};xi.prototype._updateDecrypt=function(t){for(var r=0,i=0,a=Math.ceil((this.bufferOff+t.length)/this.blockSize)-1,n=new Array(a*this.blockSize);a>0;a--)r+=this._buffer(t,r),i+=this._flushBuffer(n,i);return r+=this._buffer(t,r),n};xi.prototype.final=function(t){var r;t&&(r=this.update(t));var i;return this.type==="encrypt"?i=this._finalEncrypt():i=this._finalDecrypt(),r?r.concat(i):i};xi.prototype._pad=function(t,r){if(r===0)return!1;for(;r<t.length;)t[r++]=0;return!0};xi.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var t=new Array(this.blockSize);return this._update(this.buffer,0,t,0),t};xi.prototype._unpad=function(t){return t};xi.prototype._finalDecrypt=function(){Gj.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var t=new Array(this.blockSize);return this._flushBuffer(t,0),this._unpad(t)};var US=Si,Yj=Ze,or=ti,HS=wg;function Zj(){this.tmp=new Array(2),this.keys=null}function fn(e){HS.call(this,e);var t=new Zj;this._desState=t,this.deriveKeys(t,e.key)}Yj(fn,HS);var qS=fn;fn.create=function(t){return new fn(t)};var Xj=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];fn.prototype.deriveKeys=function(t,r){t.keys=new Array(16*2),US.equal(r.length,this.blockSize,"Invalid key length");var i=or.readUInt32BE(r,0),a=or.readUInt32BE(r,4);or.pc1(i,a,t.tmp,0),i=t.tmp[0],a=t.tmp[1];for(var n=0;n<t.keys.length;n+=2){var u=Xj[n>>>1];i=or.r28shl(i,u),a=or.r28shl(a,u),or.pc2(i,a,t.keys,n)}};fn.prototype._update=function(t,r,i,a){var n=this._desState,u=or.readUInt32BE(t,r),c=or.readUInt32BE(t,r+4);or.ip(u,c,n.tmp,0),u=n.tmp[0],c=n.tmp[1],this.type==="encrypt"?this._encrypt(n,u,c,n.tmp,0):this._decrypt(n,u,c,n.tmp,0),u=n.tmp[0],c=n.tmp[1],or.writeUInt32BE(i,u,a),or.writeUInt32BE(i,c,a+4)};fn.prototype._pad=function(t,r){if(this.padding===!1)return!1;for(var i=t.length-r,a=r;a<t.length;a++)t[a]=i;return!0};fn.prototype._unpad=function(t){if(this.padding===!1)return t;for(var r=t[t.length-1],i=t.length-r;i<t.length;i++)US.equal(t[i],r);return t.slice(0,t.length-r)};fn.prototype._encrypt=function(t,r,i,a,n){for(var u=r,c=i,d=0;d<t.keys.length;d+=2){var m=t.keys[d],M=t.keys[d+1];or.expand(c,t.tmp,0),m^=t.tmp[0],M^=t.tmp[1];var S=or.substitute(m,M),R=or.permute(S),C=c;c=(u^R)>>>0,u=C}or.rip(c,u,a,n)};fn.prototype._decrypt=function(t,r,i,a,n){for(var u=i,c=r,d=t.keys.length-2;d>=0;d-=2){var m=t.keys[d],M=t.keys[d+1];or.expand(u,t.tmp,0),m^=t.tmp[0],M^=t.tmp[1];var S=or.substitute(m,M),R=or.permute(S),C=u;u=(c^R)>>>0,c=C}or.rip(u,c,a,n)};var WS={},Jj=Si,Qj=Ze,Ql={};function eU(e){Jj.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}function tU(e){function t(n){e.call(this,n),this._cbcInit()}Qj(t,e);for(var r=Object.keys(Ql),i=0;i<r.length;i++){var a=r[i];t.prototype[a]=Ql[a]}return t.create=function(u){return new t(u)},t}WS.instantiate=tU;Ql._cbcInit=function(){var t=new eU(this.options.iv);this._cbcState=t};Ql._update=function(t,r,i,a){var n=this._cbcState,u=this.constructor.super_.prototype,c=n.iv;if(this.type==="encrypt"){for(var d=0;d<this.blockSize;d++)c[d]^=t[r+d];u._update.call(this,c,0,i,a);for(var d=0;d<this.blockSize;d++)c[d]=i[a+d]}else{u._update.call(this,t,r,i,a);for(var d=0;d<this.blockSize;d++)i[a+d]^=c[d];for(var d=0;d<this.blockSize;d++)c[d]=t[r+d]}};var rU=Si,iU=Ze,KS=wg,ao=qS;function nU(e,t){rU.equal(t.length,24,"Invalid key length");var r=t.slice(0,8),i=t.slice(8,16),a=t.slice(16,24);e==="encrypt"?this.ciphers=[ao.create({type:"encrypt",key:r}),ao.create({type:"decrypt",key:i}),ao.create({type:"encrypt",key:a})]:this.ciphers=[ao.create({type:"decrypt",key:a}),ao.create({type:"encrypt",key:i}),ao.create({type:"decrypt",key:r})]}function da(e){KS.call(this,e);var t=new nU(this.type,this.options.key);this._edeState=t}iU(da,KS);var oU=da;da.create=function(t){return new da(t)};da.prototype._update=function(t,r,i,a){var n=this._edeState;n.ciphers[0]._update(t,r,i,a),n.ciphers[1]._update(i,a,i,a),n.ciphers[2]._update(i,a,i,a)};da.prototype._pad=ao.prototype._pad;da.prototype._unpad=ao.prototype._unpad;Us.utils=ti;Us.Cipher=wg;Us.DES=qS;Us.CBC=WS;Us.EDE=oU;var VS=$o,yn=Us,aU=Ze,zo=pt.Buffer,au={"des-ede3-cbc":yn.CBC.instantiate(yn.EDE),"des-ede3":yn.EDE,"des-ede-cbc":yn.CBC.instantiate(yn.EDE),"des-ede":yn.EDE,"des-cbc":yn.CBC.instantiate(yn.DES),"des-ecb":yn.DES};au.des=au["des-cbc"];au.des3=au["des-ede3-cbc"];var sU=ic;aU(ic,VS);function ic(e){VS.call(this);var t=e.mode.toLowerCase(),r=au[t],i;e.decrypt?i="decrypt":i="encrypt";var a=e.key;zo.isBuffer(a)||(a=zo.from(a)),(t==="des-ede"||t==="des-ede-cbc")&&(a=zo.concat([a,a.slice(0,8)]));var n=e.iv;zo.isBuffer(n)||(n=zo.from(n)),this._des=r.create({key:a,iv:n,type:i})}ic.prototype._update=function(e){return zo.from(this._des.update(e))};ic.prototype._final=function(){return zo.from(this._des.final())};var Qr={},_g={},Mg={};Mg.encrypt=function(e,t){return e._cipher.encryptBlock(t)};Mg.decrypt=function(e,t){return e._cipher.decryptBlock(t)};var Sg={},Ou=function(t,r){for(var i=Math.min(t.length,r.length),a=new ke.Buffer(i),n=0;n<i;++n)a[n]=t[n]^r[n];return a},zS=Ou;Sg.encrypt=function(e,t){var r=zS(t,e._prev);return e._prev=e._cipher.encryptBlock(r),e._prev};Sg.decrypt=function(e,t){var r=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return zS(i,r)};var GS={},Ef=pt.Buffer,fU=Ou;function Wb(e,t,r){var i=t.length,a=fU(t,e._cache);return e._cache=e._cache.slice(i),e._prev=Ef.concat([e._prev,r?t:a]),a}GS.encrypt=function(e,t,r){for(var i=Ef.allocUnsafe(0),a;t.length;)if(e._cache.length===0&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=Ef.allocUnsafe(0)),e._cache.length<=t.length)a=e._cache.length,i=Ef.concat([i,Wb(e,t.slice(0,a),r)]),t=t.slice(a);else{i=Ef.concat([i,Wb(e,t,r)]);break}return i};var YS={},Wp=pt.Buffer;function uU(e,t,r){var i=e._cipher.encryptBlock(e._prev),a=i[0]^t;return e._prev=Wp.concat([e._prev.slice(1),Wp.from([r?t:a])]),a}YS.encrypt=function(e,t,r){for(var i=t.length,a=Wp.allocUnsafe(i),n=-1;++n<i;)a[n]=uU(e,t[n],r);return a};var ZS={},bl=pt.Buffer;function lU(e,t,r){for(var i,a=-1,n=8,u=0,c,d;++a<n;)i=e._cipher.encryptBlock(e._prev),c=t&1<<7-a?128:0,d=i[0]^c,u+=(d&128)>>a%8,e._prev=hU(e._prev,r?c:d);return u}function hU(e,t){var r=e.length,i=-1,a=bl.allocUnsafe(e.length);for(e=bl.concat([e,bl.from([t])]);++i<r;)a[i]=e[i]<<1|e[i+1]>>7;return a}ZS.encrypt=function(e,t,r){for(var i=t.length,a=bl.allocUnsafe(i),n=-1;++n<i;)a[n]=lU(e,t[n],r);return a};var XS={},cU=Ou;function dU(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}XS.encrypt=function(e,t){for(;e._cache.length<t.length;)e._cache=ke.Buffer.concat([e._cache,dU(e)]);var r=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),cU(t,r)};var Kp={};function pU(e){for(var t=e.length,r;t--;)if(r=e.readUInt8(t),r===255)e.writeUInt8(0,t);else{r++,e.writeUInt8(r,t);break}}var JS=pU,vU=Ou,Kb=pt.Buffer,gU=JS;function mU(e){var t=e._cipher.encryptBlockRaw(e._prev);return gU(e._prev),t}var a0=16;Kp.encrypt=function(e,t){var r=Math.ceil(t.length/a0),i=e._cache.length;e._cache=Kb.concat([e._cache,Kb.allocUnsafe(r*a0)]);for(var a=0;a<r;a++){var n=mU(e),u=i+a*a0;e._cache.writeUInt32BE(n[0],u+0),e._cache.writeUInt32BE(n[1],u+4),e._cache.writeUInt32BE(n[2],u+8),e._cache.writeUInt32BE(n[3],u+12)}var c=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),vU(t,c)};const yU={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},bU={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},wU={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},QS={"aes-128-ecb":{cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},"aes-192-ecb":{cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},"aes-256-ecb":{cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},"aes-128-cbc":{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},"aes-192-cbc":{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},"aes-256-cbc":{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},aes128:yU,aes192:bU,aes256:wU,"aes-128-cfb":{cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},"aes-192-cfb":{cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},"aes-256-cfb":{cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},"aes-128-cfb8":{cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"},"aes-192-cfb8":{cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"},"aes-256-cfb8":{cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"},"aes-128-cfb1":{cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"},"aes-192-cfb1":{cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"},"aes-256-cfb1":{cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"},"aes-128-ofb":{cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},"aes-192-ofb":{cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},"aes-256-ofb":{cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},"aes-128-ctr":{cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},"aes-192-ctr":{cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},"aes-256-ctr":{cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"},"aes-128-gcm":{cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"},"aes-192-gcm":{cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"},"aes-256-gcm":{cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}};var _U={ECB:Mg,CBC:Sg,CFB:GS,CFB8:YS,CFB1:ZS,OFB:XS,CTR:Kp,GCM:Kp},wl=QS;for(var Vb in wl)wl[Vb].module=_U[wl[Vb].mode];var xg=wl,Iu={},eh=pt.Buffer;function Eg(e){eh.isBuffer(e)||(e=eh.from(e));for(var t=e.length/4|0,r=new Array(t),i=0;i<t;i++)r[i]=e.readUInt32BE(i*4);return r}function s0(e){for(var t=0;t<e.length;e++)e[t]=0}function ex(e,t,r,i,a){for(var n=r[0],u=r[1],c=r[2],d=r[3],m=e[0]^t[0],M=e[1]^t[1],S=e[2]^t[2],R=e[3]^t[3],C,P,k,L,I=4,B=1;B<a;B++)C=n[m>>>24]^u[M>>>16&255]^c[S>>>8&255]^d[R&255]^t[I++],P=n[M>>>24]^u[S>>>16&255]^c[R>>>8&255]^d[m&255]^t[I++],k=n[S>>>24]^u[R>>>16&255]^c[m>>>8&255]^d[M&255]^t[I++],L=n[R>>>24]^u[m>>>16&255]^c[M>>>8&255]^d[S&255]^t[I++],m=C,M=P,S=k,R=L;return C=(i[m>>>24]<<24|i[M>>>16&255]<<16|i[S>>>8&255]<<8|i[R&255])^t[I++],P=(i[M>>>24]<<24|i[S>>>16&255]<<16|i[R>>>8&255]<<8|i[m&255])^t[I++],k=(i[S>>>24]<<24|i[R>>>16&255]<<16|i[m>>>8&255]<<8|i[M&255])^t[I++],L=(i[R>>>24]<<24|i[m>>>16&255]<<16|i[M>>>8&255]<<8|i[S&255])^t[I++],C=C>>>0,P=P>>>0,k=k>>>0,L=L>>>0,[C,P,k,L]}var MU=[0,1,2,4,8,16,32,64,128,27,54],nr=function(){for(var e=new Array(256),t=0;t<256;t++)t<128?e[t]=t<<1:e[t]=t<<1^283;for(var r=[],i=[],a=[[],[],[],[]],n=[[],[],[],[]],u=0,c=0,d=0;d<256;++d){var m=c^c<<1^c<<2^c<<3^c<<4;m=m>>>8^m&255^99,r[u]=m,i[m]=u;var M=e[u],S=e[M],R=e[S],C=e[m]*257^m*16843008;a[0][u]=C<<24|C>>>8,a[1][u]=C<<16|C>>>16,a[2][u]=C<<8|C>>>24,a[3][u]=C,C=R*16843009^S*65537^M*257^u*16843008,n[0][m]=C<<24|C>>>8,n[1][m]=C<<16|C>>>16,n[2][m]=C<<8|C>>>24,n[3][m]=C,u===0?u=c=1:(u=M^e[e[e[R^M]]],c^=e[e[c]])}return{SBOX:r,INV_SBOX:i,SUB_MIX:a,INV_SUB_MIX:n}}();function gi(e){this._key=Eg(e),this._reset()}gi.blockSize=4*4;gi.keySize=256/8;gi.prototype.blockSize=gi.blockSize;gi.prototype.keySize=gi.keySize;gi.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,i=(r+1)*4,a=[],n=0;n<t;n++)a[n]=e[n];for(n=t;n<i;n++){var u=a[n-1];n%t===0?(u=u<<8|u>>>24,u=nr.SBOX[u>>>24]<<24|nr.SBOX[u>>>16&255]<<16|nr.SBOX[u>>>8&255]<<8|nr.SBOX[u&255],u^=MU[n/t|0]<<24):t>6&&n%t===4&&(u=nr.SBOX[u>>>24]<<24|nr.SBOX[u>>>16&255]<<16|nr.SBOX[u>>>8&255]<<8|nr.SBOX[u&255]),a[n]=a[n-t]^u}for(var c=[],d=0;d<i;d++){var m=i-d,M=a[m-(d%4?0:4)];d<4||m<=4?c[d]=M:c[d]=nr.INV_SUB_MIX[0][nr.SBOX[M>>>24]]^nr.INV_SUB_MIX[1][nr.SBOX[M>>>16&255]]^nr.INV_SUB_MIX[2][nr.SBOX[M>>>8&255]]^nr.INV_SUB_MIX[3][nr.SBOX[M&255]]}this._nRounds=r,this._keySchedule=a,this._invKeySchedule=c};gi.prototype.encryptBlockRaw=function(e){return e=Eg(e),ex(e,this._keySchedule,nr.SUB_MIX,nr.SBOX,this._nRounds)};gi.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=eh.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r};gi.prototype.decryptBlock=function(e){e=Eg(e);var t=e[1];e[1]=e[3],e[3]=t;var r=ex(e,this._invKeySchedule,nr.INV_SUB_MIX,nr.INV_SBOX,this._nRounds),i=eh.allocUnsafe(16);return i.writeUInt32BE(r[0],0),i.writeUInt32BE(r[3],4),i.writeUInt32BE(r[2],8),i.writeUInt32BE(r[1],12),i};gi.prototype.scrub=function(){s0(this._keySchedule),s0(this._invKeySchedule),s0(this._key)};Iu.AES=gi;var _s=pt.Buffer,SU=_s.alloc(16,0);function xU(e){return[e.readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)]}function tx(e){var t=_s.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function Pu(e){this.h=e,this.state=_s.alloc(16,0),this.cache=_s.allocUnsafe(0)}Pu.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()};Pu.prototype._multiply=function(){for(var e=xU(this.h),t=[0,0,0,0],r,i,a,n=-1;++n<128;){for(i=(this.state[~~(n/8)]&1<<7-n%8)!==0,i&&(t[0]^=e[0],t[1]^=e[1],t[2]^=e[2],t[3]^=e[3]),a=(e[3]&1)!==0,r=3;r>0;r--)e[r]=e[r]>>>1|(e[r-1]&1)<<31;e[0]=e[0]>>>1,a&&(e[0]=e[0]^225<<24)}this.state=tx(t)};Pu.prototype.update=function(e){this.cache=_s.concat([this.cache,e]);for(var t;this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)};Pu.prototype.final=function(e,t){return this.cache.length&&this.ghash(_s.concat([this.cache,SU],16)),this.ghash(tx([0,e,0,t])),this.state};var EU=Pu,RU=Iu,jr=pt.Buffer,rx=$o,AU=Ze,ix=EU,TU=Ou,OU=JS;function IU(e,t){var r=0;e.length!==t.length&&r++;for(var i=Math.min(e.length,t.length),a=0;a<i;++a)r+=e[a]^t[a];return r}function PU(e,t,r){if(t.length===12)return e._finID=jr.concat([t,jr.from([0,0,0,1])]),jr.concat([t,jr.from([0,0,0,2])]);var i=new ix(r),a=t.length,n=a%16;i.update(t),n&&(n=16-n,i.update(jr.alloc(n,0))),i.update(jr.alloc(8,0));var u=a*8,c=jr.alloc(8);c.writeUIntBE(u,0,8),i.update(c),e._finID=i.state;var d=jr.from(e._finID);return OU(d),d}function Oa(e,t,r,i){rx.call(this);var a=jr.alloc(4,0);this._cipher=new RU.AES(t);var n=this._cipher.encryptBlock(a);this._ghash=new ix(n),r=PU(this,r,n),this._prev=jr.from(r),this._cache=jr.allocUnsafe(0),this._secCache=jr.allocUnsafe(0),this._decrypt=i,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}AU(Oa,rx);Oa.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=jr.alloc(t,0),this._ghash.update(t))}this._called=!0;var r=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(r),this._len+=e.length,r};Oa.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=TU(this._ghash.final(this._alen*8,this._len*8),this._cipher.encryptBlock(this._finID));if(this._decrypt&&IU(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()};Oa.prototype.getAuthTag=function(){if(this._decrypt||!jr.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag};Oa.prototype.setAuthTag=function(t){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=t};Oa.prototype.setAAD=function(t){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(t),this._alen+=t.length};var nx=Oa,CU=Iu,f0=pt.Buffer,ox=$o,BU=Ze;function nc(e,t,r,i){ox.call(this),this._cipher=new CU.AES(t),this._prev=f0.from(r),this._cache=f0.allocUnsafe(0),this._secCache=f0.allocUnsafe(0),this._decrypt=i,this._mode=e}BU(nc,ox);nc.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)};nc.prototype._final=function(){this._cipher.scrub()};var ax=nc,Ho=pt.Buffer,LU=vg;function NU(e,t,r,i){if(Ho.isBuffer(e)||(e=Ho.from(e,"binary")),t&&(Ho.isBuffer(t)||(t=Ho.from(t,"binary")),t.length!==8))throw new RangeError("salt should be Buffer with 8 byte length");for(var a=r/8,n=Ho.alloc(a),u=Ho.alloc(i||0),c=Ho.alloc(0);a>0||i>0;){var d=new LU;d.update(c),d.update(e),t&&d.update(t),c=d.digest();var m=0;if(a>0){var M=n.length-a;m=Math.min(a,c.length),c.copy(n,M,0,m),a-=m}if(m<c.length&&i>0){var S=u.length-i,R=Math.min(i,c.length-m);c.copy(u,S,m,m+R),i-=R}}return c.fill(0),{key:n,iv:u}}var oc=NU,sx=xg,kU=nx,jn=pt.Buffer,$U=ax,fx=$o,DU=Iu,FU=oc,jU=Ze;function Cu(e,t,r){fx.call(this),this._cache=new ac,this._cipher=new DU.AES(t),this._prev=jn.from(r),this._mode=e,this._autopadding=!0}jU(Cu,fx);Cu.prototype._update=function(e){this._cache.add(e);for(var t,r,i=[];t=this._cache.get();)r=this._mode.encrypt(this,t),i.push(r);return jn.concat(i)};var UU=jn.alloc(16,16);Cu.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(UU))throw this._cipher.scrub(),new Error("data not multiple of block length")};Cu.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this};function ac(){this.cache=jn.allocUnsafe(0)}ac.prototype.add=function(e){this.cache=jn.concat([this.cache,e])};ac.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null};ac.prototype.flush=function(){for(var e=16-this.cache.length,t=jn.allocUnsafe(e),r=-1;++r<e;)t.writeUInt8(e,r);return jn.concat([this.cache,t])};function ux(e,t,r){var i=sx[e.toLowerCase()];if(!i)throw new TypeError("invalid suite type");if(typeof t=="string"&&(t=jn.from(t)),t.length!==i.key/8)throw new TypeError("invalid key length "+t.length);if(typeof r=="string"&&(r=jn.from(r)),i.mode!=="GCM"&&r.length!==i.iv)throw new TypeError("invalid iv length "+r.length);return i.type==="stream"?new $U(i.module,t,r):i.type==="auth"?new kU(i.module,t,r):new Cu(i.module,t,r)}function HU(e,t){var r=sx[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var i=FU(t,!1,r.key,r.iv);return ux(e,i.key,i.iv)}_g.createCipheriv=ux;_g.createCipher=HU;var Rg={},qU=nx,Ms=pt.Buffer,lx=xg,WU=ax,hx=$o,KU=Iu,VU=oc,zU=Ze;function Bu(e,t,r){hx.call(this),this._cache=new sc,this._last=void 0,this._cipher=new KU.AES(t),this._prev=Ms.from(r),this._mode=e,this._autopadding=!0}zU(Bu,hx);Bu.prototype._update=function(e){this._cache.add(e);for(var t,r,i=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),i.push(r);return Ms.concat(i)};Bu.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return GU(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")};Bu.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this};function sc(){this.cache=Ms.allocUnsafe(0)}sc.prototype.add=function(e){this.cache=Ms.concat([this.cache,e])};sc.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null};sc.prototype.flush=function(){if(this.cache.length)return this.cache};function GU(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");for(var r=-1;++r<t;)if(e[r+(16-t)]!==t)throw new Error("unable to decrypt data");if(t!==16)return e.slice(0,16-t)}function cx(e,t,r){var i=lx[e.toLowerCase()];if(!i)throw new TypeError("invalid suite type");if(typeof r=="string"&&(r=Ms.from(r)),i.mode!=="GCM"&&r.length!==i.iv)throw new TypeError("invalid iv length "+r.length);if(typeof t=="string"&&(t=Ms.from(t)),t.length!==i.key/8)throw new TypeError("invalid key length "+t.length);return i.type==="stream"?new WU(i.module,t,r,!0):i.type==="auth"?new qU(i.module,t,r,!0):new Bu(i.module,t,r)}function YU(e,t){var r=lx[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var i=VU(t,!1,r.key,r.iv);return cx(e,i.key,i.iv)}Rg.createDecipher=YU;Rg.createDecipheriv=cx;var dx=_g,px=Rg,ZU=QS;function XU(){return Object.keys(ZU)}Qr.createCipher=Qr.Cipher=dx.createCipher;Qr.createCipheriv=Qr.Cipheriv=dx.createCipheriv;Qr.createDecipher=Qr.Decipher=px.createDecipher;Qr.createDecipheriv=Qr.Decipheriv=px.createDecipheriv;Qr.listCiphers=Qr.getCiphers=XU;var vx={};(function(e){e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}})(vx);var gx=sU,Ag=Qr,wo=xg,Bn=vx,mx=oc;function JU(e,t){e=e.toLowerCase();var r,i;if(wo[e])r=wo[e].key,i=wo[e].iv;else if(Bn[e])r=Bn[e].key*8,i=Bn[e].iv;else throw new TypeError("invalid suite type");var a=mx(t,!1,r,i);return yx(e,a.key,a.iv)}function QU(e,t){e=e.toLowerCase();var r,i;if(wo[e])r=wo[e].key,i=wo[e].iv;else if(Bn[e])r=Bn[e].key*8,i=Bn[e].iv;else throw new TypeError("invalid suite type");var a=mx(t,!1,r,i);return bx(e,a.key,a.iv)}function yx(e,t,r){if(e=e.toLowerCase(),wo[e])return Ag.createCipheriv(e,t,r);if(Bn[e])return new gx({key:t,iv:r,mode:e});throw new TypeError("invalid suite type")}function bx(e,t,r){if(e=e.toLowerCase(),wo[e])return Ag.createDecipheriv(e,t,r);if(Bn[e])return new gx({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}function eH(){return Object.keys(Bn).concat(Ag.getCiphers())}$i.createCipher=$i.Cipher=JU;$i.createCipheriv=$i.Cipheriv=yx;$i.createDecipher=$i.Decipher=QU;$i.createDecipheriv=$i.Decipheriv=bx;$i.listCiphers=$i.getCiphers=eH;var qo={},Tg={exports:{}};Tg.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Tg);var _x=Tg.exports,Og={exports:{}};Og.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Og);var tH=Og.exports,Qu={exports:{}},zb;function Ig(){if(zb)return Qu.exports;zb=1;var e;Qu.exports=function(a){return e||(e=new t(null)),e.generate(a)};function t(i){this.rand=i}if(Qu.exports.Rand=t,t.prototype.generate=function(a){return this._rand(a)},t.prototype._rand=function(a){if(this.rand.getBytes)return this.rand.getBytes(a);for(var n=new Uint8Array(a),u=0;u<n.length;u++)n[u]=this.rand.getByte();return n},typeof self=="object")self.crypto&&self.crypto.getRandomValues?t.prototype._rand=function(a){var n=new Uint8Array(a);return self.crypto.getRandomValues(n),n}:self.msCrypto&&self.msCrypto.getRandomValues?t.prototype._rand=function(a){var n=new Uint8Array(a);return self.msCrypto.getRandomValues(n),n}:typeof window=="object"&&(t.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var r=P4();if(typeof r.randomBytes!="function")throw new Error("Not supported");t.prototype._rand=function(a){return r.randomBytes(a)}}catch{}return Qu.exports}var u0,Gb;function Mx(){if(Gb)return u0;Gb=1;var e=tH,t=Ig();function r(i){this.rand=i||new t.Rand}return u0=r,r.create=function(a){return new r(a)},r.prototype._randbelow=function(a){var n=a.bitLength(),u=Math.ceil(n/8);do var c=new e(this.rand.generate(u));while(c.cmp(a)>=0);return c},r.prototype._randrange=function(a,n){var u=n.sub(a);return a.add(this._randbelow(u))},r.prototype.test=function(a,n,u){var c=a.bitLength(),d=e.mont(a),m=new e(1).toRed(d);n||(n=Math.max(1,c/48|0));for(var M=a.subn(1),S=0;!M.testn(S);S++);for(var R=a.shrn(S),C=M.toRed(d),P=!0;n>0;n--){var k=this._randrange(new e(2),M);u&&u(k);var L=k.toRed(d).redPow(R);if(!(L.cmp(m)===0||L.cmp(C)===0)){for(var I=1;I<S;I++){if(L=L.redSqr(),L.cmp(m)===0)return!1;if(L.cmp(C)===0)break}if(I===S)return!1}}return P},r.prototype.getDivisor=function(a,n){var u=a.bitLength(),c=e.mont(a),d=new e(1).toRed(c);n||(n=Math.max(1,u/48|0));for(var m=a.subn(1),M=0;!m.testn(M);M++);for(var S=a.shrn(M),R=m.toRed(c);n>0;n--){var C=this._randrange(new e(2),m),P=a.gcd(C);if(P.cmpn(1)!==0)return P;var k=C.toRed(c).redPow(S);if(!(k.cmp(d)===0||k.cmp(R)===0)){for(var L=1;L<M;L++){if(k=k.redSqr(),k.cmp(d)===0)return k.fromRed().subn(1).gcd(a);if(k.cmp(R)===0)break}if(L===M)return k=k.redSqr(),k.fromRed().subn(1).gcd(a)}}return!1},u0}var l0,Yb;function Sx(){if(Yb)return l0;Yb=1;var e=Ds;l0=L,L.simpleSieve=P,L.fermatTest=k;var t=_x,r=new t(24),i=Mx(),a=new i,n=new t(1),u=new t(2),c=new t(5);new t(16),new t(8);var d=new t(10),m=new t(3);new t(7);var M=new t(11),S=new t(4);new t(12);var R=null;function C(){if(R!==null)return R;var I=1048576,B=[];B[0]=2;for(var H=1,F=3;F<I;F+=2){for(var W=Math.ceil(Math.sqrt(F)),Y=0;Y<H&&B[Y]<=W&&F%B[Y]!==0;Y++);H!==Y&&B[Y]<=W||(B[H++]=F)}return R=B,B}function P(I){for(var B=C(),H=0;H<B.length;H++)if(I.modn(B[H])===0)return I.cmpn(B[H])===0;return!0}function k(I){var B=t.mont(I);return u.toRed(B).redPow(I.subn(1)).fromRed().cmpn(1)===0}function L(I,B){if(I<16)return B===2||B===5?new t([140,123]):new t([140,39]);B=new t(B);for(var H,F;;){for(H=new t(e(Math.ceil(I/8)));H.bitLength()>I;)H.ishrn(1);if(H.isEven()&&H.iadd(n),H.testn(1)||H.iadd(u),B.cmp(u)){if(!B.cmp(c))for(;H.mod(d).cmp(m);)H.iadd(S)}else for(;H.mod(r).cmp(M);)H.iadd(S);if(F=H.shrn(1),P(F)&&P(H)&&k(F)&&k(H)&&a.test(F)&&a.test(H))return H}}return l0}const rH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},iH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},nH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},oH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},aH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},sH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},fH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},uH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},lH={modp1:rH,modp2:iH,modp5:nH,modp14:oH,modp15:aH,modp16:sH,modp17:fH,modp18:uH};var h0,Zb;function hH(){if(Zb)return h0;Zb=1;var e=_x,t=Mx(),r=new t,i=new e(24),a=new e(11),n=new e(10),u=new e(3),c=new e(7),d=Sx(),m=Ds;h0=P;function M(L,I){return I=I||"utf8",ke.Buffer.isBuffer(L)||(L=new ke.Buffer(L,I)),this._pub=new e(L),this}function S(L,I){return I=I||"utf8",ke.Buffer.isBuffer(L)||(L=new ke.Buffer(L,I)),this._priv=new e(L),this}var R={};function C(L,I){var B=I.toString("hex"),H=[B,L.toString(16)].join("_");if(H in R)return R[H];var F=0;if(L.isEven()||!d.simpleSieve||!d.fermatTest(L)||!r.test(L))return F+=1,B==="02"||B==="05"?F+=8:F+=4,R[H]=F,F;r.test(L.shrn(1))||(F+=2);var W;switch(B){case"02":L.mod(i).cmp(a)&&(F+=8);break;case"05":W=L.mod(n),W.cmp(u)&&W.cmp(c)&&(F+=8);break;default:F+=4}return R[H]=F,F}function P(L,I,B){this.setGenerator(I),this.__prime=new e(L),this._prime=e.mont(this.__prime),this._primeLen=L.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,B?(this.setPublicKey=M,this.setPrivateKey=S):this._primeCode=8}Object.defineProperty(P.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=C(this.__prime,this.__gen)),this._primeCode}}),P.prototype.generateKeys=function(){return this._priv||(this._priv=new e(m(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},P.prototype.computeSecret=function(L){L=new e(L),L=L.toRed(this._prime);var I=L.redPow(this._priv).fromRed(),B=new ke.Buffer(I.toArray()),H=this.getPrime();if(B.length<H.length){var F=new ke.Buffer(H.length-B.length);F.fill(0),B=ke.Buffer.concat([F,B])}return B},P.prototype.getPublicKey=function(I){return k(this._pub,I)},P.prototype.getPrivateKey=function(I){return k(this._priv,I)},P.prototype.getPrime=function(L){return k(this.__prime,L)},P.prototype.getGenerator=function(L){return k(this._gen,L)},P.prototype.setGenerator=function(L,I){return I=I||"utf8",ke.Buffer.isBuffer(L)||(L=new ke.Buffer(L,I)),this.__gen=L,this._gen=new e(L),this};function k(L,I){var B=new ke.Buffer(L.toArray());return I?B.toString(I):B}return h0}var Xb;function cH(){if(Xb)return qo;Xb=1;var e=Sx(),t=lH,r=hH();function i(u){var c=new ke.Buffer(t[u].prime,"hex"),d=new ke.Buffer(t[u].gen,"hex");return new r(c,d)}var a={binary:!0,hex:!0,base64:!0};function n(u,c,d,m){return ke.Buffer.isBuffer(c)||a[c]===void 0?n(u,"binary",c,d):(c=c||"binary",m=m||"binary",d=d||new ke.Buffer([2]),ke.Buffer.isBuffer(d)||(d=new ke.Buffer(d,m)),typeof u=="number"?new r(e(u,d),d,!0):(ke.Buffer.isBuffer(u)||(u=new ke.Buffer(u,c)),new r(u,d,!0)))}return qo.DiffieHellmanGroup=qo.createDiffieHellmanGroup=qo.getDiffieHellman=i,qo.createDiffieHellman=qo.DiffieHellman=n,qo}var Vp={exports:{}},xx=Or.EventEmitter,c0,Jb;function dH(){if(Jb)return c0;Jb=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return c0=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),c0}function pH(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(zp,this,e)):we.nextTick(zp,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(_l,r):(r._writableState.errorEmitted=!0,we.nextTick(Qb,r,n)):we.nextTick(Qb,r,n):t?(we.nextTick(_l,r),t(n)):we.nextTick(_l,r)}),this)}function Qb(e,t){zp(e,t),_l(e)}function _l(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function vH(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function zp(e,t){e.emit("error",t)}function gH(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var Ex={destroy:pH,undestroy:vH,errorOrDestroy:gH},Ia={};function mH(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Rx={};function Ei(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){mH(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,Rx[e]=a}function ew(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function yH(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function bH(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function wH(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}Ei("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Ei("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&yH(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(bH(e," argument"))a="The ".concat(e," ").concat(i," ").concat(ew(t,"type"));else{var n=wH(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(ew(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);Ei("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ei("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Ei("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ei("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Ei("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ei("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ei("ERR_STREAM_WRITE_AFTER_END","write after end");Ei("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ei("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Ei("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Ia.codes=Rx;var _H=Ia.codes.ERR_INVALID_OPT_VALUE;function MH(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function SH(e,t,r,i){var a=MH(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new _H(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var Ax={getHighWaterMark:SH},d0,tw;function Tx(){if(tw)return d0;tw=1,d0=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=xx,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=Ex,m=Ax,M=m.getHighWaterMark,S=Ia.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||Ss(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||Ss();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},d0}var p0,rw;function Ss(){if(rw)return p0;rw=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};p0=u;var t=Ix(),r=Tx();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),p0}var iw=Ia.codes.ERR_STREAM_PREMATURE_CLOSE;function xH(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function EH(){}function RH(e){return e.setHeader&&typeof e.abort=="function"}function Ox(e,t,r){if(typeof t=="function")return Ox(e,null,t);t||(t={}),r=xH(r||EH);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new iw),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new iw),r.call(e,P)},R=function(){e.req.on("finish",c)};return RH(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var Pg=Ox,v0,nw;function AH(){if(nw)return v0;nw=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=Pg,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return v0=B,v0}var g0,ow;function TH(){return ow||(ow=1,g0=function(){throw new Error("Readable.from is not available in the browser")}),g0}var m0,aw;function Ix(){if(aw)return m0;aw=1,m0=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=xx,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=dH(),M=Ex,S=Ax,R=S.getHighWaterMark,C=Ia.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||Ss(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||Ss(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=AH()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=TH()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return m0}var Px=Un,fc=Ia.codes,OH=fc.ERR_METHOD_NOT_IMPLEMENTED,IH=fc.ERR_MULTIPLE_CALLBACK,PH=fc.ERR_TRANSFORM_ALREADY_TRANSFORMING,CH=fc.ERR_TRANSFORM_WITH_LENGTH_0,uc=Ss();Ze(Un,uc);function BH(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new IH);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function Un(e){if(!(this instanceof Un))return new Un(e);uc.call(this,e),this._transformState={afterTransform:BH.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",LH)}function LH(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){sw(e,t,r)}):sw(this,null,null)}Un.prototype.push=function(e,t){return this._transformState.needTransform=!1,uc.prototype.push.call(this,e,t)};Un.prototype._transform=function(e,t,r){r(new OH("_transform()"))};Un.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};Un.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Un.prototype._destroy=function(e,t){uc.prototype._destroy.call(this,e,function(r){t(r)})};function sw(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new CH;if(e._transformState.transforming)throw new PH;return e.push(null)}var NH=su,Cx=Px;Ze(su,Cx);function su(e){if(!(this instanceof su))return new su(e);Cx.call(this,e)}su.prototype._transform=function(e,t,r){r(null,e)};var y0;function kH(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var Bx=Ia.codes,$H=Bx.ERR_MISSING_ARGS,DH=Bx.ERR_STREAM_DESTROYED;function fw(e){if(e)throw e}function FH(e){return e.setHeader&&typeof e.abort=="function"}function jH(e,t,r,i){i=kH(i);var a=!1;e.on("close",function(){a=!0}),y0===void 0&&(y0=Pg),y0(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,FH(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new DH("pipe"))}}}function uw(e){e()}function UH(e,t){return e.pipe(t)}function HH(e){return!e.length||typeof e[e.length-1]!="function"?fw:e.pop()}function qH(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=HH(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new $H("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return jH(u,d,m,function(M){a||(a=M),M&&n.forEach(uw),!d&&(n.forEach(uw),i(a))})});return t.reduce(UH)}var WH=qH;(function(e,t){t=e.exports=Ix(),t.Stream=t,t.Readable=t,t.Writable=Tx(),t.Duplex=Ss(),t.Transform=Px,t.PassThrough=NH,t.finished=Pg,t.pipeline=WH})(Vp,Vp.exports);var KH=Vp.exports,gf={exports:{}},Cg={exports:{}};Cg.exports;(function(e){(function(t,r){function i(f,l){if(!f)throw new Error(l||"Assertion failed")}function a(f,l){f.super_=l;var h=function(){};h.prototype=l.prototype,f.prototype=new h,f.prototype.constructor=f}function n(f,l,h){if(n.isBN(f))return f;this.negative=0,this.words=null,this.length=0,this.red=null,f!==null&&((l==="le"||l==="be")&&(h=l,l=10),this._init(f||0,l||10,h||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(l){return l instanceof n?!0:l!==null&&typeof l=="object"&&l.constructor.wordSize===n.wordSize&&Array.isArray(l.words)},n.max=function(l,h){return l.cmp(h)>0?l:h},n.min=function(l,h){return l.cmp(h)<0?l:h},n.prototype._init=function(l,h,p){if(typeof l=="number")return this._initNumber(l,h,p);if(typeof l=="object")return this._initArray(l,h,p);h==="hex"&&(h=16),i(h===(h|0)&&h>=2&&h<=36),l=l.toString().replace(/\s+/g,"");var w=0;l[0]==="-"&&(w++,this.negative=1),w<l.length&&(h===16?this._parseHex(l,w,p):(this._parseBase(l,h,w),p==="le"&&this._initArray(this.toArray(),h,p)))},n.prototype._initNumber=function(l,h,p){l<0&&(this.negative=1,l=-l),l<67108864?(this.words=[l&67108863],this.length=1):l<4503599627370496?(this.words=[l&67108863,l/67108864&67108863],this.length=2):(i(l<9007199254740992),this.words=[l&67108863,l/67108864&67108863,1],this.length=3),p==="le"&&this._initArray(this.toArray(),h,p)},n.prototype._initArray=function(l,h,p){if(i(typeof l.length=="number"),l.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(l.length/3),this.words=new Array(this.length);for(var w=0;w<this.length;w++)this.words[w]=0;var x,g,s=0;if(p==="be")for(w=l.length-1,x=0;w>=0;w-=3)g=l[w]|l[w-1]<<8|l[w-2]<<16,this.words[x]|=g<<s&67108863,this.words[x+1]=g>>>26-s&67108863,s+=24,s>=26&&(s-=26,x++);else if(p==="le")for(w=0,x=0;w<l.length;w+=3)g=l[w]|l[w+1]<<8|l[w+2]<<16,this.words[x]|=g<<s&67108863,this.words[x+1]=g>>>26-s&67108863,s+=24,s>=26&&(s-=26,x++);return this._strip()};function c(f,l){var h=f.charCodeAt(l);if(h>=48&&h<=57)return h-48;if(h>=65&&h<=70)return h-55;if(h>=97&&h<=102)return h-87;i(!1,"Invalid character in "+f)}function d(f,l,h){var p=c(f,h);return h-1>=l&&(p|=c(f,h-1)<<4),p}n.prototype._parseHex=function(l,h,p){this.length=Math.ceil((l.length-h)/6),this.words=new Array(this.length);for(var w=0;w<this.length;w++)this.words[w]=0;var x=0,g=0,s;if(p==="be")for(w=l.length-1;w>=h;w-=2)s=d(l,h,w)<<x,this.words[g]|=s&67108863,x>=18?(x-=18,g+=1,this.words[g]|=s>>>26):x+=8;else{var v=l.length-h;for(w=v%2===0?h+1:h;w<l.length;w+=2)s=d(l,h,w)<<x,this.words[g]|=s&67108863,x>=18?(x-=18,g+=1,this.words[g]|=s>>>26):x+=8}this._strip()};function m(f,l,h,p){for(var w=0,x=0,g=Math.min(f.length,h),s=l;s<g;s++){var v=f.charCodeAt(s)-48;w*=p,v>=49?x=v-49+10:v>=17?x=v-17+10:x=v,i(v>=0&&x<p,"Invalid character"),w+=x}return w}n.prototype._parseBase=function(l,h,p){this.words=[0],this.length=1;for(var w=0,x=1;x<=67108863;x*=h)w++;w--,x=x/h|0;for(var g=l.length-p,s=g%w,v=Math.min(g,g-s)+p,T=0,$=p;$<v;$+=w)T=m(l,$,$+w,h),this.imuln(x),this.words[0]+T<67108864?this.words[0]+=T:this._iaddn(T);if(s!==0){var G=1;for(T=m(l,$,l.length,h),$=0;$<s;$++)G*=h;this.imuln(G),this.words[0]+T<67108864?this.words[0]+=T:this._iaddn(T)}this._strip()},n.prototype.copy=function(l){l.words=new Array(this.length);for(var h=0;h<this.length;h++)l.words[h]=this.words[h];l.length=this.length,l.negative=this.negative,l.red=this.red};function M(f,l){f.words=l.words,f.length=l.length,f.negative=l.negative,f.red=l.red}if(n.prototype._move=function(l){M(l,this)},n.prototype.clone=function(){var l=new n(null);return this.copy(l),l},n.prototype._expand=function(l){for(;this.length<l;)this.words[this.length++]=0;return this},n.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{n.prototype[Symbol.for("nodejs.util.inspect.custom")]=S}catch{n.prototype.inspect=S}else n.prototype.inspect=S;function S(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var R=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],C=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],P=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(l,h){l=l||10,h=h|0||1;var p;if(l===16||l==="hex"){p="";for(var w=0,x=0,g=0;g<this.length;g++){var s=this.words[g],v=((s<<w|x)&16777215).toString(16);x=s>>>24-w&16777215,w+=2,w>=26&&(w-=26,g--),x!==0||g!==this.length-1?p=R[6-v.length]+v+p:p=v+p}for(x!==0&&(p=x.toString(16)+p);p.length%h!==0;)p="0"+p;return this.negative!==0&&(p="-"+p),p}if(l===(l|0)&&l>=2&&l<=36){var T=C[l],$=P[l];p="";var G=this.clone();for(G.negative=0;!G.isZero();){var ee=G.modrn($).toString(l);G=G.idivn($),G.isZero()?p=ee+p:p=R[T-ee.length]+ee+p}for(this.isZero()&&(p="0"+p);p.length%h!==0;)p="0"+p;return this.negative!==0&&(p="-"+p),p}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var l=this.words[0];return this.length===2?l+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l:l},n.prototype.toJSON=function(){return this.toString(16,2)},u&&(n.prototype.toBuffer=function(l,h){return this.toArrayLike(u,l,h)}),n.prototype.toArray=function(l,h){return this.toArrayLike(Array,l,h)};var k=function(l,h){return l.allocUnsafe?l.allocUnsafe(h):new l(h)};n.prototype.toArrayLike=function(l,h,p){this._strip();var w=this.byteLength(),x=p||Math.max(1,w);i(w<=x,"byte array longer than desired length"),i(x>0,"Requested array length <= 0");var g=k(l,x),s=h==="le"?"LE":"BE";return this["_toArrayLike"+s](g,w),g},n.prototype._toArrayLikeLE=function(l,h){for(var p=0,w=0,x=0,g=0;x<this.length;x++){var s=this.words[x]<<g|w;l[p++]=s&255,p<l.length&&(l[p++]=s>>8&255),p<l.length&&(l[p++]=s>>16&255),g===6?(p<l.length&&(l[p++]=s>>24&255),w=0,g=0):(w=s>>>24,g+=2)}if(p<l.length)for(l[p++]=w;p<l.length;)l[p++]=0},n.prototype._toArrayLikeBE=function(l,h){for(var p=l.length-1,w=0,x=0,g=0;x<this.length;x++){var s=this.words[x]<<g|w;l[p--]=s&255,p>=0&&(l[p--]=s>>8&255),p>=0&&(l[p--]=s>>16&255),g===6?(p>=0&&(l[p--]=s>>24&255),w=0,g=0):(w=s>>>24,g+=2)}if(p>=0)for(l[p--]=w;p>=0;)l[p--]=0},Math.clz32?n.prototype._countBits=function(l){return 32-Math.clz32(l)}:n.prototype._countBits=function(l){var h=l,p=0;return h>=4096&&(p+=13,h>>>=13),h>=64&&(p+=7,h>>>=7),h>=8&&(p+=4,h>>>=4),h>=2&&(p+=2,h>>>=2),p+h},n.prototype._zeroBits=function(l){if(l===0)return 26;var h=l,p=0;return h&8191||(p+=13,h>>>=13),h&127||(p+=7,h>>>=7),h&15||(p+=4,h>>>=4),h&3||(p+=2,h>>>=2),h&1||p++,p},n.prototype.bitLength=function(){var l=this.words[this.length-1],h=this._countBits(l);return(this.length-1)*26+h};function L(f){for(var l=new Array(f.bitLength()),h=0;h<l.length;h++){var p=h/26|0,w=h%26;l[h]=f.words[p]>>>w&1}return l}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l=0,h=0;h<this.length;h++){var p=this._zeroBits(this.words[h]);if(l+=p,p!==26)break}return l},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(l){return this.negative!==0?this.abs().inotn(l).iaddn(1):this.clone()},n.prototype.fromTwos=function(l){return this.testn(l-1)?this.notn(l).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(l){for(;this.length<l.length;)this.words[this.length++]=0;for(var h=0;h<l.length;h++)this.words[h]=this.words[h]|l.words[h];return this._strip()},n.prototype.ior=function(l){return i((this.negative|l.negative)===0),this.iuor(l)},n.prototype.or=function(l){return this.length>l.length?this.clone().ior(l):l.clone().ior(this)},n.prototype.uor=function(l){return this.length>l.length?this.clone().iuor(l):l.clone().iuor(this)},n.prototype.iuand=function(l){var h;this.length>l.length?h=l:h=this;for(var p=0;p<h.length;p++)this.words[p]=this.words[p]&l.words[p];return this.length=h.length,this._strip()},n.prototype.iand=function(l){return i((this.negative|l.negative)===0),this.iuand(l)},n.prototype.and=function(l){return this.length>l.length?this.clone().iand(l):l.clone().iand(this)},n.prototype.uand=function(l){return this.length>l.length?this.clone().iuand(l):l.clone().iuand(this)},n.prototype.iuxor=function(l){var h,p;this.length>l.length?(h=this,p=l):(h=l,p=this);for(var w=0;w<p.length;w++)this.words[w]=h.words[w]^p.words[w];if(this!==h)for(;w<h.length;w++)this.words[w]=h.words[w];return this.length=h.length,this._strip()},n.prototype.ixor=function(l){return i((this.negative|l.negative)===0),this.iuxor(l)},n.prototype.xor=function(l){return this.length>l.length?this.clone().ixor(l):l.clone().ixor(this)},n.prototype.uxor=function(l){return this.length>l.length?this.clone().iuxor(l):l.clone().iuxor(this)},n.prototype.inotn=function(l){i(typeof l=="number"&&l>=0);var h=Math.ceil(l/26)|0,p=l%26;this._expand(h),p>0&&h--;for(var w=0;w<h;w++)this.words[w]=~this.words[w]&67108863;return p>0&&(this.words[w]=~this.words[w]&67108863>>26-p),this._strip()},n.prototype.notn=function(l){return this.clone().inotn(l)},n.prototype.setn=function(l,h){i(typeof l=="number"&&l>=0);var p=l/26|0,w=l%26;return this._expand(p+1),h?this.words[p]=this.words[p]|1<<w:this.words[p]=this.words[p]&~(1<<w),this._strip()},n.prototype.iadd=function(l){var h;if(this.negative!==0&&l.negative===0)return this.negative=0,h=this.isub(l),this.negative^=1,this._normSign();if(this.negative===0&&l.negative!==0)return l.negative=0,h=this.isub(l),l.negative=1,h._normSign();var p,w;this.length>l.length?(p=this,w=l):(p=l,w=this);for(var x=0,g=0;g<w.length;g++)h=(p.words[g]|0)+(w.words[g]|0)+x,this.words[g]=h&67108863,x=h>>>26;for(;x!==0&&g<p.length;g++)h=(p.words[g]|0)+x,this.words[g]=h&67108863,x=h>>>26;if(this.length=p.length,x!==0)this.words[this.length]=x,this.length++;else if(p!==this)for(;g<p.length;g++)this.words[g]=p.words[g];return this},n.prototype.add=function(l){var h;return l.negative!==0&&this.negative===0?(l.negative=0,h=this.sub(l),l.negative^=1,h):l.negative===0&&this.negative!==0?(this.negative=0,h=l.sub(this),this.negative=1,h):this.length>l.length?this.clone().iadd(l):l.clone().iadd(this)},n.prototype.isub=function(l){if(l.negative!==0){l.negative=0;var h=this.iadd(l);return l.negative=1,h._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l),this.negative=1,this._normSign();var p=this.cmp(l);if(p===0)return this.negative=0,this.length=1,this.words[0]=0,this;var w,x;p>0?(w=this,x=l):(w=l,x=this);for(var g=0,s=0;s<x.length;s++)h=(w.words[s]|0)-(x.words[s]|0)+g,g=h>>26,this.words[s]=h&67108863;for(;g!==0&&s<w.length;s++)h=(w.words[s]|0)+g,g=h>>26,this.words[s]=h&67108863;if(g===0&&s<w.length&&w!==this)for(;s<w.length;s++)this.words[s]=w.words[s];return this.length=Math.max(this.length,s),w!==this&&(this.negative=1),this._strip()},n.prototype.sub=function(l){return this.clone().isub(l)};function I(f,l,h){h.negative=l.negative^f.negative;var p=f.length+l.length|0;h.length=p,p=p-1|0;var w=f.words[0]|0,x=l.words[0]|0,g=w*x,s=g&67108863,v=g/67108864|0;h.words[0]=s;for(var T=1;T<p;T++){for(var $=v>>>26,G=v&67108863,ee=Math.min(T,l.length-1),A=Math.max(0,T-f.length+1);A<=ee;A++){var E=T-A|0;w=f.words[E]|0,x=l.words[A]|0,g=w*x+G,$+=g/67108864|0,G=g&67108863}h.words[T]=G|0,v=$|0}return v!==0?h.words[T]=v|0:h.length--,h._strip()}var B=function(l,h,p){var w=l.words,x=h.words,g=p.words,s=0,v,T,$,G=w[0]|0,ee=G&8191,A=G>>>13,E=w[1]|0,U=E&8191,K=E>>>13,Z=w[2]|0,b=Z&8191,y=Z>>>13,O=w[3]|0,q=O&8191,X=O>>>13,D=w[4]|0,N=D&8191,j=D>>>13,z=w[5]|0,se=z&8191,te=z>>>13,ne=w[6]|0,Ee=ne&8191,Q=ne>>>13,ue=w[7]|0,le=ue&8191,ce=ue>>>13,pe=w[8]|0,de=pe&8191,ae=pe>>>13,fe=w[9]|0,Te=fe&8191,ve=fe>>>13,Me=x[0]|0,Ke=Me&8191,be=Me>>>13,Se=x[1]|0,qe=Se&8191,ye=Se>>>13,_e=x[2]|0,Ve=_e&8191,ge=_e>>>13,xe=x[3]|0,Xe=xe&8191,Re=xe>>>13,Le=x[4]|0,at=Le&8191,Ae=Le>>>13,Ne=x[5]|0,rt=Ne&8191,Oe=Ne>>>13,De=x[6]|0,nt=De&8191,Ie=De>>>13,$e=x[7]|0,st=$e&8191,Pe=$e>>>13,je=x[8]|0,ht=je&8191,Ce=je>>>13,Fe=x[9]|0,it=Fe&8191,et=Fe>>>13;p.negative=l.negative^h.negative,p.length=19,v=Math.imul(ee,Ke),T=Math.imul(ee,be),T=T+Math.imul(A,Ke)|0,$=Math.imul(A,be);var xt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(xt>>>26)|0,xt&=67108863,v=Math.imul(U,Ke),T=Math.imul(U,be),T=T+Math.imul(K,Ke)|0,$=Math.imul(K,be),v=v+Math.imul(ee,qe)|0,T=T+Math.imul(ee,ye)|0,T=T+Math.imul(A,qe)|0,$=$+Math.imul(A,ye)|0;var Tt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,v=Math.imul(b,Ke),T=Math.imul(b,be),T=T+Math.imul(y,Ke)|0,$=Math.imul(y,be),v=v+Math.imul(U,qe)|0,T=T+Math.imul(U,ye)|0,T=T+Math.imul(K,qe)|0,$=$+Math.imul(K,ye)|0,v=v+Math.imul(ee,Ve)|0,T=T+Math.imul(ee,ge)|0,T=T+Math.imul(A,Ve)|0,$=$+Math.imul(A,ge)|0;var Ot=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,v=Math.imul(q,Ke),T=Math.imul(q,be),T=T+Math.imul(X,Ke)|0,$=Math.imul(X,be),v=v+Math.imul(b,qe)|0,T=T+Math.imul(b,ye)|0,T=T+Math.imul(y,qe)|0,$=$+Math.imul(y,ye)|0,v=v+Math.imul(U,Ve)|0,T=T+Math.imul(U,ge)|0,T=T+Math.imul(K,Ve)|0,$=$+Math.imul(K,ge)|0,v=v+Math.imul(ee,Xe)|0,T=T+Math.imul(ee,Re)|0,T=T+Math.imul(A,Xe)|0,$=$+Math.imul(A,Re)|0;var Ct=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,v=Math.imul(N,Ke),T=Math.imul(N,be),T=T+Math.imul(j,Ke)|0,$=Math.imul(j,be),v=v+Math.imul(q,qe)|0,T=T+Math.imul(q,ye)|0,T=T+Math.imul(X,qe)|0,$=$+Math.imul(X,ye)|0,v=v+Math.imul(b,Ve)|0,T=T+Math.imul(b,ge)|0,T=T+Math.imul(y,Ve)|0,$=$+Math.imul(y,ge)|0,v=v+Math.imul(U,Xe)|0,T=T+Math.imul(U,Re)|0,T=T+Math.imul(K,Xe)|0,$=$+Math.imul(K,Re)|0,v=v+Math.imul(ee,at)|0,T=T+Math.imul(ee,Ae)|0,T=T+Math.imul(A,at)|0,$=$+Math.imul(A,Ae)|0;var kt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(kt>>>26)|0,kt&=67108863,v=Math.imul(se,Ke),T=Math.imul(se,be),T=T+Math.imul(te,Ke)|0,$=Math.imul(te,be),v=v+Math.imul(N,qe)|0,T=T+Math.imul(N,ye)|0,T=T+Math.imul(j,qe)|0,$=$+Math.imul(j,ye)|0,v=v+Math.imul(q,Ve)|0,T=T+Math.imul(q,ge)|0,T=T+Math.imul(X,Ve)|0,$=$+Math.imul(X,ge)|0,v=v+Math.imul(b,Xe)|0,T=T+Math.imul(b,Re)|0,T=T+Math.imul(y,Xe)|0,$=$+Math.imul(y,Re)|0,v=v+Math.imul(U,at)|0,T=T+Math.imul(U,Ae)|0,T=T+Math.imul(K,at)|0,$=$+Math.imul(K,Ae)|0,v=v+Math.imul(ee,rt)|0,T=T+Math.imul(ee,Oe)|0,T=T+Math.imul(A,rt)|0,$=$+Math.imul(A,Oe)|0;var Ut=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,v=Math.imul(Ee,Ke),T=Math.imul(Ee,be),T=T+Math.imul(Q,Ke)|0,$=Math.imul(Q,be),v=v+Math.imul(se,qe)|0,T=T+Math.imul(se,ye)|0,T=T+Math.imul(te,qe)|0,$=$+Math.imul(te,ye)|0,v=v+Math.imul(N,Ve)|0,T=T+Math.imul(N,ge)|0,T=T+Math.imul(j,Ve)|0,$=$+Math.imul(j,ge)|0,v=v+Math.imul(q,Xe)|0,T=T+Math.imul(q,Re)|0,T=T+Math.imul(X,Xe)|0,$=$+Math.imul(X,Re)|0,v=v+Math.imul(b,at)|0,T=T+Math.imul(b,Ae)|0,T=T+Math.imul(y,at)|0,$=$+Math.imul(y,Ae)|0,v=v+Math.imul(U,rt)|0,T=T+Math.imul(U,Oe)|0,T=T+Math.imul(K,rt)|0,$=$+Math.imul(K,Oe)|0,v=v+Math.imul(ee,nt)|0,T=T+Math.imul(ee,Ie)|0,T=T+Math.imul(A,nt)|0,$=$+Math.imul(A,Ie)|0;var Ht=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,v=Math.imul(le,Ke),T=Math.imul(le,be),T=T+Math.imul(ce,Ke)|0,$=Math.imul(ce,be),v=v+Math.imul(Ee,qe)|0,T=T+Math.imul(Ee,ye)|0,T=T+Math.imul(Q,qe)|0,$=$+Math.imul(Q,ye)|0,v=v+Math.imul(se,Ve)|0,T=T+Math.imul(se,ge)|0,T=T+Math.imul(te,Ve)|0,$=$+Math.imul(te,ge)|0,v=v+Math.imul(N,Xe)|0,T=T+Math.imul(N,Re)|0,T=T+Math.imul(j,Xe)|0,$=$+Math.imul(j,Re)|0,v=v+Math.imul(q,at)|0,T=T+Math.imul(q,Ae)|0,T=T+Math.imul(X,at)|0,$=$+Math.imul(X,Ae)|0,v=v+Math.imul(b,rt)|0,T=T+Math.imul(b,Oe)|0,T=T+Math.imul(y,rt)|0,$=$+Math.imul(y,Oe)|0,v=v+Math.imul(U,nt)|0,T=T+Math.imul(U,Ie)|0,T=T+Math.imul(K,nt)|0,$=$+Math.imul(K,Ie)|0,v=v+Math.imul(ee,st)|0,T=T+Math.imul(ee,Pe)|0,T=T+Math.imul(A,st)|0,$=$+Math.imul(A,Pe)|0;var Bt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,v=Math.imul(de,Ke),T=Math.imul(de,be),T=T+Math.imul(ae,Ke)|0,$=Math.imul(ae,be),v=v+Math.imul(le,qe)|0,T=T+Math.imul(le,ye)|0,T=T+Math.imul(ce,qe)|0,$=$+Math.imul(ce,ye)|0,v=v+Math.imul(Ee,Ve)|0,T=T+Math.imul(Ee,ge)|0,T=T+Math.imul(Q,Ve)|0,$=$+Math.imul(Q,ge)|0,v=v+Math.imul(se,Xe)|0,T=T+Math.imul(se,Re)|0,T=T+Math.imul(te,Xe)|0,$=$+Math.imul(te,Re)|0,v=v+Math.imul(N,at)|0,T=T+Math.imul(N,Ae)|0,T=T+Math.imul(j,at)|0,$=$+Math.imul(j,Ae)|0,v=v+Math.imul(q,rt)|0,T=T+Math.imul(q,Oe)|0,T=T+Math.imul(X,rt)|0,$=$+Math.imul(X,Oe)|0,v=v+Math.imul(b,nt)|0,T=T+Math.imul(b,Ie)|0,T=T+Math.imul(y,nt)|0,$=$+Math.imul(y,Ie)|0,v=v+Math.imul(U,st)|0,T=T+Math.imul(U,Pe)|0,T=T+Math.imul(K,st)|0,$=$+Math.imul(K,Pe)|0,v=v+Math.imul(ee,ht)|0,T=T+Math.imul(ee,Ce)|0,T=T+Math.imul(A,ht)|0,$=$+Math.imul(A,Ce)|0;var dt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(dt>>>26)|0,dt&=67108863,v=Math.imul(Te,Ke),T=Math.imul(Te,be),T=T+Math.imul(ve,Ke)|0,$=Math.imul(ve,be),v=v+Math.imul(de,qe)|0,T=T+Math.imul(de,ye)|0,T=T+Math.imul(ae,qe)|0,$=$+Math.imul(ae,ye)|0,v=v+Math.imul(le,Ve)|0,T=T+Math.imul(le,ge)|0,T=T+Math.imul(ce,Ve)|0,$=$+Math.imul(ce,ge)|0,v=v+Math.imul(Ee,Xe)|0,T=T+Math.imul(Ee,Re)|0,T=T+Math.imul(Q,Xe)|0,$=$+Math.imul(Q,Re)|0,v=v+Math.imul(se,at)|0,T=T+Math.imul(se,Ae)|0,T=T+Math.imul(te,at)|0,$=$+Math.imul(te,Ae)|0,v=v+Math.imul(N,rt)|0,T=T+Math.imul(N,Oe)|0,T=T+Math.imul(j,rt)|0,$=$+Math.imul(j,Oe)|0,v=v+Math.imul(q,nt)|0,T=T+Math.imul(q,Ie)|0,T=T+Math.imul(X,nt)|0,$=$+Math.imul(X,Ie)|0,v=v+Math.imul(b,st)|0,T=T+Math.imul(b,Pe)|0,T=T+Math.imul(y,st)|0,$=$+Math.imul(y,Pe)|0,v=v+Math.imul(U,ht)|0,T=T+Math.imul(U,Ce)|0,T=T+Math.imul(K,ht)|0,$=$+Math.imul(K,Ce)|0,v=v+Math.imul(ee,it)|0,T=T+Math.imul(ee,et)|0,T=T+Math.imul(A,it)|0,$=$+Math.imul(A,et)|0;var At=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(At>>>26)|0,At&=67108863,v=Math.imul(Te,qe),T=Math.imul(Te,ye),T=T+Math.imul(ve,qe)|0,$=Math.imul(ve,ye),v=v+Math.imul(de,Ve)|0,T=T+Math.imul(de,ge)|0,T=T+Math.imul(ae,Ve)|0,$=$+Math.imul(ae,ge)|0,v=v+Math.imul(le,Xe)|0,T=T+Math.imul(le,Re)|0,T=T+Math.imul(ce,Xe)|0,$=$+Math.imul(ce,Re)|0,v=v+Math.imul(Ee,at)|0,T=T+Math.imul(Ee,Ae)|0,T=T+Math.imul(Q,at)|0,$=$+Math.imul(Q,Ae)|0,v=v+Math.imul(se,rt)|0,T=T+Math.imul(se,Oe)|0,T=T+Math.imul(te,rt)|0,$=$+Math.imul(te,Oe)|0,v=v+Math.imul(N,nt)|0,T=T+Math.imul(N,Ie)|0,T=T+Math.imul(j,nt)|0,$=$+Math.imul(j,Ie)|0,v=v+Math.imul(q,st)|0,T=T+Math.imul(q,Pe)|0,T=T+Math.imul(X,st)|0,$=$+Math.imul(X,Pe)|0,v=v+Math.imul(b,ht)|0,T=T+Math.imul(b,Ce)|0,T=T+Math.imul(y,ht)|0,$=$+Math.imul(y,Ce)|0,v=v+Math.imul(U,it)|0,T=T+Math.imul(U,et)|0,T=T+Math.imul(K,it)|0,$=$+Math.imul(K,et)|0;var _t=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(_t>>>26)|0,_t&=67108863,v=Math.imul(Te,Ve),T=Math.imul(Te,ge),T=T+Math.imul(ve,Ve)|0,$=Math.imul(ve,ge),v=v+Math.imul(de,Xe)|0,T=T+Math.imul(de,Re)|0,T=T+Math.imul(ae,Xe)|0,$=$+Math.imul(ae,Re)|0,v=v+Math.imul(le,at)|0,T=T+Math.imul(le,Ae)|0,T=T+Math.imul(ce,at)|0,$=$+Math.imul(ce,Ae)|0,v=v+Math.imul(Ee,rt)|0,T=T+Math.imul(Ee,Oe)|0,T=T+Math.imul(Q,rt)|0,$=$+Math.imul(Q,Oe)|0,v=v+Math.imul(se,nt)|0,T=T+Math.imul(se,Ie)|0,T=T+Math.imul(te,nt)|0,$=$+Math.imul(te,Ie)|0,v=v+Math.imul(N,st)|0,T=T+Math.imul(N,Pe)|0,T=T+Math.imul(j,st)|0,$=$+Math.imul(j,Pe)|0,v=v+Math.imul(q,ht)|0,T=T+Math.imul(q,Ce)|0,T=T+Math.imul(X,ht)|0,$=$+Math.imul(X,Ce)|0,v=v+Math.imul(b,it)|0,T=T+Math.imul(b,et)|0,T=T+Math.imul(y,it)|0,$=$+Math.imul(y,et)|0;var mt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(mt>>>26)|0,mt&=67108863,v=Math.imul(Te,Xe),T=Math.imul(Te,Re),T=T+Math.imul(ve,Xe)|0,$=Math.imul(ve,Re),v=v+Math.imul(de,at)|0,T=T+Math.imul(de,Ae)|0,T=T+Math.imul(ae,at)|0,$=$+Math.imul(ae,Ae)|0,v=v+Math.imul(le,rt)|0,T=T+Math.imul(le,Oe)|0,T=T+Math.imul(ce,rt)|0,$=$+Math.imul(ce,Oe)|0,v=v+Math.imul(Ee,nt)|0,T=T+Math.imul(Ee,Ie)|0,T=T+Math.imul(Q,nt)|0,$=$+Math.imul(Q,Ie)|0,v=v+Math.imul(se,st)|0,T=T+Math.imul(se,Pe)|0,T=T+Math.imul(te,st)|0,$=$+Math.imul(te,Pe)|0,v=v+Math.imul(N,ht)|0,T=T+Math.imul(N,Ce)|0,T=T+Math.imul(j,ht)|0,$=$+Math.imul(j,Ce)|0,v=v+Math.imul(q,it)|0,T=T+Math.imul(q,et)|0,T=T+Math.imul(X,it)|0,$=$+Math.imul(X,et)|0;var It=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(It>>>26)|0,It&=67108863,v=Math.imul(Te,at),T=Math.imul(Te,Ae),T=T+Math.imul(ve,at)|0,$=Math.imul(ve,Ae),v=v+Math.imul(de,rt)|0,T=T+Math.imul(de,Oe)|0,T=T+Math.imul(ae,rt)|0,$=$+Math.imul(ae,Oe)|0,v=v+Math.imul(le,nt)|0,T=T+Math.imul(le,Ie)|0,T=T+Math.imul(ce,nt)|0,$=$+Math.imul(ce,Ie)|0,v=v+Math.imul(Ee,st)|0,T=T+Math.imul(Ee,Pe)|0,T=T+Math.imul(Q,st)|0,$=$+Math.imul(Q,Pe)|0,v=v+Math.imul(se,ht)|0,T=T+Math.imul(se,Ce)|0,T=T+Math.imul(te,ht)|0,$=$+Math.imul(te,Ce)|0,v=v+Math.imul(N,it)|0,T=T+Math.imul(N,et)|0,T=T+Math.imul(j,it)|0,$=$+Math.imul(j,et)|0;var vt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(vt>>>26)|0,vt&=67108863,v=Math.imul(Te,rt),T=Math.imul(Te,Oe),T=T+Math.imul(ve,rt)|0,$=Math.imul(ve,Oe),v=v+Math.imul(de,nt)|0,T=T+Math.imul(de,Ie)|0,T=T+Math.imul(ae,nt)|0,$=$+Math.imul(ae,Ie)|0,v=v+Math.imul(le,st)|0,T=T+Math.imul(le,Pe)|0,T=T+Math.imul(ce,st)|0,$=$+Math.imul(ce,Pe)|0,v=v+Math.imul(Ee,ht)|0,T=T+Math.imul(Ee,Ce)|0,T=T+Math.imul(Q,ht)|0,$=$+Math.imul(Q,Ce)|0,v=v+Math.imul(se,it)|0,T=T+Math.imul(se,et)|0,T=T+Math.imul(te,it)|0,$=$+Math.imul(te,et)|0;var yt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(yt>>>26)|0,yt&=67108863,v=Math.imul(Te,nt),T=Math.imul(Te,Ie),T=T+Math.imul(ve,nt)|0,$=Math.imul(ve,Ie),v=v+Math.imul(de,st)|0,T=T+Math.imul(de,Pe)|0,T=T+Math.imul(ae,st)|0,$=$+Math.imul(ae,Pe)|0,v=v+Math.imul(le,ht)|0,T=T+Math.imul(le,Ce)|0,T=T+Math.imul(ce,ht)|0,$=$+Math.imul(ce,Ce)|0,v=v+Math.imul(Ee,it)|0,T=T+Math.imul(Ee,et)|0,T=T+Math.imul(Q,it)|0,$=$+Math.imul(Q,et)|0;var Dt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,v=Math.imul(Te,st),T=Math.imul(Te,Pe),T=T+Math.imul(ve,st)|0,$=Math.imul(ve,Pe),v=v+Math.imul(de,ht)|0,T=T+Math.imul(de,Ce)|0,T=T+Math.imul(ae,ht)|0,$=$+Math.imul(ae,Ce)|0,v=v+Math.imul(le,it)|0,T=T+Math.imul(le,et)|0,T=T+Math.imul(ce,it)|0,$=$+Math.imul(ce,et)|0;var Ft=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,v=Math.imul(Te,ht),T=Math.imul(Te,Ce),T=T+Math.imul(ve,ht)|0,$=Math.imul(ve,Ce),v=v+Math.imul(de,it)|0,T=T+Math.imul(de,et)|0,T=T+Math.imul(ae,it)|0,$=$+Math.imul(ae,et)|0;var Zn=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Zn>>>26)|0,Zn&=67108863,v=Math.imul(Te,it),T=Math.imul(Te,et),T=T+Math.imul(ve,it)|0,$=Math.imul(ve,et);var Ir=(s+v|0)+((T&8191)<<13)|0;return s=($+(T>>>13)|0)+(Ir>>>26)|0,Ir&=67108863,g[0]=xt,g[1]=Tt,g[2]=Ot,g[3]=Ct,g[4]=kt,g[5]=Ut,g[6]=Ht,g[7]=Bt,g[8]=dt,g[9]=At,g[10]=_t,g[11]=mt,g[12]=It,g[13]=vt,g[14]=yt,g[15]=Dt,g[16]=Ft,g[17]=Zn,g[18]=Ir,s!==0&&(g[19]=s,p.length++),p};Math.imul||(B=I);function H(f,l,h){h.negative=l.negative^f.negative,h.length=f.length+l.length;for(var p=0,w=0,x=0;x<h.length-1;x++){var g=w;w=0;for(var s=p&67108863,v=Math.min(x,l.length-1),T=Math.max(0,x-f.length+1);T<=v;T++){var $=x-T,G=f.words[$]|0,ee=l.words[T]|0,A=G*ee,E=A&67108863;g=g+(A/67108864|0)|0,E=E+s|0,s=E&67108863,g=g+(E>>>26)|0,w+=g>>>26,g&=67108863}h.words[x]=s,p=g,g=w}return p!==0?h.words[x]=p:h.length--,h._strip()}function F(f,l,h){return H(f,l,h)}n.prototype.mulTo=function(l,h){var p,w=this.length+l.length;return this.length===10&&l.length===10?p=B(this,l,h):w<63?p=I(this,l,h):w<1024?p=H(this,l,h):p=F(this,l,h),p},n.prototype.mul=function(l){var h=new n(null);return h.words=new Array(this.length+l.length),this.mulTo(l,h)},n.prototype.mulf=function(l){var h=new n(null);return h.words=new Array(this.length+l.length),F(this,l,h)},n.prototype.imul=function(l){return this.clone().mulTo(l,this)},n.prototype.imuln=function(l){var h=l<0;h&&(l=-l),i(typeof l=="number"),i(l<67108864);for(var p=0,w=0;w<this.length;w++){var x=(this.words[w]|0)*l,g=(x&67108863)+(p&67108863);p>>=26,p+=x/67108864|0,p+=g>>>26,this.words[w]=g&67108863}return p!==0&&(this.words[w]=p,this.length++),h?this.ineg():this},n.prototype.muln=function(l){return this.clone().imuln(l)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(l){var h=L(l);if(h.length===0)return new n(1);for(var p=this,w=0;w<h.length&&h[w]===0;w++,p=p.sqr());if(++w<h.length)for(var x=p.sqr();w<h.length;w++,x=x.sqr())h[w]!==0&&(p=p.mul(x));return p},n.prototype.iushln=function(l){i(typeof l=="number"&&l>=0);var h=l%26,p=(l-h)/26,w=67108863>>>26-h<<26-h,x;if(h!==0){var g=0;for(x=0;x<this.length;x++){var s=this.words[x]&w,v=(this.words[x]|0)-s<<h;this.words[x]=v|g,g=s>>>26-h}g&&(this.words[x]=g,this.length++)}if(p!==0){for(x=this.length-1;x>=0;x--)this.words[x+p]=this.words[x];for(x=0;x<p;x++)this.words[x]=0;this.length+=p}return this._strip()},n.prototype.ishln=function(l){return i(this.negative===0),this.iushln(l)},n.prototype.iushrn=function(l,h,p){i(typeof l=="number"&&l>=0);var w;h?w=(h-h%26)/26:w=0;var x=l%26,g=Math.min((l-x)/26,this.length),s=67108863^67108863>>>x<<x,v=p;if(w-=g,w=Math.max(0,w),v){for(var T=0;T<g;T++)v.words[T]=this.words[T];v.length=g}if(g!==0)if(this.length>g)for(this.length-=g,T=0;T<this.length;T++)this.words[T]=this.words[T+g];else this.words[0]=0,this.length=1;var $=0;for(T=this.length-1;T>=0&&($!==0||T>=w);T--){var G=this.words[T]|0;this.words[T]=$<<26-x|G>>>x,$=G&s}return v&&$!==0&&(v.words[v.length++]=$),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},n.prototype.ishrn=function(l,h,p){return i(this.negative===0),this.iushrn(l,h,p)},n.prototype.shln=function(l){return this.clone().ishln(l)},n.prototype.ushln=function(l){return this.clone().iushln(l)},n.prototype.shrn=function(l){return this.clone().ishrn(l)},n.prototype.ushrn=function(l){return this.clone().iushrn(l)},n.prototype.testn=function(l){i(typeof l=="number"&&l>=0);var h=l%26,p=(l-h)/26,w=1<<h;if(this.length<=p)return!1;var x=this.words[p];return!!(x&w)},n.prototype.imaskn=function(l){i(typeof l=="number"&&l>=0);var h=l%26,p=(l-h)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=p)return this;if(h!==0&&p++,this.length=Math.min(p,this.length),h!==0){var w=67108863^67108863>>>h<<h;this.words[this.length-1]&=w}return this._strip()},n.prototype.maskn=function(l){return this.clone().imaskn(l)},n.prototype.iaddn=function(l){return i(typeof l=="number"),i(l<67108864),l<0?this.isubn(-l):this.negative!==0?this.length===1&&(this.words[0]|0)<=l?(this.words[0]=l-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(l),this.negative=1,this):this._iaddn(l)},n.prototype._iaddn=function(l){this.words[0]+=l;for(var h=0;h<this.length&&this.words[h]>=67108864;h++)this.words[h]-=67108864,h===this.length-1?this.words[h+1]=1:this.words[h+1]++;return this.length=Math.max(this.length,h+1),this},n.prototype.isubn=function(l){if(i(typeof l=="number"),i(l<67108864),l<0)return this.iaddn(-l);if(this.negative!==0)return this.negative=0,this.iaddn(l),this.negative=1,this;if(this.words[0]-=l,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var h=0;h<this.length&&this.words[h]<0;h++)this.words[h]+=67108864,this.words[h+1]-=1;return this._strip()},n.prototype.addn=function(l){return this.clone().iaddn(l)},n.prototype.subn=function(l){return this.clone().isubn(l)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(l,h,p){var w=l.length+p,x;this._expand(w);var g,s=0;for(x=0;x<l.length;x++){g=(this.words[x+p]|0)+s;var v=(l.words[x]|0)*h;g-=v&67108863,s=(g>>26)-(v/67108864|0),this.words[x+p]=g&67108863}for(;x<this.length-p;x++)g=(this.words[x+p]|0)+s,s=g>>26,this.words[x+p]=g&67108863;if(s===0)return this._strip();for(i(s===-1),s=0,x=0;x<this.length;x++)g=-(this.words[x]|0)+s,s=g>>26,this.words[x]=g&67108863;return this.negative=1,this._strip()},n.prototype._wordDiv=function(l,h){var p=this.length-l.length,w=this.clone(),x=l,g=x.words[x.length-1]|0,s=this._countBits(g);p=26-s,p!==0&&(x=x.ushln(p),w.iushln(p),g=x.words[x.length-1]|0);var v=w.length-x.length,T;if(h!=="mod"){T=new n(null),T.length=v+1,T.words=new Array(T.length);for(var $=0;$<T.length;$++)T.words[$]=0}var G=w.clone()._ishlnsubmul(x,1,v);G.negative===0&&(w=G,T&&(T.words[v]=1));for(var ee=v-1;ee>=0;ee--){var A=(w.words[x.length+ee]|0)*67108864+(w.words[x.length+ee-1]|0);for(A=Math.min(A/g|0,67108863),w._ishlnsubmul(x,A,ee);w.negative!==0;)A--,w.negative=0,w._ishlnsubmul(x,1,ee),w.isZero()||(w.negative^=1);T&&(T.words[ee]=A)}return T&&T._strip(),w._strip(),h!=="div"&&p!==0&&w.iushrn(p),{div:T||null,mod:w}},n.prototype.divmod=function(l,h,p){if(i(!l.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var w,x,g;return this.negative!==0&&l.negative===0?(g=this.neg().divmod(l,h),h!=="mod"&&(w=g.div.neg()),h!=="div"&&(x=g.mod.neg(),p&&x.negative!==0&&x.iadd(l)),{div:w,mod:x}):this.negative===0&&l.negative!==0?(g=this.divmod(l.neg(),h),h!=="mod"&&(w=g.div.neg()),{div:w,mod:g.mod}):this.negative&l.negative?(g=this.neg().divmod(l.neg(),h),h!=="div"&&(x=g.mod.neg(),p&&x.negative!==0&&x.isub(l)),{div:g.div,mod:x}):l.length>this.length||this.cmp(l)<0?{div:new n(0),mod:this}:l.length===1?h==="div"?{div:this.divn(l.words[0]),mod:null}:h==="mod"?{div:null,mod:new n(this.modrn(l.words[0]))}:{div:this.divn(l.words[0]),mod:new n(this.modrn(l.words[0]))}:this._wordDiv(l,h)},n.prototype.div=function(l){return this.divmod(l,"div",!1).div},n.prototype.mod=function(l){return this.divmod(l,"mod",!1).mod},n.prototype.umod=function(l){return this.divmod(l,"mod",!0).mod},n.prototype.divRound=function(l){var h=this.divmod(l);if(h.mod.isZero())return h.div;var p=h.div.negative!==0?h.mod.isub(l):h.mod,w=l.ushrn(1),x=l.andln(1),g=p.cmp(w);return g<0||x===1&&g===0?h.div:h.div.negative!==0?h.div.isubn(1):h.div.iaddn(1)},n.prototype.modrn=function(l){var h=l<0;h&&(l=-l),i(l<=67108863);for(var p=(1<<26)%l,w=0,x=this.length-1;x>=0;x--)w=(p*w+(this.words[x]|0))%l;return h?-w:w},n.prototype.modn=function(l){return this.modrn(l)},n.prototype.idivn=function(l){var h=l<0;h&&(l=-l),i(l<=67108863);for(var p=0,w=this.length-1;w>=0;w--){var x=(this.words[w]|0)+p*67108864;this.words[w]=x/l|0,p=x%l}return this._strip(),h?this.ineg():this},n.prototype.divn=function(l){return this.clone().idivn(l)},n.prototype.egcd=function(l){i(l.negative===0),i(!l.isZero());var h=this,p=l.clone();h.negative!==0?h=h.umod(l):h=h.clone();for(var w=new n(1),x=new n(0),g=new n(0),s=new n(1),v=0;h.isEven()&&p.isEven();)h.iushrn(1),p.iushrn(1),++v;for(var T=p.clone(),$=h.clone();!h.isZero();){for(var G=0,ee=1;!(h.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(h.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(T),x.isub($)),w.iushrn(1),x.iushrn(1);for(var A=0,E=1;!(p.words[0]&E)&&A<26;++A,E<<=1);if(A>0)for(p.iushrn(A);A-- >0;)(g.isOdd()||s.isOdd())&&(g.iadd(T),s.isub($)),g.iushrn(1),s.iushrn(1);h.cmp(p)>=0?(h.isub(p),w.isub(g),x.isub(s)):(p.isub(h),g.isub(w),s.isub(x))}return{a:g,b:s,gcd:p.iushln(v)}},n.prototype._invmp=function(l){i(l.negative===0),i(!l.isZero());var h=this,p=l.clone();h.negative!==0?h=h.umod(l):h=h.clone();for(var w=new n(1),x=new n(0),g=p.clone();h.cmpn(1)>0&&p.cmpn(1)>0;){for(var s=0,v=1;!(h.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(h.iushrn(s);s-- >0;)w.isOdd()&&w.iadd(g),w.iushrn(1);for(var T=0,$=1;!(p.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(p.iushrn(T);T-- >0;)x.isOdd()&&x.iadd(g),x.iushrn(1);h.cmp(p)>=0?(h.isub(p),w.isub(x)):(p.isub(h),x.isub(w))}var G;return h.cmpn(1)===0?G=w:G=x,G.cmpn(0)<0&&G.iadd(l),G},n.prototype.gcd=function(l){if(this.isZero())return l.abs();if(l.isZero())return this.abs();var h=this.clone(),p=l.clone();h.negative=0,p.negative=0;for(var w=0;h.isEven()&&p.isEven();w++)h.iushrn(1),p.iushrn(1);do{for(;h.isEven();)h.iushrn(1);for(;p.isEven();)p.iushrn(1);var x=h.cmp(p);if(x<0){var g=h;h=p,p=g}else if(x===0||p.cmpn(1)===0)break;h.isub(p)}while(!0);return p.iushln(w)},n.prototype.invm=function(l){return this.egcd(l).a.umod(l)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(l){return this.words[0]&l},n.prototype.bincn=function(l){i(typeof l=="number");var h=l%26,p=(l-h)/26,w=1<<h;if(this.length<=p)return this._expand(p+1),this.words[p]|=w,this;for(var x=w,g=p;x!==0&&g<this.length;g++){var s=this.words[g]|0;s+=x,x=s>>>26,s&=67108863,this.words[g]=s}return x!==0&&(this.words[g]=x,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(l){var h=l<0;if(this.negative!==0&&!h)return-1;if(this.negative===0&&h)return 1;this._strip();var p;if(this.length>1)p=1;else{h&&(l=-l),i(l<=67108863,"Number is too big");var w=this.words[0]|0;p=w===l?0:w<l?-1:1}return this.negative!==0?-p|0:p},n.prototype.cmp=function(l){if(this.negative!==0&&l.negative===0)return-1;if(this.negative===0&&l.negative!==0)return 1;var h=this.ucmp(l);return this.negative!==0?-h|0:h},n.prototype.ucmp=function(l){if(this.length>l.length)return 1;if(this.length<l.length)return-1;for(var h=0,p=this.length-1;p>=0;p--){var w=this.words[p]|0,x=l.words[p]|0;if(w!==x){w<x?h=-1:w>x&&(h=1);break}}return h},n.prototype.gtn=function(l){return this.cmpn(l)===1},n.prototype.gt=function(l){return this.cmp(l)===1},n.prototype.gten=function(l){return this.cmpn(l)>=0},n.prototype.gte=function(l){return this.cmp(l)>=0},n.prototype.ltn=function(l){return this.cmpn(l)===-1},n.prototype.lt=function(l){return this.cmp(l)===-1},n.prototype.lten=function(l){return this.cmpn(l)<=0},n.prototype.lte=function(l){return this.cmp(l)<=0},n.prototype.eqn=function(l){return this.cmpn(l)===0},n.prototype.eq=function(l){return this.cmp(l)===0},n.red=function(l){return new _(l)},n.prototype.toRed=function(l){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),l.convertTo(this)._forceRed(l)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(l){return this.red=l,this},n.prototype.forceRed=function(l){return i(!this.red,"Already a number in reduction context"),this._forceRed(l)},n.prototype.redAdd=function(l){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,l)},n.prototype.redIAdd=function(l){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l)},n.prototype.redSub=function(l){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,l)},n.prototype.redISub=function(l){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,l)},n.prototype.redShl=function(l){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,l)},n.prototype.redMul=function(l){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,l),this.red.mul(this,l)},n.prototype.redIMul=function(l){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,l),this.red.imul(this,l)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(l){return i(this.red&&!l.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l)};var W={k256:null,p224:null,p192:null,p25519:null};function Y(f,l){this.name=f,this.p=new n(l,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Y.prototype._tmp=function(){var l=new n(null);return l.words=new Array(Math.ceil(this.n/13)),l},Y.prototype.ireduce=function(l){var h=l,p;do this.split(h,this.tmp),h=this.imulK(h),h=h.iadd(this.tmp),p=h.bitLength();while(p>this.n);var w=p<this.n?-1:h.ucmp(this.p);return w===0?(h.words[0]=0,h.length=1):w>0?h.isub(this.p):h.strip!==void 0?h.strip():h._strip(),h},Y.prototype.split=function(l,h){l.iushrn(this.n,0,h)},Y.prototype.imulK=function(l){return l.imul(this.k)};function ie(){Y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(ie,Y),ie.prototype.split=function(l,h){for(var p=4194303,w=Math.min(l.length,9),x=0;x<w;x++)h.words[x]=l.words[x];if(h.length=w,l.length<=9){l.words[0]=0,l.length=1;return}var g=l.words[9];for(h.words[h.length++]=g&p,x=10;x<l.length;x++){var s=l.words[x]|0;l.words[x-10]=(s&p)<<4|g>>>22,g=s}g>>>=22,l.words[x-10]=g,g===0&&l.length>10?l.length-=10:l.length-=9},ie.prototype.imulK=function(l){l.words[l.length]=0,l.words[l.length+1]=0,l.length+=2;for(var h=0,p=0;p<l.length;p++){var w=l.words[p]|0;h+=w*977,l.words[p]=h&67108863,h=w*64+(h/67108864|0)}return l.words[l.length-1]===0&&(l.length--,l.words[l.length-1]===0&&l.length--),l};function J(){Y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(J,Y);function V(){Y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(V,Y);function oe(){Y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(oe,Y),oe.prototype.imulK=function(l){for(var h=0,p=0;p<l.length;p++){var w=(l.words[p]|0)*19+h,x=w&67108863;w>>>=26,l.words[p]=x,h=w}return h!==0&&(l.words[l.length++]=h),l},n._prime=function(l){if(W[l])return W[l];var h;if(l==="k256")h=new ie;else if(l==="p224")h=new J;else if(l==="p192")h=new V;else if(l==="p25519")h=new oe;else throw new Error("Unknown prime "+l);return W[l]=h,h};function _(f){if(typeof f=="string"){var l=n._prime(f);this.m=l.p,this.prime=l}else i(f.gtn(1),"modulus must be greater than 1"),this.m=f,this.prime=null}_.prototype._verify1=function(l){i(l.negative===0,"red works only with positives"),i(l.red,"red works only with red numbers")},_.prototype._verify2=function(l,h){i((l.negative|h.negative)===0,"red works only with positives"),i(l.red&&l.red===h.red,"red works only with red numbers")},_.prototype.imod=function(l){return this.prime?this.prime.ireduce(l)._forceRed(this):(M(l,l.umod(this.m)._forceRed(this)),l)},_.prototype.neg=function(l){return l.isZero()?l.clone():this.m.sub(l)._forceRed(this)},_.prototype.add=function(l,h){this._verify2(l,h);var p=l.add(h);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},_.prototype.iadd=function(l,h){this._verify2(l,h);var p=l.iadd(h);return p.cmp(this.m)>=0&&p.isub(this.m),p},_.prototype.sub=function(l,h){this._verify2(l,h);var p=l.sub(h);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},_.prototype.isub=function(l,h){this._verify2(l,h);var p=l.isub(h);return p.cmpn(0)<0&&p.iadd(this.m),p},_.prototype.shl=function(l,h){return this._verify1(l),this.imod(l.ushln(h))},_.prototype.imul=function(l,h){return this._verify2(l,h),this.imod(l.imul(h))},_.prototype.mul=function(l,h){return this._verify2(l,h),this.imod(l.mul(h))},_.prototype.isqr=function(l){return this.imul(l,l.clone())},_.prototype.sqr=function(l){return this.mul(l,l)},_.prototype.sqrt=function(l){if(l.isZero())return l.clone();var h=this.m.andln(3);if(i(h%2===1),h===3){var p=this.m.add(new n(1)).iushrn(2);return this.pow(l,p)}for(var w=this.m.subn(1),x=0;!w.isZero()&&w.andln(1)===0;)x++,w.iushrn(1);i(!w.isZero());var g=new n(1).toRed(this),s=g.redNeg(),v=this.m.subn(1).iushrn(1),T=this.m.bitLength();for(T=new n(2*T*T).toRed(this);this.pow(T,v).cmp(s)!==0;)T.redIAdd(s);for(var $=this.pow(T,w),G=this.pow(l,w.addn(1).iushrn(1)),ee=this.pow(l,w),A=x;ee.cmp(g)!==0;){for(var E=ee,U=0;E.cmp(g)!==0;U++)E=E.redSqr();i(U<A);var K=this.pow($,new n(1).iushln(A-U-1));G=G.redMul(K),$=K.redSqr(),ee=ee.redMul($),A=U}return G},_.prototype.invm=function(l){var h=l._invmp(this.m);return h.negative!==0?(h.negative=0,this.imod(h).redNeg()):this.imod(h)},_.prototype.pow=function(l,h){if(h.isZero())return new n(1).toRed(this);if(h.cmpn(1)===0)return l.clone();var p=4,w=new Array(1<<p);w[0]=new n(1).toRed(this),w[1]=l;for(var x=2;x<w.length;x++)w[x]=this.mul(w[x-1],l);var g=w[0],s=0,v=0,T=h.bitLength()%26;for(T===0&&(T=26),x=h.length-1;x>=0;x--){for(var $=h.words[x],G=T-1;G>=0;G--){var ee=$>>G&1;if(g!==w[0]&&(g=this.sqr(g)),ee===0&&s===0){v=0;continue}s<<=1,s|=ee,v++,!(v!==p&&(x!==0||G!==0))&&(g=this.mul(g,w[s]),v=0,s=0)}T=26}return g},_.prototype.convertTo=function(l){var h=l.umod(this.m);return h===l?h.clone():h},_.prototype.convertFrom=function(l){var h=l.clone();return h.red=null,h},n.mont=function(l){return new o(l)};function o(f){_.call(this,f),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(o,_),o.prototype.convertTo=function(l){return this.imod(l.ushln(this.shift))},o.prototype.convertFrom=function(l){var h=this.imod(l.mul(this.rinv));return h.red=null,h},o.prototype.imul=function(l,h){if(l.isZero()||h.isZero())return l.words[0]=0,l.length=1,l;var p=l.imul(h),w=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=p.isub(w).iushrn(this.shift),g=x;return x.cmp(this.m)>=0?g=x.isub(this.m):x.cmpn(0)<0&&(g=x.iadd(this.m)),g._forceRed(this)},o.prototype.mul=function(l,h){if(l.isZero()||h.isZero())return new n(0)._forceRed(this);var p=l.mul(h),w=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=p.isub(w).iushrn(this.shift),g=x;return x.cmp(this.m)>=0?g=x.isub(this.m):x.cmpn(0)<0&&(g=x.iadd(this.m)),g._forceRed(this)},o.prototype.invm=function(l){var h=this.imod(l._invmp(this.m).mul(this.r2));return h._forceRed(this)}})(e,Ye)})(Cg);var Bg=Cg.exports,is=Bg,VH=Ds;function zH(e){var t=Lx(e),r=t.toRed(is.mont(e.modulus)).redPow(new is(e.publicExponent)).fromRed();return{blinder:r,unblinder:t.invm(e.modulus)}}function Lx(e){var t=e.modulus.byteLength(),r;do r=new is(VH(t));while(r.cmp(e.modulus)>=0||!r.umod(e.prime1)||!r.umod(e.prime2));return r}function Nx(e,t){var r=zH(t),i=t.modulus.byteLength(),a=new is(e).mul(r.blinder).umod(t.modulus),n=a.toRed(is.mont(t.prime1)),u=a.toRed(is.mont(t.prime2)),c=t.coefficient,d=t.prime1,m=t.prime2,M=n.redPow(t.exponent1).fromRed(),S=u.redPow(t.exponent2).fromRed(),R=M.isub(S).imul(c).umod(d).imul(m);return S.iadd(R).imul(r.unblinder).umod(t.modulus).toArrayLike(ke.Buffer,"be",i)}Nx.getr=Lx;var Lg=Nx,b0={};const GH="elliptic",YH="6.5.4",ZH="EC cryptography",XH="lib/elliptic.js",JH=["lib"],QH={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},eq={type:"git",url:"git@github.com:indutny/elliptic"},tq=["EC","Elliptic","curve","Cryptography"],rq="Fedor Indutny <fedor@indutny.com>",iq="MIT",nq={url:"https://github.com/indutny/elliptic/issues"},oq="https://github.com/indutny/elliptic",aq={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},sq={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},fq={name:GH,version:YH,description:ZH,main:XH,files:JH,scripts:QH,repository:eq,keywords:tq,author:rq,license:iq,bugs:nq,homepage:oq,devDependencies:aq,dependencies:sq};var ri={},Ng={exports:{}};Ng.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Ng);var Yn=Ng.exports,kg={};(function(e){var t=e;function r(n,u){if(Array.isArray(n))return n.slice();if(!n)return[];var c=[];if(typeof n!="string"){for(var d=0;d<n.length;d++)c[d]=n[d]|0;return c}if(u==="hex"){n=n.replace(/[^a-z0-9]+/ig,""),n.length%2!==0&&(n="0"+n);for(var d=0;d<n.length;d+=2)c.push(parseInt(n[d]+n[d+1],16))}else for(var d=0;d<n.length;d++){var m=n.charCodeAt(d),M=m>>8,S=m&255;M?c.push(M,S):c.push(S)}return c}t.toArray=r;function i(n){return n.length===1?"0"+n:n}t.zero2=i;function a(n){for(var u="",c=0;c<n.length;c++)u+=i(n[c].toString(16));return u}t.toHex=a,t.encode=function(u,c){return c==="hex"?a(u):u}})(kg);(function(e){var t=e,r=Yn,i=Si,a=kg;t.assert=i,t.toArray=a.toArray,t.zero2=a.zero2,t.toHex=a.toHex,t.encode=a.encode;function n(M,S,R){var C=new Array(Math.max(M.bitLength(),R)+1);C.fill(0);for(var P=1<<S+1,k=M.clone(),L=0;L<C.length;L++){var I,B=k.andln(P-1);k.isOdd()?(B>(P>>1)-1?I=(P>>1)-B:I=B,k.isubn(I)):I=0,C[L]=I,k.iushrn(1)}return C}t.getNAF=n;function u(M,S){var R=[[],[]];M=M.clone(),S=S.clone();for(var C=0,P=0,k;M.cmpn(-C)>0||S.cmpn(-P)>0;){var L=M.andln(3)+C&3,I=S.andln(3)+P&3;L===3&&(L=-1),I===3&&(I=-1);var B;L&1?(k=M.andln(7)+C&7,(k===3||k===5)&&I===2?B=-L:B=L):B=0,R[0].push(B);var H;I&1?(k=S.andln(7)+P&7,(k===3||k===5)&&L===2?H=-I:H=I):H=0,R[1].push(H),2*C===B+1&&(C=1-C),2*P===H+1&&(P=1-P),M.iushrn(1),S.iushrn(1)}return R}t.getJSF=u;function c(M,S,R){var C="_"+S;M.prototype[S]=function(){return this[C]!==void 0?this[C]:this[C]=R.call(this)}}t.cachedProperty=c;function d(M){return typeof M=="string"?t.toArray(M,"hex"):M}t.parseBytes=d;function m(M){return new r(M,"hex","le")}t.intFromLE=m})(ri);var $g={},Wo=Yn,Lu=ri,th=Lu.getNAF,uq=Lu.getJSF,rh=Lu.assert;function Do(e,t){this.type=e,this.p=new Wo(t.p,16),this.red=t.prime?Wo.red(t.prime):Wo.mont(this.p),this.zero=new Wo(0).toRed(this.red),this.one=new Wo(1).toRed(this.red),this.two=new Wo(2).toRed(this.red),this.n=t.n&&new Wo(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var lc=Do;Do.prototype.point=function(){throw new Error("Not implemented")};Do.prototype.validate=function(){throw new Error("Not implemented")};Do.prototype._fixedNafMul=function(t,r){rh(t.precomputed);var i=t._getDoubles(),a=th(r,1,this._bitLength),n=(1<<i.step+1)-(i.step%2===0?2:1);n/=3;var u=[],c,d;for(c=0;c<a.length;c+=i.step){d=0;for(var m=c+i.step-1;m>=c;m--)d=(d<<1)+a[m];u.push(d)}for(var M=this.jpoint(null,null,null),S=this.jpoint(null,null,null),R=n;R>0;R--){for(c=0;c<u.length;c++)d=u[c],d===R?S=S.mixedAdd(i.points[c]):d===-R&&(S=S.mixedAdd(i.points[c].neg()));M=M.add(S)}return M.toP()};Do.prototype._wnafMul=function(t,r){var i=4,a=t._getNAFPoints(i);i=a.wnd;for(var n=a.points,u=th(r,i,this._bitLength),c=this.jpoint(null,null,null),d=u.length-1;d>=0;d--){for(var m=0;d>=0&&u[d]===0;d--)m++;if(d>=0&&m++,c=c.dblp(m),d<0)break;var M=u[d];rh(M!==0),t.type==="affine"?M>0?c=c.mixedAdd(n[M-1>>1]):c=c.mixedAdd(n[-M-1>>1].neg()):M>0?c=c.add(n[M-1>>1]):c=c.add(n[-M-1>>1].neg())}return t.type==="affine"?c.toP():c};Do.prototype._wnafMulAdd=function(t,r,i,a,n){var u=this._wnafT1,c=this._wnafT2,d=this._wnafT3,m=0,M,S,R;for(M=0;M<a;M++){R=r[M];var C=R._getNAFPoints(t);u[M]=C.wnd,c[M]=C.points}for(M=a-1;M>=1;M-=2){var P=M-1,k=M;if(u[P]!==1||u[k]!==1){d[P]=th(i[P],u[P],this._bitLength),d[k]=th(i[k],u[k],this._bitLength),m=Math.max(d[P].length,m),m=Math.max(d[k].length,m);continue}var L=[r[P],null,null,r[k]];r[P].y.cmp(r[k].y)===0?(L[1]=r[P].add(r[k]),L[2]=r[P].toJ().mixedAdd(r[k].neg())):r[P].y.cmp(r[k].y.redNeg())===0?(L[1]=r[P].toJ().mixedAdd(r[k]),L[2]=r[P].add(r[k].neg())):(L[1]=r[P].toJ().mixedAdd(r[k]),L[2]=r[P].toJ().mixedAdd(r[k].neg()));var I=[-3,-1,-5,-7,0,7,5,1,3],B=uq(i[P],i[k]);for(m=Math.max(B[0].length,m),d[P]=new Array(m),d[k]=new Array(m),S=0;S<m;S++){var H=B[0][S]|0,F=B[1][S]|0;d[P][S]=I[(H+1)*3+(F+1)],d[k][S]=0,c[P]=L}}var W=this.jpoint(null,null,null),Y=this._wnafT4;for(M=m;M>=0;M--){for(var ie=0;M>=0;){var J=!0;for(S=0;S<a;S++)Y[S]=d[S][M]|0,Y[S]!==0&&(J=!1);if(!J)break;ie++,M--}if(M>=0&&ie++,W=W.dblp(ie),M<0)break;for(S=0;S<a;S++){var V=Y[S];V!==0&&(V>0?R=c[S][V-1>>1]:V<0&&(R=c[S][-V-1>>1].neg()),R.type==="affine"?W=W.mixedAdd(R):W=W.add(R))}}for(M=0;M<a;M++)c[M]=null;return n?W:W.toP()};function Ri(e,t){this.curve=e,this.type=t,this.precomputed=null}Do.BasePoint=Ri;Ri.prototype.eq=function(){throw new Error("Not implemented")};Ri.prototype.validate=function(){return this.curve.validate(this)};Do.prototype.decodePoint=function(t,r){t=Lu.toArray(t,r);var i=this.p.byteLength();if((t[0]===4||t[0]===6||t[0]===7)&&t.length-1===2*i){t[0]===6?rh(t[t.length-1]%2===0):t[0]===7&&rh(t[t.length-1]%2===1);var a=this.point(t.slice(1,1+i),t.slice(1+i,1+2*i));return a}else if((t[0]===2||t[0]===3)&&t.length-1===i)return this.pointFromX(t.slice(1,1+i),t[0]===3);throw new Error("Unknown point format")};Ri.prototype.encodeCompressed=function(t){return this.encode(t,!0)};Ri.prototype._encode=function(t){var r=this.curve.p.byteLength(),i=this.getX().toArray("be",r);return t?[this.getY().isEven()?2:3].concat(i):[4].concat(i,this.getY().toArray("be",r))};Ri.prototype.encode=function(t,r){return Lu.encode(this._encode(r),t)};Ri.prototype.precompute=function(t){if(this.precomputed)return this;var r={doubles:null,naf:null,beta:null};return r.naf=this._getNAFPoints(8),r.doubles=this._getDoubles(4,t),r.beta=this._getBeta(),this.precomputed=r,this};Ri.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var r=this.precomputed.doubles;return r?r.points.length>=Math.ceil((t.bitLength()+1)/r.step):!1};Ri.prototype._getDoubles=function(t,r){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],a=this,n=0;n<r;n+=t){for(var u=0;u<t;u++)a=a.dbl();i.push(a)}return{step:t,points:i}};Ri.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var r=[this],i=(1<<t)-1,a=i===1?null:this.dbl(),n=1;n<i;n++)r[n]=r[n-1].add(a);return{wnd:t,points:r}};Ri.prototype._getBeta=function(){return null};Ri.prototype.dblp=function(t){for(var r=this,i=0;i<t;i++)r=r.dbl();return r};var lq=ri,Jt=Yn,Dg=Ze,Hs=lc,hq=lq.assert;function Ai(e){Hs.call(this,"short",e),this.a=new Jt(e.a,16).toRed(this.red),this.b=new Jt(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Dg(Ai,Hs);var cq=Ai;Ai.prototype._getEndomorphism=function(t){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var r,i;if(t.beta)r=new Jt(t.beta,16).toRed(this.red);else{var a=this._getEndoRoots(this.p);r=a[0].cmp(a[1])<0?a[0]:a[1],r=r.toRed(this.red)}if(t.lambda)i=new Jt(t.lambda,16);else{var n=this._getEndoRoots(this.n);this.g.mul(n[0]).x.cmp(this.g.x.redMul(r))===0?i=n[0]:(i=n[1],hq(this.g.mul(i).x.cmp(this.g.x.redMul(r))===0))}var u;return t.basis?u=t.basis.map(function(c){return{a:new Jt(c.a,16),b:new Jt(c.b,16)}}):u=this._getEndoBasis(i),{beta:r,lambda:i,basis:u}}};Ai.prototype._getEndoRoots=function(t){var r=t===this.p?this.red:Jt.mont(t),i=new Jt(2).toRed(r).redInvm(),a=i.redNeg(),n=new Jt(3).toRed(r).redNeg().redSqrt().redMul(i),u=a.redAdd(n).fromRed(),c=a.redSub(n).fromRed();return[u,c]};Ai.prototype._getEndoBasis=function(t){for(var r=this.n.ushrn(Math.floor(this.n.bitLength()/2)),i=t,a=this.n.clone(),n=new Jt(1),u=new Jt(0),c=new Jt(0),d=new Jt(1),m,M,S,R,C,P,k,L=0,I,B;i.cmpn(0)!==0;){var H=a.div(i);I=a.sub(H.mul(i)),B=c.sub(H.mul(n));var F=d.sub(H.mul(u));if(!S&&I.cmp(r)<0)m=k.neg(),M=n,S=I.neg(),R=B;else if(S&&++L===2)break;k=I,a=i,i=I,c=n,n=B,d=u,u=F}C=I.neg(),P=B;var W=S.sqr().add(R.sqr()),Y=C.sqr().add(P.sqr());return Y.cmp(W)>=0&&(C=m,P=M),S.negative&&(S=S.neg(),R=R.neg()),C.negative&&(C=C.neg(),P=P.neg()),[{a:S,b:R},{a:C,b:P}]};Ai.prototype._endoSplit=function(t){var r=this.endo.basis,i=r[0],a=r[1],n=a.b.mul(t).divRound(this.n),u=i.b.neg().mul(t).divRound(this.n),c=n.mul(i.a),d=u.mul(a.a),m=n.mul(i.b),M=u.mul(a.b),S=t.sub(c).sub(d),R=m.add(M).neg();return{k1:S,k2:R}};Ai.prototype.pointFromX=function(t,r){t=new Jt(t,16),t.red||(t=t.toRed(this.red));var i=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),a=i.redSqrt();if(a.redSqr().redSub(i).cmp(this.zero)!==0)throw new Error("invalid point");var n=a.fromRed().isOdd();return(r&&!n||!r&&n)&&(a=a.redNeg()),this.point(t,a)};Ai.prototype.validate=function(t){if(t.inf)return!0;var r=t.x,i=t.y,a=this.a.redMul(r),n=r.redSqr().redMul(r).redIAdd(a).redIAdd(this.b);return i.redSqr().redISub(n).cmpn(0)===0};Ai.prototype._endoWnafMulAdd=function(t,r,i){for(var a=this._endoWnafT1,n=this._endoWnafT2,u=0;u<t.length;u++){var c=this._endoSplit(r[u]),d=t[u],m=d._getBeta();c.k1.negative&&(c.k1.ineg(),d=d.neg(!0)),c.k2.negative&&(c.k2.ineg(),m=m.neg(!0)),a[u*2]=d,a[u*2+1]=m,n[u*2]=c.k1,n[u*2+1]=c.k2}for(var M=this._wnafMulAdd(1,a,n,u*2,i),S=0;S<u*2;S++)a[S]=null,n[S]=null;return M};function dr(e,t,r,i){Hs.BasePoint.call(this,e,"affine"),t===null&&r===null?(this.x=null,this.y=null,this.inf=!0):(this.x=new Jt(t,16),this.y=new Jt(r,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}Dg(dr,Hs.BasePoint);Ai.prototype.point=function(t,r,i){return new dr(this,t,r,i)};Ai.prototype.pointFromJSON=function(t,r){return dr.fromJSON(this,t,r)};dr.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var r=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var i=this.curve,a=function(n){return i.point(n.x.redMul(i.endo.beta),n.y)};t.beta=r,r.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(a)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(a)}}}return r}};dr.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]};dr.fromJSON=function(t,r,i){typeof r=="string"&&(r=JSON.parse(r));var a=t.point(r[0],r[1],i);if(!r[2])return a;function n(c){return t.point(c[0],c[1],i)}var u=r[2];return a.precomputed={beta:null,doubles:u.doubles&&{step:u.doubles.step,points:[a].concat(u.doubles.points.map(n))},naf:u.naf&&{wnd:u.naf.wnd,points:[a].concat(u.naf.points.map(n))}},a};dr.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"};dr.prototype.isInfinity=function(){return this.inf};dr.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(this.x.cmp(t.x)===0)return this.curve.point(null,null);var r=this.y.redSub(t.y);r.cmpn(0)!==0&&(r=r.redMul(this.x.redSub(t.x).redInvm()));var i=r.redSqr().redISub(this.x).redISub(t.x),a=r.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)};dr.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(t.cmpn(0)===0)return this.curve.point(null,null);var r=this.curve.a,i=this.x.redSqr(),a=t.redInvm(),n=i.redAdd(i).redIAdd(i).redIAdd(r).redMul(a),u=n.redSqr().redISub(this.x.redAdd(this.x)),c=n.redMul(this.x.redSub(u)).redISub(this.y);return this.curve.point(u,c)};dr.prototype.getX=function(){return this.x.fromRed()};dr.prototype.getY=function(){return this.y.fromRed()};dr.prototype.mul=function(t){return t=new Jt(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)};dr.prototype.mulAdd=function(t,r,i){var a=[this,r],n=[t,i];return this.curve.endo?this.curve._endoWnafMulAdd(a,n):this.curve._wnafMulAdd(1,a,n,2)};dr.prototype.jmulAdd=function(t,r,i){var a=[this,r],n=[t,i];return this.curve.endo?this.curve._endoWnafMulAdd(a,n,!0):this.curve._wnafMulAdd(1,a,n,2,!0)};dr.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||this.x.cmp(t.x)===0&&this.y.cmp(t.y)===0)};dr.prototype.neg=function(t){if(this.inf)return this;var r=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var i=this.precomputed,a=function(n){return n.neg()};r.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(a)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(a)}}}return r};dr.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var t=this.curve.jpoint(this.x,this.y,this.curve.one);return t};function wr(e,t,r,i){Hs.BasePoint.call(this,e,"jacobian"),t===null&&r===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Jt(0)):(this.x=new Jt(t,16),this.y=new Jt(r,16),this.z=new Jt(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Dg(wr,Hs.BasePoint);Ai.prototype.jpoint=function(t,r,i){return new wr(this,t,r,i)};wr.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),r=t.redSqr(),i=this.x.redMul(r),a=this.y.redMul(r).redMul(t);return this.curve.point(i,a)};wr.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};wr.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var r=t.z.redSqr(),i=this.z.redSqr(),a=this.x.redMul(r),n=t.x.redMul(i),u=this.y.redMul(r.redMul(t.z)),c=t.y.redMul(i.redMul(this.z)),d=a.redSub(n),m=u.redSub(c);if(d.cmpn(0)===0)return m.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var M=d.redSqr(),S=M.redMul(d),R=a.redMul(M),C=m.redSqr().redIAdd(S).redISub(R).redISub(R),P=m.redMul(R.redISub(C)).redISub(u.redMul(S)),k=this.z.redMul(t.z).redMul(d);return this.curve.jpoint(C,P,k)};wr.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var r=this.z.redSqr(),i=this.x,a=t.x.redMul(r),n=this.y,u=t.y.redMul(r).redMul(this.z),c=i.redSub(a),d=n.redSub(u);if(c.cmpn(0)===0)return d.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var m=c.redSqr(),M=m.redMul(c),S=i.redMul(m),R=d.redSqr().redIAdd(M).redISub(S).redISub(S),C=d.redMul(S.redISub(R)).redISub(n.redMul(M)),P=this.z.redMul(c);return this.curve.jpoint(R,C,P)};wr.prototype.dblp=function(t){if(t===0)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var r;if(this.curve.zeroA||this.curve.threeA){var i=this;for(r=0;r<t;r++)i=i.dbl();return i}var a=this.curve.a,n=this.curve.tinv,u=this.x,c=this.y,d=this.z,m=d.redSqr().redSqr(),M=c.redAdd(c);for(r=0;r<t;r++){var S=u.redSqr(),R=M.redSqr(),C=R.redSqr(),P=S.redAdd(S).redIAdd(S).redIAdd(a.redMul(m)),k=u.redMul(R),L=P.redSqr().redISub(k.redAdd(k)),I=k.redISub(L),B=P.redMul(I);B=B.redIAdd(B).redISub(C);var H=M.redMul(d);r+1<t&&(m=m.redMul(C)),u=L,d=H,M=B}return this.curve.jpoint(u,M.redMul(n),d)};wr.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()};wr.prototype._zeroDbl=function(){var t,r,i;if(this.zOne){var a=this.x.redSqr(),n=this.y.redSqr(),u=n.redSqr(),c=this.x.redAdd(n).redSqr().redISub(a).redISub(u);c=c.redIAdd(c);var d=a.redAdd(a).redIAdd(a),m=d.redSqr().redISub(c).redISub(c),M=u.redIAdd(u);M=M.redIAdd(M),M=M.redIAdd(M),t=m,r=d.redMul(c.redISub(m)).redISub(M),i=this.y.redAdd(this.y)}else{var S=this.x.redSqr(),R=this.y.redSqr(),C=R.redSqr(),P=this.x.redAdd(R).redSqr().redISub(S).redISub(C);P=P.redIAdd(P);var k=S.redAdd(S).redIAdd(S),L=k.redSqr(),I=C.redIAdd(C);I=I.redIAdd(I),I=I.redIAdd(I),t=L.redISub(P).redISub(P),r=k.redMul(P.redISub(t)).redISub(I),i=this.y.redMul(this.z),i=i.redIAdd(i)}return this.curve.jpoint(t,r,i)};wr.prototype._threeDbl=function(){var t,r,i;if(this.zOne){var a=this.x.redSqr(),n=this.y.redSqr(),u=n.redSqr(),c=this.x.redAdd(n).redSqr().redISub(a).redISub(u);c=c.redIAdd(c);var d=a.redAdd(a).redIAdd(a).redIAdd(this.curve.a),m=d.redSqr().redISub(c).redISub(c);t=m;var M=u.redIAdd(u);M=M.redIAdd(M),M=M.redIAdd(M),r=d.redMul(c.redISub(m)).redISub(M),i=this.y.redAdd(this.y)}else{var S=this.z.redSqr(),R=this.y.redSqr(),C=this.x.redMul(R),P=this.x.redSub(S).redMul(this.x.redAdd(S));P=P.redAdd(P).redIAdd(P);var k=C.redIAdd(C);k=k.redIAdd(k);var L=k.redAdd(k);t=P.redSqr().redISub(L),i=this.y.redAdd(this.z).redSqr().redISub(R).redISub(S);var I=R.redSqr();I=I.redIAdd(I),I=I.redIAdd(I),I=I.redIAdd(I),r=P.redMul(k.redISub(t)).redISub(I)}return this.curve.jpoint(t,r,i)};wr.prototype._dbl=function(){var t=this.curve.a,r=this.x,i=this.y,a=this.z,n=a.redSqr().redSqr(),u=r.redSqr(),c=i.redSqr(),d=u.redAdd(u).redIAdd(u).redIAdd(t.redMul(n)),m=r.redAdd(r);m=m.redIAdd(m);var M=m.redMul(c),S=d.redSqr().redISub(M.redAdd(M)),R=M.redISub(S),C=c.redSqr();C=C.redIAdd(C),C=C.redIAdd(C),C=C.redIAdd(C);var P=d.redMul(R).redISub(C),k=i.redAdd(i).redMul(a);return this.curve.jpoint(S,P,k)};wr.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),r=this.y.redSqr(),i=this.z.redSqr(),a=r.redSqr(),n=t.redAdd(t).redIAdd(t),u=n.redSqr(),c=this.x.redAdd(r).redSqr().redISub(t).redISub(a);c=c.redIAdd(c),c=c.redAdd(c).redIAdd(c),c=c.redISub(u);var d=c.redSqr(),m=a.redIAdd(a);m=m.redIAdd(m),m=m.redIAdd(m),m=m.redIAdd(m);var M=n.redIAdd(c).redSqr().redISub(u).redISub(d).redISub(m),S=r.redMul(M);S=S.redIAdd(S),S=S.redIAdd(S);var R=this.x.redMul(d).redISub(S);R=R.redIAdd(R),R=R.redIAdd(R);var C=this.y.redMul(M.redMul(m.redISub(M)).redISub(c.redMul(d)));C=C.redIAdd(C),C=C.redIAdd(C),C=C.redIAdd(C);var P=this.z.redAdd(c).redSqr().redISub(i).redISub(d);return this.curve.jpoint(R,C,P)};wr.prototype.mul=function(t,r){return t=new Jt(t,r),this.curve._wnafMul(this,t)};wr.prototype.eq=function(t){if(t.type==="affine")return this.eq(t.toJ());if(this===t)return!0;var r=this.z.redSqr(),i=t.z.redSqr();if(this.x.redMul(i).redISub(t.x.redMul(r)).cmpn(0)!==0)return!1;var a=r.redMul(this.z),n=i.redMul(t.z);return this.y.redMul(n).redISub(t.y.redMul(a)).cmpn(0)===0};wr.prototype.eqXToP=function(t){var r=this.z.redSqr(),i=t.toRed(this.curve.red).redMul(r);if(this.x.cmp(i)===0)return!0;for(var a=t.clone(),n=this.curve.redN.redMul(r);;){if(a.iadd(this.curve.n),a.cmp(this.curve.p)>=0)return!1;if(i.redIAdd(n),this.x.cmp(i)===0)return!0}};wr.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"};wr.prototype.isInfinity=function(){return this.z.cmpn(0)===0};var Va=Yn,kx=Ze,hc=lc,dq=ri;function qs(e){hc.call(this,"mont",e),this.a=new Va(e.a,16).toRed(this.red),this.b=new Va(e.b,16).toRed(this.red),this.i4=new Va(4).toRed(this.red).redInvm(),this.two=new Va(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}kx(qs,hc);var pq=qs;qs.prototype.validate=function(t){var r=t.normalize().x,i=r.redSqr(),a=i.redMul(r).redAdd(i.redMul(this.a)).redAdd(r),n=a.redSqrt();return n.redSqr().cmp(a)===0};function cr(e,t,r){hc.BasePoint.call(this,e,"projective"),t===null&&r===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Va(t,16),this.z=new Va(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}kx(cr,hc.BasePoint);qs.prototype.decodePoint=function(t,r){return this.point(dq.toArray(t,r),1)};qs.prototype.point=function(t,r){return new cr(this,t,r)};qs.prototype.pointFromJSON=function(t){return cr.fromJSON(this,t)};cr.prototype.precompute=function(){};cr.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};cr.fromJSON=function(t,r){return new cr(t,r[0],r[1]||t.one)};cr.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};cr.prototype.isInfinity=function(){return this.z.cmpn(0)===0};cr.prototype.dbl=function(){var t=this.x.redAdd(this.z),r=t.redSqr(),i=this.x.redSub(this.z),a=i.redSqr(),n=r.redSub(a),u=r.redMul(a),c=n.redMul(a.redAdd(this.curve.a24.redMul(n)));return this.curve.point(u,c)};cr.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};cr.prototype.diffAdd=function(t,r){var i=this.x.redAdd(this.z),a=this.x.redSub(this.z),n=t.x.redAdd(t.z),u=t.x.redSub(t.z),c=u.redMul(i),d=n.redMul(a),m=r.z.redMul(c.redAdd(d).redSqr()),M=r.x.redMul(c.redISub(d).redSqr());return this.curve.point(m,M)};cr.prototype.mul=function(t){for(var r=t.clone(),i=this,a=this.curve.point(null,null),n=this,u=[];r.cmpn(0)!==0;r.iushrn(1))u.push(r.andln(1));for(var c=u.length-1;c>=0;c--)u[c]===0?(i=i.diffAdd(a,n),a=a.dbl()):(a=i.diffAdd(a,n),i=i.dbl());return a};cr.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};cr.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};cr.prototype.eq=function(t){return this.getX().cmp(t.getX())===0};cr.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};cr.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var vq=ri,Cn=Yn,$x=Ze,cc=lc,gq=vq.assert;function cn(e){this.twisted=(e.a|0)!==1,this.mOneA=this.twisted&&(e.a|0)===-1,this.extended=this.mOneA,cc.call(this,"edwards",e),this.a=new Cn(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Cn(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Cn(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),gq(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(e.c|0)===1}$x(cn,cc);var mq=cn;cn.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)};cn.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)};cn.prototype.jpoint=function(t,r,i,a){return this.point(t,r,i,a)};cn.prototype.pointFromX=function(t,r){t=new Cn(t,16),t.red||(t=t.toRed(this.red));var i=t.redSqr(),a=this.c2.redSub(this.a.redMul(i)),n=this.one.redSub(this.c2.redMul(this.d).redMul(i)),u=a.redMul(n.redInvm()),c=u.redSqrt();if(c.redSqr().redSub(u).cmp(this.zero)!==0)throw new Error("invalid point");var d=c.fromRed().isOdd();return(r&&!d||!r&&d)&&(c=c.redNeg()),this.point(t,c)};cn.prototype.pointFromY=function(t,r){t=new Cn(t,16),t.red||(t=t.toRed(this.red));var i=t.redSqr(),a=i.redSub(this.c2),n=i.redMul(this.d).redMul(this.c2).redSub(this.a),u=a.redMul(n.redInvm());if(u.cmp(this.zero)===0){if(r)throw new Error("invalid point");return this.point(this.zero,t)}var c=u.redSqrt();if(c.redSqr().redSub(u).cmp(this.zero)!==0)throw new Error("invalid point");return c.fromRed().isOdd()!==r&&(c=c.redNeg()),this.point(c,t)};cn.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var r=t.x.redSqr(),i=t.y.redSqr(),a=r.redMul(this.a).redAdd(i),n=this.c2.redMul(this.one.redAdd(this.d.redMul(r).redMul(i)));return a.cmp(n)===0};function Yt(e,t,r,i,a){cc.BasePoint.call(this,e,"projective"),t===null&&r===null&&i===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Cn(t,16),this.y=new Cn(r,16),this.z=i?new Cn(i,16):this.curve.one,this.t=a&&new Cn(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}$x(Yt,cc.BasePoint);cn.prototype.pointFromJSON=function(t){return Yt.fromJSON(this,t)};cn.prototype.point=function(t,r,i,a){return new Yt(this,t,r,i,a)};Yt.fromJSON=function(t,r){return new Yt(t,r[0],r[1],r[2])};Yt.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};Yt.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Yt.prototype._extDbl=function(){var t=this.x.redSqr(),r=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var a=this.curve._mulA(t),n=this.x.redAdd(this.y).redSqr().redISub(t).redISub(r),u=a.redAdd(r),c=u.redSub(i),d=a.redSub(r),m=n.redMul(c),M=u.redMul(d),S=n.redMul(d),R=c.redMul(u);return this.curve.point(m,M,R,S)};Yt.prototype._projDbl=function(){var t=this.x.redAdd(this.y).redSqr(),r=this.x.redSqr(),i=this.y.redSqr(),a,n,u,c,d,m;if(this.curve.twisted){c=this.curve._mulA(r);var M=c.redAdd(i);this.zOne?(a=t.redSub(r).redSub(i).redMul(M.redSub(this.curve.two)),n=M.redMul(c.redSub(i)),u=M.redSqr().redSub(M).redSub(M)):(d=this.z.redSqr(),m=M.redSub(d).redISub(d),a=t.redSub(r).redISub(i).redMul(m),n=M.redMul(c.redSub(i)),u=M.redMul(m))}else c=r.redAdd(i),d=this.curve._mulC(this.z).redSqr(),m=c.redSub(d).redSub(d),a=this.curve._mulC(t.redISub(c)).redMul(m),n=this.curve._mulC(c).redMul(r.redISub(i)),u=c.redMul(m);return this.curve.point(a,n,u)};Yt.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};Yt.prototype._extAdd=function(t){var r=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),i=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),a=this.t.redMul(this.curve.dd).redMul(t.t),n=this.z.redMul(t.z.redAdd(t.z)),u=i.redSub(r),c=n.redSub(a),d=n.redAdd(a),m=i.redAdd(r),M=u.redMul(c),S=d.redMul(m),R=u.redMul(m),C=c.redMul(d);return this.curve.point(M,S,C,R)};Yt.prototype._projAdd=function(t){var r=this.z.redMul(t.z),i=r.redSqr(),a=this.x.redMul(t.x),n=this.y.redMul(t.y),u=this.curve.d.redMul(a).redMul(n),c=i.redSub(u),d=i.redAdd(u),m=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(a).redISub(n),M=r.redMul(c).redMul(m),S,R;return this.curve.twisted?(S=r.redMul(d).redMul(n.redSub(this.curve._mulA(a))),R=c.redMul(d)):(S=r.redMul(d).redMul(n.redSub(a)),R=this.curve._mulC(c).redMul(d)),this.curve.point(M,S,R)};Yt.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)};Yt.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)};Yt.prototype.mulAdd=function(t,r,i){return this.curve._wnafMulAdd(1,[this,r],[t,i],2,!1)};Yt.prototype.jmulAdd=function(t,r,i){return this.curve._wnafMulAdd(1,[this,r],[t,i],2,!0)};Yt.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this};Yt.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Yt.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Yt.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Yt.prototype.eq=function(t){return this===t||this.getX().cmp(t.getX())===0&&this.getY().cmp(t.getY())===0};Yt.prototype.eqXToP=function(t){var r=t.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(r)===0)return!0;for(var i=t.clone(),a=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(a),this.x.cmp(r)===0)return!0}};Yt.prototype.toP=Yt.prototype.normalize;Yt.prototype.mixedAdd=Yt.prototype.add;(function(e){var t=e;t.base=lc,t.short=cq,t.mont=pq,t.edwards=mq})($g);var dc={},pc={},St={},yq=Si,bq=Ze;St.inherits=bq;function wq(e,t){return(e.charCodeAt(t)&64512)!==55296||t<0||t+1>=e.length?!1:(e.charCodeAt(t+1)&64512)===56320}function _q(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(typeof e=="string")if(t){if(t==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),a=0;a<e.length;a+=2)r.push(parseInt(e[a]+e[a+1],16))}else for(var i=0,a=0;a<e.length;a++){var n=e.charCodeAt(a);n<128?r[i++]=n:n<2048?(r[i++]=n>>6|192,r[i++]=n&63|128):wq(e,a)?(n=65536+((n&1023)<<10)+(e.charCodeAt(++a)&1023),r[i++]=n>>18|240,r[i++]=n>>12&63|128,r[i++]=n>>6&63|128,r[i++]=n&63|128):(r[i++]=n>>12|224,r[i++]=n>>6&63|128,r[i++]=n&63|128)}else for(a=0;a<e.length;a++)r[a]=e[a]|0;return r}St.toArray=_q;function Mq(e){for(var t="",r=0;r<e.length;r++)t+=Fx(e[r].toString(16));return t}St.toHex=Mq;function Dx(e){var t=e>>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return t>>>0}St.htonl=Dx;function Sq(e,t){for(var r="",i=0;i<e.length;i++){var a=e[i];t==="little"&&(a=Dx(a)),r+=jx(a.toString(16))}return r}St.toHex32=Sq;function Fx(e){return e.length===1?"0"+e:e}St.zero2=Fx;function jx(e){return e.length===7?"0"+e:e.length===6?"00"+e:e.length===5?"000"+e:e.length===4?"0000"+e:e.length===3?"00000"+e:e.length===2?"000000"+e:e.length===1?"0000000"+e:e}St.zero8=jx;function xq(e,t,r,i){var a=r-t;yq(a%4===0);for(var n=new Array(a/4),u=0,c=t;u<n.length;u++,c+=4){var d;i==="big"?d=e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3]:d=e[c+3]<<24|e[c+2]<<16|e[c+1]<<8|e[c],n[u]=d>>>0}return n}St.join32=xq;function Eq(e,t){for(var r=new Array(e.length*4),i=0,a=0;i<e.length;i++,a+=4){var n=e[i];t==="big"?(r[a]=n>>>24,r[a+1]=n>>>16&255,r[a+2]=n>>>8&255,r[a+3]=n&255):(r[a+3]=n>>>24,r[a+2]=n>>>16&255,r[a+1]=n>>>8&255,r[a]=n&255)}return r}St.split32=Eq;function Rq(e,t){return e>>>t|e<<32-t}St.rotr32=Rq;function Aq(e,t){return e<<t|e>>>32-t}St.rotl32=Aq;function Tq(e,t){return e+t>>>0}St.sum32=Tq;function Oq(e,t,r){return e+t+r>>>0}St.sum32_3=Oq;function Iq(e,t,r,i){return e+t+r+i>>>0}St.sum32_4=Iq;function Pq(e,t,r,i,a){return e+t+r+i+a>>>0}St.sum32_5=Pq;function Cq(e,t,r,i){var a=e[t],n=e[t+1],u=i+n>>>0,c=(u<i?1:0)+r+a;e[t]=c>>>0,e[t+1]=u}St.sum64=Cq;function Bq(e,t,r,i){var a=t+i>>>0,n=(a<t?1:0)+e+r;return n>>>0}St.sum64_hi=Bq;function Lq(e,t,r,i){var a=t+i;return a>>>0}St.sum64_lo=Lq;function Nq(e,t,r,i,a,n,u,c){var d=0,m=t;m=m+i>>>0,d+=m<t?1:0,m=m+n>>>0,d+=m<n?1:0,m=m+c>>>0,d+=m<c?1:0;var M=e+r+a+u+d;return M>>>0}St.sum64_4_hi=Nq;function kq(e,t,r,i,a,n,u,c){var d=t+i+n+c;return d>>>0}St.sum64_4_lo=kq;function $q(e,t,r,i,a,n,u,c,d,m){var M=0,S=t;S=S+i>>>0,M+=S<t?1:0,S=S+n>>>0,M+=S<n?1:0,S=S+c>>>0,M+=S<c?1:0,S=S+m>>>0,M+=S<m?1:0;var R=e+r+a+u+d+M;return R>>>0}St.sum64_5_hi=$q;function Dq(e,t,r,i,a,n,u,c,d,m){var M=t+i+n+c+m;return M>>>0}St.sum64_5_lo=Dq;function Fq(e,t,r){var i=t<<32-r|e>>>r;return i>>>0}St.rotr64_hi=Fq;function jq(e,t,r){var i=e<<32-r|t>>>r;return i>>>0}St.rotr64_lo=jq;function Uq(e,t,r){return e>>>r}St.shr64_hi=Uq;function Hq(e,t,r){var i=e<<32-r|t>>>r;return i>>>0}St.shr64_lo=Hq;var Ws={},lw=St,qq=Si;function vc(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}Ws.BlockHash=vc;vc.prototype.update=function(t,r){if(t=lw.toArray(t,r),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){t=this.pending;var i=t.length%this._delta8;this.pending=t.slice(t.length-i,t.length),this.pending.length===0&&(this.pending=null),t=lw.join32(t,0,t.length-i,this.endian);for(var a=0;a<t.length;a+=this._delta32)this._update(t,a,a+this._delta32)}return this};vc.prototype.digest=function(t){return this.update(this._pad()),qq(this.pending===null),this._digest(t)};vc.prototype._pad=function(){var t=this.pendingTotal,r=this._delta8,i=r-(t+this.padLength)%r,a=new Array(i+this.padLength);a[0]=128;for(var n=1;n<i;n++)a[n]=0;if(t<<=3,this.endian==="big"){for(var u=8;u<this.padLength;u++)a[n++]=0;a[n++]=0,a[n++]=0,a[n++]=0,a[n++]=0,a[n++]=t>>>24&255,a[n++]=t>>>16&255,a[n++]=t>>>8&255,a[n++]=t&255}else for(a[n++]=t&255,a[n++]=t>>>8&255,a[n++]=t>>>16&255,a[n++]=t>>>24&255,a[n++]=0,a[n++]=0,a[n++]=0,a[n++]=0,u=8;u<this.padLength;u++)a[n++]=0;return a};var Ks={},dn={},Wq=St,rn=Wq.rotr32;function Kq(e,t,r,i){if(e===0)return Ux(t,r,i);if(e===1||e===3)return qx(t,r,i);if(e===2)return Hx(t,r,i)}dn.ft_1=Kq;function Ux(e,t,r){return e&t^~e&r}dn.ch32=Ux;function Hx(e,t,r){return e&t^e&r^t&r}dn.maj32=Hx;function qx(e,t,r){return e^t^r}dn.p32=qx;function Vq(e){return rn(e,2)^rn(e,13)^rn(e,22)}dn.s0_256=Vq;function zq(e){return rn(e,6)^rn(e,11)^rn(e,25)}dn.s1_256=zq;function Gq(e){return rn(e,7)^rn(e,18)^e>>>3}dn.g0_256=Gq;function Yq(e){return rn(e,17)^rn(e,19)^e>>>10}dn.g1_256=Yq;var xs=St,Zq=Ws,Xq=dn,w0=xs.rotl32,mf=xs.sum32,Jq=xs.sum32_5,Qq=Xq.ft_1,Wx=Zq.BlockHash,eW=[1518500249,1859775393,2400959708,3395469782];function un(){if(!(this instanceof un))return new un;Wx.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}xs.inherits(un,Wx);var tW=un;un.blockSize=512;un.outSize=160;un.hmacStrength=80;un.padLength=64;un.prototype._update=function(t,r){for(var i=this.W,a=0;a<16;a++)i[a]=t[r+a];for(;a<i.length;a++)i[a]=w0(i[a-3]^i[a-8]^i[a-14]^i[a-16],1);var n=this.h[0],u=this.h[1],c=this.h[2],d=this.h[3],m=this.h[4];for(a=0;a<i.length;a++){var M=~~(a/20),S=Jq(w0(n,5),Qq(M,u,c,d),m,i[a],eW[M]);m=d,d=c,c=w0(u,30),u=n,n=S}this.h[0]=mf(this.h[0],n),this.h[1]=mf(this.h[1],u),this.h[2]=mf(this.h[2],c),this.h[3]=mf(this.h[3],d),this.h[4]=mf(this.h[4],m)};un.prototype._digest=function(t){return t==="hex"?xs.toHex32(this.h,"big"):xs.split32(this.h,"big")};var Es=St,rW=Ws,Vs=dn,iW=Si,Oi=Es.sum32,nW=Es.sum32_4,oW=Es.sum32_5,aW=Vs.ch32,sW=Vs.maj32,fW=Vs.s0_256,uW=Vs.s1_256,lW=Vs.g0_256,hW=Vs.g1_256,Kx=rW.BlockHash,cW=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function ln(){if(!(this instanceof ln))return new ln;Kx.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=cW,this.W=new Array(64)}Es.inherits(ln,Kx);var Vx=ln;ln.blockSize=512;ln.outSize=256;ln.hmacStrength=192;ln.padLength=64;ln.prototype._update=function(t,r){for(var i=this.W,a=0;a<16;a++)i[a]=t[r+a];for(;a<i.length;a++)i[a]=nW(hW(i[a-2]),i[a-7],lW(i[a-15]),i[a-16]);var n=this.h[0],u=this.h[1],c=this.h[2],d=this.h[3],m=this.h[4],M=this.h[5],S=this.h[6],R=this.h[7];for(iW(this.k.length===i.length),a=0;a<i.length;a++){var C=oW(R,uW(m),aW(m,M,S),this.k[a],i[a]),P=Oi(fW(n),sW(n,u,c));R=S,S=M,M=m,m=Oi(d,C),d=c,c=u,u=n,n=Oi(C,P)}this.h[0]=Oi(this.h[0],n),this.h[1]=Oi(this.h[1],u),this.h[2]=Oi(this.h[2],c),this.h[3]=Oi(this.h[3],d),this.h[4]=Oi(this.h[4],m),this.h[5]=Oi(this.h[5],M),this.h[6]=Oi(this.h[6],S),this.h[7]=Oi(this.h[7],R)};ln.prototype._digest=function(t){return t==="hex"?Es.toHex32(this.h,"big"):Es.split32(this.h,"big")};var Gp=St,zx=Vx;function Hn(){if(!(this instanceof Hn))return new Hn;zx.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Gp.inherits(Hn,zx);var dW=Hn;Hn.blockSize=512;Hn.outSize=224;Hn.hmacStrength=192;Hn.padLength=64;Hn.prototype._digest=function(t){return t==="hex"?Gp.toHex32(this.h.slice(0,7),"big"):Gp.split32(this.h.slice(0,7),"big")};var Vr=St,pW=Ws,vW=Si,nn=Vr.rotr64_hi,on=Vr.rotr64_lo,Gx=Vr.shr64_hi,Yx=Vr.shr64_lo,to=Vr.sum64,_0=Vr.sum64_hi,M0=Vr.sum64_lo,gW=Vr.sum64_4_hi,mW=Vr.sum64_4_lo,yW=Vr.sum64_5_hi,bW=Vr.sum64_5_lo,Zx=pW.BlockHash,wW=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Di(){if(!(this instanceof Di))return new Di;Zx.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=wW,this.W=new Array(160)}Vr.inherits(Di,Zx);var Xx=Di;Di.blockSize=1024;Di.outSize=512;Di.hmacStrength=192;Di.padLength=128;Di.prototype._prepareBlock=function(t,r){for(var i=this.W,a=0;a<32;a++)i[a]=t[r+a];for(;a<i.length;a+=2){var n=PW(i[a-4],i[a-3]),u=CW(i[a-4],i[a-3]),c=i[a-14],d=i[a-13],m=OW(i[a-30],i[a-29]),M=IW(i[a-30],i[a-29]),S=i[a-32],R=i[a-31];i[a]=gW(n,u,c,d,m,M,S,R),i[a+1]=mW(n,u,c,d,m,M,S,R)}};Di.prototype._update=function(t,r){this._prepareBlock(t,r);var i=this.W,a=this.h[0],n=this.h[1],u=this.h[2],c=this.h[3],d=this.h[4],m=this.h[5],M=this.h[6],S=this.h[7],R=this.h[8],C=this.h[9],P=this.h[10],k=this.h[11],L=this.h[12],I=this.h[13],B=this.h[14],H=this.h[15];vW(this.k.length===i.length);for(var F=0;F<i.length;F+=2){var W=B,Y=H,ie=AW(R,C),J=TW(R,C),V=_W(R,C,P,k,L),oe=MW(R,C,P,k,L,I),_=this.k[F],o=this.k[F+1],f=i[F],l=i[F+1],h=yW(W,Y,ie,J,V,oe,_,o,f,l),p=bW(W,Y,ie,J,V,oe,_,o,f,l);W=EW(a,n),Y=RW(a,n),ie=SW(a,n,u,c,d),J=xW(a,n,u,c,d,m);var w=_0(W,Y,ie,J),x=M0(W,Y,ie,J);B=L,H=I,L=P,I=k,P=R,k=C,R=_0(M,S,h,p),C=M0(S,S,h,p),M=d,S=m,d=u,m=c,u=a,c=n,a=_0(h,p,w,x),n=M0(h,p,w,x)}to(this.h,0,a,n),to(this.h,2,u,c),to(this.h,4,d,m),to(this.h,6,M,S),to(this.h,8,R,C),to(this.h,10,P,k),to(this.h,12,L,I),to(this.h,14,B,H)};Di.prototype._digest=function(t){return t==="hex"?Vr.toHex32(this.h,"big"):Vr.split32(this.h,"big")};function _W(e,t,r,i,a){var n=e&r^~e&a;return n<0&&(n+=4294967296),n}function MW(e,t,r,i,a,n){var u=t&i^~t&n;return u<0&&(u+=4294967296),u}function SW(e,t,r,i,a){var n=e&r^e&a^r&a;return n<0&&(n+=4294967296),n}function xW(e,t,r,i,a,n){var u=t&i^t&n^i&n;return u<0&&(u+=4294967296),u}function EW(e,t){var r=nn(e,t,28),i=nn(t,e,2),a=nn(t,e,7),n=r^i^a;return n<0&&(n+=4294967296),n}function RW(e,t){var r=on(e,t,28),i=on(t,e,2),a=on(t,e,7),n=r^i^a;return n<0&&(n+=4294967296),n}function AW(e,t){var r=nn(e,t,14),i=nn(e,t,18),a=nn(t,e,9),n=r^i^a;return n<0&&(n+=4294967296),n}function TW(e,t){var r=on(e,t,14),i=on(e,t,18),a=on(t,e,9),n=r^i^a;return n<0&&(n+=4294967296),n}function OW(e,t){var r=nn(e,t,1),i=nn(e,t,8),a=Gx(e,t,7),n=r^i^a;return n<0&&(n+=4294967296),n}function IW(e,t){var r=on(e,t,1),i=on(e,t,8),a=Yx(e,t,7),n=r^i^a;return n<0&&(n+=4294967296),n}function PW(e,t){var r=nn(e,t,19),i=nn(t,e,29),a=Gx(e,t,6),n=r^i^a;return n<0&&(n+=4294967296),n}function CW(e,t){var r=on(e,t,19),i=on(t,e,29),a=Yx(e,t,6),n=r^i^a;return n<0&&(n+=4294967296),n}var Yp=St,Jx=Xx;function qn(){if(!(this instanceof qn))return new qn;Jx.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Yp.inherits(qn,Jx);var BW=qn;qn.blockSize=1024;qn.outSize=384;qn.hmacStrength=192;qn.padLength=128;qn.prototype._digest=function(t){return t==="hex"?Yp.toHex32(this.h.slice(0,12),"big"):Yp.split32(this.h.slice(0,12),"big")};Ks.sha1=tW;Ks.sha224=dW;Ks.sha256=Vx;Ks.sha384=BW;Ks.sha512=Xx;var Qx={},pa=St,LW=Ws,el=pa.rotl32,hw=pa.sum32,yf=pa.sum32_3,cw=pa.sum32_4,e4=LW.BlockHash;function hn(){if(!(this instanceof hn))return new hn;e4.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}pa.inherits(hn,e4);Qx.ripemd160=hn;hn.blockSize=512;hn.outSize=160;hn.hmacStrength=192;hn.padLength=64;hn.prototype._update=function(t,r){for(var i=this.h[0],a=this.h[1],n=this.h[2],u=this.h[3],c=this.h[4],d=i,m=a,M=n,S=u,R=c,C=0;C<80;C++){var P=hw(el(cw(i,dw(C,a,n,u),t[$W[C]+r],NW(C)),FW[C]),c);i=c,c=u,u=el(n,10),n=a,a=P,P=hw(el(cw(d,dw(79-C,m,M,S),t[DW[C]+r],kW(C)),jW[C]),R),d=R,R=S,S=el(M,10),M=m,m=P}P=yf(this.h[1],n,S),this.h[1]=yf(this.h[2],u,R),this.h[2]=yf(this.h[3],c,d),this.h[3]=yf(this.h[4],i,m),this.h[4]=yf(this.h[0],a,M),this.h[0]=P};hn.prototype._digest=function(t){return t==="hex"?pa.toHex32(this.h,"little"):pa.split32(this.h,"little")};function dw(e,t,r,i){return e<=15?t^r^i:e<=31?t&r|~t&i:e<=47?(t|~r)^i:e<=63?t&i|r&~i:t^(r|~i)}function NW(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function kW(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}var $W=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],DW=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],FW=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],jW=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],UW=St,HW=Si;function Rs(e,t,r){if(!(this instanceof Rs))return new Rs(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(UW.toArray(t,r))}var qW=Rs;Rs.prototype._init=function(t){t.length>this.blockSize&&(t=new this.Hash().update(t).digest()),HW(t.length<=this.blockSize);for(var r=t.length;r<this.blockSize;r++)t.push(0);for(r=0;r<t.length;r++)t[r]^=54;for(this.inner=new this.Hash().update(t),r=0;r<t.length;r++)t[r]^=106;this.outer=new this.Hash().update(t)};Rs.prototype.update=function(t,r){return this.inner.update(t,r),this};Rs.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)};(function(e){var t=e;t.utils=St,t.common=Ws,t.sha=Ks,t.ripemd=Qx,t.hmac=qW,t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160})(pc);var S0,pw;function WW(){return pw||(pw=1,S0={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}),S0}(function(e){var t=e,r=pc,i=$g,a=ri,n=a.assert;function u(m){m.type==="short"?this.curve=new i.short(m):m.type==="edwards"?this.curve=new i.edwards(m):this.curve=new i.mont(m),this.g=this.curve.g,this.n=this.curve.n,this.hash=m.hash,n(this.g.validate(),"Invalid curve"),n(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}t.PresetCurve=u;function c(m,M){Object.defineProperty(t,m,{configurable:!0,enumerable:!0,get:function(){var S=new u(M);return Object.defineProperty(t,m,{configurable:!0,enumerable:!0,value:S}),S}})}c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:r.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:r.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:r.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:r.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:r.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:r.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:r.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var d;try{d=WW()}catch{d=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:r.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",d]})})(dc);var KW=pc,aa=kg,t4=Si;function Bo(e){if(!(this instanceof Bo))return new Bo(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=aa.toArray(e.entropy,e.entropyEnc||"hex"),r=aa.toArray(e.nonce,e.nonceEnc||"hex"),i=aa.toArray(e.pers,e.persEnc||"hex");t4(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,i)}var VW=Bo;Bo.prototype._init=function(t,r,i){var a=t.concat(r).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n<this.V.length;n++)this.K[n]=0,this.V[n]=1;this._update(a),this._reseed=1,this.reseedInterval=281474976710656};Bo.prototype._hmac=function(){return new KW.hmac(this.hash,this.K)};Bo.prototype._update=function(t){var r=this._hmac().update(this.V).update([0]);t&&(r=r.update(t)),this.K=r.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())};Bo.prototype.reseed=function(t,r,i,a){typeof r!="string"&&(a=i,i=r,r=null),t=aa.toArray(t,r),i=aa.toArray(i,a),t4(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(i||[])),this._reseed=1};Bo.prototype.generate=function(t,r,i,a){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof r!="string"&&(a=i,i=r,r=null),i&&(i=aa.toArray(i,a||"hex"),this._update(i));for(var n=[];n.length<t;)this.V=this._hmac().update(this.V).digest(),n=n.concat(this.V);var u=n.slice(0,t);return this._update(i),this._reseed++,aa.encode(u,r)};var zW=Yn,GW=ri,Zp=GW.assert;function Ar(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var YW=Ar;Ar.fromPublic=function(t,r,i){return r instanceof Ar?r:new Ar(t,{pub:r,pubEnc:i})};Ar.fromPrivate=function(t,r,i){return r instanceof Ar?r:new Ar(t,{priv:r,privEnc:i})};Ar.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}};Ar.prototype.getPublic=function(t,r){return typeof t=="string"&&(r=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),r?this.pub.encode(r,t):this.pub};Ar.prototype.getPrivate=function(t){return t==="hex"?this.priv.toString(16,2):this.priv};Ar.prototype._importPrivate=function(t,r){this.priv=new zW(t,r||16),this.priv=this.priv.umod(this.ec.curve.n)};Ar.prototype._importPublic=function(t,r){if(t.x||t.y){this.ec.curve.type==="mont"?Zp(t.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&Zp(t.x&&t.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(t.x,t.y);return}this.pub=this.ec.curve.decodePoint(t,r)};Ar.prototype.derive=function(t){return t.validate()||Zp(t.validate(),"public point not validated"),t.mul(this.priv).getX()};Ar.prototype.sign=function(t,r,i){return this.ec.sign(t,this,r,i)};Ar.prototype.verify=function(t,r){return this.ec.verify(t,r,this)};Ar.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var ih=Yn,Fg=ri,ZW=Fg.assert;function gc(e,t){if(e instanceof gc)return e;this._importDER(e,t)||(ZW(e.r&&e.s,"Signature without r or s"),this.r=new ih(e.r,16),this.s=new ih(e.s,16),e.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var XW=gc;function JW(){this.place=0}function x0(e,t){var r=e[t.place++];if(!(r&128))return r;var i=r&15;if(i===0||i>4)return!1;for(var a=0,n=0,u=t.place;n<i;n++,u++)a<<=8,a|=e[u],a>>>=0;return a<=127?!1:(t.place=u,a)}function vw(e){for(var t=0,r=e.length-1;!e[t]&&!(e[t+1]&128)&&t<r;)t++;return t===0?e:e.slice(t)}gc.prototype._importDER=function(t,r){t=Fg.toArray(t,r);var i=new JW;if(t[i.place++]!==48)return!1;var a=x0(t,i);if(a===!1||a+i.place!==t.length||t[i.place++]!==2)return!1;var n=x0(t,i);if(n===!1)return!1;var u=t.slice(i.place,n+i.place);if(i.place+=n,t[i.place++]!==2)return!1;var c=x0(t,i);if(c===!1||t.length!==c+i.place)return!1;var d=t.slice(i.place,c+i.place);if(u[0]===0)if(u[1]&128)u=u.slice(1);else return!1;if(d[0]===0)if(d[1]&128)d=d.slice(1);else return!1;return this.r=new ih(u),this.s=new ih(d),this.recoveryParam=null,!0};function E0(e,t){if(t<128){e.push(t);return}var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(r|128);--r;)e.push(t>>>(r<<3)&255);e.push(t)}gc.prototype.toDER=function(t){var r=this.r.toArray(),i=this.s.toArray();for(r[0]&128&&(r=[0].concat(r)),i[0]&128&&(i=[0].concat(i)),r=vw(r),i=vw(i);!i[0]&&!(i[1]&128);)i=i.slice(1);var a=[2];E0(a,r.length),a=a.concat(r),a.push(2),E0(a,i.length);var n=a.concat(i),u=[48];return E0(u,n.length),u=u.concat(n),Fg.encode(u,t)};var R0,gw;function QW(){if(gw)return R0;gw=1;var e=Yn,t=VW,r=ri,i=dc,a=Ig(),n=r.assert,u=YW,c=XW;function d(m){if(!(this instanceof d))return new d(m);typeof m=="string"&&(n(Object.prototype.hasOwnProperty.call(i,m),"Unknown curve "+m),m=i[m]),m instanceof i.PresetCurve&&(m={curve:m}),this.curve=m.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=m.curve.g,this.g.precompute(m.curve.n.bitLength()+1),this.hash=m.hash||m.curve.hash}return R0=d,d.prototype.keyPair=function(M){return new u(this,M)},d.prototype.keyFromPrivate=function(M,S){return u.fromPrivate(this,M,S)},d.prototype.keyFromPublic=function(M,S){return u.fromPublic(this,M,S)},d.prototype.genKeyPair=function(M){M||(M={});for(var S=new t({hash:this.hash,pers:M.pers,persEnc:M.persEnc||"utf8",entropy:M.entropy||a(this.hash.hmacStrength),entropyEnc:M.entropy&&M.entropyEnc||"utf8",nonce:this.n.toArray()}),R=this.n.byteLength(),C=this.n.sub(new e(2));;){var P=new e(S.generate(R));if(!(P.cmp(C)>0))return P.iaddn(1),this.keyFromPrivate(P)}},d.prototype._truncateToN=function(M,S){var R=M.byteLength()*8-this.n.bitLength();return R>0&&(M=M.ushrn(R)),!S&&M.cmp(this.n)>=0?M.sub(this.n):M},d.prototype.sign=function(M,S,R,C){typeof R=="object"&&(C=R,R=null),C||(C={}),S=this.keyFromPrivate(S,R),M=this._truncateToN(new e(M,16));for(var P=this.n.byteLength(),k=S.getPrivate().toArray("be",P),L=M.toArray("be",P),I=new t({hash:this.hash,entropy:k,nonce:L,pers:C.pers,persEnc:C.persEnc||"utf8"}),B=this.n.sub(new e(1)),H=0;;H++){var F=C.k?C.k(H):new e(I.generate(this.n.byteLength()));if(F=this._truncateToN(F,!0),!(F.cmpn(1)<=0||F.cmp(B)>=0)){var W=this.g.mul(F);if(!W.isInfinity()){var Y=W.getX(),ie=Y.umod(this.n);if(ie.cmpn(0)!==0){var J=F.invm(this.n).mul(ie.mul(S.getPrivate()).iadd(M));if(J=J.umod(this.n),J.cmpn(0)!==0){var V=(W.getY().isOdd()?1:0)|(Y.cmp(ie)!==0?2:0);return C.canonical&&J.cmp(this.nh)>0&&(J=this.n.sub(J),V^=1),new c({r:ie,s:J,recoveryParam:V})}}}}}},d.prototype.verify=function(M,S,R,C){M=this._truncateToN(new e(M,16)),R=this.keyFromPublic(R,C),S=new c(S,"hex");var P=S.r,k=S.s;if(P.cmpn(1)<0||P.cmp(this.n)>=0||k.cmpn(1)<0||k.cmp(this.n)>=0)return!1;var L=k.invm(this.n),I=L.mul(M).umod(this.n),B=L.mul(P).umod(this.n),H;return this.curve._maxwellTrick?(H=this.g.jmulAdd(I,R.getPublic(),B),H.isInfinity()?!1:H.eqXToP(P)):(H=this.g.mulAdd(I,R.getPublic(),B),H.isInfinity()?!1:H.getX().umod(this.n).cmp(P)===0)},d.prototype.recoverPubKey=function(m,M,S,R){n((3&S)===S,"The recovery param is more than two bits"),M=new c(M,R);var C=this.n,P=new e(m),k=M.r,L=M.s,I=S&1,B=S>>1;if(k.cmp(this.curve.p.umod(this.curve.n))>=0&&B)throw new Error("Unable to find sencond key candinate");B?k=this.curve.pointFromX(k.add(this.curve.n),I):k=this.curve.pointFromX(k,I);var H=M.r.invm(C),F=C.sub(P).mul(H).umod(C),W=L.mul(H).umod(C);return this.g.mulAdd(F,k,W)},d.prototype.getKeyRecoveryParam=function(m,M,S,R){if(M=new c(M,R),M.recoveryParam!==null)return M.recoveryParam;for(var C=0;C<4;C++){var P;try{P=this.recoverPubKey(m,M,C)}catch{continue}if(P.eq(S))return C}throw new Error("Unable to find valid recovery factor")},R0}var Nu=ri,r4=Nu.assert,mw=Nu.parseBytes,zs=Nu.cachedProperty;function hr(e,t){this.eddsa=e,this._secret=mw(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=mw(t.pub)}hr.fromPublic=function(t,r){return r instanceof hr?r:new hr(t,{pub:r})};hr.fromSecret=function(t,r){return r instanceof hr?r:new hr(t,{secret:r})};hr.prototype.secret=function(){return this._secret};zs(hr,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});zs(hr,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});zs(hr,"privBytes",function(){var t=this.eddsa,r=this.hash(),i=t.encodingLength-1,a=r.slice(0,t.encodingLength);return a[0]&=248,a[i]&=127,a[i]|=64,a});zs(hr,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});zs(hr,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});zs(hr,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});hr.prototype.sign=function(t){return r4(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)};hr.prototype.verify=function(t,r){return this.eddsa.verify(t,r,this)};hr.prototype.getSecret=function(t){return r4(this._secret,"KeyPair is public only"),Nu.encode(this.secret(),t)};hr.prototype.getPublic=function(t){return Nu.encode(this.pubBytes(),t)};var eK=hr,tK=Yn,mc=ri,rK=mc.assert,yc=mc.cachedProperty,iK=mc.parseBytes;function Pa(e,t){this.eddsa=e,typeof t!="object"&&(t=iK(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),rK(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof tK&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}yc(Pa,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});yc(Pa,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});yc(Pa,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});yc(Pa,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});Pa.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};Pa.prototype.toHex=function(){return mc.encode(this.toBytes(),"hex").toUpperCase()};var nK=Pa,oK=pc,aK=dc,As=ri,sK=As.assert,i4=As.parseBytes,n4=eK,yw=nK;function zr(e){if(sK(e==="ed25519","only tested with ed25519 so far"),!(this instanceof zr))return new zr(e);e=aK[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=oK.sha512}var fK=zr;zr.prototype.sign=function(t,r){t=i4(t);var i=this.keyFromSecret(r),a=this.hashInt(i.messagePrefix(),t),n=this.g.mul(a),u=this.encodePoint(n),c=this.hashInt(u,i.pubBytes(),t).mul(i.priv()),d=a.add(c).umod(this.curve.n);return this.makeSignature({R:n,S:d,Rencoded:u})};zr.prototype.verify=function(t,r,i){t=i4(t),r=this.makeSignature(r);var a=this.keyFromPublic(i),n=this.hashInt(r.Rencoded(),a.pubBytes(),t),u=this.g.mul(r.S()),c=r.R().add(a.pub().mul(n));return c.eq(u)};zr.prototype.hashInt=function(){for(var t=this.hash(),r=0;r<arguments.length;r++)t.update(arguments[r]);return As.intFromLE(t.digest()).umod(this.curve.n)};zr.prototype.keyFromPublic=function(t){return n4.fromPublic(this,t)};zr.prototype.keyFromSecret=function(t){return n4.fromSecret(this,t)};zr.prototype.makeSignature=function(t){return t instanceof yw?t:new yw(this,t)};zr.prototype.encodePoint=function(t){var r=t.getY().toArray("le",this.encodingLength);return r[this.encodingLength-1]|=t.getX().isOdd()?128:0,r};zr.prototype.decodePoint=function(t){t=As.parseBytes(t);var r=t.length-1,i=t.slice(0,r).concat(t[r]&-129),a=(t[r]&128)!==0,n=As.intFromLE(i);return this.curve.pointFromY(n,a)};zr.prototype.encodeInt=function(t){return t.toArray("le",this.encodingLength)};zr.prototype.decodeInt=function(t){return As.intFromLE(t)};zr.prototype.isPoint=function(t){return t instanceof this.pointClass};var bw;function jg(){return bw||(bw=1,function(e){var t=e;t.version=fq.version,t.utils=ri,t.rand=Ig(),t.curve=$g,t.curves=dc,t.ec=QW(),t.eddsa=fK}(b0)),b0}var Hi={},Ug={},Hg={exports:{}};Hg.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Hg);var o4=Hg.exports,a4={},qg={},Ml=ke,ns=Ml.Buffer,li={},hi;for(hi in Ml)Ml.hasOwnProperty(hi)&&(hi==="SlowBuffer"||hi==="Buffer"||(li[hi]=Ml[hi]));var os=li.Buffer={};for(hi in ns)ns.hasOwnProperty(hi)&&(hi==="allocUnsafe"||hi==="allocUnsafeSlow"||(os[hi]=ns[hi]));li.Buffer.prototype=ns.prototype;(!os.from||os.from===Uint8Array.from)&&(os.from=function(e,t,r){if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&typeof e.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return ns(e,t,r)});os.alloc||(os.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var i=ns(e);return!t||t.length===0?i.fill(0):typeof r=="string"?i.fill(t,r):i.fill(t),i});if(!li.kStringMaxLength)try{li.kStringMaxLength=we.binding("buffer").kStringMaxLength}catch{}li.constants||(li.constants={MAX_LENGTH:li.kMaxLength},li.kStringMaxLength&&(li.constants.MAX_STRING_LENGTH=li.kStringMaxLength));var Wg=li,bc={};const uK=Ze;function Ti(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}bc.Reporter=Ti;Ti.prototype.isError=function(t){return t instanceof Ts};Ti.prototype.save=function(){const t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}};Ti.prototype.restore=function(t){const r=this._reporterState;r.obj=t.obj,r.path=r.path.slice(0,t.pathLen)};Ti.prototype.enterKey=function(t){return this._reporterState.path.push(t)};Ti.prototype.exitKey=function(t){const r=this._reporterState;r.path=r.path.slice(0,t-1)};Ti.prototype.leaveKey=function(t,r,i){const a=this._reporterState;this.exitKey(t),a.obj!==null&&(a.obj[r]=i)};Ti.prototype.path=function(){return this._reporterState.path.join("/")};Ti.prototype.enterObject=function(){const t=this._reporterState,r=t.obj;return t.obj={},r};Ti.prototype.leaveObject=function(t){const r=this._reporterState,i=r.obj;return r.obj=t,i};Ti.prototype.error=function(t){let r;const i=this._reporterState,a=t instanceof Ts;if(a?r=t:r=new Ts(i.path.map(function(n){return"["+JSON.stringify(n)+"]"}).join(""),t.message||t,t.stack),!i.options.partial)throw r;return a||i.errors.push(r),r};Ti.prototype.wrapResult=function(t){const r=this._reporterState;return r.options.partial?{result:this.isError(t)?null:t,errors:r.errors}:t};function Ts(e,t){this.path=e,this.rethrow(t)}uK(Ts,Error);Ts.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,Ts),!this.stack)try{throw new Error(this.message)}catch(r){this.stack=r.stack}return this};var va={};const lK=Ze,wc=bc.Reporter,Os=Wg.Buffer;function mi(e,t){if(wc.call(this,t),!Os.isBuffer(e)){this.error("Input not Buffer");return}this.base=e,this.offset=0,this.length=e.length}lK(mi,wc);va.DecoderBuffer=mi;mi.isDecoderBuffer=function(t){return t instanceof mi?!0:typeof t=="object"&&Os.isBuffer(t.base)&&t.constructor.name==="DecoderBuffer"&&typeof t.offset=="number"&&typeof t.length=="number"&&typeof t.save=="function"&&typeof t.restore=="function"&&typeof t.isEmpty=="function"&&typeof t.readUInt8=="function"&&typeof t.skip=="function"&&typeof t.raw=="function"};mi.prototype.save=function(){return{offset:this.offset,reporter:wc.prototype.save.call(this)}};mi.prototype.restore=function(t){const r=new mi(this.base);return r.offset=t.offset,r.length=this.offset,this.offset=t.offset,wc.prototype.restore.call(this,t.reporter),r};mi.prototype.isEmpty=function(){return this.offset===this.length};mi.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")};mi.prototype.skip=function(t,r){if(!(this.offset+t<=this.length))return this.error(r||"DecoderBuffer overrun");const i=new mi(this.base);return i._reporterState=this._reporterState,i.offset=this.offset,i.length=this.offset+t,this.offset+=t,i};mi.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)};function Is(e,t){if(Array.isArray(e))this.length=0,this.value=e.map(function(r){return Is.isEncoderBuffer(r)||(r=new Is(r,t)),this.length+=r.length,r},this);else if(typeof e=="number"){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if(typeof e=="string")this.value=e,this.length=Os.byteLength(e);else if(Os.isBuffer(e))this.value=e,this.length=e.length;else return t.error("Unsupported type: "+typeof e)}va.EncoderBuffer=Is;Is.isEncoderBuffer=function(t){return t instanceof Is?!0:typeof t=="object"&&t.constructor.name==="EncoderBuffer"&&typeof t.length=="number"&&typeof t.join=="function"};Is.prototype.join=function(t,r){return t||(t=Os.alloc(this.length)),r||(r=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(i){i.join(t,r),r+=i.length}):(typeof this.value=="number"?t[r]=this.value:typeof this.value=="string"?t.write(this.value,r):Os.isBuffer(this.value)&&this.value.copy(t,r),r+=this.length)),t};const hK=bc.Reporter,cK=va.EncoderBuffer,dK=va.DecoderBuffer,kr=Si,s4=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],pK=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s4),vK=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function Kt(e,t,r){const i={};this._baseState=i,i.name=r,i.enc=e,i.parent=t||null,i.children=null,i.tag=null,i.args=null,i.reverseArgs=null,i.choice=null,i.optional=!1,i.any=!1,i.obj=!1,i.use=null,i.useDecoder=null,i.key=null,i.default=null,i.explicit=null,i.implicit=null,i.contains=null,i.parent||(i.children=[],this._wrap())}var Kg=Kt;const gK=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];Kt.prototype.clone=function(){const t=this._baseState,r={};gK.forEach(function(a){r[a]=t[a]});const i=new this.constructor(r.parent);return i._baseState=r,i};Kt.prototype._wrap=function(){const t=this._baseState;pK.forEach(function(r){this[r]=function(){const a=new this.constructor(this);return t.children.push(a),a[r].apply(a,arguments)}},this)};Kt.prototype._init=function(t){const r=this._baseState;kr(r.parent===null),t.call(this),r.children=r.children.filter(function(i){return i._baseState.parent===this},this),kr.equal(r.children.length,1,"Root node can have only one child")};Kt.prototype._useArgs=function(t){const r=this._baseState,i=t.filter(function(a){return a instanceof this.constructor},this);t=t.filter(function(a){return!(a instanceof this.constructor)},this),i.length!==0&&(kr(r.children===null),r.children=i,i.forEach(function(a){a._baseState.parent=this},this)),t.length!==0&&(kr(r.args===null),r.args=t,r.reverseArgs=t.map(function(a){if(typeof a!="object"||a.constructor!==Object)return a;const n={};return Object.keys(a).forEach(function(u){u==(u|0)&&(u|=0);const c=a[u];n[c]=u}),n}))};vK.forEach(function(e){Kt.prototype[e]=function(){const r=this._baseState;throw new Error(e+" not implemented for encoding: "+r.enc)}});s4.forEach(function(e){Kt.prototype[e]=function(){const r=this._baseState,i=Array.prototype.slice.call(arguments);return kr(r.tag===null),r.tag=e,this._useArgs(i),this}});Kt.prototype.use=function(t){kr(t);const r=this._baseState;return kr(r.use===null),r.use=t,this};Kt.prototype.optional=function(){const t=this._baseState;return t.optional=!0,this};Kt.prototype.def=function(t){const r=this._baseState;return kr(r.default===null),r.default=t,r.optional=!0,this};Kt.prototype.explicit=function(t){const r=this._baseState;return kr(r.explicit===null&&r.implicit===null),r.explicit=t,this};Kt.prototype.implicit=function(t){const r=this._baseState;return kr(r.explicit===null&&r.implicit===null),r.implicit=t,this};Kt.prototype.obj=function(){const t=this._baseState,r=Array.prototype.slice.call(arguments);return t.obj=!0,r.length!==0&&this._useArgs(r),this};Kt.prototype.key=function(t){const r=this._baseState;return kr(r.key===null),r.key=t,this};Kt.prototype.any=function(){const t=this._baseState;return t.any=!0,this};Kt.prototype.choice=function(t){const r=this._baseState;return kr(r.choice===null),r.choice=t,this._useArgs(Object.keys(t).map(function(i){return t[i]})),this};Kt.prototype.contains=function(t){const r=this._baseState;return kr(r.use===null),r.contains=t,this};Kt.prototype._decode=function(t,r){const i=this._baseState;if(i.parent===null)return t.wrapResult(i.children[0]._decode(t,r));let a=i.default,n=!0,u=null;if(i.key!==null&&(u=t.enterKey(i.key)),i.optional){let d=null;if(i.explicit!==null?d=i.explicit:i.implicit!==null?d=i.implicit:i.tag!==null&&(d=i.tag),d===null&&!i.any){const m=t.save();try{i.choice===null?this._decodeGeneric(i.tag,t,r):this._decodeChoice(t,r),n=!0}catch{n=!1}t.restore(m)}else if(n=this._peekTag(t,d,i.any),t.isError(n))return n}let c;if(i.obj&&n&&(c=t.enterObject()),n){if(i.explicit!==null){const m=this._decodeTag(t,i.explicit);if(t.isError(m))return m;t=m}const d=t.offset;if(i.use===null&&i.choice===null){let m;i.any&&(m=t.save());const M=this._decodeTag(t,i.implicit!==null?i.implicit:i.tag,i.any);if(t.isError(M))return M;i.any?a=t.raw(m):t=M}if(r&&r.track&&i.tag!==null&&r.track(t.path(),d,t.length,"tagged"),r&&r.track&&i.tag!==null&&r.track(t.path(),t.offset,t.length,"content"),i.any||(i.choice===null?a=this._decodeGeneric(i.tag,t,r):a=this._decodeChoice(t,r)),t.isError(a))return a;if(!i.any&&i.choice===null&&i.children!==null&&i.children.forEach(function(M){M._decode(t,r)}),i.contains&&(i.tag==="octstr"||i.tag==="bitstr")){const m=new dK(a);a=this._getUse(i.contains,t._reporterState.obj)._decode(m,r)}}return i.obj&&n&&(a=t.leaveObject(c)),i.key!==null&&(a!==null||n===!0)?t.leaveKey(u,i.key,a):u!==null&&t.exitKey(u),a};Kt.prototype._decodeGeneric=function(t,r,i){const a=this._baseState;return t==="seq"||t==="set"?null:t==="seqof"||t==="setof"?this._decodeList(r,t,a.args[0],i):/str$/.test(t)?this._decodeStr(r,t,i):t==="objid"&&a.args?this._decodeObjid(r,a.args[0],a.args[1],i):t==="objid"?this._decodeObjid(r,null,null,i):t==="gentime"||t==="utctime"?this._decodeTime(r,t,i):t==="null_"?this._decodeNull(r,i):t==="bool"?this._decodeBool(r,i):t==="objDesc"?this._decodeStr(r,t,i):t==="int"||t==="enum"?this._decodeInt(r,a.args&&a.args[0],i):a.use!==null?this._getUse(a.use,r._reporterState.obj)._decode(r,i):r.error("unknown tag: "+t)};Kt.prototype._getUse=function(t,r){const i=this._baseState;return i.useDecoder=this._use(t,r),kr(i.useDecoder._baseState.parent===null),i.useDecoder=i.useDecoder._baseState.children[0],i.implicit!==i.useDecoder._baseState.implicit&&(i.useDecoder=i.useDecoder.clone(),i.useDecoder._baseState.implicit=i.implicit),i.useDecoder};Kt.prototype._decodeChoice=function(t,r){const i=this._baseState;let a=null,n=!1;return Object.keys(i.choice).some(function(u){const c=t.save(),d=i.choice[u];try{const m=d._decode(t,r);if(t.isError(m))return!1;a={type:u,value:m},n=!0}catch{return t.restore(c),!1}return!0},this),n?a:t.error("Choice not matched")};Kt.prototype._createEncoderBuffer=function(t){return new cK(t,this.reporter)};Kt.prototype._encode=function(t,r,i){const a=this._baseState;if(a.default!==null&&a.default===t)return;const n=this._encodeValue(t,r,i);if(n!==void 0&&!this._skipDefault(n,r,i))return n};Kt.prototype._encodeValue=function(t,r,i){const a=this._baseState;if(a.parent===null)return a.children[0]._encode(t,r||new hK);let n=null;if(this.reporter=r,a.optional&&t===void 0)if(a.default!==null)t=a.default;else return;let u=null,c=!1;if(a.any)n=this._createEncoderBuffer(t);else if(a.choice)n=this._encodeChoice(t,r);else if(a.contains)u=this._getUse(a.contains,i)._encode(t,r),c=!0;else if(a.children)u=a.children.map(function(d){if(d._baseState.tag==="null_")return d._encode(null,r,t);if(d._baseState.key===null)return r.error("Child should have a key");const m=r.enterKey(d._baseState.key);if(typeof t!="object")return r.error("Child expected, but input is not object");const M=d._encode(t[d._baseState.key],r,t);return r.leaveKey(m),M},this).filter(function(d){return d}),u=this._createEncoderBuffer(u);else if(a.tag==="seqof"||a.tag==="setof"){if(!(a.args&&a.args.length===1))return r.error("Too many args for : "+a.tag);if(!Array.isArray(t))return r.error("seqof/setof, but data is not Array");const d=this.clone();d._baseState.implicit=null,u=this._createEncoderBuffer(t.map(function(m){const M=this._baseState;return this._getUse(M.args[0],t)._encode(m,r)},d))}else a.use!==null?n=this._getUse(a.use,i)._encode(t,r):(u=this._encodePrimitive(a.tag,t),c=!0);if(!a.any&&a.choice===null){const d=a.implicit!==null?a.implicit:a.tag,m=a.implicit===null?"universal":"context";d===null?a.use===null&&r.error("Tag could be omitted only for .use()"):a.use===null&&(n=this._encodeComposite(d,c,m,u))}return a.explicit!==null&&(n=this._encodeComposite(a.explicit,!1,"context",n)),n};Kt.prototype._encodeChoice=function(t,r){const i=this._baseState,a=i.choice[t.type];return a||kr(!1,t.type+" not found in "+JSON.stringify(Object.keys(i.choice))),a._encode(t.value,r)};Kt.prototype._encodePrimitive=function(t,r){const i=this._baseState;if(/str$/.test(t))return this._encodeStr(r,t);if(t==="objid"&&i.args)return this._encodeObjid(r,i.reverseArgs[0],i.args[1]);if(t==="objid")return this._encodeObjid(r,null,null);if(t==="gentime"||t==="utctime")return this._encodeTime(r,t);if(t==="null_")return this._encodeNull();if(t==="int"||t==="enum")return this._encodeInt(r,i.args&&i.reverseArgs[0]);if(t==="bool")return this._encodeBool(r);if(t==="objDesc")return this._encodeStr(r,t);throw new Error("Unsupported tag: "+t)};Kt.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)};Kt.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(t)};var _c={};(function(e){function t(r){const i={};return Object.keys(r).forEach(function(a){(a|0)==a&&(a=a|0);const n=r[a];i[n]=a}),i}e.tagClass={0:"universal",1:"application",2:"context",3:"private"},e.tagClassByName=t(e.tagClass),e.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},e.tagByName=t(e.tag)})(_c);const mK=Ze,On=Wg.Buffer,f4=Kg,A0=_c;function u4(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new qi,this.tree._init(e.body)}var l4=u4;u4.prototype.encode=function(t,r){return this.tree._encode(t,r).join()};function qi(e){f4.call(this,"der",e)}mK(qi,f4);qi.prototype._encodeComposite=function(t,r,i,a){const n=yK(t,r,i,this.reporter);if(a.length<128){const d=On.alloc(2);return d[0]=n,d[1]=a.length,this._createEncoderBuffer([d,a])}let u=1;for(let d=a.length;d>=256;d>>=8)u++;const c=On.alloc(1+1+u);c[0]=n,c[1]=128|u;for(let d=1+u,m=a.length;m>0;d--,m>>=8)c[d]=m&255;return this._createEncoderBuffer([c,a])};qi.prototype._encodeStr=function(t,r){if(r==="bitstr")return this._createEncoderBuffer([t.unused|0,t.data]);if(r==="bmpstr"){const i=On.alloc(t.length*2);for(let a=0;a<t.length;a++)i.writeUInt16BE(t.charCodeAt(a),a*2);return this._createEncoderBuffer(i)}else return r==="numstr"?this._isNumstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: numstr supports only digits and space"):r==="printstr"?this._isPrintstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(r)?this._createEncoderBuffer(t):r==="objDesc"?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: "+r+" unsupported")};qi.prototype._encodeObjid=function(t,r,i){if(typeof t=="string"){if(!r)return this.reporter.error("string objid given, but no values map found");if(!r.hasOwnProperty(t))return this.reporter.error("objid not found in values map");t=r[t].split(/[\s.]+/g);for(let c=0;c<t.length;c++)t[c]|=0}else if(Array.isArray(t)){t=t.slice();for(let c=0;c<t.length;c++)t[c]|=0}if(!Array.isArray(t))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(t));if(!i){if(t[1]>=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,t[0]*40+t[1])}let a=0;for(let c=0;c<t.length;c++){let d=t[c];for(a++;d>=128;d>>=7)a++}const n=On.alloc(a);let u=n.length-1;for(let c=t.length-1;c>=0;c--){let d=t[c];for(n[u--]=d&127;(d>>=7)>0;)n[u--]=128|d&127}return this._createEncoderBuffer(n)};function ai(e){return e<10?"0"+e:e}qi.prototype._encodeTime=function(t,r){let i;const a=new Date(t);return r==="gentime"?i=[ai(a.getUTCFullYear()),ai(a.getUTCMonth()+1),ai(a.getUTCDate()),ai(a.getUTCHours()),ai(a.getUTCMinutes()),ai(a.getUTCSeconds()),"Z"].join(""):r==="utctime"?i=[ai(a.getUTCFullYear()%100),ai(a.getUTCMonth()+1),ai(a.getUTCDate()),ai(a.getUTCHours()),ai(a.getUTCMinutes()),ai(a.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+r+" time is not supported yet"),this._encodeStr(i,"octstr")};qi.prototype._encodeNull=function(){return this._createEncoderBuffer("")};qi.prototype._encodeInt=function(t,r){if(typeof t=="string"){if(!r)return this.reporter.error("String int or enum given, but no values map");if(!r.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=r[t]}if(typeof t!="number"&&!On.isBuffer(t)){const n=t.toArray();!t.sign&&n[0]&128&&n.unshift(0),t=On.from(n)}if(On.isBuffer(t)){let n=t.length;t.length===0&&n++;const u=On.alloc(n);return t.copy(u),t.length===0&&(u[0]=0),this._createEncoderBuffer(u)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);let i=1;for(let n=t;n>=256;n>>=8)i++;const a=new Array(i);for(let n=a.length-1;n>=0;n--)a[n]=t&255,t>>=8;return a[0]&128&&a.unshift(0),this._createEncoderBuffer(On.from(a))};qi.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)};qi.prototype._use=function(t,r){return typeof t=="function"&&(t=t(r)),t._getEncoder("der").tree};qi.prototype._skipDefault=function(t,r,i){const a=this._baseState;let n;if(a.default===null)return!1;const u=t.join();if(a.defaultBuffer===void 0&&(a.defaultBuffer=this._encodeValue(a.default,r,i).join()),u.length!==a.defaultBuffer.length)return!1;for(n=0;n<u.length;n++)if(u[n]!==a.defaultBuffer[n])return!1;return!0};function yK(e,t,r,i){let a;if(e==="seqof"?e="seq":e==="setof"&&(e="set"),A0.tagByName.hasOwnProperty(e))a=A0.tagByName[e];else if(typeof e=="number"&&(e|0)===e)a=e;else return i.error("Unknown tag: "+e);return a>=31?i.error("Multi-octet tag encoding unsupported"):(t||(a|=32),a|=A0.tagClassByName[r||"universal"]<<6,a)}const bK=Ze,Vg=l4;function zg(e){Vg.call(this,e),this.enc="pem"}bK(zg,Vg);var wK=zg;zg.prototype.encode=function(t,r){const a=Vg.prototype.encode.call(this,t).toString("base64"),n=["-----BEGIN "+r.label+"-----"];for(let u=0;u<a.length;u+=64)n.push(a.slice(u,u+64));return n.push("-----END "+r.label+"-----"),n.join(`
-`)};(function(e){const t=e;t.der=l4,t.pem=wK})(qg);var Gg={};const _K=Ze,MK=o4,ww=va.DecoderBuffer,h4=Kg,_w=_c;function c4(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new ii,this.tree._init(e.body)}var d4=c4;c4.prototype.decode=function(t,r){return ww.isDecoderBuffer(t)||(t=new ww(t,r)),this.tree._decode(t,r)};function ii(e){h4.call(this,"der",e)}_K(ii,h4);ii.prototype._peekTag=function(t,r,i){if(t.isEmpty())return!1;const a=t.save(),n=Yg(t,'Failed to peek tag: "'+r+'"');return t.isError(n)?n:(t.restore(a),n.tag===r||n.tagStr===r||n.tagStr+"of"===r||i)};ii.prototype._decodeTag=function(t,r,i){const a=Yg(t,'Failed to decode tag of "'+r+'"');if(t.isError(a))return a;let n=p4(t,a.primitive,'Failed to get length of "'+r+'"');if(t.isError(n))return n;if(!i&&a.tag!==r&&a.tagStr!==r&&a.tagStr+"of"!==r)return t.error('Failed to match tag: "'+r+'"');if(a.primitive||n!==null)return t.skip(n,'Failed to match body of: "'+r+'"');const u=t.save(),c=this._skipUntilEnd(t,'Failed to skip indefinite length body: "'+this.tag+'"');return t.isError(c)?c:(n=t.offset-u.offset,t.restore(u),t.skip(n,'Failed to match body of: "'+r+'"'))};ii.prototype._skipUntilEnd=function(t,r){for(;;){const i=Yg(t,r);if(t.isError(i))return i;const a=p4(t,i.primitive,r);if(t.isError(a))return a;let n;if(i.primitive||a!==null?n=t.skip(a):n=this._skipUntilEnd(t,r),t.isError(n))return n;if(i.tagStr==="end")break}};ii.prototype._decodeList=function(t,r,i,a){const n=[];for(;!t.isEmpty();){const u=this._peekTag(t,"end");if(t.isError(u))return u;const c=i.decode(t,"der",a);if(t.isError(c)&&u)break;n.push(c)}return n};ii.prototype._decodeStr=function(t,r){if(r==="bitstr"){const i=t.readUInt8();return t.isError(i)?i:{unused:i,data:t.raw()}}else if(r==="bmpstr"){const i=t.raw();if(i.length%2===1)return t.error("Decoding of string type: bmpstr length mismatch");let a="";for(let n=0;n<i.length/2;n++)a+=String.fromCharCode(i.readUInt16BE(n*2));return a}else if(r==="numstr"){const i=t.raw().toString("ascii");return this._isNumstr(i)?i:t.error("Decoding of string type: numstr unsupported characters")}else{if(r==="octstr")return t.raw();if(r==="objDesc")return t.raw();if(r==="printstr"){const i=t.raw().toString("ascii");return this._isPrintstr(i)?i:t.error("Decoding of string type: printstr unsupported characters")}else return/str$/.test(r)?t.raw().toString():t.error("Decoding of string type: "+r+" unsupported")}};ii.prototype._decodeObjid=function(t,r,i){let a;const n=[];let u=0,c=0;for(;!t.isEmpty();)c=t.readUInt8(),u<<=7,u|=c&127,c&128||(n.push(u),u=0);c&128&&n.push(u);const d=n[0]/40|0,m=n[0]%40;if(i?a=n:a=[d,m].concat(n.slice(1)),r){let M=r[a.join(" ")];M===void 0&&(M=r[a.join(".")]),M!==void 0&&(a=M)}return a};ii.prototype._decodeTime=function(t,r){const i=t.raw().toString();let a,n,u,c,d,m;if(r==="gentime")a=i.slice(0,4)|0,n=i.slice(4,6)|0,u=i.slice(6,8)|0,c=i.slice(8,10)|0,d=i.slice(10,12)|0,m=i.slice(12,14)|0;else if(r==="utctime")a=i.slice(0,2)|0,n=i.slice(2,4)|0,u=i.slice(4,6)|0,c=i.slice(6,8)|0,d=i.slice(8,10)|0,m=i.slice(10,12)|0,a<70?a=2e3+a:a=1900+a;else return t.error("Decoding "+r+" time is not supported yet");return Date.UTC(a,n-1,u,c,d,m,0)};ii.prototype._decodeNull=function(){return null};ii.prototype._decodeBool=function(t){const r=t.readUInt8();return t.isError(r)?r:r!==0};ii.prototype._decodeInt=function(t,r){const i=t.raw();let a=new MK(i);return r&&(a=r[a.toString(10)]||a),a};ii.prototype._use=function(t,r){return typeof t=="function"&&(t=t(r)),t._getDecoder("der").tree};function Yg(e,t){let r=e.readUInt8(t);if(e.isError(r))return r;const i=_w.tagClass[r>>6],a=(r&32)===0;if((r&31)===31){let u=r;for(r=0;(u&128)===128;){if(u=e.readUInt8(t),e.isError(u))return u;r<<=7,r|=u&127}}else r&=31;const n=_w.tag[r];return{cls:i,primitive:a,tag:r,tagStr:n}}function p4(e,t,r){let i=e.readUInt8(r);if(e.isError(i))return i;if(!t&&i===128)return null;if(!(i&128))return i;const a=i&127;if(a>4)return e.error("length octect is too long");i=0;for(let n=0;n<a;n++){i<<=8;const u=e.readUInt8(r);if(e.isError(u))return u;i|=u}return i}const SK=Ze,xK=Wg.Buffer,Zg=d4;function Xg(e){Zg.call(this,e),this.enc="pem"}SK(Xg,Zg);var EK=Xg;Xg.prototype.decode=function(t,r){const i=t.toString().split(/[\r\n]+/g),a=r.label.toUpperCase(),n=/^-----(BEGIN|END) ([^-]+)-----$/;let u=-1,c=-1;for(let M=0;M<i.length;M++){const S=i[M].match(n);if(S!==null&&S[2]===a)if(u===-1){if(S[1]!=="BEGIN")break;u=M}else{if(S[1]!=="END")break;c=M;break}}if(u===-1||c===-1)throw new Error("PEM section not found for: "+a);const d=i.slice(u+1,c).join("");d.replace(/[^a-z0-9+/=]+/gi,"");const m=xK.from(d,"base64");return Zg.prototype.decode.call(this,m,r)};(function(e){const t=e;t.der=d4,t.pem=EK})(Gg);(function(e){const t=qg,r=Gg,i=Ze,a=e;a.define=function(c,d){return new n(c,d)};function n(u,c){this.name=u,this.body=c,this.decoders={},this.encoders={}}n.prototype._createNamed=function(c){const d=this.name;function m(M){this._initNamed(M,d)}return i(m,c),m.prototype._initNamed=function(S,R){c.call(this,S,R)},new m(this)},n.prototype._getDecoder=function(c){return c=c||"der",this.decoders.hasOwnProperty(c)||(this.decoders[c]=this._createNamed(r[c])),this.decoders[c]},n.prototype.decode=function(c,d,m){return this._getDecoder(d).decode(c,m)},n.prototype._getEncoder=function(c){return c=c||"der",this.encoders.hasOwnProperty(c)||(this.encoders[c]=this._createNamed(t[c])),this.encoders[c]},n.prototype.encode=function(c,d,m){return this._getEncoder(d).encode(c,m)}})(a4);var v4={};(function(e){const t=e;t.Reporter=bc.Reporter,t.DecoderBuffer=va.DecoderBuffer,t.EncoderBuffer=va.EncoderBuffer,t.Node=Kg})(v4);var g4={};(function(e){const t=e;t._reverse=function(i){const a={};return Object.keys(i).forEach(function(n){(n|0)==n&&(n=n|0);const u=i[n];a[u]=n}),a},t.der=_c})(g4);(function(e){const t=e;t.bignum=o4,t.define=a4.define,t.base=v4,t.constants=g4,t.decoders=Gg,t.encoders=qg})(Ug);var Wi=Ug,Mw=Wi.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),RK=Wi.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),Jg=Wi.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),AK=Wi.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(Jg),this.key("subjectPublicKey").bitstr())}),TK=Wi.define("RelativeDistinguishedName",function(){this.setof(RK)}),OK=Wi.define("RDNSequence",function(){this.seqof(TK)}),Sw=Wi.define("Name",function(){this.choice({rdnSequence:this.use(OK)})}),IK=Wi.define("Validity",function(){this.seq().obj(this.key("notBefore").use(Mw),this.key("notAfter").use(Mw))}),PK=Wi.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),CK=Wi.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(Jg),this.key("issuer").use(Sw),this.key("validity").use(IK),this.key("subject").use(Sw),this.key("subjectPublicKeyInfo").use(AK),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(PK).optional())}),BK=Wi.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(CK),this.key("signatureAlgorithm").use(Jg),this.key("signatureValue").bitstr())}),LK=BK,Ki=Ug;Hi.certificate=LK;var NK=Ki.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});Hi.RSAPrivateKey=NK;var kK=Ki.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});Hi.RSAPublicKey=kK;var $K=Ki.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(m4),this.key("subjectPublicKey").bitstr())});Hi.PublicKey=$K;var m4=Ki.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),DK=Ki.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(m4),this.key("subjectPrivateKey").octstr())});Hi.PrivateKey=DK;var FK=Ki.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});Hi.EncryptedPrivateKey=FK;var jK=Ki.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});Hi.DSAPrivateKey=jK;Hi.DSAparam=Ki.define("DSAparam",function(){this.int()});var UK=Ki.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(HK),this.key("publicKey").optional().explicit(1).bitstr())});Hi.ECPrivateKey=UK;var HK=Ki.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});Hi.signature=Ki.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())});const qK={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"};var WK=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,KK=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,VK=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,zK=oc,GK=Qr,tl=pt.Buffer,YK=function(e,t){var r=e.toString(),i=r.match(WK),a;if(i){var u="aes"+i[1],c=tl.from(i[2],"hex"),d=tl.from(i[3].replace(/[\r\n]/g,""),"base64"),m=zK(t,c.slice(0,8),parseInt(i[1],10)).key,M=[],S=GK.createDecipheriv(u,m,c);M.push(S.update(d)),M.push(S.final()),a=tl.concat(M)}else{var n=r.match(VK);a=tl.from(n[2].replace(/[\r\n]/g,""),"base64")}var R=r.match(KK)[1];return{tag:R,data:a}},$r=Hi,ZK=qK,XK=YK,JK=Qr,QK=rc,Xp=pt.Buffer,Mc=y4;function y4(e){var t;typeof e=="object"&&!Xp.isBuffer(e)&&(t=e.passphrase,e=e.key),typeof e=="string"&&(e=Xp.from(e));var r=XK(e,t),i=r.tag,a=r.data,n,u;switch(i){case"CERTIFICATE":u=$r.certificate.decode(a,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(u||(u=$r.PublicKey.decode(a,"der")),n=u.algorithm.algorithm.join("."),n){case"1.2.840.113549.1.1.1":return $r.RSAPublicKey.decode(u.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return u.subjectPrivateKey=u.subjectPublicKey,{type:"ec",data:u};case"1.2.840.10040.4.1":return u.algorithm.params.pub_key=$r.DSAparam.decode(u.subjectPublicKey.data,"der"),{type:"dsa",data:u.algorithm.params};default:throw new Error("unknown key id "+n)}case"ENCRYPTED PRIVATE KEY":a=$r.EncryptedPrivateKey.decode(a,"der"),a=eV(a,t);case"PRIVATE KEY":switch(u=$r.PrivateKey.decode(a,"der"),n=u.algorithm.algorithm.join("."),n){case"1.2.840.113549.1.1.1":return $r.RSAPrivateKey.decode(u.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:u.algorithm.curve,privateKey:$r.ECPrivateKey.decode(u.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return u.algorithm.params.priv_key=$r.DSAparam.decode(u.subjectPrivateKey,"der"),{type:"dsa",params:u.algorithm.params};default:throw new Error("unknown key id "+n)}case"RSA PUBLIC KEY":return $r.RSAPublicKey.decode(a,"der");case"RSA PRIVATE KEY":return $r.RSAPrivateKey.decode(a,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:$r.DSAPrivateKey.decode(a,"der")};case"EC PRIVATE KEY":return a=$r.ECPrivateKey.decode(a,"der"),{curve:a.parameters.value,privateKey:a.privateKey};default:throw new Error("unknown key type "+i)}}y4.signature=$r.signature;function eV(e,t){var r=e.algorithm.decrypt.kde.kdeparams.salt,i=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),a=ZK[e.algorithm.decrypt.cipher.algo.join(".")],n=e.algorithm.decrypt.cipher.iv,u=e.subjectPrivateKey,c=parseInt(a.split("-")[1],10)/8,d=QK.pbkdf2Sync(t,r,i,c,"sha1"),m=JK.createDecipheriv(a,d,n),M=[];return M.push(m.update(u)),M.push(m.final()),Xp.concat(M)}const b4={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"};var xw;function tV(){if(xw)return gf.exports;xw=1;var e=pt.Buffer,t=PS,r=Lg,i=jg().ec,a=Bg,n=Mc,u=b4;function c(L,I,B,H,F){var W=n(I);if(W.curve){if(H!=="ecdsa"&&H!=="ecdsa/rsa")throw new Error("wrong private key type");return d(L,W)}else if(W.type==="dsa"){if(H!=="dsa")throw new Error("wrong private key type");return m(L,W,B)}else if(H!=="rsa"&&H!=="ecdsa/rsa")throw new Error("wrong private key type");L=e.concat([F,L]);for(var Y=W.modulus.byteLength(),ie=[0,1];L.length+ie.length+1<Y;)ie.push(255);ie.push(0);for(var J=-1;++J<L.length;)ie.push(L[J]);var V=r(ie,W);return V}function d(L,I){var B=u[I.curve.join(".")];if(!B)throw new Error("unknown curve "+I.curve.join("."));var H=new i(B),F=H.keyFromPrivate(I.privateKey),W=F.sign(L);return e.from(W.toDER())}function m(L,I,B){for(var H=I.params.priv_key,F=I.params.p,W=I.params.q,Y=I.params.g,ie=new a(0),J,V=R(L,W).mod(W),oe=!1,_=S(H,W,L,B);oe===!1;)J=P(W,_,B),ie=k(Y,J,F,W),oe=J.invm(W).imul(V.add(H.mul(ie))).mod(W),oe.cmpn(0)===0&&(oe=!1,ie=new a(0));return M(ie,oe)}function M(L,I){L=L.toArray(),I=I.toArray(),L[0]&128&&(L=[0].concat(L)),I[0]&128&&(I=[0].concat(I));var B=L.length+I.length+4,H=[48,B,2,L.length];return H=H.concat(L,[2,I.length],I),e.from(H)}function S(L,I,B,H){if(L=e.from(L.toArray()),L.length<I.byteLength()){var F=e.alloc(I.byteLength()-L.length);L=e.concat([F,L])}var W=B.length,Y=C(B,I),ie=e.alloc(W);ie.fill(1);var J=e.alloc(W);return J=t(H,J).update(ie).update(e.from([0])).update(L).update(Y).digest(),ie=t(H,J).update(ie).digest(),J=t(H,J).update(ie).update(e.from([1])).update(L).update(Y).digest(),ie=t(H,J).update(ie).digest(),{k:J,v:ie}}function R(L,I){var B=new a(L),H=(L.length<<3)-I.bitLength();return H>0&&B.ishrn(H),B}function C(L,I){L=R(L,I),L=L.mod(I);var B=e.from(L.toArray());if(B.length<I.byteLength()){var H=e.alloc(I.byteLength()-B.length);B=e.concat([H,B])}return B}function P(L,I,B){var H,F;do{for(H=e.alloc(0);H.length*8<L.bitLength();)I.v=t(B,I.k).update(I.v).digest(),H=e.concat([H,I.v]);F=R(H,L),I.k=t(B,I.k).update(I.v).update(e.from([0])).digest(),I.v=t(B,I.k).update(I.v).digest()}while(F.cmp(L)!==-1);return F}function k(L,I,B,H){return L.toRed(a.mont(B)).redPow(I).fromRed().mod(H)}return gf.exports=c,gf.exports.getKey=S,gf.exports.makeKey=P,gf.exports}var T0,Ew;function rV(){if(Ew)return T0;Ew=1;var e=pt.Buffer,t=Bg,r=jg().ec,i=Mc,a=b4;function n(m,M,S,R,C){var P=i(S);if(P.type==="ec"){if(R!=="ecdsa"&&R!=="ecdsa/rsa")throw new Error("wrong public key type");return u(m,M,P)}else if(P.type==="dsa"){if(R!=="dsa")throw new Error("wrong public key type");return c(m,M,P)}else if(R!=="rsa"&&R!=="ecdsa/rsa")throw new Error("wrong public key type");M=e.concat([C,M]);for(var k=P.modulus.byteLength(),L=[1],I=0;M.length+L.length+2<k;)L.push(255),I++;L.push(0);for(var B=-1;++B<M.length;)L.push(M[B]);L=e.from(L);var H=t.mont(P.modulus);m=new t(m).toRed(H),m=m.redPow(new t(P.publicExponent)),m=e.from(m.fromRed().toArray());var F=I<8?1:0;for(k=Math.min(m.length,L.length),m.length!==L.length&&(F=1),B=-1;++B<k;)F|=m[B]^L[B];return F===0}function u(m,M,S){var R=a[S.data.algorithm.curve.join(".")];if(!R)throw new Error("unknown curve "+S.data.algorithm.curve.join("."));var C=new r(R),P=S.data.subjectPrivateKey.data;return C.verify(M,m,P)}function c(m,M,S){var R=S.data.p,C=S.data.q,P=S.data.g,k=S.data.pub_key,L=i.signature.decode(m,"der"),I=L.s,B=L.r;d(I,C),d(B,C);var H=t.mont(R),F=I.invm(C),W=P.toRed(H).redPow(new t(M).mul(F).mod(C)).fromRed().mul(k.toRed(H).redPow(B.mul(F).mod(C)).fromRed()).mod(R).mod(C);return W.cmp(B)===0}function d(m,M){if(m.cmpn(0)<=0)throw new Error("invalid sig");if(m.cmp(M)>=M)throw new Error("invalid sig")}return T0=n,T0}var O0,Rw;function iV(){if(Rw)return O0;Rw=1;var e=pt.Buffer,t=Tu,r=KH,i=Ze,a=tV(),n=rV(),u=CS;Object.keys(u).forEach(function(S){u[S].id=e.from(u[S].id,"hex"),u[S.toLowerCase()]=u[S]});function c(S){r.Writable.call(this);var R=u[S];if(!R)throw new Error("Unknown message digest");this._hashType=R.hash,this._hash=t(R.hash),this._tag=R.id,this._signType=R.sign}i(c,r.Writable),c.prototype._write=function(R,C,P){this._hash.update(R),P()},c.prototype.update=function(R,C){return typeof R=="string"&&(R=e.from(R,C)),this._hash.update(R),this},c.prototype.sign=function(R,C){this.end();var P=this._hash.digest(),k=a(P,R,this._hashType,this._signType,this._tag);return C?k.toString(C):k};function d(S){r.Writable.call(this);var R=u[S];if(!R)throw new Error("Unknown message digest");this._hash=t(R.hash),this._tag=R.id,this._signType=R.sign}i(d,r.Writable),d.prototype._write=function(R,C,P){this._hash.update(R),P()},d.prototype.update=function(R,C){return typeof R=="string"&&(R=e.from(R,C)),this._hash.update(R),this},d.prototype.verify=function(R,C,P){typeof C=="string"&&(C=e.from(C,P)),this.end();var k=this._hash.digest();return n(C,k,R,this._signType,this._tag)};function m(S){return new c(S)}function M(S){return new d(S)}return O0={Sign:m,Verify:M,createSign:m,createVerify:M},O0}var Qg={exports:{}};Qg.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Qg);var nV=Qg.exports,I0,Aw;function oV(){if(Aw)return I0;Aw=1;var e=jg(),t=nV;I0=function(u){return new i(u)};var r={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};r.p224=r.secp224r1,r.p256=r.secp256r1=r.prime256v1,r.p192=r.secp192r1=r.prime192v1,r.p384=r.secp384r1,r.p521=r.secp521r1;function i(n){this.curveType=r[n],this.curveType||(this.curveType={name:n}),this.curve=new e.ec(this.curveType.name),this.keys=void 0}i.prototype.generateKeys=function(n,u){return this.keys=this.curve.genKeyPair(),this.getPublicKey(n,u)},i.prototype.computeSecret=function(n,u,c){u=u||"utf8",ke.Buffer.isBuffer(n)||(n=new ke.Buffer(n,u));var d=this.curve.keyFromPublic(n).getPublic(),m=d.mul(this.keys.getPrivate()).getX();return a(m,c,this.curveType.byteLength)},i.prototype.getPublicKey=function(n,u){var c=this.keys.getPublic(u==="compressed",!0);return u==="hybrid"&&(c[c.length-1]%2?c[0]=7:c[0]=6),a(c,n)},i.prototype.getPrivateKey=function(n){return a(this.keys.getPrivate(),n)},i.prototype.setPublicKey=function(n,u){return u=u||"utf8",ke.Buffer.isBuffer(n)||(n=new ke.Buffer(n,u)),this.keys._importPublic(n),this},i.prototype.setPrivateKey=function(n,u){u=u||"utf8",ke.Buffer.isBuffer(n)||(n=new ke.Buffer(n,u));var c=new t(n);return c=c.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(c),this};function a(n,u,c){Array.isArray(n)||(n=n.toArray());var d=new ke.Buffer(n);if(c&&d.length<c){var m=new ke.Buffer(c-d.length);m.fill(0),d=ke.Buffer.concat([m,d])}return u?d.toString(u):d}return I0}var w4={},aV=Tu,Jp=pt.Buffer,_4=function(e,t){for(var r=Jp.alloc(0),i=0,a;r.length<t;)a=sV(i++),r=Jp.concat([r,aV("sha1").update(e).update(a).digest()]);return r.slice(0,t)};function sV(e){var t=Jp.allocUnsafe(4);return t.writeUInt32BE(e,0),t}var M4=function(t,r){for(var i=t.length,a=-1;++a<i;)t[a]^=r[a];return t},em={exports:{}};em.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(em);var tm=em.exports,Tw=tm,fV=pt.Buffer;function uV(e,t){return fV.from(e.toRed(Tw.mont(t.modulus)).redPow(new Tw(t.publicExponent)).fromRed().toArray())}var S4=uV,lV=Mc,Qp=Ds,hV=Tu,Ow=_4,Iw=M4,rm=tm,cV=S4,dV=Lg,Ci=pt.Buffer,pV=function(t,r,i){var a;t.padding?a=t.padding:i?a=1:a=4;var n=lV(t),u;if(a===4)u=vV(n,r);else if(a===1)u=gV(n,r,i);else if(a===3){if(u=new rm(r),u.cmp(n.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return i?dV(u,n):cV(u,n)};function vV(e,t){var r=e.modulus.byteLength(),i=t.length,a=hV("sha1").update(Ci.alloc(0)).digest(),n=a.length,u=2*n;if(i>r-u-2)throw new Error("message too long");var c=Ci.alloc(r-i-u-2),d=r-n-1,m=Qp(n),M=Iw(Ci.concat([a,c,Ci.alloc(1,1),t],d),Ow(m,d)),S=Iw(m,Ow(M,n));return new rm(Ci.concat([Ci.alloc(1),S,M],r))}function gV(e,t,r){var i=t.length,a=e.modulus.byteLength();if(i>a-11)throw new Error("message too long");var n;return r?n=Ci.alloc(a-i-3,255):n=mV(a-i-3),new rm(Ci.concat([Ci.from([0,r?1:2]),n,Ci.alloc(1),t],a))}function mV(e){for(var t=Ci.allocUnsafe(e),r=0,i=Qp(e*2),a=0,n;r<e;)a===i.length&&(i=Qp(e*2),a=0),n=i[a++],n&&(t[r++]=n);return t}var yV=Mc,Pw=_4,Cw=M4,Bw=tm,bV=Lg,wV=Tu,_V=S4,fu=pt.Buffer,MV=function(t,r,i){var a;t.padding?a=t.padding:i?a=1:a=4;var n=yV(t),u=n.modulus.byteLength();if(r.length>u||new Bw(r).cmp(n.modulus)>=0)throw new Error("decryption error");var c;i?c=_V(new Bw(r),n):c=bV(r,n);var d=fu.alloc(u-c.length);if(c=fu.concat([d,c],u),a===4)return SV(n,c);if(a===1)return xV(n,c,i);if(a===3)return c;throw new Error("unknown padding")};function SV(e,t){var r=e.modulus.byteLength(),i=wV("sha1").update(fu.alloc(0)).digest(),a=i.length;if(t[0]!==0)throw new Error("decryption error");var n=t.slice(1,a+1),u=t.slice(a+1),c=Cw(n,Pw(u,a)),d=Cw(u,Pw(c,r-a-1));if(EV(i,d.slice(0,a)))throw new Error("decryption error");for(var m=a;d[m]===0;)m++;if(d[m++]!==1)throw new Error("decryption error");return d.slice(m)}function xV(e,t,r){for(var i=t.slice(0,2),a=2,n=0;t[a++]!==0;)if(a>=t.length){n++;break}var u=t.slice(2,a-1);if((i.toString("hex")!=="0002"&&!r||i.toString("hex")!=="0001"&&r)&&n++,u.length<8&&n++,n)throw new Error("decryption error");return t.slice(a)}function EV(e,t){e=fu.from(e),t=fu.from(t);var r=0,i=e.length;e.length!==t.length&&(r++,i=Math.min(e.length,t.length));for(var a=-1;++a<i;)r+=e[a]^t[a];return r}(function(e){e.publicEncrypt=pV,e.privateDecrypt=MV,e.privateEncrypt=function(r,i){return e.publicEncrypt(r,i,!0)},e.publicDecrypt=function(r,i){return e.privateDecrypt(r,i,!0)}})(w4);var Rf={};function Lw(){throw new Error(`secure random number generation not supported by this browser
-use chrome, FireFox or Internet Explorer 11`)}var x4=pt,Nw=Ds,E4=x4.Buffer,R4=x4.kMaxLength,ev=Ye.crypto||Ye.msCrypto,A4=Math.pow(2,32)-1;function T4(e,t){if(typeof e!="number"||e!==e)throw new TypeError("offset must be a number");if(e>A4||e<0)throw new TypeError("offset must be a uint32");if(e>R4||e>t)throw new RangeError("offset out of range")}function O4(e,t,r){if(typeof e!="number"||e!==e)throw new TypeError("size must be a number");if(e>A4||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>R4)throw new RangeError("buffer too small")}ev&&ev.getRandomValues||!we.browser?(Rf.randomFill=RV,Rf.randomFillSync=AV):(Rf.randomFill=Lw,Rf.randomFillSync=Lw);function RV(e,t,r,i){if(!E4.isBuffer(e)&&!(e instanceof Ye.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof t=="function")i=t,t=0,r=e.length;else if(typeof r=="function")i=r,r=e.length-t;else if(typeof i!="function")throw new TypeError('"cb" argument must be a function');return T4(t,e.length),O4(r,t,e.length),I4(e,t,r,i)}function I4(e,t,r,i){if(we.browser){var a=e.buffer,n=new Uint8Array(a,t,r);if(ev.getRandomValues(n),i){we.nextTick(function(){i(null,e)});return}return e}if(i){Nw(r,function(c,d){if(c)return i(c);d.copy(e,t),i(null,e)});return}var u=Nw(r);return u.copy(e,t),e}function AV(e,t,r){if(typeof t>"u"&&(t=0),!E4.isBuffer(e)&&!(e instanceof Ye.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return T4(t,e.length),r===void 0&&(r=e.length-t),O4(r,t,e.length),I4(e,t,r)}var kw;function P4(){if(kw)return ct;kw=1,ct.randomBytes=ct.rng=ct.pseudoRandomBytes=ct.prng=Ds,ct.createHash=ct.Hash=Tu,ct.createHmac=ct.Hmac=PS;var e=Bj,t=Object.keys(e),r=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(t);ct.getHashes=function(){return r};var i=rc;ct.pbkdf2=i.pbkdf2,ct.pbkdf2Sync=i.pbkdf2Sync;var a=$i;ct.Cipher=a.Cipher,ct.createCipher=a.createCipher,ct.Cipheriv=a.Cipheriv,ct.createCipheriv=a.createCipheriv,ct.Decipher=a.Decipher,ct.createDecipher=a.createDecipher,ct.Decipheriv=a.Decipheriv,ct.createDecipheriv=a.createDecipheriv,ct.getCiphers=a.getCiphers,ct.listCiphers=a.listCiphers;var n=cH();ct.DiffieHellmanGroup=n.DiffieHellmanGroup,ct.createDiffieHellmanGroup=n.createDiffieHellmanGroup,ct.getDiffieHellman=n.getDiffieHellman,ct.createDiffieHellman=n.createDiffieHellman,ct.DiffieHellman=n.DiffieHellman;var u=iV();ct.createSign=u.createSign,ct.Sign=u.Sign,ct.createVerify=u.createVerify,ct.Verify=u.Verify,ct.createECDH=oV();var c=w4;ct.publicEncrypt=c.publicEncrypt,ct.privateEncrypt=c.privateEncrypt,ct.publicDecrypt=c.publicDecrypt,ct.privateDecrypt=c.privateDecrypt;var d=Rf;return ct.randomFill=d.randomFill,ct.randomFillSync=d.randomFillSync,ct.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(`
-`))},ct.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},ct}var TV=P4();const qV=Lo(TV);export{FV as $,Zt as A,nl as B,$p as C,$l as D,o_ as E,FR as F,Lt as G,jV as H,Ii as I,$v as J,Pn as K,wv as L,Rh as M,Mn as N,Dl as O,E_ as P,_2 as Q,M2 as R,CV as S,F5 as T,NV as U,LV as V,BV as W,UR as X,kV as Y,$V as Z,zR as _,mr as a,F8 as a0,K8 as a1,z8 as a2,UV as a3,HV as a4,qV as a5,PV as a6,ke as b,Ye as c,Bs as d,bh as e,Qt as f,ho as g,xh as h,qf as i,tv as j,tt as k,ft as l,j0 as m,vr as n,Ns as o,W8 as p,Je as q,DV as r,l2 as s,lt as t,Cv as u,J0 as v,lr as w,si as x,Pv as y,fi as z};
diff --git a/web/settings/assets/vendor-94ac8c48.js b/web/settings/assets/vendor-94ac8c48.js
new file mode 100644
index 0000000000..6db9d37dbe
--- /dev/null
+++ b/web/settings/assets/vendor-94ac8c48.js
@@ -0,0 +1,100 @@
+import{r as k4}from"./vendor-sortablejs-dbc23470.js";var Ye=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Lo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function tv(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function i(){if(this instanceof i){var a=[null];a.push.apply(a,arguments);var n=Function.bind.apply(t,a);return new n}return t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(i){var a=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(r,i,a.get?a:{enumerable:!0,get:function(){return e[i]}})}),r}var ke={},oh={};oh.byteLength=F4;oh.toByteArray=U4;oh.fromByteArray=W4;var Xi=[],ui=[],$4=typeof Uint8Array<"u"?Uint8Array:Array,Oc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Ca=0,D4=Oc.length;Ca<D4;++Ca)Xi[Ca]=Oc[Ca],ui[Oc.charCodeAt(Ca)]=Ca;ui["-".charCodeAt(0)]=62;ui["_".charCodeAt(0)]=63;function Dw(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var i=r===t?0:4-r%4;return[r,i]}function F4(e){var t=Dw(e),r=t[0],i=t[1];return(r+i)*3/4-i}function j4(e,t,r){return(t+r)*3/4-r}function U4(e){var t,r=Dw(e),i=r[0],a=r[1],n=new $4(j4(e,i,a)),u=0,c=a>0?i-4:i,d;for(d=0;d<c;d+=4)t=ui[e.charCodeAt(d)]<<18|ui[e.charCodeAt(d+1)]<<12|ui[e.charCodeAt(d+2)]<<6|ui[e.charCodeAt(d+3)],n[u++]=t>>16&255,n[u++]=t>>8&255,n[u++]=t&255;return a===2&&(t=ui[e.charCodeAt(d)]<<2|ui[e.charCodeAt(d+1)]>>4,n[u++]=t&255),a===1&&(t=ui[e.charCodeAt(d)]<<10|ui[e.charCodeAt(d+1)]<<4|ui[e.charCodeAt(d+2)]>>2,n[u++]=t>>8&255,n[u++]=t&255),n}function H4(e){return Xi[e>>18&63]+Xi[e>>12&63]+Xi[e>>6&63]+Xi[e&63]}function q4(e,t,r){for(var i,a=[],n=t;n<r;n+=3)i=(e[n]<<16&16711680)+(e[n+1]<<8&65280)+(e[n+2]&255),a.push(H4(i));return a.join("")}function W4(e){for(var t,r=e.length,i=r%3,a=[],n=16383,u=0,c=r-i;u<c;u+=n)a.push(q4(e,u,u+n>c?c:u+n));return i===1?(t=e[r-1],a.push(Xi[t>>2]+Xi[t<<4&63]+"==")):i===2&&(t=(e[r-2]<<8)+e[r-1],a.push(Xi[t>>10]+Xi[t>>4&63]+Xi[t<<2&63]+"=")),a.join("")}var rv={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */rv.read=function(e,t,r,i,a){var n,u,c=a*8-i-1,d=(1<<c)-1,m=d>>1,M=-7,S=r?a-1:0,R=r?-1:1,C=e[t+S];for(S+=R,n=C&(1<<-M)-1,C>>=-M,M+=c;M>0;n=n*256+e[t+S],S+=R,M-=8);for(u=n&(1<<-M)-1,n>>=-M,M+=i;M>0;u=u*256+e[t+S],S+=R,M-=8);if(n===0)n=1-m;else{if(n===d)return u?NaN:(C?-1:1)*(1/0);u=u+Math.pow(2,i),n=n-m}return(C?-1:1)*u*Math.pow(2,n-i)};rv.write=function(e,t,r,i,a,n){var u,c,d,m=n*8-a-1,M=(1<<m)-1,S=M>>1,R=a===23?Math.pow(2,-24)-Math.pow(2,-77):0,C=i?0:n-1,P=i?1:-1,k=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,u=M):(u=Math.floor(Math.log(t)/Math.LN2),t*(d=Math.pow(2,-u))<1&&(u--,d*=2),u+S>=1?t+=R/d:t+=R*Math.pow(2,1-S),t*d>=2&&(u++,d/=2),u+S>=M?(c=0,u=M):u+S>=1?(c=(t*d-1)*Math.pow(2,a),u=u+S):(c=t*Math.pow(2,S-1)*Math.pow(2,a),u=0));a>=8;e[r+C]=c&255,C+=P,c/=256,a-=8);for(u=u<<a|c,m+=a;m>0;e[r+C]=u&255,C+=P,u/=256,m-=8);e[r+C-P]|=k*128};/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author   Feross Aboukhadijeh <https://feross.org>
+ * @license  MIT
+ */(function(e){var t=oh,r=rv,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=c,e.SlowBuffer=B,e.INSPECT_MAX_BYTES=50;var a=2147483647;e.kMaxLength=a,c.TYPED_ARRAY_SUPPORT=n(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function n(){try{var D=new Uint8Array(1),N={foo:function(){return 42}};return Object.setPrototypeOf(N,Uint8Array.prototype),Object.setPrototypeOf(D,N),D.foo()===42}catch{return!1}}Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}});function u(D){if(D>a)throw new RangeError('The value "'+D+'" is invalid for option "size"');var N=new Uint8Array(D);return Object.setPrototypeOf(N,c.prototype),N}function c(D,N,j){if(typeof D=="number"){if(typeof N=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return S(D)}return d(D,N,j)}c.poolSize=8192;function d(D,N,j){if(typeof D=="string")return R(D,N);if(ArrayBuffer.isView(D))return P(D);if(D==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof D);if(O(D,ArrayBuffer)||D&&O(D.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(O(D,SharedArrayBuffer)||D&&O(D.buffer,SharedArrayBuffer)))return k(D,N,j);if(typeof D=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var z=D.valueOf&&D.valueOf();if(z!=null&&z!==D)return c.from(z,N,j);var se=L(D);if(se)return se;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof D[Symbol.toPrimitive]=="function")return c.from(D[Symbol.toPrimitive]("string"),N,j);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof D)}c.from=function(D,N,j){return d(D,N,j)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array);function m(D){if(typeof D!="number")throw new TypeError('"size" argument must be of type number');if(D<0)throw new RangeError('The value "'+D+'" is invalid for option "size"')}function M(D,N,j){return m(D),D<=0?u(D):N!==void 0?typeof j=="string"?u(D).fill(N,j):u(D).fill(N):u(D)}c.alloc=function(D,N,j){return M(D,N,j)};function S(D){return m(D),u(D<0?0:I(D)|0)}c.allocUnsafe=function(D){return S(D)},c.allocUnsafeSlow=function(D){return S(D)};function R(D,N){if((typeof N!="string"||N==="")&&(N="utf8"),!c.isEncoding(N))throw new TypeError("Unknown encoding: "+N);var j=H(D,N)|0,z=u(j),se=z.write(D,N);return se!==j&&(z=z.slice(0,se)),z}function C(D){for(var N=D.length<0?0:I(D.length)|0,j=u(N),z=0;z<N;z+=1)j[z]=D[z]&255;return j}function P(D){if(O(D,Uint8Array)){var N=new Uint8Array(D);return k(N.buffer,N.byteOffset,N.byteLength)}return C(D)}function k(D,N,j){if(N<0||D.byteLength<N)throw new RangeError('"offset" is outside of buffer bounds');if(D.byteLength<N+(j||0))throw new RangeError('"length" is outside of buffer bounds');var z;return N===void 0&&j===void 0?z=new Uint8Array(D):j===void 0?z=new Uint8Array(D,N):z=new Uint8Array(D,N,j),Object.setPrototypeOf(z,c.prototype),z}function L(D){if(c.isBuffer(D)){var N=I(D.length)|0,j=u(N);return j.length===0||D.copy(j,0,0,N),j}if(D.length!==void 0)return typeof D.length!="number"||q(D.length)?u(0):C(D);if(D.type==="Buffer"&&Array.isArray(D.data))return C(D.data)}function I(D){if(D>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return D|0}function B(D){return+D!=D&&(D=0),c.alloc(+D)}c.isBuffer=function(N){return N!=null&&N._isBuffer===!0&&N!==c.prototype},c.compare=function(N,j){if(O(N,Uint8Array)&&(N=c.from(N,N.offset,N.byteLength)),O(j,Uint8Array)&&(j=c.from(j,j.offset,j.byteLength)),!c.isBuffer(N)||!c.isBuffer(j))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(N===j)return 0;for(var z=N.length,se=j.length,te=0,ne=Math.min(z,se);te<ne;++te)if(N[te]!==j[te]){z=N[te],se=j[te];break}return z<se?-1:se<z?1:0},c.isEncoding=function(N){switch(String(N).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(N,j){if(!Array.isArray(N))throw new TypeError('"list" argument must be an Array of Buffers');if(N.length===0)return c.alloc(0);var z;if(j===void 0)for(j=0,z=0;z<N.length;++z)j+=N[z].length;var se=c.allocUnsafe(j),te=0;for(z=0;z<N.length;++z){var ne=N[z];if(O(ne,Uint8Array))te+ne.length>se.length?c.from(ne).copy(se,te):Uint8Array.prototype.set.call(se,ne,te);else if(c.isBuffer(ne))ne.copy(se,te);else throw new TypeError('"list" argument must be an Array of Buffers');te+=ne.length}return se};function H(D,N){if(c.isBuffer(D))return D.length;if(ArrayBuffer.isView(D)||O(D,ArrayBuffer))return D.byteLength;if(typeof D!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof D);var j=D.length,z=arguments.length>2&&arguments[2]===!0;if(!z&&j===0)return 0;for(var se=!1;;)switch(N){case"ascii":case"latin1":case"binary":return j;case"utf8":case"utf-8":return U(D).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j*2;case"hex":return j>>>1;case"base64":return b(D).length;default:if(se)return z?-1:U(D).length;N=(""+N).toLowerCase(),se=!0}}c.byteLength=H;function F(D,N,j){var z=!1;if((N===void 0||N<0)&&(N=0),N>this.length||((j===void 0||j>this.length)&&(j=this.length),j<=0)||(j>>>=0,N>>>=0,j<=N))return"";for(D||(D="utf8");;)switch(D){case"hex":return g(this,N,j);case"utf8":case"utf-8":return l(this,N,j);case"ascii":return w(this,N,j);case"latin1":case"binary":return x(this,N,j);case"base64":return f(this,N,j);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return s(this,N,j);default:if(z)throw new TypeError("Unknown encoding: "+D);D=(D+"").toLowerCase(),z=!0}}c.prototype._isBuffer=!0;function W(D,N,j){var z=D[N];D[N]=D[j],D[j]=z}c.prototype.swap16=function(){var N=this.length;if(N%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var j=0;j<N;j+=2)W(this,j,j+1);return this},c.prototype.swap32=function(){var N=this.length;if(N%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var j=0;j<N;j+=4)W(this,j,j+3),W(this,j+1,j+2);return this},c.prototype.swap64=function(){var N=this.length;if(N%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var j=0;j<N;j+=8)W(this,j,j+7),W(this,j+1,j+6),W(this,j+2,j+5),W(this,j+3,j+4);return this},c.prototype.toString=function(){var N=this.length;return N===0?"":arguments.length===0?l(this,0,N):F.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(N){if(!c.isBuffer(N))throw new TypeError("Argument must be a Buffer");return this===N?!0:c.compare(this,N)===0},c.prototype.inspect=function(){var N="",j=e.INSPECT_MAX_BYTES;return N=this.toString("hex",0,j).replace(/(.{2})/g,"$1 ").trim(),this.length>j&&(N+=" ... "),"<Buffer "+N+">"},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(N,j,z,se,te){if(O(N,Uint8Array)&&(N=c.from(N,N.offset,N.byteLength)),!c.isBuffer(N))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof N);if(j===void 0&&(j=0),z===void 0&&(z=N?N.length:0),se===void 0&&(se=0),te===void 0&&(te=this.length),j<0||z>N.length||se<0||te>this.length)throw new RangeError("out of range index");if(se>=te&&j>=z)return 0;if(se>=te)return-1;if(j>=z)return 1;if(j>>>=0,z>>>=0,se>>>=0,te>>>=0,this===N)return 0;for(var ne=te-se,Ee=z-j,Q=Math.min(ne,Ee),ue=this.slice(se,te),le=N.slice(j,z),ce=0;ce<Q;++ce)if(ue[ce]!==le[ce]){ne=ue[ce],Ee=le[ce];break}return ne<Ee?-1:Ee<ne?1:0};function Y(D,N,j,z,se){if(D.length===0)return-1;if(typeof j=="string"?(z=j,j=0):j>2147483647?j=2147483647:j<-2147483648&&(j=-2147483648),j=+j,q(j)&&(j=se?0:D.length-1),j<0&&(j=D.length+j),j>=D.length){if(se)return-1;j=D.length-1}else if(j<0)if(se)j=0;else return-1;if(typeof N=="string"&&(N=c.from(N,z)),c.isBuffer(N))return N.length===0?-1:ie(D,N,j,z,se);if(typeof N=="number")return N=N&255,typeof Uint8Array.prototype.indexOf=="function"?se?Uint8Array.prototype.indexOf.call(D,N,j):Uint8Array.prototype.lastIndexOf.call(D,N,j):ie(D,[N],j,z,se);throw new TypeError("val must be string, number or Buffer")}function ie(D,N,j,z,se){var te=1,ne=D.length,Ee=N.length;if(z!==void 0&&(z=String(z).toLowerCase(),z==="ucs2"||z==="ucs-2"||z==="utf16le"||z==="utf-16le")){if(D.length<2||N.length<2)return-1;te=2,ne/=2,Ee/=2,j/=2}function Q(de,ae){return te===1?de[ae]:de.readUInt16BE(ae*te)}var ue;if(se){var le=-1;for(ue=j;ue<ne;ue++)if(Q(D,ue)===Q(N,le===-1?0:ue-le)){if(le===-1&&(le=ue),ue-le+1===Ee)return le*te}else le!==-1&&(ue-=ue-le),le=-1}else for(j+Ee>ne&&(j=ne-Ee),ue=j;ue>=0;ue--){for(var ce=!0,pe=0;pe<Ee;pe++)if(Q(D,ue+pe)!==Q(N,pe)){ce=!1;break}if(ce)return ue}return-1}c.prototype.includes=function(N,j,z){return this.indexOf(N,j,z)!==-1},c.prototype.indexOf=function(N,j,z){return Y(this,N,j,z,!0)},c.prototype.lastIndexOf=function(N,j,z){return Y(this,N,j,z,!1)};function J(D,N,j,z){j=Number(j)||0;var se=D.length-j;z?(z=Number(z),z>se&&(z=se)):z=se;var te=N.length;z>te/2&&(z=te/2);for(var ne=0;ne<z;++ne){var Ee=parseInt(N.substr(ne*2,2),16);if(q(Ee))return ne;D[j+ne]=Ee}return ne}function V(D,N,j,z){return y(U(N,D.length-j),D,j,z)}function oe(D,N,j,z){return y(K(N),D,j,z)}function _(D,N,j,z){return y(b(N),D,j,z)}function o(D,N,j,z){return y(Z(N,D.length-j),D,j,z)}c.prototype.write=function(N,j,z,se){if(j===void 0)se="utf8",z=this.length,j=0;else if(z===void 0&&typeof j=="string")se=j,z=this.length,j=0;else if(isFinite(j))j=j>>>0,isFinite(z)?(z=z>>>0,se===void 0&&(se="utf8")):(se=z,z=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var te=this.length-j;if((z===void 0||z>te)&&(z=te),N.length>0&&(z<0||j<0)||j>this.length)throw new RangeError("Attempt to write outside buffer bounds");se||(se="utf8");for(var ne=!1;;)switch(se){case"hex":return J(this,N,j,z);case"utf8":case"utf-8":return V(this,N,j,z);case"ascii":case"latin1":case"binary":return oe(this,N,j,z);case"base64":return _(this,N,j,z);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o(this,N,j,z);default:if(ne)throw new TypeError("Unknown encoding: "+se);se=(""+se).toLowerCase(),ne=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function f(D,N,j){return N===0&&j===D.length?t.fromByteArray(D):t.fromByteArray(D.slice(N,j))}function l(D,N,j){j=Math.min(D.length,j);for(var z=[],se=N;se<j;){var te=D[se],ne=null,Ee=te>239?4:te>223?3:te>191?2:1;if(se+Ee<=j){var Q,ue,le,ce;switch(Ee){case 1:te<128&&(ne=te);break;case 2:Q=D[se+1],(Q&192)===128&&(ce=(te&31)<<6|Q&63,ce>127&&(ne=ce));break;case 3:Q=D[se+1],ue=D[se+2],(Q&192)===128&&(ue&192)===128&&(ce=(te&15)<<12|(Q&63)<<6|ue&63,ce>2047&&(ce<55296||ce>57343)&&(ne=ce));break;case 4:Q=D[se+1],ue=D[se+2],le=D[se+3],(Q&192)===128&&(ue&192)===128&&(le&192)===128&&(ce=(te&15)<<18|(Q&63)<<12|(ue&63)<<6|le&63,ce>65535&&ce<1114112&&(ne=ce))}}ne===null?(ne=65533,Ee=1):ne>65535&&(ne-=65536,z.push(ne>>>10&1023|55296),ne=56320|ne&1023),z.push(ne),se+=Ee}return p(z)}var h=4096;function p(D){var N=D.length;if(N<=h)return String.fromCharCode.apply(String,D);for(var j="",z=0;z<N;)j+=String.fromCharCode.apply(String,D.slice(z,z+=h));return j}function w(D,N,j){var z="";j=Math.min(D.length,j);for(var se=N;se<j;++se)z+=String.fromCharCode(D[se]&127);return z}function x(D,N,j){var z="";j=Math.min(D.length,j);for(var se=N;se<j;++se)z+=String.fromCharCode(D[se]);return z}function g(D,N,j){var z=D.length;(!N||N<0)&&(N=0),(!j||j<0||j>z)&&(j=z);for(var se="",te=N;te<j;++te)se+=X[D[te]];return se}function s(D,N,j){for(var z=D.slice(N,j),se="",te=0;te<z.length-1;te+=2)se+=String.fromCharCode(z[te]+z[te+1]*256);return se}c.prototype.slice=function(N,j){var z=this.length;N=~~N,j=j===void 0?z:~~j,N<0?(N+=z,N<0&&(N=0)):N>z&&(N=z),j<0?(j+=z,j<0&&(j=0)):j>z&&(j=z),j<N&&(j=N);var se=this.subarray(N,j);return Object.setPrototypeOf(se,c.prototype),se};function v(D,N,j){if(D%1!==0||D<0)throw new RangeError("offset is not uint");if(D+N>j)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUintLE=c.prototype.readUIntLE=function(N,j,z){N=N>>>0,j=j>>>0,z||v(N,j,this.length);for(var se=this[N],te=1,ne=0;++ne<j&&(te*=256);)se+=this[N+ne]*te;return se},c.prototype.readUintBE=c.prototype.readUIntBE=function(N,j,z){N=N>>>0,j=j>>>0,z||v(N,j,this.length);for(var se=this[N+--j],te=1;j>0&&(te*=256);)se+=this[N+--j]*te;return se},c.prototype.readUint8=c.prototype.readUInt8=function(N,j){return N=N>>>0,j||v(N,1,this.length),this[N]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(N,j){return N=N>>>0,j||v(N,2,this.length),this[N]|this[N+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(N,j){return N=N>>>0,j||v(N,2,this.length),this[N]<<8|this[N+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(N,j){return N=N>>>0,j||v(N,4,this.length),(this[N]|this[N+1]<<8|this[N+2]<<16)+this[N+3]*16777216},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(N,j){return N=N>>>0,j||v(N,4,this.length),this[N]*16777216+(this[N+1]<<16|this[N+2]<<8|this[N+3])},c.prototype.readIntLE=function(N,j,z){N=N>>>0,j=j>>>0,z||v(N,j,this.length);for(var se=this[N],te=1,ne=0;++ne<j&&(te*=256);)se+=this[N+ne]*te;return te*=128,se>=te&&(se-=Math.pow(2,8*j)),se},c.prototype.readIntBE=function(N,j,z){N=N>>>0,j=j>>>0,z||v(N,j,this.length);for(var se=j,te=1,ne=this[N+--se];se>0&&(te*=256);)ne+=this[N+--se]*te;return te*=128,ne>=te&&(ne-=Math.pow(2,8*j)),ne},c.prototype.readInt8=function(N,j){return N=N>>>0,j||v(N,1,this.length),this[N]&128?(255-this[N]+1)*-1:this[N]},c.prototype.readInt16LE=function(N,j){N=N>>>0,j||v(N,2,this.length);var z=this[N]|this[N+1]<<8;return z&32768?z|4294901760:z},c.prototype.readInt16BE=function(N,j){N=N>>>0,j||v(N,2,this.length);var z=this[N+1]|this[N]<<8;return z&32768?z|4294901760:z},c.prototype.readInt32LE=function(N,j){return N=N>>>0,j||v(N,4,this.length),this[N]|this[N+1]<<8|this[N+2]<<16|this[N+3]<<24},c.prototype.readInt32BE=function(N,j){return N=N>>>0,j||v(N,4,this.length),this[N]<<24|this[N+1]<<16|this[N+2]<<8|this[N+3]},c.prototype.readFloatLE=function(N,j){return N=N>>>0,j||v(N,4,this.length),r.read(this,N,!0,23,4)},c.prototype.readFloatBE=function(N,j){return N=N>>>0,j||v(N,4,this.length),r.read(this,N,!1,23,4)},c.prototype.readDoubleLE=function(N,j){return N=N>>>0,j||v(N,8,this.length),r.read(this,N,!0,52,8)},c.prototype.readDoubleBE=function(N,j){return N=N>>>0,j||v(N,8,this.length),r.read(this,N,!1,52,8)};function T(D,N,j,z,se,te){if(!c.isBuffer(D))throw new TypeError('"buffer" argument must be a Buffer instance');if(N>se||N<te)throw new RangeError('"value" argument is out of bounds');if(j+z>D.length)throw new RangeError("Index out of range")}c.prototype.writeUintLE=c.prototype.writeUIntLE=function(N,j,z,se){if(N=+N,j=j>>>0,z=z>>>0,!se){var te=Math.pow(2,8*z)-1;T(this,N,j,z,te,0)}var ne=1,Ee=0;for(this[j]=N&255;++Ee<z&&(ne*=256);)this[j+Ee]=N/ne&255;return j+z},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(N,j,z,se){if(N=+N,j=j>>>0,z=z>>>0,!se){var te=Math.pow(2,8*z)-1;T(this,N,j,z,te,0)}var ne=z-1,Ee=1;for(this[j+ne]=N&255;--ne>=0&&(Ee*=256);)this[j+ne]=N/Ee&255;return j+z},c.prototype.writeUint8=c.prototype.writeUInt8=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,1,255,0),this[j]=N&255,j+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,2,65535,0),this[j]=N&255,this[j+1]=N>>>8,j+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,2,65535,0),this[j]=N>>>8,this[j+1]=N&255,j+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,4,4294967295,0),this[j+3]=N>>>24,this[j+2]=N>>>16,this[j+1]=N>>>8,this[j]=N&255,j+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,4,4294967295,0),this[j]=N>>>24,this[j+1]=N>>>16,this[j+2]=N>>>8,this[j+3]=N&255,j+4},c.prototype.writeIntLE=function(N,j,z,se){if(N=+N,j=j>>>0,!se){var te=Math.pow(2,8*z-1);T(this,N,j,z,te-1,-te)}var ne=0,Ee=1,Q=0;for(this[j]=N&255;++ne<z&&(Ee*=256);)N<0&&Q===0&&this[j+ne-1]!==0&&(Q=1),this[j+ne]=(N/Ee>>0)-Q&255;return j+z},c.prototype.writeIntBE=function(N,j,z,se){if(N=+N,j=j>>>0,!se){var te=Math.pow(2,8*z-1);T(this,N,j,z,te-1,-te)}var ne=z-1,Ee=1,Q=0;for(this[j+ne]=N&255;--ne>=0&&(Ee*=256);)N<0&&Q===0&&this[j+ne+1]!==0&&(Q=1),this[j+ne]=(N/Ee>>0)-Q&255;return j+z},c.prototype.writeInt8=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,1,127,-128),N<0&&(N=255+N+1),this[j]=N&255,j+1},c.prototype.writeInt16LE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,2,32767,-32768),this[j]=N&255,this[j+1]=N>>>8,j+2},c.prototype.writeInt16BE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,2,32767,-32768),this[j]=N>>>8,this[j+1]=N&255,j+2},c.prototype.writeInt32LE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,4,2147483647,-2147483648),this[j]=N&255,this[j+1]=N>>>8,this[j+2]=N>>>16,this[j+3]=N>>>24,j+4},c.prototype.writeInt32BE=function(N,j,z){return N=+N,j=j>>>0,z||T(this,N,j,4,2147483647,-2147483648),N<0&&(N=4294967295+N+1),this[j]=N>>>24,this[j+1]=N>>>16,this[j+2]=N>>>8,this[j+3]=N&255,j+4};function $(D,N,j,z,se,te){if(j+z>D.length)throw new RangeError("Index out of range");if(j<0)throw new RangeError("Index out of range")}function G(D,N,j,z,se){return N=+N,j=j>>>0,se||$(D,N,j,4),r.write(D,N,j,z,23,4),j+4}c.prototype.writeFloatLE=function(N,j,z){return G(this,N,j,!0,z)},c.prototype.writeFloatBE=function(N,j,z){return G(this,N,j,!1,z)};function ee(D,N,j,z,se){return N=+N,j=j>>>0,se||$(D,N,j,8),r.write(D,N,j,z,52,8),j+8}c.prototype.writeDoubleLE=function(N,j,z){return ee(this,N,j,!0,z)},c.prototype.writeDoubleBE=function(N,j,z){return ee(this,N,j,!1,z)},c.prototype.copy=function(N,j,z,se){if(!c.isBuffer(N))throw new TypeError("argument should be a Buffer");if(z||(z=0),!se&&se!==0&&(se=this.length),j>=N.length&&(j=N.length),j||(j=0),se>0&&se<z&&(se=z),se===z||N.length===0||this.length===0)return 0;if(j<0)throw new RangeError("targetStart out of bounds");if(z<0||z>=this.length)throw new RangeError("Index out of range");if(se<0)throw new RangeError("sourceEnd out of bounds");se>this.length&&(se=this.length),N.length-j<se-z&&(se=N.length-j+z);var te=se-z;return this===N&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(j,z,se):Uint8Array.prototype.set.call(N,this.subarray(z,se),j),te},c.prototype.fill=function(N,j,z,se){if(typeof N=="string"){if(typeof j=="string"?(se=j,j=0,z=this.length):typeof z=="string"&&(se=z,z=this.length),se!==void 0&&typeof se!="string")throw new TypeError("encoding must be a string");if(typeof se=="string"&&!c.isEncoding(se))throw new TypeError("Unknown encoding: "+se);if(N.length===1){var te=N.charCodeAt(0);(se==="utf8"&&te<128||se==="latin1")&&(N=te)}}else typeof N=="number"?N=N&255:typeof N=="boolean"&&(N=Number(N));if(j<0||this.length<j||this.length<z)throw new RangeError("Out of range index");if(z<=j)return this;j=j>>>0,z=z===void 0?this.length:z>>>0,N||(N=0);var ne;if(typeof N=="number")for(ne=j;ne<z;++ne)this[ne]=N;else{var Ee=c.isBuffer(N)?N:c.from(N,se),Q=Ee.length;if(Q===0)throw new TypeError('The value "'+N+'" is invalid for argument "value"');for(ne=0;ne<z-j;++ne)this[ne+j]=Ee[ne%Q]}return this};var A=/[^+/0-9A-Za-z-_]/g;function E(D){if(D=D.split("=")[0],D=D.trim().replace(A,""),D.length<2)return"";for(;D.length%4!==0;)D=D+"=";return D}function U(D,N){N=N||1/0;for(var j,z=D.length,se=null,te=[],ne=0;ne<z;++ne){if(j=D.charCodeAt(ne),j>55295&&j<57344){if(!se){if(j>56319){(N-=3)>-1&&te.push(239,191,189);continue}else if(ne+1===z){(N-=3)>-1&&te.push(239,191,189);continue}se=j;continue}if(j<56320){(N-=3)>-1&&te.push(239,191,189),se=j;continue}j=(se-55296<<10|j-56320)+65536}else se&&(N-=3)>-1&&te.push(239,191,189);if(se=null,j<128){if((N-=1)<0)break;te.push(j)}else if(j<2048){if((N-=2)<0)break;te.push(j>>6|192,j&63|128)}else if(j<65536){if((N-=3)<0)break;te.push(j>>12|224,j>>6&63|128,j&63|128)}else if(j<1114112){if((N-=4)<0)break;te.push(j>>18|240,j>>12&63|128,j>>6&63|128,j&63|128)}else throw new Error("Invalid code point")}return te}function K(D){for(var N=[],j=0;j<D.length;++j)N.push(D.charCodeAt(j)&255);return N}function Z(D,N){for(var j,z,se,te=[],ne=0;ne<D.length&&!((N-=2)<0);++ne)j=D.charCodeAt(ne),z=j>>8,se=j%256,te.push(se),te.push(z);return te}function b(D){return t.toByteArray(E(D))}function y(D,N,j,z){for(var se=0;se<z&&!(se+j>=N.length||se>=D.length);++se)N[se+j]=D[se];return se}function O(D,N){return D instanceof N||D!=null&&D.constructor!=null&&D.constructor.name!=null&&D.constructor.name===N.name}function q(D){return D!==D}var X=function(){for(var D="0123456789abcdef",N=new Array(256),j=0;j<16;++j)for(var z=j*16,se=0;se<16;++se)N[z+se]=D[j]+D[se];return N}()})(ke);var Fw={exports:{}},ir=Fw.exports={},Gi,Yi;function C0(){throw new Error("setTimeout has not been defined")}function B0(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Gi=setTimeout:Gi=C0}catch{Gi=C0}try{typeof clearTimeout=="function"?Yi=clearTimeout:Yi=B0}catch{Yi=B0}})();function jw(e){if(Gi===setTimeout)return setTimeout(e,0);if((Gi===C0||!Gi)&&setTimeout)return Gi=setTimeout,setTimeout(e,0);try{return Gi(e,0)}catch{try{return Gi.call(null,e,0)}catch{return Gi.call(this,e,0)}}}function K4(e){if(Yi===clearTimeout)return clearTimeout(e);if((Yi===B0||!Yi)&&clearTimeout)return Yi=clearTimeout,clearTimeout(e);try{return Yi(e)}catch{try{return Yi.call(null,e)}catch{return Yi.call(this,e)}}}var In=[],za=!1,Go,il=-1;function V4(){!za||!Go||(za=!1,Go.length?In=Go.concat(In):il=-1,In.length&&Uw())}function Uw(){if(!za){var e=jw(V4);za=!0;for(var t=In.length;t;){for(Go=In,In=[];++il<t;)Go&&Go[il].run();il=-1,t=In.length}Go=null,za=!1,K4(e)}}ir.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];In.push(new Hw(e,t)),In.length===1&&!za&&jw(Uw)};function Hw(e,t){this.fun=e,this.array=t}Hw.prototype.run=function(){this.fun.apply(null,this.array)};ir.title="browser";ir.browser=!0;ir.env={};ir.argv=[];ir.version="";ir.versions={};function Wn(){}ir.on=Wn;ir.addListener=Wn;ir.once=Wn;ir.off=Wn;ir.removeListener=Wn;ir.removeAllListeners=Wn;ir.emit=Wn;ir.prependListener=Wn;ir.prependOnceListener=Wn;ir.listeners=function(e){return[]};ir.binding=function(e){throw new Error("process.binding is not supported")};ir.cwd=function(){return"/"};ir.chdir=function(e){throw new Error("process.chdir is not supported")};ir.umask=function(){return 0};var z4=Fw.exports;const we=Lo(z4);var G4=function(e){function t(){var i=this||self;return delete e.prototype.__magic__,i}if(typeof globalThis=="object")return globalThis;if(this)return t();e.defineProperty(e.prototype,"__magic__",{configurable:!0,get:t});var r=__magic__;return r}(Object),om=G4;const ho=typeof om<"u"?om:typeof self<"u"?self:typeof window<"u"?window:{};function Kn(e,t){const r=Object.create(null),i=e.split(",");for(let a=0;a<i.length;a++)r[i[a]]=!0;return t?a=>!!r[a.toLowerCase()]:a=>!!r[a]}const $t=Object.freeze({}),Ga=Object.freeze([]),qr=()=>{},qw=()=>!1,Y4=/^on[^a-z]/,Ps=e=>Y4.test(e),xl=e=>e.startsWith("onUpdate:"),Pt=Object.assign,iv=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},Z4=Object.prototype.hasOwnProperty,wt=(e,t)=>Z4.call(e,t),ze=Array.isArray,Qo=e=>Cs(e)==="[object Map]",ga=e=>Cs(e)==="[object Set]",am=e=>Cs(e)==="[object Date]",X4=e=>Cs(e)==="[object RegExp]",Qe=e=>typeof e=="function",Vt=e=>typeof e=="string",Uf=e=>typeof e=="symbol",Rt=e=>e!==null&&typeof e=="object",ah=e=>Rt(e)&&Qe(e.then)&&Qe(e.catch),Ww=Object.prototype.toString,Cs=e=>Ww.call(e),nv=e=>Cs(e).slice(8,-1),Kw=e=>Cs(e)==="[object Object]",ov=e=>Vt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Af=Kn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),J4=Kn("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),sh=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},Q4=/-(\w)/g,Kr=sh(e=>e.replace(Q4,(t,r)=>r?r.toUpperCase():"")),eE=/\B([A-Z])/g,Hr=sh(e=>e.replace(eE,"-$1").toLowerCase()),_o=sh(e=>e.charAt(0).toUpperCase()+e.slice(1)),xn=sh(e=>e?`on${_o(e)}`:""),as=(e,t)=>!Object.is(e,t),so=(e,t)=>{for(let r=0;r<e.length;r++)e[r](t)},El=(e,t,r)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},Rl=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Al=e=>{const t=Vt(e)?Number(e):NaN;return isNaN(t)?e:t};let sm;const Tl=()=>sm||(sm=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof ho<"u"?ho:{}),tE="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console",rE=Kn(tE);function Pn(e){if(ze(e)){const t={};for(let r=0;r<e.length;r++){const i=e[r],a=Vt(i)?aE(i):Pn(i);if(a)for(const n in a)t[n]=a[n]}return t}else{if(Vt(e))return e;if(Rt(e))return e}}const iE=/;(?![^(]*\))/g,nE=/:([^]+)/,oE=/\/\*[^]*?\*\//g;function aE(e){const t={};return e.replace(oE,"").split(iE).forEach(r=>{if(r){const i=r.split(nE);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function vr(e){let t="";if(Vt(e))t=e;else if(ze(e))for(let r=0;r<e.length;r++){const i=vr(e[r]);i&&(t+=i+" ")}else if(Rt(e))for(const r in e)e[r]&&(t+=r+" ");return t.trim()}function sE(e){if(!e)return null;let{class:t,style:r}=e;return t&&!Vt(t)&&(e.class=vr(t)),r&&(e.style=Pn(r)),e}const fE="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",uE="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",lE=Kn(fE),hE=Kn(uE),cE="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",dE=Kn(cE);function Vw(e){return!!e||e===""}function pE(e,t){if(e.length!==t.length)return!1;let r=!0;for(let i=0;r&&i<e.length;i++)r=Mo(e[i],t[i]);return r}function Mo(e,t){if(e===t)return!0;let r=am(e),i=am(t);if(r||i)return r&&i?e.getTime()===t.getTime():!1;if(r=Uf(e),i=Uf(t),r||i)return e===t;if(r=ze(e),i=ze(t),r||i)return r&&i?pE(e,t):!1;if(r=Rt(e),i=Rt(t),r||i){if(!r||!i)return!1;const a=Object.keys(e).length,n=Object.keys(t).length;if(a!==n)return!1;for(const u in e){const c=e.hasOwnProperty(u),d=t.hasOwnProperty(u);if(c&&!d||!c&&d||!Mo(e[u],t[u]))return!1}}return String(e)===String(t)}function fh(e,t){return e.findIndex(r=>Mo(r,t))}const si=e=>Vt(e)?e:e==null?"":ze(e)||Rt(e)&&(e.toString===Ww||!Qe(e.toString))?JSON.stringify(e,zw,2):String(e),zw=(e,t)=>t&&t.__v_isRef?zw(e,t.value):Qo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[i,a])=>(r[`${i} =>`]=a,r),{})}:ga(t)?{[`Set(${t.size})`]:[...t.values()]}:Rt(t)&&!ze(t)&&!Kw(t)?String(t):t;function Ol(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let Yr;class av{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Yr,!t&&Yr&&(this.index=(Yr.scopes||(Yr.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Yr;try{return Yr=this,t()}finally{Yr=r}}else Ol("cannot run an inactive effect scope.")}on(){Yr=this}off(){Yr=this.parent}stop(t){if(this._active){let r,i;for(r=0,i=this.effects.length;r<i;r++)this.effects[r].stop();for(r=0,i=this.cleanups.length;r<i;r++)this.cleanups[r]();if(this.scopes)for(r=0,i=this.scopes.length;r<i;r++)this.scopes[r].stop(!0);if(!this.detached&&this.parent&&!t){const a=this.parent.scopes.pop();a&&a!==this&&(this.parent.scopes[this.index]=a,a.index=this.index)}this.parent=void 0,this._active=!1}}}function Gw(e){return new av(e)}function Yw(e,t=Yr){t&&t.active&&t.effects.push(e)}function Zw(){return Yr}function vE(e){Yr?Yr.cleanups.push(e):Ol("onScopeDispose() is called when there is no active effect scope to be associated with.")}const sv=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Xw=e=>(e.w&So)>0,Jw=e=>(e.n&So)>0,gE=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=So},mE=e=>{const{deps:t}=e;if(t.length){let r=0;for(let i=0;i<t.length;i++){const a=t[i];Xw(a)&&!Jw(a)?a.delete(e):t[r++]=a,a.w&=~So,a.n&=~So}t.length=r}},Il=new WeakMap;let bf=0,So=1;const L0=30;let Br;const ea=Symbol("iterate"),N0=Symbol("Map key iterate");class uu{constructor(t,r=null,i){this.fn=t,this.scheduler=r,this.active=!0,this.deps=[],this.parent=void 0,Yw(this,i)}run(){if(!this.active)return this.fn();let t=Br,r=co;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=Br,Br=this,co=!0,So=1<<++bf,bf<=L0?gE(this):fm(this),this.fn()}finally{bf<=L0&&mE(this),So=1<<--bf,Br=this.parent,co=r,this.parent=void 0,this.deferStop&&this.stop()}}stop(){Br===this?this.deferStop=!0:this.active&&(fm(this),this.onStop&&this.onStop(),this.active=!1)}}function fm(e){const{deps:t}=e;if(t.length){for(let r=0;r<t.length;r++)t[r].delete(e);t.length=0}}function yE(e,t){e.effect&&(e=e.effect.fn);const r=new uu(e);t&&(Pt(r,t),t.scope&&Yw(r,t.scope)),(!t||!t.lazy)&&r.run();const i=r.run.bind(r);return i.effect=r,i}function bE(e){e.effect.stop()}let co=!0;const Qw=[];function ma(){Qw.push(co),co=!1}function ya(){const e=Qw.pop();co=e===void 0?!0:e}function Tr(e,t,r){if(co&&Br){let i=Il.get(e);i||Il.set(e,i=new Map);let a=i.get(r);a||i.set(r,a=sv()),e2(a,{effect:Br,target:e,type:t,key:r})}}function e2(e,t){let r=!1;bf<=L0?Jw(e)||(e.n|=So,r=!Xw(e)):r=!e.has(Br),r&&(e.add(Br),Br.deps.push(e),Br.onTrack&&Br.onTrack(Pt({effect:Br},t)))}function an(e,t,r,i,a,n){const u=Il.get(e);if(!u)return;let c=[];if(t==="clear")c=[...u.values()];else if(r==="length"&&ze(e)){const m=Number(i);u.forEach((M,S)=>{(S==="length"||S>=m)&&c.push(M)})}else switch(r!==void 0&&c.push(u.get(r)),t){case"add":ze(e)?ov(r)&&c.push(u.get("length")):(c.push(u.get(ea)),Qo(e)&&c.push(u.get(N0)));break;case"delete":ze(e)||(c.push(u.get(ea)),Qo(e)&&c.push(u.get(N0)));break;case"set":Qo(e)&&c.push(u.get(ea));break}const d={target:e,type:t,key:r,newValue:i,oldValue:a,oldTarget:n};if(c.length===1)c[0]&&k0(c[0],d);else{const m=[];for(const M of c)M&&m.push(...M);k0(sv(m),d)}}function k0(e,t){const r=ze(e)?e:[...e];for(const i of r)i.computed&&um(i,t);for(const i of r)i.computed||um(i,t)}function um(e,t){(e!==Br||e.allowRecurse)&&(e.onTrigger&&e.onTrigger(Pt({effect:e},t)),e.scheduler?e.scheduler():e.run())}function wE(e,t){var r;return(r=Il.get(e))==null?void 0:r.get(t)}const _E=Kn("__proto__,__v_isRef,__isVue"),t2=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Uf)),ME=uh(),SE=uh(!1,!0),xE=uh(!0),EE=uh(!0,!0),lm=RE();function RE(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const i=lt(this);for(let n=0,u=this.length;n<u;n++)Tr(i,"get",n+"");const a=i[t](...r);return a===-1||a===!1?i[t](...r.map(lt)):a}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...r){ma();const i=lt(this)[t].apply(this,r);return ya(),i}}),e}function AE(e){const t=lt(this);return Tr(t,"has",e),t.hasOwnProperty(e)}function uh(e=!1,t=!1){return function(i,a,n){if(a==="__v_isReactive")return!e;if(a==="__v_isReadonly")return e;if(a==="__v_isShallow")return t;if(a==="__v_raw"&&n===(e?t?u2:f2:t?s2:a2).get(i))return i;const u=ze(i);if(!e){if(u&&wt(lm,a))return Reflect.get(lm,a,n);if(a==="hasOwnProperty")return AE}const c=Reflect.get(i,a,n);return(Uf(a)?t2.has(a):_E(a))||(e||Tr(i,"get",a),t)?c:Xt(c)?u&&ov(a)?c:c.value:Rt(c)?e?uv(c):No(c):c}}const TE=r2(),OE=r2(!0);function r2(e=!1){return function(r,i,a,n){let u=r[i];if(Ln(u)&&Xt(u)&&!Xt(a))return!1;if(!e&&(!Hf(a)&&!Ln(a)&&(u=lt(u),a=lt(a)),!ze(r)&&Xt(u)&&!Xt(a)))return u.value=a,!0;const c=ze(r)&&ov(i)?Number(i)<r.length:wt(r,i),d=Reflect.set(r,i,a,n);return r===lt(n)&&(c?as(a,u)&&an(r,"set",i,a,u):an(r,"add",i,a)),d}}function IE(e,t){const r=wt(e,t),i=e[t],a=Reflect.deleteProperty(e,t);return a&&r&&an(e,"delete",t,void 0,i),a}function PE(e,t){const r=Reflect.has(e,t);return(!Uf(t)||!t2.has(t))&&Tr(e,"has",t),r}function CE(e){return Tr(e,"iterate",ze(e)?"length":ea),Reflect.ownKeys(e)}const i2={get:ME,set:TE,deleteProperty:IE,has:PE,ownKeys:CE},n2={get:xE,set(e,t){return Ol(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0},deleteProperty(e,t){return Ol(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}},BE=Pt({},i2,{get:SE,set:OE}),LE=Pt({},n2,{get:EE}),fv=e=>e,lh=e=>Reflect.getPrototypeOf(e);function Du(e,t,r=!1,i=!1){e=e.__v_raw;const a=lt(e),n=lt(t);r||(t!==n&&Tr(a,"get",t),Tr(a,"get",n));const{has:u}=lh(a),c=i?fv:r?hv:Wf;if(u.call(a,t))return c(e.get(t));if(u.call(a,n))return c(e.get(n));e!==a&&e.get(t)}function Fu(e,t=!1){const r=this.__v_raw,i=lt(r),a=lt(e);return t||(e!==a&&Tr(i,"has",e),Tr(i,"has",a)),e===a?r.has(e):r.has(e)||r.has(a)}function ju(e,t=!1){return e=e.__v_raw,!t&&Tr(lt(e),"iterate",ea),Reflect.get(e,"size",e)}function hm(e){e=lt(e);const t=lt(this);return lh(t).has.call(t,e)||(t.add(e),an(t,"add",e,e)),this}function cm(e,t){t=lt(t);const r=lt(this),{has:i,get:a}=lh(r);let n=i.call(r,e);n?o2(r,i,e):(e=lt(e),n=i.call(r,e));const u=a.call(r,e);return r.set(e,t),n?as(t,u)&&an(r,"set",e,t,u):an(r,"add",e,t),this}function dm(e){const t=lt(this),{has:r,get:i}=lh(t);let a=r.call(t,e);a?o2(t,r,e):(e=lt(e),a=r.call(t,e));const n=i?i.call(t,e):void 0,u=t.delete(e);return a&&an(t,"delete",e,void 0,n),u}function pm(){const e=lt(this),t=e.size!==0,r=Qo(e)?new Map(e):new Set(e),i=e.clear();return t&&an(e,"clear",void 0,void 0,r),i}function Uu(e,t){return function(i,a){const n=this,u=n.__v_raw,c=lt(u),d=t?fv:e?hv:Wf;return!e&&Tr(c,"iterate",ea),u.forEach((m,M)=>i.call(a,d(m),d(M),n))}}function Hu(e,t,r){return function(...i){const a=this.__v_raw,n=lt(a),u=Qo(n),c=e==="entries"||e===Symbol.iterator&&u,d=e==="keys"&&u,m=a[e](...i),M=r?fv:t?hv:Wf;return!t&&Tr(n,"iterate",d?N0:ea),{next(){const{value:S,done:R}=m.next();return R?{value:S,done:R}:{value:c?[M(S[0]),M(S[1])]:M(S),done:R}},[Symbol.iterator](){return this}}}}function Xn(e){return function(...t){{const r=t[0]?`on key "${t[0]}" `:"";console.warn(`${_o(e)} operation ${r}failed: target is readonly.`,lt(this))}return e==="delete"?!1:this}}function NE(){const e={get(n){return Du(this,n)},get size(){return ju(this)},has:Fu,add:hm,set:cm,delete:dm,clear:pm,forEach:Uu(!1,!1)},t={get(n){return Du(this,n,!1,!0)},get size(){return ju(this)},has:Fu,add:hm,set:cm,delete:dm,clear:pm,forEach:Uu(!1,!0)},r={get(n){return Du(this,n,!0)},get size(){return ju(this,!0)},has(n){return Fu.call(this,n,!0)},add:Xn("add"),set:Xn("set"),delete:Xn("delete"),clear:Xn("clear"),forEach:Uu(!0,!1)},i={get(n){return Du(this,n,!0,!0)},get size(){return ju(this,!0)},has(n){return Fu.call(this,n,!0)},add:Xn("add"),set:Xn("set"),delete:Xn("delete"),clear:Xn("clear"),forEach:Uu(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(n=>{e[n]=Hu(n,!1,!1),r[n]=Hu(n,!0,!1),t[n]=Hu(n,!1,!0),i[n]=Hu(n,!0,!0)}),[e,r,t,i]}const[kE,$E,DE,FE]=NE();function hh(e,t){const r=t?e?FE:DE:e?$E:kE;return(i,a,n)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?i:Reflect.get(wt(r,a)&&a in i?r:i,a,n)}const jE={get:hh(!1,!1)},UE={get:hh(!1,!0)},HE={get:hh(!0,!1)},qE={get:hh(!0,!0)};function o2(e,t,r){const i=lt(r);if(i!==r&&t.call(e,i)){const a=nv(e);console.warn(`Reactive ${a} contains both the raw and reactive versions of the same object${a==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const a2=new WeakMap,s2=new WeakMap,f2=new WeakMap,u2=new WeakMap;function WE(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function KE(e){return e.__v_skip||!Object.isExtensible(e)?0:WE(nv(e))}function No(e){return Ln(e)?e:ch(e,!1,i2,jE,a2)}function l2(e){return ch(e,!1,BE,UE,s2)}function uv(e){return ch(e,!0,n2,HE,f2)}function Wa(e){return ch(e,!0,LE,qE,u2)}function ch(e,t,r,i,a){if(!Rt(e))return console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const n=a.get(e);if(n)return n;const u=KE(e);if(u===0)return e;const c=new Proxy(e,u===2?i:r);return a.set(e,c),c}function po(e){return Ln(e)?po(e.__v_raw):!!(e&&e.__v_isReactive)}function Ln(e){return!!(e&&e.__v_isReadonly)}function Hf(e){return!!(e&&e.__v_isShallow)}function qf(e){return po(e)||Ln(e)}function lt(e){const t=e&&e.__v_raw;return t?lt(t):e}function lv(e){return El(e,"__v_skip",!0),e}const Wf=e=>Rt(e)?No(e):e,hv=e=>Rt(e)?uv(e):e;function cv(e){co&&Br&&(e=lt(e),e2(e.dep||(e.dep=sv()),{target:e,type:"get",key:"value"}))}function dh(e,t){e=lt(e);const r=e.dep;r&&k0(r,{target:e,type:"set",key:"value",newValue:t})}function Xt(e){return!!(e&&e.__v_isRef===!0)}function mr(e){return c2(e,!1)}function h2(e){return c2(e,!0)}function c2(e,t){return Xt(e)?e:new VE(e,t)}class VE{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:lt(t),this._value=r?t:Wf(t)}get value(){return cv(this),this._value}set value(t){const r=this.__v_isShallow||Hf(t)||Ln(t);t=r?t:lt(t),as(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:Wf(t),dh(this,t))}}function zE(e){dh(e,e.value)}function vo(e){return Xt(e)?e.value:e}function GE(e){return Qe(e)?e():vo(e)}const YE={get:(e,t,r)=>vo(Reflect.get(e,t,r)),set:(e,t,r,i)=>{const a=e[t];return Xt(a)&&!Xt(r)?(a.value=r,!0):Reflect.set(e,t,r,i)}};function dv(e){return po(e)?e:new Proxy(e,YE)}class ZE{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:r,set:i}=t(()=>cv(this),()=>dh(this));this._get=r,this._set=i}get value(){return this._get()}set value(t){this._set(t)}}function XE(e){return new ZE(e)}function JE(e){qf(e)||console.warn("toRefs() expects a reactive object but received a plain one.");const t=ze(e)?new Array(e.length):{};for(const r in e)t[r]=d2(e,r);return t}class QE{constructor(t,r,i){this._object=t,this._key=r,this._defaultValue=i,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return wE(lt(this._object),this._key)}}class e8{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function t8(e,t,r){return Xt(e)?e:Qe(e)?new e8(e):Rt(e)&&arguments.length>1?d2(e,t,r):mr(e)}function d2(e,t,r){const i=e[t];return Xt(i)?i:new QE(e,t,r)}class r8{constructor(t,r,i,a){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new uu(t,()=>{this._dirty||(this._dirty=!0,dh(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!a,this.__v_isReadonly=i}get value(){const t=lt(this);return cv(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function i8(e,t,r=!1){let i,a;const n=Qe(e);n?(i=e,a=()=>{console.warn("Write operation failed: computed value is readonly")}):(i=e.get,a=e.set);const u=new r8(i,a,n||!a,r);return t&&!r&&(u.effect.onTrack=t.onTrack,u.effect.onTrigger=t.onTrigger),u}const ta=[];function Tf(e){ta.push(e)}function Of(){ta.pop()}function Ue(e,...t){ma();const r=ta.length?ta[ta.length-1].component:null,i=r&&r.appContext.config.warnHandler,a=n8();if(i)en(i,r,11,[e+t.join(""),r&&r.proxy,a.map(({vnode:n})=>`at <${xh(r,n.type)}>`).join(`
+`),a]);else{const n=[`[Vue warn]: ${e}`,...t];a.length&&n.push(`
+`,...o8(a)),console.warn(...n)}ya()}function n8(){let e=ta[ta.length-1];if(!e)return[];const t=[];for(;e;){const r=t[0];r&&r.vnode===e?r.recurseCount++:t.push({vnode:e,recurseCount:0});const i=e.component&&e.component.parent;e=i&&i.vnode}return t}function o8(e){const t=[];return e.forEach((r,i)=>{t.push(...i===0?[]:[`
+`],...a8(r))}),t}function a8({vnode:e,recurseCount:t}){const r=t>0?`... (${t} recursive calls)`:"",i=e.component?e.component.parent==null:!1,a=` at <${xh(e.component,e.type,i)}`,n=">"+r;return e.props?[a,...s8(e.props),n]:[a+n]}function s8(e){const t=[],r=Object.keys(e);return r.slice(0,3).forEach(i=>{t.push(...p2(i,e[i]))}),r.length>3&&t.push(" ..."),t}function p2(e,t,r){return Vt(t)?(t=JSON.stringify(t),r?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?r?t:[`${e}=${t}`]:Xt(t)?(t=p2(e,lt(t.value),!0),r?t:[`${e}=Ref<`,t,">"]):Qe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=lt(t),r?t:[`${e}=`,t])}function pv(e,t){e!==void 0&&(typeof e!="number"?Ue(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&Ue(`${t} is NaN - the duration expression might be incorrect.`))}const vv={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",[0]:"setup function",[1]:"render function",[2]:"watcher getter",[3]:"watcher callback",[4]:"watcher cleanup function",[5]:"native event handler",[6]:"component event handler",[7]:"vnode hook",[8]:"directive hook",[9]:"transition hook",[10]:"app errorHandler",[11]:"app warnHandler",[12]:"ref function",[13]:"async component loader",[14]:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"};function en(e,t,r,i){let a;try{a=i?e(...i):e()}catch(n){ba(n,t,r)}return a}function Zr(e,t,r,i){if(Qe(e)){const n=en(e,t,r,i);return n&&ah(n)&&n.catch(u=>{ba(u,t,r)}),n}const a=[];for(let n=0;n<e.length;n++)a.push(Zr(e[n],t,r,i));return a}function ba(e,t,r,i=!0){const a=t?t.vnode:null;if(t){let n=t.parent;const u=t.proxy,c=vv[r];for(;n;){const m=n.ec;if(m){for(let M=0;M<m.length;M++)if(m[M](e,u,c)===!1)return}n=n.parent}const d=t.appContext.config.errorHandler;if(d){en(d,null,10,[e,u,c]);return}}f8(e,r,a,i)}function f8(e,t,r,i=!0){{const a=vv[t];if(r&&Tf(r),Ue(`Unhandled error${a?` during execution of ${a}`:""}`),r&&Of(),i)throw e;console.error(e)}}let Kf=!1,$0=!1;const Er=[];let Ji=0;const Ya=[];let zi=null,io=0;const v2=Promise.resolve();let gv=null;const u8=100;function uo(e){const t=gv||v2;return e?t.then(this?e.bind(this):e):t}function l8(e){let t=Ji+1,r=Er.length;for(;t<r;){const i=t+r>>>1;Vf(Er[i])<e?t=i+1:r=i}return t}function lu(e){(!Er.length||!Er.includes(e,Kf&&e.allowRecurse?Ji+1:Ji))&&(e.id==null?Er.push(e):Er.splice(l8(e.id),0,e),g2())}function g2(){!Kf&&!$0&&($0=!0,gv=v2.then(m2))}function h8(e){const t=Er.indexOf(e);t>Ji&&Er.splice(t,1)}function ph(e){ze(e)?Ya.push(...e):(!zi||!zi.includes(e,e.allowRecurse?io+1:io))&&Ya.push(e),g2()}function vm(e,t=Kf?Ji+1:0){for(e=e||new Map;t<Er.length;t++){const r=Er[t];if(r&&r.pre){if(mv(e,r))continue;Er.splice(t,1),t--,r()}}}function Pl(e){if(Ya.length){const t=[...new Set(Ya)];if(Ya.length=0,zi){zi.push(...t);return}for(zi=t,e=e||new Map,zi.sort((r,i)=>Vf(r)-Vf(i)),io=0;io<zi.length;io++)mv(e,zi[io])||zi[io]();zi=null,io=0}}const Vf=e=>e.id==null?1/0:e.id,c8=(e,t)=>{const r=Vf(e)-Vf(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function m2(e){$0=!1,Kf=!0,e=e||new Map,Er.sort(c8);const t=r=>mv(e,r);try{for(Ji=0;Ji<Er.length;Ji++){const r=Er[Ji];if(r&&r.active!==!1){if(t(r))continue;en(r,null,14)}}}finally{Ji=0,Er.length=0,Pl(e),Kf=!1,gv=null,(Er.length||Ya.length)&&m2(e)}}function mv(e,t){if(!e.has(t))e.set(t,1);else{const r=e.get(t);if(r>u8){const i=t.ownerInstance,a=i&&Xf(i.type);return Ue(`Maximum recursive updates exceeded${a?` in component <${a}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`),!0}else e.set(t,r+1)}}let go=!1;const ja=new Set;Tl().__VUE_HMR_RUNTIME__={createRecord:Ic(y2),rerender:Ic(v8),reload:Ic(g8)};const sa=new Map;function d8(e){const t=e.type.__hmrId;let r=sa.get(t);r||(y2(t,e.type),r=sa.get(t)),r.instances.add(e)}function p8(e){sa.get(e.type.__hmrId).instances.delete(e)}function y2(e,t){return sa.has(e)?!1:(sa.set(e,{initialDef:If(t),instances:new Set}),!0)}function If(e){return c_(e)?e.__vccOpts:e}function v8(e,t){const r=sa.get(e);r&&(r.initialDef.render=t,[...r.instances].forEach(i=>{t&&(i.render=t,If(i.type).render=t),i.renderCache=[],go=!0,i.update(),go=!1}))}function g8(e,t){const r=sa.get(e);if(!r)return;t=If(t),gm(r.initialDef,t);const i=[...r.instances];for(const a of i){const n=If(a.type);ja.has(n)||(n!==r.initialDef&&gm(n,t),ja.add(n)),a.appContext.propsCache.delete(a.type),a.appContext.emitsCache.delete(a.type),a.appContext.optionsCache.delete(a.type),a.ceReload?(ja.add(n),a.ceReload(t.styles),ja.delete(n)):a.parent?lu(a.parent.update):a.appContext.reload?a.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required.")}ph(()=>{for(const a of i)ja.delete(If(a.type))})}function gm(e,t){Pt(e,t);for(const r in e)r!=="__file"&&!(r in t)&&delete e[r]}function Ic(e){return(t,r)=>{try{return e(t,r)}catch(i){console.error(i),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let Bi,wf=[],D0=!1;function hu(e,...t){Bi?Bi.emit(e,...t):D0||wf.push({event:e,args:t})}function yv(e,t){var r,i;Bi=e,Bi?(Bi.enabled=!0,wf.forEach(({event:a,args:n})=>Bi.emit(a,...n)),wf=[]):typeof window<"u"&&window.HTMLElement&&!((i=(r=window.navigator)==null?void 0:r.userAgent)!=null&&i.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(n=>{yv(n,t)}),setTimeout(()=>{Bi||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,D0=!0,wf=[])},3e3)):(D0=!0,wf=[])}function m8(e,t){hu("app:init",e,t,{Fragment:Lt,Text:xo,Comment:rr,Static:mo})}function y8(e){hu("app:unmount",e)}const F0=bv("component:added"),b2=bv("component:updated"),b8=bv("component:removed"),w8=e=>{Bi&&typeof Bi.cleanupBuffer=="function"&&!Bi.cleanupBuffer(e)&&b8(e)};function bv(e){return t=>{hu(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const _8=w2("perf:start"),M8=w2("perf:end");function w2(e){return(t,r,i)=>{hu(e,t.appContext.app,t.uid,t,r,i)}}function S8(e,t,r){hu("component:emit",e.appContext.app,e,t,r)}function x8(e,t,...r){if(e.isUnmounted)return;const i=e.vnode.props||$t;{const{emitsOptions:M,propsOptions:[S]}=e;if(M)if(!(t in M))(!S||!(xn(t)in S))&&Ue(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${xn(t)}" prop.`);else{const R=M[t];Qe(R)&&(R(...r)||Ue(`Invalid event arguments: event validation failed for event "${t}".`))}}let a=r;const n=t.startsWith("update:"),u=n&&t.slice(7);if(u&&u in i){const M=`${u==="modelValue"?"model":u}Modifiers`,{number:S,trim:R}=i[M]||$t;R&&(a=r.map(C=>Vt(C)?C.trim():C)),S&&(a=r.map(Rl))}S8(e,t,a);{const M=t.toLowerCase();M!==t&&i[xn(M)]&&Ue(`Event "${M}" is emitted in component ${xh(e,e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${Hr(t)}" instead of "${t}".`)}let c,d=i[c=xn(t)]||i[c=xn(Kr(t))];!d&&n&&(d=i[c=xn(Hr(t))]),d&&Zr(d,e,6,a);const m=i[c+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,Zr(m,e,6,a)}}function _2(e,t,r=!1){const i=t.emitsCache,a=i.get(e);if(a!==void 0)return a;const n=e.emits;let u={},c=!1;if(!Qe(e)){const d=m=>{const M=_2(m,t,!0);M&&(c=!0,Pt(u,M))};!r&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!n&&!c?(Rt(e)&&i.set(e,null),null):(ze(n)?n.forEach(d=>u[d]=null):Pt(u,n),Rt(e)&&i.set(e,u),u)}function vh(e,t){return!e||!Ps(t)?!1:(t=t.slice(2).replace(/Once$/,""),wt(e,t[0].toLowerCase()+t.slice(1))||wt(e,Hr(t))||wt(e,t))}let tr=null,gh=null;function zf(e){const t=tr;return tr=e,gh=e&&e.type.__scopeId||null,t}function M2(e){gh=e}function S2(){gh=null}const E8=e=>wv;function wv(e,t=tr,r){if(!t||e._n)return e;const i=(...a)=>{i._d&&G0(-1);const n=zf(t);let u;try{u=e(...a)}finally{zf(n),i._d&&G0(1)}return b2(t),u};return i._n=!0,i._c=!0,i._d=!0,i}let j0=!1;function Cl(){j0=!0}function nl(e){const{type:t,vnode:r,proxy:i,withProxy:a,props:n,propsOptions:[u],slots:c,attrs:d,emit:m,render:M,renderCache:S,data:R,setupState:C,ctx:P,inheritAttrs:k}=e;let L,I;const B=zf(e);j0=!1;try{if(r.shapeFlag&4){const W=a||i;L=Ur(M.call(W,W,S,n,C,R,P)),I=d}else{const W=t;d===n&&Cl(),L=Ur(W.length>1?W(n,{get attrs(){return Cl(),d},slots:c,emit:m}):W(n,null)),I=t.props?d:A8(d)}}catch(W){Bf.length=0,ba(W,e,1),L=Zt(rr)}let H=L,F;if(L.patchFlag>0&&L.patchFlag&2048&&([H,F]=R8(L)),I&&k!==!1){const W=Object.keys(I),{shapeFlag:Y}=H;if(W.length){if(Y&7)u&&W.some(xl)&&(I=T8(I,u)),H=di(H,I);else if(!j0&&H.type!==rr){const ie=Object.keys(d),J=[],V=[];for(let oe=0,_=ie.length;oe<_;oe++){const o=ie[oe];Ps(o)?xl(o)||J.push(o[2].toLowerCase()+o.slice(3)):V.push(o)}V.length&&Ue(`Extraneous non-props attributes (${V.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`),J.length&&Ue(`Extraneous non-emits event listeners (${J.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`)}}}return r.dirs&&(mm(H)||Ue("Runtime directive used on component with non-element root node. The directives will not function as intended."),H=di(H),H.dirs=H.dirs?H.dirs.concat(r.dirs):r.dirs),r.transition&&(mm(H)||Ue("Component inside <Transition> renders non-element root node that cannot be animated."),H.transition=r.transition),F?F(H):L=H,zf(B),L}const R8=e=>{const t=e.children,r=e.dynamicChildren,i=_v(t);if(!i)return[e,void 0];const a=t.indexOf(i),n=r?r.indexOf(i):-1,u=c=>{t[a]=c,r&&(n>-1?r[n]=c:c.patchFlag>0&&(e.dynamicChildren=[...r,c]))};return[Ur(i),u]};function _v(e){let t;for(let r=0;r<e.length;r++){const i=e[r];if(Nn(i)){if(i.type!==rr||i.children==="v-if"){if(t)return;t=i}}else return}return t}const A8=e=>{let t;for(const r in e)(r==="class"||r==="style"||Ps(r))&&((t||(t={}))[r]=e[r]);return t},T8=(e,t)=>{const r={};for(const i in e)(!xl(i)||!(i.slice(9)in t))&&(r[i]=e[i]);return r},mm=e=>e.shapeFlag&7||e.type===rr;function O8(e,t,r){const{props:i,children:a,component:n}=e,{props:u,children:c,patchFlag:d}=t,m=n.emitsOptions;if((a||c)&&go||t.dirs||t.transition)return!0;if(r&&d>=0){if(d&1024)return!0;if(d&16)return i?ym(i,u,m):!!u;if(d&8){const M=t.dynamicProps;for(let S=0;S<M.length;S++){const R=M[S];if(u[R]!==i[R]&&!vh(m,R))return!0}}}else return(a||c)&&(!c||!c.$stable)?!0:i===u?!1:i?u?ym(i,u,m):!0:!!u;return!1}function ym(e,t,r){const i=Object.keys(t);if(i.length!==Object.keys(e).length)return!0;for(let a=0;a<i.length;a++){const n=i[a];if(t[n]!==e[n]&&!vh(r,n))return!0}return!1}function Mv({vnode:e,parent:t},r){for(;t&&t.subTree===e;)(e=t.vnode).el=r,t=t.parent}const x2=e=>e.__isSuspense,I8={name:"Suspense",__isSuspense:!0,process(e,t,r,i,a,n,u,c,d,m){e==null?C8(t,r,i,a,n,u,c,d,m):B8(e,t,r,i,a,u,c,d,m)},hydrate:L8,create:Sv,normalize:N8},P8=I8;function Gf(e,t){const r=e.props&&e.props[t];Qe(r)&&r()}function C8(e,t,r,i,a,n,u,c,d){const{p:m,o:{createElement:M}}=d,S=M("div"),R=e.suspense=Sv(e,a,i,t,S,r,n,u,c,d);m(null,R.pendingBranch=e.ssContent,S,null,i,R,n,u),R.deps>0?(Gf(e,"onPending"),Gf(e,"onFallback"),m(null,e.ssFallback,t,r,i,null,n,u),Za(R,e.ssFallback)):R.resolve(!1,!0)}function B8(e,t,r,i,a,n,u,c,{p:d,um:m,o:{createElement:M}}){const S=t.suspense=e.suspense;S.vnode=t,t.el=e.el;const R=t.ssContent,C=t.ssFallback,{activeBranch:P,pendingBranch:k,isInFallback:L,isHydrating:I}=S;if(k)S.pendingBranch=R,Li(R,k)?(d(k,R,S.hiddenContainer,null,a,S,n,u,c),S.deps<=0?S.resolve():L&&(d(P,C,r,i,a,null,n,u,c),Za(S,C))):(S.pendingId++,I?(S.isHydrating=!1,S.activeBranch=k):m(k,a,S),S.deps=0,S.effects.length=0,S.hiddenContainer=M("div"),L?(d(null,R,S.hiddenContainer,null,a,S,n,u,c),S.deps<=0?S.resolve():(d(P,C,r,i,a,null,n,u,c),Za(S,C))):P&&Li(R,P)?(d(P,R,r,i,a,S,n,u,c),S.resolve(!0)):(d(null,R,S.hiddenContainer,null,a,S,n,u,c),S.deps<=0&&S.resolve()));else if(P&&Li(R,P))d(P,R,r,i,a,S,n,u,c),Za(S,R);else if(Gf(t,"onPending"),S.pendingBranch=R,S.pendingId++,d(null,R,S.hiddenContainer,null,a,S,n,u,c),S.deps<=0)S.resolve();else{const{timeout:B,pendingId:H}=S;B>0?setTimeout(()=>{S.pendingId===H&&S.fallback(C)},B):B===0&&S.fallback(C)}}let bm=!1;function Sv(e,t,r,i,a,n,u,c,d,m,M=!1){bm||(bm=!0,console[console.info?"info":"log"]("<Suspense> is an experimental feature and its API will likely change."));const{p:S,m:R,um:C,n:P,o:{parentNode:k,remove:L}}=m;let I;const B=k8(e);B&&t!=null&&t.pendingBranch&&(I=t.pendingId,t.deps++);const H=e.props?Al(e.props.timeout):void 0;pv(H,"Suspense timeout");const F={vnode:e,parent:t,parentComponent:r,isSVG:u,container:i,hiddenContainer:a,anchor:n,deps:0,pendingId:0,timeout:typeof H=="number"?H:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:M,isUnmounted:!1,effects:[],resolve(W=!1,Y=!1){{if(!W&&!F.pendingBranch)throw new Error("suspense.resolve() is called without a pending branch.");if(F.isUnmounted)throw new Error("suspense.resolve() is called on an already unmounted suspense boundary.")}const{vnode:ie,activeBranch:J,pendingBranch:V,pendingId:oe,effects:_,parentComponent:o,container:f}=F;if(F.isHydrating)F.isHydrating=!1;else if(!W){const p=J&&V.transition&&V.transition.mode==="out-in";p&&(J.transition.afterLeave=()=>{oe===F.pendingId&&R(V,f,w,0)});let{anchor:w}=F;J&&(w=P(J),C(J,o,F,!0)),p||R(V,f,w,0)}Za(F,V),F.pendingBranch=null,F.isInFallback=!1;let l=F.parent,h=!1;for(;l;){if(l.pendingBranch){l.effects.push(..._),h=!0;break}l=l.parent}h||ph(_),F.effects=[],B&&t&&t.pendingBranch&&I===t.pendingId&&(t.deps--,t.deps===0&&!Y&&t.resolve()),Gf(ie,"onResolve")},fallback(W){if(!F.pendingBranch)return;const{vnode:Y,activeBranch:ie,parentComponent:J,container:V,isSVG:oe}=F;Gf(Y,"onFallback");const _=P(ie),o=()=>{F.isInFallback&&(S(null,W,V,_,J,null,oe,c,d),Za(F,W))},f=W.transition&&W.transition.mode==="out-in";f&&(ie.transition.afterLeave=o),F.isInFallback=!0,C(ie,J,null,!0),f||o()},move(W,Y,ie){F.activeBranch&&R(F.activeBranch,W,Y,ie),F.container=W},next(){return F.activeBranch&&P(F.activeBranch)},registerDep(W,Y){const ie=!!F.pendingBranch;ie&&F.deps++;const J=W.vnode.el;W.asyncDep.catch(V=>{ba(V,W,0)}).then(V=>{if(W.isUnmounted||F.isUnmounted||F.pendingId!==W.suspenseId)return;W.asyncResolved=!0;const{vnode:oe}=W;Tf(oe),X0(W,V,!1),J&&(oe.el=J);const _=!J&&W.subTree.el;Y(W,oe,k(J||W.subTree.el),J?null:P(W.subTree),F,u,d),_&&L(_),Mv(W,oe.el),Of(),ie&&--F.deps===0&&F.resolve()})},unmount(W,Y){F.isUnmounted=!0,F.activeBranch&&C(F.activeBranch,r,W,Y),F.pendingBranch&&C(F.pendingBranch,r,W,Y)}};return F}function L8(e,t,r,i,a,n,u,c,d){const m=t.suspense=Sv(t,i,r,e.parentNode,document.createElement("div"),null,a,n,u,c,!0),M=d(e,m.pendingBranch=t.ssContent,r,m,n,u);return m.deps===0&&m.resolve(!1,!0),M}function N8(e){const{shapeFlag:t,children:r}=e,i=t&32;e.ssContent=wm(i?r.default:r),e.ssFallback=i?wm(r.fallback):Zt(rr)}function wm(e){let t;if(Qe(e)){const r=ua&&e._c;r&&(e._d=!1,tt()),e=e(),r&&(e._d=!0,t=Wr,t_())}if(ze(e)){const r=_v(e);r||Ue("<Suspense> slots expect a single root node."),e=r}return e=Ur(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(r=>r!==e)),e}function E2(e,t){t&&t.pendingBranch?ze(e)?t.effects.push(...e):t.effects.push(e):ph(e)}function Za(e,t){e.activeBranch=t;const{vnode:r,parentComponent:i}=e,a=r.el=t.el;i&&i.subTree===r&&(i.vnode.el=a,Mv(i,a))}function k8(e){var t;return((t=e.props)==null?void 0:t.suspensible)!=null&&e.props.suspensible!==!1}function R2(e,t){return cu(e,null,t)}function A2(e,t){return cu(e,null,Pt({},t,{flush:"post"}))}function $8(e,t){return cu(e,null,Pt({},t,{flush:"sync"}))}const qu={};function lr(e,t,r){return Qe(t)||Ue("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),cu(e,t,r)}function cu(e,t,{immediate:r,deep:i,flush:a,onTrack:n,onTrigger:u}=$t){var c;t||(r!==void 0&&Ue('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),i!==void 0&&Ue('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));const d=W=>{Ue("Invalid watch source: ",W,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},m=Zw()===((c=er)==null?void 0:c.scope)?er:null;let M,S=!1,R=!1;if(Xt(e)?(M=()=>e.value,S=Hf(e)):po(e)?(M=()=>e,i=!0):ze(e)?(R=!0,S=e.some(W=>po(W)||Hf(W)),M=()=>e.map(W=>{if(Xt(W))return W.value;if(po(W))return Yo(W);if(Qe(W))return en(W,m,2);d(W)})):Qe(e)?t?M=()=>en(e,m,2):M=()=>{if(!(m&&m.isUnmounted))return C&&C(),Zr(e,m,3,[P])}:(M=qr,d(e)),t&&i){const W=M;M=()=>Yo(W())}let C,P=W=>{C=H.onStop=()=>{en(W,m,4)}},k;if(fs)if(P=qr,t?r&&Zr(t,m,3,[M(),R?[]:void 0,P]):M(),a==="sync"){const W=p_();k=W.__watcherHandles||(W.__watcherHandles=[])}else return qr;let L=R?new Array(e.length).fill(qu):qu;const I=()=>{if(H.active)if(t){const W=H.run();(i||S||(R?W.some((Y,ie)=>as(Y,L[ie])):as(W,L)))&&(C&&C(),Zr(t,m,3,[W,L===qu?void 0:R&&L[0]===qu?[]:L,P]),L=W)}else H.run()};I.allowRecurse=!!t;let B;a==="sync"?B=I:a==="post"?B=()=>gr(I,m&&m.suspense):(I.pre=!0,m&&(I.id=m.uid),B=()=>lu(I));const H=new uu(M,B);H.onTrack=n,H.onTrigger=u,t?r?I():L=H.run():a==="post"?gr(H.run.bind(H),m&&m.suspense):H.run();const F=()=>{H.stop(),m&&m.scope&&iv(m.scope.effects,H)};return k&&k.push(F),F}function D8(e,t,r){const i=this.proxy,a=Vt(e)?e.includes(".")?T2(i,e):()=>i[e]:e.bind(i,i);let n;Qe(t)?n=t:(n=t.handler,r=t);const u=er;Eo(this);const c=cu(a,n.bind(i),r);return u?Eo(u):yo(),c}function T2(e,t){const r=t.split(".");return()=>{let i=e;for(let a=0;a<r.length&&i;a++)i=i[r[a]];return i}}function Yo(e,t){if(!Rt(e)||e.__v_skip||(t=t||new Set,t.has(e)))return e;if(t.add(e),Xt(e))Yo(e.value,t);else if(ze(e))for(let r=0;r<e.length;r++)Yo(e[r],t);else if(ga(e)||Qo(e))e.forEach(r=>{Yo(r,t)});else if(Kw(e))for(const r in e)Yo(e[r],t);return e}function O2(e){J4(e)&&Ue("Do not use built-in directive ids as custom directive id: "+e)}function ol(e,t){const r=tr;if(r===null)return Ue("withDirectives can only be used inside render functions."),e;const i=Sh(r)||r.proxy,a=e.dirs||(e.dirs=[]);for(let n=0;n<t.length;n++){let[u,c,d,m=$t]=t[n];u&&(Qe(u)&&(u={mounted:u,updated:u}),u.deep&&Yo(c),a.push({dir:u,instance:i,value:c,oldValue:void 0,arg:d,modifiers:m}))}return e}function Zi(e,t,r,i){const a=e.dirs,n=t&&t.dirs;for(let u=0;u<a.length;u++){const c=a[u];n&&(c.oldValue=n[u].value);let d=c.dir[i];d&&(ma(),Zr(d,r,8,[e.el,c,e,t]),ya())}}function xv(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ns(()=>{e.isMounted=!0}),wh(()=>{e.isUnmounting=!0}),e}const ni=[Function,Array],Ev={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ni,onEnter:ni,onAfterEnter:ni,onEnterCancelled:ni,onBeforeLeave:ni,onLeave:ni,onAfterLeave:ni,onLeaveCancelled:ni,onBeforeAppear:ni,onAppear:ni,onAfterAppear:ni,onAppearCancelled:ni},F8={name:"BaseTransition",props:Ev,setup(e,{slots:t}){const r=Fi(),i=xv();let a;return()=>{const n=t.default&&mh(t.default(),!0);if(!n||!n.length)return;let u=n[0];if(n.length>1){let k=!1;for(const L of n)if(L.type!==rr){if(k){Ue("<transition> can only be used on a single element or component. Use <transition-group> for lists.");break}u=L,k=!0}}const c=lt(e),{mode:d}=c;if(d&&d!=="in-out"&&d!=="out-in"&&d!=="default"&&Ue(`invalid <transition> mode: ${d}`),i.isLeaving)return Pc(u);const m=_m(u);if(!m)return Pc(u);const M=ss(m,c,i,r);fa(m,M);const S=r.subTree,R=S&&_m(S);let C=!1;const{getTransitionKey:P}=m.type;if(P){const k=P();a===void 0?a=k:k!==a&&(a=k,C=!0)}if(R&&R.type!==rr&&(!Li(m,R)||C)){const k=ss(R,c,i,r);if(fa(R,k),d==="out-in")return i.isLeaving=!0,k.afterLeave=()=>{i.isLeaving=!1,r.update.active!==!1&&r.update()},Pc(u);d==="in-out"&&m.type!==rr&&(k.delayLeave=(L,I,B)=>{const H=P2(i,R);H[String(R.key)]=R,L._leaveCb=()=>{I(),L._leaveCb=void 0,delete M.delayedLeave},M.delayedLeave=B})}return u}}},I2=F8;function P2(e,t){const{leavingVNodes:r}=e;let i=r.get(t.type);return i||(i=Object.create(null),r.set(t.type,i)),i}function ss(e,t,r,i){const{appear:a,mode:n,persisted:u=!1,onBeforeEnter:c,onEnter:d,onAfterEnter:m,onEnterCancelled:M,onBeforeLeave:S,onLeave:R,onAfterLeave:C,onLeaveCancelled:P,onBeforeAppear:k,onAppear:L,onAfterAppear:I,onAppearCancelled:B}=t,H=String(e.key),F=P2(r,e),W=(J,V)=>{J&&Zr(J,i,9,V)},Y=(J,V)=>{const oe=V[1];W(J,V),ze(J)?J.every(_=>_.length<=1)&&oe():J.length<=1&&oe()},ie={mode:n,persisted:u,beforeEnter(J){let V=c;if(!r.isMounted)if(a)V=k||c;else return;J._leaveCb&&J._leaveCb(!0);const oe=F[H];oe&&Li(e,oe)&&oe.el._leaveCb&&oe.el._leaveCb(),W(V,[J])},enter(J){let V=d,oe=m,_=M;if(!r.isMounted)if(a)V=L||d,oe=I||m,_=B||M;else return;let o=!1;const f=J._enterCb=l=>{o||(o=!0,l?W(_,[J]):W(oe,[J]),ie.delayedLeave&&ie.delayedLeave(),J._enterCb=void 0)};V?Y(V,[J,f]):f()},leave(J,V){const oe=String(e.key);if(J._enterCb&&J._enterCb(!0),r.isUnmounting)return V();W(S,[J]);let _=!1;const o=J._leaveCb=f=>{_||(_=!0,V(),f?W(P,[J]):W(C,[J]),J._leaveCb=void 0,F[oe]===e&&delete F[oe])};F[oe]=e,R?Y(R,[J,o]):o()},clone(J){return ss(J,t,r,i)}};return ie}function Pc(e){if(Ls(e))return e=di(e),e.children=null,e}function _m(e){return Ls(e)?e.children?e.children[0]:void 0:e}function fa(e,t){e.shapeFlag&6&&e.component?fa(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function mh(e,t=!1,r){let i=[],a=0;for(let n=0;n<e.length;n++){let u=e[n];const c=r==null?u.key:String(r)+String(u.key!=null?u.key:n);u.type===Lt?(u.patchFlag&128&&a++,i=i.concat(mh(u.children,t,c))):(t||u.type!==rr)&&i.push(c!=null?di(u,{key:c}):u)}if(a>1)for(let n=0;n<i.length;n++)i[n].patchFlag=-2;return i}function Bs(e,t){return Qe(e)?(()=>Pt({name:e.name},t,{setup:e}))():e}const ra=e=>!!e.type.__asyncLoader;function j8(e){Qe(e)&&(e={loader:e});const{loader:t,loadingComponent:r,errorComponent:i,delay:a=200,timeout:n,suspensible:u=!0,onError:c}=e;let d=null,m,M=0;const S=()=>(M++,d=null,R()),R=()=>{let C;return d||(C=d=t().catch(P=>{if(P=P instanceof Error?P:new Error(String(P)),c)return new Promise((k,L)=>{c(P,()=>k(S()),()=>L(P),M+1)});throw P}).then(P=>{if(C!==d&&d)return d;if(P||Ue("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),P&&(P.__esModule||P[Symbol.toStringTag]==="Module")&&(P=P.default),P&&!Rt(P)&&!Qe(P))throw new Error(`Invalid async component load result: ${P}`);return m=P,P}))};return Bs({name:"AsyncComponentWrapper",__asyncLoader:R,get __asyncResolved(){return m},setup(){const C=er;if(m)return()=>Cc(m,C);const P=B=>{d=null,ba(B,C,13,!i)};if(u&&C.suspense||fs)return R().then(B=>()=>Cc(B,C)).catch(B=>(P(B),()=>i?Zt(i,{error:B}):null));const k=mr(!1),L=mr(),I=mr(!!a);return a&&setTimeout(()=>{I.value=!1},a),n!=null&&setTimeout(()=>{if(!k.value&&!L.value){const B=new Error(`Async component timed out after ${n}ms.`);P(B),L.value=B}},n),R().then(()=>{k.value=!0,C.parent&&Ls(C.parent.vnode)&&lu(C.parent.update)}).catch(B=>{P(B),L.value=B}),()=>{if(k.value&&m)return Cc(m,C);if(L.value&&i)return Zt(i,{error:L.value});if(r&&!I.value)return Zt(r)}}})}function Cc(e,t){const{ref:r,props:i,children:a,ce:n}=t.vnode,u=Zt(e,i,a);return u.ref=r,u.ce=n,delete t.vnode.ce,u}const Ls=e=>e.type.__isKeepAlive,U8={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const r=Fi(),i=r.ctx;if(!i.renderer)return()=>{const B=t.default&&t.default();return B&&B.length===1?B[0]:B};const a=new Map,n=new Set;let u=null;r.__v_cache=a;const c=r.suspense,{renderer:{p:d,m,um:M,o:{createElement:S}}}=i,R=S("div");i.activate=(B,H,F,W,Y)=>{const ie=B.component;m(B,H,F,0,c),d(ie.vnode,B,H,F,ie,c,W,B.slotScopeIds,Y),gr(()=>{ie.isDeactivated=!1,ie.a&&so(ie.a);const J=B.props&&B.props.onVnodeMounted;J&&Dr(J,ie.parent,B)},c),F0(ie)},i.deactivate=B=>{const H=B.component;m(B,R,null,1,c),gr(()=>{H.da&&so(H.da);const F=B.props&&B.props.onVnodeUnmounted;F&&Dr(F,H.parent,B),H.isDeactivated=!0},c),F0(H)};function C(B){Bc(B),M(B,r,c,!0)}function P(B){a.forEach((H,F)=>{const W=Xf(H.type);W&&(!B||!B(W))&&k(F)})}function k(B){const H=a.get(B);!u||!Li(H,u)?C(H):u&&Bc(u),a.delete(B),n.delete(B)}lr(()=>[e.include,e.exclude],([B,H])=>{B&&P(F=>_f(B,F)),H&&P(F=>!_f(H,F))},{flush:"post",deep:!0});let L=null;const I=()=>{L!=null&&a.set(L,Lc(r.subTree))};return Ns(I),bh(I),wh(()=>{a.forEach(B=>{const{subTree:H,suspense:F}=r,W=Lc(H);if(B.type===W.type&&B.key===W.key){Bc(W);const Y=W.component.da;Y&&gr(Y,F);return}C(B)})}),()=>{if(L=null,!t.default)return null;const B=t.default(),H=B[0];if(B.length>1)return Ue("KeepAlive should contain exactly one component child."),u=null,B;if(!Nn(H)||!(H.shapeFlag&4)&&!(H.shapeFlag&128))return u=null,H;let F=Lc(H);const W=F.type,Y=Xf(ra(F)?F.type.__asyncResolved||{}:W),{include:ie,exclude:J,max:V}=e;if(ie&&(!Y||!_f(ie,Y))||J&&Y&&_f(J,Y))return u=F,H;const oe=F.key==null?W:F.key,_=a.get(oe);return F.el&&(F=di(F),H.shapeFlag&128&&(H.ssContent=F)),L=oe,_?(F.el=_.el,F.component=_.component,F.transition&&fa(F,F.transition),F.shapeFlag|=512,n.delete(oe),n.add(oe)):(n.add(oe),V&&n.size>parseInt(V,10)&&k(n.values().next().value)),F.shapeFlag|=256,u=F,x2(H.type)?H:F}}},H8=U8;function _f(e,t){return ze(e)?e.some(r=>_f(r,t)):Vt(e)?e.split(",").includes(t):X4(e)?e.test(t):!1}function C2(e,t){L2(e,"a",t)}function B2(e,t){L2(e,"da",t)}function L2(e,t,r=er){const i=e.__wdc||(e.__wdc=()=>{let a=r;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(yh(t,i,r),r){let a=r.parent;for(;a&&a.parent;)Ls(a.parent.vnode)&&q8(i,t,r,a),a=a.parent}}function q8(e,t,r,i){const a=yh(t,e,i,!0);_h(()=>{iv(i[t],a)},r)}function Bc(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Lc(e){return e.shapeFlag&128?e.ssContent:e}function yh(e,t,r=er,i=!1){if(r){const a=r[e]||(r[e]=[]),n=t.__weh||(t.__weh=(...u)=>{if(r.isUnmounted)return;ma(),Eo(r);const c=Zr(t,r,e,u);return yo(),ya(),c});return i?a.unshift(n):a.push(n),n}else{const a=xn(vv[e].replace(/ hook$/,""));Ue(`${a} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const Vn=e=>(t,r=er)=>(!fs||e==="sp")&&yh(e,(...i)=>t(...i),r),N2=Vn("bm"),Ns=Vn("m"),Rv=Vn("bu"),bh=Vn("u"),wh=Vn("bum"),_h=Vn("um"),k2=Vn("sp"),$2=Vn("rtg"),D2=Vn("rtc");function F2(e,t=er){yh("ec",e,t)}const Bl="components",W8="directives";function K8(e,t){return Av(Bl,e,!0,t)||e}const j2=Symbol.for("v-ndc");function V8(e){return Vt(e)?Av(Bl,e,!1)||e:e||j2}function z8(e){return Av(W8,e)}function Av(e,t,r=!0,i=!1){const a=tr||er;if(a){const n=a.type;if(e===Bl){const c=Xf(n,!1);if(c&&(c===t||c===Kr(t)||c===_o(Kr(t))))return n}const u=Mm(a[e]||n[e],t)||Mm(a.appContext[e],t);if(!u&&i)return n;if(r&&!u){const c=e===Bl?`
+If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:"";Ue(`Failed to resolve ${e.slice(0,-1)}: ${t}${c}`)}return u}else Ue(`resolve${_o(e.slice(0,-1))} can only be used in render() or setup().`)}function Mm(e,t){return e&&(e[t]||e[Kr(t)]||e[_o(Kr(t))])}function Ii(e,t,r,i){let a;const n=r&&r[i];if(ze(e)||Vt(e)){a=new Array(e.length);for(let u=0,c=e.length;u<c;u++)a[u]=t(e[u],u,void 0,n&&n[u])}else if(typeof e=="number"){Number.isInteger(e)||Ue(`The v-for range expect an integer value but got ${e}.`),a=new Array(e);for(let u=0;u<e;u++)a[u]=t(u+1,u,void 0,n&&n[u])}else if(Rt(e))if(e[Symbol.iterator])a=Array.from(e,(u,c)=>t(u,c,void 0,n&&n[c]));else{const u=Object.keys(e);a=new Array(u.length);for(let c=0,d=u.length;c<d;c++){const m=u[c];a[c]=t(e[m],m,c,n&&n[c])}}else a=[];return r&&(r[i]=a),a}function G8(e,t){for(let r=0;r<t.length;r++){const i=t[r];if(ze(i))for(let a=0;a<i.length;a++)e[i[a].name]=i[a].fn;else i&&(e[i.name]=i.key?(...a)=>{const n=i.fn(...a);return n&&(n.key=i.key),n}:i.fn)}return e}function U0(e,t,r={},i,a){if(tr.isCE||tr.parent&&ra(tr.parent)&&tr.parent.isCE)return t!=="default"&&(r.name=t),Zt("slot",r,i&&i());let n=e[t];n&&n.length>1&&(Ue("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),n=()=>[]),n&&n._c&&(n._d=!1),tt();const u=n&&U2(n(r)),c=Pv(Lt,{key:r.key||u&&u.key||`_${t}`},u||(i?i():[]),u&&e._===1?64:-2);return!a&&c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),n&&n._c&&(n._d=!0),c}function U2(e){return e.some(t=>Nn(t)?!(t.type===rr||t.type===Lt&&!U2(t.children)):!0)?e:null}function Y8(e,t){const r={};if(!Rt(e))return Ue("v-on with no argument expects an object value."),r;for(const i in e)r[t&&/[A-Z]/.test(i)?`on:${i}`:xn(i)]=e[i];return r}const H0=e=>e?f_(e)?Sh(e)||e.proxy:H0(e.parent):null,ia=Pt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>Wa(e.props),$attrs:e=>Wa(e.attrs),$slots:e=>Wa(e.slots),$refs:e=>Wa(e.refs),$parent:e=>H0(e.parent),$root:e=>H0(e.root),$emit:e=>e.emit,$options:e=>Ov(e),$forceUpdate:e=>e.f||(e.f=()=>lu(e.update)),$nextTick:e=>e.n||(e.n=uo.bind(e.proxy)),$watch:e=>D8.bind(e)}),Tv=e=>e==="_"||e==="$",Nc=(e,t)=>e!==$t&&!e.__isScriptSetup&&wt(e,t),Pf={get({_:e},t){const{ctx:r,setupState:i,data:a,props:n,accessCache:u,type:c,appContext:d}=e;if(t==="__isVue")return!0;let m;if(t[0]!=="$"){const C=u[t];if(C!==void 0)switch(C){case 1:return i[t];case 2:return a[t];case 4:return r[t];case 3:return n[t]}else{if(Nc(i,t))return u[t]=1,i[t];if(a!==$t&&wt(a,t))return u[t]=2,a[t];if((m=e.propsOptions[0])&&wt(m,t))return u[t]=3,n[t];if(r!==$t&&wt(r,t))return u[t]=4,r[t];q0&&(u[t]=0)}}const M=ia[t];let S,R;if(M)return t==="$attrs"?(Tr(e,"get",t),Cl()):t==="$slots"&&Tr(e,"get",t),M(e);if((S=c.__cssModules)&&(S=S[t]))return S;if(r!==$t&&wt(r,t))return u[t]=4,r[t];if(R=d.config.globalProperties,wt(R,t))return R[t];tr&&(!Vt(t)||t.indexOf("__v")!==0)&&(a!==$t&&Tv(t[0])&&wt(a,t)?Ue(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===tr&&Ue(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,r){const{data:i,setupState:a,ctx:n}=e;return Nc(a,t)?(a[t]=r,!0):a.__isScriptSetup&&wt(a,t)?(Ue(`Cannot mutate <script setup> binding "${t}" from Options API.`),!1):i!==$t&&wt(i,t)?(i[t]=r,!0):wt(e.props,t)?(Ue(`Attempting to mutate prop "${t}". Props are readonly.`),!1):t[0]==="$"&&t.slice(1)in e?(Ue(`Attempting to mutate public property "${t}". Properties starting with $ are reserved and readonly.`),!1):(t in e.appContext.config.globalProperties?Object.defineProperty(n,t,{enumerable:!0,configurable:!0,value:r}):n[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:i,appContext:a,propsOptions:n}},u){let c;return!!r[u]||e!==$t&&wt(e,u)||Nc(t,u)||(c=n[0])&&wt(c,u)||wt(i,u)||wt(ia,u)||wt(a.config.globalProperties,u)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:wt(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};Pf.ownKeys=e=>(Ue("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead."),Reflect.ownKeys(e));const Z8=Pt({},Pf,{get(e,t){if(t!==Symbol.unscopables)return Pf.get(e,t,e)},has(e,t){const r=t[0]!=="_"&&!rE(t);return!r&&Pf.has(e,t)&&Ue(`Property ${JSON.stringify(t)} should not start with _ which is a reserved prefix for Vue internals.`),r}});function X8(e){const t={};return Object.defineProperty(t,"_",{configurable:!0,enumerable:!1,get:()=>e}),Object.keys(ia).forEach(r=>{Object.defineProperty(t,r,{configurable:!0,enumerable:!1,get:()=>ia[r](e),set:qr})}),t}function J8(e){const{ctx:t,propsOptions:[r]}=e;r&&Object.keys(r).forEach(i=>{Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>e.props[i],set:qr})})}function Q8(e){const{ctx:t,setupState:r}=e;Object.keys(lt(r)).forEach(i=>{if(!r.__isScriptSetup){if(Tv(i[0])){Ue(`setup() return property ${JSON.stringify(i)} should not start with "$" or "_" which are reserved prefixes for Vue internals.`);return}Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r[i],set:qr})}})}const wa=e=>Ue(`${e}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`);function e5(){return wa("defineProps"),null}function t5(){return wa("defineEmits"),null}function r5(e){wa("defineExpose")}function i5(e){wa("defineOptions")}function n5(){return wa("defineSlots"),null}function o5(){wa("defineModel")}function a5(e,t){return wa("withDefaults"),null}function s5(){return H2().slots}function f5(){return H2().attrs}function u5(e,t,r){const i=Fi();if(!i)return Ue("useModel() called without active instance."),mr();if(!i.propsOptions[0][t])return Ue(`useModel() called with prop "${t}" which is not declared.`),mr();if(r&&r.local){const a=mr(e[t]);return lr(()=>e[t],n=>a.value=n),lr(a,n=>{n!==e[t]&&i.emit(`update:${t}`,n)}),a}else return{__v_isRef:!0,get value(){return e[t]},set value(a){i.emit(`update:${t}`,a)}}}function H2(){const e=Fi();return e||Ue("useContext() called without active instance."),e.setupContext||(e.setupContext=h_(e))}function Yf(e){return ze(e)?e.reduce((t,r)=>(t[r]=null,t),{}):e}function l5(e,t){const r=Yf(e);for(const i in t){if(i.startsWith("__skip"))continue;let a=r[i];a?ze(a)||Qe(a)?a=r[i]={type:a,default:t[i]}:a.default=t[i]:a===null?a=r[i]={default:t[i]}:Ue(`props default key "${i}" has no corresponding declaration.`),a&&t[`__skip_${i}`]&&(a.skipFactory=!0)}return r}function h5(e,t){return!e||!t?e||t:ze(e)&&ze(t)?e.concat(t):Pt({},Yf(e),Yf(t))}function c5(e,t){const r={};for(const i in e)t.includes(i)||Object.defineProperty(r,i,{enumerable:!0,get:()=>e[i]});return r}function d5(e){const t=Fi();t||Ue("withAsyncContext called without active current instance. This is likely a bug.");let r=e();return yo(),ah(r)&&(r=r.catch(i=>{throw Eo(t),i})),[r,()=>Eo(t)]}function p5(){const e=Object.create(null);return(t,r)=>{e[r]?Ue(`${t} property "${r}" is already defined in ${e[r]}.`):e[r]=t}}let q0=!0;function v5(e){const t=Ov(e),r=e.proxy,i=e.ctx;q0=!1,t.beforeCreate&&Sm(t.beforeCreate,e,"bc");const{data:a,computed:n,methods:u,watch:c,provide:d,inject:m,created:M,beforeMount:S,mounted:R,beforeUpdate:C,updated:P,activated:k,deactivated:L,beforeDestroy:I,beforeUnmount:B,destroyed:H,unmounted:F,render:W,renderTracked:Y,renderTriggered:ie,errorCaptured:J,serverPrefetch:V,expose:oe,inheritAttrs:_,components:o,directives:f,filters:l}=t,h=p5();{const[w]=e.propsOptions;if(w)for(const x in w)h("Props",x)}if(m&&g5(m,i,h),u)for(const w in u){const x=u[w];Qe(x)?(Object.defineProperty(i,w,{value:x.bind(r),configurable:!0,enumerable:!0,writable:!0}),h("Methods",w)):Ue(`Method "${w}" has type "${typeof x}" in the component definition. Did you reference the function correctly?`)}if(a){Qe(a)||Ue("The data option must be a function. Plain object usage is no longer supported.");const w=a.call(r,r);if(ah(w)&&Ue("data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>."),!Rt(w))Ue("data() should return an object.");else{e.data=No(w);for(const x in w)h("Data",x),Tv(x[0])||Object.defineProperty(i,x,{configurable:!0,enumerable:!0,get:()=>w[x],set:qr})}}if(q0=!0,n)for(const w in n){const x=n[w],g=Qe(x)?x.bind(r,r):Qe(x.get)?x.get.bind(r,r):qr;g===qr&&Ue(`Computed property "${w}" has no getter.`);const s=!Qe(x)&&Qe(x.set)?x.set.bind(r):()=>{Ue(`Write operation failed: computed property "${w}" is readonly.`)},v=Qt({get:g,set:s});Object.defineProperty(i,w,{enumerable:!0,configurable:!0,get:()=>v.value,set:T=>v.value=T}),h("Computed",w)}if(c)for(const w in c)q2(c[w],i,r,w);if(d){const w=Qe(d)?d.call(r):d;Reflect.ownKeys(w).forEach(x=>{Cf(x,w[x])})}M&&Sm(M,e,"c");function p(w,x){ze(x)?x.forEach(g=>w(g.bind(r))):x&&w(x.bind(r))}if(p(N2,S),p(Ns,R),p(Rv,C),p(bh,P),p(C2,k),p(B2,L),p(F2,J),p(D2,Y),p($2,ie),p(wh,B),p(_h,F),p(k2,V),ze(oe))if(oe.length){const w=e.exposed||(e.exposed={});oe.forEach(x=>{Object.defineProperty(w,x,{get:()=>r[x],set:g=>r[x]=g})})}else e.exposed||(e.exposed={});W&&e.render===qr&&(e.render=W),_!=null&&(e.inheritAttrs=_),o&&(e.components=o),f&&(e.directives=f)}function g5(e,t,r=qr){ze(e)&&(e=W0(e));for(const i in e){const a=e[i];let n;Rt(a)?"default"in a?n=tn(a.from||i,a.default,!0):n=tn(a.from||i):n=tn(a),Xt(n)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>n.value,set:u=>n.value=u}):t[i]=n,r("Inject",i)}}function Sm(e,t,r){Zr(ze(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,r)}function q2(e,t,r,i){const a=i.includes(".")?T2(r,i):()=>r[i];if(Vt(e)){const n=t[e];Qe(n)?lr(a,n):Ue(`Invalid watch handler specified by key "${e}"`,n)}else if(Qe(e))lr(a,e.bind(r));else if(Rt(e))if(ze(e))e.forEach(n=>q2(n,t,r,i));else{const n=Qe(e.handler)?e.handler.bind(r):t[e.handler];Qe(n)?lr(a,n,e):Ue(`Invalid watch handler specified by key "${e.handler}"`,n)}else Ue(`Invalid watch option: "${i}"`,e)}function Ov(e){const t=e.type,{mixins:r,extends:i}=t,{mixins:a,optionsCache:n,config:{optionMergeStrategies:u}}=e.appContext,c=n.get(t);let d;return c?d=c:!a.length&&!r&&!i?d=t:(d={},a.length&&a.forEach(m=>Ll(d,m,u,!0)),Ll(d,t,u)),Rt(t)&&n.set(t,d),d}function Ll(e,t,r,i=!1){const{mixins:a,extends:n}=t;n&&Ll(e,n,r,!0),a&&a.forEach(u=>Ll(e,u,r,!0));for(const u in t)if(i&&u==="expose")Ue('"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.');else{const c=m5[u]||r&&r[u];e[u]=c?c(e[u],t[u]):t[u]}return e}const m5={data:xm,props:Em,emits:Em,methods:Mf,computed:Mf,beforeCreate:Cr,created:Cr,beforeMount:Cr,mounted:Cr,beforeUpdate:Cr,updated:Cr,beforeDestroy:Cr,beforeUnmount:Cr,destroyed:Cr,unmounted:Cr,activated:Cr,deactivated:Cr,errorCaptured:Cr,serverPrefetch:Cr,components:Mf,directives:Mf,watch:b5,provide:xm,inject:y5};function xm(e,t){return t?e?function(){return Pt(Qe(e)?e.call(this,this):e,Qe(t)?t.call(this,this):t)}:t:e}function y5(e,t){return Mf(W0(e),W0(t))}function W0(e){if(ze(e)){const t={};for(let r=0;r<e.length;r++)t[e[r]]=e[r];return t}return e}function Cr(e,t){return e?[...new Set([].concat(e,t))]:t}function Mf(e,t){return e?Pt(Object.create(null),e,t):t}function Em(e,t){return e?ze(e)&&ze(t)?[...new Set([...e,...t])]:Pt(Object.create(null),Yf(e),Yf(t??{})):t}function b5(e,t){if(!e)return t;if(!t)return e;const r=Pt(Object.create(null),e);for(const i in t)r[i]=Cr(e[i],t[i]);return r}function W2(){return{app:null,config:{isNativeTag:qw,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let w5=0;function _5(e,t){return function(i,a=null){Qe(i)||(i=Pt({},i)),a!=null&&!Rt(a)&&(Ue("root props passed to app.mount() must be an object."),a=null);const n=W2();Object.defineProperty(n.config,"unwrapInjectedRef",{get(){return!0},set(){Ue("app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.")}});const u=new Set;let c=!1;const d=n.app={_uid:w5++,_component:i,_props:a,_container:null,_context:n,_instance:null,version:Q0,get config(){return n.config},set config(m){Ue("app.config cannot be replaced. Modify individual options instead.")},use(m,...M){return u.has(m)?Ue("Plugin has already been applied to target app."):m&&Qe(m.install)?(u.add(m),m.install(d,...M)):Qe(m)?(u.add(m),m(d,...M)):Ue('A plugin must either be a function or an object with an "install" function.'),d},mixin(m){return n.mixins.includes(m)?Ue("Mixin has already been applied to target app"+(m.name?`: ${m.name}`:"")):n.mixins.push(m),d},component(m,M){return Z0(m,n.config),M?(n.components[m]&&Ue(`Component "${m}" has already been registered in target app.`),n.components[m]=M,d):n.components[m]},directive(m,M){return O2(m),M?(n.directives[m]&&Ue(`Directive "${m}" has already been registered in target app.`),n.directives[m]=M,d):n.directives[m]},mount(m,M,S){if(c)Ue("App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. `const createMyApp = () => createApp(App)`");else{m.__vue_app__&&Ue("There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling `app.unmount()` first.");const R=Zt(i,a);return R.appContext=n,n.reload=()=>{e(di(R),m,S)},M&&t?t(R,m):e(R,m,S),c=!0,d._container=m,m.__vue_app__=d,d._instance=R.component,m8(d,Q0),Sh(R.component)||R.component.proxy}},unmount(){c?(e(null,d._container),d._instance=null,y8(d),delete d._container.__vue_app__):Ue("Cannot unmount an app that is not mounted.")},provide(m,M){return m in n.provides&&Ue(`App already provides property with key "${String(m)}". It will be overwritten with the new value.`),n.provides[m]=M,d},runWithContext(m){Zf=d;try{return m()}finally{Zf=null}}};return d}}let Zf=null;function Cf(e,t){if(!er)Ue("provide() can only be used inside setup().");else{let r=er.provides;const i=er.parent&&er.parent.provides;i===r&&(r=er.provides=Object.create(i)),r[e]=t}}function tn(e,t,r=!1){const i=er||tr;if(i||Zf){const a=i?i.parent==null?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:Zf._context.provides;if(a&&e in a)return a[e];if(arguments.length>1)return r&&Qe(t)?t.call(i&&i.proxy):t;Ue(`injection "${String(e)}" not found.`)}else Ue("inject() can only be used inside setup() or functional components.")}function M5(){return!!(er||tr||Zf)}function S5(e,t,r,i=!1){const a={},n={};El(n,Mh,1),e.propsDefaults=Object.create(null),K2(e,t,a,n);for(const u in e.propsOptions[0])u in a||(a[u]=void 0);z2(t||{},a,e),r?e.props=i?a:l2(a):e.type.props?e.props=a:e.props=n,e.attrs=n}function x5(e){for(;e;){if(e.type.__hmrId)return!0;e=e.parent}}function E5(e,t,r,i){const{props:a,attrs:n,vnode:{patchFlag:u}}=e,c=lt(a),[d]=e.propsOptions;let m=!1;if(!x5(e)&&(i||u>0)&&!(u&16)){if(u&8){const M=e.vnode.dynamicProps;for(let S=0;S<M.length;S++){let R=M[S];if(vh(e.emitsOptions,R))continue;const C=t[R];if(d)if(wt(n,R))C!==n[R]&&(n[R]=C,m=!0);else{const P=Kr(R);a[P]=K0(d,c,P,C,e,!1)}else C!==n[R]&&(n[R]=C,m=!0)}}}else{K2(e,t,a,n)&&(m=!0);let M;for(const S in c)(!t||!wt(t,S)&&((M=Hr(S))===S||!wt(t,M)))&&(d?r&&(r[S]!==void 0||r[M]!==void 0)&&(a[S]=K0(d,c,S,void 0,e,!0)):delete a[S]);if(n!==c)for(const S in n)(!t||!wt(t,S))&&(delete n[S],m=!0)}m&&an(e,"set","$attrs"),z2(t||{},a,e)}function K2(e,t,r,i){const[a,n]=e.propsOptions;let u=!1,c;if(t)for(let d in t){if(Af(d))continue;const m=t[d];let M;a&&wt(a,M=Kr(d))?!n||!n.includes(M)?r[M]=m:(c||(c={}))[M]=m:vh(e.emitsOptions,d)||(!(d in i)||m!==i[d])&&(i[d]=m,u=!0)}if(n){const d=lt(r),m=c||$t;for(let M=0;M<n.length;M++){const S=n[M];r[S]=K0(a,d,S,m[S],e,!wt(m,S))}}return u}function K0(e,t,r,i,a,n){const u=e[r];if(u!=null){const c=wt(u,"default");if(c&&i===void 0){const d=u.default;if(u.type!==Function&&!u.skipFactory&&Qe(d)){const{propsDefaults:m}=a;r in m?i=m[r]:(Eo(a),i=m[r]=d.call(null,t),yo())}else i=d}u[0]&&(n&&!c?i=!1:u[1]&&(i===""||i===Hr(r))&&(i=!0))}return i}function V2(e,t,r=!1){const i=t.propsCache,a=i.get(e);if(a)return a;const n=e.props,u={},c=[];let d=!1;if(!Qe(e)){const M=S=>{d=!0;const[R,C]=V2(S,t,!0);Pt(u,R),C&&c.push(...C)};!r&&t.mixins.length&&t.mixins.forEach(M),e.extends&&M(e.extends),e.mixins&&e.mixins.forEach(M)}if(!n&&!d)return Rt(e)&&i.set(e,Ga),Ga;if(ze(n))for(let M=0;M<n.length;M++){Vt(n[M])||Ue("props must be strings when using array syntax.",n[M]);const S=Kr(n[M]);Rm(S)&&(u[S]=$t)}else if(n){Rt(n)||Ue("invalid props options",n);for(const M in n){const S=Kr(M);if(Rm(S)){const R=n[M],C=u[S]=ze(R)||Qe(R)?{type:R}:Pt({},R);if(C){const P=Tm(Boolean,C.type),k=Tm(String,C.type);C[0]=P>-1,C[1]=k<0||P<k,(P>-1||wt(C,"default"))&&c.push(S)}}}}const m=[u,c];return Rt(e)&&i.set(e,m),m}function Rm(e){return e[0]!=="$"?!0:(Ue(`Invalid prop name: "${e}" is a reserved property.`),!1)}function V0(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Am(e,t){return V0(e)===V0(t)}function Tm(e,t){return ze(t)?t.findIndex(r=>Am(r,e)):Qe(t)&&Am(t,e)?0:-1}function z2(e,t,r){const i=lt(t),a=r.propsOptions[0];for(const n in a){let u=a[n];u!=null&&R5(n,i[n],u,!wt(e,n)&&!wt(e,Hr(n)))}}function R5(e,t,r,i){const{type:a,required:n,validator:u,skipCheck:c}=r;if(n&&i){Ue('Missing required prop: "'+e+'"');return}if(!(t==null&&!n)){if(a!=null&&a!==!0&&!c){let d=!1;const m=ze(a)?a:[a],M=[];for(let S=0;S<m.length&&!d;S++){const{valid:R,expectedType:C}=T5(t,m[S]);M.push(C||""),d=R}if(!d){Ue(O5(e,t,M));return}}u&&!u(t)&&Ue('Invalid prop: custom validator check failed for prop "'+e+'".')}}const A5=Kn("String,Number,Boolean,Function,Symbol,BigInt");function T5(e,t){let r;const i=V0(t);if(A5(i)){const a=typeof e;r=a===i.toLowerCase(),!r&&a==="object"&&(r=e instanceof t)}else i==="Object"?r=Rt(e):i==="Array"?r=ze(e):i==="null"?r=e===null:r=e instanceof t;return{valid:r,expectedType:i}}function O5(e,t,r){let i=`Invalid prop: type check failed for prop "${e}". Expected ${r.map(_o).join(" | ")}`;const a=r[0],n=nv(t),u=Om(t,a),c=Om(t,n);return r.length===1&&Im(a)&&!I5(a,n)&&(i+=` with value ${u}`),i+=`, got ${n} `,Im(n)&&(i+=`with value ${c}.`),i}function Om(e,t){return t==="String"?`"${e}"`:t==="Number"?`${Number(e)}`:`${e}`}function Im(e){return["string","number","boolean"].some(r=>e.toLowerCase()===r)}function I5(...e){return e.some(t=>t.toLowerCase()==="boolean")}const G2=e=>e[0]==="_"||e==="$stable",Iv=e=>ze(e)?e.map(Ur):[Ur(e)],P5=(e,t,r)=>{if(t._n)return t;const i=wv((...a)=>(er&&Ue(`Slot "${e}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`),Iv(t(...a))),r);return i._c=!1,i},Y2=(e,t,r)=>{const i=e._ctx;for(const a in e){if(G2(a))continue;const n=e[a];if(Qe(n))t[a]=P5(a,n,i);else if(n!=null){Ue(`Non-function value encountered for slot "${a}". Prefer function slots for better performance.`);const u=Iv(n);t[a]=()=>u}}},Z2=(e,t)=>{Ls(e.vnode)||Ue("Non-function value encountered for default slot. Prefer function slots for better performance.");const r=Iv(t);e.slots.default=()=>r},C5=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=lt(t),El(t,"_",r)):Y2(t,e.slots={})}else e.slots={},t&&Z2(e,t);El(e.slots,Mh,1)},B5=(e,t,r)=>{const{vnode:i,slots:a}=e;let n=!0,u=$t;if(i.shapeFlag&32){const c=t._;c?go?(Pt(a,t),an(e,"set","$slots")):r&&c===1?n=!1:(Pt(a,t),!r&&c===1&&delete a._):(n=!t.$stable,Y2(t,a)),u=t}else t&&(Z2(e,t),u={default:1});if(n)for(const c in a)!G2(c)&&!(c in u)&&delete a[c]};function Nl(e,t,r,i,a=!1){if(ze(e)){e.forEach((R,C)=>Nl(R,t&&(ze(t)?t[C]:t),r,i,a));return}if(ra(i)&&!a)return;const n=i.shapeFlag&4?Sh(i.component)||i.component.proxy:i.el,u=a?null:n,{i:c,r:d}=e;if(!c){Ue("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const m=t&&t.r,M=c.refs===$t?c.refs={}:c.refs,S=c.setupState;if(m!=null&&m!==d&&(Vt(m)?(M[m]=null,wt(S,m)&&(S[m]=null)):Xt(m)&&(m.value=null)),Qe(d))en(d,c,12,[u,M]);else{const R=Vt(d),C=Xt(d);if(R||C){const P=()=>{if(e.f){const k=R?wt(S,d)?S[d]:M[d]:d.value;a?ze(k)&&iv(k,n):ze(k)?k.includes(n)||k.push(n):R?(M[d]=[n],wt(S,d)&&(S[d]=M[d])):(d.value=[n],e.k&&(M[e.k]=d.value))}else R?(M[d]=u,wt(S,d)&&(S[d]=u)):C?(d.value=u,e.k&&(M[e.k]=u)):Ue("Invalid template ref type:",d,`(${typeof d})`)};u?(P.id=-1,gr(P,r)):P()}else Ue("Invalid template ref type:",d,`(${typeof d})`)}}let Jn=!1;const Wu=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Gs=e=>e.nodeType===8;function L5(e){const{mt:t,p:r,o:{patchProp:i,createText:a,nextSibling:n,parentNode:u,remove:c,insert:d,createComment:m}}=e,M=(I,B)=>{if(!B.hasChildNodes()){Ue("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),r(null,I,B),Pl(),B._vnode=I;return}Jn=!1,S(B.firstChild,I,null,null,null),Pl(),B._vnode=I,Jn&&console.error("Hydration completed but contains mismatches.")},S=(I,B,H,F,W,Y=!1)=>{const ie=Gs(I)&&I.data==="[",J=()=>k(I,B,H,F,W,ie),{type:V,ref:oe,shapeFlag:_,patchFlag:o}=B;let f=I.nodeType;B.el=I,o===-2&&(Y=!1,B.dynamicChildren=null);let l=null;switch(V){case xo:f!==3?B.children===""?(d(B.el=a(""),u(I),I),l=I):l=J():(I.data!==B.children&&(Jn=!0,Ue(`Hydration text mismatch:
+- Client: ${JSON.stringify(I.data)}
+- Server: ${JSON.stringify(B.children)}`),I.data=B.children),l=n(I));break;case rr:f!==8||ie?l=J():l=n(I);break;case mo:if(ie&&(I=n(I),f=I.nodeType),f===1||f===3){l=I;const h=!B.children.length;for(let p=0;p<B.staticCount;p++)h&&(B.children+=l.nodeType===1?l.outerHTML:l.data),p===B.staticCount-1&&(B.anchor=l),l=n(l);return ie?n(l):l}else J();break;case Lt:ie?l=P(I,B,H,F,W,Y):l=J();break;default:if(_&1)f!==1||B.type.toLowerCase()!==I.tagName.toLowerCase()?l=J():l=R(I,B,H,F,W,Y);else if(_&6){B.slotScopeIds=W;const h=u(I);if(t(B,h,null,H,F,Wu(h),Y),l=ie?L(I):n(I),l&&Gs(l)&&l.data==="teleport end"&&(l=n(l)),ra(B)){let p;ie?(p=Zt(Lt),p.anchor=l?l.previousSibling:h.lastChild):p=I.nodeType===3?Cv(""):Zt("div"),p.el=I,B.component.subTree=p}}else _&64?f!==8?l=J():l=B.type.hydrate(I,B,H,F,W,Y,e,C):_&128?l=B.type.hydrate(I,B,H,F,Wu(u(I)),W,Y,e,S):Ue("Invalid HostVNode type:",V,`(${typeof V})`)}return oe!=null&&Nl(oe,null,F,B),l},R=(I,B,H,F,W,Y)=>{Y=Y||!!B.dynamicChildren;const{type:ie,props:J,patchFlag:V,shapeFlag:oe,dirs:_}=B,o=ie==="input"&&_||ie==="option";{if(_&&Zi(B,null,H,"created"),J)if(o||!Y||V&48)for(const l in J)(o&&l.endsWith("value")||Ps(l)&&!Af(l))&&i(I,l,null,J[l],!1,void 0,H);else J.onClick&&i(I,"onClick",null,J.onClick,!1,void 0,H);let f;if((f=J&&J.onVnodeBeforeMount)&&Dr(f,H,B),_&&Zi(B,null,H,"beforeMount"),((f=J&&J.onVnodeMounted)||_)&&E2(()=>{f&&Dr(f,H,B),_&&Zi(B,null,H,"mounted")},F),oe&16&&!(J&&(J.innerHTML||J.textContent))){let l=C(I.firstChild,B,I,H,F,W,Y),h=!1;for(;l;){Jn=!0,h||(Ue(`Hydration children mismatch in <${B.type}>: server rendered element contains more child nodes than client vdom.`),h=!0);const p=l;l=l.nextSibling,c(p)}}else oe&8&&I.textContent!==B.children&&(Jn=!0,Ue(`Hydration text content mismatch in <${B.type}>:
+- Client: ${I.textContent}
+- Server: ${B.children}`),I.textContent=B.children)}return I.nextSibling},C=(I,B,H,F,W,Y,ie)=>{ie=ie||!!B.dynamicChildren;const J=B.children,V=J.length;let oe=!1;for(let _=0;_<V;_++){const o=ie?J[_]:J[_]=Ur(J[_]);if(I)I=S(I,o,F,W,Y,ie);else{if(o.type===xo&&!o.children)continue;Jn=!0,oe||(Ue(`Hydration children mismatch in <${H.tagName.toLowerCase()}>: server rendered element contains fewer child nodes than client vdom.`),oe=!0),r(null,o,H,null,F,W,Wu(H),Y)}}return I},P=(I,B,H,F,W,Y)=>{const{slotScopeIds:ie}=B;ie&&(W=W?W.concat(ie):ie);const J=u(I),V=C(n(I),B,J,H,F,W,Y);return V&&Gs(V)&&V.data==="]"?n(B.anchor=V):(Jn=!0,d(B.anchor=m("]"),J,V),V)},k=(I,B,H,F,W,Y)=>{if(Jn=!0,Ue(`Hydration node mismatch:
+- Client vnode:`,B.type,`
+- Server rendered DOM:`,I,I.nodeType===3?"(text)":Gs(I)&&I.data==="["?"(start of fragment)":""),B.el=null,Y){const V=L(I);for(;;){const oe=n(I);if(oe&&oe!==V)c(oe);else break}}const ie=n(I),J=u(I);return c(I),r(null,B,J,ie,H,F,Wu(J),W),ie},L=I=>{let B=0;for(;I;)if(I=n(I),I&&Gs(I)&&(I.data==="["&&B++,I.data==="]")){if(B===0)return n(I);B--}return I};return[M,S]}let Ys,fo;function bn(e,t){e.appContext.config.performance&&kl()&&fo.mark(`vue-${t}-${e.uid}`),_8(e,t,kl()?fo.now():Date.now())}function wn(e,t){if(e.appContext.config.performance&&kl()){const r=`vue-${t}-${e.uid}`,i=r+":end";fo.mark(i),fo.measure(`<${xh(e,e.type)}> ${t}`,r,i),fo.clearMarks(r),fo.clearMarks(i)}M8(e,t,kl()?fo.now():Date.now())}function kl(){return Ys!==void 0||(typeof window<"u"&&window.performance?(Ys=!0,fo=window.performance):Ys=!1),Ys}function N5(){const e=[];if(e.length){const t=e.length>1;console.warn(`Feature flag${t?"s":""} ${e.join(", ")} ${t?"are":"is"} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.
+
+For more details, see https://link.vuejs.org/feature-flags.`)}}const gr=E2;function X2(e){return Q2(e)}function J2(e){return Q2(e,L5)}function Q2(e,t){N5();const r=Tl();r.__VUE__=!0,yv(r.__VUE_DEVTOOLS_GLOBAL_HOOK__,r);const{insert:i,remove:a,patchProp:n,createElement:u,createText:c,createComment:d,setText:m,setElementText:M,parentNode:S,nextSibling:R,setScopeId:C=qr,insertStaticContent:P}=e,k=(O,q,X,D=null,N=null,j=null,z=!1,se=null,te=go?!1:!!q.dynamicChildren)=>{if(O===q)return;O&&!Li(O,q)&&(D=U(O),$(O,N,j,!0),O=null),q.patchFlag===-2&&(te=!1,q.dynamicChildren=null);const{type:ne,ref:Ee,shapeFlag:Q}=q;switch(ne){case xo:L(O,q,X,D);break;case rr:I(O,q,X,D);break;case mo:O==null?B(q,X,D,z):H(O,q,X,z);break;case Lt:f(O,q,X,D,N,j,z,se,te);break;default:Q&1?Y(O,q,X,D,N,j,z,se,te):Q&6?l(O,q,X,D,N,j,z,se,te):Q&64||Q&128?ne.process(O,q,X,D,N,j,z,se,te,Z):Ue("Invalid VNode type:",ne,`(${typeof ne})`)}Ee!=null&&N&&Nl(Ee,O&&O.ref,j,q||O,!q)},L=(O,q,X,D)=>{if(O==null)i(q.el=c(q.children),X,D);else{const N=q.el=O.el;q.children!==O.children&&m(N,q.children)}},I=(O,q,X,D)=>{O==null?i(q.el=d(q.children||""),X,D):q.el=O.el},B=(O,q,X,D)=>{[O.el,O.anchor]=P(O.children,q,X,D,O.el,O.anchor)},H=(O,q,X,D)=>{if(q.children!==O.children){const N=R(O.anchor);W(O),[q.el,q.anchor]=P(q.children,X,N,D)}else q.el=O.el,q.anchor=O.anchor},F=({el:O,anchor:q},X,D)=>{let N;for(;O&&O!==q;)N=R(O),i(O,X,D),O=N;i(q,X,D)},W=({el:O,anchor:q})=>{let X;for(;O&&O!==q;)X=R(O),a(O),O=X;a(q)},Y=(O,q,X,D,N,j,z,se,te)=>{z=z||q.type==="svg",O==null?ie(q,X,D,N,j,z,se,te):oe(O,q,N,j,z,se,te)},ie=(O,q,X,D,N,j,z,se)=>{let te,ne;const{type:Ee,props:Q,shapeFlag:ue,transition:le,dirs:ce}=O;if(te=O.el=u(O.type,j,Q&&Q.is,Q),ue&8?M(te,O.children):ue&16&&V(O.children,te,null,D,N,j&&Ee!=="foreignObject",z,se),ce&&Zi(O,null,D,"created"),J(te,O,O.scopeId,z,D),Q){for(const de in Q)de!=="value"&&!Af(de)&&n(te,de,null,Q[de],j,O.children,D,N,E);"value"in Q&&n(te,"value",null,Q.value),(ne=Q.onVnodeBeforeMount)&&Dr(ne,D,O)}Object.defineProperty(te,"__vnode",{value:O,enumerable:!1}),Object.defineProperty(te,"__vueParentComponent",{value:D,enumerable:!1}),ce&&Zi(O,null,D,"beforeMount");const pe=(!N||N&&!N.pendingBranch)&&le&&!le.persisted;pe&&le.beforeEnter(te),i(te,q,X),((ne=Q&&Q.onVnodeMounted)||pe||ce)&&gr(()=>{ne&&Dr(ne,D,O),pe&&le.enter(te),ce&&Zi(O,null,D,"mounted")},N)},J=(O,q,X,D,N)=>{if(X&&C(O,X),D)for(let j=0;j<D.length;j++)C(O,D[j]);if(N){let j=N.subTree;if(j.patchFlag>0&&j.patchFlag&2048&&(j=_v(j.children)||j),q===j){const z=N.vnode;J(O,z,z.scopeId,z.slotScopeIds,N.parent)}}},V=(O,q,X,D,N,j,z,se,te=0)=>{for(let ne=te;ne<O.length;ne++){const Ee=O[ne]=se?no(O[ne]):Ur(O[ne]);k(null,Ee,q,X,D,N,j,z,se)}},oe=(O,q,X,D,N,j,z)=>{const se=q.el=O.el;let{patchFlag:te,dynamicChildren:ne,dirs:Ee}=q;te|=O.patchFlag&16;const Q=O.props||$t,ue=q.props||$t;let le;X&&Fo(X,!1),(le=ue.onVnodeBeforeUpdate)&&Dr(le,X,q,O),Ee&&Zi(q,O,X,"beforeUpdate"),X&&Fo(X,!0),go&&(te=0,z=!1,ne=null);const ce=N&&q.type!=="foreignObject";if(ne?(_(O.dynamicChildren,ne,se,X,D,ce,j),$l(O,q)):z||g(O,q,se,null,X,D,ce,j,!1),te>0){if(te&16)o(se,q,Q,ue,X,D,N);else if(te&2&&Q.class!==ue.class&&n(se,"class",null,ue.class,N),te&4&&n(se,"style",Q.style,ue.style,N),te&8){const pe=q.dynamicProps;for(let de=0;de<pe.length;de++){const ae=pe[de],fe=Q[ae],Te=ue[ae];(Te!==fe||ae==="value")&&n(se,ae,fe,Te,N,O.children,X,D,E)}}te&1&&O.children!==q.children&&M(se,q.children)}else!z&&ne==null&&o(se,q,Q,ue,X,D,N);((le=ue.onVnodeUpdated)||Ee)&&gr(()=>{le&&Dr(le,X,q,O),Ee&&Zi(q,O,X,"updated")},D)},_=(O,q,X,D,N,j,z)=>{for(let se=0;se<q.length;se++){const te=O[se],ne=q[se],Ee=te.el&&(te.type===Lt||!Li(te,ne)||te.shapeFlag&70)?S(te.el):X;k(te,ne,Ee,null,D,N,j,z,!0)}},o=(O,q,X,D,N,j,z)=>{if(X!==D){if(X!==$t)for(const se in X)!Af(se)&&!(se in D)&&n(O,se,X[se],null,z,q.children,N,j,E);for(const se in D){if(Af(se))continue;const te=D[se],ne=X[se];te!==ne&&se!=="value"&&n(O,se,ne,te,z,q.children,N,j,E)}"value"in D&&n(O,"value",X.value,D.value)}},f=(O,q,X,D,N,j,z,se,te)=>{const ne=q.el=O?O.el:c(""),Ee=q.anchor=O?O.anchor:c("");let{patchFlag:Q,dynamicChildren:ue,slotScopeIds:le}=q;(go||Q&2048)&&(Q=0,te=!1,ue=null),le&&(se=se?se.concat(le):le),O==null?(i(ne,X,D),i(Ee,X,D),V(q.children,X,Ee,N,j,z,se,te)):Q>0&&Q&64&&ue&&O.dynamicChildren?(_(O.dynamicChildren,ue,X,N,j,z,se),$l(O,q)):g(O,q,X,Ee,N,j,z,se,te)},l=(O,q,X,D,N,j,z,se,te)=>{q.slotScopeIds=se,O==null?q.shapeFlag&512?N.ctx.activate(q,X,D,z,te):h(q,X,D,N,j,z,te):p(O,q,te)},h=(O,q,X,D,N,j,z)=>{const se=O.component=s_(O,D,N);if(se.type.__hmrId&&d8(se),Tf(O),bn(se,"mount"),Ls(O)&&(se.ctx.renderer=Z),bn(se,"init"),u_(se),wn(se,"init"),se.asyncDep){if(N&&N.registerDep(se,w),!O.el){const te=se.subTree=Zt(rr);I(null,te,q,X)}return}w(se,O,q,X,N,j,z),Of(),wn(se,"mount")},p=(O,q,X)=>{const D=q.component=O.component;if(O8(O,q,X))if(D.asyncDep&&!D.asyncResolved){Tf(q),x(D,q,X),Of();return}else D.next=q,h8(D.update),D.update();else q.el=O.el,D.vnode=q},w=(O,q,X,D,N,j,z)=>{const se=()=>{if(O.isMounted){let{next:Ee,bu:Q,u:ue,parent:le,vnode:ce}=O,pe=Ee,de;Tf(Ee||O.vnode),Fo(O,!1),Ee?(Ee.el=ce.el,x(O,Ee,z)):Ee=ce,Q&&so(Q),(de=Ee.props&&Ee.props.onVnodeBeforeUpdate)&&Dr(de,le,Ee,ce),Fo(O,!0),bn(O,"render");const ae=nl(O);wn(O,"render");const fe=O.subTree;O.subTree=ae,bn(O,"patch"),k(fe,ae,S(fe.el),U(fe),O,N,j),wn(O,"patch"),Ee.el=ae.el,pe===null&&Mv(O,ae.el),ue&&gr(ue,N),(de=Ee.props&&Ee.props.onVnodeUpdated)&&gr(()=>Dr(de,le,Ee,ce),N),b2(O),Of()}else{let Ee;const{el:Q,props:ue}=q,{bm:le,m:ce,parent:pe}=O,de=ra(q);if(Fo(O,!1),le&&so(le),!de&&(Ee=ue&&ue.onVnodeBeforeMount)&&Dr(Ee,pe,q),Fo(O,!0),Q&&y){const ae=()=>{bn(O,"render"),O.subTree=nl(O),wn(O,"render"),bn(O,"hydrate"),y(Q,O.subTree,O,N,null),wn(O,"hydrate")};de?q.type.__asyncLoader().then(()=>!O.isUnmounted&&ae()):ae()}else{bn(O,"render");const ae=O.subTree=nl(O);wn(O,"render"),bn(O,"patch"),k(null,ae,X,D,O,N,j),wn(O,"patch"),q.el=ae.el}if(ce&&gr(ce,N),!de&&(Ee=ue&&ue.onVnodeMounted)){const ae=q;gr(()=>Dr(Ee,pe,ae),N)}(q.shapeFlag&256||pe&&ra(pe.vnode)&&pe.vnode.shapeFlag&256)&&O.a&&gr(O.a,N),O.isMounted=!0,F0(O),q=X=D=null}},te=O.effect=new uu(se,()=>lu(ne),O.scope),ne=O.update=()=>te.run();ne.id=O.uid,Fo(O,!0),te.onTrack=O.rtc?Ee=>so(O.rtc,Ee):void 0,te.onTrigger=O.rtg?Ee=>so(O.rtg,Ee):void 0,ne.ownerInstance=O,ne()},x=(O,q,X)=>{q.component=O;const D=O.vnode.props;O.vnode=q,O.next=null,E5(O,q.props,D,X),B5(O,q.children,X),ma(),vm(),ya()},g=(O,q,X,D,N,j,z,se,te=!1)=>{const ne=O&&O.children,Ee=O?O.shapeFlag:0,Q=q.children,{patchFlag:ue,shapeFlag:le}=q;if(ue>0){if(ue&128){v(ne,Q,X,D,N,j,z,se,te);return}else if(ue&256){s(ne,Q,X,D,N,j,z,se,te);return}}le&8?(Ee&16&&E(ne,N,j),Q!==ne&&M(X,Q)):Ee&16?le&16?v(ne,Q,X,D,N,j,z,se,te):E(ne,N,j,!0):(Ee&8&&M(X,""),le&16&&V(Q,X,D,N,j,z,se,te))},s=(O,q,X,D,N,j,z,se,te)=>{O=O||Ga,q=q||Ga;const ne=O.length,Ee=q.length,Q=Math.min(ne,Ee);let ue;for(ue=0;ue<Q;ue++){const le=q[ue]=te?no(q[ue]):Ur(q[ue]);k(O[ue],le,X,null,N,j,z,se,te)}ne>Ee?E(O,N,j,!0,!1,Q):V(q,X,D,N,j,z,se,te,Q)},v=(O,q,X,D,N,j,z,se,te)=>{let ne=0;const Ee=q.length;let Q=O.length-1,ue=Ee-1;for(;ne<=Q&&ne<=ue;){const le=O[ne],ce=q[ne]=te?no(q[ne]):Ur(q[ne]);if(Li(le,ce))k(le,ce,X,null,N,j,z,se,te);else break;ne++}for(;ne<=Q&&ne<=ue;){const le=O[Q],ce=q[ue]=te?no(q[ue]):Ur(q[ue]);if(Li(le,ce))k(le,ce,X,null,N,j,z,se,te);else break;Q--,ue--}if(ne>Q){if(ne<=ue){const le=ue+1,ce=le<Ee?q[le].el:D;for(;ne<=ue;)k(null,q[ne]=te?no(q[ne]):Ur(q[ne]),X,ce,N,j,z,se,te),ne++}}else if(ne>ue)for(;ne<=Q;)$(O[ne],N,j,!0),ne++;else{const le=ne,ce=ne,pe=new Map;for(ne=ce;ne<=ue;ne++){const be=q[ne]=te?no(q[ne]):Ur(q[ne]);be.key!=null&&(pe.has(be.key)&&Ue("Duplicate keys found during update:",JSON.stringify(be.key),"Make sure keys are unique."),pe.set(be.key,ne))}let de,ae=0;const fe=ue-ce+1;let Te=!1,ve=0;const Me=new Array(fe);for(ne=0;ne<fe;ne++)Me[ne]=0;for(ne=le;ne<=Q;ne++){const be=O[ne];if(ae>=fe){$(be,N,j,!0);continue}let Se;if(be.key!=null)Se=pe.get(be.key);else for(de=ce;de<=ue;de++)if(Me[de-ce]===0&&Li(be,q[de])){Se=de;break}Se===void 0?$(be,N,j,!0):(Me[Se-ce]=ne+1,Se>=ve?ve=Se:Te=!0,k(be,q[Se],X,null,N,j,z,se,te),ae++)}const Ke=Te?k5(Me):Ga;for(de=Ke.length-1,ne=fe-1;ne>=0;ne--){const be=ce+ne,Se=q[be],qe=be+1<Ee?q[be+1].el:D;Me[ne]===0?k(null,Se,X,qe,N,j,z,se,te):Te&&(de<0||ne!==Ke[de]?T(Se,X,qe,2):de--)}}},T=(O,q,X,D,N=null)=>{const{el:j,type:z,transition:se,children:te,shapeFlag:ne}=O;if(ne&6){T(O.component.subTree,q,X,D);return}if(ne&128){O.suspense.move(q,X,D);return}if(ne&64){z.move(O,q,X,Z);return}if(z===Lt){i(j,q,X);for(let Q=0;Q<te.length;Q++)T(te[Q],q,X,D);i(O.anchor,q,X);return}if(z===mo){F(O,q,X);return}if(D!==2&&ne&1&&se)if(D===0)se.beforeEnter(j),i(j,q,X),gr(()=>se.enter(j),N);else{const{leave:Q,delayLeave:ue,afterLeave:le}=se,ce=()=>i(j,q,X),pe=()=>{Q(j,()=>{ce(),le&&le()})};ue?ue(j,ce,pe):pe()}else i(j,q,X)},$=(O,q,X,D=!1,N=!1)=>{const{type:j,props:z,ref:se,children:te,dynamicChildren:ne,shapeFlag:Ee,patchFlag:Q,dirs:ue}=O;if(se!=null&&Nl(se,null,X,O,!0),Ee&256){q.ctx.deactivate(O);return}const le=Ee&1&&ue,ce=!ra(O);let pe;if(ce&&(pe=z&&z.onVnodeBeforeUnmount)&&Dr(pe,q,O),Ee&6)A(O.component,X,D);else{if(Ee&128){O.suspense.unmount(X,D);return}le&&Zi(O,null,q,"beforeUnmount"),Ee&64?O.type.remove(O,q,X,N,Z,D):ne&&(j!==Lt||Q>0&&Q&64)?E(ne,q,X,!1,!0):(j===Lt&&Q&384||!N&&Ee&16)&&E(te,q,X),D&&G(O)}(ce&&(pe=z&&z.onVnodeUnmounted)||le)&&gr(()=>{pe&&Dr(pe,q,O),le&&Zi(O,null,q,"unmounted")},X)},G=O=>{const{type:q,el:X,anchor:D,transition:N}=O;if(q===Lt){O.patchFlag>0&&O.patchFlag&2048&&N&&!N.persisted?O.children.forEach(z=>{z.type===rr?a(z.el):G(z)}):ee(X,D);return}if(q===mo){W(O);return}const j=()=>{a(X),N&&!N.persisted&&N.afterLeave&&N.afterLeave()};if(O.shapeFlag&1&&N&&!N.persisted){const{leave:z,delayLeave:se}=N,te=()=>z(X,j);se?se(O.el,j,te):te()}else j()},ee=(O,q)=>{let X;for(;O!==q;)X=R(O),a(O),O=X;a(q)},A=(O,q,X)=>{O.type.__hmrId&&p8(O);const{bum:D,scope:N,update:j,subTree:z,um:se}=O;D&&so(D),N.stop(),j&&(j.active=!1,$(z,O,q,X)),se&&gr(se,q),gr(()=>{O.isUnmounted=!0},q),q&&q.pendingBranch&&!q.isUnmounted&&O.asyncDep&&!O.asyncResolved&&O.suspenseId===q.pendingId&&(q.deps--,q.deps===0&&q.resolve()),w8(O)},E=(O,q,X,D=!1,N=!1,j=0)=>{for(let z=j;z<O.length;z++)$(O[z],q,X,D,N)},U=O=>O.shapeFlag&6?U(O.component.subTree):O.shapeFlag&128?O.suspense.next():R(O.anchor||O.el),K=(O,q,X)=>{O==null?q._vnode&&$(q._vnode,null,null,!0):k(q._vnode||null,O,q,null,null,null,X),vm(),Pl(),q._vnode=O},Z={p:k,um:$,m:T,r:G,mt:h,mc:V,pc:g,pbc:_,n:U,o:e};let b,y;return t&&([b,y]=t(Z)),{render:K,hydrate:b,createApp:_5(K,b)}}function Fo({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function $l(e,t,r=!1){const i=e.children,a=t.children;if(ze(i)&&ze(a))for(let n=0;n<i.length;n++){const u=i[n];let c=a[n];c.shapeFlag&1&&!c.dynamicChildren&&((c.patchFlag<=0||c.patchFlag===32)&&(c=a[n]=no(a[n]),c.el=u.el),r||$l(u,c)),c.type===xo&&(c.el=u.el),c.type===rr&&!c.el&&(c.el=u.el)}}function k5(e){const t=e.slice(),r=[0];let i,a,n,u,c;const d=e.length;for(i=0;i<d;i++){const m=e[i];if(m!==0){if(a=r[r.length-1],e[a]<m){t[i]=a,r.push(i);continue}for(n=0,u=r.length-1;n<u;)c=n+u>>1,e[r[c]]<m?n=c+1:u=c;m<e[r[n]]&&(n>0&&(t[i]=r[n-1]),r[n]=i)}}for(n=r.length,u=r[n-1];n-- >0;)r[n]=u,u=t[u];return r}const $5=e=>e.__isTeleport,Xa=e=>e&&(e.disabled||e.disabled===""),Pm=e=>typeof SVGElement<"u"&&e instanceof SVGElement,z0=(e,t)=>{const r=e&&e.to;if(Vt(r))if(t){const i=t(r);return i||Ue(`Failed to locate Teleport target with selector "${r}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),i}else return Ue("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!r&&!Xa(e)&&Ue(`Invalid Teleport target: ${r}`),r},D5={__isTeleport:!0,process(e,t,r,i,a,n,u,c,d,m){const{mc:M,pc:S,pbc:R,o:{insert:C,querySelector:P,createText:k,createComment:L}}=m,I=Xa(t.props);let{shapeFlag:B,children:H,dynamicChildren:F}=t;if(go&&(d=!1,F=null),e==null){const W=t.el=L("teleport start"),Y=t.anchor=L("teleport end");C(W,r,i),C(Y,r,i);const ie=t.target=z0(t.props,P),J=t.targetAnchor=k("");ie?(C(J,ie),u=u||Pm(ie)):I||Ue("Invalid Teleport target on mount:",ie,`(${typeof ie})`);const V=(oe,_)=>{B&16&&M(H,oe,_,a,n,u,c,d)};I?V(r,Y):ie&&V(ie,J)}else{t.el=e.el;const W=t.anchor=e.anchor,Y=t.target=e.target,ie=t.targetAnchor=e.targetAnchor,J=Xa(e.props),V=J?r:Y,oe=J?W:ie;if(u=u||Pm(Y),F?(R(e.dynamicChildren,F,V,a,n,u,c),$l(e,t,!0)):d||S(e,t,V,oe,a,n,u,c,!1),I)J||Ku(t,r,W,m,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const _=t.target=z0(t.props,P);_?Ku(t,_,null,m,0):Ue("Invalid Teleport target on update:",Y,`(${typeof Y})`)}else J&&Ku(t,Y,ie,m,1)}e_(t)},remove(e,t,r,i,{um:a,o:{remove:n}},u){const{shapeFlag:c,children:d,anchor:m,targetAnchor:M,target:S,props:R}=e;if(S&&n(M),(u||!Xa(R))&&(n(m),c&16))for(let C=0;C<d.length;C++){const P=d[C];a(P,t,r,!0,!!P.dynamicChildren)}},move:Ku,hydrate:F5};function Ku(e,t,r,{o:{insert:i},m:a},n=2){n===0&&i(e.targetAnchor,t,r);const{el:u,anchor:c,shapeFlag:d,children:m,props:M}=e,S=n===2;if(S&&i(u,t,r),(!S||Xa(M))&&d&16)for(let R=0;R<m.length;R++)a(m[R],t,r,2);S&&i(c,t,r)}function F5(e,t,r,i,a,n,{o:{nextSibling:u,parentNode:c,querySelector:d}},m){const M=t.target=z0(t.props,d);if(M){const S=M._lpa||M.firstChild;if(t.shapeFlag&16)if(Xa(t.props))t.anchor=m(u(e),t,c(e),r,i,a,n),t.targetAnchor=S;else{t.anchor=u(e);let R=S;for(;R;)if(R=u(R),R&&R.nodeType===8&&R.data==="teleport anchor"){t.targetAnchor=R,M._lpa=t.targetAnchor&&u(t.targetAnchor);break}m(S,t,M,r,i,a,n)}e_(t)}return t.anchor&&u(t.anchor)}const j5=D5;function e_(e){const t=e.ctx;if(t&&t.ut){let r=e.children[0].el;for(;r!==e.targetAnchor;)r.nodeType===1&&r.setAttribute("data-v-owner",t.uid),r=r.nextSibling;t.ut()}}const Lt=Symbol.for("v-fgt"),xo=Symbol.for("v-txt"),rr=Symbol.for("v-cmt"),mo=Symbol.for("v-stc"),Bf=[];let Wr=null;function tt(e=!1){Bf.push(Wr=e?null:[])}function t_(){Bf.pop(),Wr=Bf[Bf.length-1]||null}let ua=1;function G0(e){ua+=e}function r_(e){return e.dynamicChildren=ua>0?Wr||Ga:null,t_(),ua>0&&Wr&&Wr.push(e),e}function ft(e,t,r,i,a,n){return r_(Je(e,t,r,i,a,n,!0))}function Pv(e,t,r,i,a){return r_(Zt(e,t,r,i,a,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function Li(e,t){return t.shapeFlag&6&&ja.has(t.type)?(e.shapeFlag&=-257,t.shapeFlag&=-513,!1):e.type===t.type&&e.key===t.key}let Y0;function U5(e){Y0=e}const H5=(...e)=>q5(...Y0?Y0(e,tr):e),Mh="__vInternal",i_=({key:e})=>e??null,al=({ref:e,ref_key:t,ref_for:r})=>(typeof e=="number"&&(e=""+e),e!=null?Vt(e)||Xt(e)||Qe(e)?{i:tr,r:e,k:t,f:!!r}:e:null);function Je(e,t=null,r=null,i=0,a=null,n=e===Lt?0:1,u=!1,c=!1){const d={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&i_(t),ref:t&&al(t),scopeId:gh,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:n,patchFlag:i,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:tr};return c?(Bv(d,r),n&128&&e.normalize(d)):r&&(d.shapeFlag|=Vt(r)?8:16),d.key!==d.key&&Ue("VNode created with invalid key (NaN). VNode type:",d.type),ua>0&&!u&&Wr&&(d.patchFlag>0||n&6)&&d.patchFlag!==32&&Wr.push(d),d}const Zt=H5;function q5(e,t=null,r=null,i=0,a=null,n=!1){if((!e||e===j2)&&(e||Ue(`Invalid vnode type when creating vnode: ${e}.`),e=rr),Nn(e)){const c=di(e,t,!0);return r&&Bv(c,r),ua>0&&!n&&Wr&&(c.shapeFlag&6?Wr[Wr.indexOf(e)]=c:Wr.push(c)),c.patchFlag|=-2,c}if(c_(e)&&(e=e.__vccOpts),t){t=n_(t);let{class:c,style:d}=t;c&&!Vt(c)&&(t.class=vr(c)),Rt(d)&&(qf(d)&&!ze(d)&&(d=Pt({},d)),t.style=Pn(d))}const u=Vt(e)?1:x2(e)?128:$5(e)?64:Rt(e)?4:Qe(e)?2:0;return u&4&&qf(e)&&(e=lt(e),Ue("Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.",`
+Component that was made reactive: `,e)),Je(e,t,r,i,a,u,n,!0)}function n_(e){return e?qf(e)||Mh in e?Pt({},e):e:null}function di(e,t,r=!1){const{props:i,ref:a,patchFlag:n,children:u}=e,c=t?a_(i||{},t):i;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&i_(c),ref:t&&t.ref?r&&a?ze(a)?a.concat(al(t)):[a,al(t)]:al(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:n===-1&&ze(u)?u.map(o_):u,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Lt?n===-1?16:n|16:n,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&di(e.ssContent),ssFallback:e.ssFallback&&di(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function o_(e){const t=di(e);return ze(e.children)&&(t.children=e.children.map(o_)),t}function Cv(e=" ",t=0){return Zt(xo,null,e,t)}function W5(e,t){const r=Zt(mo,null,e);return r.staticCount=t,r}function fi(e="",t=!1){return t?(tt(),Pv(rr,null,e)):Zt(rr,null,e)}function Ur(e){return e==null||typeof e=="boolean"?Zt(rr):ze(e)?Zt(Lt,null,e.slice()):typeof e=="object"?no(e):Zt(xo,null,String(e))}function no(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:di(e)}function Bv(e,t){let r=0;const{shapeFlag:i}=e;if(t==null)t=null;else if(ze(t))r=16;else if(typeof t=="object")if(i&65){const a=t.default;a&&(a._c&&(a._d=!1),Bv(e,a()),a._c&&(a._d=!0));return}else{r=32;const a=t._;!a&&!(Mh in t)?t._ctx=tr:a===3&&tr&&(tr.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Qe(t)?(t={default:t,_ctx:tr},r=32):(t=String(t),i&64?(r=16,t=[Cv(t)]):r=8);e.children=t,e.shapeFlag|=r}function a_(...e){const t={};for(let r=0;r<e.length;r++){const i=e[r];for(const a in i)if(a==="class")t.class!==i.class&&(t.class=vr([t.class,i.class]));else if(a==="style")t.style=Pn([t.style,i.style]);else if(Ps(a)){const n=t[a],u=i[a];u&&n!==u&&!(ze(n)&&n.includes(u))&&(t[a]=n?[].concat(n,u):u)}else a!==""&&(t[a]=i[a])}return t}function Dr(e,t,r,i=null){Zr(e,t,7,[r,i])}const K5=W2();let V5=0;function s_(e,t,r){const i=e.type,a=(t?t.appContext:e.appContext)||K5,n={uid:V5++,vnode:e,type:i,parent:t,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,scope:new av(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(a.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:V2(i,a),emitsOptions:_2(i,a),emit:null,emitted:null,propsDefaults:$t,inheritAttrs:i.inheritAttrs,ctx:$t,data:$t,props:$t,attrs:$t,slots:$t,refs:$t,setupState:$t,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:r,suspenseId:r?r.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return n.ctx=X8(n),n.root=t?t.root:n,n.emit=x8.bind(null,n),e.ce&&e.ce(n),n}let er=null;const Fi=()=>er||tr;let Lv,Ba,Cm="__VUE_INSTANCE_SETTERS__";(Ba=Tl()[Cm])||(Ba=Tl()[Cm]=[]),Ba.push(e=>er=e),Lv=e=>{Ba.length>1?Ba.forEach(t=>t(e)):Ba[0](e)};const Eo=e=>{Lv(e),e.scope.on()},yo=()=>{er&&er.scope.off(),Lv(null)},z5=Kn("slot,component");function Z0(e,t){const r=t.isNativeTag||qw;(z5(e)||r(e))&&Ue("Do not use built-in or reserved HTML elements as component id: "+e)}function f_(e){return e.vnode.shapeFlag&4}let fs=!1;function u_(e,t=!1){fs=t;const{props:r,children:i}=e.vnode,a=f_(e);S5(e,r,a,t),C5(e,i);const n=a?G5(e,t):void 0;return fs=!1,n}function G5(e,t){var r;const i=e.type;{if(i.name&&Z0(i.name,e.appContext.config),i.components){const n=Object.keys(i.components);for(let u=0;u<n.length;u++)Z0(n[u],e.appContext.config)}if(i.directives){const n=Object.keys(i.directives);for(let u=0;u<n.length;u++)O2(n[u])}i.compilerOptions&&Nv()&&Ue('"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.')}e.accessCache=Object.create(null),e.proxy=lv(new Proxy(e.ctx,Pf)),J8(e);const{setup:a}=i;if(a){const n=e.setupContext=a.length>1?h_(e):null;Eo(e),ma();const u=en(a,e,0,[Wa(e.props),n]);if(ya(),yo(),ah(u)){if(u.then(yo,yo),t)return u.then(c=>{X0(e,c,t)}).catch(c=>{ba(c,e,0)});if(e.asyncDep=u,!e.suspense){const c=(r=i.name)!=null?r:"Anonymous";Ue(`Component <${c}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`)}}else X0(e,u,t)}else l_(e,t)}function X0(e,t,r){Qe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Rt(t)?(Nn(t)&&Ue("setup() should not return VNodes directly - return a render function instead."),e.devtoolsRawSetupState=t,e.setupState=dv(t),Q8(e)):t!==void 0&&Ue(`setup() should return an object. Received: ${t===null?"null":typeof t}`),l_(e,r)}let Lf,J0;function Y5(e){Lf=e,J0=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,Z8))}}const Nv=()=>!Lf;function l_(e,t,r){const i=e.type;if(!e.render){if(!t&&Lf&&!i.render){const a=i.template||Ov(e).template;if(a){bn(e,"compile");const{isCustomElement:n,compilerOptions:u}=e.appContext.config,{delimiters:c,compilerOptions:d}=i,m=Pt(Pt({isCustomElement:n,delimiters:c},u),d);i.render=Lf(a,m),wn(e,"compile")}}e.render=i.render||qr,J0&&J0(e)}Eo(e),ma(),v5(e),ya(),yo(),!i.render&&e.render===qr&&!t&&(!Lf&&i.template?Ue('Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".'):Ue("Component is missing template or render function."))}function Z5(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,r){return Cl(),Tr(e,"get","$attrs"),t[r]},set(){return Ue("setupContext.attrs is readonly."),!1},deleteProperty(){return Ue("setupContext.attrs is readonly."),!1}}))}function X5(e){return e.slotsProxy||(e.slotsProxy=new Proxy(e.slots,{get(t,r){return Tr(e,"get","$slots"),t[r]}}))}function h_(e){return Object.freeze({get attrs(){return Z5(e)},get slots(){return X5(e)},get emit(){return(r,...i)=>e.emit(r,...i)},expose:r=>{if(e.exposed&&Ue("expose() should be called only once per setup()."),r!=null){let i=typeof r;i==="object"&&(ze(r)?i="array":Xt(r)&&(i="ref")),i!=="object"&&Ue(`expose() should be passed a plain object, received ${i}.`)}e.exposed=r||{}}})}function Sh(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(dv(lv(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in ia)return ia[r](e)},has(t,r){return r in t||r in ia}}))}const J5=/(?:^|[-_])(\w)/g,Q5=e=>e.replace(J5,t=>t.toUpperCase()).replace(/[-_]/g,"");function Xf(e,t=!0){return Qe(e)?e.displayName||e.name:e.name||t&&e.__name}function xh(e,t,r=!1){let i=Xf(t);if(!i&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(i=a[1])}if(!i&&e&&e.parent){const a=n=>{for(const u in n)if(n[u]===t)return u};i=a(e.components||e.parent.type.components)||a(e.appContext.components)}return i?Q5(i):r?"App":"Anonymous"}function c_(e){return Qe(e)&&"__vccOpts"in e}const Qt=(e,t)=>i8(e,t,fs);function Eh(e,t,r){const i=arguments.length;return i===2?Rt(t)&&!ze(t)?Nn(t)?Zt(e,null,[t]):Zt(e,t):Zt(e,null,t):(i>3?r=Array.prototype.slice.call(arguments,2):i===3&&Nn(r)&&(r=[r]),Zt(e,t,r))}const d_=Symbol.for("v-scx"),p_=()=>{{const e=tn(d_);return e||Ue("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function kc(e){return!!(e&&e.__v_isShallow)}function v_(){if(typeof window>"u")return;const e={style:"color:#3ba776"},t={style:"color:#0b1bc9"},r={style:"color:#b62e24"},i={style:"color:#9d288c"},a={header(S){return Rt(S)?S.__isVue?["div",e,"VueInstance"]:Xt(S)?["div",{},["span",e,M(S)],"<",c(S.value),">"]:po(S)?["div",{},["span",e,kc(S)?"ShallowReactive":"Reactive"],"<",c(S),`>${Ln(S)?" (readonly)":""}`]:Ln(S)?["div",{},["span",e,kc(S)?"ShallowReadonly":"Readonly"],"<",c(S),">"]:null:null},hasBody(S){return S&&S.__isVue},body(S){if(S&&S.__isVue)return["div",{},...n(S.$)]}};function n(S){const R=[];S.type.props&&S.props&&R.push(u("props",lt(S.props))),S.setupState!==$t&&R.push(u("setup",S.setupState)),S.data!==$t&&R.push(u("data",lt(S.data)));const C=d(S,"computed");C&&R.push(u("computed",C));const P=d(S,"inject");return P&&R.push(u("injected",P)),R.push(["div",{},["span",{style:i.style+";opacity:0.66"},"$ (internal): "],["object",{object:S}]]),R}function u(S,R){return R=Pt({},R),Object.keys(R).length?["div",{style:"line-height:1.25em;margin-bottom:0.6em"},["div",{style:"color:#476582"},S],["div",{style:"padding-left:1.25em"},...Object.keys(R).map(C=>["div",{},["span",i,C+": "],c(R[C],!1)])]]:["span",{}]}function c(S,R=!0){return typeof S=="number"?["span",t,S]:typeof S=="string"?["span",r,JSON.stringify(S)]:typeof S=="boolean"?["span",i,S]:Rt(S)?["object",{object:R?lt(S):S}]:["span",r,String(S)]}function d(S,R){const C=S.type;if(Qe(C))return;const P={};for(const k in S.ctx)m(C,k,R)&&(P[k]=S.ctx[k]);return P}function m(S,R,C){const P=S[C];if(ze(P)&&P.includes(R)||Rt(P)&&R in P||S.extends&&m(S.extends,R,C)||S.mixins&&S.mixins.some(k=>m(k,R,C)))return!0}function M(S){return kc(S)?"ShallowRef":S.effect?"ComputedRef":"Ref"}window.devtoolsFormatters?window.devtoolsFormatters.push(a):window.devtoolsFormatters=[a]}function eR(e,t,r,i){const a=r[i];if(a&&g_(a,e))return a;const n=t();return n.memo=e.slice(),r[i]=n}function g_(e,t){const r=e.memo;if(r.length!=t.length)return!1;for(let i=0;i<r.length;i++)if(as(r[i],t[i]))return!1;return ua>0&&Wr&&Wr.push(e),!0}const Q0="3.3.4",tR={createComponentInstance:s_,setupComponent:u_,renderComponentRoot:nl,setCurrentRenderingInstance:zf,isVNode:Nn,normalizeVNode:Ur},rR=tR,iR=null,nR=null,oR="http://www.w3.org/2000/svg",Ko=typeof document<"u"?document:null,Bm=Ko&&Ko.createElement("template"),aR={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,i)=>{const a=t?Ko.createElementNS(oR,e):Ko.createElement(e,r?{is:r}:void 0);return e==="select"&&i&&i.multiple!=null&&a.setAttribute("multiple",i.multiple),a},createText:e=>Ko.createTextNode(e),createComment:e=>Ko.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ko.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,i,a,n){const u=r?r.previousSibling:t.lastChild;if(a&&(a===n||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),r),!(a===n||!(a=a.nextSibling)););else{Bm.innerHTML=i?`<svg>${e}</svg>`:e;const c=Bm.content;if(i){const d=c.firstChild;for(;d.firstChild;)c.appendChild(d.firstChild);c.removeChild(d)}t.insertBefore(c,r)}return[u?u.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function sR(e,t,r){const i=e._vtc;i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function fR(e,t,r){const i=e.style,a=Vt(r);if(r&&!a){if(t&&!Vt(t))for(const n in t)r[n]==null&&ep(i,n,"");for(const n in r)ep(i,n,r[n])}else{const n=i.display;a?t!==r&&(i.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(i.display=n)}}const uR=/[^\\];\s*$/,Lm=/\s*!important$/;function ep(e,t,r){if(ze(r))r.forEach(i=>ep(e,t,i));else if(r==null&&(r=""),uR.test(r)&&Ue(`Unexpected semicolon at the end of '${t}' style value: '${r}'`),t.startsWith("--"))e.setProperty(t,r);else{const i=lR(e,t);Lm.test(r)?e.setProperty(Hr(i),r.replace(Lm,""),"important"):e[i]=r}}const Nm=["Webkit","Moz","ms"],$c={};function lR(e,t){const r=$c[t];if(r)return r;let i=Kr(t);if(i!=="filter"&&i in e)return $c[t]=i;i=_o(i);for(let a=0;a<Nm.length;a++){const n=Nm[a]+i;if(n in e)return $c[t]=n}return t}const km="http://www.w3.org/1999/xlink";function hR(e,t,r,i,a){if(i&&t.startsWith("xlink:"))r==null?e.removeAttributeNS(km,t.slice(6,t.length)):e.setAttributeNS(km,t,r);else{const n=dE(t);r==null||n&&!Vw(r)?e.removeAttribute(t):e.setAttribute(t,n?"":r)}}function cR(e,t,r,i,a,n,u){if(t==="innerHTML"||t==="textContent"){i&&u(i,a,n),e[t]=r??"";return}const c=e.tagName;if(t==="value"&&c!=="PROGRESS"&&!c.includes("-")){e._value=r;const m=c==="OPTION"?e.getAttribute("value"):e.value,M=r??"";m!==M&&(e.value=M),r==null&&e.removeAttribute(t);return}let d=!1;if(r===""||r==null){const m=typeof e[t];m==="boolean"?r=Vw(r):r==null&&m==="string"?(r="",d=!0):m==="number"&&(r=0,d=!0)}try{e[t]=r}catch(m){d||Ue(`Failed setting prop "${t}" on <${c.toLowerCase()}>: value ${r} is invalid.`,m)}d&&e.removeAttribute(t)}function Tn(e,t,r,i){e.addEventListener(t,r,i)}function dR(e,t,r,i){e.removeEventListener(t,r,i)}function pR(e,t,r,i,a=null){const n=e._vei||(e._vei={}),u=n[t];if(i&&u)u.value=i;else{const[c,d]=vR(t);if(i){const m=n[t]=yR(i,a);Tn(e,c,m,d)}else u&&(dR(e,c,u,d),n[t]=void 0)}}const $m=/(?:Once|Passive|Capture)$/;function vR(e){let t;if($m.test(e)){t={};let i;for(;i=e.match($m);)e=e.slice(0,e.length-i[0].length),t[i[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Hr(e.slice(2)),t]}let Dc=0;const gR=Promise.resolve(),mR=()=>Dc||(gR.then(()=>Dc=0),Dc=Date.now());function yR(e,t){const r=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=r.attached)return;Zr(bR(i,r.value),t,5,[i])};return r.value=e,r.attached=mR(),r}function bR(e,t){if(ze(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(i=>a=>!a._stopped&&i&&i(a))}else return t}const Dm=/^on[a-z]/,wR=(e,t,r,i,a=!1,n,u,c,d)=>{t==="class"?sR(e,i,a):t==="style"?fR(e,r,i):Ps(t)?xl(t)||pR(e,t,r,i,u):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):_R(e,t,i,a))?cR(e,t,i,n,u,c,d):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),hR(e,t,i,a))};function _R(e,t,r,i){return i?!!(t==="innerHTML"||t==="textContent"||t in e&&Dm.test(t)&&Qe(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Dm.test(t)&&Vt(r)?!1:t in e}function m_(e,t){const r=Bs(e);class i extends Rh{constructor(n){super(r,n,t)}}return i.def=r,i}const MR=e=>m_(e,C_),SR=typeof HTMLElement<"u"?HTMLElement:class{};class Rh extends SR{constructor(t,r={},i){super(),this._def=t,this._props=r,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&i?i(this._createVNode(),this.shadowRoot):(this.shadowRoot&&Ue("Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use `defineSSRCustomElement`."),this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,uo(()=>{this._connected||(ip(null,this.shadowRoot),this._instance=null)})}_resolveDef(){this._resolved=!0;for(let i=0;i<this.attributes.length;i++)this._setAttr(this.attributes[i].name);new MutationObserver(i=>{for(const a of i)this._setAttr(a.attributeName)}).observe(this,{attributes:!0});const t=(i,a=!1)=>{const{props:n,styles:u}=i;let c;if(n&&!ze(n))for(const d in n){const m=n[d];(m===Number||m&&m.type===Number)&&(d in this._props&&(this._props[d]=Al(this._props[d])),(c||(c=Object.create(null)))[Kr(d)]=!0)}this._numberProps=c,a&&this._resolveProps(i),this._applyStyles(u),this._update()},r=this._def.__asyncLoader;r?r().then(i=>t(i,!0)):t(this._def)}_resolveProps(t){const{props:r}=t,i=ze(r)?r:Object.keys(r||{});for(const a of Object.keys(this))a[0]!=="_"&&i.includes(a)&&this._setProp(a,this[a],!0,!1);for(const a of i.map(Kr))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(n){this._setProp(a,n)}})}_setAttr(t){let r=this.getAttribute(t);const i=Kr(t);this._numberProps&&this._numberProps[i]&&(r=Al(r)),this._setProp(i,r,!1)}_getProp(t){return this._props[t]}_setProp(t,r,i=!0,a=!0){r!==this._props[t]&&(this._props[t]=r,a&&this._instance&&this._update(),i&&(r===!0?this.setAttribute(Hr(t),""):typeof r=="string"||typeof r=="number"?this.setAttribute(Hr(t),r+""):r||this.removeAttribute(Hr(t))))}_update(){ip(this._createVNode(),this.shadowRoot)}_createVNode(){const t=Zt(this._def,Pt({},this._props));return this._instance||(t.ce=r=>{this._instance=r,r.isCE=!0,r.ceReload=n=>{this._styles&&(this._styles.forEach(u=>this.shadowRoot.removeChild(u)),this._styles.length=0),this._applyStyles(n),this._instance=null,this._update()};const i=(n,u)=>{this.dispatchEvent(new CustomEvent(n,{detail:u}))};r.emit=(n,...u)=>{i(n,u),Hr(n)!==n&&i(Hr(n),u)};let a=this;for(;a=a&&(a.parentNode||a.host);)if(a instanceof Rh){r.parent=a._instance,r.provides=a._instance.provides;break}}),t}_applyStyles(t){t&&t.forEach(r=>{const i=document.createElement("style");i.textContent=r,this.shadowRoot.appendChild(i),(this._styles||(this._styles=[])).push(i)})}}function xR(e="$style"){{const t=Fi();if(!t)return Ue("useCssModule must be called inside setup()"),$t;const r=t.type.__cssModules;if(!r)return Ue("Current instance does not have CSS modules injected."),$t;const i=r[e];return i||(Ue(`Current instance does not have CSS module named "${e}".`),$t)}}function ER(e){const t=Fi();if(!t){Ue("useCssVars is called without current active component instance.");return}const r=t.ut=(a=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(n=>rp(n,a))},i=()=>{const a=e(t.proxy);tp(t.subTree,a),r(a)};A2(i),Ns(()=>{const a=new MutationObserver(i);a.observe(t.subTree.el.parentNode,{childList:!0}),_h(()=>a.disconnect())})}function tp(e,t){if(e.shapeFlag&128){const r=e.suspense;e=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{tp(r.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)rp(e.el,t);else if(e.type===Lt)e.children.forEach(r=>tp(r,t));else if(e.type===mo){let{el:r,anchor:i}=e;for(;r&&(rp(r,t),r!==i);)r=r.nextSibling}}function rp(e,t){if(e.nodeType===1){const r=e.style;for(const i in t)r.setProperty(`--${i}`,t[i])}}const Qn="transition",Zs="animation",kv=(e,{slots:t})=>Eh(I2,b_(e),t);kv.displayName="Transition";const y_={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},RR=kv.props=Pt({},Ev,y_),jo=(e,t=[])=>{ze(e)?e.forEach(r=>r(...t)):e&&e(...t)},Fm=e=>e?ze(e)?e.some(t=>t.length>1):e.length>1:!1;function b_(e){const t={};for(const o in e)o in y_||(t[o]=e[o]);if(e.css===!1)return t;const{name:r="v",type:i,duration:a,enterFromClass:n=`${r}-enter-from`,enterActiveClass:u=`${r}-enter-active`,enterToClass:c=`${r}-enter-to`,appearFromClass:d=n,appearActiveClass:m=u,appearToClass:M=c,leaveFromClass:S=`${r}-leave-from`,leaveActiveClass:R=`${r}-leave-active`,leaveToClass:C=`${r}-leave-to`}=e,P=AR(a),k=P&&P[0],L=P&&P[1],{onBeforeEnter:I,onEnter:B,onEnterCancelled:H,onLeave:F,onLeaveCancelled:W,onBeforeAppear:Y=I,onAppear:ie=B,onAppearCancelled:J=H}=t,V=(o,f,l)=>{ro(o,f?M:c),ro(o,f?m:u),l&&l()},oe=(o,f)=>{o._isLeaving=!1,ro(o,S),ro(o,C),ro(o,R),f&&f()},_=o=>(f,l)=>{const h=o?ie:B,p=()=>V(f,o,l);jo(h,[f,p]),jm(()=>{ro(f,o?d:n),_n(f,o?M:c),Fm(h)||Um(f,i,k,p)})};return Pt(t,{onBeforeEnter(o){jo(I,[o]),_n(o,n),_n(o,u)},onBeforeAppear(o){jo(Y,[o]),_n(o,d),_n(o,m)},onEnter:_(!1),onAppear:_(!0),onLeave(o,f){o._isLeaving=!0;const l=()=>oe(o,f);_n(o,S),__(),_n(o,R),jm(()=>{o._isLeaving&&(ro(o,S),_n(o,C),Fm(F)||Um(o,i,L,l))}),jo(F,[o,l])},onEnterCancelled(o){V(o,!1),jo(H,[o])},onAppearCancelled(o){V(o,!0),jo(J,[o])},onLeaveCancelled(o){oe(o),jo(W,[o])}})}function AR(e){if(e==null)return null;if(Rt(e))return[Fc(e.enter),Fc(e.leave)];{const t=Fc(e);return[t,t]}}function Fc(e){const t=Al(e);return pv(t,"<transition> explicit duration"),t}function _n(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function ro(e,t){t.split(/\s+/).forEach(i=>i&&e.classList.remove(i));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function jm(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let TR=0;function Um(e,t,r,i){const a=e._endId=++TR,n=()=>{a===e._endId&&i()};if(r)return setTimeout(n,r);const{type:u,timeout:c,propCount:d}=w_(e,t);if(!u)return i();const m=u+"end";let M=0;const S=()=>{e.removeEventListener(m,R),n()},R=C=>{C.target===e&&++M>=d&&S()};setTimeout(()=>{M<d&&S()},c+1),e.addEventListener(m,R)}function w_(e,t){const r=window.getComputedStyle(e),i=P=>(r[P]||"").split(", "),a=i(`${Qn}Delay`),n=i(`${Qn}Duration`),u=Hm(a,n),c=i(`${Zs}Delay`),d=i(`${Zs}Duration`),m=Hm(c,d);let M=null,S=0,R=0;t===Qn?u>0&&(M=Qn,S=u,R=n.length):t===Zs?m>0&&(M=Zs,S=m,R=d.length):(S=Math.max(u,m),M=S>0?u>m?Qn:Zs:null,R=M?M===Qn?n.length:d.length:0);const C=M===Qn&&/\b(transform|all)(,|$)/.test(i(`${Qn}Property`).toString());return{type:M,timeout:S,propCount:R,hasTransform:C}}function Hm(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((r,i)=>qm(r)+qm(e[i])))}function qm(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function __(){return document.body.offsetHeight}const M_=new WeakMap,S_=new WeakMap,x_={name:"TransitionGroup",props:Pt({},RR,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=Fi(),i=xv();let a,n;return bh(()=>{if(!a.length)return;const u=e.moveClass||`${e.name||"v"}-move`;if(!LR(a[0].el,r.vnode.el,u))return;a.forEach(PR),a.forEach(CR);const c=a.filter(BR);__(),c.forEach(d=>{const m=d.el,M=m.style;_n(m,u),M.transform=M.webkitTransform=M.transitionDuration="";const S=m._moveCb=R=>{R&&R.target!==m||(!R||/transform$/.test(R.propertyName))&&(m.removeEventListener("transitionend",S),m._moveCb=null,ro(m,u))};m.addEventListener("transitionend",S)})}),()=>{const u=lt(e),c=b_(u);let d=u.tag||Lt;a=n,n=t.default?mh(t.default()):[];for(let m=0;m<n.length;m++){const M=n[m];M.key!=null?fa(M,ss(M,c,i,r)):Ue("<TransitionGroup> children must be keyed.")}if(a)for(let m=0;m<a.length;m++){const M=a[m];fa(M,ss(M,c,i,r)),M_.set(M,M.el.getBoundingClientRect())}return Zt(d,null,n)}}},OR=e=>delete e.mode;x_.props;const IR=x_;function PR(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function CR(e){S_.set(e,e.el.getBoundingClientRect())}function BR(e){const t=M_.get(e),r=S_.get(e),i=t.left-r.left,a=t.top-r.top;if(i||a){const n=e.el.style;return n.transform=n.webkitTransform=`translate(${i}px,${a}px)`,n.transitionDuration="0s",e}}function LR(e,t,r){const i=e.cloneNode();e._vtc&&e._vtc.forEach(u=>{u.split(/\s+/).forEach(c=>c&&i.classList.remove(c))}),r.split(/\s+/).forEach(u=>u&&i.classList.add(u)),i.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(i);const{hasTransform:n}=w_(i);return a.removeChild(i),n}const Ro=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ze(t)?r=>so(t,r):t};function NR(e){e.target.composing=!0}function Wm(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Dl={created(e,{modifiers:{lazy:t,trim:r,number:i}},a){e._assign=Ro(a);const n=i||a.props&&a.props.type==="number";Tn(e,t?"change":"input",u=>{if(u.target.composing)return;let c=e.value;r&&(c=c.trim()),n&&(c=Rl(c)),e._assign(c)}),r&&Tn(e,"change",()=>{e.value=e.value.trim()}),t||(Tn(e,"compositionstart",NR),Tn(e,"compositionend",Wm),Tn(e,"change",Wm))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:r,trim:i,number:a}},n){if(e._assign=Ro(n),e.composing||document.activeElement===e&&e.type!=="range"&&(r||i&&e.value.trim()===t||(a||e.type==="number")&&Rl(e.value)===t))return;const u=t??"";e.value!==u&&(e.value=u)}},Ah={deep:!0,created(e,t,r){e._assign=Ro(r),Tn(e,"change",()=>{const i=e._modelValue,a=us(e),n=e.checked,u=e._assign;if(ze(i)){const c=fh(i,a),d=c!==-1;if(n&&!d)u(i.concat(a));else if(!n&&d){const m=[...i];m.splice(c,1),u(m)}}else if(ga(i)){const c=new Set(i);n?c.add(a):c.delete(a),u(c)}else u(E_(e,n))})},mounted:Km,beforeUpdate(e,t,r){e._assign=Ro(r),Km(e,t,r)}};function Km(e,{value:t,oldValue:r},i){e._modelValue=t,ze(t)?e.checked=fh(t,i.props.value)>-1:ga(t)?e.checked=t.has(i.props.value):t!==r&&(e.checked=Mo(t,E_(e,!0)))}const $v={created(e,{value:t},r){e.checked=Mo(t,r.props.value),e._assign=Ro(r),Tn(e,"change",()=>{e._assign(us(e))})},beforeUpdate(e,{value:t,oldValue:r},i){e._assign=Ro(i),t!==r&&(e.checked=Mo(t,i.props.value))}},Fl={deep:!0,created(e,{value:t,modifiers:{number:r}},i){const a=ga(t);Tn(e,"change",()=>{const n=Array.prototype.filter.call(e.options,u=>u.selected).map(u=>r?Rl(us(u)):us(u));e._assign(e.multiple?a?new Set(n):n:n[0])}),e._assign=Ro(i)},mounted(e,{value:t}){Vm(e,t)},beforeUpdate(e,t,r){e._assign=Ro(r)},updated(e,{value:t}){Vm(e,t)}};function Vm(e,t){const r=e.multiple;if(r&&!ze(t)&&!ga(t)){Ue(`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(t).slice(8,-1)}.`);return}for(let i=0,a=e.options.length;i<a;i++){const n=e.options[i],u=us(n);if(r)ze(t)?n.selected=fh(t,u)>-1:n.selected=t.has(u);else if(Mo(us(n),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}function us(e){return"_value"in e?e._value:e.value}function E_(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const R_={created(e,t,r){Vu(e,t,r,null,"created")},mounted(e,t,r){Vu(e,t,r,null,"mounted")},beforeUpdate(e,t,r,i){Vu(e,t,r,i,"beforeUpdate")},updated(e,t,r,i){Vu(e,t,r,i,"updated")}};function A_(e,t){switch(e){case"SELECT":return Fl;case"TEXTAREA":return Dl;default:switch(t){case"checkbox":return Ah;case"radio":return $v;default:return Dl}}}function Vu(e,t,r,i,a){const u=A_(e.tagName,r.props&&r.props.type)[a];u&&u(e,t,r,i)}function kR(){Dl.getSSRProps=({value:e})=>({value:e}),$v.getSSRProps=({value:e},t)=>{if(t.props&&Mo(t.props.value,e))return{checked:!0}},Ah.getSSRProps=({value:e},t)=>{if(ze(e)){if(t.props&&fh(e,t.props.value)>-1)return{checked:!0}}else if(ga(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},R_.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const r=A_(t.type.toUpperCase(),t.props&&t.props.type);if(r.getSSRProps)return r.getSSRProps(e,t)}}const $R=["ctrl","shift","alt","meta"],DR={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>$R.some(r=>e[`${r}Key`]&&!t.includes(r))},Mn=(e,t)=>(r,...i)=>{for(let a=0;a<t.length;a++){const n=DR[t[a]];if(n&&n(r,t))return}return e(r,...i)},FR={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},jR=(e,t)=>r=>{if(!("key"in r))return;const i=Hr(r.key);if(t.some(a=>a===i||FR[a]===i))return e(r)},T_={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):Xs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:i}){!t!=!r&&(i?t?(i.beforeEnter(e),Xs(e,!0),i.enter(e)):i.leave(e,()=>{Xs(e,!1)}):Xs(e,t))},beforeUnmount(e,{value:t}){Xs(e,t)}};function Xs(e,t){e.style.display=t?e._vod:"none"}function UR(){T_.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const O_=Pt({patchProp:wR},aR);let Nf,zm=!1;function I_(){return Nf||(Nf=X2(O_))}function P_(){return Nf=zm?Nf:J2(O_),zm=!0,Nf}const ip=(...e)=>{I_().render(...e)},C_=(...e)=>{P_().hydrate(...e)},HR=(...e)=>{const t=I_().createApp(...e);B_(t),L_(t);const{mount:r}=t;return t.mount=i=>{const a=N_(i);if(!a)return;const n=t._component;!Qe(n)&&!n.render&&!n.template&&(n.template=a.innerHTML),a.innerHTML="";const u=r(a,!1,a instanceof SVGElement);return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),u},t},qR=(...e)=>{const t=P_().createApp(...e);B_(t),L_(t);const{mount:r}=t;return t.mount=i=>{const a=N_(i);if(a)return r(a,!0,a instanceof SVGElement)},t};function B_(e){Object.defineProperty(e.config,"isNativeTag",{value:t=>lE(t)||hE(t),writable:!1})}function L_(e){if(Nv()){const t=e.config.isCustomElement;Object.defineProperty(e.config,"isCustomElement",{get(){return t},set(){Ue("The `isCustomElement` config option is deprecated. Use `compilerOptions.isCustomElement` instead.")}});const r=e.config.compilerOptions,i='The `compilerOptions` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, `compilerOptions` must be passed to `@vue/compiler-dom` in the build setup instead.\n- For vue-loader: pass it via vue-loader\'s `compilerOptions` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc';Object.defineProperty(e.config,"compilerOptions",{get(){return Ue(i),r},set(){Ue(i)}})}}function N_(e){if(Vt(e)){const t=document.querySelector(e);return t||Ue(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&e.mode==="closed"&&Ue('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}let Gm=!1;const WR=()=>{Gm||(Gm=!0,kR(),UR())};function KR(){v_()}KR();const VR=()=>{Ue('Runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".')},zR=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:I2,BaseTransitionPropsValidators:Ev,Comment:rr,EffectScope:av,Fragment:Lt,KeepAlive:H8,ReactiveEffect:uu,Static:mo,Suspense:P8,Teleport:j5,Text:xo,Transition:kv,TransitionGroup:IR,VueElement:Rh,assertNumber:pv,callWithAsyncErrorHandling:Zr,callWithErrorHandling:en,camelize:Kr,capitalize:_o,cloneVNode:di,compatUtils:nR,compile:VR,computed:Qt,createApp:HR,createBlock:Pv,createCommentVNode:fi,createElementBlock:ft,createElementVNode:Je,createHydrationRenderer:J2,createPropsRestProxy:c5,createRenderer:X2,createSSRApp:qR,createSlots:G8,createStaticVNode:W5,createTextVNode:Cv,createVNode:Zt,customRef:XE,defineAsyncComponent:j8,defineComponent:Bs,defineCustomElement:m_,defineEmits:t5,defineExpose:r5,defineModel:o5,defineOptions:i5,defineProps:e5,defineSSRCustomElement:MR,defineSlots:n5,get devtools(){return Bi},effect:yE,effectScope:Gw,getCurrentInstance:Fi,getCurrentScope:Zw,getTransitionRawChildren:mh,guardReactiveProps:n_,h:Eh,handleError:ba,hasInjectionContext:M5,hydrate:C_,initCustomFormatter:v_,initDirectivesForSSR:WR,inject:tn,isMemoSame:g_,isProxy:qf,isReactive:po,isReadonly:Ln,isRef:Xt,isRuntimeOnly:Nv,isShallow:Hf,isVNode:Nn,markRaw:lv,mergeDefaults:l5,mergeModels:h5,mergeProps:a_,nextTick:uo,normalizeClass:vr,normalizeProps:sE,normalizeStyle:Pn,onActivated:C2,onBeforeMount:N2,onBeforeUnmount:wh,onBeforeUpdate:Rv,onDeactivated:B2,onErrorCaptured:F2,onMounted:Ns,onRenderTracked:D2,onRenderTriggered:$2,onScopeDispose:vE,onServerPrefetch:k2,onUnmounted:_h,onUpdated:bh,openBlock:tt,popScopeId:S2,provide:Cf,proxyRefs:dv,pushScopeId:M2,queuePostFlushCb:ph,reactive:No,readonly:uv,ref:mr,registerRuntimeCompiler:Y5,render:ip,renderList:Ii,renderSlot:U0,resolveComponent:K8,resolveDirective:z8,resolveDynamicComponent:V8,resolveFilter:iR,resolveTransitionHooks:ss,setBlockTracking:G0,setDevtoolsHook:yv,setTransitionHooks:fa,shallowReactive:l2,shallowReadonly:Wa,shallowRef:h2,ssrContextKey:d_,ssrUtils:rR,stop:bE,toDisplayString:si,toHandlerKey:xn,toHandlers:Y8,toRaw:lt,toRef:t8,toRefs:JE,toValue:GE,transformVNodeArgs:U5,triggerRef:zE,unref:vo,useAttrs:f5,useCssModule:xR,useCssVars:ER,useModel:u5,useSSRContext:p_,useSlots:s5,useTransitionState:xv,vModelCheckbox:Ah,vModelDynamic:R_,vModelRadio:$v,vModelSelect:Fl,vModelText:Dl,vShow:T_,version:Q0,warn:Ue,watch:lr,watchEffect:R2,watchPostEffect:A2,watchSyncEffect:$8,withAsyncContext:d5,withCtx:wv,withDefaults:a5,withDirectives:ol,withKeys:jR,withMemo:eR,withModifiers:Mn,withScopeId:E8},Symbol.toStringTag,{value:"Module"})),GR=(e,t)=>{const r=e.__vccOpts||e;for(const[i,a]of t)r[i]=a;return r};var du={exports:{}},Dv={exports:{}},Ja=typeof Reflect=="object"?Reflect:null,Ym=Ja&&typeof Ja.apply=="function"?Ja.apply:function(t,r,i){return Function.prototype.apply.call(t,r,i)},sl;Ja&&typeof Ja.ownKeys=="function"?sl=Ja.ownKeys:Object.getOwnPropertySymbols?sl=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:sl=function(t){return Object.getOwnPropertyNames(t)};function YR(e){console&&console.warn&&console.warn(e)}var k_=Number.isNaN||function(t){return t!==t};function Wt(){Wt.init.call(this)}Dv.exports=Wt;Dv.exports.once=QR;Wt.EventEmitter=Wt;Wt.prototype._events=void 0;Wt.prototype._eventsCount=0;Wt.prototype._maxListeners=void 0;var Zm=10;function Th(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Wt,"defaultMaxListeners",{enumerable:!0,get:function(){return Zm},set:function(e){if(typeof e!="number"||e<0||k_(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Zm=e}});Wt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Wt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||k_(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function $_(e){return e._maxListeners===void 0?Wt.defaultMaxListeners:e._maxListeners}Wt.prototype.getMaxListeners=function(){return $_(this)};Wt.prototype.emit=function(t){for(var r=[],i=1;i<arguments.length;i++)r.push(arguments[i]);var a=t==="error",n=this._events;if(n!==void 0)a=a&&n.error===void 0;else if(!a)return!1;if(a){var u;if(r.length>0&&(u=r[0]),u instanceof Error)throw u;var c=new Error("Unhandled error."+(u?" ("+u.message+")":""));throw c.context=u,c}var d=n[t];if(d===void 0)return!1;if(typeof d=="function")Ym(d,this,r);else for(var m=d.length,M=H_(d,m),i=0;i<m;++i)Ym(M[i],this,r);return!0};function D_(e,t,r,i){var a,n,u;if(Th(r),n=e._events,n===void 0?(n=e._events=Object.create(null),e._eventsCount=0):(n.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),n=e._events),u=n[t]),u===void 0)u=n[t]=r,++e._eventsCount;else if(typeof u=="function"?u=n[t]=i?[r,u]:[u,r]:i?u.unshift(r):u.push(r),a=$_(e),a>0&&u.length>a&&!u.warned){u.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=u.length,YR(c)}return e}Wt.prototype.addListener=function(t,r){return D_(this,t,r,!1)};Wt.prototype.on=Wt.prototype.addListener;Wt.prototype.prependListener=function(t,r){return D_(this,t,r,!0)};function ZR(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function F_(e,t,r){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},a=ZR.bind(i);return a.listener=r,i.wrapFn=a,a}Wt.prototype.once=function(t,r){return Th(r),this.on(t,F_(this,t,r)),this};Wt.prototype.prependOnceListener=function(t,r){return Th(r),this.prependListener(t,F_(this,t,r)),this};Wt.prototype.removeListener=function(t,r){var i,a,n,u,c;if(Th(r),a=this._events,a===void 0)return this;if(i=a[t],i===void 0)return this;if(i===r||i.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete a[t],a.removeListener&&this.emit("removeListener",t,i.listener||r));else if(typeof i!="function"){for(n=-1,u=i.length-1;u>=0;u--)if(i[u]===r||i[u].listener===r){c=i[u].listener,n=u;break}if(n<0)return this;n===0?i.shift():XR(i,n),i.length===1&&(a[t]=i[0]),a.removeListener!==void 0&&this.emit("removeListener",t,c||r)}return this};Wt.prototype.off=Wt.prototype.removeListener;Wt.prototype.removeAllListeners=function(t){var r,i,a;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var n=Object.keys(i),u;for(a=0;a<n.length;++a)u=n[a],u!=="removeListener"&&this.removeAllListeners(u);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=i[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(a=r.length-1;a>=0;a--)this.removeListener(t,r[a]);return this};function j_(e,t,r){var i=e._events;if(i===void 0)return[];var a=i[t];return a===void 0?[]:typeof a=="function"?r?[a.listener||a]:[a]:r?JR(a):H_(a,a.length)}Wt.prototype.listeners=function(t){return j_(this,t,!0)};Wt.prototype.rawListeners=function(t){return j_(this,t,!1)};Wt.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):U_.call(e,t)};Wt.prototype.listenerCount=U_;function U_(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}Wt.prototype.eventNames=function(){return this._eventsCount>0?sl(this._events):[]};function H_(e,t){for(var r=new Array(t),i=0;i<t;++i)r[i]=e[i];return r}function XR(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function JR(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function QR(e,t){return new Promise(function(r,i){function a(u){e.removeListener(t,n),i(u)}function n(){typeof e.removeListener=="function"&&e.removeListener("error",a),r([].slice.call(arguments))}q_(e,t,n,{once:!0}),t!=="error"&&e7(e,a,{once:!0})})}function e7(e,t,r){typeof e.on=="function"&&q_(e,"error",t,r)}function q_(e,t,r,i){if(typeof e.on=="function")i.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function a(n){i.once&&e.removeEventListener(t,a),r(n)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var Or=Dv.exports,Fv=r7,t7=Object.prototype.hasOwnProperty;function r7(){for(var e={},t=0;t<arguments.length;t++){var r=arguments[t];for(var i in r)t7.call(r,i)&&(e[i]=r[i])}return e}var np={exports:{}},W_=Or.EventEmitter,ei={},K_={},V_=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),i=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(i)!=="[object Symbol]")return!1;var a=42;t[r]=a;for(r in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var n=Object.getOwnPropertySymbols(t);if(n.length!==1||n[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var u=Object.getOwnPropertyDescriptor(t,r);if(u.value!==a||u.enumerable!==!0)return!1}return!0},i7=V_,Oh=function(){return i7()&&!!Symbol.toStringTag},Xm=typeof Symbol<"u"&&Symbol,n7=V_,o7=function(){return typeof Xm!="function"||typeof Symbol!="function"||typeof Xm("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:n7()},Jm={foo:{}},a7=Object,s7=function(){return{__proto__:Jm}.foo===Jm.foo&&!({__proto__:null}instanceof a7)},f7="Function.prototype.bind called on incompatible ",jc=Array.prototype.slice,u7=Object.prototype.toString,l7="[object Function]",h7=function(t){var r=this;if(typeof r!="function"||u7.call(r)!==l7)throw new TypeError(f7+r);for(var i=jc.call(arguments,1),a,n=function(){if(this instanceof a){var M=r.apply(this,i.concat(jc.call(arguments)));return Object(M)===M?M:this}else return r.apply(t,i.concat(jc.call(arguments)))},u=Math.max(0,r.length-i.length),c=[],d=0;d<u;d++)c.push("$"+d);if(a=Function("binder","return function ("+c.join(",")+"){ return binder.apply(this,arguments); }")(n),r.prototype){var m=function(){};m.prototype=r.prototype,a.prototype=new m,m.prototype=null}return a},c7=h7,jv=Function.prototype.bind||c7,d7=jv,p7=d7.call(Function.call,Object.prototype.hasOwnProperty),Mt,ls=SyntaxError,z_=Function,Qa=TypeError,Uc=function(e){try{return z_('"use strict"; return ('+e+").constructor;")()}catch{}},na=Object.getOwnPropertyDescriptor;if(na)try{na({},"")}catch{na=null}var Hc=function(){throw new Qa},v7=na?function(){try{return arguments.callee,Hc}catch{try{return na(arguments,"callee").get}catch{return Hc}}}():Hc,La=o7(),g7=s7(),ur=Object.getPrototypeOf||(g7?function(e){return e.__proto__}:null),Ua={},m7=typeof Uint8Array>"u"||!ur?Mt:ur(Uint8Array),oa={"%AggregateError%":typeof AggregateError>"u"?Mt:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Mt:ArrayBuffer,"%ArrayIteratorPrototype%":La&&ur?ur([][Symbol.iterator]()):Mt,"%AsyncFromSyncIteratorPrototype%":Mt,"%AsyncFunction%":Ua,"%AsyncGenerator%":Ua,"%AsyncGeneratorFunction%":Ua,"%AsyncIteratorPrototype%":Ua,"%Atomics%":typeof Atomics>"u"?Mt:Atomics,"%BigInt%":typeof BigInt>"u"?Mt:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Mt:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Mt:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Mt:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?Mt:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Mt:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Mt:FinalizationRegistry,"%Function%":z_,"%GeneratorFunction%":Ua,"%Int8Array%":typeof Int8Array>"u"?Mt:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Mt:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Mt:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":La&&ur?ur(ur([][Symbol.iterator]())):Mt,"%JSON%":typeof JSON=="object"?JSON:Mt,"%Map%":typeof Map>"u"?Mt:Map,"%MapIteratorPrototype%":typeof Map>"u"||!La||!ur?Mt:ur(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Mt:Promise,"%Proxy%":typeof Proxy>"u"?Mt:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?Mt:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Mt:Set,"%SetIteratorPrototype%":typeof Set>"u"||!La||!ur?Mt:ur(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Mt:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":La&&ur?ur(""[Symbol.iterator]()):Mt,"%Symbol%":La?Symbol:Mt,"%SyntaxError%":ls,"%ThrowTypeError%":v7,"%TypedArray%":m7,"%TypeError%":Qa,"%Uint8Array%":typeof Uint8Array>"u"?Mt:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Mt:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Mt:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Mt:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?Mt:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Mt:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Mt:WeakSet};if(ur)try{null.error}catch(e){var y7=ur(ur(e));oa["%Error.prototype%"]=y7}var b7=function e(t){var r;if(t==="%AsyncFunction%")r=Uc("async function () {}");else if(t==="%GeneratorFunction%")r=Uc("function* () {}");else if(t==="%AsyncGeneratorFunction%")r=Uc("async function* () {}");else if(t==="%AsyncGenerator%"){var i=e("%AsyncGeneratorFunction%");i&&(r=i.prototype)}else if(t==="%AsyncIteratorPrototype%"){var a=e("%AsyncGenerator%");a&&ur&&(r=ur(a.prototype))}return oa[t]=r,r},Qm={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},pu=jv,jl=p7,w7=pu.call(Function.call,Array.prototype.concat),_7=pu.call(Function.apply,Array.prototype.splice),e1=pu.call(Function.call,String.prototype.replace),Ul=pu.call(Function.call,String.prototype.slice),M7=pu.call(Function.call,RegExp.prototype.exec),S7=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,x7=/\\(\\)?/g,E7=function(t){var r=Ul(t,0,1),i=Ul(t,-1);if(r==="%"&&i!=="%")throw new ls("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&r!=="%")throw new ls("invalid intrinsic syntax, expected opening `%`");var a=[];return e1(t,S7,function(n,u,c,d){a[a.length]=c?e1(d,x7,"$1"):u||n}),a},R7=function(t,r){var i=t,a;if(jl(Qm,i)&&(a=Qm[i],i="%"+a[0]+"%"),jl(oa,i)){var n=oa[i];if(n===Ua&&(n=b7(i)),typeof n>"u"&&!r)throw new Qa("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:a,name:i,value:n}}throw new ls("intrinsic "+t+" does not exist!")},Uv=function(t,r){if(typeof t!="string"||t.length===0)throw new Qa("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Qa('"allowMissing" argument must be a boolean');if(M7(/^%?[^%]*%?$/,t)===null)throw new ls("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=E7(t),a=i.length>0?i[0]:"",n=R7("%"+a+"%",r),u=n.name,c=n.value,d=!1,m=n.alias;m&&(a=m[0],_7(i,w7([0,1],m)));for(var M=1,S=!0;M<i.length;M+=1){var R=i[M],C=Ul(R,0,1),P=Ul(R,-1);if((C==='"'||C==="'"||C==="`"||P==='"'||P==="'"||P==="`")&&C!==P)throw new ls("property names with quotes must have matching quotes");if((R==="constructor"||!S)&&(d=!0),a+="."+R,u="%"+a+"%",jl(oa,u))c=oa[u];else if(c!=null){if(!(R in c)){if(!r)throw new Qa("base intrinsic for "+t+" exists, but the property is not available.");return}if(na&&M+1>=i.length){var k=na(c,R);S=!!k,S&&"get"in k&&!("originalValue"in k.get)?c=k.get:c=c[R]}else S=jl(c,R),c=c[R];S&&!d&&(oa[u]=c)}}return c},G_={exports:{}};(function(e){var t=jv,r=Uv,i=r("%Function.prototype.apply%"),a=r("%Function.prototype.call%"),n=r("%Reflect.apply%",!0)||t.call(a,i),u=r("%Object.getOwnPropertyDescriptor%",!0),c=r("%Object.defineProperty%",!0),d=r("%Math.max%");if(c)try{c({},"a",{value:1})}catch{c=null}e.exports=function(S){var R=n(t,a,arguments);if(u&&c){var C=u(R,"length");C.configurable&&c(R,"length",{value:1+d(0,S.length-(arguments.length-1))})}return R};var m=function(){return n(t,i,arguments)};c?c(e.exports,"apply",{value:m}):e.exports.apply=m})(G_);var A7=G_.exports,Y_=Uv,Z_=A7,T7=Z_(Y_("String.prototype.indexOf")),Hv=function(t,r){var i=Y_(t,!!r);return typeof i=="function"&&T7(t,".prototype.")>-1?Z_(i):i},O7=Oh(),I7=Hv,op=I7("Object.prototype.toString"),Ih=function(t){return O7&&t&&typeof t=="object"&&Symbol.toStringTag in t?!1:op(t)==="[object Arguments]"},X_=function(t){return Ih(t)?!0:t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&op(t)!=="[object Array]"&&op(t.callee)==="[object Function]"},P7=function(){return Ih(arguments)}();Ih.isLegacyArguments=X_;var C7=P7?Ih:X_,B7=Object.prototype.toString,L7=Function.prototype.toString,N7=/^\s*(?:function)?\*/,J_=Oh(),qc=Object.getPrototypeOf,k7=function(){if(!J_)return!1;try{return Function("return function*() {}")()}catch{}},Wc,$7=function(t){if(typeof t!="function")return!1;if(N7.test(L7.call(t)))return!0;if(!J_){var r=B7.call(t);return r==="[object GeneratorFunction]"}if(!qc)return!1;if(typeof Wc>"u"){var i=k7();Wc=i?qc(i):!1}return qc(t)===Wc},Q_=Function.prototype.toString,Ka=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,ap,fl;if(typeof Ka=="function"&&typeof Object.defineProperty=="function")try{ap=Object.defineProperty({},"length",{get:function(){throw fl}}),fl={},Ka(function(){throw 42},null,ap)}catch(e){e!==fl&&(Ka=null)}else Ka=null;var D7=/^\s*class\b/,sp=function(t){try{var r=Q_.call(t);return D7.test(r)}catch{return!1}},Kc=function(t){try{return sp(t)?!1:(Q_.call(t),!0)}catch{return!1}},ul=Object.prototype.toString,F7="[object Object]",j7="[object Function]",U7="[object GeneratorFunction]",H7="[object HTMLAllCollection]",q7="[object HTML document.all class]",W7="[object HTMLCollection]",K7=typeof Symbol=="function"&&!!Symbol.toStringTag,V7=!(0 in[,]),fp=function(){return!1};if(typeof document=="object"){var z7=document.all;ul.call(z7)===ul.call(document.all)&&(fp=function(t){if((V7||!t)&&(typeof t>"u"||typeof t=="object"))try{var r=ul.call(t);return(r===H7||r===q7||r===W7||r===F7)&&t("")==null}catch{}return!1})}var G7=Ka?function(t){if(fp(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;try{Ka(t,null,ap)}catch(r){if(r!==fl)return!1}return!sp(t)&&Kc(t)}:function(t){if(fp(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;if(K7)return Kc(t);if(sp(t))return!1;var r=ul.call(t);return r!==j7&&r!==U7&&!/^\[object HTML/.test(r)?!1:Kc(t)},Y7=G7,Z7=Object.prototype.toString,eM=Object.prototype.hasOwnProperty,X7=function(t,r,i){for(var a=0,n=t.length;a<n;a++)eM.call(t,a)&&(i==null?r(t[a],a,t):r.call(i,t[a],a,t))},J7=function(t,r,i){for(var a=0,n=t.length;a<n;a++)i==null?r(t.charAt(a),a,t):r.call(i,t.charAt(a),a,t)},Q7=function(t,r,i){for(var a in t)eM.call(t,a)&&(i==null?r(t[a],a,t):r.call(i,t[a],a,t))},e9=function(t,r,i){if(!Y7(r))throw new TypeError("iterator must be a function");var a;arguments.length>=3&&(a=i),Z7.call(t)==="[object Array]"?X7(t,r,a):typeof t=="string"?J7(t,r,a):Q7(t,r,a)},tM=e9,Vc=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],t9=typeof globalThis>"u"?Ye:globalThis,rM=function(){for(var t=[],r=0;r<Vc.length;r++)typeof t9[Vc[r]]=="function"&&(t[t.length]=Vc[r]);return t},r9=Uv,ll=r9("%Object.getOwnPropertyDescriptor%",!0);if(ll)try{ll([],"length")}catch{ll=null}var iM=ll,nM=tM,i9=rM,qv=Hv,n9=qv("Object.prototype.toString"),oM=Oh(),hl=iM,o9=typeof globalThis>"u"?Ye:globalThis,aM=i9(),a9=qv("Array.prototype.indexOf",!0)||function(t,r){for(var i=0;i<t.length;i+=1)if(t[i]===r)return i;return-1},s9=qv("String.prototype.slice"),sM={},zc=Object.getPrototypeOf;oM&&hl&&zc&&nM(aM,function(e){var t=new o9[e];if(Symbol.toStringTag in t){var r=zc(t),i=hl(r,Symbol.toStringTag);if(!i){var a=zc(r);i=hl(a,Symbol.toStringTag)}sM[e]=i.get}});var f9=function(t){var r=!1;return nM(sM,function(i,a){if(!r)try{r=i.call(t)===a}catch{}}),r},fM=function(t){if(!t||typeof t!="object")return!1;if(!oM||!(Symbol.toStringTag in t)){var r=s9(n9(t),8,-1);return a9(aM,r)>-1}return hl?f9(t):!1},uM=tM,u9=rM,lM=Hv,Gc=iM,l9=lM("Object.prototype.toString"),hM=Oh(),t1=typeof globalThis>"u"?Ye:globalThis,h9=u9(),c9=lM("String.prototype.slice"),cM={},Yc=Object.getPrototypeOf;hM&&Gc&&Yc&&uM(h9,function(e){if(typeof t1[e]=="function"){var t=new t1[e];if(Symbol.toStringTag in t){var r=Yc(t),i=Gc(r,Symbol.toStringTag);if(!i){var a=Yc(r);i=Gc(a,Symbol.toStringTag)}cM[e]=i.get}}});var d9=function(t){var r=!1;return uM(cM,function(i,a){if(!r)try{var n=i.call(t);n===a&&(r=n)}catch{}}),r},p9=fM,v9=function(t){return p9(t)?!hM||!(Symbol.toStringTag in t)?c9(l9(t),8,-1):d9(t):!1};(function(e){var t=C7,r=$7,i=v9,a=fM;function n(z){return z.call.bind(z)}var u=typeof BigInt<"u",c=typeof Symbol<"u",d=n(Object.prototype.toString),m=n(Number.prototype.valueOf),M=n(String.prototype.valueOf),S=n(Boolean.prototype.valueOf);if(u)var R=n(BigInt.prototype.valueOf);if(c)var C=n(Symbol.prototype.valueOf);function P(z,se){if(typeof z!="object")return!1;try{return se(z),!0}catch{return!1}}e.isArgumentsObject=t,e.isGeneratorFunction=r,e.isTypedArray=a;function k(z){return typeof Promise<"u"&&z instanceof Promise||z!==null&&typeof z=="object"&&typeof z.then=="function"&&typeof z.catch=="function"}e.isPromise=k;function L(z){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(z):a(z)||$(z)}e.isArrayBufferView=L;function I(z){return i(z)==="Uint8Array"}e.isUint8Array=I;function B(z){return i(z)==="Uint8ClampedArray"}e.isUint8ClampedArray=B;function H(z){return i(z)==="Uint16Array"}e.isUint16Array=H;function F(z){return i(z)==="Uint32Array"}e.isUint32Array=F;function W(z){return i(z)==="Int8Array"}e.isInt8Array=W;function Y(z){return i(z)==="Int16Array"}e.isInt16Array=Y;function ie(z){return i(z)==="Int32Array"}e.isInt32Array=ie;function J(z){return i(z)==="Float32Array"}e.isFloat32Array=J;function V(z){return i(z)==="Float64Array"}e.isFloat64Array=V;function oe(z){return i(z)==="BigInt64Array"}e.isBigInt64Array=oe;function _(z){return i(z)==="BigUint64Array"}e.isBigUint64Array=_;function o(z){return d(z)==="[object Map]"}o.working=typeof Map<"u"&&o(new Map);function f(z){return typeof Map>"u"?!1:o.working?o(z):z instanceof Map}e.isMap=f;function l(z){return d(z)==="[object Set]"}l.working=typeof Set<"u"&&l(new Set);function h(z){return typeof Set>"u"?!1:l.working?l(z):z instanceof Set}e.isSet=h;function p(z){return d(z)==="[object WeakMap]"}p.working=typeof WeakMap<"u"&&p(new WeakMap);function w(z){return typeof WeakMap>"u"?!1:p.working?p(z):z instanceof WeakMap}e.isWeakMap=w;function x(z){return d(z)==="[object WeakSet]"}x.working=typeof WeakSet<"u"&&x(new WeakSet);function g(z){return x(z)}e.isWeakSet=g;function s(z){return d(z)==="[object ArrayBuffer]"}s.working=typeof ArrayBuffer<"u"&&s(new ArrayBuffer);function v(z){return typeof ArrayBuffer>"u"?!1:s.working?s(z):z instanceof ArrayBuffer}e.isArrayBuffer=v;function T(z){return d(z)==="[object DataView]"}T.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&T(new DataView(new ArrayBuffer(1),0,1));function $(z){return typeof DataView>"u"?!1:T.working?T(z):z instanceof DataView}e.isDataView=$;var G=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function ee(z){return d(z)==="[object SharedArrayBuffer]"}function A(z){return typeof G>"u"?!1:(typeof ee.working>"u"&&(ee.working=ee(new G)),ee.working?ee(z):z instanceof G)}e.isSharedArrayBuffer=A;function E(z){return d(z)==="[object AsyncFunction]"}e.isAsyncFunction=E;function U(z){return d(z)==="[object Map Iterator]"}e.isMapIterator=U;function K(z){return d(z)==="[object Set Iterator]"}e.isSetIterator=K;function Z(z){return d(z)==="[object Generator]"}e.isGeneratorObject=Z;function b(z){return d(z)==="[object WebAssembly.Module]"}e.isWebAssemblyCompiledModule=b;function y(z){return P(z,m)}e.isNumberObject=y;function O(z){return P(z,M)}e.isStringObject=O;function q(z){return P(z,S)}e.isBooleanObject=q;function X(z){return u&&P(z,R)}e.isBigIntObject=X;function D(z){return c&&P(z,C)}e.isSymbolObject=D;function N(z){return y(z)||O(z)||q(z)||X(z)||D(z)}e.isBoxedPrimitive=N;function j(z){return typeof Uint8Array<"u"&&(v(z)||A(z))}e.isAnyArrayBuffer=j,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(z){Object.defineProperty(e,z,{enumerable:!1,value:function(){throw new Error(z+" is not supported in userland")}})})})(K_);var g9=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"},up={exports:{}};typeof Object.create=="function"?up.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:up.exports=function(t,r){if(r){t.super_=r;var i=function(){};i.prototype=r.prototype,t.prototype=new i,t.prototype.constructor=t}};var Ze=up.exports;(function(e){var t=Object.getOwnPropertyDescriptors||function($){for(var G=Object.keys($),ee={},A=0;A<G.length;A++)ee[G[A]]=Object.getOwnPropertyDescriptor($,G[A]);return ee},r=/%[sdj%]/g;e.format=function(T){if(!W(T)){for(var $=[],G=0;G<arguments.length;G++)$.push(u(arguments[G]));return $.join(" ")}for(var G=1,ee=arguments,A=ee.length,E=String(T).replace(r,function(K){if(K==="%%")return"%";if(G>=A)return K;switch(K){case"%s":return String(ee[G++]);case"%d":return Number(ee[G++]);case"%j":try{return JSON.stringify(ee[G++])}catch{return"[Circular]"}default:return K}}),U=ee[G];G<A;U=ee[++G])B(U)||!V(U)?E+=" "+U:E+=" "+u(U);return E},e.deprecate=function(T,$){if(typeof we<"u"&&we.noDeprecation===!0)return T;if(typeof we>"u")return function(){return e.deprecate(T,$).apply(this,arguments)};var G=!1;function ee(){if(!G){if(we.throwDeprecation)throw new Error($);we.traceDeprecation?console.trace($):console.error($),G=!0}return T.apply(this,arguments)}return ee};var i={},a=/^$/;if({}.NODE_DEBUG){var n={}.NODE_DEBUG;n=n.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),a=new RegExp("^"+n+"$","i")}e.debuglog=function(T){if(T=T.toUpperCase(),!i[T])if(a.test(T)){var $=we.pid;i[T]=function(){var G=e.format.apply(e,arguments);console.error("%s %d: %s",T,$,G)}}else i[T]=function(){};return i[T]};function u(T,$){var G={seen:[],stylize:d};return arguments.length>=3&&(G.depth=arguments[2]),arguments.length>=4&&(G.colors=arguments[3]),I($)?G.showHidden=$:$&&e._extend(G,$),ie(G.showHidden)&&(G.showHidden=!1),ie(G.depth)&&(G.depth=2),ie(G.colors)&&(G.colors=!1),ie(G.customInspect)&&(G.customInspect=!0),G.colors&&(G.stylize=c),M(G,T,G.depth)}e.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function c(T,$){var G=u.styles[$];return G?"\x1B["+u.colors[G][0]+"m"+T+"\x1B["+u.colors[G][1]+"m":T}function d(T,$){return T}function m(T){var $={};return T.forEach(function(G,ee){$[G]=!0}),$}function M(T,$,G){if(T.customInspect&&$&&o($.inspect)&&$.inspect!==e.inspect&&!($.constructor&&$.constructor.prototype===$)){var ee=$.inspect(G,T);return W(ee)||(ee=M(T,ee,G)),ee}var A=S(T,$);if(A)return A;var E=Object.keys($),U=m(E);if(T.showHidden&&(E=Object.getOwnPropertyNames($)),_($)&&(E.indexOf("message")>=0||E.indexOf("description")>=0))return R($);if(E.length===0){if(o($)){var K=$.name?": "+$.name:"";return T.stylize("[Function"+K+"]","special")}if(J($))return T.stylize(RegExp.prototype.toString.call($),"regexp");if(oe($))return T.stylize(Date.prototype.toString.call($),"date");if(_($))return R($)}var Z="",b=!1,y=["{","}"];if(L($)&&(b=!0,y=["[","]"]),o($)){var O=$.name?": "+$.name:"";Z=" [Function"+O+"]"}if(J($)&&(Z=" "+RegExp.prototype.toString.call($)),oe($)&&(Z=" "+Date.prototype.toUTCString.call($)),_($)&&(Z=" "+R($)),E.length===0&&(!b||$.length==0))return y[0]+Z+y[1];if(G<0)return J($)?T.stylize(RegExp.prototype.toString.call($),"regexp"):T.stylize("[Object]","special");T.seen.push($);var q;return b?q=C(T,$,G,U,E):q=E.map(function(X){return P(T,$,G,U,X,b)}),T.seen.pop(),k(q,Z,y)}function S(T,$){if(ie($))return T.stylize("undefined","undefined");if(W($)){var G="'"+JSON.stringify($).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return T.stylize(G,"string")}if(F($))return T.stylize(""+$,"number");if(I($))return T.stylize(""+$,"boolean");if(B($))return T.stylize("null","null")}function R(T){return"["+Error.prototype.toString.call(T)+"]"}function C(T,$,G,ee,A){for(var E=[],U=0,K=$.length;U<K;++U)x($,String(U))?E.push(P(T,$,G,ee,String(U),!0)):E.push("");return A.forEach(function(Z){Z.match(/^\d+$/)||E.push(P(T,$,G,ee,Z,!0))}),E}function P(T,$,G,ee,A,E){var U,K,Z;if(Z=Object.getOwnPropertyDescriptor($,A)||{value:$[A]},Z.get?Z.set?K=T.stylize("[Getter/Setter]","special"):K=T.stylize("[Getter]","special"):Z.set&&(K=T.stylize("[Setter]","special")),x(ee,A)||(U="["+A+"]"),K||(T.seen.indexOf(Z.value)<0?(B(G)?K=M(T,Z.value,null):K=M(T,Z.value,G-1),K.indexOf(`
+`)>-1&&(E?K=K.split(`
+`).map(function(b){return"  "+b}).join(`
+`).slice(2):K=`
+`+K.split(`
+`).map(function(b){return"   "+b}).join(`
+`))):K=T.stylize("[Circular]","special")),ie(U)){if(E&&A.match(/^\d+$/))return K;U=JSON.stringify(""+A),U.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(U=U.slice(1,-1),U=T.stylize(U,"name")):(U=U.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),U=T.stylize(U,"string"))}return U+": "+K}function k(T,$,G){var ee=T.reduce(function(A,E){return E.indexOf(`
+`)>=0,A+E.replace(/\u001b\[\d\d?m/g,"").length+1},0);return ee>60?G[0]+($===""?"":$+`
+ `)+" "+T.join(`,
+  `)+" "+G[1]:G[0]+$+" "+T.join(", ")+" "+G[1]}e.types=K_;function L(T){return Array.isArray(T)}e.isArray=L;function I(T){return typeof T=="boolean"}e.isBoolean=I;function B(T){return T===null}e.isNull=B;function H(T){return T==null}e.isNullOrUndefined=H;function F(T){return typeof T=="number"}e.isNumber=F;function W(T){return typeof T=="string"}e.isString=W;function Y(T){return typeof T=="symbol"}e.isSymbol=Y;function ie(T){return T===void 0}e.isUndefined=ie;function J(T){return V(T)&&l(T)==="[object RegExp]"}e.isRegExp=J,e.types.isRegExp=J;function V(T){return typeof T=="object"&&T!==null}e.isObject=V;function oe(T){return V(T)&&l(T)==="[object Date]"}e.isDate=oe,e.types.isDate=oe;function _(T){return V(T)&&(l(T)==="[object Error]"||T instanceof Error)}e.isError=_,e.types.isNativeError=_;function o(T){return typeof T=="function"}e.isFunction=o;function f(T){return T===null||typeof T=="boolean"||typeof T=="number"||typeof T=="string"||typeof T=="symbol"||typeof T>"u"}e.isPrimitive=f,e.isBuffer=g9;function l(T){return Object.prototype.toString.call(T)}function h(T){return T<10?"0"+T.toString(10):T.toString(10)}var p=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function w(){var T=new Date,$=[h(T.getHours()),h(T.getMinutes()),h(T.getSeconds())].join(":");return[T.getDate(),p[T.getMonth()],$].join(" ")}e.log=function(){console.log("%s - %s",w(),e.format.apply(e,arguments))},e.inherits=Ze,e._extend=function(T,$){if(!$||!V($))return T;for(var G=Object.keys($),ee=G.length;ee--;)T[G[ee]]=$[G[ee]];return T};function x(T,$){return Object.prototype.hasOwnProperty.call(T,$)}var g=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;e.promisify=function($){if(typeof $!="function")throw new TypeError('The "original" argument must be of type Function');if(g&&$[g]){var G=$[g];if(typeof G!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(G,g,{value:G,enumerable:!1,writable:!1,configurable:!0}),G}function G(){for(var ee,A,E=new Promise(function(Z,b){ee=Z,A=b}),U=[],K=0;K<arguments.length;K++)U.push(arguments[K]);U.push(function(Z,b){Z?A(Z):ee(b)});try{$.apply(this,U)}catch(Z){A(Z)}return E}return Object.setPrototypeOf(G,Object.getPrototypeOf($)),g&&Object.defineProperty(G,g,{value:G,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(G,t($))},e.promisify.custom=g;function s(T,$){if(!T){var G=new Error("Promise was rejected with a falsy value");G.reason=T,T=G}return $(T)}function v(T){if(typeof T!="function")throw new TypeError('The "original" argument must be of type Function');function $(){for(var G=[],ee=0;ee<arguments.length;ee++)G.push(arguments[ee]);var A=G.pop();if(typeof A!="function")throw new TypeError("The last argument must be of type Function");var E=this,U=function(){return A.apply(E,arguments)};T.apply(this,G).then(function(K){we.nextTick(U.bind(null,null,K))},function(K){we.nextTick(s.bind(null,K,U))})}return Object.setPrototypeOf($,Object.getPrototypeOf(T)),Object.defineProperties($,t(T)),$}e.callbackify=v})(ei);var Zc,r1;function m9(){if(r1)return Zc;r1=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return Zc=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),Zc}function y9(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(lp,this,e)):we.nextTick(lp,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(cl,r):(r._writableState.errorEmitted=!0,we.nextTick(i1,r,n)):we.nextTick(i1,r,n):t?(we.nextTick(cl,r),t(n)):we.nextTick(cl,r)}),this)}function i1(e,t){lp(e,t),cl(e)}function cl(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function b9(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function lp(e,t){e.emit("error",t)}function w9(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var dM={destroy:y9,undestroy:b9,errorOrDestroy:w9},_a={};function _9(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var pM={};function yi(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){_9(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,pM[e]=a}function n1(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function M9(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function S9(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function x9(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}yi("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);yi("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&M9(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(S9(e," argument"))a="The ".concat(e," ").concat(i," ").concat(n1(t,"type"));else{var n=x9(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(n1(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);yi("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");yi("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});yi("ERR_STREAM_PREMATURE_CLOSE","Premature close");yi("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});yi("ERR_MULTIPLE_CALLBACK","Callback called multiple times");yi("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");yi("ERR_STREAM_WRITE_AFTER_END","write after end");yi("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);yi("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);yi("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");_a.codes=pM;var E9=_a.codes.ERR_INVALID_OPT_VALUE;function R9(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function A9(e,t,r,i){var a=R9(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new E9(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var vM={getHighWaterMark:A9},ks=T9;function T9(e,t){if(Xc("noDeprecation"))return e;var r=!1;function i(){if(!r){if(Xc("throwDeprecation"))throw new Error(t);Xc("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return i}function Xc(e){try{if(!Ye.localStorage)return!1}catch{return!1}var t=Ye.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var Jc,o1;function gM(){if(o1)return Jc;o1=1,Jc=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=W_,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=dM,m=vM,M=m.getHighWaterMark,S=_a.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||hs(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||hs();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},Jc}var Qc,a1;function hs(){if(a1)return Qc;a1=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};Qc=u;var t=yM(),r=gM();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),Qc}var ed={},zu={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var s1;function pt(){return s1||(s1=1,function(e,t){var r=ke,i=r.Buffer;function a(u,c){for(var d in u)c[d]=u[d]}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=n);function n(u,c,d){return i(u,c,d)}n.prototype=Object.create(i.prototype),a(i,n),n.from=function(u,c,d){if(typeof u=="number")throw new TypeError("Argument must not be a number");return i(u,c,d)},n.alloc=function(u,c,d){if(typeof u!="number")throw new TypeError("Argument must be a number");var m=i(u);return c!==void 0?typeof d=="string"?m.fill(c,d):m.fill(c):m.fill(0),m},n.allocUnsafe=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return i(u)},n.allocUnsafeSlow=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(u)}}(zu,zu.exports)),zu.exports}var f1;function Xr(){if(f1)return ed;f1=1;var e=pt().Buffer,t=e.isEncoding||function(I){switch(I=""+I,I&&I.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r(I){if(!I)return"utf8";for(var B;;)switch(I){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return I;default:if(B)return;I=(""+I).toLowerCase(),B=!0}}function i(I){var B=r(I);if(typeof B!="string"&&(e.isEncoding===t||!t(I)))throw new Error("Unknown encoding: "+I);return B||I}ed.StringDecoder=a;function a(I){this.encoding=i(I);var B;switch(this.encoding){case"utf16le":this.text=S,this.end=R,B=4;break;case"utf8":this.fillLast=d,B=4;break;case"base64":this.text=C,this.end=P,B=3;break;default:this.write=k,this.end=L;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=e.allocUnsafe(B)}a.prototype.write=function(I){if(I.length===0)return"";var B,H;if(this.lastNeed){if(B=this.fillLast(I),B===void 0)return"";H=this.lastNeed,this.lastNeed=0}else H=0;return H<I.length?B?B+this.text(I,H):this.text(I,H):B||""},a.prototype.end=M,a.prototype.text=m,a.prototype.fillLast=function(I){if(this.lastNeed<=I.length)return I.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);I.copy(this.lastChar,this.lastTotal-this.lastNeed,0,I.length),this.lastNeed-=I.length};function n(I){return I<=127?0:I>>5===6?2:I>>4===14?3:I>>3===30?4:I>>6===2?-1:-2}function u(I,B,H){var F=B.length-1;if(F<H)return 0;var W=n(B[F]);return W>=0?(W>0&&(I.lastNeed=W-1),W):--F<H||W===-2?0:(W=n(B[F]),W>=0?(W>0&&(I.lastNeed=W-2),W):--F<H||W===-2?0:(W=n(B[F]),W>=0?(W>0&&(W===2?W=0:I.lastNeed=W-3),W):0))}function c(I,B,H){if((B[0]&192)!==128)return I.lastNeed=0,"�";if(I.lastNeed>1&&B.length>1){if((B[1]&192)!==128)return I.lastNeed=1,"�";if(I.lastNeed>2&&B.length>2&&(B[2]&192)!==128)return I.lastNeed=2,"�"}}function d(I){var B=this.lastTotal-this.lastNeed,H=c(this,I);if(H!==void 0)return H;if(this.lastNeed<=I.length)return I.copy(this.lastChar,B,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);I.copy(this.lastChar,B,0,I.length),this.lastNeed-=I.length}function m(I,B){var H=u(this,I,B);if(!this.lastNeed)return I.toString("utf8",B);this.lastTotal=H;var F=I.length-(H-this.lastNeed);return I.copy(this.lastChar,0,F),I.toString("utf8",B,F)}function M(I){var B=I&&I.length?this.write(I):"";return this.lastNeed?B+"�":B}function S(I,B){if((I.length-B)%2===0){var H=I.toString("utf16le",B);if(H){var F=H.charCodeAt(H.length-1);if(F>=55296&&F<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=I[I.length-2],this.lastChar[1]=I[I.length-1],H.slice(0,-1)}return H}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=I[I.length-1],I.toString("utf16le",B,I.length-1)}function R(I){var B=I&&I.length?this.write(I):"";if(this.lastNeed){var H=this.lastTotal-this.lastNeed;return B+this.lastChar.toString("utf16le",0,H)}return B}function C(I,B){var H=(I.length-B)%3;return H===0?I.toString("base64",B):(this.lastNeed=3-H,this.lastTotal=3,H===1?this.lastChar[0]=I[I.length-1]:(this.lastChar[0]=I[I.length-2],this.lastChar[1]=I[I.length-1]),I.toString("base64",B,I.length-H))}function P(I){var B=I&&I.length?this.write(I):"";return this.lastNeed?B+this.lastChar.toString("base64",0,3-this.lastNeed):B}function k(I){return I.toString(this.encoding)}function L(I){return I&&I.length?this.write(I):""}return ed}var u1=_a.codes.ERR_STREAM_PREMATURE_CLOSE;function O9(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function I9(){}function P9(e){return e.setHeader&&typeof e.abort=="function"}function mM(e,t,r){if(typeof t=="function")return mM(e,null,t);t||(t={}),r=O9(r||I9);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new u1),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new u1),r.call(e,P)},R=function(){e.req.on("finish",c)};return P9(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var Wv=mM,td,l1;function C9(){if(l1)return td;l1=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=Wv,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return td=B,td}var rd,h1;function B9(){return h1||(h1=1,rd=function(){throw new Error("Readable.from is not available in the browser")}),rd}var id,c1;function yM(){if(c1)return id;c1=1,id=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=W_,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=m9(),M=dM,S=vM,R=S.getHighWaterMark,C=_a.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||hs(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||hs(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=C9()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=B9()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return id}var bM=kn,Ph=_a.codes,L9=Ph.ERR_METHOD_NOT_IMPLEMENTED,N9=Ph.ERR_MULTIPLE_CALLBACK,k9=Ph.ERR_TRANSFORM_ALREADY_TRANSFORMING,$9=Ph.ERR_TRANSFORM_WITH_LENGTH_0,Ch=hs();Ze(kn,Ch);function D9(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new N9);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function kn(e){if(!(this instanceof kn))return new kn(e);Ch.call(this,e),this._transformState={afterTransform:D9.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",F9)}function F9(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){d1(e,t,r)}):d1(this,null,null)}kn.prototype.push=function(e,t){return this._transformState.needTransform=!1,Ch.prototype.push.call(this,e,t)};kn.prototype._transform=function(e,t,r){r(new L9("_transform()"))};kn.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};kn.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};kn.prototype._destroy=function(e,t){Ch.prototype._destroy.call(this,e,function(r){t(r)})};function d1(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new $9;if(e._transformState.transforming)throw new k9;return e.push(null)}var j9=Jf,wM=bM;Ze(Jf,wM);function Jf(e){if(!(this instanceof Jf))return new Jf(e);wM.call(this,e)}Jf.prototype._transform=function(e,t,r){r(null,e)};var nd;function U9(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var _M=_a.codes,H9=_M.ERR_MISSING_ARGS,q9=_M.ERR_STREAM_DESTROYED;function p1(e){if(e)throw e}function W9(e){return e.setHeader&&typeof e.abort=="function"}function K9(e,t,r,i){i=U9(i);var a=!1;e.on("close",function(){a=!0}),nd===void 0&&(nd=Wv),nd(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,W9(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new q9("pipe"))}}}function v1(e){e()}function V9(e,t){return e.pipe(t)}function z9(e){return!e.length||typeof e[e.length-1]!="function"?p1:e.pop()}function G9(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=z9(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new H9("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return K9(u,d,m,function(M){a||(a=M),M&&n.forEach(v1),!d&&(n.forEach(v1),i(a))})});return t.reduce(V9)}var Y9=G9;(function(e,t){t=e.exports=yM(),t.Stream=t,t.Readable=t,t.Writable=gM(),t.Duplex=hs(),t.Transform=bM,t.PassThrough=j9,t.finished=Wv,t.pipeline=Y9})(np,np.exports);var vu=np.exports;const Z9=Fv,X9=vu.Readable,J9={objectMode:!0},Q9={clean:!0};function Ao(e){if(!(this instanceof Ao))return new Ao(e);this.options=e||{},this.options=Z9(Q9,e),this._inflights=new Map}Ao.prototype.put=function(e,t){return this._inflights.set(e.messageId,e),t&&t(),this};Ao.prototype.createStream=function(){const e=new X9(J9),t=[];let r=!1,i=0;return this._inflights.forEach(function(a,n){t.push(a)}),e._read=function(){!r&&i<t.length?this.push(t[i++]):this.push(null)},e.destroy=function(){if(r)return;const a=this;r=!0,setTimeout(function(){a.emit("close")},0)},e};Ao.prototype.del=function(e,t){return e=this._inflights.get(e.messageId),e?(this._inflights.delete(e.messageId),t(null,e)):t&&t(new Error("missing packet")),this};Ao.prototype.get=function(e,t){return e=this._inflights.get(e.messageId),e?t(null,e):t&&t(new Error("missing packet")),this};Ao.prototype.close=function(e){this.options.clean&&(this._inflights=null),e&&e()};var MM=Ao;function cs(e){if(!(this instanceof cs))return new cs(e);this.aliasToTopic={},this.max=e}cs.prototype.put=function(e,t){return t===0||t>this.max?!1:(this.aliasToTopic[t]=e,this.length=Object.keys(this.aliasToTopic).length,!0)};cs.prototype.getTopicByAlias=function(e){return this.aliasToTopic[e]};cs.prototype.clear=function(){this.aliasToTopic={}};var eA=cs,od,g1;function tA(){return g1||(g1=1,od=function(e){e.prototype[Symbol.iterator]=function*(){for(let t=this.head;t;t=t.next)yield t.value}}),od}var rA=Nt;Nt.Node=la;Nt.create=Nt;function Nt(e){var t=this;if(t instanceof Nt||(t=new Nt),t.tail=null,t.head=null,t.length=0,e&&typeof e.forEach=="function")e.forEach(function(a){t.push(a)});else if(arguments.length>0)for(var r=0,i=arguments.length;r<i;r++)t.push(arguments[r]);return t}Nt.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t};Nt.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}};Nt.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}};Nt.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)nA(this,arguments[e]);return this.length};Nt.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)oA(this,arguments[e]);return this.length};Nt.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}};Nt.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}};Nt.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,i=0;r!==null;i++)e.call(t,r.value,i,this),r=r.next};Nt.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,i=this.length-1;r!==null;i--)e.call(t,r.value,i,this),r=r.prev};Nt.prototype.get=function(e){for(var t=0,r=this.head;r!==null&&t<e;t++)r=r.next;if(t===e&&r!==null)return r.value};Nt.prototype.getReverse=function(e){for(var t=0,r=this.tail;r!==null&&t<e;t++)r=r.prev;if(t===e&&r!==null)return r.value};Nt.prototype.map=function(e,t){t=t||this;for(var r=new Nt,i=this.head;i!==null;)r.push(e.call(t,i.value,this)),i=i.next;return r};Nt.prototype.mapReverse=function(e,t){t=t||this;for(var r=new Nt,i=this.tail;i!==null;)r.push(e.call(t,i.value,this)),i=i.prev;return r};Nt.prototype.reduce=function(e,t){var r,i=this.head;if(arguments.length>1)r=t;else if(this.head)i=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;i!==null;a++)r=e(r,i.value,a),i=i.next;return r};Nt.prototype.reduceReverse=function(e,t){var r,i=this.tail;if(arguments.length>1)r=t;else if(this.tail)i=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;i!==null;a--)r=e(r,i.value,a),i=i.prev;return r};Nt.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;r!==null;t++)e[t]=r.value,r=r.next;return e};Nt.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;r!==null;t++)e[t]=r.value,r=r.prev;return e};Nt.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var r=new Nt;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=0,a=this.head;a!==null&&i<e;i++)a=a.next;for(;a!==null&&i<t;i++,a=a.next)r.push(a.value);return r};Nt.prototype.sliceReverse=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var r=new Nt;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=this.length,a=this.tail;a!==null&&i>t;i--)a=a.prev;for(;a!==null&&i>e;i--,a=a.prev)r.push(a.value);return r};Nt.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,a=this.head;a!==null&&i<e;i++)a=a.next;for(var n=[],i=0;a&&i<t;i++)n.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var i=0;i<r.length;i++)a=iA(this,a,r[i]);return n};Nt.prototype.reverse=function(){for(var e=this.head,t=this.tail,r=e;r!==null;r=r.prev){var i=r.prev;r.prev=r.next,r.next=i}return this.head=t,this.tail=e,this};function iA(e,t,r){var i=t===e.head?new la(r,null,t,e):new la(r,t,t.next,e);return i.next===null&&(e.tail=i),i.prev===null&&(e.head=i),e.length++,i}function nA(e,t){e.tail=new la(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function oA(e,t){e.head=new la(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function la(e,t,r,i){if(!(this instanceof la))return new la(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}try{tA()(Nt)}catch{}const aA=rA,Vo=Symbol("max"),En=Symbol("length"),Na=Symbol("lengthCalculator"),kf=Symbol("allowStale"),Zo=Symbol("maxAge"),Sn=Symbol("dispose"),m1=Symbol("noDisposeOnSet"),fr=Symbol("lruList"),Pi=Symbol("cache"),SM=Symbol("updateAgeOnGet"),ad=()=>1;class sA{constructor(t){if(typeof t=="number"&&(t={max:t}),t||(t={}),t.max&&(typeof t.max!="number"||t.max<0))throw new TypeError("max must be a non-negative number");this[Vo]=t.max||1/0;const r=t.length||ad;if(this[Na]=typeof r!="function"?ad:r,this[kf]=t.stale||!1,t.maxAge&&typeof t.maxAge!="number")throw new TypeError("maxAge must be a number");this[Zo]=t.maxAge||0,this[Sn]=t.dispose,this[m1]=t.noDisposeOnSet||!1,this[SM]=t.updateAgeOnGet||!1,this.reset()}set max(t){if(typeof t!="number"||t<0)throw new TypeError("max must be a non-negative number");this[Vo]=t||1/0,Js(this)}get max(){return this[Vo]}set allowStale(t){this[kf]=!!t}get allowStale(){return this[kf]}set maxAge(t){if(typeof t!="number")throw new TypeError("maxAge must be a non-negative number");this[Zo]=t,Js(this)}get maxAge(){return this[Zo]}set lengthCalculator(t){typeof t!="function"&&(t=ad),t!==this[Na]&&(this[Na]=t,this[En]=0,this[fr].forEach(r=>{r.length=this[Na](r.value,r.key),this[En]+=r.length})),Js(this)}get lengthCalculator(){return this[Na]}get length(){return this[En]}get itemCount(){return this[fr].length}rforEach(t,r){r=r||this;for(let i=this[fr].tail;i!==null;){const a=i.prev;y1(this,t,i,r),i=a}}forEach(t,r){r=r||this;for(let i=this[fr].head;i!==null;){const a=i.next;y1(this,t,i,r),i=a}}keys(){return this[fr].toArray().map(t=>t.key)}values(){return this[fr].toArray().map(t=>t.value)}reset(){this[Sn]&&this[fr]&&this[fr].length&&this[fr].forEach(t=>this[Sn](t.key,t.value)),this[Pi]=new Map,this[fr]=new aA,this[En]=0}dump(){return this[fr].map(t=>Hl(this,t)?!1:{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}).toArray().filter(t=>t)}dumpLru(){return this[fr]}set(t,r,i){if(i=i||this[Zo],i&&typeof i!="number")throw new TypeError("maxAge must be a number");const a=i?Date.now():0,n=this[Na](r,t);if(this[Pi].has(t)){if(n>this[Vo])return es(this,this[Pi].get(t)),!1;const d=this[Pi].get(t).value;return this[Sn]&&(this[m1]||this[Sn](t,d.value)),d.now=a,d.maxAge=i,d.value=r,this[En]+=n-d.length,d.length=n,this.get(t),Js(this),!0}const u=new fA(t,r,n,a,i);return u.length>this[Vo]?(this[Sn]&&this[Sn](t,r),!1):(this[En]+=u.length,this[fr].unshift(u),this[Pi].set(t,this[fr].head),Js(this),!0)}has(t){if(!this[Pi].has(t))return!1;const r=this[Pi].get(t).value;return!Hl(this,r)}get(t){return sd(this,t,!0)}peek(t){return sd(this,t,!1)}pop(){const t=this[fr].tail;return t?(es(this,t),t.value):null}del(t){es(this,this[Pi].get(t))}load(t){this.reset();const r=Date.now();for(let i=t.length-1;i>=0;i--){const a=t[i],n=a.e||0;if(n===0)this.set(a.k,a.v);else{const u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[Pi].forEach((t,r)=>sd(this,r,!1))}}const sd=(e,t,r)=>{const i=e[Pi].get(t);if(i){const a=i.value;if(Hl(e,a)){if(es(e,i),!e[kf])return}else r&&(e[SM]&&(i.value.now=Date.now()),e[fr].unshiftNode(i));return a.value}},Hl=(e,t)=>{if(!t||!t.maxAge&&!e[Zo])return!1;const r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[Zo]&&r>e[Zo]},Js=e=>{if(e[En]>e[Vo])for(let t=e[fr].tail;e[En]>e[Vo]&&t!==null;){const r=t.prev;es(e,t),t=r}},es=(e,t)=>{if(t){const r=t.value;e[Sn]&&e[Sn](r.key,r.value),e[En]-=r.length,e[Pi].delete(r.key),e[fr].removeNode(t)}};class fA{constructor(t,r,i,a,n){this.key=t,this.value=r,this.length=i,this.now=a,this.maxAge=n||0}}const y1=(e,t,r,i)=>{let a=r.value;Hl(e,a)&&(es(e,r),e[kf]||(a=void 0)),a&&t.call(i,a.value,a.key,e)};var uA=sA,xM={},lA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),Bh=function(){function e(t){t===void 0&&(t=0),this.iteratorType=t}return e.prototype.equals=function(t){return this.o===t.o},e}(),Lh=function(){function e(){this.M=0}return Object.defineProperty(e.prototype,"length",{get:function(){return this.M},enumerable:!1,configurable:!0}),e.prototype.size=function(){return this.M},e.prototype.empty=function(){return this.M===0},e}(),Kv=function(e){lA(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(Lh),hA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),cA=function(e){hA(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this;i.nt=[];var a=i;return r.forEach(function(n){a.push(n)}),i}return t.prototype.clear=function(){this.M=0,this.nt=[]},t.prototype.push=function(r){return this.nt.push(r),this.M+=1,this.M},t.prototype.pop=function(){if(this.M!==0)return this.M-=1,this.nt.pop()},t.prototype.top=function(){return this.nt[this.M-1]},t}(Lh);const dA=cA;var pA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),vA=function(e){pA(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this;i.A=0,i.tt=[];var a=i;return r.forEach(function(n){a.push(n)}),i}return t.prototype.clear=function(){this.tt=[],this.M=this.A=0},t.prototype.push=function(r){var i=this.tt.length;if(this.A/i>.5&&this.A+this.M>=i&&i>4096){for(var a=this.M,n=0;n<a;++n)this.tt[n]=this.tt[this.A+n];this.A=0,this.tt[this.M]=r}else this.tt[this.A+this.M]=r;return++this.M},t.prototype.pop=function(){if(this.M!==0){var r=this.tt[this.A++];return this.M-=1,r}},t.prototype.front=function(){if(this.M!==0)return this.tt[this.A]},t}(Lh);const gA=vA;var mA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),b1=globalThis&&globalThis.q||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),a,n=[],u;try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)n.push(a.value)}catch(c){u={error:c}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(u)throw u.error}}return n},w1=globalThis&&globalThis.D||function(e,t,r){if(r||arguments.length===2)for(var i=0,a=t.length,n;i<a;i++)(n||!(i in t))&&(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))},yA=function(e){mA(t,e);function t(r,i,a){r===void 0&&(r=[]),i===void 0&&(i=function(m,M){return m>M?-1:m<M?1:0}),a===void 0&&(a=!0);var n=e.call(this)||this;if(n.$=i,Array.isArray(r))n.ii=a?w1([],b1(r),!1):r;else{n.ii=[];var u=n;r.forEach(function(m){u.ii.push(m)})}n.M=n.ii.length;for(var c=n.M>>1,d=n.M-1>>1;d>=0;--d)n.ri(d,c);return n}return t.prototype.ti=function(r){for(var i=this.ii[r];r>0;){var a=r-1>>1,n=this.ii[a];if(this.$(n,i)<=0)break;this.ii[r]=n,r=a}this.ii[r]=i},t.prototype.ri=function(r,i){for(var a=this.ii[r];r<i;){var n=r<<1|1,u=n+1,c=this.ii[n];if(u<this.M&&this.$(c,this.ii[u])>0&&(n=u,c=this.ii[u]),this.$(c,a)>=0)break;this.ii[r]=c,r=n}this.ii[r]=a},t.prototype.clear=function(){this.M=0,this.ii.length=0},t.prototype.push=function(r){this.ii.push(r),this.ti(this.M),this.M+=1},t.prototype.pop=function(){if(this.M!==0){var r=this.ii[0],i=this.ii.pop();return this.M-=1,this.M&&(this.ii[0]=i,this.ri(0,this.M>>1)),r}},t.prototype.top=function(){return this.ii[0]},t.prototype.find=function(r){return this.ii.indexOf(r)>=0},t.prototype.remove=function(r){var i=this.ii.indexOf(r);return i<0?!1:(i===0?this.pop():i===this.M-1?(this.ii.pop(),this.M-=1):(this.ii.splice(i,1,this.ii.pop()),this.M-=1,this.ti(i),this.ri(i,this.M>>1)),!0)},t.prototype.updateItem=function(r){var i=this.ii.indexOf(r);return i<0?!1:(this.ti(i),this.ri(i,this.M>>1),!0)},t.prototype.toArray=function(){return w1([],b1(this.ii),!1)},t}(Lh);const bA=yA;var wA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),_A=function(e){wA(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(Kv);const Vv=_A;function zt(){throw new RangeError("Iterator access denied!")}var MA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),EM=function(e){MA(t,e);function t(r,i){var a=e.call(this,i)||this;return a.o=r,a.iteratorType===0?(a.pre=function(){return this.o===0&&zt(),this.o-=1,this},a.next=function(){return this.o===this.container.size()&&zt(),this.o+=1,this}):(a.pre=function(){return this.o===this.container.size()-1&&zt(),this.o+=1,this},a.next=function(){return this.o===-1&&zt(),this.o-=1,this}),a}return Object.defineProperty(t.prototype,"pointer",{get:function(){return this.container.getElementByPos(this.o)},set:function(r){this.container.setElementByPos(this.o,r)},enumerable:!1,configurable:!0}),t}(Bh),RM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),SA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},_1=globalThis&&globalThis.q||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),a,n=[],u;try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)n.push(a.value)}catch(c){u={error:c}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(u)throw u.error}}return n},M1=globalThis&&globalThis.D||function(e,t,r){if(r||arguments.length===2)for(var i=0,a=t.length,n;i<a;i++)(n||!(i in t))&&(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))},xA=globalThis&&globalThis.V||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Qs=function(e){RM(t,e);function t(r,i,a){var n=e.call(this,r,a)||this;return n.container=i,n}return t.prototype.copy=function(){return new t(this.o,this.container,this.iteratorType)},t}(EM),EA=function(e){RM(t,e);function t(r,i){r===void 0&&(r=[]),i===void 0&&(i=!0);var a=e.call(this)||this;if(Array.isArray(r))a.J=i?M1([],_1(r),!1):r,a.M=r.length;else{a.J=[];var n=a;r.forEach(function(u){n.pushBack(u)})}return a}return t.prototype.clear=function(){this.M=0,this.J.length=0},t.prototype.begin=function(){return new Qs(0,this)},t.prototype.end=function(){return new Qs(this.M,this)},t.prototype.rBegin=function(){return new Qs(this.M-1,this,1)},t.prototype.rEnd=function(){return new Qs(-1,this,1)},t.prototype.front=function(){return this.J[0]},t.prototype.back=function(){return this.J[this.M-1]},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;return this.J[r]},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;return this.J.splice(r,1),this.M-=1,this.M},t.prototype.eraseElementByValue=function(r){for(var i=0,a=0;a<this.M;++a)this.J[a]!==r&&(this.J[i++]=this.J[a]);return this.M=this.J.length=i,this.M},t.prototype.eraseElementByIterator=function(r){var i=r.o;return r=r.next(),this.eraseElementByPos(i),r},t.prototype.pushBack=function(r){return this.J.push(r),this.M+=1,this.M},t.prototype.popBack=function(){if(this.M!==0)return this.M-=1,this.J.pop()},t.prototype.setElementByPos=function(r,i){if(r<0||r>this.M-1)throw new RangeError;this.J[r]=i},t.prototype.insert=function(r,i,a){var n;if(a===void 0&&(a=1),r<0||r>this.M)throw new RangeError;return(n=this.J).splice.apply(n,M1([r,0],_1(new Array(a).fill(i)),!1)),this.M+=a,this.M},t.prototype.find=function(r){for(var i=0;i<this.M;++i)if(this.J[i]===r)return new Qs(i,this);return this.end()},t.prototype.reverse=function(){this.J.reverse()},t.prototype.unique=function(){for(var r=1,i=1;i<this.M;++i)this.J[i]!==this.J[i-1]&&(this.J[r++]=this.J[i]);return this.M=this.J.length=r,this.M},t.prototype.sort=function(r){this.J.sort(r)},t.prototype.forEach=function(r){for(var i=0;i<this.M;++i)r(this.J[i],i,this)},t.prototype[Symbol.iterator]=function(){return function(){return SA(this,function(r){switch(r.label){case 0:return[5,xA(this.J)];case 1:return r.sent(),[2]}})}.bind(this)()},t}(Vv);const RA=EA;var AM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),AA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},ef=function(e){AM(t,e);function t(r,i,a,n){var u=e.call(this,n)||this;return u.o=r,u.h=i,u.container=a,u.iteratorType===0?(u.pre=function(){return this.o.L===this.h&&zt(),this.o=this.o.L,this},u.next=function(){return this.o===this.h&&zt(),this.o=this.o.m,this}):(u.pre=function(){return this.o.m===this.h&&zt(),this.o=this.o.m,this},u.next=function(){return this.o===this.h&&zt(),this.o=this.o.L,this}),u}return Object.defineProperty(t.prototype,"pointer",{get:function(){return this.o===this.h&&zt(),this.o.p},set:function(r){this.o===this.h&&zt(),this.o.p=r},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(Bh),TA=function(e){AM(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this;i.h={},i.H=i.l=i.h.L=i.h.m=i.h;var a=i;return r.forEach(function(n){a.pushBack(n)}),i}return t.prototype.G=function(r){var i=r.L,a=r.m;i.m=a,a.L=i,r===this.H&&(this.H=a),r===this.l&&(this.l=i),this.M-=1},t.prototype.F=function(r,i){var a=i.m,n={p:r,L:i,m:a};i.m=n,a.L=n,i===this.h&&(this.H=n),a===this.h&&(this.l=n),this.M+=1},t.prototype.clear=function(){this.M=0,this.H=this.l=this.h.L=this.h.m=this.h},t.prototype.begin=function(){return new ef(this.H,this.h,this)},t.prototype.end=function(){return new ef(this.h,this.h,this)},t.prototype.rBegin=function(){return new ef(this.l,this.h,this,1)},t.prototype.rEnd=function(){return new ef(this.h,this.h,this,1)},t.prototype.front=function(){return this.H.p},t.prototype.back=function(){return this.l.p},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return i.p},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return this.G(i),this.M},t.prototype.eraseElementByValue=function(r){for(var i=this.H;i!==this.h;)i.p===r&&this.G(i),i=i.m;return this.M},t.prototype.eraseElementByIterator=function(r){var i=r.o;return i===this.h&&zt(),r=r.next(),this.G(i),r},t.prototype.pushBack=function(r){return this.F(r,this.l),this.M},t.prototype.popBack=function(){if(this.M!==0){var r=this.l.p;return this.G(this.l),r}},t.prototype.pushFront=function(r){return this.F(r,this.h),this.M},t.prototype.popFront=function(){if(this.M!==0){var r=this.H.p;return this.G(this.H),r}},t.prototype.setElementByPos=function(r,i){if(r<0||r>this.M-1)throw new RangeError;for(var a=this.H;r--;)a=a.m;a.p=i},t.prototype.insert=function(r,i,a){if(a===void 0&&(a=1),r<0||r>this.M)throw new RangeError;if(a<=0)return this.M;if(r===0)for(;a--;)this.pushFront(i);else if(r===this.M)for(;a--;)this.pushBack(i);else{for(var n=this.H,u=1;u<r;++u)n=n.m;var c=n.m;for(this.M+=a;a--;)n.m={p:i,L:n},n.m.L=n,n=n.m;n.m=c,c.L=n}return this.M},t.prototype.find=function(r){for(var i=this.H;i!==this.h;){if(i.p===r)return new ef(i,this.h,this);i=i.m}return this.end()},t.prototype.reverse=function(){if(!(this.M<=1))for(var r=this.H,i=this.l,a=0;a<<1<this.M;){var n=r.p;r.p=i.p,i.p=n,r=r.m,i=i.L,a+=1}},t.prototype.unique=function(){if(this.M<=1)return this.M;for(var r=this.H;r!==this.h;){for(var i=r;i.m!==this.h&&i.p===i.m.p;)i=i.m,this.M-=1;r.m=i.m,r.m.L=r,r=r.m}return this.M},t.prototype.sort=function(r){if(!(this.M<=1)){var i=[];this.forEach(function(n){i.push(n)}),i.sort(r);var a=this.H;i.forEach(function(n){a.p=n,a=a.m})}},t.prototype.merge=function(r){var i=this;if(this.M===0)r.forEach(function(n){i.pushBack(n)});else{var a=this.H;r.forEach(function(n){for(;a!==i.h&&a.p<=n;)a=a.m;i.F(n,a.L)})}return this.M},t.prototype.forEach=function(r){for(var i=this.H,a=0;i!==this.h;)r(i.p,a++,this),i=i.m},t.prototype[Symbol.iterator]=function(){return function(){var r;return AA(this,function(i){switch(i.label){case 0:if(this.M===0)return[2];r=this.H,i.label=1;case 1:return r===this.h?[3,3]:[4,r.p];case 2:return i.sent(),r=r.m,[3,1];case 3:return[2]}})}.bind(this)()},t}(Vv);const OA=TA;var TM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),IA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},PA=globalThis&&globalThis.q||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),a,n=[],u;try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)n.push(a.value)}catch(c){u={error:c}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(u)throw u.error}}return n},CA=globalThis&&globalThis.D||function(e,t,r){if(r||arguments.length===2)for(var i=0,a=t.length,n;i<a;i++)(n||!(i in t))&&(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))},tf=function(e){TM(t,e);function t(r,i,a){var n=e.call(this,r,a)||this;return n.container=i,n}return t.prototype.copy=function(){return new t(this.o,this.container,this.iteratorType)},t}(EM),BA=function(e){TM(t,e);function t(r,i){r===void 0&&(r=[]),i===void 0&&(i=4096);var a=e.call(this)||this;a.A=0,a.S=0,a.R=0,a.k=0,a.C=0,a.j=[];var n=function(){if(typeof r.length=="number")return r.length;if(typeof r.size=="number")return r.size;if(typeof r.size=="function")return r.size();throw new TypeError("Cannot get the length or size of the container")}();a.B=i,a.C=Math.max(Math.ceil(n/a.B),1);for(var u=0;u<a.C;++u)a.j.push(new Array(a.B));var c=Math.ceil(n/a.B);a.A=a.R=(a.C>>1)-(c>>1),a.S=a.k=a.B-n%a.B>>1;var d=a;return r.forEach(function(m){d.pushBack(m)}),a}return t.prototype.O=function(){for(var r=[],i=Math.max(this.C>>1,1),a=0;a<i;++a)r[a]=new Array(this.B);for(var a=this.A;a<this.C;++a)r[r.length]=this.j[a];for(var a=0;a<this.R;++a)r[r.length]=this.j[a];r[r.length]=CA([],PA(this.j[this.R]),!1),this.A=i,this.R=r.length-1;for(var a=0;a<i;++a)r[r.length]=new Array(this.B);this.j=r,this.C=r.length},t.prototype.T=function(r){var i=this.S+r+1,a=i%this.B,n=a-1,u=this.A+(i-a)/this.B;return a===0&&(u-=1),u%=this.C,n<0&&(n+=this.B),{curNodeBucketIndex:u,curNodePointerIndex:n}},t.prototype.clear=function(){this.j=[new Array(this.B)],this.C=1,this.A=this.R=this.M=0,this.S=this.k=this.B>>1},t.prototype.begin=function(){return new tf(0,this)},t.prototype.end=function(){return new tf(this.M,this)},t.prototype.rBegin=function(){return new tf(this.M-1,this,1)},t.prototype.rEnd=function(){return new tf(-1,this,1)},t.prototype.front=function(){if(this.M!==0)return this.j[this.A][this.S]},t.prototype.back=function(){if(this.M!==0)return this.j[this.R][this.k]},t.prototype.pushBack=function(r){return this.M&&(this.k<this.B-1?this.k+=1:this.R<this.C-1?(this.R+=1,this.k=0):(this.R=0,this.k=0),this.R===this.A&&this.k===this.S&&this.O()),this.M+=1,this.j[this.R][this.k]=r,this.M},t.prototype.popBack=function(){if(this.M!==0){var r=this.j[this.R][this.k];return this.M!==1&&(this.k>0?this.k-=1:this.R>0?(this.R-=1,this.k=this.B-1):(this.R=this.C-1,this.k=this.B-1)),this.M-=1,r}},t.prototype.pushFront=function(r){return this.M&&(this.S>0?this.S-=1:this.A>0?(this.A-=1,this.S=this.B-1):(this.A=this.C-1,this.S=this.B-1),this.A===this.R&&this.S===this.k&&this.O()),this.M+=1,this.j[this.A][this.S]=r,this.M},t.prototype.popFront=function(){if(this.M!==0){var r=this.j[this.A][this.S];return this.M!==1&&(this.S<this.B-1?this.S+=1:this.A<this.C-1?(this.A+=1,this.S=0):(this.A=0,this.S=0)),this.M-=1,r}},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;var i=this.T(r),a=i.curNodeBucketIndex,n=i.curNodePointerIndex;return this.j[a][n]},t.prototype.setElementByPos=function(r,i){if(r<0||r>this.M-1)throw new RangeError;var a=this.T(r),n=a.curNodeBucketIndex,u=a.curNodePointerIndex;this.j[n][u]=i},t.prototype.insert=function(r,i,a){if(a===void 0&&(a=1),r<0||r>this.M)throw new RangeError;if(r===0)for(;a--;)this.pushFront(i);else if(r===this.M)for(;a--;)this.pushBack(i);else{for(var n=[],u=r;u<this.M;++u)n.push(this.getElementByPos(u));this.cut(r-1);for(var u=0;u<a;++u)this.pushBack(i);for(var u=0;u<n.length;++u)this.pushBack(n[u])}return this.M},t.prototype.cut=function(r){if(r<0)return this.clear(),0;var i=this.T(r),a=i.curNodeBucketIndex,n=i.curNodePointerIndex;return this.R=a,this.k=n,this.M=r+1,this.M},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;if(r===0)this.popFront();else if(r===this.M-1)this.popBack();else{for(var i=[],a=r+1;a<this.M;++a)i.push(this.getElementByPos(a));this.cut(r),this.popBack();var n=this;i.forEach(function(u){n.pushBack(u)})}return this.M},t.prototype.eraseElementByValue=function(r){if(this.M===0)return 0;for(var i=[],a=0;a<this.M;++a){var n=this.getElementByPos(a);n!==r&&i.push(n)}for(var u=i.length,a=0;a<u;++a)this.setElementByPos(a,i[a]);return this.cut(u-1)},t.prototype.eraseElementByIterator=function(r){var i=r.o;return this.eraseElementByPos(i),r=r.next(),r},t.prototype.find=function(r){for(var i=0;i<this.M;++i)if(this.getElementByPos(i)===r)return new tf(i,this);return this.end()},t.prototype.reverse=function(){for(var r=0,i=this.M-1;r<i;){var a=this.getElementByPos(r);this.setElementByPos(r,this.getElementByPos(i)),this.setElementByPos(i,a),r+=1,i-=1}},t.prototype.unique=function(){if(this.M<=1)return this.M;for(var r=1,i=this.getElementByPos(0),a=1;a<this.M;++a){var n=this.getElementByPos(a);n!==i&&(i=n,this.setElementByPos(r++,n))}for(;this.M>r;)this.popBack();return this.M},t.prototype.sort=function(r){for(var i=[],a=0;a<this.M;++a)i.push(this.getElementByPos(a));i.sort(r);for(var a=0;a<this.M;++a)this.setElementByPos(a,i[a])},t.prototype.shrinkToFit=function(){if(this.M!==0){var r=[];this.forEach(function(a){r.push(a)}),this.C=Math.max(Math.ceil(this.M/this.B),1),this.M=this.A=this.R=this.S=this.k=0,this.j=[];for(var i=0;i<this.C;++i)this.j.push(new Array(this.B));for(var i=0;i<r.length;++i)this.pushBack(r[i])}},t.prototype.forEach=function(r){for(var i=0;i<this.M;++i)r(this.getElementByPos(i),i,this)},t.prototype[Symbol.iterator]=function(){return function(){var r;return IA(this,function(i){switch(i.label){case 0:r=0,i.label=1;case 1:return r<this.M?[4,this.getElementByPos(r)]:[3,4];case 2:i.sent(),i.label=3;case 3:return++r,[3,1];case 4:return[2]}})}.bind(this)()},t}(Vv);const LA=BA;var NA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),OM=function(){function e(t,r){this.ee=1,this.u=void 0,this.p=void 0,this.K=void 0,this.N=void 0,this.rr=void 0,this.u=t,this.p=r}return e.prototype.L=function(){var t=this;if(t.ee===1&&t.rr.rr===t)t=t.N;else if(t.K)for(t=t.K;t.N;)t=t.N;else{for(var r=t.rr;r.K===t;)t=r,r=t.rr;t=r}return t},e.prototype.m=function(){var t=this;if(t.N){for(t=t.N;t.K;)t=t.K;return t}else{for(var r=t.rr;r.N===t;)t=r,r=t.rr;return t.N!==r?r:t}},e.prototype.ne=function(){var t=this.rr,r=this.N,i=r.K;return t.rr===this?t.rr=r:t.K===this?t.K=r:t.N=r,r.rr=t,r.K=this,this.rr=r,this.N=i,i&&(i.rr=this),r},e.prototype.te=function(){var t=this.rr,r=this.K,i=r.N;return t.rr===this?t.rr=r:t.K===this?t.K=r:t.N=r,r.rr=t,r.N=this,this.rr=r,this.K=i,i&&(i.rr=this),r},e}(),kA=function(e){NA(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.tr=1,r}return t.prototype.ne=function(){var r=e.prototype.ne.call(this);return this.ie(),r.ie(),r},t.prototype.te=function(){var r=e.prototype.te.call(this);return this.ie(),r.ie(),r},t.prototype.ie=function(){this.tr=1,this.K&&(this.tr+=this.K.tr),this.N&&(this.tr+=this.N.tr)},t}(OM),$A=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),S1=globalThis&&globalThis.q||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),a,n=[],u;try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)n.push(a.value)}catch(c){u={error:c}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(u)throw u.error}}return n},x1=globalThis&&globalThis.V||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},DA=function(e){$A(t,e);function t(r,i){r===void 0&&(r=function(n,u){return n<u?-1:n>u?1:0}),i===void 0&&(i=!1);var a=e.call(this)||this;return a.W=void 0,a.$=r,i?(a.re=kA,a.v=function(n,u,c){var d=this.se(n,u,c);if(d){for(var m=d.rr;m!==this.h;)m.tr+=1,m=m.rr;var M=this.fe(d);if(M){var S=M,R=S.parentNode,C=S.grandParent,P=S.curNode;R.ie(),C.ie(),P.ie()}}return this.M},a.G=function(n){for(var u=this.he(n);u!==this.h;)u.tr-=1,u=u.rr}):(a.re=OM,a.v=function(n,u,c){var d=this.se(n,u,c);return d&&this.fe(d),this.M},a.G=a.he),a.h=new a.re,a}return t.prototype.U=function(r,i){for(var a=this.h;r;){var n=this.$(r.u,i);if(n<0)r=r.N;else if(n>0)a=r,r=r.K;else return r}return a},t.prototype.X=function(r,i){for(var a=this.h;r;){var n=this.$(r.u,i);n<=0?r=r.N:(a=r,r=r.K)}return a},t.prototype.Y=function(r,i){for(var a=this.h;r;){var n=this.$(r.u,i);if(n<0)a=r,r=r.N;else if(n>0)r=r.K;else return r}return a},t.prototype.Z=function(r,i){for(var a=this.h;r;){var n=this.$(r.u,i);n<0?(a=r,r=r.N):r=r.K}return a},t.prototype.ue=function(r){for(;;){var i=r.rr;if(i===this.h)return;if(r.ee===1){r.ee=0;return}if(r===i.K){var a=i.N;if(a.ee===1)a.ee=0,i.ee=1,i===this.W?this.W=i.ne():i.ne();else if(a.N&&a.N.ee===1){a.ee=i.ee,i.ee=0,a.N.ee=0,i===this.W?this.W=i.ne():i.ne();return}else a.K&&a.K.ee===1?(a.ee=1,a.K.ee=0,a.te()):(a.ee=1,r=i)}else{var a=i.K;if(a.ee===1)a.ee=0,i.ee=1,i===this.W?this.W=i.te():i.te();else if(a.K&&a.K.ee===1){a.ee=i.ee,i.ee=0,a.K.ee=0,i===this.W?this.W=i.te():i.te();return}else a.N&&a.N.ee===1?(a.ee=1,a.N.ee=0,a.ne()):(a.ee=1,r=i)}}},t.prototype.he=function(r){var i,a;if(this.M===1)return this.clear(),this.h;for(var n=r;n.K||n.N;){if(n.N)for(n=n.N;n.K;)n=n.K;else n=n.K;i=S1([n.u,r.u],2),r.u=i[0],n.u=i[1],a=S1([n.p,r.p],2),r.p=a[0],n.p=a[1],r=n}this.h.K===n?this.h.K=n.rr:this.h.N===n&&(this.h.N=n.rr),this.ue(n);var u=n.rr;return n===u.K?u.K=void 0:u.N=void 0,this.M-=1,this.W.ee=0,u},t.prototype.ae=function(r,i){if(r===void 0)return!1;var a=this.ae(r.K,i);return a||i(r)?!0:this.ae(r.N,i)},t.prototype.fe=function(r){for(;;){var i=r.rr;if(i.ee===0)return;var a=i.rr;if(i===a.K){var n=a.N;if(n&&n.ee===1){if(n.ee=i.ee=0,a===this.W)return;a.ee=1,r=a;continue}else if(r===i.N){if(r.ee=0,r.K&&(r.K.rr=i),r.N&&(r.N.rr=a),i.N=r.K,a.K=r.N,r.K=i,r.N=a,a===this.W)this.W=r,this.h.rr=r;else{var u=a.rr;u.K===a?u.K=r:u.N=r}return r.rr=a.rr,i.rr=r,a.rr=r,a.ee=1,{parentNode:i,grandParent:a,curNode:r}}else i.ee=0,a===this.W?this.W=a.te():a.te(),a.ee=1}else{var n=a.K;if(n&&n.ee===1){if(n.ee=i.ee=0,a===this.W)return;a.ee=1,r=a;continue}else if(r===i.K){if(r.ee=0,r.K&&(r.K.rr=a),r.N&&(r.N.rr=i),a.N=r.K,i.K=r.N,r.K=a,r.N=i,a===this.W)this.W=r,this.h.rr=r;else{var u=a.rr;u.K===a?u.K=r:u.N=r}return r.rr=a.rr,i.rr=r,a.rr=r,a.ee=1,{parentNode:i,grandParent:a,curNode:r}}else i.ee=0,a===this.W?this.W=a.ne():a.ne(),a.ee=1}return}},t.prototype.se=function(r,i,a){if(this.W===void 0){this.M+=1,this.W=new this.re(r,i),this.W.ee=0,this.W.rr=this.h,this.h.rr=this.W,this.h.K=this.W,this.h.N=this.W;return}var n,u=this.h.K,c=this.$(u.u,r);if(c===0){u.p=i;return}else if(c>0)u.K=new this.re(r,i),u.K.rr=u,n=u.K,this.h.K=n;else{var d=this.h.N,m=this.$(d.u,r);if(m===0){d.p=i;return}else if(m<0)d.N=new this.re(r,i),d.N.rr=d,n=d.N,this.h.N=n;else{if(a!==void 0){var M=a.o;if(M!==this.h){var S=this.$(M.u,r);if(S===0){M.p=i;return}else if(S>0){var R=M.L(),C=this.$(R.u,r);if(C===0){R.p=i;return}else C<0&&(n=new this.re(r,i),R.N===void 0?(R.N=n,n.rr=R):(M.K=n,n.rr=M))}}}if(n===void 0)for(n=this.W;;){var P=this.$(n.u,r);if(P>0){if(n.K===void 0){n.K=new this.re(r,i),n.K.rr=n,n=n.K;break}n=n.K}else if(P<0){if(n.N===void 0){n.N=new this.re(r,i),n.N.rr=n,n=n.N;break}n=n.N}else{n.p=i;return}}}}return this.M+=1,n},t.prototype.g=function(r,i){for(;r;){var a=this.$(r.u,i);if(a<0)r=r.N;else if(a>0)r=r.K;else return r}return r||this.h},t.prototype.clear=function(){this.M=0,this.W=void 0,this.h.rr=void 0,this.h.K=this.h.N=void 0},t.prototype.updateKeyByIterator=function(r,i){var a=r.o;if(a===this.h&&zt(),this.M===1)return a.u=i,!0;if(a===this.h.K)return this.$(a.m().u,i)>0?(a.u=i,!0):!1;if(a===this.h.N)return this.$(a.L().u,i)<0?(a.u=i,!0):!1;var n=a.L().u;if(this.$(n,i)>=0)return!1;var u=a.m().u;return this.$(u,i)<=0?!1:(a.u=i,!0)},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;var i=0,a=this;return this.ae(this.W,function(n){return r===i?(a.G(n),!0):(i+=1,!1)}),this.M},t.prototype.eraseElementByKey=function(r){if(this.M===0)return!1;var i=this.g(this.W,r);return i===this.h?!1:(this.G(i),!0)},t.prototype.eraseElementByIterator=function(r){var i=r.o;i===this.h&&zt();var a=i.N===void 0,n=r.iteratorType===0;return n?a&&r.next():(!a||i.K===void 0)&&r.next(),this.G(i),r},t.prototype.forEach=function(r){var i,a,n=0;try{for(var u=x1(this),c=u.next();!c.done;c=u.next()){var d=c.value;r(d,n++,this)}}catch(m){i={error:m}}finally{try{c&&!c.done&&(a=u.return)&&a.call(u)}finally{if(i)throw i.error}}},t.prototype.getElementByPos=function(r){var i,a;if(r<0||r>this.M-1)throw new RangeError;var n,u=0;try{for(var c=x1(this),d=c.next();!d.done;d=c.next()){var m=d.value;if(u===r){n=m;break}u+=1}}catch(M){i={error:M}}finally{try{d&&!d.done&&(a=c.return)&&a.call(c)}finally{if(i)throw i.error}}return n},t.prototype.getHeight=function(){if(this.M===0)return 0;var r=function(i){return i?Math.max(r(i.K),r(i.N))+1:0};return r(this.W)},t}(Kv);const IM=DA;var FA=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),jA=function(e){FA(t,e);function t(r,i,a){var n=e.call(this,a)||this;return n.o=r,n.h=i,n.iteratorType===0?(n.pre=function(){return this.o===this.h.K&&zt(),this.o=this.o.L(),this},n.next=function(){return this.o===this.h&&zt(),this.o=this.o.m(),this}):(n.pre=function(){return this.o===this.h.N&&zt(),this.o=this.o.m(),this},n.next=function(){return this.o===this.h&&zt(),this.o=this.o.L(),this}),n}return Object.defineProperty(t.prototype,"index",{get:function(){var r=this.o,i=this.h.rr;if(r===this.h)return i?i.tr-1:0;var a=0;for(r.K&&(a+=r.K.tr);r!==i;){var n=r.rr;r===n.N&&(a+=1,n.K&&(a+=n.K.tr)),r=n}return a},enumerable:!1,configurable:!0}),t}(Bh);const PM=jA;var CM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),UA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},E1=globalThis&&globalThis.V||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},vn=function(e){CM(t,e);function t(r,i,a,n){var u=e.call(this,r,i,n)||this;return u.container=a,u}return Object.defineProperty(t.prototype,"pointer",{get:function(){return this.o===this.h&&zt(),this.o.u},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(PM),HA=function(e){CM(t,e);function t(r,i,a){r===void 0&&(r=[]);var n=e.call(this,i,a)||this,u=n;return r.forEach(function(c){u.insert(c)}),n}return t.prototype.P=function(r){return UA(this,function(i){switch(i.label){case 0:return r===void 0?[2]:[5,E1(this.P(r.K))];case 1:return i.sent(),[4,r.u];case 2:return i.sent(),[5,E1(this.P(r.N))];case 3:return i.sent(),[2]}})},t.prototype.begin=function(){return new vn(this.h.K||this.h,this.h,this)},t.prototype.end=function(){return new vn(this.h,this.h,this)},t.prototype.rBegin=function(){return new vn(this.h.N||this.h,this.h,this,1)},t.prototype.rEnd=function(){return new vn(this.h,this.h,this,1)},t.prototype.front=function(){return this.h.K?this.h.K.u:void 0},t.prototype.back=function(){return this.h.N?this.h.N.u:void 0},t.prototype.insert=function(r,i){return this.v(r,void 0,i)},t.prototype.find=function(r){var i=this.g(this.W,r);return new vn(i,this.h,this)},t.prototype.lowerBound=function(r){var i=this.U(this.W,r);return new vn(i,this.h,this)},t.prototype.upperBound=function(r){var i=this.X(this.W,r);return new vn(i,this.h,this)},t.prototype.reverseLowerBound=function(r){var i=this.Y(this.W,r);return new vn(i,this.h,this)},t.prototype.reverseUpperBound=function(r){var i=this.Z(this.W,r);return new vn(i,this.h,this)},t.prototype.union=function(r){var i=this;return r.forEach(function(a){i.insert(a)}),this.M},t.prototype[Symbol.iterator]=function(){return this.P(this.W)},t}(IM);const qA=HA;var BM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),WA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},R1=globalThis&&globalThis.V||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},gn=function(e){BM(t,e);function t(r,i,a,n){var u=e.call(this,r,i,n)||this;return u.container=a,u}return Object.defineProperty(t.prototype,"pointer",{get:function(){this.o===this.h&&zt();var r=this;return new Proxy([],{get:function(i,a){if(a==="0")return r.o.u;if(a==="1")return r.o.p},set:function(i,a,n){if(a!=="1")throw new TypeError("props must be 1");return r.o.p=n,!0}})},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(PM),KA=function(e){BM(t,e);function t(r,i,a){r===void 0&&(r=[]);var n=e.call(this,i,a)||this,u=n;return r.forEach(function(c){u.setElement(c[0],c[1])}),n}return t.prototype.P=function(r){return WA(this,function(i){switch(i.label){case 0:return r===void 0?[2]:[5,R1(this.P(r.K))];case 1:return i.sent(),[4,[r.u,r.p]];case 2:return i.sent(),[5,R1(this.P(r.N))];case 3:return i.sent(),[2]}})},t.prototype.begin=function(){return new gn(this.h.K||this.h,this.h,this)},t.prototype.end=function(){return new gn(this.h,this.h,this)},t.prototype.rBegin=function(){return new gn(this.h.N||this.h,this.h,this,1)},t.prototype.rEnd=function(){return new gn(this.h,this.h,this,1)},t.prototype.front=function(){if(this.M!==0){var r=this.h.K;return[r.u,r.p]}},t.prototype.back=function(){if(this.M!==0){var r=this.h.N;return[r.u,r.p]}},t.prototype.lowerBound=function(r){var i=this.U(this.W,r);return new gn(i,this.h,this)},t.prototype.upperBound=function(r){var i=this.X(this.W,r);return new gn(i,this.h,this)},t.prototype.reverseLowerBound=function(r){var i=this.Y(this.W,r);return new gn(i,this.h,this)},t.prototype.reverseUpperBound=function(r){var i=this.Z(this.W,r);return new gn(i,this.h,this)},t.prototype.setElement=function(r,i,a){return this.v(r,i,a)},t.prototype.find=function(r){var i=this.g(this.W,r);return new gn(i,this.h,this)},t.prototype.getElementByKey=function(r){var i=this.g(this.W,r);return i.p},t.prototype.union=function(r){var i=this;return r.forEach(function(a){i.setElement(a[0],a[1])}),this.M},t.prototype[Symbol.iterator]=function(){return this.P(this.W)},t}(IM);const VA=KA;function dl(e){var t=typeof e;return t==="object"&&e!==null||t==="function"}var LM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),NM=function(e){LM(t,e);function t(r,i,a){var n=e.call(this,a)||this;return n.o=r,n.h=i,n.iteratorType===0?(n.pre=function(){return this.o.L===this.h&&zt(),this.o=this.o.L,this},n.next=function(){return this.o===this.h&&zt(),this.o=this.o.m,this}):(n.pre=function(){return this.o.m===this.h&&zt(),this.o=this.o.m,this},n.next=function(){return this.o===this.h&&zt(),this.o=this.o.L,this}),n}return t}(Bh),kM=function(e){LM(t,e);function t(){var r=e.call(this)||this;return r._=[],r.I={},r.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(r.I,null),r.h={},r.h.L=r.h.m=r.H=r.l=r.h,r}return t.prototype.G=function(r){var i=r.L,a=r.m;i.m=a,a.L=i,r===this.H&&(this.H=a),r===this.l&&(this.l=i),this.M-=1},t.prototype.v=function(r,i,a){a===void 0&&(a=dl(r));var n;if(a){var u=r[this.HASH_TAG];if(u!==void 0)return this._[u].p=i,this.M;Object.defineProperty(r,this.HASH_TAG,{value:this._.length,configurable:!0}),n={u:r,p:i,L:this.l,m:this.h},this._.push(n)}else{var c=this.I[r];if(c)return c.p=i,this.M;n={u:r,p:i,L:this.l,m:this.h},this.I[r]=n}return this.M===0?(this.H=n,this.h.m=n):this.l.m=n,this.l=n,this.h.L=n,++this.M},t.prototype.g=function(r,i){if(i===void 0&&(i=dl(r)),i){var a=r[this.HASH_TAG];return a===void 0?this.h:this._[a]}else return this.I[r]||this.h},t.prototype.clear=function(){var r=this.HASH_TAG;this._.forEach(function(i){delete i.u[r]}),this._=[],this.I={},Object.setPrototypeOf(this.I,null),this.M=0,this.H=this.l=this.h.L=this.h.m=this.h},t.prototype.eraseElementByKey=function(r,i){var a;if(i===void 0&&(i=dl(r)),i){var n=r[this.HASH_TAG];if(n===void 0)return!1;delete r[this.HASH_TAG],a=this._[n],delete this._[n]}else{if(a=this.I[r],a===void 0)return!1;delete this.I[r]}return this.G(a),!0},t.prototype.eraseElementByIterator=function(r){var i=r.o;return i===this.h&&zt(),this.G(i),r.next()},t.prototype.eraseElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return this.G(i),this.M},t}(Kv),$M=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),zA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},rf=function(e){$M(t,e);function t(r,i,a,n){var u=e.call(this,r,i,n)||this;return u.container=a,u}return Object.defineProperty(t.prototype,"pointer",{get:function(){return this.o===this.h&&zt(),this.o.u},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(NM),GA=function(e){$M(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this,a=i;return r.forEach(function(n){a.insert(n)}),i}return t.prototype.begin=function(){return new rf(this.H,this.h,this)},t.prototype.end=function(){return new rf(this.h,this.h,this)},t.prototype.rBegin=function(){return new rf(this.l,this.h,this,1)},t.prototype.rEnd=function(){return new rf(this.h,this.h,this,1)},t.prototype.front=function(){return this.H.u},t.prototype.back=function(){return this.l.u},t.prototype.insert=function(r,i){return this.v(r,void 0,i)},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return i.u},t.prototype.find=function(r,i){var a=this.g(r,i);return new rf(a,this.h,this)},t.prototype.forEach=function(r){for(var i=0,a=this.H;a!==this.h;)r(a.u,i++,this),a=a.m},t.prototype[Symbol.iterator]=function(){return function(){var r;return zA(this,function(i){switch(i.label){case 0:r=this.H,i.label=1;case 1:return r===this.h?[3,3]:[4,r.u];case 2:return i.sent(),r=r.m,[3,1];case 3:return[2]}})}.bind(this)()},t}(kM);const YA=GA;var DM=globalThis&&globalThis.t||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=a[n])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),ZA=globalThis&&globalThis.i||function(e,t){var r={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,a,n,u;return u={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(m){return function(M){return d([m,M])}}function d(m){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(n=m[0]&2?a.return:m[0]?a.throw||((n=a.return)&&n.call(a),0):a.next)&&!(n=n.call(a,m[1])).done)return n;switch(a=0,n&&(m=[m[0]&2,n.value]),m[0]){case 0:case 1:n=m;break;case 4:return r.label++,{value:m[1],done:!1};case 5:r.label++,a=m[1],m=[0];continue;case 7:m=r.ops.pop(),r.trys.pop();continue;default:if(n=r.trys,!(n=n.length>0&&n[n.length-1])&&(m[0]===6||m[0]===2)){r=0;continue}if(m[0]===3&&(!n||m[1]>n[0]&&m[1]<n[3])){r.label=m[1];break}if(m[0]===6&&r.label<n[1]){r.label=n[1],n=m;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(m);break}n[2]&&r.ops.pop(),r.trys.pop();continue}m=t.call(e,r)}catch(M){m=[6,M],a=0}finally{i=n=0}if(m[0]&5)throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}},nf=function(e){DM(t,e);function t(r,i,a,n){var u=e.call(this,r,i,n)||this;return u.container=a,u}return Object.defineProperty(t.prototype,"pointer",{get:function(){this.o===this.h&&zt();var r=this;return new Proxy([],{get:function(i,a){if(a==="0")return r.o.u;if(a==="1")return r.o.p},set:function(i,a,n){if(a!=="1")throw new TypeError("props must be 1");return r.o.p=n,!0}})},enumerable:!1,configurable:!0}),t.prototype.copy=function(){return new t(this.o,this.h,this.container,this.iteratorType)},t}(NM),XA=function(e){DM(t,e);function t(r){r===void 0&&(r=[]);var i=e.call(this)||this,a=i;return r.forEach(function(n){a.setElement(n[0],n[1])}),i}return t.prototype.begin=function(){return new nf(this.H,this.h,this)},t.prototype.end=function(){return new nf(this.h,this.h,this)},t.prototype.rBegin=function(){return new nf(this.l,this.h,this,1)},t.prototype.rEnd=function(){return new nf(this.h,this.h,this,1)},t.prototype.front=function(){if(this.M!==0)return[this.H.u,this.H.p]},t.prototype.back=function(){if(this.M!==0)return[this.l.u,this.l.p]},t.prototype.setElement=function(r,i,a){return this.v(r,i,a)},t.prototype.getElementByKey=function(r,i){if(i===void 0&&(i=dl(r)),i){var a=r[this.HASH_TAG];return a!==void 0?this._[a].p:void 0}var n=this.I[r];return n?n.p:void 0},t.prototype.getElementByPos=function(r){if(r<0||r>this.M-1)throw new RangeError;for(var i=this.H;r--;)i=i.m;return[i.u,i.p]},t.prototype.find=function(r,i){var a=this.g(r,i);return new nf(a,this.h,this)},t.prototype.forEach=function(r){for(var i=0,a=this.H;a!==this.h;)r([a.u,a.p],i++,this),a=a.m},t.prototype[Symbol.iterator]=function(){return function(){var r;return ZA(this,function(i){switch(i.label){case 0:r=this.H,i.label=1;case 1:return r===this.h?[3,3]:[4,[r.u,r.p]];case 2:return i.sent(),r=r.m,[3,1];case 3:return[2]}})}.bind(this)()},t}(kM);const JA=XA,QA=Object.freeze(Object.defineProperty({__proto__:null,Deque:LA,HashMap:JA,HashSet:YA,LinkList:OA,OrderedMap:VA,OrderedSet:qA,PriorityQueue:bA,Queue:gA,Stack:dA,Vector:RA},Symbol.toStringTag,{value:"Module"})),eT=tv(QA);var hp={exports:{}},fd,A1;function tT(){if(A1)return fd;A1=1;var e=1e3,t=e*60,r=t*60,i=r*24,a=i*7,n=i*365.25;fd=function(M,S){S=S||{};var R=typeof M;if(R==="string"&&M.length>0)return u(M);if(R==="number"&&isFinite(M))return S.long?d(M):c(M);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(M))};function u(M){if(M=String(M),!(M.length>100)){var S=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(M);if(S){var R=parseFloat(S[1]),C=(S[2]||"ms").toLowerCase();switch(C){case"years":case"year":case"yrs":case"yr":case"y":return R*n;case"weeks":case"week":case"w":return R*a;case"days":case"day":case"d":return R*i;case"hours":case"hour":case"hrs":case"hr":case"h":return R*r;case"minutes":case"minute":case"mins":case"min":case"m":return R*t;case"seconds":case"second":case"secs":case"sec":case"s":return R*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return R;default:return}}}}function c(M){var S=Math.abs(M);return S>=i?Math.round(M/i)+"d":S>=r?Math.round(M/r)+"h":S>=t?Math.round(M/t)+"m":S>=e?Math.round(M/e)+"s":M+"ms"}function d(M){var S=Math.abs(M);return S>=i?m(M,S,i,"day"):S>=r?m(M,S,r,"hour"):S>=t?m(M,S,t,"minute"):S>=e?m(M,S,e,"second"):M+" ms"}function m(M,S,R,C){var P=S>=R*1.5;return Math.round(M/R)+" "+C+(P?"s":"")}return fd}function rT(e){r.debug=r,r.default=r,r.coerce=d,r.disable=n,r.enable=a,r.enabled=u,r.humanize=tT(),r.destroy=m,Object.keys(e).forEach(M=>{r[M]=e[M]}),r.names=[],r.skips=[],r.formatters={};function t(M){let S=0;for(let R=0;R<M.length;R++)S=(S<<5)-S+M.charCodeAt(R),S|=0;return r.colors[Math.abs(S)%r.colors.length]}r.selectColor=t;function r(M){let S,R=null,C,P;function k(...L){if(!k.enabled)return;const I=k,B=Number(new Date),H=B-(S||B);I.diff=H,I.prev=S,I.curr=B,S=B,L[0]=r.coerce(L[0]),typeof L[0]!="string"&&L.unshift("%O");let F=0;L[0]=L[0].replace(/%([a-zA-Z%])/g,(Y,ie)=>{if(Y==="%%")return"%";F++;const J=r.formatters[ie];if(typeof J=="function"){const V=L[F];Y=J.call(I,V),L.splice(F,1),F--}return Y}),r.formatArgs.call(I,L),(I.log||r.log).apply(I,L)}return k.namespace=M,k.useColors=r.useColors(),k.color=r.selectColor(M),k.extend=i,k.destroy=r.destroy,Object.defineProperty(k,"enabled",{enumerable:!0,configurable:!1,get:()=>R!==null?R:(C!==r.namespaces&&(C=r.namespaces,P=r.enabled(M)),P),set:L=>{R=L}}),typeof r.init=="function"&&r.init(k),k}function i(M,S){const R=r(this.namespace+(typeof S>"u"?":":S)+M);return R.log=this.log,R}function a(M){r.save(M),r.namespaces=M,r.names=[],r.skips=[];let S;const R=(typeof M=="string"?M:"").split(/[\s,]+/),C=R.length;for(S=0;S<C;S++)R[S]&&(M=R[S].replace(/\*/g,".*?"),M[0]==="-"?r.skips.push(new RegExp("^"+M.slice(1)+"$")):r.names.push(new RegExp("^"+M+"$")))}function n(){const M=[...r.names.map(c),...r.skips.map(c).map(S=>"-"+S)].join(",");return r.enable(""),M}function u(M){if(M[M.length-1]==="*")return!0;let S,R;for(S=0,R=r.skips.length;S<R;S++)if(r.skips[S].test(M))return!1;for(S=0,R=r.names.length;S<R;S++)if(r.names[S].test(M))return!0;return!1}function c(M){return M.toString().substring(2,M.toString().length-2).replace(/\.\*\?$/,"*")}function d(M){return M instanceof Error?M.stack||M.message:M}function m(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}var iT=rT;(function(e,t){t.formatArgs=i,t.save=a,t.load=n,t.useColors=r,t.storage=u(),t.destroy=(()=>{let d=!1;return()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function i(d){if(d[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+d[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const m="color: "+this.color;d.splice(1,0,m,"color: inherit");let M=0,S=0;d[0].replace(/%[a-zA-Z%]/g,R=>{R!=="%%"&&(M++,R==="%c"&&(S=M))}),d.splice(S,0,m)}t.log=console.debug||console.log||(()=>{});function a(d){try{d?t.storage.setItem("debug",d):t.storage.removeItem("debug")}catch{}}function n(){let d;try{d=t.storage.getItem("debug")}catch{}return!d&&typeof we<"u"&&"env"in we&&(d={}.DEBUG),d}function u(){try{return localStorage}catch{}}e.exports=iT(t);const{formatters:c}=e.exports;c.j=function(d){try{return JSON.stringify(d)}catch(m){return"[UnexpectedJSONParseError]: "+m.message}}})(hp,hp.exports);var zn=hp.exports;const nT=eT.OrderedSet,Qi=zn("number-allocator:trace"),oT=zn("number-allocator:error");function Lr(e,t){this.low=e,this.high=t}Lr.prototype.equals=function(e){return this.low===e.low&&this.high===e.high};Lr.prototype.compare=function(e){return this.low<e.low&&this.high<e.low?-1:e.low<this.low&&e.high<this.low?1:0};function sn(e,t){if(!(this instanceof sn))return new sn(e,t);this.min=e,this.max=t,this.ss=new nT([],(r,i)=>r.compare(i)),Qi("Create"),this.clear()}sn.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low};sn.prototype.alloc=function(){if(this.ss.size()===0)return Qi("alloc():empty"),null;const e=this.ss.begin(),t=e.pointer.low,r=e.pointer.high,i=t;return i+1<=r?this.ss.updateKeyByIterator(e,new Lr(t+1,r)):this.ss.eraseElementByPos(0),Qi("alloc():"+i),i};sn.prototype.use=function(e){const t=new Lr(e,e),r=this.ss.lowerBound(t);if(!r.equals(this.ss.end())){const i=r.pointer.low,a=r.pointer.high;return r.pointer.equals(t)?(this.ss.eraseElementByIterator(r),Qi("use():"+e),!0):i>e?!1:i===e?(this.ss.updateKeyByIterator(r,new Lr(i+1,a)),Qi("use():"+e),!0):a===e?(this.ss.updateKeyByIterator(r,new Lr(i,a-1)),Qi("use():"+e),!0):(this.ss.updateKeyByIterator(r,new Lr(e+1,a)),this.ss.insert(new Lr(i,e-1)),Qi("use():"+e),!0)}return Qi("use():failed"),!1};sn.prototype.free=function(e){if(e<this.min||e>this.max){oT("free():"+e+" is out of range");return}const t=new Lr(e,e),r=this.ss.upperBound(t);if(r.equals(this.ss.end())){if(r.equals(this.ss.begin())){this.ss.insert(t);return}r.pre();const i=r.pointer.high;r.pointer.high+1===e?this.ss.updateKeyByIterator(r,new Lr(i,e)):this.ss.insert(t)}else if(r.equals(this.ss.begin()))if(e+1===r.pointer.low){const i=r.pointer.high;this.ss.updateKeyByIterator(r,new Lr(e,i))}else this.ss.insert(t);else{const i=r.pointer.low,a=r.pointer.high;r.pre();const n=r.pointer.low;r.pointer.high+1===e?e+1===i?(this.ss.eraseElementByIterator(r),this.ss.updateKeyByIterator(r,new Lr(n,a))):this.ss.updateKeyByIterator(r,new Lr(n,e)):e+1===i?(this.ss.eraseElementByIterator(r.next()),this.ss.insert(new Lr(e,a))):this.ss.insert(t)}Qi("free():"+e)};sn.prototype.clear=function(){Qi("clear()"),this.ss.clear(),this.ss.insert(new Lr(this.min,this.max))};sn.prototype.intervalCount=function(){return this.ss.size()};sn.prototype.dump=function(){console.log("length:"+this.ss.size());for(const e of this.ss)console.log(e)};var aT=sn;const sT=aT;xM.NumberAllocator=sT;const fT=uA,uT=xM.NumberAllocator;function To(e){if(!(this instanceof To))return new To(e);e>0&&(this.aliasToTopic=new fT({max:e}),this.topicToAlias={},this.numberAllocator=new uT(1,e),this.max=e,this.length=0)}To.prototype.put=function(e,t){if(t===0||t>this.max)return!1;const r=this.aliasToTopic.get(t);return r&&delete this.topicToAlias[r],this.aliasToTopic.set(t,e),this.topicToAlias[e]=t,this.numberAllocator.use(t),this.length=this.aliasToTopic.length,!0};To.prototype.getTopicByAlias=function(e){return this.aliasToTopic.get(e)};To.prototype.getAliasByTopic=function(e){const t=this.topicToAlias[e];return typeof t<"u"&&this.aliasToTopic.get(t),t};To.prototype.clear=function(){this.aliasToTopic.reset(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0};To.prototype.getLruAlias=function(){const e=this.numberAllocator.firstVacant();return e||this.aliasToTopic.keys()[this.aliasToTopic.length-1]};var lT=To,Nh={},kh={exports:{}},cp={exports:{}},FM=Or.EventEmitter,ud,T1;function hT(){if(T1)return ud;T1=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return ud=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),ud}function cT(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(dp,this,e)):we.nextTick(dp,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(pl,r):(r._writableState.errorEmitted=!0,we.nextTick(O1,r,n)):we.nextTick(O1,r,n):t?(we.nextTick(pl,r),t(n)):we.nextTick(pl,r)}),this)}function O1(e,t){dp(e,t),pl(e)}function pl(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function dT(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function dp(e,t){e.emit("error",t)}function pT(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var jM={destroy:cT,undestroy:dT,errorOrDestroy:pT},Ma={};function vT(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var UM={};function bi(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){vT(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,UM[e]=a}function I1(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function gT(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function mT(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function yT(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}bi("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);bi("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&gT(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(mT(e," argument"))a="The ".concat(e," ").concat(i," ").concat(I1(t,"type"));else{var n=yT(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(I1(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);bi("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");bi("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});bi("ERR_STREAM_PREMATURE_CLOSE","Premature close");bi("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});bi("ERR_MULTIPLE_CALLBACK","Callback called multiple times");bi("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");bi("ERR_STREAM_WRITE_AFTER_END","write after end");bi("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);bi("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);bi("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Ma.codes=UM;var bT=Ma.codes.ERR_INVALID_OPT_VALUE;function wT(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function _T(e,t,r,i){var a=wT(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new bT(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var HM={getHighWaterMark:_T},ld,P1;function qM(){if(P1)return ld;P1=1,ld=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=FM,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=jM,m=HM,M=m.getHighWaterMark,S=Ma.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||ds(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||ds();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},ld}var hd,C1;function ds(){if(C1)return hd;C1=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};hd=u;var t=KM(),r=qM();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),hd}var B1=Ma.codes.ERR_STREAM_PREMATURE_CLOSE;function MT(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function ST(){}function xT(e){return e.setHeader&&typeof e.abort=="function"}function WM(e,t,r){if(typeof t=="function")return WM(e,null,t);t||(t={}),r=MT(r||ST);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new B1),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new B1),r.call(e,P)},R=function(){e.req.on("finish",c)};return xT(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var zv=WM,cd,L1;function ET(){if(L1)return cd;L1=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=zv,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return cd=B,cd}var dd,N1;function RT(){return N1||(N1=1,dd=function(){throw new Error("Readable.from is not available in the browser")}),dd}var pd,k1;function KM(){if(k1)return pd;k1=1,pd=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=FM,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=hT(),M=jM,S=HM,R=S.getHighWaterMark,C=Ma.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||ds(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||ds(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=ET()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=RT()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return pd}var VM=$n,$h=Ma.codes,AT=$h.ERR_METHOD_NOT_IMPLEMENTED,TT=$h.ERR_MULTIPLE_CALLBACK,OT=$h.ERR_TRANSFORM_ALREADY_TRANSFORMING,IT=$h.ERR_TRANSFORM_WITH_LENGTH_0,Dh=ds();Ze($n,Dh);function PT(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new TT);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function $n(e){if(!(this instanceof $n))return new $n(e);Dh.call(this,e),this._transformState={afterTransform:PT.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",CT)}function CT(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){$1(e,t,r)}):$1(this,null,null)}$n.prototype.push=function(e,t){return this._transformState.needTransform=!1,Dh.prototype.push.call(this,e,t)};$n.prototype._transform=function(e,t,r){r(new AT("_transform()"))};$n.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};$n.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};$n.prototype._destroy=function(e,t){Dh.prototype._destroy.call(this,e,function(r){t(r)})};function $1(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new IT;if(e._transformState.transforming)throw new OT;return e.push(null)}var BT=Qf,zM=VM;Ze(Qf,zM);function Qf(e){if(!(this instanceof Qf))return new Qf(e);zM.call(this,e)}Qf.prototype._transform=function(e,t,r){r(null,e)};var vd;function LT(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var GM=Ma.codes,NT=GM.ERR_MISSING_ARGS,kT=GM.ERR_STREAM_DESTROYED;function D1(e){if(e)throw e}function $T(e){return e.setHeader&&typeof e.abort=="function"}function DT(e,t,r,i){i=LT(i);var a=!1;e.on("close",function(){a=!0}),vd===void 0&&(vd=zv),vd(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,$T(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new kT("pipe"))}}}function F1(e){e()}function FT(e,t){return e.pipe(t)}function jT(e){return!e.length||typeof e[e.length-1]!="function"?D1:e.pop()}function UT(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=jT(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new NT("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return DT(u,d,m,function(M){a||(a=M),M&&n.forEach(F1),!d&&(n.forEach(F1),i(a))})});return t.reduce(FT)}var HT=UT;(function(e,t){t=e.exports=KM(),t.Stream=t,t.Readable=t,t.Writable=qM(),t.Duplex=ds(),t.Transform=VM,t.PassThrough=BT,t.finished=zv,t.pipeline=HT})(cp,cp.exports);var qT=cp.exports;const{Buffer:Ni}=ke,YM=Symbol.for("BufferList");function Gt(e){if(!(this instanceof Gt))return new Gt(e);Gt._init.call(this,e)}Gt._init=function(t){Object.defineProperty(this,YM,{value:!0}),this._bufs=[],this.length=0,t&&this.append(t)};Gt.prototype._new=function(t){return new Gt(t)};Gt.prototype._offset=function(t){if(t===0)return[0,0];let r=0;for(let i=0;i<this._bufs.length;i++){const a=r+this._bufs[i].length;if(t<a||i===this._bufs.length-1)return[i,t-r];r=a}};Gt.prototype._reverseOffset=function(e){const t=e[0];let r=e[1];for(let i=0;i<t;i++)r+=this._bufs[i].length;return r};Gt.prototype.get=function(t){if(t>this.length||t<0)return;const r=this._offset(t);return this._bufs[r[0]][r[1]]};Gt.prototype.slice=function(t,r){return typeof t=="number"&&t<0&&(t+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,t,r)};Gt.prototype.copy=function(t,r,i,a){if((typeof i!="number"||i<0)&&(i=0),(typeof a!="number"||a>this.length)&&(a=this.length),i>=this.length||a<=0)return t||Ni.alloc(0);const n=!!t,u=this._offset(i),c=a-i;let d=c,m=n&&r||0,M=u[1];if(i===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:Ni.concat(this._bufs,this.length);for(let S=0;S<this._bufs.length;S++)this._bufs[S].copy(t,m),m+=this._bufs[S].length;return t}if(d<=this._bufs[u[0]].length-M)return n?this._bufs[u[0]].copy(t,r,M,M+d):this._bufs[u[0]].slice(M,M+d);n||(t=Ni.allocUnsafe(c));for(let S=u[0];S<this._bufs.length;S++){const R=this._bufs[S].length-M;if(d>R)this._bufs[S].copy(t,m,M),m+=R;else{this._bufs[S].copy(t,m,M,M+d),m+=R;break}d-=R,M&&(M=0)}return t.length>m?t.slice(0,m):t};Gt.prototype.shallowSlice=function(t,r){if(t=t||0,r=typeof r!="number"?this.length:r,t<0&&(t+=this.length),r<0&&(r+=this.length),t===r)return this._new();const i=this._offset(t),a=this._offset(r),n=this._bufs.slice(i[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),i[1]!==0&&(n[0]=n[0].slice(i[1])),this._new(n)};Gt.prototype.toString=function(t,r,i){return this.slice(r,i).toString(t)};Gt.prototype.consume=function(t){if(t=Math.trunc(t),Number.isNaN(t)||t<=0)return this;for(;this._bufs.length;)if(t>=this._bufs[0].length)t-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(t),this.length-=t;break}return this};Gt.prototype.duplicate=function(){const t=this._new();for(let r=0;r<this._bufs.length;r++)t.append(this._bufs[r]);return t};Gt.prototype.append=function(t){if(t==null)return this;if(t.buffer)this._appendBuffer(Ni.from(t.buffer,t.byteOffset,t.byteLength));else if(Array.isArray(t))for(let r=0;r<t.length;r++)this.append(t[r]);else if(this._isBufferList(t))for(let r=0;r<t._bufs.length;r++)this.append(t._bufs[r]);else typeof t=="number"&&(t=t.toString()),this._appendBuffer(Ni.from(t));return this};Gt.prototype._appendBuffer=function(t){this._bufs.push(t),this.length+=t.length};Gt.prototype.indexOf=function(e,t,r){if(r===void 0&&typeof t=="string"&&(r=t,t=void 0),typeof e=="function"||Array.isArray(e))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof e=="number"?e=Ni.from([e]):typeof e=="string"?e=Ni.from(e,r):this._isBufferList(e)?e=e.slice():Array.isArray(e.buffer)?e=Ni.from(e.buffer,e.byteOffset,e.byteLength):Ni.isBuffer(e)||(e=Ni.from(e)),t=Number(t||0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;const i=this._offset(t);let a=i[0],n=i[1];for(;a<this._bufs.length;a++){const u=this._bufs[a];for(;n<u.length;)if(u.length-n>=e.length){const d=u.indexOf(e,n);if(d!==-1)return this._reverseOffset([a,d]);n=u.length-e.length+1}else{const d=this._reverseOffset([a,n]);if(this._match(d,e))return d;n++}n=0}return-1};Gt.prototype._match=function(e,t){if(this.length-e<t.length)return!1;for(let r=0;r<t.length;r++)if(this.get(e+r)!==t[r])return!1;return!0};(function(){const e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(const t in e)(function(r){e[r]===null?Gt.prototype[r]=function(i,a){return this.slice(i,i+a)[r](0,a)}:Gt.prototype[r]=function(i=0){return this.slice(i,i+e[r])[r](0)}})(t)})();Gt.prototype._isBufferList=function(t){return t instanceof Gt||Gt.isBufferList(t)};Gt.isBufferList=function(t){return t!=null&&t[YM]};var WT=Gt;const Gv=qT.Duplex,KT=Ze,gu=WT;function Rr(e){if(!(this instanceof Rr))return new Rr(e);if(typeof e=="function"){this._callback=e;const t=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",t)}),this.on("unpipe",function(i){i.removeListener("error",t)}),e=null}gu._init.call(this,e),Gv.call(this)}KT(Rr,Gv);Object.assign(Rr.prototype,gu.prototype);Rr.prototype._new=function(t){return new Rr(t)};Rr.prototype._write=function(t,r,i){this._appendBuffer(t),typeof i=="function"&&i()};Rr.prototype._read=function(t){if(!this.length)return this.push(null);t=Math.min(t,this.length),this.push(this.slice(0,t)),this.consume(t)};Rr.prototype.end=function(t){Gv.prototype.end.call(this,t),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Rr.prototype._destroy=function(t,r){this._bufs.length=0,this.length=0,r(t)};Rr.prototype._isBufferList=function(t){return t instanceof Rr||t instanceof gu||Rr.isBufferList(t)};Rr.isBufferList=gu.isBufferList;kh.exports=Rr;kh.exports.BufferListStream=Rr;kh.exports.BufferList=gu;var VT=kh.exports;let zT=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};var GT=zT,ZM={exports:{}};(function(e){const t=e.exports;t.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},t.codes={};for(const i in t.types){const a=t.types[i];t.codes[a]=i}t.CMD_SHIFT=4,t.CMD_MASK=240,t.DUP_MASK=8,t.QOS_MASK=3,t.QOS_SHIFT=1,t.RETAIN_MASK=1,t.VARBYTEINT_MASK=127,t.VARBYTEINT_FIN_MASK=128,t.VARBYTEINT_MAX=268435455,t.SESSIONPRESENT_MASK=1,t.SESSIONPRESENT_HEADER=ke.Buffer.from([t.SESSIONPRESENT_MASK]),t.CONNACK_HEADER=ke.Buffer.from([t.codes.connack<<t.CMD_SHIFT]),t.USERNAME_MASK=128,t.PASSWORD_MASK=64,t.WILL_RETAIN_MASK=32,t.WILL_QOS_MASK=24,t.WILL_QOS_SHIFT=3,t.WILL_FLAG_MASK=4,t.CLEAN_SESSION_MASK=2,t.CONNECT_HEADER=ke.Buffer.from([t.codes.connect<<t.CMD_SHIFT]),t.properties={sessionExpiryInterval:17,willDelayInterval:24,receiveMaximum:33,maximumPacketSize:39,topicAliasMaximum:34,requestResponseInformation:25,requestProblemInformation:23,userProperties:38,authenticationMethod:21,authenticationData:22,payloadFormatIndicator:1,messageExpiryInterval:2,contentType:3,responseTopic:8,correlationData:9,maximumQoS:36,retainAvailable:37,assignedClientIdentifier:18,reasonString:31,wildcardSubscriptionAvailable:40,subscriptionIdentifiersAvailable:41,sharedSubscriptionAvailable:42,serverKeepAlive:19,responseInformation:26,serverReference:28,topicAlias:35,subscriptionIdentifier:11},t.propertiesCodes={};for(const i in t.properties){const a=t.properties[i];t.propertiesCodes[a]=i}t.propertiesTypes={sessionExpiryInterval:"int32",willDelayInterval:"int32",receiveMaximum:"int16",maximumPacketSize:"int32",topicAliasMaximum:"int16",requestResponseInformation:"byte",requestProblemInformation:"byte",userProperties:"pair",authenticationMethod:"string",authenticationData:"binary",payloadFormatIndicator:"byte",messageExpiryInterval:"int32",contentType:"string",responseTopic:"string",correlationData:"binary",maximumQoS:"int8",retainAvailable:"byte",assignedClientIdentifier:"string",reasonString:"string",wildcardSubscriptionAvailable:"byte",subscriptionIdentifiersAvailable:"byte",sharedSubscriptionAvailable:"byte",serverKeepAlive:"int16",responseInformation:"string",serverReference:"string",topicAlias:"int16",subscriptionIdentifier:"var"};function r(i){return[0,1,2].map(a=>[0,1].map(n=>[0,1].map(u=>{const c=ke.Buffer.alloc(1);return c.writeUInt8(t.codes[i]<<t.CMD_SHIFT|(n?t.DUP_MASK:0)|a<<t.QOS_SHIFT|u,0,!0),c})))}t.PUBLISH_HEADER=r("publish"),t.SUBSCRIBE_HEADER=r("subscribe"),t.SUBSCRIBE_OPTIONS_QOS_MASK=3,t.SUBSCRIBE_OPTIONS_NL_MASK=1,t.SUBSCRIBE_OPTIONS_NL_SHIFT=2,t.SUBSCRIBE_OPTIONS_RAP_MASK=1,t.SUBSCRIBE_OPTIONS_RAP_SHIFT=3,t.SUBSCRIBE_OPTIONS_RH_MASK=3,t.SUBSCRIBE_OPTIONS_RH_SHIFT=4,t.SUBSCRIBE_OPTIONS_RH=[0,16,32],t.SUBSCRIBE_OPTIONS_NL=4,t.SUBSCRIBE_OPTIONS_RAP=8,t.SUBSCRIBE_OPTIONS_QOS=[0,1,2],t.UNSUBSCRIBE_HEADER=r("unsubscribe"),t.ACKS={unsuback:r("unsuback"),puback:r("puback"),pubcomp:r("pubcomp"),pubrel:r("pubrel"),pubrec:r("pubrec")},t.SUBACK_HEADER=ke.Buffer.from([t.codes.suback<<t.CMD_SHIFT]),t.VERSION3=ke.Buffer.from([3]),t.VERSION4=ke.Buffer.from([4]),t.VERSION5=ke.Buffer.from([5]),t.VERSION131=ke.Buffer.from([131]),t.VERSION132=ke.Buffer.from([132]),t.QOS=[0,1,2].map(i=>ke.Buffer.from([i])),t.EMPTY={pingreq:ke.Buffer.from([t.codes.pingreq<<4,0]),pingresp:ke.Buffer.from([t.codes.pingresp<<4,0]),disconnect:ke.Buffer.from([t.codes.disconnect<<4,0])}})(ZM);var XM=ZM.exports;const YT=VT,ZT=Or,j1=GT,qt=XM,ot=zn("mqtt-packet:parser");class ql extends ZT{constructor(){super(),this.parser=this.constructor.parser}static parser(t){return this instanceof ql?(this.settings=t||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new ql().parser(t)}_resetState(){ot("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new j1,this.error=null,this._list=YT(),this._stateCounter=0}parse(t){for(this.error&&this._resetState(),this._list.append(t),ot("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,ot("parse: state complete. _stateCounter is now: %d",this._stateCounter),ot("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return ot("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){const t=this._list.readUInt8(0);return this.packet.cmd=qt.types[t>>qt.CMD_SHIFT],this.packet.retain=(t&qt.RETAIN_MASK)!==0,this.packet.qos=t>>qt.QOS_SHIFT&qt.QOS_MASK,this.packet.dup=(t&qt.DUP_MASK)!==0,ot("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0}_parseLength(){const t=this._parseVarByteNum(!0);return t&&(this.packet.length=t.value,this._list.consume(t.bytes)),ot("_parseLength %d",t.value),!!t}_parsePayload(){ot("_parsePayload: payload %O",this._list);let t=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}t=!0}return ot("_parsePayload complete result: %s",t),t}_parseConnect(){ot("_parseConnect");let t,r,i,a;const n={},u=this.packet,c=this._parseString();if(c===null)return this._emitError(new Error("Cannot parse protocolId"));if(c!=="MQTT"&&c!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(u.protocolId=c,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(u.protocolVersion=this._list.readUInt8(this._pos),u.protocolVersion>=128&&(u.bridgeMode=!0,u.protocolVersion=u.protocolVersion-128),u.protocolVersion!==3&&u.protocolVersion!==4&&u.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(n.username=this._list.readUInt8(this._pos)&qt.USERNAME_MASK,n.password=this._list.readUInt8(this._pos)&qt.PASSWORD_MASK,n.will=this._list.readUInt8(this._pos)&qt.WILL_FLAG_MASK,n.will&&(u.will={},u.will.retain=(this._list.readUInt8(this._pos)&qt.WILL_RETAIN_MASK)!==0,u.will.qos=(this._list.readUInt8(this._pos)&qt.WILL_QOS_MASK)>>qt.WILL_QOS_SHIFT),u.clean=(this._list.readUInt8(this._pos)&qt.CLEAN_SESSION_MASK)!==0,this._pos++,u.keepalive=this._parseNum(),u.keepalive===-1)return this._emitError(new Error("Packet too short"));if(u.protocolVersion===5){const m=this._parseProperties();Object.getOwnPropertyNames(m).length&&(u.properties=m)}const d=this._parseString();if(d===null)return this._emitError(new Error("Packet too short"));if(u.clientId=d,ot("_parseConnect: packet.clientId: %s",u.clientId),n.will){if(u.protocolVersion===5){const m=this._parseProperties();Object.getOwnPropertyNames(m).length&&(u.will.properties=m)}if(t=this._parseString(),t===null)return this._emitError(new Error("Cannot parse will topic"));if(u.will.topic=t,ot("_parseConnect: packet.will.topic: %s",u.will.topic),r=this._parseBuffer(),r===null)return this._emitError(new Error("Cannot parse will payload"));u.will.payload=r,ot("_parseConnect: packet.will.paylaod: %s",u.will.payload)}if(n.username){if(a=this._parseString(),a===null)return this._emitError(new Error("Cannot parse username"));u.username=a,ot("_parseConnect: packet.username: %s",u.username)}if(n.password){if(i=this._parseBuffer(),i===null)return this._emitError(new Error("Cannot parse password"));u.password=i}return this.settings=u,ot("_parseConnect: complete"),u}_parseConnack(){ot("_parseConnack");const t=this.packet;if(this._list.length<1)return null;if(t.sessionPresent=!!(this._list.readUInt8(this._pos++)&qt.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?t.reasonCode=this._list.readUInt8(this._pos++):t.reasonCode=0;else{if(this._list.length<2)return null;t.returnCode=this._list.readUInt8(this._pos++)}if(t.returnCode===-1||t.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}ot("_parseConnack: complete")}_parsePublish(){ot("_parsePublish");const t=this.packet;if(t.topic=this._parseString(),t.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(t.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}t.payload=this._list.slice(this._pos,t.length),ot("_parsePublish: payload from buffer list: %o",t.payload)}}_parseSubscribe(){ot("_parseSubscribe");const t=this.packet;let r,i,a,n,u,c,d;if(t.qos!==1)return this._emitError(new Error("Wrong subscribe header"));if(t.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const m=this._parseProperties();Object.getOwnPropertyNames(m).length&&(t.properties=m)}for(;this._pos<t.length;){if(r=this._parseString(),r===null)return this._emitError(new Error("Cannot parse topic"));if(this._pos>=t.length)return this._emitError(new Error("Malformed Subscribe Payload"));i=this._parseByte(),a=i&qt.SUBSCRIBE_OPTIONS_QOS_MASK,c=(i>>qt.SUBSCRIBE_OPTIONS_NL_SHIFT&qt.SUBSCRIBE_OPTIONS_NL_MASK)!==0,u=(i>>qt.SUBSCRIBE_OPTIONS_RAP_SHIFT&qt.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,n=i>>qt.SUBSCRIBE_OPTIONS_RH_SHIFT&qt.SUBSCRIBE_OPTIONS_RH_MASK,d={topic:r,qos:a},this.settings.protocolVersion===5?(d.nl=c,d.rap=u,d.rh=n):this.settings.bridgeMode&&(d.rh=0,d.rap=!0,d.nl=!0),ot("_parseSubscribe: push subscription `%s` to subscription",d),t.subscriptions.push(d)}}}_parseSuback(){ot("_parseSuback");const t=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}for(;this._pos<this.packet.length;)this.packet.granted.push(this._list.readUInt8(this._pos++))}}_parseUnsubscribe(){ot("_parseUnsubscribe");const t=this.packet;if(t.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}for(;this._pos<t.length;){const r=this._parseString();if(r===null)return this._emitError(new Error("Cannot parse topic"));ot("_parseUnsubscribe: push topic `%s` to unsubscriptions",r),t.unsubscriptions.push(r)}}}_parseUnsuback(){ot("_parseUnsuback");const t=this.packet;if(!this._parseMessageId())return this._emitError(new Error("Cannot parse messageId"));if(this.settings.protocolVersion===5){const r=this._parseProperties();for(Object.getOwnPropertyNames(r).length&&(t.properties=r),t.granted=[];this._pos<this.packet.length;)this.packet.granted.push(this._list.readUInt8(this._pos++))}}_parseConfirmation(){ot("_parseConfirmation: packet.cmd: `%s`",this.packet.cmd);const t=this.packet;if(this._parseMessageId(),this.settings.protocolVersion===5&&(t.length>2?(t.reasonCode=this._parseByte(),ot("_parseConfirmation: packet.reasonCode `%d`",t.reasonCode)):t.reasonCode=0,t.length>3)){const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}return!0}_parseDisconnect(){const t=this.packet;if(ot("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?t.reasonCode=this._parseByte():t.reasonCode=0;const r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}return ot("_parseDisconnect result: true"),!0}_parseAuth(){ot("_parseAuth");const t=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));t.reasonCode=this._parseByte();const r=this._parseProperties();return Object.getOwnPropertyNames(r).length&&(t.properties=r),ot("_parseAuth: result: true"),!0}_parseMessageId(){const t=this.packet;return t.messageId=this._parseNum(),t.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(ot("_parseMessageId: packet.messageId %d",t.messageId),!0)}_parseString(t){const r=this._parseNum(),i=r+this._pos;if(r===-1||i>this._list.length||i>this.packet.length)return null;const a=this._list.toString("utf8",this._pos,i);return this._pos+=r,ot("_parseString: result: %s",a),a}_parseStringPair(){return ot("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){const t=this._parseNum(),r=t+this._pos;if(t===-1||r>this._list.length||r>this.packet.length)return null;const i=this._list.slice(this._pos,r);return this._pos+=t,ot("_parseBuffer: result: %o",i),i}_parseNum(){if(this._list.length-this._pos<2)return-1;const t=this._list.readUInt16BE(this._pos);return this._pos+=2,ot("_parseNum: result: %s",t),t}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;const t=this._list.readUInt32BE(this._pos);return this._pos+=4,ot("_parse4ByteNum: result: %s",t),t}_parseVarByteNum(t){ot("_parseVarByteNum");const r=4;let i=0,a=1,n=0,u=!1,c;const d=this._pos?this._pos:0;for(;i<r&&d+i<this._list.length;){if(c=this._list.readUInt8(d+i++),n+=a*(c&qt.VARBYTEINT_MASK),a*=128,!(c&qt.VARBYTEINT_FIN_MASK)){u=!0;break}if(this._list.length<=i)break}return!u&&i===r&&this._list.length>=i&&this._emitError(new Error("Invalid variable byte integer")),d&&(this._pos+=i),u=u?t?{bytes:i,value:n}:n:!1,ot("_parseVarByteNum: result: %o",u),u}_parseByte(){let t;return this._pos<this._list.length&&(t=this._list.readUInt8(this._pos),this._pos++),ot("_parseByte: result: %o",t),t}_parseByType(t){switch(ot("_parseByType: type: %s",t),t){case"byte":return this._parseByte()!==0;case"int8":return this._parseByte();case"int16":return this._parseNum();case"int32":return this._parse4ByteNum();case"var":return this._parseVarByteNum();case"string":return this._parseString();case"pair":return this._parseStringPair();case"binary":return this._parseBuffer()}}_parseProperties(){ot("_parseProperties");const t=this._parseVarByteNum(),i=this._pos+t,a={};for(;this._pos<i;){const n=this._parseByte();if(!n)return this._emitError(new Error("Cannot parse property code type")),!1;const u=qt.propertiesCodes[n];if(!u)return this._emitError(new Error("Unknown property")),!1;if(u==="userProperties"){a[u]||(a[u]=Object.create(null));const c=this._parseByType(qt.propertiesTypes[u]);if(a[u][c.name])if(Array.isArray(a[u][c.name]))a[u][c.name].push(c.value);else{const d=a[u][c.name];a[u][c.name]=[d],a[u][c.name].push(c.value)}else a[u][c.name]=c.value;continue}a[u]?Array.isArray(a[u])?a[u].push(this._parseByType(qt.propertiesTypes[u])):(a[u]=[a[u]],a[u].push(this._parseByType(qt.propertiesTypes[u]))):a[u]=this._parseByType(qt.propertiesTypes[u])}return a}_newPacket(){return ot("_newPacket"),this.packet&&(this._list.consume(this.packet.length),ot("_newPacket: parser emit packet: packet.cmd: %s, packet.payload: %s, packet.length: %d",this.packet.cmd,this.packet.payload,this.packet.length),this.emit("packet",this.packet)),ot("_newPacket: new packet"),this.packet=new j1,this._pos=0,!0}_emitError(t){ot("_emitError"),this.error=t,this.emit("error",t)}}var XT=ql;const JT=65536,JM={},QT=ke.Buffer.isBuffer(ke.Buffer.from([1,2]).subarray(0,1));function QM(e){const t=ke.Buffer.allocUnsafe(2);return t.writeUInt8(e>>8,0),t.writeUInt8(e&255,0+1),t}function eO(){for(let e=0;e<JT;e++)JM[e]=QM(e)}function tO(e){let r=0,i=0;const a=ke.Buffer.allocUnsafe(4);do r=e%128|0,e=e/128|0,e>0&&(r=r|128),a.writeUInt8(r,i++);while(e>0&&i<4);return e>0&&(i=0),QT?a.subarray(0,i):a.slice(0,i)}function rO(e){const t=ke.Buffer.allocUnsafe(4);return t.writeUInt32BE(e,0),t}var iO={cache:JM,generateCache:eO,generateNumber:QM,genBufVariableByteInt:tO,generate4ByteBuffer:rO},pp={exports:{}};typeof we>"u"||!we.version||we.version.indexOf("v0.")===0||we.version.indexOf("v1.")===0&&we.version.indexOf("v1.8.")!==0?pp.exports={nextTick:nO}:pp.exports=we;function nO(e,t,r,i){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var a=arguments.length,n,u;switch(a){case 0:case 1:return we.nextTick(e);case 2:return we.nextTick(function(){e.call(null,t)});case 3:return we.nextTick(function(){e.call(null,t,r)});case 4:return we.nextTick(function(){e.call(null,t,r,i)});default:for(n=new Array(a-1),u=0;u<n.length;)n[u++]=arguments[u];return we.nextTick(function(){e.apply(null,n)})}}var oO=pp.exports;const ut=XM,aO=ke.Buffer.allocUnsafe(0),sO=ke.Buffer.from([0]),mu=iO,fO=oO.nextTick,pi=zn("mqtt-packet:writeToStream"),Wl=mu.cache,uO=mu.generateNumber,lO=mu.generateCache,vp=mu.genBufVariableByteInt,hO=mu.generate4ByteBuffer;let Nr=gp,Kl=!0;function e3(e,t,r){switch(pi("generate called"),t.cork&&(t.cork(),fO(cO,t)),Kl&&(Kl=!1,lO()),pi("generate: packet.cmd: %s",e.cmd),e.cmd){case"connect":return dO(e,t);case"connack":return pO(e,t,r);case"publish":return vO(e,t,r);case"puback":case"pubrec":case"pubrel":case"pubcomp":return gO(e,t,r);case"subscribe":return mO(e,t,r);case"suback":return yO(e,t,r);case"unsubscribe":return bO(e,t,r);case"unsuback":return wO(e,t,r);case"pingreq":case"pingresp":return _O(e,t);case"disconnect":return MO(e,t,r);case"auth":return SO(e,t,r);default:return t.emit("error",new Error("Unknown command")),!1}}Object.defineProperty(e3,"cacheNumbers",{get(){return Nr===gp},set(e){e?((!Wl||Object.keys(Wl).length===0)&&(Kl=!0),Nr=gp):(Kl=!1,Nr=xO)}});function cO(e){e.uncork()}function dO(e,t,r){const i=e||{},a=i.protocolId||"MQTT";let n=i.protocolVersion||4;const u=i.will;let c=i.clean;const d=i.keepalive||0,m=i.clientId||"",M=i.username,S=i.password,R=i.properties;c===void 0&&(c=!0);let C=0;if(!a||typeof a!="string"&&!ke.Buffer.isBuffer(a))return t.emit("error",new Error("Invalid protocolId")),!1;if(C+=a.length+2,n!==3&&n!==4&&n!==5)return t.emit("error",new Error("Invalid protocol version")),!1;if(C+=1,(typeof m=="string"||ke.Buffer.isBuffer(m))&&(m||n>=4)&&(m||c))C+=ke.Buffer.byteLength(m)+2;else{if(n<4)return t.emit("error",new Error("clientId must be supplied before 3.1.1")),!1;if(c*1===0)return t.emit("error",new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof d!="number"||d<0||d>65535||d%1!==0)return t.emit("error",new Error("Invalid keepalive")),!1;if(C+=2,C+=1,n===5){var P=Oo(t,R);if(!P)return!1;C+=P.length}if(u){if(typeof u!="object")return t.emit("error",new Error("Invalid will")),!1;if(!u.topic||typeof u.topic!="string")return t.emit("error",new Error("Invalid will topic")),!1;if(C+=ke.Buffer.byteLength(u.topic)+2,C+=2,u.payload)if(u.payload.length>=0)typeof u.payload=="string"?C+=ke.Buffer.byteLength(u.payload):C+=u.payload.length;else return t.emit("error",new Error("Invalid will payload")),!1;var k={};if(n===5){if(k=Oo(t,u.properties),!k)return!1;C+=k.length}}let L=!1;if(M!=null)if(K1(M))L=!0,C+=ke.Buffer.byteLength(M)+2;else return t.emit("error",new Error("Invalid username")),!1;if(S!=null){if(!L)return t.emit("error",new Error("Username is required to use password")),!1;if(K1(S))C+=t3(S)+2;else return t.emit("error",new Error("Invalid password")),!1}t.write(ut.CONNECT_HEADER),wi(t,C),Ha(t,a),i.bridgeMode&&(n+=128),t.write(n===131?ut.VERSION131:n===132?ut.VERSION132:n===4?ut.VERSION4:n===5?ut.VERSION5:ut.VERSION3);let I=0;return I|=M!=null?ut.USERNAME_MASK:0,I|=S!=null?ut.PASSWORD_MASK:0,I|=u&&u.retain?ut.WILL_RETAIN_MASK:0,I|=u&&u.qos?u.qos<<ut.WILL_QOS_SHIFT:0,I|=u?ut.WILL_FLAG_MASK:0,I|=c?ut.CLEAN_SESSION_MASK:0,t.write(ke.Buffer.from([I])),Nr(t,d),n===5&&P.write(),Ha(t,m),u&&(n===5&&k.write(),ha(t,u.topic),Ha(t,u.payload)),M!=null&&Ha(t,M),S!=null&&Ha(t,S),!0}function pO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=i===5?a.reasonCode:a.returnCode,u=a.properties;let c=2;if(typeof n!="number")return t.emit("error",new Error("Invalid return code")),!1;let d=null;if(i===5){if(d=Oo(t,u),!d)return!1;c+=d.length}return t.write(ut.CONNACK_HEADER),wi(t,c),t.write(a.sessionPresent?ut.SESSIONPRESENT_HEADER:sO),t.write(ke.Buffer.from([n])),d!=null&&d.write(),!0}function vO(e,t,r){pi("publish: packet: %o",e);const i=r?r.protocolVersion:4,a=e||{},n=a.qos||0,u=a.retain?ut.RETAIN_MASK:0,c=a.topic,d=a.payload||aO,m=a.messageId,M=a.properties;let S=0;if(typeof c=="string")S+=ke.Buffer.byteLength(c)+2;else if(ke.Buffer.isBuffer(c))S+=c.length+2;else return t.emit("error",new Error("Invalid topic")),!1;if(ke.Buffer.isBuffer(d)?S+=d.length:S+=ke.Buffer.byteLength(d),n&&typeof m!="number")return t.emit("error",new Error("Invalid messageId")),!1;n&&(S+=2);let R=null;if(i===5){if(R=Oo(t,M),!R)return!1;S+=R.length}return t.write(ut.PUBLISH_HEADER[n][a.dup?1:0][u?1:0]),wi(t,S),Nr(t,t3(c)),t.write(c),n>0&&Nr(t,m),R!=null&&R.write(),pi("publish: payload: %o",d),t.write(d)}function gO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.cmd||"puback",u=a.messageId,c=a.dup&&n==="pubrel"?ut.DUP_MASK:0;let d=0;const m=a.reasonCode,M=a.properties;let S=i===5?3:2;if(n==="pubrel"&&(d=1),typeof u!="number")return t.emit("error",new Error("Invalid messageId")),!1;let R=null;if(i===5&&typeof M=="object"){if(R=yu(t,M,r,S),!R)return!1;S+=R.length}return t.write(ut.ACKS[n][d][c][0]),wi(t,S),Nr(t,u),i===5&&t.write(ke.Buffer.from([m])),R!==null&&R.write(),!0}function mO(e,t,r){pi("subscribe: packet: ");const i=r?r.protocolVersion:4,a=e||{},n=a.dup?ut.DUP_MASK:0,u=a.messageId,c=a.subscriptions,d=a.properties;let m=0;if(typeof u!="number")return t.emit("error",new Error("Invalid messageId")),!1;m+=2;let M=null;if(i===5){if(M=Oo(t,d),!M)return!1;m+=M.length}if(typeof c=="object"&&c.length)for(let R=0;R<c.length;R+=1){const C=c[R].topic,P=c[R].qos;if(typeof C!="string")return t.emit("error",new Error("Invalid subscriptions - invalid topic")),!1;if(typeof P!="number")return t.emit("error",new Error("Invalid subscriptions - invalid qos")),!1;if(i===5){if(typeof(c[R].nl||!1)!="boolean")return t.emit("error",new Error("Invalid subscriptions - invalid No Local")),!1;if(typeof(c[R].rap||!1)!="boolean")return t.emit("error",new Error("Invalid subscriptions - invalid Retain as Published")),!1;const I=c[R].rh||0;if(typeof I!="number"||I>2)return t.emit("error",new Error("Invalid subscriptions - invalid Retain Handling")),!1}m+=ke.Buffer.byteLength(C)+2+1}else return t.emit("error",new Error("Invalid subscriptions")),!1;pi("subscribe: writing to stream: %o",ut.SUBSCRIBE_HEADER),t.write(ut.SUBSCRIBE_HEADER[1][n?1:0][0]),wi(t,m),Nr(t,u),M!==null&&M.write();let S=!0;for(const R of c){const C=R.topic,P=R.qos,k=+R.nl,L=+R.rap,I=R.rh;let B;ha(t,C),B=ut.SUBSCRIBE_OPTIONS_QOS[P],i===5&&(B|=k?ut.SUBSCRIBE_OPTIONS_NL:0,B|=L?ut.SUBSCRIBE_OPTIONS_RAP:0,B|=I?ut.SUBSCRIBE_OPTIONS_RH[I]:0),S=t.write(ke.Buffer.from([B]))}return S}function yO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.messageId,u=a.granted,c=a.properties;let d=0;if(typeof n!="number")return t.emit("error",new Error("Invalid messageId")),!1;if(d+=2,typeof u=="object"&&u.length)for(let M=0;M<u.length;M+=1){if(typeof u[M]!="number")return t.emit("error",new Error("Invalid qos vector")),!1;d+=1}else return t.emit("error",new Error("Invalid qos vector")),!1;let m=null;if(i===5){if(m=yu(t,c,r,d),!m)return!1;d+=m.length}return t.write(ut.SUBACK_HEADER),wi(t,d),Nr(t,n),m!==null&&m.write(),t.write(ke.Buffer.from(u))}function bO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.messageId,u=a.dup?ut.DUP_MASK:0,c=a.unsubscriptions,d=a.properties;let m=0;if(typeof n!="number")return t.emit("error",new Error("Invalid messageId")),!1;if(m+=2,typeof c=="object"&&c.length)for(let R=0;R<c.length;R+=1){if(typeof c[R]!="string")return t.emit("error",new Error("Invalid unsubscriptions")),!1;m+=ke.Buffer.byteLength(c[R])+2}else return t.emit("error",new Error("Invalid unsubscriptions")),!1;let M=null;if(i===5){if(M=Oo(t,d),!M)return!1;m+=M.length}t.write(ut.UNSUBSCRIBE_HEADER[1][u?1:0][0]),wi(t,m),Nr(t,n),M!==null&&M.write();let S=!0;for(let R=0;R<c.length;R++)S=ha(t,c[R]);return S}function wO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.messageId,u=a.dup?ut.DUP_MASK:0,c=a.granted,d=a.properties,m=a.cmd,M=0;let S=2;if(typeof n!="number")return t.emit("error",new Error("Invalid messageId")),!1;if(i===5)if(typeof c=="object"&&c.length)for(let C=0;C<c.length;C+=1){if(typeof c[C]!="number")return t.emit("error",new Error("Invalid qos vector")),!1;S+=1}else return t.emit("error",new Error("Invalid qos vector")),!1;let R=null;if(i===5){if(R=yu(t,d,r,S),!R)return!1;S+=R.length}return t.write(ut.ACKS[m][M][u][0]),wi(t,S),Nr(t,n),R!==null&&R.write(),i===5&&t.write(ke.Buffer.from(c)),!0}function _O(e,t,r){return t.write(ut.EMPTY[e.cmd])}function MO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.reasonCode,u=a.properties;let c=i===5?1:0,d=null;if(i===5){if(d=yu(t,u,r,c),!d)return!1;c+=d.length}return t.write(ke.Buffer.from([ut.codes.disconnect<<4])),wi(t,c),i===5&&t.write(ke.Buffer.from([n])),d!==null&&d.write(),!0}function SO(e,t,r){const i=r?r.protocolVersion:4,a=e||{},n=a.reasonCode,u=a.properties;let c=i===5?1:0;i!==5&&t.emit("error",new Error("Invalid mqtt version for auth packet"));const d=yu(t,u,r,c);return d?(c+=d.length,t.write(ke.Buffer.from([ut.codes.auth<<4])),wi(t,c),t.write(ke.Buffer.from([n])),d!==null&&d.write(),!0):!1}const U1={};function wi(e,t){if(t>ut.VARBYTEINT_MAX)return e.emit("error",new Error(`Invalid variable byte integer: ${t}`)),!1;let r=U1[t];return r||(r=vp(t),t<16384&&(U1[t]=r)),pi("writeVarByteInt: writing to stream: %o",r),e.write(r)}function ha(e,t){const r=ke.Buffer.byteLength(t);return Nr(e,r),pi("writeString: %s",t),e.write(t,"utf8")}function H1(e,t,r){ha(e,t),ha(e,r)}function gp(e,t){return pi("writeNumberCached: number: %d",t),pi("writeNumberCached: %o",Wl[t]),e.write(Wl[t])}function xO(e,t){const r=uO(t);return pi("writeNumberGenerated: %o",r),e.write(r)}function EO(e,t){const r=hO(t);return pi("write4ByteNumber: %o",r),e.write(r)}function Ha(e,t){typeof t=="string"?ha(e,t):t?(Nr(e,t.length),e.write(t)):Nr(e,0)}function Oo(e,t){if(typeof t!="object"||t.length!=null)return{length:1,write(){W1(e,{},0)}};let r=0;function i(n,u){const c=ut.propertiesTypes[n];let d=0;switch(c){case"byte":{if(typeof u!="boolean")return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+1;break}case"int8":{if(typeof u!="number"||u<0||u>255)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+1;break}case"binary":{if(u&&u===null)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+ke.Buffer.byteLength(u)+2;break}case"int16":{if(typeof u!="number"||u<0||u>65535)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+2;break}case"int32":{if(typeof u!="number"||u<0||u>4294967295)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+4;break}case"var":{if(typeof u!="number"||u<0||u>268435455)return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+ke.Buffer.byteLength(vp(u));break}case"string":{if(typeof u!="string")return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=1+2+ke.Buffer.byteLength(u.toString());break}case"pair":{if(typeof u!="object")return e.emit("error",new Error(`Invalid ${n}: ${u}`)),!1;d+=Object.getOwnPropertyNames(u).reduce((m,M)=>{const S=u[M];return Array.isArray(S)?m+=S.reduce((R,C)=>(R+=1+2+ke.Buffer.byteLength(M.toString())+2+ke.Buffer.byteLength(C.toString()),R),0):m+=1+2+ke.Buffer.byteLength(M.toString())+2+ke.Buffer.byteLength(u[M].toString()),m},0);break}default:return e.emit("error",new Error(`Invalid property ${n}: ${u}`)),!1}return d}if(t)for(const n in t){let u=0,c=0;const d=t[n];if(Array.isArray(d))for(let m=0;m<d.length;m++){if(c=i(n,d[m]),!c)return!1;u+=c}else{if(c=i(n,d),!c)return!1;u=c}if(!u)return!1;r+=u}return{length:ke.Buffer.byteLength(vp(r))+r,write(){W1(e,t,r)}}}function yu(e,t,r,i){const a=["reasonString","userProperties"],n=r&&r.properties&&r.properties.maximumPacketSize?r.properties.maximumPacketSize:0;let u=Oo(e,t);if(n)for(;i+u.length>n;){const c=a.shift();if(c&&t[c])delete t[c],u=Oo(e,t);else return!1}return u}function q1(e,t,r){switch(ut.propertiesTypes[t]){case"byte":{e.write(ke.Buffer.from([ut.properties[t]])),e.write(ke.Buffer.from([+r]));break}case"int8":{e.write(ke.Buffer.from([ut.properties[t]])),e.write(ke.Buffer.from([r]));break}case"binary":{e.write(ke.Buffer.from([ut.properties[t]])),Ha(e,r);break}case"int16":{e.write(ke.Buffer.from([ut.properties[t]])),Nr(e,r);break}case"int32":{e.write(ke.Buffer.from([ut.properties[t]])),EO(e,r);break}case"var":{e.write(ke.Buffer.from([ut.properties[t]])),wi(e,r);break}case"string":{e.write(ke.Buffer.from([ut.properties[t]])),ha(e,r);break}case"pair":{Object.getOwnPropertyNames(r).forEach(a=>{const n=r[a];Array.isArray(n)?n.forEach(u=>{e.write(ke.Buffer.from([ut.properties[t]])),H1(e,a.toString(),u.toString())}):(e.write(ke.Buffer.from([ut.properties[t]])),H1(e,a.toString(),n.toString()))});break}default:return e.emit("error",new Error(`Invalid property ${t} value: ${r}`)),!1}}function W1(e,t,r){wi(e,r);for(const i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&t[i]!==null){const a=t[i];if(Array.isArray(a))for(let n=0;n<a.length;n++)q1(e,i,a[n]);else q1(e,i,a)}}function t3(e){return e?e instanceof ke.Buffer?e.length:ke.Buffer.byteLength(e):0}function K1(e){return typeof e=="string"||e instanceof ke.Buffer}var r3=e3;const RO=r3,AO=Or;function TO(e,t){const r=new OO;return RO(e,r,t),r.concat()}class OO extends AO{constructor(){super(),this._array=new Array(20),this._i=0}write(t){return this._array[this._i++]=t,!0}concat(){let t=0;const r=new Array(this._array.length),i=this._array;let a=0,n;for(n=0;n<i.length&&i[n]!==void 0;n++)typeof i[n]!="string"?r[n]=i[n].length:r[n]=ke.Buffer.byteLength(i[n]),t+=r[n];const u=ke.Buffer.allocUnsafe(t);for(n=0;n<i.length&&i[n]!==void 0;n++)typeof i[n]!="string"?(i[n].copy(u,a),a+=r[n]):(u.write(i[n],a),a+=r[n]);return u}}var IO=TO;Nh.parser=XT.parser;Nh.generate=IO;Nh.writeToStream=r3;function Io(){if(!(this instanceof Io))return new Io;this.nextId=Math.max(1,Math.floor(Math.random()*65535))}Io.prototype.allocate=function(){const e=this.nextId++;return this.nextId===65536&&(this.nextId=1),e};Io.prototype.getLastAllocated=function(){return this.nextId===1?65535:this.nextId-1};Io.prototype.register=function(e){return!0};Io.prototype.deallocate=function(e){};Io.prototype.clear=function(){};var PO=Io;function CO(e,t,r){var i=this;this._callback=e,this._args=r,this._interval=setInterval(e,t,this._args),this.reschedule=function(a){a||(a=i._interval),i._interval&&clearInterval(i._interval),i._interval=setInterval(i._callback,a,i._args)},this.clear=function(){i._interval&&(clearInterval(i._interval),i._interval=void 0)},this.destroy=function(){i._interval&&clearInterval(i._interval),i._callback=void 0,i._interval=void 0,i._args=void 0}}function BO(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("interval needed");var e;if(arguments.length>0){e=new Array(arguments.length-2);for(var t=0;t<e.length;t++)e[t]=arguments[t+2]}return new CO(arguments[0],arguments[1],e)}var LO=BO,NO=kO;function ts(e){return e instanceof ke.Buffer?ke.Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function kO(e){if(e=e||{},e.circles)return $O(e);return e.proto?i:r;function t(a,n){for(var u=Object.keys(a),c=new Array(u.length),d=0;d<u.length;d++){var m=u[d],M=a[m];typeof M!="object"||M===null?c[m]=M:M instanceof Date?c[m]=new Date(M):ArrayBuffer.isView(M)?c[m]=ts(M):c[m]=n(M)}return c}function r(a){if(typeof a!="object"||a===null)return a;if(a instanceof Date)return new Date(a);if(Array.isArray(a))return t(a,r);if(a instanceof Map)return new Map(t(Array.from(a),r));if(a instanceof Set)return new Set(t(Array.from(a),r));var n={};for(var u in a)if(Object.hasOwnProperty.call(a,u)!==!1){var c=a[u];typeof c!="object"||c===null?n[u]=c:c instanceof Date?n[u]=new Date(c):c instanceof Map?n[u]=new Map(t(Array.from(c),r)):c instanceof Set?n[u]=new Set(t(Array.from(c),r)):ArrayBuffer.isView(c)?n[u]=ts(c):n[u]=r(c)}return n}function i(a){if(typeof a!="object"||a===null)return a;if(a instanceof Date)return new Date(a);if(Array.isArray(a))return t(a,i);if(a instanceof Map)return new Map(t(Array.from(a),i));if(a instanceof Set)return new Set(t(Array.from(a),i));var n={};for(var u in a){var c=a[u];typeof c!="object"||c===null?n[u]=c:c instanceof Date?n[u]=new Date(c):c instanceof Map?n[u]=new Map(t(Array.from(c),i)):c instanceof Set?n[u]=new Set(t(Array.from(c),i)):ArrayBuffer.isView(c)?n[u]=ts(c):n[u]=i(c)}return n}}function $O(e){var t=[],r=[];return e.proto?n:a;function i(u,c){for(var d=Object.keys(u),m=new Array(d.length),M=0;M<d.length;M++){var S=d[M],R=u[S];if(typeof R!="object"||R===null)m[S]=R;else if(R instanceof Date)m[S]=new Date(R);else if(ArrayBuffer.isView(R))m[S]=ts(R);else{var C=t.indexOf(R);C!==-1?m[S]=r[C]:m[S]=c(R)}}return m}function a(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return i(u,a);if(u instanceof Map)return new Map(i(Array.from(u),a));if(u instanceof Set)return new Set(i(Array.from(u),a));var c={};t.push(u),r.push(c);for(var d in u)if(Object.hasOwnProperty.call(u,d)!==!1){var m=u[d];if(typeof m!="object"||m===null)c[d]=m;else if(m instanceof Date)c[d]=new Date(m);else if(m instanceof Map)c[d]=new Map(i(Array.from(m),a));else if(m instanceof Set)c[d]=new Set(i(Array.from(m),a));else if(ArrayBuffer.isView(m))c[d]=ts(m);else{var M=t.indexOf(m);M!==-1?c[d]=r[M]:c[d]=a(m)}}return t.pop(),r.pop(),c}function n(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return i(u,n);if(u instanceof Map)return new Map(i(Array.from(u),n));if(u instanceof Set)return new Set(i(Array.from(u),n));var c={};t.push(u),r.push(c);for(var d in u){var m=u[d];if(typeof m!="object"||m===null)c[d]=m;else if(m instanceof Date)c[d]=new Date(m);else if(m instanceof Map)c[d]=new Map(i(Array.from(m),n));else if(m instanceof Set)c[d]=new Set(i(Array.from(m),n));else if(ArrayBuffer.isView(m))c[d]=ts(m);else{var M=t.indexOf(m);M!==-1?c[d]=r[M]:c[d]=n(m)}}return t.pop(),r.pop(),c}}var DO=NO();function FO(e){const t=e.split("/");for(let r=0;r<t.length;r++)if(t[r]!=="+"){if(t[r]==="#")return r===t.length-1;if(t[r].indexOf("+")!==-1||t[r].indexOf("#")!==-1)return!1}return!0}function jO(e){if(e.length===0)return"empty_topic_list";for(let t=0;t<e.length;t++)if(!FO(e[t]))return e[t];return null}var UO={validateTopics:jO};const i3=Or.EventEmitter,Vl=MM,HO=eA,qO=lT,n3=Nh,WO=PO,KO=vu.Writable,VO=Ze,zO=LO,o3=DO,a3=UO,Fh=Fv,He=zn("mqttjs:client"),Yv=we?we.nextTick:function(e){setTimeout(e,0)},Zv=Ye.setImmediate||function(e){Yv(e)},V1={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0},GO=["ECONNREFUSED","EADDRINUSE","ECONNRESET","ENOTFOUND"],zl={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};function YO(){return"mqttjs_"+Math.random().toString(16).substr(2,8)}function ZO(e,t){if(e.options.protocolVersion===5&&t.cmd==="publish"){let r;t.properties&&(r=t.properties.topicAlias);const i=t.topic.toString();if(e.topicAliasSend)if(r){if(i.length!==0&&(He("applyTopicAlias :: register topic: %s - alias: %d",i,r),!e.topicAliasSend.put(i,r)))return He("applyTopicAlias :: error out of range. topic: %s - alias: %d",i,r),new Error("Sending Topic Alias out of range")}else i.length!==0&&(e.options.autoAssignTopicAlias?(r=e.topicAliasSend.getAliasByTopic(i),r?(t.topic="",t.properties={...t.properties,topicAlias:r},He("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",i,r)):(r=e.topicAliasSend.getLruAlias(),e.topicAliasSend.put(i,r),t.properties={...t.properties,topicAlias:r},He("applyTopicAlias :: auto assign topic: %s - alias: %d",i,r))):e.options.autoUseTopicAlias&&(r=e.topicAliasSend.getAliasByTopic(i),r&&(t.topic="",t.properties={...t.properties,topicAlias:r},He("applyTopicAlias :: auto use topic: %s - alias: %d",i,r))));else if(r)return He("applyTopicAlias :: error out of range. topic: %s - alias: %d",i,r),new Error("Sending Topic Alias out of range")}}function s3(e,t){let r;t.properties&&(r=t.properties.topicAlias);let i=t.topic.toString();if(i.length===0){if(typeof r>"u")return new Error("Unregistered Topic Alias");if(i=e.topicAliasSend.getTopicByAlias(r),typeof i>"u")return new Error("Unregistered Topic Alias");t.topic=i}r&&delete t.properties.topicAlias}function rs(e,t,r){He("sendPacket :: packet: %O",t),He("sendPacket :: emitting `packetsend`"),e.emit("packetsend",t),He("sendPacket :: writing to stream");const i=n3.writeToStream(t,e.stream,e.options);He("sendPacket :: writeToStream result %s",i),!i&&r&&r!==yr?(He("sendPacket :: handle events on `drain` once through callback."),e.stream.once("drain",r)):r&&(He("sendPacket :: invoking cb"),r())}function XO(e){e&&(He("flush: queue exists? %b",!!e),Object.keys(e).forEach(function(t){typeof e[t].cb=="function"&&(e[t].cb(new Error("Connection closed")),delete e[t])}))}function JO(e){e&&(He("flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(e).forEach(function(t){e[t].volatile&&typeof e[t].cb=="function"&&(e[t].cb(new Error("Connection closed")),delete e[t])}))}function z1(e,t,r,i){He("storeAndSend :: store packet with cmd %s to outgoingStore",t.cmd);let a=t,n;if(a.cmd==="publish"&&(a=o3(t),n=s3(e,a),n))return r&&r(n);e.outgoingStore.put(a,function(c){if(c)return r&&r(c);i(),rs(e,t,r)})}function yr(e){He("nop ::",e)}function gt(e,t){let r;const i=this;if(!(this instanceof gt))return new gt(e,t);this.options=t||{};for(r in V1)typeof this.options[r]>"u"?this.options[r]=V1[r]:this.options[r]=t[r];He("MqttClient :: options.protocol",t.protocol),He("MqttClient :: options.protocolVersion",t.protocolVersion),He("MqttClient :: options.username",t.username),He("MqttClient :: options.keepalive",t.keepalive),He("MqttClient :: options.reconnectPeriod",t.reconnectPeriod),He("MqttClient :: options.rejectUnauthorized",t.rejectUnauthorized),He("MqttClient :: options.topicAliasMaximum",t.topicAliasMaximum),this.options.clientId=typeof t.clientId=="string"?t.clientId:YO(),He("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=t.protocolVersion===5&&t.customHandleAcks?t.customHandleAcks:function(){arguments[3](0)},this.streamBuilder=e,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new WO:this.options.messageIdProvider,this.outgoingStore=t.outgoingStore||new Vl,this.incomingStore=t.incomingStore||new Vl,this.queueQoSZero=t.queueQoSZero===void 0?!0:t.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.pingTimer=null,this.connected=!1,this.disconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,t.topicAliasMaximum>0&&(t.topicAliasMaximum>65535?He("MqttClient :: options.topicAliasMaximum is out of range"):this.topicAliasRecv=new HO(t.topicAliasMaximum)),this.on("connect",function(){const a=this.queue;function n(){const u=a.shift();He("deliver :: entry %o",u);let c=null;if(!u){i._resubscribe();return}c=u.packet,He("deliver :: call _sendPacket for %o",c);let d=!0;c.messageId&&c.messageId!==0&&(i.messageIdProvider.register(c.messageId)||(d=!1)),d?i._sendPacket(c,function(m){u.cb&&u.cb(m),n()}):(He("messageId: %d has already used. The message is skipped and removed.",c.messageId),n())}He("connect :: sending queued packets"),n()}),this.on("close",function(){He("close :: connected set to `false`"),this.connected=!1,He("close :: clearing connackTimer"),clearTimeout(this.connackTimer),He("close :: clearing ping timer"),i.pingTimer!==null&&(i.pingTimer.clear(),i.pingTimer=null),this.topicAliasRecv&&this.topicAliasRecv.clear(),He("close :: calling _setupReconnect"),this._setupReconnect()}),i3.call(this),He("MqttClient :: setting up stream"),this._setupStream()}VO(gt,i3);gt.prototype._setupStream=function(){const e=this,t=new KO,r=n3.parser(this.options);let i=null;const a=[];He("_setupStream :: calling method to clear reconnect"),this._clearReconnect(),He("_setupStream :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),r.on("packet",function(m){He("parser :: on packet push to packets array."),a.push(m)});function n(){if(a.length)Yv(u);else{const m=i;i=null,m()}}function u(){He("work :: getting next packet in queue");const m=a.shift();if(m)He("work :: packet pulled from queue"),e._handlePacket(m,n);else{He("work :: no packets in queue");const M=i;i=null,He("work :: done flag is %s",!!M),M&&M()}}t._write=function(m,M,S){i=S,He("writable stream :: parsing buffer"),r.parse(m),u()};function c(m){He("streamErrorHandler :: error",m.message),GO.includes(m.code)?(He("streamErrorHandler :: emitting error"),e.emit("error",m)):yr(m)}He("_setupStream :: pipe stream to writable stream"),this.stream.pipe(t),this.stream.on("error",c),this.stream.on("close",function(){He("(%s)stream :: on close",e.options.clientId),JO(e.outgoing),He("stream: emit close to MqttClient"),e.emit("close")}),He("_setupStream: sending packet `connect`");const d=Object.create(this.options);if(d.cmd="connect",this.topicAliasRecv&&(d.properties||(d.properties={}),this.topicAliasRecv&&(d.properties.topicAliasMaximum=this.topicAliasRecv.max)),rs(this,d),r.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return e.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){const m=Fh({cmd:"auth",reasonCode:0},this.options.authPacket);rs(this,m)}}this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(function(){He("!!connectTimeout hit!! Calling _cleanUp with force `true`"),e._cleanUp(!0)},this.options.connectTimeout)};gt.prototype._handlePacket=function(e,t){const r=this.options;if(r.protocolVersion===5&&r.properties&&r.properties.maximumPacketSize&&r.properties.maximumPacketSize<e.length)return this.emit("error",new Error("exceeding packets size "+e.cmd)),this.end({reasonCode:149,properties:{reasonString:"Maximum packet size was exceeded"}}),this;switch(He("_handlePacket :: emitting packetreceive"),this.emit("packetreceive",e),e.cmd){case"publish":this._handlePublish(e,t);break;case"puback":case"pubrec":case"pubcomp":case"suback":case"unsuback":this._handleAck(e),t();break;case"pubrel":this._handlePubrel(e,t);break;case"connack":this._handleConnack(e),t();break;case"auth":this._handleAuth(e),t();break;case"pingresp":this._handlePingresp(e),t();break;case"disconnect":this._handleDisconnect(e),t();break}};gt.prototype._checkDisconnecting=function(e){return this.disconnecting&&(e&&e!==yr?e(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting};gt.prototype.publish=function(e,t,r,i){He("publish :: message `%s` to topic `%s`",t,e);const a=this.options;if(typeof r=="function"&&(i=r,r=null),r=Fh({qos:0,retain:!1,dup:!1},r),this._checkDisconnecting(i))return this;const u=this,c=function(){let d=0;if((r.qos===1||r.qos===2)&&(d=u._nextId(),d===null))return He("No messageId left"),!1;const m={cmd:"publish",topic:e,payload:t,qos:r.qos,retain:r.retain,messageId:d,dup:r.dup};switch(a.protocolVersion===5&&(m.properties=r.properties),He("publish :: qos",r.qos),r.qos){case 1:case 2:u.outgoing[m.messageId]={volatile:!1,cb:i||yr},He("MqttClient:publish: packet cmd: %s",m.cmd),u._sendPacket(m,void 0,r.cbStorePut);break;default:He("MqttClient:publish: packet cmd: %s",m.cmd),u._sendPacket(m,i,r.cbStorePut);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!c())&&this._storeProcessingQueue.push({invoke:c,cbStorePut:r.cbStorePut,callback:i}),this};gt.prototype.subscribe=function(){const e=this,t=new Array(arguments.length);for(let S=0;S<arguments.length;S++)t[S]=arguments[S];const r=[];let i=t.shift();const a=i.resubscribe;let n=t.pop()||yr,u=t.pop();const c=this.options.protocolVersion;delete i.resubscribe,typeof i=="string"&&(i=[i]),typeof n!="function"&&(u=n,n=yr);const d=a3.validateTopics(i);if(d!==null)return Zv(n,new Error("Invalid topic "+d)),this;if(this._checkDisconnecting(n))return He("subscribe: discconecting true"),this;const m={qos:0};if(c===5&&(m.nl=!1,m.rap=!1,m.rh=0),u=Fh(m,u),Array.isArray(i)?i.forEach(function(S){if(He("subscribe: array topic %s",S),!Object.prototype.hasOwnProperty.call(e._resubscribeTopics,S)||e._resubscribeTopics[S].qos<u.qos||a){const R={topic:S,qos:u.qos};c===5&&(R.nl=u.nl,R.rap=u.rap,R.rh=u.rh,R.properties=u.properties),He("subscribe: pushing topic `%s` and qos `%s` to subs list",R.topic,R.qos),r.push(R)}}):Object.keys(i).forEach(function(S){if(He("subscribe: object topic %s",S),!Object.prototype.hasOwnProperty.call(e._resubscribeTopics,S)||e._resubscribeTopics[S].qos<i[S].qos||a){const R={topic:S,qos:i[S].qos};c===5&&(R.nl=i[S].nl,R.rap=i[S].rap,R.rh=i[S].rh,R.properties=u.properties),He("subscribe: pushing `%s` to subs list",R),r.push(R)}}),!r.length)return n(null,[]),this;const M=function(){const S=e._nextId();if(S===null)return He("No messageId left"),!1;const R={cmd:"subscribe",subscriptions:r,qos:1,retain:!1,dup:!1,messageId:S};if(u.properties&&(R.properties=u.properties),e.options.resubscribe){He("subscribe :: resubscribe true");const C=[];r.forEach(function(P){if(e.options.reconnectPeriod>0){const k={qos:P.qos};c===5&&(k.nl=P.nl||!1,k.rap=P.rap||!1,k.rh=P.rh||0,k.properties=P.properties),e._resubscribeTopics[P.topic]=k,C.push(P.topic)}}),e.messageIdToTopic[R.messageId]=C}return e.outgoing[R.messageId]={volatile:!0,cb:function(C,P){if(!C){const k=P.granted;for(let L=0;L<k.length;L+=1)r[L].qos=k[L]}n(C,r)}},He("subscribe :: call _sendPacket"),e._sendPacket(R),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!M())&&this._storeProcessingQueue.push({invoke:M,callback:n}),this};gt.prototype.unsubscribe=function(){const e=this,t=new Array(arguments.length);for(let c=0;c<arguments.length;c++)t[c]=arguments[c];let r=t.shift(),i=t.pop()||yr,a=t.pop();typeof r=="string"&&(r=[r]),typeof i!="function"&&(a=i,i=yr);const n=a3.validateTopics(r);if(n!==null)return Zv(i,new Error("Invalid topic "+n)),this;if(e._checkDisconnecting(i))return this;const u=function(){const c=e._nextId();if(c===null)return He("No messageId left"),!1;const d={cmd:"unsubscribe",qos:1,messageId:c};return typeof r=="string"?d.unsubscriptions=[r]:Array.isArray(r)&&(d.unsubscriptions=r),e.options.resubscribe&&d.unsubscriptions.forEach(function(m){delete e._resubscribeTopics[m]}),typeof a=="object"&&a.properties&&(d.properties=a.properties),e.outgoing[d.messageId]={volatile:!0,cb:i},He("unsubscribe: call _sendPacket"),e._sendPacket(d),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!u())&&this._storeProcessingQueue.push({invoke:u,callback:i}),this};gt.prototype.end=function(e,t,r){const i=this;He("end :: (%s)",this.options.clientId),(e==null||typeof e!="boolean")&&(r=t||yr,t=e,e=!1,typeof t!="object"&&(r=t,t=null,typeof r!="function"&&(r=yr))),typeof t!="object"&&(r=t,t=null),He("end :: cb? %s",!!r),r=r||yr;function a(){He("end :: closeStores: closing incoming and outgoing stores"),i.disconnected=!0,i.incomingStore.close(function(u){i.outgoingStore.close(function(c){if(He("end :: closeStores: emitting end"),i.emit("end"),r){const d=u||c;He("end :: closeStores: invoking callback with args"),r(d)}})}),i._deferredReconnect&&i._deferredReconnect()}function n(){He("end :: (%s) :: finish :: calling _cleanUp with force %s",i.options.clientId,e),i._cleanUp(e,()=>{He("end :: finish :: calling process.nextTick on closeStores"),Yv(a.bind(i))},t)}return this.disconnecting?(r(),this):(this._clearReconnect(),this.disconnecting=!0,!e&&Object.keys(this.outgoing).length>0?(He("end :: (%s) :: calling finish in 10ms once outgoing is empty",i.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,n,10))):(He("end :: (%s) :: immediately calling finish",i.options.clientId),n()),this)};gt.prototype.removeOutgoingMessage=function(e){const t=this.outgoing[e]?this.outgoing[e].cb:null;return delete this.outgoing[e],this.outgoingStore.del({messageId:e},function(){t(new Error("Message removed"))}),this};gt.prototype.reconnect=function(e){He("client reconnect");const t=this,r=function(){e?(t.options.incomingStore=e.incomingStore,t.options.outgoingStore=e.outgoingStore):(t.options.incomingStore=null,t.options.outgoingStore=null),t.incomingStore=t.options.incomingStore||new Vl,t.outgoingStore=t.options.outgoingStore||new Vl,t.disconnecting=!1,t.disconnected=!1,t._deferredReconnect=null,t._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=r:r(),this};gt.prototype._reconnect=function(){He("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this._setupStream()}),He("client already connected. disconnecting first.")):(He("_reconnect: calling _setupStream"),this._setupStream())};gt.prototype._setupReconnect=function(){const e=this;!e.disconnecting&&!e.reconnectTimer&&e.options.reconnectPeriod>0?(this.reconnecting||(He("_setupReconnect :: emit `offline` state"),this.emit("offline"),He("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),He("_setupReconnect :: setting reconnectTimer for %d ms",e.options.reconnectPeriod),e.reconnectTimer=setInterval(function(){He("reconnectTimer :: reconnect triggered!"),e._reconnect()},e.options.reconnectPeriod)):He("_setupReconnect :: doing nothing...")};gt.prototype._clearReconnect=function(){He("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)};gt.prototype._cleanUp=function(e,t){const r=arguments[2];if(t&&(He("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",t)),He("_cleanUp :: forced? %s",e),e)this.options.reconnectPeriod===0&&this.options.clean&&XO(this.outgoing),He("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{const i=Fh({cmd:"disconnect"},r);He("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(i,Zv.bind(null,this.stream.end.bind(this.stream)))}this.disconnecting||(He("_cleanUp :: client not disconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this.pingTimer!==null&&(He("_cleanUp :: clearing pingTimer"),this.pingTimer.clear(),this.pingTimer=null),t&&!this.connected&&(He("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",t),t())};gt.prototype._sendPacket=function(e,t,r){He("_sendPacket :: (%s) ::  start",this.options.clientId),r=r||yr,t=t||yr;const i=ZO(this,e);if(i){t(i);return}if(!this.connected){if(e.cmd==="auth"){this._shiftPingInterval(),rs(this,e,t);return}He("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(e,t,r);return}switch(this._shiftPingInterval(),e.cmd){case"publish":break;case"pubrel":z1(this,e,t,r);return;default:rs(this,e,t);return}switch(e.qos){case 2:case 1:z1(this,e,t,r);break;case 0:default:rs(this,e,t);break}He("_sendPacket :: (%s) ::  end",this.options.clientId)};gt.prototype._storePacket=function(e,t,r){He("_storePacket :: packet: %o",e),He("_storePacket :: cb? %s",!!t),r=r||yr;let i=e;if(i.cmd==="publish"){i=o3(e);const a=s3(this,i);if(a)return t&&t(a)}(i.qos||0)===0&&this.queueQoSZero||i.cmd!=="publish"?this.queue.push({packet:i,cb:t}):i.qos>0?(t=this.outgoing[i.messageId]?this.outgoing[i.messageId].cb:null,this.outgoingStore.put(i,function(a){if(a)return t&&t(a);r()})):t&&t(new Error("No connection to broker"))};gt.prototype._setupPingTimer=function(){He("_setupPingTimer :: keepalive %d (seconds)",this.options.keepalive);const e=this;!this.pingTimer&&this.options.keepalive&&(this.pingResp=!0,this.pingTimer=zO(function(){e._checkPing()},this.options.keepalive*1e3))};gt.prototype._shiftPingInterval=function(){this.pingTimer&&this.options.keepalive&&this.options.reschedulePings&&this.pingTimer.reschedule(this.options.keepalive*1e3)};gt.prototype._checkPing=function(){He("_checkPing :: checking ping..."),this.pingResp?(He("_checkPing :: ping response received. Clearing flag and sending `pingreq`"),this.pingResp=!1,this._sendPacket({cmd:"pingreq"})):(He("_checkPing :: calling _cleanUp with force true"),this._cleanUp(!0))};gt.prototype._handlePingresp=function(){this.pingResp=!0};gt.prototype._handleConnack=function(e){He("_handleConnack");const t=this.options,i=t.protocolVersion===5?e.reasonCode:e.returnCode;if(clearTimeout(this.connackTimer),delete this.topicAliasSend,e.properties){if(e.properties.topicAliasMaximum){if(e.properties.topicAliasMaximum>65535){this.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}e.properties.topicAliasMaximum>0&&(this.topicAliasSend=new qO(e.properties.topicAliasMaximum))}e.properties.serverKeepAlive&&t.keepalive&&(t.keepalive=e.properties.serverKeepAlive,this._shiftPingInterval()),e.properties.maximumPacketSize&&(t.properties||(t.properties={}),t.properties.maximumPacketSize=e.properties.maximumPacketSize)}if(i===0)this.reconnecting=!1,this._onConnect(e);else if(i>0){const a=new Error("Connection refused: "+zl[i]);a.code=i,this.emit("error",a)}};gt.prototype._handleAuth=function(e){const r=this.options.protocolVersion,i=r===5?e.reasonCode:e.returnCode;if(r!==5){const n=new Error("Protocol error: Auth packets are only supported in MQTT 5. Your version:"+r);n.code=i,this.emit("error",n);return}const a=this;this.handleAuth(e,function(n,u){if(n){a.emit("error",n);return}if(i===24)a.reconnecting=!1,a._sendPacket(u);else{const c=new Error("Connection refused: "+zl[i]);n.code=i,a.emit("error",c)}})};gt.prototype.handleAuth=function(e,t){t()};gt.prototype._handlePublish=function(e,t){He("_handlePublish: packet %o",e),t=typeof t<"u"?t:yr;let r=e.topic.toString();const i=e.payload,a=e.qos,n=e.messageId,u=this,c=this.options,d=[0,16,128,131,135,144,145,151,153];if(this.options.protocolVersion===5){let m;if(e.properties&&(m=e.properties.topicAlias),typeof m<"u")if(r.length===0)if(m>0&&m<=65535){const M=this.topicAliasRecv.getTopicByAlias(m);if(M)r=M,He("_handlePublish :: topic complemented by alias. topic: %s - alias: %d",r,m);else{He("_handlePublish :: unregistered topic alias. alias: %d",m),this.emit("error",new Error("Received unregistered Topic Alias"));return}}else{He("_handlePublish :: topic alias out of range. alias: %d",m),this.emit("error",new Error("Received Topic Alias is out of range"));return}else if(this.topicAliasRecv.put(r,m))He("_handlePublish :: registered topic: %s - alias: %d",r,m);else{He("_handlePublish :: topic alias out of range. alias: %d",m),this.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(He("_handlePublish: qos %d",a),a){case 2:{c.customHandleAcks(r,i,e,function(m,M){if(m instanceof Error||(M=m,m=null),m)return u.emit("error",m);if(d.indexOf(M)===-1)return u.emit("error",new Error("Wrong reason code for pubrec"));M?u._sendPacket({cmd:"pubrec",messageId:n,reasonCode:M},t):u.incomingStore.put(e,function(){u._sendPacket({cmd:"pubrec",messageId:n},t)})});break}case 1:{c.customHandleAcks(r,i,e,function(m,M){if(m instanceof Error||(M=m,m=null),m)return u.emit("error",m);if(d.indexOf(M)===-1)return u.emit("error",new Error("Wrong reason code for puback"));M||u.emit("message",r,i,e),u.handleMessage(e,function(S){if(S)return t&&t(S);u._sendPacket({cmd:"puback",messageId:n,reasonCode:M},t)})});break}case 0:this.emit("message",r,i,e),this.handleMessage(e,t);break;default:He("_handlePublish: unknown QoS. Doing nothing.");break}};gt.prototype.handleMessage=function(e,t){t()};gt.prototype._handleAck=function(e){const t=e.messageId,r=e.cmd;let i=null;const a=this.outgoing[t]?this.outgoing[t].cb:null,n=this;let u;if(!a){He("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(He("_handleAck :: packet type",r),r){case"pubcomp":case"puback":{const c=e.reasonCode;c&&c>0&&c!==16&&(u=new Error("Publish error: "+zl[c]),u.code=c,a(u,e)),delete this.outgoing[t],this.outgoingStore.del(e,a),this.messageIdProvider.deallocate(t),this._invokeStoreProcessingQueue();break}case"pubrec":{i={cmd:"pubrel",qos:2,messageId:t};const c=e.reasonCode;c&&c>0&&c!==16?(u=new Error("Publish error: "+zl[c]),u.code=c,a(u,e)):this._sendPacket(i);break}case"suback":{delete this.outgoing[t],this.messageIdProvider.deallocate(t);for(let c=0;c<e.granted.length;c++)if(e.granted[c]&128){const d=this.messageIdToTopic[t];d&&d.forEach(function(m){delete n._resubscribeTopics[m]})}this._invokeStoreProcessingQueue(),a(null,e);break}case"unsuback":{delete this.outgoing[t],this.messageIdProvider.deallocate(t),this._invokeStoreProcessingQueue(),a(null);break}default:n.emit("error",new Error("unrecognized packet type"))}this.disconnecting&&Object.keys(this.outgoing).length===0&&this.emit("outgoingEmpty")};gt.prototype._handlePubrel=function(e,t){He("handling pubrel packet"),t=typeof t<"u"?t:yr;const r=e.messageId,i=this,a={cmd:"pubcomp",messageId:r};i.incomingStore.get(e,function(n,u){n?i._sendPacket(a,t):(i.emit("message",u.topic,u.payload,u),i.handleMessage(u,function(c){if(c)return t(c);i.incomingStore.del(u,yr),i._sendPacket(a,t)}))})};gt.prototype._handleDisconnect=function(e){this.emit("disconnect",e)};gt.prototype._nextId=function(){return this.messageIdProvider.allocate()};gt.prototype.getLastMessageId=function(){return this.messageIdProvider.getLastAllocated()};gt.prototype._resubscribe=function(){He("_resubscribe");const e=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion===5&&!this.connackPacket.sessionPresent)&&e.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){He("_resubscribe: protocolVersion 5");for(let t=0;t<e.length;t++){const r={};r[e[t]]=this._resubscribeTopics[e[t]],r.resubscribe=!0,this.subscribe(r,{properties:r[e[t]].properties})}}else this._resubscribeTopics.resubscribe=!0,this.subscribe(this._resubscribeTopics);else this._resubscribeTopics={};this._firstConnection=!1};gt.prototype._onConnect=function(e){if(this.disconnected){this.emit("connect",e);return}const t=this;this.connackPacket=e,this.messageIdProvider.clear(),this._setupPingTimer(),this.connected=!0;function r(){let i=t.outgoingStore.createStream();function a(){t._storeProcessing=!1,t._packetIdsDuringStoreProcessing={}}t.once("close",n),i.on("error",function(c){a(),t._flushStoreProcessingQueue(),t.removeListener("close",n),t.emit("error",c)});function n(){i.destroy(),i=null,t._flushStoreProcessingQueue(),a()}function u(){if(!i)return;t._storeProcessing=!0;const c=i.read(1);let d;if(!c){i.once("readable",u);return}if(t._packetIdsDuringStoreProcessing[c.messageId]){u();return}!t.disconnecting&&!t.reconnectTimer?(d=t.outgoing[c.messageId]?t.outgoing[c.messageId].cb:null,t.outgoing[c.messageId]={volatile:!1,cb:function(m,M){d&&d(m,M),u()}},t._packetIdsDuringStoreProcessing[c.messageId]=!0,t.messageIdProvider.register(c.messageId)?t._sendPacket(c):He("messageId: %d has already used.",c.messageId)):i.destroy&&i.destroy()}i.on("end",function(){let c=!0;for(const d in t._packetIdsDuringStoreProcessing)if(!t._packetIdsDuringStoreProcessing[d]){c=!1;break}c?(a(),t.removeListener("close",n),t._invokeAllStoreProcessingQueue(),t.emit("connect",e)):r()}),u()}r()};gt.prototype._invokeStoreProcessingQueue=function(){if(this._storeProcessingQueue.length>0){const e=this._storeProcessingQueue[0];if(e&&e.invoke())return this._storeProcessingQueue.shift(),!0}return!1};gt.prototype._invokeAllStoreProcessingQueue=function(){for(;this._invokeStoreProcessingQueue(););};gt.prototype._flushStoreProcessingQueue=function(){for(const e of this._storeProcessingQueue)e.cbStorePut&&e.cbStorePut(new Error("Connection closed")),e.callback&&e.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)};var QO=gt,mp={exports:{}},Gl={exports:{}};/*! https://mths.be/punycode v1.4.1 by @mathias */Gl.exports;(function(e,t){(function(r){var i=t&&!t.nodeType&&t,a=e&&!e.nodeType&&e,n=typeof Ye=="object"&&Ye;(n.global===n||n.window===n||n.self===n)&&(r=n);var u,c=2147483647,d=36,m=1,M=26,S=38,R=700,C=72,P=128,k="-",L=/^xn--/,I=/[^\x20-\x7E]/,B=/[\x2E\u3002\uFF0E\uFF61]/g,H={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},F=d-m,W=Math.floor,Y=String.fromCharCode,ie;function J(s){throw new RangeError(H[s])}function V(s,v){for(var T=s.length,$=[];T--;)$[T]=v(s[T]);return $}function oe(s,v){var T=s.split("@"),$="";T.length>1&&($=T[0]+"@",s=T[1]),s=s.replace(B,".");var G=s.split("."),ee=V(G,v).join(".");return $+ee}function _(s){for(var v=[],T=0,$=s.length,G,ee;T<$;)G=s.charCodeAt(T++),G>=55296&&G<=56319&&T<$?(ee=s.charCodeAt(T++),(ee&64512)==56320?v.push(((G&1023)<<10)+(ee&1023)+65536):(v.push(G),T--)):v.push(G);return v}function o(s){return V(s,function(v){var T="";return v>65535&&(v-=65536,T+=Y(v>>>10&1023|55296),v=56320|v&1023),T+=Y(v),T}).join("")}function f(s){return s-48<10?s-22:s-65<26?s-65:s-97<26?s-97:d}function l(s,v){return s+22+75*(s<26)-((v!=0)<<5)}function h(s,v,T){var $=0;for(s=T?W(s/R):s>>1,s+=W(s/v);s>F*M>>1;$+=d)s=W(s/F);return W($+(F+1)*s/(s+S))}function p(s){var v=[],T=s.length,$,G=0,ee=P,A=C,E,U,K,Z,b,y,O,q,X;for(E=s.lastIndexOf(k),E<0&&(E=0),U=0;U<E;++U)s.charCodeAt(U)>=128&&J("not-basic"),v.push(s.charCodeAt(U));for(K=E>0?E+1:0;K<T;){for(Z=G,b=1,y=d;K>=T&&J("invalid-input"),O=f(s.charCodeAt(K++)),(O>=d||O>W((c-G)/b))&&J("overflow"),G+=O*b,q=y<=A?m:y>=A+M?M:y-A,!(O<q);y+=d)X=d-q,b>W(c/X)&&J("overflow"),b*=X;$=v.length+1,A=h(G-Z,$,Z==0),W(G/$)>c-ee&&J("overflow"),ee+=W(G/$),G%=$,v.splice(G++,0,ee)}return o(v)}function w(s){var v,T,$,G,ee,A,E,U,K,Z,b,y=[],O,q,X,D;for(s=_(s),O=s.length,v=P,T=0,ee=C,A=0;A<O;++A)b=s[A],b<128&&y.push(Y(b));for($=G=y.length,G&&y.push(k);$<O;){for(E=c,A=0;A<O;++A)b=s[A],b>=v&&b<E&&(E=b);for(q=$+1,E-v>W((c-T)/q)&&J("overflow"),T+=(E-v)*q,v=E,A=0;A<O;++A)if(b=s[A],b<v&&++T>c&&J("overflow"),b==v){for(U=T,K=d;Z=K<=ee?m:K>=ee+M?M:K-ee,!(U<Z);K+=d)D=U-Z,X=d-Z,y.push(Y(l(Z+D%X,0))),U=W(D/X);y.push(Y(l(U,0))),ee=h(T,q,$==G),T=0,++$}++T,++v}return y.join("")}function x(s){return oe(s,function(v){return L.test(v)?p(v.slice(4).toLowerCase()):v})}function g(s){return oe(s,function(v){return I.test(v)?"xn--"+w(v):v})}if(u={version:"1.4.1",ucs2:{decode:_,encode:o},decode:p,encode:w,toASCII:g,toUnicode:x},i&&a)if(e.exports==i)a.exports=u;else for(ie in u)u.hasOwnProperty(ie)&&(i[ie]=u[ie]);else r.punycode=u})(Ye)})(Gl,Gl.exports);var eI=Gl.exports,yp={exports:{}},eu={};function tI(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var rI=function(e,t,r,i){t=t||"&",r=r||"=";var a={};if(typeof e!="string"||e.length===0)return a;var n=/\+/g;e=e.split(t);var u=1e3;i&&typeof i.maxKeys=="number"&&(u=i.maxKeys);var c=e.length;u>0&&c>u&&(c=u);for(var d=0;d<c;++d){var m=e[d].replace(n,"%20"),M=m.indexOf(r),S,R,C,P;M>=0?(S=m.substr(0,M),R=m.substr(M+1)):(S=m,R=""),C=decodeURIComponent(S),P=decodeURIComponent(R),tI(a,C)?iI(a[C])?a[C].push(P):a[C]=[a[C],P]:a[C]=P}return a},iI=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"},of=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},nI=function(e,t,r,i){return t=t||"&",r=r||"=",e===null&&(e=void 0),typeof e=="object"?G1(aI(e),function(a){var n=encodeURIComponent(of(a))+r;return oI(e[a])?G1(e[a],function(u){return n+encodeURIComponent(of(u))}).join(t):n+encodeURIComponent(of(e[a]))}).join(t):i?encodeURIComponent(of(i))+r+encodeURIComponent(of(e)):""},oI=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};function G1(e,t){if(e.map)return e.map(t);for(var r=[],i=0;i<e.length;i++)r.push(t(e[i],i));return r}var aI=Object.keys||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t};eu.decode=eu.parse=rI;eu.encode=eu.stringify=nI;(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=eu;function i(u){return encodeURIComponent(u)}function a(u){return decodeURIComponent(u)}var n={decode:r.decode,encode:r.encode,parse:r.parse,stringify:r.stringify,escape:i,unescape:a};Object.defineProperty(t,"decode",{enumerable:!0,get:function(){return r.decode}}),Object.defineProperty(t,"encode",{enumerable:!0,get:function(){return r.encode}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return r.parse}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),t.default=n,t.escape=i,t.unescape=a,t=e.exports=n})(yp,yp.exports);var sI=yp.exports;(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=eI,i=sI;function a(Q){return Q&&typeof Q=="object"&&"default"in Q?Q:{default:Q}}var n=a(r),u=a(i),c={isString:function(Q){return typeof Q=="string"},isObject:function(Q){return typeof Q=="object"&&Q!==null},isNull:function(Q){return Q===null},isNullOrUndefined:function(Q){return Q==null}},d=n.default,m=c,M=h,S=w,R=x,C=p,P=k;function k(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var L=/^([a-z0-9.+-]+:)/i,I=/:[0-9]*$/,B=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,H=["<",">",'"',"`"," ","\r",`
+`,"	"],F=["{","}","|","\\","^","`"].concat(H),W=["'"].concat(F),Y=["%","/","?",";","#"].concat(W),ie=["/","?","#"],J=255,V=/^[+a-z0-9A-Z_-]{0,63}$/,oe=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,_={javascript:!0,"javascript:":!0},o={javascript:!0,"javascript:":!0},f={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},l=u.default;function h(Q,ue,le){if(Q&&m.isObject(Q)&&Q instanceof k)return Q;var ce=new k;return ce.parse(Q,ue,le),ce}k.prototype.parse=function(Q,ue,le){if(!m.isString(Q))throw new TypeError("Parameter 'url' must be a string, not "+typeof Q);var ce=Q.indexOf("?"),pe=ce!==-1&&ce<Q.indexOf("#")?"?":"#",de=Q.split(pe),ae=/\\/g;de[0]=de[0].replace(ae,"/"),Q=de.join(pe);var fe=Q;if(fe=fe.trim(),!le&&Q.split("#").length===1){var Te=B.exec(fe);if(Te)return this.path=fe,this.href=fe,this.pathname=Te[1],Te[2]?(this.search=Te[2],ue?this.query=l.parse(this.search.substr(1)):this.query=this.search.substr(1)):ue&&(this.search="",this.query={}),this}var ve=L.exec(fe);if(ve){ve=ve[0];var Me=ve.toLowerCase();this.protocol=Me,fe=fe.substr(ve.length)}if(le||ve||fe.match(/^\/\/[^@\/]+@[^@\/]+/)){var Ke=fe.substr(0,2)==="//";Ke&&!(ve&&o[ve])&&(fe=fe.substr(2),this.slashes=!0)}if(!o[ve]&&(Ke||ve&&!f[ve])){for(var be=-1,Se=0;Se<ie.length;Se++){var qe=fe.indexOf(ie[Se]);qe!==-1&&(be===-1||qe<be)&&(be=qe)}var ye,_e;be===-1?_e=fe.lastIndexOf("@"):_e=fe.lastIndexOf("@",be),_e!==-1&&(ye=fe.slice(0,_e),fe=fe.slice(_e+1),this.auth=decodeURIComponent(ye)),be=-1;for(var Se=0;Se<Y.length;Se++){var qe=fe.indexOf(Y[Se]);qe!==-1&&(be===-1||qe<be)&&(be=qe)}be===-1&&(be=fe.length),this.host=fe.slice(0,be),fe=fe.slice(be),this.parseHost(),this.hostname=this.hostname||"";var Ve=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!Ve)for(var ge=this.hostname.split(/\./),Se=0,xe=ge.length;Se<xe;Se++){var Xe=ge[Se];if(Xe&&!Xe.match(V)){for(var Re="",Le=0,at=Xe.length;Le<at;Le++)Xe.charCodeAt(Le)>127?Re+="x":Re+=Xe[Le];if(!Re.match(V)){var Ae=ge.slice(0,Se),Ne=ge.slice(Se+1),rt=Xe.match(oe);rt&&(Ae.push(rt[1]),Ne.unshift(rt[2])),Ne.length&&(fe="/"+Ne.join(".")+fe),this.hostname=Ae.join(".");break}}}this.hostname.length>J?this.hostname="":this.hostname=this.hostname.toLowerCase(),Ve||(this.hostname=d.toASCII(this.hostname));var Oe=this.port?":"+this.port:"",De=this.hostname||"";this.host=De+Oe,this.href+=this.host,Ve&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),fe[0]!=="/"&&(fe="/"+fe))}if(!_[Me])for(var Se=0,xe=W.length;Se<xe;Se++){var nt=W[Se];if(fe.indexOf(nt)!==-1){var Ie=encodeURIComponent(nt);Ie===nt&&(Ie=escape(nt)),fe=fe.split(nt).join(Ie)}}var $e=fe.indexOf("#");$e!==-1&&(this.hash=fe.substr($e),fe=fe.slice(0,$e));var st=fe.indexOf("?");if(st!==-1?(this.search=fe.substr(st),this.query=fe.substr(st+1),ue&&(this.query=l.parse(this.query)),fe=fe.slice(0,st)):ue&&(this.search="",this.query={}),fe&&(this.pathname=fe),f[Me]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var Oe=this.pathname||"",Pe=this.search||"";this.path=Oe+Pe}return this.href=this.format(),this};function p(Q){return m.isString(Q)&&(Q=h(Q)),Q instanceof k?Q.format():k.prototype.format.call(Q)}k.prototype.format=function(){var Q=this.auth||"";Q&&(Q=encodeURIComponent(Q),Q=Q.replace(/%3A/i,":"),Q+="@");var ue=this.protocol||"",le=this.pathname||"",ce=this.hash||"",pe=!1,de="";this.host?pe=Q+this.host:this.hostname&&(pe=Q+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(pe+=":"+this.port)),this.query&&m.isObject(this.query)&&Object.keys(this.query).length&&(de=l.stringify(this.query));var ae=this.search||de&&"?"+de||"";return ue&&ue.substr(-1)!==":"&&(ue+=":"),this.slashes||(!ue||f[ue])&&pe!==!1?(pe="//"+(pe||""),le&&le.charAt(0)!=="/"&&(le="/"+le)):pe||(pe=""),ce&&ce.charAt(0)!=="#"&&(ce="#"+ce),ae&&ae.charAt(0)!=="?"&&(ae="?"+ae),le=le.replace(/[?#]/g,function(fe){return encodeURIComponent(fe)}),ae=ae.replace("#","%23"),ue+pe+le+ae+ce};function w(Q,ue){return h(Q,!1,!0).resolve(ue)}k.prototype.resolve=function(Q){return this.resolveObject(h(Q,!1,!0)).format()};function x(Q,ue){return Q?h(Q,!1,!0).resolveObject(ue):ue}k.prototype.resolveObject=function(Q){if(m.isString(Q)){var ue=new k;ue.parse(Q,!1,!0),Q=ue}for(var le=new k,ce=Object.keys(this),pe=0;pe<ce.length;pe++){var de=ce[pe];le[de]=this[de]}if(le.hash=Q.hash,Q.href==="")return le.href=le.format(),le;if(Q.slashes&&!Q.protocol){for(var ae=Object.keys(Q),fe=0;fe<ae.length;fe++){var Te=ae[fe];Te!=="protocol"&&(le[Te]=Q[Te])}return f[le.protocol]&&le.hostname&&!le.pathname&&(le.path=le.pathname="/"),le.href=le.format(),le}if(Q.protocol&&Q.protocol!==le.protocol){if(!f[Q.protocol]){for(var ve=Object.keys(Q),Me=0;Me<ve.length;Me++){var Ke=ve[Me];le[Ke]=Q[Ke]}return le.href=le.format(),le}if(le.protocol=Q.protocol,!Q.host&&!o[Q.protocol]){for(var xe=(Q.pathname||"").split("/");xe.length&&!(Q.host=xe.shift()););Q.host||(Q.host=""),Q.hostname||(Q.hostname=""),xe[0]!==""&&xe.unshift(""),xe.length<2&&xe.unshift(""),le.pathname=xe.join("/")}else le.pathname=Q.pathname;if(le.search=Q.search,le.query=Q.query,le.host=Q.host||"",le.auth=Q.auth,le.hostname=Q.hostname||Q.host,le.port=Q.port,le.pathname||le.search){var be=le.pathname||"",Se=le.search||"";le.path=be+Se}return le.slashes=le.slashes||Q.slashes,le.href=le.format(),le}var qe=le.pathname&&le.pathname.charAt(0)==="/",ye=Q.host||Q.pathname&&Q.pathname.charAt(0)==="/",_e=ye||qe||le.host&&Q.pathname,Ve=_e,ge=le.pathname&&le.pathname.split("/")||[],xe=Q.pathname&&Q.pathname.split("/")||[],Xe=le.protocol&&!f[le.protocol];if(Xe&&(le.hostname="",le.port=null,le.host&&(ge[0]===""?ge[0]=le.host:ge.unshift(le.host)),le.host="",Q.protocol&&(Q.hostname=null,Q.port=null,Q.host&&(xe[0]===""?xe[0]=Q.host:xe.unshift(Q.host)),Q.host=null),_e=_e&&(xe[0]===""||ge[0]==="")),ye)le.host=Q.host||Q.host===""?Q.host:le.host,le.hostname=Q.hostname||Q.hostname===""?Q.hostname:le.hostname,le.search=Q.search,le.query=Q.query,ge=xe;else if(xe.length)ge||(ge=[]),ge.pop(),ge=ge.concat(xe),le.search=Q.search,le.query=Q.query;else if(!m.isNullOrUndefined(Q.search)){if(Xe){le.hostname=le.host=ge.shift();var Re=le.host&&le.host.indexOf("@")>0?le.host.split("@"):!1;Re&&(le.auth=Re.shift(),le.host=le.hostname=Re.shift())}return le.search=Q.search,le.query=Q.query,(!m.isNull(le.pathname)||!m.isNull(le.search))&&(le.path=(le.pathname?le.pathname:"")+(le.search?le.search:"")),le.href=le.format(),le}if(!ge.length)return le.pathname=null,le.search?le.path="/"+le.search:le.path=null,le.href=le.format(),le;for(var Le=ge.slice(-1)[0],at=(le.host||Q.host||ge.length>1)&&(Le==="."||Le==="..")||Le==="",Ae=0,Ne=ge.length;Ne>=0;Ne--)Le=ge[Ne],Le==="."?ge.splice(Ne,1):Le===".."?(ge.splice(Ne,1),Ae++):Ae&&(ge.splice(Ne,1),Ae--);if(!_e&&!Ve)for(;Ae--;Ae)ge.unshift("..");_e&&ge[0]!==""&&(!ge[0]||ge[0].charAt(0)!=="/")&&ge.unshift(""),at&&ge.join("/").substr(-1)!=="/"&&ge.push("");var rt=ge[0]===""||ge[0]&&ge[0].charAt(0)==="/";if(Xe){le.hostname=le.host=rt?"":ge.length?ge.shift():"";var Re=le.host&&le.host.indexOf("@")>0?le.host.split("@"):!1;Re&&(le.auth=Re.shift(),le.host=le.hostname=Re.shift())}return _e=_e||le.host&&ge.length,_e&&!rt&&ge.unshift(""),ge.length?le.pathname=ge.join("/"):(le.pathname=null,le.path=null),(!m.isNull(le.pathname)||!m.isNull(le.search))&&(le.path=(le.pathname?le.pathname:"")+(le.search?le.search:"")),le.auth=Q.auth||le.auth,le.slashes=le.slashes||Q.slashes,le.href=le.format(),le},k.prototype.parseHost=function(){var Q=this.host,ue=I.exec(Q);ue&&(ue=ue[0],ue!==":"&&(this.port=ue.substr(1)),Q=Q.substr(0,Q.length-ue.length)),Q&&(this.hostname=Q)};function g(Q,ue){for(var le=0,ce=Q.length-1;ce>=0;ce--){var pe=Q[ce];pe==="."?Q.splice(ce,1):pe===".."?(Q.splice(ce,1),le++):le&&(Q.splice(ce,1),le--)}if(ue)for(;le--;le)Q.unshift("..");return Q}function s(){for(var Q="",ue=!1,le=arguments.length-1;le>=-1&&!ue;le--){var ce=le>=0?arguments[le]:"/";if(typeof ce!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!ce)continue;Q=ce+"/"+Q,ue=ce.charAt(0)==="/"}return Q=g(v(Q.split("/"),function(pe){return!!pe}),!ue).join("/"),(ue?"/":"")+Q||"."}function v(Q,ue){if(Q.filter)return Q.filter(ue);for(var le=[],ce=0;ce<Q.length;ce++)ue(Q[ce],ce,Q)&&le.push(Q[ce]);return le}var T=function(Q){function ue(){var ce=this||self;return delete Q.prototype.__magic__,ce}if(typeof globalThis=="object")return globalThis;if(this)return ue();Q.defineProperty(Q.prototype,"__magic__",{configurable:!0,get:ue});var le=__magic__;return le}(Object),$=C,G=M,ee=S,A=P,E=T.URL,U=T.URLSearchParams,K=/%/g,Z=/\\/g,b=/\n/g,y=/\r/g,O=/\t/g,q=47;function X(Q){var ue=Q??null;return!!(ue!==null&&(ue!=null&&ue.href)&&(ue!=null&&ue.origin))}function D(Q){if(Q.hostname!=="")throw new TypeError('File URL host must be "localhost" or empty on browser');for(var ue=Q.pathname,le=0;le<ue.length;le++)if(ue[le]==="%"){var ce=ue.codePointAt(le+2)|32;if(ue[le+1]==="2"&&ce===102)throw new TypeError("File URL path must not include encoded / characters")}return decodeURIComponent(ue)}function N(Q){return Q.includes("%")&&(Q=Q.replace(K,"%25")),Q.includes("\\")&&(Q=Q.replace(Z,"%5C")),Q.includes(`
+`)&&(Q=Q.replace(b,"%0A")),Q.includes("\r")&&(Q=Q.replace(y,"%0D")),Q.includes("	")&&(Q=Q.replace(O,"%09")),Q}var j=function(ue){if(typeof ue>"u")throw new TypeError('The "domain" argument must be specified');return new E("http://"+ue).hostname},z=function(ue){if(typeof ue>"u")throw new TypeError('The "domain" argument must be specified');return new E("http://"+ue).hostname},se=function(ue){var le=new E("file://"),ce=s(ue),pe=ue.charCodeAt(ue.length-1);return pe===q&&ce[ce.length-1]!=="/"&&(ce+="/"),le.pathname=N(ce),le},te=function(ue){if(!X(ue)&&typeof ue!="string")throw new TypeError('The "path" argument must be of type string or an instance of URL. Received type '+typeof ue+" ("+ue+")");var le=new E(ue);if(le.protocol!=="file:")throw new TypeError("The URL must be of scheme file");return D(le)},ne=function(ue,le){var ce,pe,de;if(le===void 0&&(le={}),!(ue instanceof E))return $(ue);if(typeof le!="object"||le===null)throw new TypeError('The "options" argument must be of type object.');var ae=(ce=le.auth)!=null?ce:!0,fe=(pe=le.fragment)!=null?pe:!0,Te=(de=le.search)!=null?de:!0,ve=new E(ue.toString());return ae||(ve.username="",ve.password=""),fe||(ve.hash=""),Te||(ve.search=""),ve.toString()},Ee={format:ne,parse:G,resolve:ee,resolveObject:R,Url:A,URL:E,URLSearchParams:U,domainToASCII:j,domainToUnicode:z,pathToFileURL:se,fileURLToPath:te};t.URL=E,t.URLSearchParams=U,t.Url=A,t.default=Ee,t.domainToASCII=j,t.domainToUnicode=z,t.fileURLToPath=te,t.format=ne,t.parse=G,t.pathToFileURL=se,t.resolve=ee,t.resolveObject=R,t=e.exports=Ee})(mp,mp.exports);var f3=mp.exports;const CV=Lo(f3);var gd,Y1;function bp(){if(Y1)return gd;Y1=1;var e=null;return gd=e,gd}var md,Z1;function X1(){if(Z1)return md;Z1=1;const e=bp(),t=zn("mqttjs:tcp");function r(i,a){a.port=a.port||1883,a.hostname=a.hostname||a.host||"localhost";const n=a.port,u=a.hostname;return t("port %d and host %s",n,u),e.createConnection(n,u)}return md=r,md}var yd,J1;function bd(){if(J1)return yd;J1=1;const e=bp(),t=bp(),r=zn("mqttjs:tls");function i(a,n){n.port=n.port||8883,n.host=n.hostname||n.host||"localhost",t.isIP(n.host)===0&&(n.servername=n.host),n.rejectUnauthorized=n.rejectUnauthorized!==!1,delete n.path,r("port %d host %s rejectUnauthorized %b",n.port,n.host,n.rejectUnauthorized);const u=e.connect(n);u.on("secureConnect",function(){n.rejectUnauthorized&&!u.authorized?u.emit("error",new Error("TLS not authorized")):u.removeListener("error",c)});function c(d){n.rejectUnauthorized&&a.emit("error",d),u.end()}return u.on("error",c),u}return yd=i,yd}var wp={exports:{}},u3=Or.EventEmitter,wd,Q1;function fI(){if(Q1)return wd;Q1=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return wd=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),wd}function uI(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(_p,this,e)):we.nextTick(_p,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(vl,r):(r._writableState.errorEmitted=!0,we.nextTick(ey,r,n)):we.nextTick(ey,r,n):t?(we.nextTick(vl,r),t(n)):we.nextTick(vl,r)}),this)}function ey(e,t){_p(e,t),vl(e)}function vl(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function lI(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function _p(e,t){e.emit("error",t)}function hI(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var l3={destroy:uI,undestroy:lI,errorOrDestroy:hI},Sa={};function cI(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var h3={};function _i(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){cI(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,h3[e]=a}function ty(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function dI(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function pI(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function vI(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}_i("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);_i("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&dI(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(pI(e," argument"))a="The ".concat(e," ").concat(i," ").concat(ty(t,"type"));else{var n=vI(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(ty(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);_i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");_i("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});_i("ERR_STREAM_PREMATURE_CLOSE","Premature close");_i("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});_i("ERR_MULTIPLE_CALLBACK","Callback called multiple times");_i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");_i("ERR_STREAM_WRITE_AFTER_END","write after end");_i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);_i("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);_i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Sa.codes=h3;var gI=Sa.codes.ERR_INVALID_OPT_VALUE;function mI(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function yI(e,t,r,i){var a=mI(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new gI(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var c3={getHighWaterMark:yI},_d,ry;function d3(){if(ry)return _d;ry=1,_d=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=u3,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=l3,m=c3,M=m.getHighWaterMark,S=Sa.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||ps(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||ps();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},_d}var Md,iy;function ps(){if(iy)return Md;iy=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};Md=u;var t=v3(),r=d3();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),Md}var ny=Sa.codes.ERR_STREAM_PREMATURE_CLOSE;function bI(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function wI(){}function _I(e){return e.setHeader&&typeof e.abort=="function"}function p3(e,t,r){if(typeof t=="function")return p3(e,null,t);t||(t={}),r=bI(r||wI);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new ny),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new ny),r.call(e,P)},R=function(){e.req.on("finish",c)};return _I(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var Xv=p3,Sd,oy;function MI(){if(oy)return Sd;oy=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=Xv,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return Sd=B,Sd}var xd,ay;function SI(){return ay||(ay=1,xd=function(){throw new Error("Readable.from is not available in the browser")}),xd}var Ed,sy;function v3(){if(sy)return Ed;sy=1,Ed=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=u3,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=fI(),M=l3,S=c3,R=S.getHighWaterMark,C=Sa.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||ps(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||ps(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=MI()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=SI()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return Ed}var g3=Dn,jh=Sa.codes,xI=jh.ERR_METHOD_NOT_IMPLEMENTED,EI=jh.ERR_MULTIPLE_CALLBACK,RI=jh.ERR_TRANSFORM_ALREADY_TRANSFORMING,AI=jh.ERR_TRANSFORM_WITH_LENGTH_0,Uh=ps();Ze(Dn,Uh);function TI(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new EI);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function Dn(e){if(!(this instanceof Dn))return new Dn(e);Uh.call(this,e),this._transformState={afterTransform:TI.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",OI)}function OI(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){fy(e,t,r)}):fy(this,null,null)}Dn.prototype.push=function(e,t){return this._transformState.needTransform=!1,Uh.prototype.push.call(this,e,t)};Dn.prototype._transform=function(e,t,r){r(new xI("_transform()"))};Dn.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};Dn.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Dn.prototype._destroy=function(e,t){Uh.prototype._destroy.call(this,e,function(r){t(r)})};function fy(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new AI;if(e._transformState.transforming)throw new RI;return e.push(null)}var II=tu,m3=g3;Ze(tu,m3);function tu(e){if(!(this instanceof tu))return new tu(e);m3.call(this,e)}tu.prototype._transform=function(e,t,r){r(null,e)};var Rd;function PI(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var y3=Sa.codes,CI=y3.ERR_MISSING_ARGS,BI=y3.ERR_STREAM_DESTROYED;function uy(e){if(e)throw e}function LI(e){return e.setHeader&&typeof e.abort=="function"}function NI(e,t,r,i){i=PI(i);var a=!1;e.on("close",function(){a=!0}),Rd===void 0&&(Rd=Xv),Rd(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,LI(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new BI("pipe"))}}}function ly(e){e()}function kI(e,t){return e.pipe(t)}function $I(e){return!e.length||typeof e[e.length-1]!="function"?uy:e.pop()}function DI(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=$I(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new CI("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return NI(u,d,m,function(M){a||(a=M),M&&n.forEach(ly),!d&&(n.forEach(ly),i(a))})});return t.reduce(kI)}var FI=DI;(function(e,t){t=e.exports=v3(),t.Stream=t,t.Readable=t,t.Writable=d3(),t.Duplex=ps(),t.Transform=g3,t.PassThrough=II,t.finished=Xv,t.pipeline=FI})(wp,wp.exports);var jI=wp.exports,Jv={exports:{}},UI=b3;function b3(e,t){if(e&&t)return b3(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(i){r[i]=e[i]}),r;function r(){for(var i=new Array(arguments.length),a=0;a<i.length;a++)i[a]=arguments[a];var n=e.apply(this,i),u=i[i.length-1];return typeof n=="function"&&n!==u&&Object.keys(u).forEach(function(c){n[c]=u[c]}),n}}var w3=UI;Jv.exports=w3(gl);Jv.exports.strict=w3(_3);gl.proto=gl(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return gl(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return _3(this)},configurable:!0})});function gl(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function _3(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}var HI=Jv.exports,qI=HI,WI=function(){},KI=function(e){return e.setHeader&&typeof e.abort=="function"},VI=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},M3=function(e,t,r){if(typeof t=="function")return M3(e,null,t);t||(t={}),r=qI(r||WI);var i=e._writableState,a=e._readableState,n=t.readable||t.readable!==!1&&e.readable,u=t.writable||t.writable!==!1&&e.writable,c=!1,d=function(){e.writable||m()},m=function(){u=!1,n||r.call(e)},M=function(){n=!1,u||r.call(e)},S=function(L){r.call(e,L?new Error("exited with error code: "+L):null)},R=function(L){r.call(e,L)},C=function(){we.nextTick(P)},P=function(){if(!c){if(n&&!(a&&a.ended&&!a.destroyed))return r.call(e,new Error("premature close"));if(u&&!(i&&i.ended&&!i.destroyed))return r.call(e,new Error("premature close"))}},k=function(){e.req.on("finish",m)};return KI(e)?(e.on("complete",m),e.on("abort",C),e.req?k():e.on("request",k)):u&&!i&&(e.on("end",d),e.on("close",d)),VI(e)&&e.on("exit",S),e.on("end",M),e.on("finish",m),t.error!==!1&&e.on("error",R),e.on("close",C),function(){c=!0,e.removeListener("complete",m),e.removeListener("abort",C),e.removeListener("request",k),e.req&&e.req.removeListener("finish",m),e.removeListener("end",d),e.removeListener("close",d),e.removeListener("finish",m),e.removeListener("exit",S),e.removeListener("end",M),e.removeListener("error",R),e.removeListener("close",C)}},zI=M3,GI=YI;function YI(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(ZI(t)):null}function ZI(e){return e.buffer.length?e.buffer.head?e.buffer.head.data.length:e.buffer[0].length:e.length}var Hh=jI,S3=zI,XI=Ze,JI=GI,x3=ke.Buffer.from&&ke.Buffer.from!==Uint8Array.from?ke.Buffer.from([0]):new ke.Buffer([0]),Mp=function(e,t){e._corked?e.once("uncork",t):t()},QI=function(e,t){e._autoDestroy&&e.destroy(t)},E3=function(e,t){return function(r){r?QI(e,r.message==="premature close"?null:r):t&&!e._ended&&e.end()}},eP=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},tP=function(){},rP=function(e){return new Hh.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},br=function(e,t,r){if(!(this instanceof br))return new br(e,t,r);Hh.Duplex.call(this,r),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!r||r.autoDestroy!==!1,this._forwardDestroy=!r||r.destroy!==!1,this._forwardEnd=!r||r.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,e&&this.setWritable(e),t&&this.setReadable(t)};XI(br,Hh.Duplex);br.obj=function(e,t,r){return r||(r={}),r.objectMode=!0,r.highWaterMark=16,new br(e,t,r)};br.prototype.cork=function(){++this._corked===1&&this.emit("cork")};br.prototype.uncork=function(){this._corked&&--this._corked===0&&this.emit("uncork")};br.prototype.setWritable=function(e){if(this._unwrite&&this._unwrite(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.end();return}var t=this,r=S3(e,{writable:!0,readable:!1},E3(this,this._forwardEnd)),i=function(){var n=t._ondrain;t._ondrain=null,n&&n()},a=function(){t._writable.removeListener("drain",i),r()};this._unwrite&&we.nextTick(i),this._writable=e,this._writable.on("drain",i),this._unwrite=a,this.uncork()};br.prototype.setReadable=function(e){if(this._unread&&this._unread(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.push(null),this.resume();return}var t=this,r=S3(e,{writable:!1,readable:!0},E3(this)),i=function(){t._forward()},a=function(){t.push(null)},n=function(){t._readable2.removeListener("readable",i),t._readable2.removeListener("end",a),r()};this._drained=!0,this._readable=e,this._readable2=e._readableState?e:rP(e),this._readable2.on("readable",i),this._readable2.on("end",a),this._unread=n,this._forward()};br.prototype._read=function(){this._drained=!0,this._forward()};br.prototype._forward=function(){if(!(this._forwarding||!this._readable2||!this._drained)){this._forwarding=!0;for(var e;this._drained&&(e=JI(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};br.prototype.destroy=function(e,t){if(t||(t=tP),this.destroyed)return t(null);this.destroyed=!0;var r=this;we.nextTick(function(){r._destroy(e),t(null)})};br.prototype._destroy=function(e){if(e){var t=this._ondrain;this._ondrain=null,t?t(e):this.emit("error",e)}this._forwardDestroy&&(this._readable&&this._readable.destroy&&this._readable.destroy(),this._writable&&this._writable.destroy&&this._writable.destroy()),this.emit("close")};br.prototype._write=function(e,t,r){if(!this.destroyed){if(this._corked)return Mp(this,this._write.bind(this,e,t,r));if(e===x3)return this._finish(r);if(!this._writable)return r();this._writable.write(e)===!1?this._ondrain=r:this.destroyed||r()}};br.prototype._finish=function(e){var t=this;this.emit("preend"),Mp(this,function(){eP(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),Mp(t,e)})})};br.prototype.end=function(e,t,r){return typeof e=="function"?this.end(null,null,e):typeof t=="function"?this.end(e,null,t):(this._ended=!0,e&&this.write(e),!this._writableState.ending&&!this._writableState.destroyed&&this.write(x3),Hh.Writable.prototype.end.call(this,r))};var Qv=br,Ad,hy;function cy(){if(hy)return Ad;hy=1;const{Buffer:e}=ke,t=vu.Transform,r=Qv;let i,a,n;function u(){const S=new t;return S._write=function(R,C,P){i.send({data:R.buffer,success:function(){P()},fail:function(k){P(new Error(k))}})},S._flush=function(C){i.close({success:function(){C()}})},S}function c(S){S.hostname||(S.hostname="localhost"),S.path||(S.path="/"),S.wsOptions||(S.wsOptions={})}function d(S,R){const C=S.protocol==="wxs"?"wss":"ws";let P=C+"://"+S.hostname+S.path;return S.port&&S.port!==80&&S.port!==443&&(P=C+"://"+S.hostname+":"+S.port+S.path),typeof S.transformWsUrl=="function"&&(P=S.transformWsUrl(P,S,R)),P}function m(){i.onOpen(function(){n.setReadable(a),n.setWritable(a),n.emit("connect")}),i.onMessage(function(S){let R=S.data;R instanceof ArrayBuffer?R=e.from(R):R=e.from(R,"utf8"),a.push(R)}),i.onClose(function(){n.end(),n.destroy()}),i.onError(function(S){n.destroy(new Error(S.errMsg))})}function M(S,R){if(R.hostname=R.hostname||R.host,!R.hostname)throw new Error("Could not determine host. Specify host manually.");const C=R.protocolId==="MQIsdp"&&R.protocolVersion===3?"mqttv3.1":"mqtt";c(R);const P=d(R,S);i=wx.connectSocket({url:P,protocols:[C]}),a=u(),n=r.obj(),n._destroy=function(L,I){i.close({success:function(){I&&I(L)}})};const k=n.destroy;return n.destroy=function(){n.destroy=k;const L=this;setTimeout(function(){i.close({fail:function(){L._destroy(new Error)}})},0)}.bind(n),m(),n}return Ad=M,Ad}var Td,dy;function py(){if(dy)return Td;dy=1;const{Buffer:e}=ke,t=vu.Transform,r=Qv;let i,a,n,u=!1;function c(){const R=new t;return R._write=function(C,P,k){i.sendSocketMessage({data:C.buffer,success:function(){k()},fail:function(){k(new Error)}})},R._flush=function(P){i.closeSocket({success:function(){P()}})},R}function d(R){R.hostname||(R.hostname="localhost"),R.path||(R.path="/"),R.wsOptions||(R.wsOptions={})}function m(R,C){const P=R.protocol==="alis"?"wss":"ws";let k=P+"://"+R.hostname+R.path;return R.port&&R.port!==80&&R.port!==443&&(k=P+"://"+R.hostname+":"+R.port+R.path),typeof R.transformWsUrl=="function"&&(k=R.transformWsUrl(k,R,C)),k}function M(){u||(u=!0,i.onSocketOpen(function(){n.setReadable(a),n.setWritable(a),n.emit("connect")}),i.onSocketMessage(function(R){if(typeof R.data=="string"){const C=e.from(R.data,"base64");a.push(C)}else{const C=new FileReader;C.addEventListener("load",function(){let P=C.result;P instanceof ArrayBuffer?P=e.from(P):P=e.from(P,"utf8"),a.push(P)}),C.readAsArrayBuffer(R.data)}}),i.onSocketClose(function(){n.end(),n.destroy()}),i.onSocketError(function(R){n.destroy(R)}))}function S(R,C){if(C.hostname=C.hostname||C.host,!C.hostname)throw new Error("Could not determine host. Specify host manually.");const P=C.protocolId==="MQIsdp"&&C.protocolVersion===3?"mqttv3.1":"mqtt";d(C);const k=m(C,R);return i=C.my,i.connectSocket({url:k,protocols:P}),a=c(),n=r.obj(),M(),n}return Td=S,Td}var Sp={exports:{}},iP=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")};const{Buffer:af}=ke,R3=iP,$f=zn("mqttjs:ws"),nP=Qv,oP=vu.Transform,aP=["rejectUnauthorized","ca","cert","key","pfx","passphrase"],A3=typeof we<"u"&&we.title==="browser"||typeof __webpack_require__=="function";function T3(e,t){let r=e.protocol+"://"+e.hostname+":"+e.port+e.path;return typeof e.transformWsUrl=="function"&&(r=e.transformWsUrl(r,e,t)),r}function O3(e){const t=e;return e.hostname||(t.hostname="localhost"),e.port||(e.protocol==="wss"?t.port=443:t.port=80),e.path||(t.path="/"),e.wsOptions||(t.wsOptions={}),!A3&&e.protocol==="wss"&&aP.forEach(function(r){Object.prototype.hasOwnProperty.call(e,r)&&!Object.prototype.hasOwnProperty.call(e.wsOptions,r)&&(t.wsOptions[r]=e[r])}),t}function sP(e){const t=O3(e);if(t.hostname||(t.hostname=t.host),!t.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");const r=new URL(document.URL);t.hostname=r.hostname,t.port||(t.port=r.port)}return t.objectMode===void 0&&(t.objectMode=!(t.binary===!0||t.binary===void 0)),t}function fP(e,t,r){$f("createWebSocket"),$f("protocol: "+r.protocolId+" "+r.protocolVersion);const i=r.protocolId==="MQIsdp"&&r.protocolVersion===3?"mqttv3.1":"mqtt";return $f("creating new Websocket for url: "+t+" and protocol: "+i),new R3(t,[i],r.wsOptions)}function uP(e,t){const r=t.protocolId==="MQIsdp"&&t.protocolVersion===3?"mqttv3.1":"mqtt",i=T3(t,e),a=new WebSocket(i,[r]);return a.binaryType="arraybuffer",a}function lP(e,t){$f("streamBuilder");const r=O3(t),i=T3(r,e),a=fP(e,i,r),n=R3.createWebSocketStream(a,r.wsOptions);return n.url=i,a.on("close",()=>{n.destroy()}),n}function hP(e,t){$f("browserStreamBuilder");let r;const a=sP(t).browserBufferSize||1024*512,n=t.browserBufferTimeout||1e3,u=!t.objectMode,c=uP(e,t),d=M(t,L,I);t.objectMode||(d._writev=k),d.on("close",()=>{c.close()});const m=typeof c.addEventListener<"u";c.readyState===c.OPEN?r=d:(r=r=nP(void 0,void 0,t),t.objectMode||(r._writev=k),m?c.addEventListener("open",S):c.onopen=S),r.socket=c,m?(c.addEventListener("close",R),c.addEventListener("error",C),c.addEventListener("message",P)):(c.onclose=R,c.onerror=C,c.onmessage=P);function M(B,H,F){const W=new oP({objectModeMode:B.objectMode});return W._write=H,W._flush=F,W}function S(){r.setReadable(d),r.setWritable(d),r.emit("connect")}function R(){r.end(),r.destroy()}function C(B){r.destroy(B)}function P(B){let H=B.data;H instanceof ArrayBuffer?H=af.from(H):H=af.from(H,"utf8"),d.push(H)}function k(B,H){const F=new Array(B.length);for(let W=0;W<B.length;W++)typeof B[W].chunk=="string"?F[W]=af.from(B[W],"utf8"):F[W]=B[W].chunk;this._write(af.concat(F),"binary",H)}function L(B,H,F){c.bufferedAmount>a&&setTimeout(L,n,B,H,F),u&&typeof B=="string"&&(B=af.from(B,"utf8"));try{c.send(B)}catch(W){return F(W)}F()}function I(B){c.close(),B()}return r}A3?Sp.exports=hP:Sp.exports=lP;var I3=Sp.exports;const P3=QO,cP=MM,dP=f3,pP=Fv,vy=zn("mqttjs"),Fr={};typeof we<"u"&&we.title!=="browser"||typeof __webpack_require__!="function"?(Fr.mqtt=X1(),Fr.tcp=X1(),Fr.ssl=bd(),Fr.tls=bd(),Fr.mqtts=bd()):(Fr.wx=cy(),Fr.wxs=cy(),Fr.ali=py(),Fr.alis=py());Fr.ws=I3;Fr.wss=I3;function vP(e){let t;e.auth&&(t=e.auth.match(/^(.+):(.+)$/),t?(e.username=t[1],e.password=t[2]):e.username=e.auth)}function C3(e,t){if(vy("connecting to an MQTT broker..."),typeof e=="object"&&!t&&(t=e,e=null),t=t||{},e){const a=dP.parse(e,!0);if(a.port!=null&&(a.port=Number(a.port)),t=pP(a,t),t.protocol===null)throw new Error("Missing protocol");t.protocol=t.protocol.replace(/:$/,"")}if(vP(t),t.query&&typeof t.query.clientId=="string"&&(t.clientId=t.query.clientId),t.cert&&t.key)if(t.protocol){if(["mqtts","wss","wxs","alis"].indexOf(t.protocol)===-1)switch(t.protocol){case"mqtt":t.protocol="mqtts";break;case"ws":t.protocol="wss";break;case"wx":t.protocol="wxs";break;case"ali":t.protocol="alis";break;default:throw new Error('Unknown protocol for secure connection: "'+t.protocol+'"!')}}else throw new Error("Missing secure protocol key");if(!Fr[t.protocol]){const a=["mqtts","wss"].indexOf(t.protocol)!==-1;t.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter(function(n,u){return a&&u%2===0?!1:typeof Fr[n]=="function"})[0]}if(t.clean===!1&&!t.clientId)throw new Error("Missing clientId for unclean clients");t.protocol&&(t.defaultProtocol=t.protocol);function r(a){return t.servers&&((!a._reconnectCount||a._reconnectCount===t.servers.length)&&(a._reconnectCount=0),t.host=t.servers[a._reconnectCount].host,t.port=t.servers[a._reconnectCount].port,t.protocol=t.servers[a._reconnectCount].protocol?t.servers[a._reconnectCount].protocol:t.defaultProtocol,t.hostname=t.host,a._reconnectCount++),vy("calling streambuilder for",t.protocol),Fr[t.protocol](a,t)}const i=new P3(r,t);return i.on("error",function(){}),i}du.exports=C3;du.exports.connect=C3;du.exports.MqttClient=P3;du.exports.Store=cP;var gP=du.exports;const BV=Lo(gP);function mP(){return B3().__VUE_DEVTOOLS_GLOBAL_HOOK__}function B3(){return typeof navigator<"u"&&typeof window<"u"?window:typeof ho<"u"?ho:{}}const yP=typeof Proxy=="function",bP="devtools-plugin:setup",wP="plugin:settings:set";let ka,xp;function _P(){var e;return ka!==void 0||(typeof window<"u"&&window.performance?(ka=!0,xp=window.performance):typeof ho<"u"&&(!((e=ho.perf_hooks)===null||e===void 0)&&e.performance)?(ka=!0,xp=ho.perf_hooks.performance):ka=!1),ka}function MP(){return _P()?xp.now():Date.now()}class SP{constructor(t,r){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=r;const i={};if(t.settings)for(const u in t.settings){const c=t.settings[u];i[u]=c.defaultValue}const a=`__vue-devtools-plugin-settings__${t.id}`;let n=Object.assign({},i);try{const u=localStorage.getItem(a),c=JSON.parse(u);Object.assign(n,c)}catch{}this.fallbacks={getSettings(){return n},setSettings(u){try{localStorage.setItem(a,JSON.stringify(u))}catch{}n=u},now(){return MP()}},r&&r.on(wP,(u,c)=>{u===this.plugin.id&&this.fallbacks.setSettings(c)}),this.proxiedOn=new Proxy({},{get:(u,c)=>this.target?this.target.on[c]:(...d)=>{this.onQueue.push({method:c,args:d})}}),this.proxiedTarget=new Proxy({},{get:(u,c)=>this.target?this.target[c]:c==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(c)?(...d)=>(this.targetQueue.push({method:c,args:d,resolve:()=>{}}),this.fallbacks[c](...d)):(...d)=>new Promise(m=>{this.targetQueue.push({method:c,args:d,resolve:m})})})}async setRealTarget(t){this.target=t;for(const r of this.onQueue)this.target.on[r.method](...r.args);for(const r of this.targetQueue)r.resolve(await this.target[r.method](...r.args))}}function L3(e,t){const r=e,i=B3(),a=mP(),n=yP&&r.enableEarlyProxy;if(a&&(i.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!n))a.emit(bP,e,t);else{const u=n?new SP(r,a):null;(i.__VUE_DEVTOOLS_PLUGINS__=i.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:r,setupFn:t,proxy:u}),u&&t(u.proxiedTarget)}}/*!
+  * vue-router v4.2.2
+  * (c) 2023 Eduardo San Martin Morote
+  * @license MIT
+  */const Rn=typeof window<"u";function xP(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const jt=Object.assign;function Od(e,t){const r={};for(const i in t){const a=t[i];r[i]=Jr(a)?a.map(e):e(a)}return r}const Df=()=>{},Jr=Array.isArray;function Et(e){const t=Array.from(arguments).slice(1);console.warn.apply(console,["[Vue Router warn]: "+e].concat(t))}const EP=/\/$/,RP=e=>e.replace(EP,"");function Id(e,t,r="/"){let i,a={},n="",u="";const c=t.indexOf("#");let d=t.indexOf("?");return c<d&&c>=0&&(d=-1),d>-1&&(i=t.slice(0,d),n=t.slice(d+1,c>-1?c:t.length),a=e(n)),c>-1&&(i=i||t.slice(0,c),u=t.slice(c,t.length)),i=OP(i??t,r),{fullPath:i+(n&&"?")+n+u,path:i,query:a,hash:u}}function AP(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function gy(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function my(e,t,r){const i=t.matched.length-1,a=r.matched.length-1;return i>-1&&i===a&&Po(t.matched[i],r.matched[a])&&N3(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function Po(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function N3(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!TP(e[r],t[r]))return!1;return!0}function TP(e,t){return Jr(e)?yy(e,t):Jr(t)?yy(t,e):e===t}function yy(e,t){return Jr(t)?e.length===t.length&&e.every((r,i)=>r===t[i]):e.length===1&&e[0]===t}function OP(e,t){if(e.startsWith("/"))return e;if(!t.startsWith("/"))return Et(`Cannot resolve a relative location without an absolute path. Trying to resolve "${e}" from "${t}". It should look like "/${t}".`),e;if(!e)return t;const r=t.split("/"),i=e.split("/"),a=i[i.length-1];(a===".."||a===".")&&i.push("");let n=r.length-1,u,c;for(u=0;u<i.length;u++)if(c=i[u],c!==".")if(c==="..")n>1&&n--;else break;return r.slice(0,n).join("/")+"/"+i.slice(u-(u===i.length?1:0)).join("/")}var ru;(function(e){e.pop="pop",e.push="push"})(ru||(ru={}));var Ff;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ff||(Ff={}));function IP(e){if(!e)if(Rn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),RP(e)}const PP=/^[^#]+#/;function CP(e,t){return e.replace(PP,"#")+t}function BP(e,t){const r=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{behavior:t.behavior,left:i.left-r.left-(t.left||0),top:i.top-r.top-(t.top||0)}}const qh=()=>({left:window.pageXOffset,top:window.pageYOffset});function LP(e){let t;if("el"in e){const r=e.el,i=typeof r=="string"&&r.startsWith("#");if(typeof e.el=="string"&&(!i||!document.getElementById(e.el.slice(1))))try{const n=document.querySelector(e.el);if(i&&n){Et(`The selector "${e.el}" should be passed as "el: document.querySelector('${e.el}')" because it starts with "#".`);return}}catch{Et(`The selector "${e.el}" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);return}const a=typeof r=="string"?i?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!a){Et(`Couldn't find element using selector "${e.el}" returned by scrollBehavior.`);return}t=BP(a,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function by(e,t){return(history.state?history.state.position-t:-1)+e}const Ep=new Map;function NP(e,t){Ep.set(e,t)}function kP(e){const t=Ep.get(e);return Ep.delete(e),t}let $P=()=>location.protocol+"//"+location.host;function k3(e,t){const{pathname:r,search:i,hash:a}=t,n=e.indexOf("#");if(n>-1){let c=a.includes(e.slice(n))?e.slice(n).length:1,d=a.slice(c);return d[0]!=="/"&&(d="/"+d),gy(d,"")}return gy(r,e)+i+a}function DP(e,t,r,i){let a=[],n=[],u=null;const c=({state:R})=>{const C=k3(e,location),P=r.value,k=t.value;let L=0;if(R){if(r.value=C,t.value=R,u&&u===P){u=null;return}L=k?R.position-k.position:0}else i(C);a.forEach(I=>{I(r.value,P,{delta:L,type:ru.pop,direction:L?L>0?Ff.forward:Ff.back:Ff.unknown})})};function d(){u=r.value}function m(R){a.push(R);const C=()=>{const P=a.indexOf(R);P>-1&&a.splice(P,1)};return n.push(C),C}function M(){const{history:R}=window;R.state&&R.replaceState(jt({},R.state,{scroll:qh()}),"")}function S(){for(const R of n)R();n=[],window.removeEventListener("popstate",c),window.removeEventListener("beforeunload",M)}return window.addEventListener("popstate",c),window.addEventListener("beforeunload",M,{passive:!0}),{pauseListeners:d,listen:m,destroy:S}}function wy(e,t,r,i=!1,a=!1){return{back:e,current:t,forward:r,replaced:i,position:window.history.length,scroll:a?qh():null}}function FP(e){const{history:t,location:r}=window,i={value:k3(e,r)},a={value:t.state};a.value||n(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function n(d,m,M){const S=e.indexOf("#"),R=S>-1?(r.host&&document.querySelector("base")?e:e.slice(S))+d:$P()+e+d;try{t[M?"replaceState":"pushState"](m,"",R),a.value=m}catch(C){Et("Error with push/replace State",C),r[M?"replace":"assign"](R)}}function u(d,m){const M=jt({},t.state,wy(a.value.back,d,a.value.forward,!0),m,{position:a.value.position});n(d,M,!0),i.value=d}function c(d,m){const M=jt({},a.value,t.state,{forward:d,scroll:qh()});t.state||Et(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:
+
+history.replaceState(history.state, '', url)
+
+You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`),n(M.current,M,!0);const S=jt({},wy(i.value,d,null),{position:M.position+1},m);n(d,S,!1),i.value=d}return{location:i,state:a,push:c,replace:u}}function jP(e){e=IP(e);const t=FP(e),r=DP(e,t.state,t.location,t.replace);function i(n,u=!0){u||r.pauseListeners(),history.go(n)}const a=jt({location:"",base:e,go:i,createHref:CP.bind(null,e)},t,r);return Object.defineProperty(a,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(a,"state",{enumerable:!0,get:()=>t.state.value}),a}function LV(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),!e.endsWith("#/")&&!e.endsWith("#")&&Et(`A hash base must end with a "#":
+"${e}" should be "${e.replace(/#.*$/,"#")}".`),jP(e)}function UP(e){return typeof e=="string"||e&&typeof e=="object"}function $3(e){return typeof e=="string"||typeof e=="symbol"}const eo={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},D3=Symbol("navigation failure");var _y;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(_y||(_y={}));const HP={[1]({location:e,currentLocation:t}){return`No match for
+ ${JSON.stringify(e)}${t?`
+while being at
+`+JSON.stringify(t):""}`},[2]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${WP(t)}" via a navigation guard.`},[4]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[8]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[16]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function vs(e,t){return jt(new Error(HP[e](t)),{type:e,[D3]:!0},t)}function mn(e,t){return e instanceof Error&&D3 in e&&(t==null||!!(e.type&t))}const qP=["params","query","hash"];function WP(e){if(typeof e=="string")return e;if("path"in e)return e.path;const t={};for(const r of qP)r in e&&(t[r]=e[r]);return JSON.stringify(t,null,2)}const My="[^/]+?",KP={sensitive:!1,strict:!1,start:!0,end:!0},VP=/[.+*?^${}()[\]/\\]/g;function zP(e,t){const r=jt({},KP,t),i=[];let a=r.start?"^":"";const n=[];for(const m of e){const M=m.length?[]:[90];r.strict&&!m.length&&(a+="/");for(let S=0;S<m.length;S++){const R=m[S];let C=40+(r.sensitive?.25:0);if(R.type===0)S||(a+="/"),a+=R.value.replace(VP,"\\$&"),C+=40;else if(R.type===1){const{value:P,repeatable:k,optional:L,regexp:I}=R;n.push({name:P,repeatable:k,optional:L});const B=I||My;if(B!==My){C+=10;try{new RegExp(`(${B})`)}catch(F){throw new Error(`Invalid custom RegExp for param "${P}" (${B}): `+F.message)}}let H=k?`((?:${B})(?:/(?:${B}))*)`:`(${B})`;S||(H=L&&m.length<2?`(?:/${H})`:"/"+H),L&&(H+="?"),a+=H,C+=20,L&&(C+=-8),k&&(C+=-20),B===".*"&&(C+=-50)}M.push(C)}i.push(M)}if(r.strict&&r.end){const m=i.length-1;i[m][i[m].length-1]+=.7000000000000001}r.strict||(a+="/?"),r.end?a+="$":r.strict&&(a+="(?:/|$)");const u=new RegExp(a,r.sensitive?"":"i");function c(m){const M=m.match(u),S={};if(!M)return null;for(let R=1;R<M.length;R++){const C=M[R]||"",P=n[R-1];S[P.name]=C&&P.repeatable?C.split("/"):C}return S}function d(m){let M="",S=!1;for(const R of e){(!S||!M.endsWith("/"))&&(M+="/"),S=!1;for(const C of R)if(C.type===0)M+=C.value;else if(C.type===1){const{value:P,repeatable:k,optional:L}=C,I=P in m?m[P]:"";if(Jr(I)&&!k)throw new Error(`Provided param "${P}" is an array but it is not repeatable (* or + modifiers)`);const B=Jr(I)?I.join("/"):I;if(!B)if(L)R.length<2&&(M.endsWith("/")?M=M.slice(0,-1):S=!0);else throw new Error(`Missing required param "${P}"`);M+=B}}return M||"/"}return{re:u,score:i,keys:n,parse:c,stringify:d}}function GP(e,t){let r=0;for(;r<e.length&&r<t.length;){const i=t[r]-e[r];if(i)return i;r++}return e.length<t.length?e.length===1&&e[0]===40+40?-1:1:e.length>t.length?t.length===1&&t[0]===40+40?1:-1:0}function YP(e,t){let r=0;const i=e.score,a=t.score;for(;r<i.length&&r<a.length;){const n=GP(i[r],a[r]);if(n)return n;r++}if(Math.abs(a.length-i.length)===1){if(Sy(i))return 1;if(Sy(a))return-1}return a.length-i.length}function Sy(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const ZP={type:0,value:""},XP=/[a-zA-Z0-9_]/;function JP(e){if(!e)return[[]];if(e==="/")return[[ZP]];if(!e.startsWith("/"))throw new Error(`Route paths should start with a "/": "${e}" should be "/${e}".`);function t(C){throw new Error(`ERR (${r})/"${m}": ${C}`)}let r=0,i=r;const a=[];let n;function u(){n&&a.push(n),n=[]}let c=0,d,m="",M="";function S(){m&&(r===0?n.push({type:0,value:m}):r===1||r===2||r===3?(n.length>1&&(d==="*"||d==="+")&&t(`A repeatable param (${m}) must be alone in its segment. eg: '/:ids+.`),n.push({type:1,value:m,regexp:M,repeatable:d==="*"||d==="+",optional:d==="*"||d==="?"})):t("Invalid state to consume buffer"),m="")}function R(){m+=d}for(;c<e.length;){if(d=e[c++],d==="\\"&&r!==2){i=r,r=4;continue}switch(r){case 0:d==="/"?(m&&S(),u()):d===":"?(S(),r=1):R();break;case 4:R(),r=i;break;case 1:d==="("?r=2:XP.test(d)?R():(S(),r=0,d!=="*"&&d!=="?"&&d!=="+"&&c--);break;case 2:d===")"?M[M.length-1]=="\\"?M=M.slice(0,-1)+d:r=3:M+=d;break;case 3:S(),r=0,d!=="*"&&d!=="?"&&d!=="+"&&c--,M="";break;default:t("Unknown state");break}}return r===2&&t(`Unfinished custom RegExp for param "${m}"`),S(),u(),a}function QP(e,t,r){const i=zP(JP(e.path),r);{const n=new Set;for(const u of i.keys)n.has(u.name)&&Et(`Found duplicated params with name "${u.name}" for path "${e.path}". Only the last one will be available on "$route.params".`),n.add(u.name)}const a=jt(i,{record:e,parent:t,children:[],alias:[]});return t&&!a.record.aliasOf==!t.record.aliasOf&&t.children.push(a),a}function eC(e,t){const r=[],i=new Map;t=Ry({strict:!1,end:!0,sensitive:!1},t);function a(M){return i.get(M)}function n(M,S,R){const C=!R,P=tC(M);oC(P,S),P.aliasOf=R&&R.record;const k=Ry(t,M),L=[P];if("alias"in M){const H=typeof M.alias=="string"?[M.alias]:M.alias;for(const F of H)L.push(jt({},P,{components:R?R.record.components:P.components,path:F,aliasOf:R?R.record:P}))}let I,B;for(const H of L){const{path:F}=H;if(S&&F[0]!=="/"){const W=S.record.path,Y=W[W.length-1]==="/"?"":"/";H.path=S.record.path+(F&&Y+F)}if(H.path==="*")throw new Error(`Catch all routes ("*") must now be defined using a param with a custom regexp.
+See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.`);if(I=QP(H,S,k),S&&F[0]==="/"&&aC(I,S),R?(R.alias.push(I),nC(R,I)):(B=B||I,B!==I&&B.alias.push(I),C&&M.name&&!Ey(I)&&u(M.name)),P.children){const W=P.children;for(let Y=0;Y<W.length;Y++)n(W[Y],I,R&&R.children[Y])}R=R||I,(I.record.components&&Object.keys(I.record.components).length||I.record.name||I.record.redirect)&&d(I)}return B?()=>{u(B)}:Df}function u(M){if($3(M)){const S=i.get(M);S&&(i.delete(M),r.splice(r.indexOf(S),1),S.children.forEach(u),S.alias.forEach(u))}else{const S=r.indexOf(M);S>-1&&(r.splice(S,1),M.record.name&&i.delete(M.record.name),M.children.forEach(u),M.alias.forEach(u))}}function c(){return r}function d(M){let S=0;for(;S<r.length&&YP(M,r[S])>=0&&(M.record.path!==r[S].record.path||!F3(M,r[S]));)S++;r.splice(S,0,M),M.record.name&&!Ey(M)&&i.set(M.record.name,M)}function m(M,S){let R,C={},P,k;if("name"in M&&M.name){if(R=i.get(M.name),!R)throw vs(1,{location:M});{const B=Object.keys(M.params||{}).filter(H=>!R.keys.find(F=>F.name===H));B.length&&Et(`Discarded invalid param(s) "${B.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`)}k=R.record.name,C=jt(xy(S.params,R.keys.filter(B=>!B.optional).map(B=>B.name)),M.params&&xy(M.params,R.keys.map(B=>B.name))),P=R.stringify(C)}else if("path"in M)P=M.path,P.startsWith("/")||Et(`The Matcher cannot resolve relative paths but received "${P}". Unless you directly called \`matcher.resolve("${P}")\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`),R=r.find(B=>B.re.test(P)),R&&(C=R.parse(P),k=R.record.name);else{if(R=S.name?i.get(S.name):r.find(B=>B.re.test(S.path)),!R)throw vs(1,{location:M,currentLocation:S});k=R.record.name,C=jt({},S.params,M.params),P=R.stringify(C)}const L=[];let I=R;for(;I;)L.unshift(I.record),I=I.parent;return{name:k,path:P,params:C,matched:L,meta:iC(L)}}return e.forEach(M=>n(M)),{addRoute:n,resolve:m,removeRoute:u,getRoutes:c,getRecordMatcher:a}}function xy(e,t){const r={};for(const i of t)i in e&&(r[i]=e[i]);return r}function tC(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:rC(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function rC(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const i in e.components)t[i]=typeof r=="boolean"?r:r[i];return t}function Ey(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function iC(e){return e.reduce((t,r)=>jt(t,r.meta),{})}function Ry(e,t){const r={};for(const i in e)r[i]=i in t?t[i]:e[i];return r}function Rp(e,t){return e.name===t.name&&e.optional===t.optional&&e.repeatable===t.repeatable}function nC(e,t){for(const r of e.keys)if(!r.optional&&!t.keys.find(Rp.bind(null,r)))return Et(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${r.name}"`);for(const r of t.keys)if(!r.optional&&!e.keys.find(Rp.bind(null,r)))return Et(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${r.name}"`)}function oC(e,t){t&&t.record.name&&!e.name&&!e.path&&Et(`The route named "${String(t.record.name)}" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`)}function aC(e,t){for(const r of t.keys)if(!e.keys.find(Rp.bind(null,r)))return Et(`Absolute path "${e.record.path}" must have the exact same param named "${r.name}" as its parent "${t.record.path}".`)}function F3(e,t){return t.children.some(r=>r===e||F3(e,r))}const j3=/#/g,sC=/&/g,fC=/\//g,uC=/=/g,lC=/\?/g,U3=/\+/g,hC=/%5B/g,cC=/%5D/g,H3=/%5E/g,dC=/%60/g,q3=/%7B/g,pC=/%7C/g,W3=/%7D/g,vC=/%20/g;function eg(e){return encodeURI(""+e).replace(pC,"|").replace(hC,"[").replace(cC,"]")}function gC(e){return eg(e).replace(q3,"{").replace(W3,"}").replace(H3,"^")}function Ap(e){return eg(e).replace(U3,"%2B").replace(vC,"+").replace(j3,"%23").replace(sC,"%26").replace(dC,"`").replace(q3,"{").replace(W3,"}").replace(H3,"^")}function mC(e){return Ap(e).replace(uC,"%3D")}function yC(e){return eg(e).replace(j3,"%23").replace(lC,"%3F")}function bC(e){return e==null?"":yC(e).replace(fC,"%2F")}function iu(e){try{return decodeURIComponent(""+e)}catch{Et(`Error decoding "${e}". Using original value`)}return""+e}function wC(e){const t={};if(e===""||e==="?")return t;const i=(e[0]==="?"?e.slice(1):e).split("&");for(let a=0;a<i.length;++a){const n=i[a].replace(U3," "),u=n.indexOf("="),c=iu(u<0?n:n.slice(0,u)),d=u<0?null:iu(n.slice(u+1));if(c in t){let m=t[c];Jr(m)||(m=t[c]=[m]),m.push(d)}else t[c]=d}return t}function Ay(e){let t="";for(let r in e){const i=e[r];if(r=mC(r),i==null){i!==void 0&&(t+=(t.length?"&":"")+r);continue}(Jr(i)?i.map(n=>n&&Ap(n)):[i&&Ap(i)]).forEach(n=>{n!==void 0&&(t+=(t.length?"&":"")+r,n!=null&&(t+="="+n))})}return t}function _C(e){const t={};for(const r in e){const i=e[r];i!==void 0&&(t[r]=Jr(i)?i.map(a=>a==null?null:""+a):i==null?i:""+i)}return t}const MC=Symbol("router view location matched"),Ty=Symbol("router view depth"),tg=Symbol("router"),K3=Symbol("route location"),Tp=Symbol("router view location");function sf(){let e=[];function t(i){return e.push(i),()=>{const a=e.indexOf(i);a>-1&&e.splice(a,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function oo(e,t,r,i,a){const n=i&&(i.enterCallbacks[a]=i.enterCallbacks[a]||[]);return()=>new Promise((u,c)=>{const d=S=>{S===!1?c(vs(4,{from:r,to:t})):S instanceof Error?c(S):UP(S)?c(vs(2,{from:t,to:S})):(n&&i.enterCallbacks[a]===n&&typeof S=="function"&&n.push(S),u())},m=e.call(i&&i.instances[a],t,r,SC(d,t,r));let M=Promise.resolve(m);if(e.length<3&&(M=M.then(d)),e.length>2){const S=`The "next" callback was never called inside of ${e.name?'"'+e.name+'"':""}:
+${e.toString()}
+. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`;if(typeof m=="object"&&"then"in m)M=M.then(R=>d._called?R:(Et(S),Promise.reject(new Error("Invalid navigation guard"))));else if(m!==void 0&&!d._called){Et(S),c(new Error("Invalid navigation guard"));return}}M.catch(S=>c(S))})}function SC(e,t,r){let i=0;return function(){i++===1&&Et(`The "next" callback was called more than once in one navigation guard when going from "${r.fullPath}" to "${t.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`),e._called=!0,i===1&&e.apply(null,arguments)}}function Pd(e,t,r,i){const a=[];for(const n of e){!n.components&&!n.children.length&&Et(`Record with path "${n.path}" is either missing a "component(s)" or "children" property.`);for(const u in n.components){let c=n.components[u];{if(!c||typeof c!="object"&&typeof c!="function")throw Et(`Component "${u}" in record with path "${n.path}" is not a valid component. Received "${String(c)}".`),new Error("Invalid route component");if("then"in c){Et(`Component "${u}" in record with path "${n.path}" is a Promise instead of a function that returns a Promise. Did you write "import('./MyPage.vue')" instead of "() => import('./MyPage.vue')" ? This will break in production if not fixed.`);const d=c;c=()=>d}else c.__asyncLoader&&!c.__warnedDefineAsync&&(c.__warnedDefineAsync=!0,Et(`Component "${u}" in record with path "${n.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`))}if(!(t!=="beforeRouteEnter"&&!n.instances[u]))if(xC(c)){const m=(c.__vccOpts||c)[t];m&&a.push(oo(m,r,i,n,u))}else{let d=c();"catch"in d||(Et(`Component "${u}" in record with path "${n.path}" is a function that does not return a Promise. If you were passing a functional component, make sure to add a "displayName" to the component. This will break in production if not fixed.`),d=Promise.resolve(d)),a.push(()=>d.then(m=>{if(!m)return Promise.reject(new Error(`Couldn't resolve component "${u}" at "${n.path}"`));const M=xP(m)?m.default:m;n.components[u]=M;const R=(M.__vccOpts||M)[t];return R&&oo(R,r,i,n,u)()}))}}}return a}function xC(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Oy(e){const t=tn(tg),r=tn(K3),i=Qt(()=>t.resolve(vo(e.to))),a=Qt(()=>{const{matched:d}=i.value,{length:m}=d,M=d[m-1],S=r.matched;if(!M||!S.length)return-1;const R=S.findIndex(Po.bind(null,M));if(R>-1)return R;const C=Iy(d[m-2]);return m>1&&Iy(M)===C&&S[S.length-1].path!==C?S.findIndex(Po.bind(null,d[m-2])):R}),n=Qt(()=>a.value>-1&&TC(r.params,i.value.params)),u=Qt(()=>a.value>-1&&a.value===r.matched.length-1&&N3(r.params,i.value.params));function c(d={}){return AC(d)?t[vo(e.replace)?"replace":"push"](vo(e.to)).catch(Df):Promise.resolve()}if(Rn){const d=Fi();if(d){const m={route:i.value,isActive:n.value,isExactActive:u.value};d.__vrl_devtools=d.__vrl_devtools||[],d.__vrl_devtools.push(m),R2(()=>{m.route=i.value,m.isActive=n.value,m.isExactActive=u.value},{flush:"post"})}}return{route:i,href:Qt(()=>i.value.href),isActive:n,isExactActive:u,navigate:c}}const EC=Bs({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Oy,setup(e,{slots:t}){const r=No(Oy(e)),{options:i}=tn(tg),a=Qt(()=>({[Py(e.activeClass,i.linkActiveClass,"router-link-active")]:r.isActive,[Py(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const n=t.default&&t.default(r);return e.custom?n:Eh("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:a.value},n)}}}),RC=EC;function AC(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function TC(e,t){for(const r in t){const i=t[r],a=e[r];if(typeof i=="string"){if(i!==a)return!1}else if(!Jr(a)||a.length!==i.length||i.some((n,u)=>n!==a[u]))return!1}return!0}function Iy(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Py=(e,t,r)=>e??t??r,OC=Bs({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){PC();const i=tn(Tp),a=Qt(()=>e.route||i.value),n=tn(Ty,0),u=Qt(()=>{let m=vo(n);const{matched:M}=a.value;let S;for(;(S=M[m])&&!S.components;)m++;return m}),c=Qt(()=>a.value.matched[u.value]);Cf(Ty,Qt(()=>u.value+1)),Cf(MC,c),Cf(Tp,a);const d=mr();return lr(()=>[d.value,c.value,e.name],([m,M,S],[R,C,P])=>{M&&(M.instances[S]=m,C&&C!==M&&m&&m===R&&(M.leaveGuards.size||(M.leaveGuards=C.leaveGuards),M.updateGuards.size||(M.updateGuards=C.updateGuards))),m&&M&&(!C||!Po(M,C)||!R)&&(M.enterCallbacks[S]||[]).forEach(k=>k(m))},{flush:"post"}),()=>{const m=a.value,M=e.name,S=c.value,R=S&&S.components[M];if(!R)return Cy(r.default,{Component:R,route:m});const C=S.props[M],P=C?C===!0?m.params:typeof C=="function"?C(m):C:null,L=Eh(R,jt({},P,t,{onVnodeUnmounted:I=>{I.component.isUnmounted&&(S.instances[M]=null)},ref:d}));if(Rn&&L.ref){const I={depth:u.value,name:S.name,path:S.path,meta:S.meta};(Jr(L.ref)?L.ref.map(H=>H.i):[L.ref.i]).forEach(H=>{H.__vrv_devtools=I})}return Cy(r.default,{Component:L,route:m})||L}}});function Cy(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const IC=OC;function PC(){const e=Fi(),t=e.parent&&e.parent.type.name,r=e.parent&&e.parent.subTree&&e.parent.subTree.type;if(t&&(t==="KeepAlive"||t.includes("Transition"))&&typeof r=="object"&&r.name==="RouterView"){const i=t==="KeepAlive"?"keep-alive":"transition";Et(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.
+Use slot props instead:
+
+<router-view v-slot="{ Component }">
+  <${i}>
+    <component :is="Component" />
+  </${i}>
+</router-view>`)}}function ff(e,t){const r=jt({},e,{matched:e.matched.map(i=>jC(i,["instances","children","aliasOf"]))});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:r}}}function Gu(e){return{_custom:{display:e}}}let CC=0;function BC(e,t,r){if(t.__hasDevtools)return;t.__hasDevtools=!0;const i=CC++;L3({id:"org.vuejs.router"+(i?"."+i:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:e},a=>{typeof a.now!="function"&&console.warn("[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),a.on.inspectComponent((M,S)=>{M.instanceData&&M.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:ff(t.currentRoute.value,"Current Route")})}),a.on.visitComponentTree(({treeNode:M,componentInstance:S})=>{if(S.__vrv_devtools){const R=S.__vrv_devtools;M.tags.push({label:(R.name?`${R.name.toString()}: `:"")+R.path,textColor:0,tooltip:"This component is rendered by &lt;router-view&gt;",backgroundColor:V3})}Jr(S.__vrl_devtools)&&(S.__devtoolsApi=a,S.__vrl_devtools.forEach(R=>{let C=Y3,P="";R.isExactActive?(C=G3,P="This is exactly active"):R.isActive&&(C=z3,P="This link is active"),M.tags.push({label:R.route.path,textColor:0,tooltip:P,backgroundColor:C})}))}),lr(t.currentRoute,()=>{d(),a.notifyComponentUpdate(),a.sendInspectorTree(c),a.sendInspectorState(c)});const n="router:navigations:"+i;a.addTimelineLayer({id:n,label:`Router${i?" "+i:""} Navigations`,color:4237508}),t.onError((M,S)=>{a.addTimelineEvent({layerId:n,event:{title:"Error during Navigation",subtitle:S.fullPath,logType:"error",time:a.now(),data:{error:M},groupId:S.meta.__navigationId}})});let u=0;t.beforeEach((M,S)=>{const R={guard:Gu("beforeEach"),from:ff(S,"Current Location during this navigation"),to:ff(M,"Target location")};Object.defineProperty(M.meta,"__navigationId",{value:u++}),a.addTimelineEvent({layerId:n,event:{time:a.now(),title:"Start of navigation",subtitle:M.fullPath,data:R,groupId:M.meta.__navigationId}})}),t.afterEach((M,S,R)=>{const C={guard:Gu("afterEach")};R?(C.failure={_custom:{type:Error,readOnly:!0,display:R?R.message:"",tooltip:"Navigation Failure",value:R}},C.status=Gu("❌")):C.status=Gu("✅"),C.from=ff(S,"Current Location during this navigation"),C.to=ff(M,"Target location"),a.addTimelineEvent({layerId:n,event:{title:"End of navigation",subtitle:M.fullPath,time:a.now(),data:C,logType:R?"warning":"default",groupId:M.meta.__navigationId}})});const c="router-inspector:"+i;a.addInspector({id:c,label:"Routes"+(i?" "+i:""),icon:"book",treeFilterPlaceholder:"Search routes"});function d(){if(!m)return;const M=m;let S=r.getRoutes().filter(R=>!R.parent);S.forEach(J3),M.filter&&(S=S.filter(R=>Op(R,M.filter.toLowerCase()))),S.forEach(R=>X3(R,t.currentRoute.value)),M.rootNodes=S.map(Z3)}let m;a.on.getInspectorTree(M=>{m=M,M.app===e&&M.inspectorId===c&&d()}),a.on.getInspectorState(M=>{if(M.app===e&&M.inspectorId===c){const R=r.getRoutes().find(C=>C.record.__vd_id===M.nodeId);R&&(M.state={options:NC(R)})}}),a.sendInspectorTree(c),a.sendInspectorState(c)})}function LC(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}function NC(e){const{record:t}=e,r=[{editable:!1,key:"path",value:t.path}];return t.name!=null&&r.push({editable:!1,key:"name",value:t.name}),r.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&r.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(i=>`${i.name}${LC(i)}`).join(" "),tooltip:"Param keys",value:e.keys}}}),t.redirect!=null&&r.push({editable:!1,key:"redirect",value:t.redirect}),e.alias.length&&r.push({editable:!1,key:"aliases",value:e.alias.map(i=>i.record.path)}),Object.keys(e.record.meta).length&&r.push({editable:!1,key:"meta",value:e.record.meta}),r.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(i=>i.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),r}const V3=15485081,z3=2450411,G3=8702998,kC=2282478,Y3=16486972,$C=6710886;function Z3(e){const t=[],{record:r}=e;r.name!=null&&t.push({label:String(r.name),textColor:0,backgroundColor:kC}),r.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:Y3}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:V3}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:G3}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:z3}),r.redirect&&t.push({label:typeof r.redirect=="string"?`redirect: ${r.redirect}`:"redirects",textColor:16777215,backgroundColor:$C});let i=r.__vd_id;return i==null&&(i=String(DC++),r.__vd_id=i),{id:i,label:r.path,tags:t,children:e.children.map(Z3)}}let DC=0;const FC=/^\/(.*)\/([a-z]*)$/;function X3(e,t){const r=t.matched.length&&Po(t.matched[t.matched.length-1],e.record);e.__vd_exactActive=e.__vd_active=r,r||(e.__vd_active=t.matched.some(i=>Po(i,e.record))),e.children.forEach(i=>X3(i,t))}function J3(e){e.__vd_match=!1,e.children.forEach(J3)}function Op(e,t){const r=String(e.re).match(FC);if(e.__vd_match=!1,!r||r.length<3)return!1;if(new RegExp(r[1].replace(/\$$/,""),r[2]).test(t))return e.children.forEach(u=>Op(u,t)),e.record.path!=="/"||t==="/"?(e.__vd_match=e.re.test(t),!0):!1;const a=e.record.path.toLowerCase(),n=iu(a);return!t.startsWith("/")&&(n.includes(t)||a.includes(t))||n.startsWith(t)||a.startsWith(t)||e.record.name&&String(e.record.name).includes(t)?!0:e.children.some(u=>Op(u,t))}function jC(e,t){const r={};for(const i in e)t.includes(i)||(r[i]=e[i]);return r}function NV(e){const t=eC(e.routes,e),r=e.parseQuery||wC,i=e.stringifyQuery||Ay,a=e.history;if(!a)throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.');const n=sf(),u=sf(),c=sf(),d=h2(eo);let m=eo;Rn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const M=Od.bind(null,E=>""+E),S=Od.bind(null,bC),R=Od.bind(null,iu);function C(E,U){let K,Z;return $3(E)?(K=t.getRecordMatcher(E),Z=U):Z=E,t.addRoute(Z,K)}function P(E){const U=t.getRecordMatcher(E);U?t.removeRoute(U):Et(`Cannot remove non-existent route "${String(E)}"`)}function k(){return t.getRoutes().map(E=>E.record)}function L(E){return!!t.getRecordMatcher(E)}function I(E,U){if(U=jt({},U||d.value),typeof E=="string"){const q=Id(r,E,U.path),X=t.resolve({path:q.path},U),D=a.createHref(q.fullPath);return D.startsWith("//")?Et(`Location "${E}" resolved to "${D}". A resolved location cannot start with multiple slashes.`):X.matched.length||Et(`No match found for location with path "${E}"`),jt(q,X,{params:R(X.params),hash:iu(q.hash),redirectedFrom:void 0,href:D})}let K;if("path"in E)"params"in E&&!("name"in E)&&Object.keys(E.params).length&&Et(`Path "${E.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`),K=jt({},E,{path:Id(r,E.path,U.path).path});else{const q=jt({},E.params);for(const X in q)q[X]==null&&delete q[X];K=jt({},E,{params:S(q)}),U.params=S(U.params)}const Z=t.resolve(K,U),b=E.hash||"";b&&!b.startsWith("#")&&Et(`A \`hash\` should always start with the character "#". Replace "${b}" with "#${b}".`),Z.params=M(R(Z.params));const y=AP(i,jt({},E,{hash:gC(b),path:Z.path})),O=a.createHref(y);return O.startsWith("//")?Et(`Location "${E}" resolved to "${O}". A resolved location cannot start with multiple slashes.`):Z.matched.length||Et(`No match found for location with path "${"path"in E?E.path:E}"`),jt({fullPath:y,hash:b,query:i===Ay?_C(E.query):E.query||{}},Z,{redirectedFrom:void 0,href:O})}function B(E){return typeof E=="string"?Id(r,E,d.value.path):jt({},E)}function H(E,U){if(m!==E)return vs(8,{from:U,to:E})}function F(E){return ie(E)}function W(E){return F(jt(B(E),{replace:!0}))}function Y(E){const U=E.matched[E.matched.length-1];if(U&&U.redirect){const{redirect:K}=U;let Z=typeof K=="function"?K(E):K;if(typeof Z=="string"&&(Z=Z.includes("?")||Z.includes("#")?Z=B(Z):{path:Z},Z.params={}),!("path"in Z)&&!("name"in Z))throw Et(`Invalid redirect found:
+${JSON.stringify(Z,null,2)}
+ when navigating to "${E.fullPath}". A redirect must contain a name or path. This will break in production.`),new Error("Invalid redirect");return jt({query:E.query,hash:E.hash,params:"path"in Z?{}:E.params},Z)}}function ie(E,U){const K=m=I(E),Z=d.value,b=E.state,y=E.force,O=E.replace===!0,q=Y(K);if(q)return ie(jt(B(q),{state:typeof q=="object"?jt({},b,q.state):b,force:y,replace:O}),U||K);const X=K;X.redirectedFrom=U;let D;return!y&&my(i,Z,K)&&(D=vs(16,{to:X,from:Z}),v(Z,Z,!0,!1)),(D?Promise.resolve(D):oe(X,Z)).catch(N=>mn(N)?mn(N,2)?N:s(N):x(N,X,Z)).then(N=>{if(N){if(mn(N,2))return my(i,I(N.to),X)&&U&&(U._count=U._count?U._count+1:1)>30?(Et(`Detected a possibly infinite redirection in a navigation guard when going from "${Z.fullPath}" to "${X.fullPath}". Aborting to avoid a Stack Overflow.
+ Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`),Promise.reject(new Error("Infinite redirect in navigation guard"))):ie(jt({replace:O},B(N.to),{state:typeof N.to=="object"?jt({},b,N.to.state):b,force:y}),U||X)}else N=o(X,Z,!0,O,b);return _(X,Z,N),N})}function J(E,U){const K=H(E,U);return K?Promise.reject(K):Promise.resolve()}function V(E){const U=G.values().next().value;return U&&typeof U.runWithContext=="function"?U.runWithContext(E):E()}function oe(E,U){let K;const[Z,b,y]=UC(E,U);K=Pd(Z.reverse(),"beforeRouteLeave",E,U);for(const q of Z)q.leaveGuards.forEach(X=>{K.push(oo(X,E,U))});const O=J.bind(null,E,U);return K.push(O),A(K).then(()=>{K=[];for(const q of n.list())K.push(oo(q,E,U));return K.push(O),A(K)}).then(()=>{K=Pd(b,"beforeRouteUpdate",E,U);for(const q of b)q.updateGuards.forEach(X=>{K.push(oo(X,E,U))});return K.push(O),A(K)}).then(()=>{K=[];for(const q of E.matched)if(q.beforeEnter&&!U.matched.includes(q))if(Jr(q.beforeEnter))for(const X of q.beforeEnter)K.push(oo(X,E,U));else K.push(oo(q.beforeEnter,E,U));return K.push(O),A(K)}).then(()=>(E.matched.forEach(q=>q.enterCallbacks={}),K=Pd(y,"beforeRouteEnter",E,U),K.push(O),A(K))).then(()=>{K=[];for(const q of u.list())K.push(oo(q,E,U));return K.push(O),A(K)}).catch(q=>mn(q,8)?q:Promise.reject(q))}function _(E,U,K){for(const Z of c.list())V(()=>Z(E,U,K))}function o(E,U,K,Z,b){const y=H(E,U);if(y)return y;const O=U===eo,q=Rn?history.state:{};K&&(Z||O?a.replace(E.fullPath,jt({scroll:O&&q&&q.scroll},b)):a.push(E.fullPath,b)),d.value=E,v(E,U,K,O),s()}let f;function l(){f||(f=a.listen((E,U,K)=>{if(!ee.listening)return;const Z=I(E),b=Y(Z);if(b){ie(jt(b,{replace:!0}),Z).catch(Df);return}m=Z;const y=d.value;Rn&&NP(by(y.fullPath,K.delta),qh()),oe(Z,y).catch(O=>mn(O,12)?O:mn(O,2)?(ie(O.to,Z).then(q=>{mn(q,20)&&!K.delta&&K.type===ru.pop&&a.go(-1,!1)}).catch(Df),Promise.reject()):(K.delta&&a.go(-K.delta,!1),x(O,Z,y))).then(O=>{O=O||o(Z,y,!1),O&&(K.delta&&!mn(O,8)?a.go(-K.delta,!1):K.type===ru.pop&&mn(O,20)&&a.go(-1,!1)),_(Z,y,O)}).catch(Df)}))}let h=sf(),p=sf(),w;function x(E,U,K){s(E);const Z=p.list();return Z.length?Z.forEach(b=>b(E,U,K)):(Et("uncaught error during route navigation:"),console.error(E)),Promise.reject(E)}function g(){return w&&d.value!==eo?Promise.resolve():new Promise((E,U)=>{h.add([E,U])})}function s(E){return w||(w=!E,l(),h.list().forEach(([U,K])=>E?K(E):U()),h.reset()),E}function v(E,U,K,Z){const{scrollBehavior:b}=e;if(!Rn||!b)return Promise.resolve();const y=!K&&kP(by(E.fullPath,0))||(Z||!K)&&history.state&&history.state.scroll||null;return uo().then(()=>b(E,U,y)).then(O=>O&&LP(O)).catch(O=>x(O,E,U))}const T=E=>a.go(E);let $;const G=new Set,ee={currentRoute:d,listening:!0,addRoute:C,removeRoute:P,hasRoute:L,getRoutes:k,resolve:I,options:e,push:F,replace:W,go:T,back:()=>T(-1),forward:()=>T(1),beforeEach:n.add,beforeResolve:u.add,afterEach:c.add,onError:p.add,isReady:g,install(E){const U=this;E.component("RouterLink",RC),E.component("RouterView",IC),E.config.globalProperties.$router=U,Object.defineProperty(E.config.globalProperties,"$route",{enumerable:!0,get:()=>vo(d)}),Rn&&!$&&d.value===eo&&($=!0,F(a.location).catch(b=>{Et("Unexpected error when starting the router:",b)}));const K={};for(const b in eo)K[b]=Qt(()=>d.value[b]);E.provide(tg,U),E.provide(K3,No(K)),E.provide(Tp,d);const Z=E.unmount;G.add(E),E.unmount=function(){G.delete(E),G.size<1&&(m=eo,f&&f(),f=null,d.value=eo,$=!1,w=!1),Z()},Rn&&BC(E,U,t)}};function A(E){return E.reduce((U,K)=>U.then(()=>V(K)),Promise.resolve())}return ee}function UC(e,t){const r=[],i=[],a=[],n=Math.max(t.matched.length,e.matched.length);for(let u=0;u<n;u++){const c=t.matched[u];c&&(e.matched.find(m=>Po(m,c))?i.push(c):r.push(c));const d=e.matched[u];d&&(t.matched.find(m=>Po(m,d))||a.push(d))}return[r,i,a]}/*!
+ * vuex v4.1.0
+ * (c) 2022 Evan You
+ * @license MIT
+ */var HC="store";function xa(e,t){Object.keys(e).forEach(function(r){return t(e[r],r)})}function qC(e){return e!==null&&typeof e=="object"}function WC(e){return e&&typeof e.then=="function"}function ki(e,t){if(!e)throw new Error("[vuex] "+t)}function KC(e,t){return function(){return e(t)}}function Q3(e,t,r){return t.indexOf(e)<0&&(r&&r.prepend?t.unshift(e):t.push(e)),function(){var i=t.indexOf(e);i>-1&&t.splice(i,1)}}function e6(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var r=e.state;Wh(e,r,[],e._modules.root,!0),rg(e,r,t)}function rg(e,t,r){var i=e._state,a=e._scope;e.getters={},e._makeLocalGettersCache=Object.create(null);var n=e._wrappedGetters,u={},c={},d=Gw(!0);d.run(function(){xa(n,function(m,M){u[M]=KC(m,e),c[M]=Qt(function(){return u[M]()}),Object.defineProperty(e.getters,M,{get:function(){return c[M].value},enumerable:!0})})}),e._state=No({data:t}),e._scope=d,e.strict&&ZC(e),i&&r&&e._withCommit(function(){i.data=null}),a&&a.stop()}function Wh(e,t,r,i,a){var n=!r.length,u=e._modules.getNamespace(r);if(i.namespaced&&(e._modulesNamespaceMap[u]&&console.error("[vuex] duplicate namespace "+u+" for the namespaced module "+r.join("/")),e._modulesNamespaceMap[u]=i),!n&&!a){var c=ig(t,r.slice(0,-1)),d=r[r.length-1];e._withCommit(function(){d in c&&console.warn('[vuex] state field "'+d+'" was overridden by a module with the same name at "'+r.join(".")+'"'),c[d]=i.state})}var m=i.context=VC(e,u,r);i.forEachMutation(function(M,S){var R=u+S;zC(e,R,M,m)}),i.forEachAction(function(M,S){var R=M.root?S:u+S,C=M.handler||M;GC(e,R,C,m)}),i.forEachGetter(function(M,S){var R=u+S;YC(e,R,M,m)}),i.forEachChild(function(M,S){Wh(e,t,r.concat(S),M,a)})}function VC(e,t,r){var i=t==="",a={dispatch:i?e.dispatch:function(n,u,c){var d=Yl(n,u,c),m=d.payload,M=d.options,S=d.type;if((!M||!M.root)&&(S=t+S,!e._actions[S])){console.error("[vuex] unknown local action type: "+d.type+", global type: "+S);return}return e.dispatch(S,m)},commit:i?e.commit:function(n,u,c){var d=Yl(n,u,c),m=d.payload,M=d.options,S=d.type;if((!M||!M.root)&&(S=t+S,!e._mutations[S])){console.error("[vuex] unknown local mutation type: "+d.type+", global type: "+S);return}e.commit(S,m,M)}};return Object.defineProperties(a,{getters:{get:i?function(){return e.getters}:function(){return t6(e,t)}},state:{get:function(){return ig(e.state,r)}}}),a}function t6(e,t){if(!e._makeLocalGettersCache[t]){var r={},i=t.length;Object.keys(e.getters).forEach(function(a){if(a.slice(0,i)===t){var n=a.slice(i);Object.defineProperty(r,n,{get:function(){return e.getters[a]},enumerable:!0})}}),e._makeLocalGettersCache[t]=r}return e._makeLocalGettersCache[t]}function zC(e,t,r,i){var a=e._mutations[t]||(e._mutations[t]=[]);a.push(function(u){r.call(e,i.state,u)})}function GC(e,t,r,i){var a=e._actions[t]||(e._actions[t]=[]);a.push(function(u){var c=r.call(e,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:e.getters,rootState:e.state},u);return WC(c)||(c=Promise.resolve(c)),e._devtoolHook?c.catch(function(d){throw e._devtoolHook.emit("vuex:error",d),d}):c})}function YC(e,t,r,i){if(e._wrappedGetters[t]){console.error("[vuex] duplicate getter key: "+t);return}e._wrappedGetters[t]=function(n){return r(i.state,i.getters,n.state,n.getters)}}function ZC(e){lr(function(){return e._state.data},function(){ki(e._committing,"do not mutate vuex store state outside mutation handlers.")},{deep:!0,flush:"sync"})}function ig(e,t){return t.reduce(function(r,i){return r[i]},e)}function Yl(e,t,r){return qC(e)&&e.type&&(r=t,t=e,e=e.type),ki(typeof e=="string","expects string as the type, but found "+typeof e+"."),{type:e,payload:t,options:r}}var XC="vuex bindings",By="vuex:mutations",Cd="vuex:actions",$a="vuex",JC=0;function QC(e,t){L3({id:"org.vuejs.vuex",app:e,label:"Vuex",homepage:"https://next.vuex.vuejs.org/",logo:"https://vuejs.org/images/icons/favicon-96x96.png",packageName:"vuex",componentStateTypes:[XC]},function(r){r.addTimelineLayer({id:By,label:"Vuex Mutations",color:Ly}),r.addTimelineLayer({id:Cd,label:"Vuex Actions",color:Ly}),r.addInspector({id:$a,label:"Vuex",icon:"storage",treeFilterPlaceholder:"Filter stores..."}),r.on.getInspectorTree(function(i){if(i.app===e&&i.inspectorId===$a)if(i.filter){var a=[];o6(a,t._modules.root,i.filter,""),i.rootNodes=a}else i.rootNodes=[n6(t._modules.root,"")]}),r.on.getInspectorState(function(i){if(i.app===e&&i.inspectorId===$a){var a=i.nodeId;t6(t,a),i.state=rB(nB(t._modules,a),a==="root"?t.getters:t._makeLocalGettersCache,a)}}),r.on.editInspectorState(function(i){if(i.app===e&&i.inspectorId===$a){var a=i.nodeId,n=i.path;a!=="root"&&(n=a.split("/").filter(Boolean).concat(n)),t._withCommit(function(){i.set(t._state.data,n,i.state.value)})}}),t.subscribe(function(i,a){var n={};i.payload&&(n.payload=i.payload),n.state=a,r.notifyComponentUpdate(),r.sendInspectorTree($a),r.sendInspectorState($a),r.addTimelineEvent({layerId:By,event:{time:Date.now(),title:i.type,data:n}})}),t.subscribeAction({before:function(i,a){var n={};i.payload&&(n.payload=i.payload),i._id=JC++,i._time=Date.now(),n.state=a,r.addTimelineEvent({layerId:Cd,event:{time:i._time,title:i.type,groupId:i._id,subtitle:"start",data:n}})},after:function(i,a){var n={},u=Date.now()-i._time;n.duration={_custom:{type:"duration",display:u+"ms",tooltip:"Action duration",value:u}},i.payload&&(n.payload=i.payload),n.state=a,r.addTimelineEvent({layerId:Cd,event:{time:Date.now(),title:i.type,groupId:i._id,subtitle:"end",data:n}})}})})}var Ly=8702998,eB=6710886,tB=16777215,r6={label:"namespaced",textColor:tB,backgroundColor:eB};function i6(e){return e&&e!=="root"?e.split("/").slice(-2,-1)[0]:"Root"}function n6(e,t){return{id:t||"root",label:i6(t),tags:e.namespaced?[r6]:[],children:Object.keys(e._children).map(function(r){return n6(e._children[r],t+r+"/")})}}function o6(e,t,r,i){i.includes(r)&&e.push({id:i||"root",label:i.endsWith("/")?i.slice(0,i.length-1):i||"Root",tags:t.namespaced?[r6]:[]}),Object.keys(t._children).forEach(function(a){o6(e,t._children[a],r,i+a+"/")})}function rB(e,t,r){t=r==="root"?t:t[r];var i=Object.keys(t),a={state:Object.keys(e.state).map(function(u){return{key:u,editable:!0,value:e.state[u]}})};if(i.length){var n=iB(t);a.getters=Object.keys(n).map(function(u){return{key:u.endsWith("/")?i6(u):u,editable:!1,value:Ip(function(){return n[u]})}})}return a}function iB(e){var t={};return Object.keys(e).forEach(function(r){var i=r.split("/");if(i.length>1){var a=t,n=i.pop();i.forEach(function(u){a[u]||(a[u]={_custom:{value:{},display:u,tooltip:"Module",abstract:!0}}),a=a[u]._custom.value}),a[n]=Ip(function(){return e[r]})}else t[r]=Ip(function(){return e[r]})}),t}function nB(e,t){var r=t.split("/").filter(function(i){return i});return r.reduce(function(i,a,n){var u=i[a];if(!u)throw new Error('Missing module "'+a+'" for path "'+t+'".');return n===r.length-1?u:u._children},t==="root"?e:e.root._children)}function Ip(e){try{return e()}catch(t){return t}}var ji=function(t,r){this.runtime=r,this._children=Object.create(null),this._rawModule=t;var i=t.state;this.state=(typeof i=="function"?i():i)||{}},a6={namespaced:{configurable:!0}};a6.namespaced.get=function(){return!!this._rawModule.namespaced};ji.prototype.addChild=function(t,r){this._children[t]=r};ji.prototype.removeChild=function(t){delete this._children[t]};ji.prototype.getChild=function(t){return this._children[t]};ji.prototype.hasChild=function(t){return t in this._children};ji.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)};ji.prototype.forEachChild=function(t){xa(this._children,t)};ji.prototype.forEachGetter=function(t){this._rawModule.getters&&xa(this._rawModule.getters,t)};ji.prototype.forEachAction=function(t){this._rawModule.actions&&xa(this._rawModule.actions,t)};ji.prototype.forEachMutation=function(t){this._rawModule.mutations&&xa(this._rawModule.mutations,t)};Object.defineProperties(ji.prototype,a6);var Ea=function(t){this.register([],t,!1)};Ea.prototype.get=function(t){return t.reduce(function(r,i){return r.getChild(i)},this.root)};Ea.prototype.getNamespace=function(t){var r=this.root;return t.reduce(function(i,a){return r=r.getChild(a),i+(r.namespaced?a+"/":"")},"")};Ea.prototype.update=function(t){s6([],this.root,t)};Ea.prototype.register=function(t,r,i){var a=this;i===void 0&&(i=!0),f6(t,r);var n=new ji(r,i);if(t.length===0)this.root=n;else{var u=this.get(t.slice(0,-1));u.addChild(t[t.length-1],n)}r.modules&&xa(r.modules,function(c,d){a.register(t.concat(d),c,i)})};Ea.prototype.unregister=function(t){var r=this.get(t.slice(0,-1)),i=t[t.length-1],a=r.getChild(i);if(!a){console.warn("[vuex] trying to unregister module '"+i+"', which is not registered");return}a.runtime&&r.removeChild(i)};Ea.prototype.isRegistered=function(t){var r=this.get(t.slice(0,-1)),i=t[t.length-1];return r?r.hasChild(i):!1};function s6(e,t,r){if(f6(e,r),t.update(r),r.modules)for(var i in r.modules){if(!t.getChild(i)){console.warn("[vuex] trying to add a new module '"+i+"' on hot reloading, manual reload is needed");return}s6(e.concat(i),t.getChild(i),r.modules[i])}}var Ny={assert:function(e){return typeof e=="function"},expected:"function"},oB={assert:function(e){return typeof e=="function"||typeof e=="object"&&typeof e.handler=="function"},expected:'function or object with "handler" function'},ky={getters:Ny,mutations:Ny,actions:oB};function f6(e,t){Object.keys(ky).forEach(function(r){if(t[r]){var i=ky[r];xa(t[r],function(a,n){ki(i.assert(a),aB(e,r,n,a,i.expected))})}})}function aB(e,t,r,i,a){var n=t+" should be "+a+' but "'+t+"."+r+'"';return e.length>0&&(n+=' in module "'+e.join(".")+'"'),n+=" is "+JSON.stringify(i)+".",n}function kV(e){return new Gr(e)}var Gr=function e(t){var r=this;t===void 0&&(t={}),ki(typeof Promise<"u","vuex requires a Promise polyfill in this browser."),ki(this instanceof e,"store must be called with the new operator.");var i=t.plugins;i===void 0&&(i=[]);var a=t.strict;a===void 0&&(a=!1);var n=t.devtools;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new Ea(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._makeLocalGettersCache=Object.create(null),this._scope=null,this._devtools=n;var u=this,c=this,d=c.dispatch,m=c.commit;this.dispatch=function(R,C){return d.call(u,R,C)},this.commit=function(R,C,P){return m.call(u,R,C,P)},this.strict=a;var M=this._modules.root.state;Wh(this,M,[],this._modules.root),rg(this,M),i.forEach(function(S){return S(r)})},ng={state:{configurable:!0}};Gr.prototype.install=function(t,r){t.provide(r||HC,this),t.config.globalProperties.$store=this;var i=this._devtools!==void 0?this._devtools:!0;i&&QC(t,this)};ng.state.get=function(){return this._state.data};ng.state.set=function(e){ki(!1,"use store.replaceState() to explicit replace store state.")};Gr.prototype.commit=function(t,r,i){var a=this,n=Yl(t,r,i),u=n.type,c=n.payload,d=n.options,m={type:u,payload:c},M=this._mutations[u];if(!M){console.error("[vuex] unknown mutation type: "+u);return}this._withCommit(function(){M.forEach(function(R){R(c)})}),this._subscribers.slice().forEach(function(S){return S(m,a.state)}),d&&d.silent&&console.warn("[vuex] mutation type: "+u+". Silent option has been removed. Use the filter functionality in the vue-devtools")};Gr.prototype.dispatch=function(t,r){var i=this,a=Yl(t,r),n=a.type,u=a.payload,c={type:n,payload:u},d=this._actions[n];if(!d){console.error("[vuex] unknown action type: "+n);return}try{this._actionSubscribers.slice().filter(function(M){return M.before}).forEach(function(M){return M.before(c,i.state)})}catch(M){console.warn("[vuex] error in before action subscribers: "),console.error(M)}var m=d.length>1?Promise.all(d.map(function(M){return M(u)})):d[0](u);return new Promise(function(M,S){m.then(function(R){try{i._actionSubscribers.filter(function(C){return C.after}).forEach(function(C){return C.after(c,i.state)})}catch(C){console.warn("[vuex] error in after action subscribers: "),console.error(C)}M(R)},function(R){try{i._actionSubscribers.filter(function(C){return C.error}).forEach(function(C){return C.error(c,i.state,R)})}catch(C){console.warn("[vuex] error in error action subscribers: "),console.error(C)}S(R)})})};Gr.prototype.subscribe=function(t,r){return Q3(t,this._subscribers,r)};Gr.prototype.subscribeAction=function(t,r){var i=typeof t=="function"?{before:t}:t;return Q3(i,this._actionSubscribers,r)};Gr.prototype.watch=function(t,r,i){var a=this;return ki(typeof t=="function","store.watch only accepts a function."),lr(function(){return t(a.state,a.getters)},r,Object.assign({},i))};Gr.prototype.replaceState=function(t){var r=this;this._withCommit(function(){r._state.data=t})};Gr.prototype.registerModule=function(t,r,i){i===void 0&&(i={}),typeof t=="string"&&(t=[t]),ki(Array.isArray(t),"module path must be a string or an Array."),ki(t.length>0,"cannot register the root module by using registerModule."),this._modules.register(t,r),Wh(this,this.state,t,this._modules.get(t),i.preserveState),rg(this,this.state)};Gr.prototype.unregisterModule=function(t){var r=this;typeof t=="string"&&(t=[t]),ki(Array.isArray(t),"module path must be a string or an Array."),this._modules.unregister(t),this._withCommit(function(){var i=ig(r.state,t.slice(0,-1));delete i[t[t.length-1]]}),e6(this)};Gr.prototype.hasModule=function(t){return typeof t=="string"&&(t=[t]),ki(Array.isArray(t),"module path must be a string or an Array."),this._modules.isRegistered(t)};Gr.prototype.hotUpdate=function(t){this._modules.update(t),e6(this,!0)};Gr.prototype._withCommit=function(t){var r=this._committing;this._committing=!0,t(),this._committing=r};Object.defineProperties(Gr.prototype,ng);function sB(e,t,r){var i=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var n=Array(a);++i<a;)n[i]=e[i+t];return n}var fB=sB,uB=fB;function lB(e,t,r){var i=e.length;return r=r===void 0?i:r,!t&&r>=i?e:uB(e,t,r)}var hB=lB,cB="\\ud800-\\udfff",dB="\\u0300-\\u036f",pB="\\ufe20-\\ufe2f",vB="\\u20d0-\\u20ff",gB=dB+pB+vB,mB="\\ufe0e\\ufe0f",yB="\\u200d",bB=RegExp("["+yB+cB+gB+mB+"]");function wB(e){return bB.test(e)}var u6=wB;function _B(e){return e.split("")}var MB=_B,l6="\\ud800-\\udfff",SB="\\u0300-\\u036f",xB="\\ufe20-\\ufe2f",EB="\\u20d0-\\u20ff",RB=SB+xB+EB,AB="\\ufe0e\\ufe0f",TB="["+l6+"]",Pp="["+RB+"]",Cp="\\ud83c[\\udffb-\\udfff]",OB="(?:"+Pp+"|"+Cp+")",h6="[^"+l6+"]",c6="(?:\\ud83c[\\udde6-\\uddff]){2}",d6="[\\ud800-\\udbff][\\udc00-\\udfff]",IB="\\u200d",p6=OB+"?",v6="["+AB+"]?",PB="(?:"+IB+"(?:"+[h6,c6,d6].join("|")+")"+v6+p6+")*",CB=v6+p6+PB,BB="(?:"+[h6+Pp+"?",Pp,c6,d6,TB].join("|")+")",LB=RegExp(Cp+"(?="+Cp+")|"+BB+CB,"g");function NB(e){return e.match(LB)||[]}var kB=NB,$B=MB,DB=u6,FB=kB;function jB(e){return DB(e)?FB(e):$B(e)}var UB=jB,HB=typeof Ye=="object"&&Ye&&Ye.Object===Object&&Ye,qB=HB,WB=qB,KB=typeof self=="object"&&self&&self.Object===Object&&self,VB=WB||KB||Function("return this")(),zB=VB,GB=zB,YB=GB.Symbol,og=YB;function ZB(e,t){for(var r=-1,i=e==null?0:e.length,a=Array(i);++r<i;)a[r]=t(e[r],r,e);return a}var XB=ZB,JB=Array.isArray,QB=JB,$y=og,g6=Object.prototype,eL=g6.hasOwnProperty,tL=g6.toString,uf=$y?$y.toStringTag:void 0;function rL(e){var t=eL.call(e,uf),r=e[uf];try{e[uf]=void 0;var i=!0}catch{}var a=tL.call(e);return i&&(t?e[uf]=r:delete e[uf]),a}var iL=rL,nL=Object.prototype,oL=nL.toString;function aL(e){return oL.call(e)}var sL=aL,Dy=og,fL=iL,uL=sL,lL="[object Null]",hL="[object Undefined]",Fy=Dy?Dy.toStringTag:void 0;function cL(e){return e==null?e===void 0?hL:lL:Fy&&Fy in Object(e)?fL(e):uL(e)}var dL=cL;function pL(e){return e!=null&&typeof e=="object"}var vL=pL,gL=dL,mL=vL,yL="[object Symbol]";function bL(e){return typeof e=="symbol"||mL(e)&&gL(e)==yL}var wL=bL,jy=og,_L=XB,ML=QB,SL=wL,xL=1/0,Uy=jy?jy.prototype:void 0,Hy=Uy?Uy.toString:void 0;function m6(e){if(typeof e=="string")return e;if(ML(e))return _L(e,m6)+"";if(SL(e))return Hy?Hy.call(e):"";var t=e+"";return t=="0"&&1/e==-xL?"-0":t}var EL=m6,RL=EL;function AL(e){return e==null?"":RL(e)}var Kh=AL,TL=hB,OL=u6,IL=UB,PL=Kh;function CL(e){return function(t){t=PL(t);var r=OL(t)?IL(t):void 0,i=r?r[0]:t.charAt(0),a=r?TL(r,1).join(""):t.slice(1);return i[e]()+a}}var BL=CL,LL=BL,NL=LL("toUpperCase"),y6=NL;const $V=Lo(y6);var kL=Kh,$L=y6;function DL(e){return $L(kL(e).toLowerCase())}var FL=DL;function jL(e,t,r,i){var a=-1,n=e==null?0:e.length;for(i&&n&&(r=e[++a]);++a<n;)r=t(r,e[a],a,e);return r}var UL=jL;function HL(e){return function(t){return e==null?void 0:e[t]}}var qL=HL,WL=qL,KL={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",Ĳ:"IJ",ĳ:"ij",Œ:"Oe",œ:"oe",ŉ:"'n",ſ:"s"},VL=WL(KL),zL=VL,GL=zL,YL=Kh,ZL=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,XL="\\u0300-\\u036f",JL="\\ufe20-\\ufe2f",QL="\\u20d0-\\u20ff",eN=XL+JL+QL,tN="["+eN+"]",rN=RegExp(tN,"g");function iN(e){return e=YL(e),e&&e.replace(ZL,GL).replace(rN,"")}var nN=iN,oN=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function aN(e){return e.match(oN)||[]}var sN=aN,fN=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function uN(e){return fN.test(e)}var lN=uN,b6="\\ud800-\\udfff",hN="\\u0300-\\u036f",cN="\\ufe20-\\ufe2f",dN="\\u20d0-\\u20ff",pN=hN+cN+dN,w6="\\u2700-\\u27bf",_6="a-z\\xdf-\\xf6\\xf8-\\xff",vN="\\xac\\xb1\\xd7\\xf7",gN="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",mN="\\u2000-\\u206f",yN=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",M6="A-Z\\xc0-\\xd6\\xd8-\\xde",bN="\\ufe0e\\ufe0f",S6=vN+gN+mN+yN,x6="['’]",qy="["+S6+"]",wN="["+pN+"]",E6="\\d+",_N="["+w6+"]",R6="["+_6+"]",A6="[^"+b6+S6+E6+w6+_6+M6+"]",MN="\\ud83c[\\udffb-\\udfff]",SN="(?:"+wN+"|"+MN+")",xN="[^"+b6+"]",T6="(?:\\ud83c[\\udde6-\\uddff]){2}",O6="[\\ud800-\\udbff][\\udc00-\\udfff]",qa="["+M6+"]",EN="\\u200d",Wy="(?:"+R6+"|"+A6+")",RN="(?:"+qa+"|"+A6+")",Ky="(?:"+x6+"(?:d|ll|m|re|s|t|ve))?",Vy="(?:"+x6+"(?:D|LL|M|RE|S|T|VE))?",I6=SN+"?",P6="["+bN+"]?",AN="(?:"+EN+"(?:"+[xN,T6,O6].join("|")+")"+P6+I6+")*",TN="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ON="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",IN=P6+I6+AN,PN="(?:"+[_N,T6,O6].join("|")+")"+IN,CN=RegExp([qa+"?"+R6+"+"+Ky+"(?="+[qy,qa,"$"].join("|")+")",RN+"+"+Vy+"(?="+[qy,qa+Wy,"$"].join("|")+")",qa+"?"+Wy+"+"+Ky,qa+"+"+Vy,ON,TN,E6,PN].join("|"),"g");function BN(e){return e.match(CN)||[]}var LN=BN,NN=sN,kN=lN,$N=Kh,DN=LN;function FN(e,t,r){return e=$N(e),t=r?void 0:t,t===void 0?kN(e)?DN(e):NN(e):e.match(t)||[]}var jN=FN,UN=UL,HN=nN,qN=jN,WN="['’]",KN=RegExp(WN,"g");function VN(e){return function(t){return UN(qN(HN(t).replace(KN,"")),e,"")}}var zN=VN,GN=FL,YN=zN,ZN=YN(function(e,t,r){return t=t.toLowerCase(),e+(r?GN(t):t)}),XN=ZN;const DV=Lo(XN);/**!
+ * @fileOverview Kickass library to create and place poppers near their reference elements.
+ * @version 1.16.1
+ * @license
+ * Copyright (c) 2016 Federico Zivolo and contributors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */var bu=typeof window<"u"&&typeof document<"u"&&typeof navigator<"u",JN=function(){for(var e=["Edge","Trident","Firefox"],t=0;t<e.length;t+=1)if(bu&&navigator.userAgent.indexOf(e[t])>=0)return 1;return 0}();function QN(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}function ek(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},JN))}}var tk=bu&&window.Promise,rk=tk?QN:ek;function C6(e){var t={};return e&&t.toString.call(e)==="[object Function]"}function Ra(e,t){if(e.nodeType!==1)return[];var r=e.ownerDocument.defaultView,i=r.getComputedStyle(e,null);return t?i[t]:i}function ag(e){return e.nodeName==="HTML"?e:e.parentNode||e.host}function wu(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=Ra(e),r=t.overflow,i=t.overflowX,a=t.overflowY;return/(auto|scroll|overlay)/.test(r+a+i)?e:wu(ag(e))}function B6(e){return e&&e.referenceNode?e.referenceNode:e}var zy=bu&&!!(window.MSInputMethodContext&&document.documentMode),Gy=bu&&/MSIE 10/.test(navigator.userAgent);function $s(e){return e===11?zy:e===10?Gy:zy||Gy}function gs(e){if(!e)return document.documentElement;for(var t=$s(10)?document.body:null,r=e.offsetParent||null;r===t&&e.nextElementSibling;)r=(e=e.nextElementSibling).offsetParent;var i=r&&r.nodeName;return!i||i==="BODY"||i==="HTML"?e?e.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(r.nodeName)!==-1&&Ra(r,"position")==="static"?gs(r):r}function ik(e){var t=e.nodeName;return t==="BODY"?!1:t==="HTML"||gs(e.firstElementChild)===e}function Bp(e){return e.parentNode!==null?Bp(e.parentNode):e}function Zl(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var r=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=r?e:t,a=r?t:e,n=document.createRange();n.setStart(i,0),n.setEnd(a,0);var u=n.commonAncestorContainer;if(e!==u&&t!==u||i.contains(a))return ik(u)?u:gs(u);var c=Bp(e);return c.host?Zl(c.host,t):Zl(e,Bp(t).host)}function ms(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",r=t==="top"?"scrollTop":"scrollLeft",i=e.nodeName;if(i==="BODY"||i==="HTML"){var a=e.ownerDocument.documentElement,n=e.ownerDocument.scrollingElement||a;return n[r]}return e[r]}function nk(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=ms(t,"top"),a=ms(t,"left"),n=r?-1:1;return e.top+=i*n,e.bottom+=i*n,e.left+=a*n,e.right+=a*n,e}function Yy(e,t){var r=t==="x"?"Left":"Top",i=r==="Left"?"Right":"Bottom";return parseFloat(e["border"+r+"Width"])+parseFloat(e["border"+i+"Width"])}function Zy(e,t,r,i){return Math.max(t["offset"+e],t["scroll"+e],r["client"+e],r["offset"+e],r["scroll"+e],$s(10)?parseInt(r["offset"+e])+parseInt(i["margin"+(e==="Height"?"Top":"Left")])+parseInt(i["margin"+(e==="Height"?"Bottom":"Right")]):0)}function L6(e){var t=e.body,r=e.documentElement,i=$s(10)&&getComputedStyle(r);return{height:Zy("Height",t,r,i),width:Zy("Width",t,r,i)}}var ok=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},ak=function(){function e(t,r){for(var i=0;i<r.length;i++){var a=r[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),ys=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},ci=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e};function Co(e){return ci({},e,{right:e.left+e.width,bottom:e.top+e.height})}function Lp(e){var t={};try{if($s(10)){t=e.getBoundingClientRect();var r=ms(e,"top"),i=ms(e,"left");t.top+=r,t.left+=i,t.bottom+=r,t.right+=i}else t=e.getBoundingClientRect()}catch{}var a={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},n=e.nodeName==="HTML"?L6(e.ownerDocument):{},u=n.width||e.clientWidth||a.width,c=n.height||e.clientHeight||a.height,d=e.offsetWidth-u,m=e.offsetHeight-c;if(d||m){var M=Ra(e);d-=Yy(M,"x"),m-=Yy(M,"y"),a.width-=d,a.height-=m}return Co(a)}function sg(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=$s(10),a=t.nodeName==="HTML",n=Lp(e),u=Lp(t),c=wu(e),d=Ra(t),m=parseFloat(d.borderTopWidth),M=parseFloat(d.borderLeftWidth);r&&a&&(u.top=Math.max(u.top,0),u.left=Math.max(u.left,0));var S=Co({top:n.top-u.top-m,left:n.left-u.left-M,width:n.width,height:n.height});if(S.marginTop=0,S.marginLeft=0,!i&&a){var R=parseFloat(d.marginTop),C=parseFloat(d.marginLeft);S.top-=m-R,S.bottom-=m-R,S.left-=M-C,S.right-=M-C,S.marginTop=R,S.marginLeft=C}return(i&&!r?t.contains(c):t===c&&c.nodeName!=="BODY")&&(S=nk(S,t)),S}function sk(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=e.ownerDocument.documentElement,i=sg(e,r),a=Math.max(r.clientWidth,window.innerWidth||0),n=Math.max(r.clientHeight,window.innerHeight||0),u=t?0:ms(r),c=t?0:ms(r,"left"),d={top:u-i.top+i.marginTop,left:c-i.left+i.marginLeft,width:a,height:n};return Co(d)}function N6(e){var t=e.nodeName;if(t==="BODY"||t==="HTML")return!1;if(Ra(e,"position")==="fixed")return!0;var r=ag(e);return r?N6(r):!1}function k6(e){if(!e||!e.parentElement||$s())return document.documentElement;for(var t=e.parentElement;t&&Ra(t,"transform")==="none";)t=t.parentElement;return t||document.documentElement}function fg(e,t,r,i){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,n={top:0,left:0},u=a?k6(e):Zl(e,B6(t));if(i==="viewport")n=sk(u,a);else{var c=void 0;i==="scrollParent"?(c=wu(ag(t)),c.nodeName==="BODY"&&(c=e.ownerDocument.documentElement)):i==="window"?c=e.ownerDocument.documentElement:c=i;var d=sg(c,u,a);if(c.nodeName==="HTML"&&!N6(u)){var m=L6(e.ownerDocument),M=m.height,S=m.width;n.top+=d.top-d.marginTop,n.bottom=M+d.top,n.left+=d.left-d.marginLeft,n.right=S+d.left}else n=d}r=r||0;var R=typeof r=="number";return n.left+=R?r:r.left||0,n.top+=R?r:r.top||0,n.right-=R?r:r.right||0,n.bottom-=R?r:r.bottom||0,n}function fk(e){var t=e.width,r=e.height;return t*r}function $6(e,t,r,i,a){var n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(e.indexOf("auto")===-1)return e;var u=fg(r,i,n,a),c={top:{width:u.width,height:t.top-u.top},right:{width:u.right-t.right,height:u.height},bottom:{width:u.width,height:u.bottom-t.bottom},left:{width:t.left-u.left,height:u.height}},d=Object.keys(c).map(function(R){return ci({key:R},c[R],{area:fk(c[R])})}).sort(function(R,C){return C.area-R.area}),m=d.filter(function(R){var C=R.width,P=R.height;return C>=r.clientWidth&&P>=r.clientHeight}),M=m.length>0?m[0].key:d[0].key,S=e.split("-")[1];return M+(S?"-"+S:"")}function D6(e,t,r){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,a=i?k6(t):Zl(t,B6(r));return sg(r,a,i)}function F6(e){var t=e.ownerDocument.defaultView,r=t.getComputedStyle(e),i=parseFloat(r.marginTop||0)+parseFloat(r.marginBottom||0),a=parseFloat(r.marginLeft||0)+parseFloat(r.marginRight||0),n={width:e.offsetWidth+a,height:e.offsetHeight+i};return n}function Xl(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(r){return t[r]})}function j6(e,t,r){r=r.split("-")[0];var i=F6(e),a={width:i.width,height:i.height},n=["right","left"].indexOf(r)!==-1,u=n?"top":"left",c=n?"left":"top",d=n?"height":"width",m=n?"width":"height";return a[u]=t[u]+t[d]/2-i[d]/2,r===c?a[c]=t[c]-i[m]:a[c]=t[Xl(c)],a}function _u(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function uk(e,t,r){if(Array.prototype.findIndex)return e.findIndex(function(a){return a[t]===r});var i=_u(e,function(a){return a[t]===r});return e.indexOf(i)}function U6(e,t,r){var i=r===void 0?e:e.slice(0,uk(e,"name",r));return i.forEach(function(a){a.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=a.function||a.fn;a.enabled&&C6(n)&&(t.offsets.popper=Co(t.offsets.popper),t.offsets.reference=Co(t.offsets.reference),t=n(t,a))}),t}function lk(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=D6(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=$6(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=j6(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=U6(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function H6(e,t){return e.some(function(r){var i=r.name,a=r.enabled;return a&&i===t})}function ug(e){for(var t=[!1,"ms","Webkit","Moz","O"],r=e.charAt(0).toUpperCase()+e.slice(1),i=0;i<t.length;i++){var a=t[i],n=a?""+a+r:e;if(typeof document.body.style[n]<"u")return n}return null}function hk(){return this.state.isDestroyed=!0,H6(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[ug("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function q6(e){var t=e.ownerDocument;return t?t.defaultView:window}function W6(e,t,r,i){var a=e.nodeName==="BODY",n=a?e.ownerDocument.defaultView:e;n.addEventListener(t,r,{passive:!0}),a||W6(wu(n.parentNode),t,r,i),i.push(n)}function ck(e,t,r,i){r.updateBound=i,q6(e).addEventListener("resize",r.updateBound,{passive:!0});var a=wu(e);return W6(a,"scroll",r.updateBound,r.scrollParents),r.scrollElement=a,r.eventsEnabled=!0,r}function dk(){this.state.eventsEnabled||(this.state=ck(this.reference,this.options,this.state,this.scheduleUpdate))}function pk(e,t){return q6(e).removeEventListener("resize",t.updateBound),t.scrollParents.forEach(function(r){r.removeEventListener("scroll",t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function vk(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=pk(this.reference,this.state))}function lg(e){return e!==""&&!isNaN(parseFloat(e))&&isFinite(e)}function Np(e,t){Object.keys(t).forEach(function(r){var i="";["width","height","top","right","bottom","left"].indexOf(r)!==-1&&lg(t[r])&&(i="px"),e.style[r]=t[r]+i})}function gk(e,t){Object.keys(t).forEach(function(r){var i=t[r];i!==!1?e.setAttribute(r,t[r]):e.removeAttribute(r)})}function mk(e){return Np(e.instance.popper,e.styles),gk(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&Np(e.arrowElement,e.arrowStyles),e}function yk(e,t,r,i,a){var n=D6(a,t,e,r.positionFixed),u=$6(r.placement,n,t,e,r.modifiers.flip.boundariesElement,r.modifiers.flip.padding);return t.setAttribute("x-placement",u),Np(t,{position:r.positionFixed?"fixed":"absolute"}),r}function bk(e,t){var r=e.offsets,i=r.popper,a=r.reference,n=Math.round,u=Math.floor,c=function(I){return I},d=n(a.width),m=n(i.width),M=["left","right"].indexOf(e.placement)!==-1,S=e.placement.indexOf("-")!==-1,R=d%2===m%2,C=d%2===1&&m%2===1,P=t?M||S||R?n:u:c,k=t?n:c;return{left:P(C&&!S&&t?i.left-1:i.left),top:k(i.top),bottom:k(i.bottom),right:P(i.right)}}var wk=bu&&/Firefox/i.test(navigator.userAgent);function _k(e,t){var r=t.x,i=t.y,a=e.offsets.popper,n=_u(e.instance.modifiers,function(H){return H.name==="applyStyle"}).gpuAcceleration;n!==void 0&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var u=n!==void 0?n:t.gpuAcceleration,c=gs(e.instance.popper),d=Lp(c),m={position:a.position},M=bk(e,window.devicePixelRatio<2||!wk),S=r==="bottom"?"top":"bottom",R=i==="right"?"left":"right",C=ug("transform"),P=void 0,k=void 0;if(S==="bottom"?c.nodeName==="HTML"?k=-c.clientHeight+M.bottom:k=-d.height+M.bottom:k=M.top,R==="right"?c.nodeName==="HTML"?P=-c.clientWidth+M.right:P=-d.width+M.right:P=M.left,u&&C)m[C]="translate3d("+P+"px, "+k+"px, 0)",m[S]=0,m[R]=0,m.willChange="transform";else{var L=S==="bottom"?-1:1,I=R==="right"?-1:1;m[S]=k*L,m[R]=P*I,m.willChange=S+", "+R}var B={"x-placement":e.placement};return e.attributes=ci({},B,e.attributes),e.styles=ci({},m,e.styles),e.arrowStyles=ci({},e.offsets.arrow,e.arrowStyles),e}function K6(e,t,r){var i=_u(e,function(c){var d=c.name;return d===t}),a=!!i&&e.some(function(c){return c.name===r&&c.enabled&&c.order<i.order});if(!a){var n="`"+t+"`",u="`"+r+"`";console.warn(u+" modifier is required by "+n+" modifier in order to work, be sure to include it before "+n+"!")}return a}function Mk(e,t){var r;if(!K6(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if(typeof i=="string"){if(i=e.instance.popper.querySelector(i),!i)return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var a=e.placement.split("-")[0],n=e.offsets,u=n.popper,c=n.reference,d=["left","right"].indexOf(a)!==-1,m=d?"height":"width",M=d?"Top":"Left",S=M.toLowerCase(),R=d?"left":"top",C=d?"bottom":"right",P=F6(i)[m];c[C]-P<u[S]&&(e.offsets.popper[S]-=u[S]-(c[C]-P)),c[S]+P>u[C]&&(e.offsets.popper[S]+=c[S]+P-u[C]),e.offsets.popper=Co(e.offsets.popper);var k=c[S]+c[m]/2-P/2,L=Ra(e.instance.popper),I=parseFloat(L["margin"+M]),B=parseFloat(L["border"+M+"Width"]),H=k-e.offsets.popper[S]-I-B;return H=Math.max(Math.min(u[m]-P,H),0),e.arrowElement=i,e.offsets.arrow=(r={},ys(r,S,Math.round(H)),ys(r,R,""),r),e}function Sk(e){return e==="end"?"start":e==="start"?"end":e}var V6=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Bd=V6.slice(3);function Xy(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=Bd.indexOf(e),i=Bd.slice(r+1).concat(Bd.slice(0,r));return t?i.reverse():i}var Ld={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function xk(e,t){if(H6(e.instance.modifiers,"inner")||e.flipped&&e.placement===e.originalPlacement)return e;var r=fg(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),i=e.placement.split("-")[0],a=Xl(i),n=e.placement.split("-")[1]||"",u=[];switch(t.behavior){case Ld.FLIP:u=[i,a];break;case Ld.CLOCKWISE:u=Xy(i);break;case Ld.COUNTERCLOCKWISE:u=Xy(i,!0);break;default:u=t.behavior}return u.forEach(function(c,d){if(i!==c||u.length===d+1)return e;i=e.placement.split("-")[0],a=Xl(i);var m=e.offsets.popper,M=e.offsets.reference,S=Math.floor,R=i==="left"&&S(m.right)>S(M.left)||i==="right"&&S(m.left)<S(M.right)||i==="top"&&S(m.bottom)>S(M.top)||i==="bottom"&&S(m.top)<S(M.bottom),C=S(m.left)<S(r.left),P=S(m.right)>S(r.right),k=S(m.top)<S(r.top),L=S(m.bottom)>S(r.bottom),I=i==="left"&&C||i==="right"&&P||i==="top"&&k||i==="bottom"&&L,B=["top","bottom"].indexOf(i)!==-1,H=!!t.flipVariations&&(B&&n==="start"&&C||B&&n==="end"&&P||!B&&n==="start"&&k||!B&&n==="end"&&L),F=!!t.flipVariationsByContent&&(B&&n==="start"&&P||B&&n==="end"&&C||!B&&n==="start"&&L||!B&&n==="end"&&k),W=H||F;(R||I||W)&&(e.flipped=!0,(R||I)&&(i=u[d+1]),W&&(n=Sk(n)),e.placement=i+(n?"-"+n:""),e.offsets.popper=ci({},e.offsets.popper,j6(e.instance.popper,e.offsets.reference,e.placement)),e=U6(e.instance.modifiers,e,"flip"))}),e}function Ek(e){var t=e.offsets,r=t.popper,i=t.reference,a=e.placement.split("-")[0],n=Math.floor,u=["top","bottom"].indexOf(a)!==-1,c=u?"right":"bottom",d=u?"left":"top",m=u?"width":"height";return r[c]<n(i[d])&&(e.offsets.popper[d]=n(i[d])-r[m]),r[d]>n(i[c])&&(e.offsets.popper[d]=n(i[c])),e}function Rk(e,t,r,i){var a=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),n=+a[1],u=a[2];if(!n)return e;if(u.indexOf("%")===0){var c=void 0;switch(u){case"%p":c=r;break;case"%":case"%r":default:c=i}var d=Co(c);return d[t]/100*n}else if(u==="vh"||u==="vw"){var m=void 0;return u==="vh"?m=Math.max(document.documentElement.clientHeight,window.innerHeight||0):m=Math.max(document.documentElement.clientWidth,window.innerWidth||0),m/100*n}else return n}function Ak(e,t,r,i){var a=[0,0],n=["right","left"].indexOf(i)!==-1,u=e.split(/(\+|\-)/).map(function(M){return M.trim()}),c=u.indexOf(_u(u,function(M){return M.search(/,|\s/)!==-1}));u[c]&&u[c].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var d=/\s*,\s*|\s+/,m=c!==-1?[u.slice(0,c).concat([u[c].split(d)[0]]),[u[c].split(d)[1]].concat(u.slice(c+1))]:[u];return m=m.map(function(M,S){var R=(S===1?!n:n)?"height":"width",C=!1;return M.reduce(function(P,k){return P[P.length-1]===""&&["+","-"].indexOf(k)!==-1?(P[P.length-1]=k,C=!0,P):C?(P[P.length-1]+=k,C=!1,P):P.concat(k)},[]).map(function(P){return Rk(P,R,t,r)})}),m.forEach(function(M,S){M.forEach(function(R,C){lg(R)&&(a[S]+=R*(M[C-1]==="-"?-1:1))})}),a}function Tk(e,t){var r=t.offset,i=e.placement,a=e.offsets,n=a.popper,u=a.reference,c=i.split("-")[0],d=void 0;return lg(+r)?d=[+r,0]:d=Ak(r,n,u,c),c==="left"?(n.top+=d[0],n.left-=d[1]):c==="right"?(n.top+=d[0],n.left+=d[1]):c==="top"?(n.left+=d[0],n.top-=d[1]):c==="bottom"&&(n.left+=d[0],n.top+=d[1]),e.popper=n,e}function Ok(e,t){var r=t.boundariesElement||gs(e.instance.popper);e.instance.reference===r&&(r=gs(r));var i=ug("transform"),a=e.instance.popper.style,n=a.top,u=a.left,c=a[i];a.top="",a.left="",a[i]="";var d=fg(e.instance.popper,e.instance.reference,t.padding,r,e.positionFixed);a.top=n,a.left=u,a[i]=c,t.boundaries=d;var m=t.priority,M=e.offsets.popper,S={primary:function(C){var P=M[C];return M[C]<d[C]&&!t.escapeWithReference&&(P=Math.max(M[C],d[C])),ys({},C,P)},secondary:function(C){var P=C==="right"?"left":"top",k=M[P];return M[C]>d[C]&&!t.escapeWithReference&&(k=Math.min(M[P],d[C]-(C==="right"?M.width:M.height))),ys({},P,k)}};return m.forEach(function(R){var C=["left","top"].indexOf(R)!==-1?"primary":"secondary";M=ci({},M,S[C](R))}),e.offsets.popper=M,e}function Ik(e){var t=e.placement,r=t.split("-")[0],i=t.split("-")[1];if(i){var a=e.offsets,n=a.reference,u=a.popper,c=["bottom","top"].indexOf(r)!==-1,d=c?"left":"top",m=c?"width":"height",M={start:ys({},d,n[d]),end:ys({},d,n[d]+n[m]-u[m])};e.offsets.popper=ci({},u,M[i])}return e}function Pk(e){if(!K6(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,r=_u(e.instance.modifiers,function(i){return i.name==="preventOverflow"}).boundaries;if(t.bottom<r.top||t.left>r.right||t.top>r.bottom||t.right<r.left){if(e.hide===!0)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(e.hide===!1)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}function Ck(e){var t=e.placement,r=t.split("-")[0],i=e.offsets,a=i.popper,n=i.reference,u=["left","right"].indexOf(r)!==-1,c=["top","left"].indexOf(r)===-1;return a[u?"left":"top"]=n[r]-(c?a[u?"width":"height"]:0),e.placement=Xl(t),e.offsets.popper=Co(a),e}var Bk={shift:{order:100,enabled:!0,fn:Ik},offset:{order:200,enabled:!0,fn:Tk,offset:0},preventOverflow:{order:300,enabled:!0,fn:Ok,priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:Ek},arrow:{order:500,enabled:!0,fn:Mk,element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:xk,behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:Ck},hide:{order:800,enabled:!0,fn:Pk},computeStyle:{order:850,enabled:!0,fn:_k,gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:mk,onLoad:yk,gpuAcceleration:void 0}},Lk={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:Bk},Vh=function(){function e(t,r){var i=this,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};ok(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=rk(this.update.bind(this)),this.options=ci({},e.Defaults,a),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=r&&r.jquery?r[0]:r,this.options.modifiers={},Object.keys(ci({},e.Defaults.modifiers,a.modifiers)).forEach(function(u){i.options.modifiers[u]=ci({},e.Defaults.modifiers[u]||{},a.modifiers?a.modifiers[u]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(u){return ci({name:u},i.options.modifiers[u])}).sort(function(u,c){return u.order-c.order}),this.modifiers.forEach(function(u){u.enabled&&C6(u.onLoad)&&u.onLoad(i.reference,i.popper,i.options,u,i.state)}),this.update();var n=this.options.eventsEnabled;n&&this.enableEventListeners(),this.state.eventsEnabled=n}return ak(e,[{key:"update",value:function(){return lk.call(this)}},{key:"destroy",value:function(){return hk.call(this)}},{key:"enableEventListeners",value:function(){return dk.call(this)}},{key:"disableEventListeners",value:function(){return vk.call(this)}}]),e}();Vh.Utils=(typeof window<"u"?window:ho).PopperUtils;Vh.placements=V6;Vh.Defaults=Lk;const Nk=Object.freeze(Object.defineProperty({__proto__:null,default:Vh},Symbol.toStringTag,{value:"Module"})),FV=tv(Nk);const kk=Bs({name:"my-table",emits:["return-checked-rows","do-search","is-finished","get-now-page","row-clicked","row-toggled"],props:{isLoading:{type:Boolean,require:!0},isReSearch:{type:Boolean,require:!0},hasCheckbox:{type:Boolean,default:!1},checkedReturnType:{type:String,default:"key"},title:{type:String,default:""},isFixedFirstColumn:{type:Boolean,default:!1},columns:{type:Array,default:()=>[]},rows:{type:Array,default:()=>[]},rowClasses:{type:[Array,Function],default:()=>[]},pageSize:{type:Number,default:10},total:{type:Number,default:100},page:{type:Number,default:1},sortable:{type:Object,default:()=>({order:"id",sort:"asc"})},messages:{type:Object,default:()=>({pagingInfo:"Showing {0}-{1} of {2}",pageSizeChangeLabel:"Row count:",gotoPageLabel:"Go to page:",noDataAvailable:"No data"})},isStaticMode:{type:Boolean,default:!1},isSlotMode:{type:Boolean,default:!1},isHidePaging:{type:Boolean,default:!1},pageOptions:{type:Array,default:()=>[{value:10,text:10},{value:25,text:25},{value:50,text:50}]},groupingKey:{type:String,default:""},hasGroupToggle:{type:Boolean,default:!1},groupingDisplay:{type:Function,default:null},maxHeight:{default:"auto"},startCollapsed:{type:Boolean,default:!1},isKeepCollapsed:{type:Boolean,default:!1}},setup(e,{emit:t,slots:r}){let i=mr(null),a=e.pageOptions.length>0?mr(e.pageOptions[0].value):mr(e.pageSize);e.pageOptions.length>0&&e.pageOptions.forEach(oe=>{Object.prototype.hasOwnProperty.call(oe,"value")&&Object.prototype.hasOwnProperty.call(oe,"text")&&e.pageSize==oe.value&&(a.value=oe.value)});const n=No({isSlotMode:e.isSlotMode,isCheckAll:!1,isHidePaging:e.isHidePaging,keyColumn:Qt(()=>{let oe="";return Object.assign(e.columns).forEach(_=>{_.isKey&&(oe=_.field)}),oe}),page:e.page,pageSize:a.value,maxPage:Qt(()=>{if(e.total<=0)return 0;let oe=Math.floor(e.total/n.pageSize);return e.total%n.pageSize>0&&oe++,oe}),offset:Qt(()=>(n.page-1)*n.pageSize+1),limit:Qt(()=>{let oe=n.page*n.pageSize;return e.total>=oe?oe:e.total}),paging:Qt(()=>{let oe=n.page-2<=0?1:n.page-2;n.maxPage-n.page<=2&&(oe=n.maxPage-4),oe=oe<=0?1:oe;let _=[];for(let o=oe;o<=n.maxPage;o++)_.length<5&&_.push(o);return _}),order:e.sortable.order,sort:e.sortable.sort,pageOptions:e.pageOptions}),u=mr([]),c=Qt(()=>{let oe=e.rows;var _=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});let o=n.sort==="desc"?-1:1;oe.sort(function(l,h){return _.compare(l[n.order],h[n.order])*o});let f=null;if(e.groupingKey){let l={};oe.forEach(h=>{l[h[e.groupingKey]]||(l[h[e.groupingKey]]=[]),l[h[e.groupingKey]].push(h)}),f={};for(let h=n.offset-1;h<n.limit;h++)f[oe[h][e.groupingKey]]=l[oe[h][e.groupingKey]]}else{f=[];for(let l=n.offset-1;l<n.limit;l++)f.push(oe[l])}return uo(function(){B()}),f}),d=mr([]);Rv(()=>{d.value=[]}),lr(()=>n.isCheckAll,oe=>{if(e.hasCheckbox){if(u.value=[],oe){let _=e.isStaticMode?e.rows.slice(n.offset-1,n.limit):e.rows;e.checkedReturnType=="row"?u.value=_:_.forEach(o=>{u.value.push(o[n.keyColumn])})}d.value.forEach(_=>{_&&(_.checked=oe)}),t("return-checked-rows",u.value)}}),lr(()=>e.hasCheckbox,oe=>{oe||(n.isCheckAll=!1)});const m=(oe,_)=>{_.stopPropagation();let o=oe[n.keyColumn];if(e.checkedReturnType=="row"&&(o=oe),_.target.checked)u.value.push(o);else{const f=u.value.indexOf(o);f>=0&&u.value.splice(f,1)}u.value.length==e.rows.length?n.isCheckAll=!0:t("return-checked-rows",u.value)},M=()=>{u.value=[],d.value.forEach(oe=>{oe&&oe.checked&&(oe.checked=!1)}),t("return-checked-rows",u.value)},S=oe=>{let _="asc";oe==n.order&&n.sort=="asc"&&(_="desc");let o=(n.page-1)*n.pageSize,f=n.pageSize;n.order=oe,n.sort=_,t("do-search",o,f,oe,_),n.isCheckAll?n.isCheckAll=!1:e.hasCheckbox&&M()},R=(oe,_)=>{n.isCheckAll=!1,e.hasCheckbox&&(u.value=[]);let o=n.order,f=n.sort,l=(oe-1)*n.pageSize,h=n.pageSize;(!e.isReSearch||oe>1||oe==_)&&t("do-search",l,h,o,f)};lr(()=>n.page,R),lr(()=>e.page,oe=>{oe<=1?(n.page=1,t("get-now-page",n.page)):oe>=n.maxPage?(n.page=n.maxPage,t("get-now-page",n.page)):n.page=oe}),lr(()=>n.pageSize,()=>{n.page===1?R(n.page,n.page):(n.page=1,n.isCheckAll=!1)}),lr(()=>e.pageSize,oe=>{n.pageSize=oe});const P=()=>{if(n.page==1)return!1;n.page--},k=oe=>{n.page=oe},L=()=>{if(n.page>=n.maxPage)return!1;n.page++};lr(()=>e.rows,()=>{(e.isReSearch||e.isStaticMode)&&(n.page=1),uo(function(){e.isStaticMode||B()})});const I=(oe,..._)=>oe.replace(/{(\d+)}/g,function(o,f){return typeof _[f]<"u"?_[f]:o}),B=()=>{if(i.value){let oe=i.value.getElementsByClassName("is-rows-el");t("is-finished",oe)}t("get-now-page",n.page)},H=mr({}),F=mr({}),W=mr({}),Y=Qt(()=>{let oe={};return e.rows.forEach(_=>{oe[_[e.groupingKey]]||(oe[_[e.groupingKey]]=[]),oe[_[e.groupingKey]].push(_)}),uo(function(){if(e.startCollapsed||e.isKeepCollapsed){for(const[_,o]of Object.entries(H.value))if(o){let f=!e.startCollapsed;e.isKeepCollapsed&&W.value[_]!==void 0&&(f=!W.value[_]),(f&&o.parentElement.classList.contains("rotated-90")||!f&&!o.parentElement.classList.contains("rotated-90"))&&o.parentElement.classList.toggle("rotated-90"),f||F.value[_].forEach(l=>{l&&l.classList.add("hidden")})}}B()}),oe}),ie=oe=>{let _=H.value[oe];if(_){_.parentElement.classList.toggle("rotated-90");const o=_.parentElement.classList.contains("rotated-90");F.value[oe].forEach(f=>{f&&(o?f.classList.add("hidden"):f.classList.remove("hidden"))}),W.value[oe]=o,t("row-toggled",Y.value[oe],o)}},J=oe=>{oe.target.classList.add("hover")},V=oe=>{oe.target.classList.remove("hover")};return Ns(()=>{uo(()=>{e.rows.length>0&&B()})}),{slots:r,localTable:i,localRows:c,setting:n,rowCheckbox:d,checked:m,clearChecked:M,doSort:S,prevPage:P,movePage:k,nextPage:L,stringFormat:I,toggleButtonRefs:H,groupingRowsRefs:F,groupingRows:Y,toggleGroup:ie,addHoverClassToTr:J,removeHoverClassFromTr:V}}}),Gn=e=>(M2("data-v-30c302e9"),e=e(),S2(),e),$k={class:"vtl vtl-card"},Dk={key:0,class:"vtl-card-title"},Fk={class:"vtl-card-body"},jk={class:"vtl-row"},Uk={key:0,class:"vtl-loading-mask"},Hk=Gn(()=>Je("div",{class:"vtl-loading-content"},[Je("span",{style:{color:"white"}},"Loading...")],-1)),qk=[Hk],Wk={class:"vtl-thead"},Kk={class:"vtl-thead-tr"},Vk={key:0,class:"vtl-thead-th vtl-checkbox-th"},zk=["onClick"],Gk=["set"],Yk={key:0,class:"vtl-tbody-tr vtl-group-tr"},Zk=["colspan"],Xk={class:"flex"},Jk={key:0,class:"animation"},Qk=["onClick"],e$=["innerHTML"],t$=["name","onClick"],r$={key:0,class:"vtl-tbody-td vtl-checkbox-td"},i$=["value","onClick"],n$=["innerHTML"],o$={key:1},a$={key:0},s$={key:1},f$=["set"],u$={key:0,class:"vtl-tbody-tr vtl-group-tr"},l$=["colspan"],h$={class:"flex"},c$={key:0,class:"animation"},d$=["onClick"],p$=["innerHTML"],v$=["name","onClick"],g$={key:0,class:"vtl-tbody-td vtl-checkbox-td"},m$=["value","onClick"],y$=["innerHTML"],b$={key:1},w$={key:0},_$={key:1},M$={key:0,class:"vtl-paging vtl-row"},S$={class:"vtl-paging-info col-sm-12 col-md-4"},x$={role:"status","aria-live":"polite"},E$={class:"vtl-paging-change-div col-sm-12 col-md-4"},R$={class:"vtl-paging-count-label"},A$=["value"],T$={class:"vtl-paging-page-label"},O$=["value"],I$={class:"vtl-paging-pagination-div col-sm-12 col-md-4"},P$={class:"dataTables_paginate"},C$={class:"vtl-paging-pagination-ul vtl-pagination"},B$=Gn(()=>Je("span",{"aria-hidden":"true"},"«",-1)),L$=Gn(()=>Je("span",{class:"sr-only"},"First",-1)),N$=[B$,L$],k$=Gn(()=>Je("span",{"aria-hidden":"true"},"<",-1)),$$=Gn(()=>Je("span",{class:"sr-only"},"Prev",-1)),D$=[k$,$$],F$=["onClick"],j$=Gn(()=>Je("span",{"aria-hidden":"true"},">",-1)),U$=Gn(()=>Je("span",{class:"sr-only"},"Next",-1)),H$=[j$,U$],q$=Gn(()=>Je("span",{"aria-hidden":"true"},"»",-1)),W$=Gn(()=>Je("span",{class:"sr-only"},"Last",-1)),K$=[q$,W$],V$={key:1,class:"vtl-row"},z$={class:"vtl-empty-msg col-sm-12 text-center"};function G$(e,t,r,i,a,n){return tt(),ft("div",$k,[e.title?(tt(),ft("div",Dk,si(e.title),1)):fi("v-if",!0),Je("div",Fk,[Je("div",jk,[Je("div",{class:vr(["col-sm-12",{"fixed-first-column":e.isFixedFirstColumn,"fixed-first-second-column":e.isFixedFirstColumn&&e.hasCheckbox}])},[e.isLoading?(tt(),ft("div",Uk,qk)):fi("v-if",!0),Je("table",{class:"vtl-table vtl-table-hover vtl-table-bordered vtl-table-responsive vtl-table-responsive-sm",ref:"localTable",style:Pn("max-height: "+e.maxHeight+"px;")},[Je("thead",Wk,[Je("tr",Kk,[e.hasCheckbox?(tt(),ft("th",Vk,[Je("div",null,[ol(Je("input",{type:"checkbox",class:"vtl-thead-checkbox","onUpdate:modelValue":t[0]||(t[0]=u=>e.setting.isCheckAll=u)},null,512),[[Ah,e.setting.isCheckAll]])])])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(e.columns,(u,c)=>(tt(),ft("th",{class:vr(["vtl-thead-th",u.headerClasses]),key:c,style:Pn(Object.assign({width:u.width?u.width:"auto"},u.headerStyles))},[Je("div",{class:vr(["vtl-thead-column",{"vtl-sortable":u.sortable,"vtl-both":u.sortable,"vtl-asc":e.setting.order===u.field&&e.setting.sort==="asc","vtl-desc":e.setting.order===u.field&&e.setting.sort==="desc"}]),onClick:Mn(d=>u.sortable?e.doSort(u.field):!1,["prevent"])},si(u.label),11,zk)],6))),128))])]),e.rows.length>0?(tt(),ft(Lt,{key:0},[e.isStaticMode?(tt(),ft("tbody",{key:0,class:"vtl-tbody",set:e.templateRows=e.groupingKey==""?[e.localRows]:e.localRows},[(tt(!0),ft(Lt,null,Ii(e.templateRows,(u,c)=>(tt(),ft(Lt,{key:c},[e.groupingKey!=""?(tt(),ft("tr",Yk,[Je("td",{colspan:e.hasCheckbox?e.columns.length+1:e.columns.length,class:"vtl-tbody-td vtl-group-td"},[Je("div",Xk,[e.hasGroupToggle?(tt(),ft("div",Jk,[Je("a",{ref_for:!0,ref:d=>e.toggleButtonRefs[c]=d,class:"cursor-pointer",onClick:Mn(d=>e.toggleGroup(c),["prevent"])},"▼",8,Qk)])):fi("v-if",!0),Je("div",{class:"ml-2",innerHTML:e.groupingDisplay?e.groupingDisplay(c):c},null,8,e$)])],8,Zk)])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(u,(d,m)=>(tt(),ft("tr",{key:d[e.setting.keyColumn]?d[e.setting.keyColumn]:m,ref_for:!0,ref:M=>{e.groupingRowsRefs[c]||(e.groupingRowsRefs[c]=[]),e.groupingRowsRefs[c][m]=M},name:"vtl-group-"+c,class:vr(["vtl-tbody-tr",typeof e.rowClasses=="function"?e.rowClasses(d):e.rowClasses]),onMouseenter:t[1]||(t[1]=(...M)=>e.addHoverClassToTr&&e.addHoverClassToTr(...M)),onMouseleave:t[2]||(t[2]=(...M)=>e.removeHoverClassFromTr&&e.removeHoverClassFromTr(...M)),onClick:M=>e.$emit("row-clicked",d)},[e.hasCheckbox?(tt(),ft("td",r$,[Je("div",null,[Je("input",{type:"checkbox",class:"vtl-tbody-checkbox",ref_for:!0,ref:M=>{e.rowCheckbox.push(M)},value:d[e.setting.keyColumn],onClick:M=>e.checked(d,M)},null,8,i$)])])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(e.columns,(M,S)=>(tt(),ft("td",{key:S,class:vr(["vtl-tbody-td",M.columnClasses]),style:Pn(M.columnStyles)},[M.display?(tt(),ft("div",{key:0,innerHTML:M.display(d)},null,8,n$)):(tt(),ft("div",o$,[e.setting.isSlotMode&&e.slots[M.field]?(tt(),ft("div",a$,[U0(e.$slots,M.field,{value:d},void 0,!0)])):(tt(),ft("span",s$,si(d[M.field]),1))]))],6))),128))],42,t$))),128))],64))),128))],8,Gk)):(tt(),ft("tbody",{key:1,set:e.templateRows=e.groupingKey==""?[e.rows]:e.groupingRows},[(tt(!0),ft(Lt,null,Ii(e.templateRows,(u,c)=>(tt(),ft(Lt,{key:c},[e.groupingKey!=""?(tt(),ft("tr",u$,[Je("td",{colspan:e.hasCheckbox?e.columns.length+1:e.columns.length,class:"vtl-tbody-td vtl-group-td"},[Je("div",h$,[e.hasGroupToggle?(tt(),ft("div",c$,[Je("a",{ref_for:!0,ref:d=>e.toggleButtonRefs[c]=d,class:"cursor-pointer",onClick:Mn(d=>e.toggleGroup(c),["prevent"])},"▼",8,d$)])):fi("v-if",!0),Je("div",{class:"ml-2",innerHTML:e.groupingDisplay?e.groupingDisplay(c):c},null,8,p$)])],8,l$)])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(u,(d,m)=>(tt(),ft("tr",{ref_for:!0,ref:M=>{e.groupingRowsRefs[c]||(e.groupingRowsRefs[c]=[]),e.groupingRowsRefs[c][m]=M},name:"vtl-group-"+c,key:d[e.setting.keyColumn]?d[e.setting.keyColumn]:m,class:vr(["vtl-tbody-tr",typeof e.rowClasses=="function"?e.rowClasses(d):e.rowClasses]),onMouseenter:t[3]||(t[3]=(...M)=>e.addHoverClassToTr&&e.addHoverClassToTr(...M)),onMouseleave:t[4]||(t[4]=(...M)=>e.removeHoverClassFromTr&&e.removeHoverClassFromTr(...M)),onClick:M=>e.$emit("row-clicked",d)},[e.hasCheckbox?(tt(),ft("td",g$,[Je("div",null,[Je("input",{type:"checkbox",class:"vtl-tbody-checkbox",ref_for:!0,ref:M=>{e.rowCheckbox.push(M)},value:d[e.setting.keyColumn],onClick:M=>e.checked(d,M)},null,8,m$)])])):fi("v-if",!0),(tt(!0),ft(Lt,null,Ii(e.columns,(M,S)=>(tt(),ft("td",{key:S,class:vr(["vtl-tbody-td",M.columnClasses]),style:Pn(M.columnStyles)},[M.display?(tt(),ft("div",{key:0,innerHTML:M.display(d)},null,8,y$)):(tt(),ft("div",b$,[e.setting.isSlotMode&&e.slots[M.field]?(tt(),ft("div",w$,[U0(e.$slots,M.field,{value:d},void 0,!0)])):(tt(),ft("span",_$,si(d[M.field]),1))]))],6))),128))],42,v$))),128))],64))),128))],8,f$))],64)):fi("v-if",!0)],4)],2)]),e.rows.length>0?(tt(),ft("div",M$,[e.setting.isHidePaging?fi("v-if",!0):(tt(),ft(Lt,{key:0},[Je("div",S$,[Je("div",x$,si(e.stringFormat(e.messages.pagingInfo,e.setting.offset,e.setting.limit,e.total)),1)]),Je("div",E$,[Je("span",R$,si(e.messages.pageSizeChangeLabel),1),ol(Je("select",{class:"vtl-paging-count-dropdown","onUpdate:modelValue":t[5]||(t[5]=u=>e.setting.pageSize=u)},[(tt(!0),ft(Lt,null,Ii(e.pageOptions,u=>(tt(),ft("option",{value:u.value,key:u.value},si(u.text),9,A$))),128))],512),[[Fl,e.setting.pageSize]]),Je("span",T$,si(e.messages.gotoPageLabel),1),ol(Je("select",{class:"vtl-paging-page-dropdown","onUpdate:modelValue":t[6]||(t[6]=u=>e.setting.page=u)},[(tt(!0),ft(Lt,null,Ii(e.setting.maxPage,u=>(tt(),ft("option",{key:u,value:parseInt(u)},si(u),9,O$))),128))],512),[[Fl,e.setting.page]])]),Je("div",I$,[Je("div",P$,[Je("ul",C$,[Je("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-first page-item",{disabled:e.setting.page<=1}])},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-first page-link cursor-pointer","aria-label":"Previous",onClick:t[7]||(t[7]=Mn(u=>e.setting.page=1,["prevent"]))},N$)],2),Je("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-prev page-item",{disabled:e.setting.page<=1}])},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-prev page-link cursor-pointer","aria-label":"Previous",onClick:t[8]||(t[8]=Mn((...u)=>e.prevPage&&e.prevPage(...u),["prevent"]))},D$)],2),(tt(!0),ft(Lt,null,Ii(e.setting.paging,u=>(tt(),ft("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-number page-item",{disabled:e.setting.page===u}]),key:u},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-number page-link cursor-pointer",onClick:Mn(c=>e.movePage(u),["prevent"])},si(u),9,F$)],2))),128)),Je("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-next page-item",{disabled:e.setting.page>=e.setting.maxPage}])},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-next page-link cursor-pointer","aria-label":"Next",onClick:t[9]||(t[9]=Mn((...u)=>e.nextPage&&e.nextPage(...u),["prevent"]))},H$)],2),Je("li",{class:vr(["vtl-paging-pagination-page-li vtl-paging-pagination-page-li-last page-item",{disabled:e.setting.page>=e.setting.maxPage}])},[Je("a",{class:"vtl-paging-pagination-page-link vtl-paging-pagination-page-link-last page-link cursor-pointer","aria-label":"Next",onClick:t[10]||(t[10]=Mn(u=>e.setting.page=e.setting.maxPage,["prevent"]))},K$)],2)])])])],64))])):(tt(),ft("div",V$,[Je("div",z$,si(e.messages.noDataAvailable),1)]))])])}const jV=GR(kk,[["render",G$],["__scopeId","data-v-30c302e9"],["__file","/opt/openWB-dev/openwb-ui-settings/node_modules/vue3-table-lite/src/components/TableLite.vue"]]);/*!
+ * @kurkle/color v0.3.2
+ * https://github.com/kurkle/color#readme
+ * (c) 2023 Jukka Kurkela
+ * Released under the MIT License
+ */function Mu(e){return e+.5|0}const lo=(e,t,r)=>Math.max(Math.min(e,r),t);function Sf(e){return lo(Mu(e*2.55),0,255)}function bo(e){return lo(Mu(e*255),0,255)}function An(e){return lo(Mu(e/2.55)/100,0,1)}function Jy(e){return lo(Mu(e*100),0,100)}const oi={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},kp=[..."0123456789ABCDEF"],Y$=e=>kp[e&15],Z$=e=>kp[(e&240)>>4]+kp[e&15],Yu=e=>(e&240)>>4===(e&15),X$=e=>Yu(e.r)&&Yu(e.g)&&Yu(e.b)&&Yu(e.a);function J$(e){var t=e.length,r;return e[0]==="#"&&(t===4||t===5?r={r:255&oi[e[1]]*17,g:255&oi[e[2]]*17,b:255&oi[e[3]]*17,a:t===5?oi[e[4]]*17:255}:(t===7||t===9)&&(r={r:oi[e[1]]<<4|oi[e[2]],g:oi[e[3]]<<4|oi[e[4]],b:oi[e[5]]<<4|oi[e[6]],a:t===9?oi[e[7]]<<4|oi[e[8]]:255})),r}const Q$=(e,t)=>e<255?t(e):"";function eD(e){var t=X$(e)?Y$:Z$;return e?"#"+t(e.r)+t(e.g)+t(e.b)+Q$(e.a,t):void 0}const tD=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function z6(e,t,r){const i=t*Math.min(r,1-r),a=(n,u=(n+e/30)%12)=>r-i*Math.max(Math.min(u-3,9-u,1),-1);return[a(0),a(8),a(4)]}function rD(e,t,r){const i=(a,n=(a+e/60)%6)=>r-r*t*Math.max(Math.min(n,4-n,1),0);return[i(5),i(3),i(1)]}function iD(e,t,r){const i=z6(e,1,.5);let a;for(t+r>1&&(a=1/(t+r),t*=a,r*=a),a=0;a<3;a++)i[a]*=1-t-r,i[a]+=t;return i}function nD(e,t,r,i,a){return e===a?(t-r)/i+(t<r?6:0):t===a?(r-e)/i+2:(e-t)/i+4}function hg(e){const r=e.r/255,i=e.g/255,a=e.b/255,n=Math.max(r,i,a),u=Math.min(r,i,a),c=(n+u)/2;let d,m,M;return n!==u&&(M=n-u,m=c>.5?M/(2-n-u):M/(n+u),d=nD(r,i,a,M,n),d=d*60+.5),[d|0,m||0,c]}function cg(e,t,r,i){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,r,i)).map(bo)}function dg(e,t,r){return cg(z6,e,t,r)}function oD(e,t,r){return cg(iD,e,t,r)}function aD(e,t,r){return cg(rD,e,t,r)}function G6(e){return(e%360+360)%360}function sD(e){const t=tD.exec(e);let r=255,i;if(!t)return;t[5]!==i&&(r=t[6]?Sf(+t[5]):bo(+t[5]));const a=G6(+t[2]),n=+t[3]/100,u=+t[4]/100;return t[1]==="hwb"?i=oD(a,n,u):t[1]==="hsv"?i=aD(a,n,u):i=dg(a,n,u),{r:i[0],g:i[1],b:i[2],a:r}}function fD(e,t){var r=hg(e);r[0]=G6(r[0]+t),r=dg(r),e.r=r[0],e.g=r[1],e.b=r[2]}function uD(e){if(!e)return;const t=hg(e),r=t[0],i=Jy(t[1]),a=Jy(t[2]);return e.a<255?`hsla(${r}, ${i}%, ${a}%, ${An(e.a)})`:`hsl(${r}, ${i}%, ${a}%)`}const Qy={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},eb={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function lD(){const e={},t=Object.keys(eb),r=Object.keys(Qy);let i,a,n,u,c;for(i=0;i<t.length;i++){for(u=c=t[i],a=0;a<r.length;a++)n=r[a],c=c.replace(n,Qy[n]);n=parseInt(eb[u],16),e[c]=[n>>16&255,n>>8&255,n&255]}return e}let Zu;function hD(e){Zu||(Zu=lD(),Zu.transparent=[0,0,0,0]);const t=Zu[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}const cD=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function dD(e){const t=cD.exec(e);let r=255,i,a,n;if(t){if(t[7]!==i){const u=+t[7];r=t[8]?Sf(u):lo(u*255,0,255)}return i=+t[1],a=+t[3],n=+t[5],i=255&(t[2]?Sf(i):lo(i,0,255)),a=255&(t[4]?Sf(a):lo(a,0,255)),n=255&(t[6]?Sf(n):lo(n,0,255)),{r:i,g:a,b:n,a:r}}}function pD(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${An(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}const Nd=e=>e<=.0031308?e*12.92:Math.pow(e,1/2.4)*1.055-.055,Da=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function vD(e,t,r){const i=Da(An(e.r)),a=Da(An(e.g)),n=Da(An(e.b));return{r:bo(Nd(i+r*(Da(An(t.r))-i))),g:bo(Nd(a+r*(Da(An(t.g))-a))),b:bo(Nd(n+r*(Da(An(t.b))-n))),a:e.a+r*(t.a-e.a)}}function Xu(e,t,r){if(e){let i=hg(e);i[t]=Math.max(0,Math.min(i[t]+i[t]*r,t===0?360:1)),i=dg(i),e.r=i[0],e.g=i[1],e.b=i[2]}}function Y6(e,t){return e&&Object.assign(t||{},e)}function tb(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=bo(e[3]))):(t=Y6(e,{r:0,g:0,b:0,a:1}),t.a=bo(t.a)),t}function gD(e){return e.charAt(0)==="r"?dD(e):sD(e)}class $p{constructor(t){if(t instanceof $p)return t;const r=typeof t;let i;r==="object"?i=tb(t):r==="string"&&(i=J$(t)||hD(t)||gD(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=Y6(this._rgb);return t&&(t.a=An(t.a)),t}set rgb(t){this._rgb=tb(t)}rgbString(){return this._valid?pD(this._rgb):void 0}hexString(){return this._valid?eD(this._rgb):void 0}hslString(){return this._valid?uD(this._rgb):void 0}mix(t,r){if(t){const i=this.rgb,a=t.rgb;let n;const u=r===n?.5:r,c=2*u-1,d=i.a-a.a,m=((c*d===-1?c:(c+d)/(1+c*d))+1)/2;n=1-m,i.r=255&m*i.r+n*a.r+.5,i.g=255&m*i.g+n*a.g+.5,i.b=255&m*i.b+n*a.b+.5,i.a=u*i.a+(1-u)*a.a,this.rgb=i}return this}interpolate(t,r){return t&&(this._rgb=vD(this._rgb,t._rgb,r)),this}clone(){return new $p(this.rgb)}alpha(t){return this._rgb.a=bo(t),this}clearer(t){const r=this._rgb;return r.a*=1-t,this}greyscale(){const t=this._rgb,r=Mu(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=r,this}opaquer(t){const r=this._rgb;return r.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xu(this._rgb,2,t),this}darken(t){return Xu(this._rgb,2,-t),this}saturate(t){return Xu(this._rgb,1,t),this}desaturate(t){return Xu(this._rgb,1,-t),this}rotate(t){return fD(this._rgb,t),this}}var Z6={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2016 Jorik Tangelder;
+ * Licensed under the MIT license */(function(e){(function(t,r,i,a){var n=["","webkit","Moz","MS","ms","o"],u=r.createElement("div"),c="function",d=Math.round,m=Math.abs,M=Date.now;function S(re,he,me){return setTimeout(H(re,me),he)}function R(re,he,me){return Array.isArray(re)?(C(re,me[he],me),!0):!1}function C(re,he,me){var Be;if(re)if(re.forEach)re.forEach(he,me);else if(re.length!==a)for(Be=0;Be<re.length;)he.call(me,re[Be],Be,re),Be++;else for(Be in re)re.hasOwnProperty(Be)&&he.call(me,re[Be],Be,re)}function P(re,he,me){var Be="DEPRECATED METHOD: "+he+`
+`+me+` AT 
+`;return function(){var We=new Error("get-stack-trace"),Ge=We&&We.stack?We.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",bt=t.console&&(t.console.warn||t.console.log);return bt&&bt.call(t.console,Be,Ge),re.apply(this,arguments)}}var k;typeof Object.assign!="function"?k=function(he){if(he===a||he===null)throw new TypeError("Cannot convert undefined or null to object");for(var me=Object(he),Be=1;Be<arguments.length;Be++){var We=arguments[Be];if(We!==a&&We!==null)for(var Ge in We)We.hasOwnProperty(Ge)&&(me[Ge]=We[Ge])}return me}:k=Object.assign;var L=P(function(he,me,Be){for(var We=Object.keys(me),Ge=0;Ge<We.length;)(!Be||Be&&he[We[Ge]]===a)&&(he[We[Ge]]=me[We[Ge]]),Ge++;return he},"extend","Use `assign`."),I=P(function(he,me){return L(he,me,!0)},"merge","Use `assign`.");function B(re,he,me){var Be=he.prototype,We;We=re.prototype=Object.create(Be),We.constructor=re,We._super=Be,me&&k(We,me)}function H(re,he){return function(){return re.apply(he,arguments)}}function F(re,he){return typeof re==c?re.apply(he&&he[0]||a,he):re}function W(re,he){return re===a?he:re}function Y(re,he,me){C(oe(he),function(Be){re.addEventListener(Be,me,!1)})}function ie(re,he,me){C(oe(he),function(Be){re.removeEventListener(Be,me,!1)})}function J(re,he){for(;re;){if(re==he)return!0;re=re.parentNode}return!1}function V(re,he){return re.indexOf(he)>-1}function oe(re){return re.trim().split(/\s+/g)}function _(re,he,me){if(re.indexOf&&!me)return re.indexOf(he);for(var Be=0;Be<re.length;){if(me&&re[Be][me]==he||!me&&re[Be]===he)return Be;Be++}return-1}function o(re){return Array.prototype.slice.call(re,0)}function f(re,he,me){for(var Be=[],We=[],Ge=0;Ge<re.length;){var bt=he?re[Ge][he]:re[Ge];_(We,bt)<0&&Be.push(re[Ge]),We[Ge]=bt,Ge++}return me&&(he?Be=Be.sort(function(pr,Pr){return pr[he]>Pr[he]}):Be=Be.sort()),Be}function l(re,he){for(var me,Be,We=he[0].toUpperCase()+he.slice(1),Ge=0;Ge<n.length;){if(me=n[Ge],Be=me?me+We:he,Be in re)return Be;Ge++}return a}var h=1;function p(){return h++}function w(re){var he=re.ownerDocument||re;return he.defaultView||he.parentWindow||t}var x=/mobile|tablet|ip(ad|hone|od)|android/i,g="ontouchstart"in t,s=l(t,"PointerEvent")!==a,v=g&&x.test(navigator.userAgent),T="touch",$="pen",G="mouse",ee="kinect",A=25,E=1,U=2,K=4,Z=8,b=1,y=2,O=4,q=8,X=16,D=y|O,N=q|X,j=D|N,z=["x","y"],se=["clientX","clientY"];function te(re,he){var me=this;this.manager=re,this.callback=he,this.element=re.element,this.target=re.options.inputTarget,this.domHandler=function(Be){F(re.options.enable,[re])&&me.handler(Be)},this.init()}te.prototype={handler:function(){},init:function(){this.evEl&&Y(this.element,this.evEl,this.domHandler),this.evTarget&&Y(this.target,this.evTarget,this.domHandler),this.evWin&&Y(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&ie(this.element,this.evEl,this.domHandler),this.evTarget&&ie(this.target,this.evTarget,this.domHandler),this.evWin&&ie(w(this.element),this.evWin,this.domHandler)}};function ne(re){var he,me=re.options.inputClass;return me?he=me:s?he=xe:v?he=Oe:g?he=$e:he=qe,new he(re,Ee)}function Ee(re,he,me){var Be=me.pointers.length,We=me.changedPointers.length,Ge=he&E&&Be-We===0,bt=he&(K|Z)&&Be-We===0;me.isFirst=!!Ge,me.isFinal=!!bt,Ge&&(re.session={}),me.eventType=he,Q(re,me),re.emit("hammer.input",me),re.recognize(me),re.session.prevInput=me}function Q(re,he){var me=re.session,Be=he.pointers,We=Be.length;me.firstInput||(me.firstInput=ce(he)),We>1&&!me.firstMultiple?me.firstMultiple=ce(he):We===1&&(me.firstMultiple=!1);var Ge=me.firstInput,bt=me.firstMultiple,ar=bt?bt.center:Ge.center,pr=he.center=pe(Be);he.timeStamp=M(),he.deltaTime=he.timeStamp-Ge.timeStamp,he.angle=Te(ar,pr),he.distance=fe(ar,pr),ue(me,he),he.offsetDirection=ae(he.deltaX,he.deltaY);var Pr=de(he.deltaTime,he.deltaX,he.deltaY);he.overallVelocityX=Pr.x,he.overallVelocityY=Pr.y,he.overallVelocity=m(Pr.x)>m(Pr.y)?Pr.x:Pr.y,he.scale=bt?Me(bt.pointers,Be):1,he.rotation=bt?ve(bt.pointers,Be):0,he.maxPointers=me.prevInput?he.pointers.length>me.prevInput.maxPointers?he.pointers.length:me.prevInput.maxPointers:he.pointers.length,le(me,he);var Vi=re.element;J(he.srcEvent.target,Vi)&&(Vi=he.srcEvent.target),he.target=Vi}function ue(re,he){var me=he.center,Be=re.offsetDelta||{},We=re.prevDelta||{},Ge=re.prevInput||{};(he.eventType===E||Ge.eventType===K)&&(We=re.prevDelta={x:Ge.deltaX||0,y:Ge.deltaY||0},Be=re.offsetDelta={x:me.x,y:me.y}),he.deltaX=We.x+(me.x-Be.x),he.deltaY=We.y+(me.y-Be.y)}function le(re,he){var me=re.lastInterval||he,Be=he.timeStamp-me.timeStamp,We,Ge,bt,ar;if(he.eventType!=Z&&(Be>A||me.velocity===a)){var pr=he.deltaX-me.deltaX,Pr=he.deltaY-me.deltaY,Vi=de(Be,pr,Pr);Ge=Vi.x,bt=Vi.y,We=m(Vi.x)>m(Vi.y)?Vi.x:Vi.y,ar=ae(pr,Pr),re.lastInterval=he}else We=me.velocity,Ge=me.velocityX,bt=me.velocityY,ar=me.direction;he.velocity=We,he.velocityX=Ge,he.velocityY=bt,he.direction=ar}function ce(re){for(var he=[],me=0;me<re.pointers.length;)he[me]={clientX:d(re.pointers[me].clientX),clientY:d(re.pointers[me].clientY)},me++;return{timeStamp:M(),pointers:he,center:pe(he),deltaX:re.deltaX,deltaY:re.deltaY}}function pe(re){var he=re.length;if(he===1)return{x:d(re[0].clientX),y:d(re[0].clientY)};for(var me=0,Be=0,We=0;We<he;)me+=re[We].clientX,Be+=re[We].clientY,We++;return{x:d(me/he),y:d(Be/he)}}function de(re,he,me){return{x:he/re||0,y:me/re||0}}function ae(re,he){return re===he?b:m(re)>=m(he)?re<0?y:O:he<0?q:X}function fe(re,he,me){me||(me=z);var Be=he[me[0]]-re[me[0]],We=he[me[1]]-re[me[1]];return Math.sqrt(Be*Be+We*We)}function Te(re,he,me){me||(me=z);var Be=he[me[0]]-re[me[0]],We=he[me[1]]-re[me[1]];return Math.atan2(We,Be)*180/Math.PI}function ve(re,he){return Te(he[1],he[0],se)+Te(re[1],re[0],se)}function Me(re,he){return fe(he[0],he[1],se)/fe(re[0],re[1],se)}var Ke={mousedown:E,mousemove:U,mouseup:K},be="mousedown",Se="mousemove mouseup";function qe(){this.evEl=be,this.evWin=Se,this.pressed=!1,te.apply(this,arguments)}B(qe,te,{handler:function(he){var me=Ke[he.type];me&E&&he.button===0&&(this.pressed=!0),me&U&&he.which!==1&&(me=K),this.pressed&&(me&K&&(this.pressed=!1),this.callback(this.manager,me,{pointers:[he],changedPointers:[he],pointerType:G,srcEvent:he}))}});var ye={pointerdown:E,pointermove:U,pointerup:K,pointercancel:Z,pointerout:Z},_e={2:T,3:$,4:G,5:ee},Ve="pointerdown",ge="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Ve="MSPointerDown",ge="MSPointerMove MSPointerUp MSPointerCancel");function xe(){this.evEl=Ve,this.evWin=ge,te.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}B(xe,te,{handler:function(he){var me=this.store,Be=!1,We=he.type.toLowerCase().replace("ms",""),Ge=ye[We],bt=_e[he.pointerType]||he.pointerType,ar=bt==T,pr=_(me,he.pointerId,"pointerId");Ge&E&&(he.button===0||ar)?pr<0&&(me.push(he),pr=me.length-1):Ge&(K|Z)&&(Be=!0),!(pr<0)&&(me[pr]=he,this.callback(this.manager,Ge,{pointers:me,changedPointers:[he],pointerType:bt,srcEvent:he}),Be&&me.splice(pr,1))}});var Xe={touchstart:E,touchmove:U,touchend:K,touchcancel:Z},Re="touchstart",Le="touchstart touchmove touchend touchcancel";function at(){this.evTarget=Re,this.evWin=Le,this.started=!1,te.apply(this,arguments)}B(at,te,{handler:function(he){var me=Xe[he.type];if(me===E&&(this.started=!0),!!this.started){var Be=Ae.call(this,he,me);me&(K|Z)&&Be[0].length-Be[1].length===0&&(this.started=!1),this.callback(this.manager,me,{pointers:Be[0],changedPointers:Be[1],pointerType:T,srcEvent:he})}}});function Ae(re,he){var me=o(re.touches),Be=o(re.changedTouches);return he&(K|Z)&&(me=f(me.concat(Be),"identifier",!0)),[me,Be]}var Ne={touchstart:E,touchmove:U,touchend:K,touchcancel:Z},rt="touchstart touchmove touchend touchcancel";function Oe(){this.evTarget=rt,this.targetIds={},te.apply(this,arguments)}B(Oe,te,{handler:function(he){var me=Ne[he.type],Be=De.call(this,he,me);Be&&this.callback(this.manager,me,{pointers:Be[0],changedPointers:Be[1],pointerType:T,srcEvent:he})}});function De(re,he){var me=o(re.touches),Be=this.targetIds;if(he&(E|U)&&me.length===1)return Be[me[0].identifier]=!0,[me,me];var We,Ge,bt=o(re.changedTouches),ar=[],pr=this.target;if(Ge=me.filter(function(Pr){return J(Pr.target,pr)}),he===E)for(We=0;We<Ge.length;)Be[Ge[We].identifier]=!0,We++;for(We=0;We<bt.length;)Be[bt[We].identifier]&&ar.push(bt[We]),he&(K|Z)&&delete Be[bt[We].identifier],We++;if(ar.length)return[f(Ge.concat(ar),"identifier",!0),ar]}var nt=2500,Ie=25;function $e(){te.apply(this,arguments);var re=H(this.handler,this);this.touch=new Oe(this.manager,re),this.mouse=new qe(this.manager,re),this.primaryTouch=null,this.lastTouches=[]}B($e,te,{handler:function(he,me,Be){var We=Be.pointerType==T,Ge=Be.pointerType==G;if(!(Ge&&Be.sourceCapabilities&&Be.sourceCapabilities.firesTouchEvents)){if(We)st.call(this,me,Be);else if(Ge&&je.call(this,Be))return;this.callback(he,me,Be)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function st(re,he){re&E?(this.primaryTouch=he.changedPointers[0].identifier,Pe.call(this,he)):re&(K|Z)&&Pe.call(this,he)}function Pe(re){var he=re.changedPointers[0];if(he.identifier===this.primaryTouch){var me={x:he.clientX,y:he.clientY};this.lastTouches.push(me);var Be=this.lastTouches,We=function(){var Ge=Be.indexOf(me);Ge>-1&&Be.splice(Ge,1)};setTimeout(We,nt)}}function je(re){for(var he=re.srcEvent.clientX,me=re.srcEvent.clientY,Be=0;Be<this.lastTouches.length;Be++){var We=this.lastTouches[Be],Ge=Math.abs(he-We.x),bt=Math.abs(me-We.y);if(Ge<=Ie&&bt<=Ie)return!0}return!1}var ht=l(u.style,"touchAction"),Ce=ht!==a,Fe="compute",it="auto",et="manipulation",xt="none",Tt="pan-x",Ot="pan-y",Ct=Ht();function kt(re,he){this.manager=re,this.set(he)}kt.prototype={set:function(re){re==Fe&&(re=this.compute()),Ce&&this.manager.element.style&&Ct[re]&&(this.manager.element.style[ht]=re),this.actions=re.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var re=[];return C(this.manager.recognizers,function(he){F(he.options.enable,[he])&&(re=re.concat(he.getTouchAction()))}),Ut(re.join(" "))},preventDefaults:function(re){var he=re.srcEvent,me=re.offsetDirection;if(this.manager.session.prevented){he.preventDefault();return}var Be=this.actions,We=V(Be,xt)&&!Ct[xt],Ge=V(Be,Ot)&&!Ct[Ot],bt=V(Be,Tt)&&!Ct[Tt];if(We){var ar=re.pointers.length===1,pr=re.distance<2,Pr=re.deltaTime<250;if(ar&&pr&&Pr)return}if(!(bt&&Ge)&&(We||Ge&&me&D||bt&&me&N))return this.preventSrc(he)},preventSrc:function(re){this.manager.session.prevented=!0,re.preventDefault()}};function Ut(re){if(V(re,xt))return xt;var he=V(re,Tt),me=V(re,Ot);return he&&me?xt:he||me?he?Tt:Ot:V(re,et)?et:it}function Ht(){if(!Ce)return!1;var re={},he=t.CSS&&t.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(me){re[me]=he?t.CSS.supports("touch-action",me):!0}),re}var Bt=1,dt=2,At=4,_t=8,mt=_t,It=16,vt=32;function yt(re){this.options=k({},this.defaults,re||{}),this.id=p(),this.manager=null,this.options.enable=W(this.options.enable,!0),this.state=Bt,this.simultaneous={},this.requireFail=[]}yt.prototype={defaults:{},set:function(re){return k(this.options,re),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(re){if(R(re,"recognizeWith",this))return this;var he=this.simultaneous;return re=Zn(re,this),he[re.id]||(he[re.id]=re,re.recognizeWith(this)),this},dropRecognizeWith:function(re){return R(re,"dropRecognizeWith",this)?this:(re=Zn(re,this),delete this.simultaneous[re.id],this)},requireFailure:function(re){if(R(re,"requireFailure",this))return this;var he=this.requireFail;return re=Zn(re,this),_(he,re)===-1&&(he.push(re),re.requireFailure(this)),this},dropRequireFailure:function(re){if(R(re,"dropRequireFailure",this))return this;re=Zn(re,this);var he=_(this.requireFail,re);return he>-1&&this.requireFail.splice(he,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(re){return!!this.simultaneous[re.id]},emit:function(re){var he=this,me=this.state;function Be(We){he.manager.emit(We,re)}me<_t&&Be(he.options.event+Dt(me)),Be(he.options.event),re.additionalEvent&&Be(re.additionalEvent),me>=_t&&Be(he.options.event+Dt(me))},tryEmit:function(re){if(this.canEmit())return this.emit(re);this.state=vt},canEmit:function(){for(var re=0;re<this.requireFail.length;){if(!(this.requireFail[re].state&(vt|Bt)))return!1;re++}return!0},recognize:function(re){var he=k({},re);if(!F(this.options.enable,[this,he])){this.reset(),this.state=vt;return}this.state&(mt|It|vt)&&(this.state=Bt),this.state=this.process(he),this.state&(dt|At|_t|It)&&this.tryEmit(he)},process:function(re){},getTouchAction:function(){},reset:function(){}};function Dt(re){return re&It?"cancel":re&_t?"end":re&At?"move":re&dt?"start":""}function Ft(re){return re==X?"down":re==q?"up":re==y?"left":re==O?"right":""}function Zn(re,he){var me=he.manager;return me?me.get(re):re}function Ir(){yt.apply(this,arguments)}B(Ir,yt,{defaults:{pointers:1},attrTest:function(re){var he=this.options.pointers;return he===0||re.pointers.length===he},process:function(re){var he=this.state,me=re.eventType,Be=he&(dt|At),We=this.attrTest(re);return Be&&(me&Z||!We)?he|It:Be||We?me&K?he|_t:he&dt?he|At:dt:vt}});function ku(){Ir.apply(this,arguments),this.pX=null,this.pY=null}B(ku,Ir,{defaults:{event:"pan",threshold:10,pointers:1,direction:j},getTouchAction:function(){var re=this.options.direction,he=[];return re&D&&he.push(Ot),re&N&&he.push(Tt),he},directionTest:function(re){var he=this.options,me=!0,Be=re.distance,We=re.direction,Ge=re.deltaX,bt=re.deltaY;return We&he.direction||(he.direction&D?(We=Ge===0?b:Ge<0?y:O,me=Ge!=this.pX,Be=Math.abs(re.deltaX)):(We=bt===0?b:bt<0?q:X,me=bt!=this.pY,Be=Math.abs(re.deltaY))),re.direction=We,me&&Be>he.threshold&&We&he.direction},attrTest:function(re){return Ir.prototype.attrTest.call(this,re)&&(this.state&dt||!(this.state&dt)&&this.directionTest(re))},emit:function(re){this.pX=re.deltaX,this.pY=re.deltaY;var he=Ft(re.direction);he&&(re.additionalEvent=this.options.event+he),this._super.emit.call(this,re)}});function xc(){Ir.apply(this,arguments)}B(xc,Ir,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[xt]},attrTest:function(re){return this._super.attrTest.call(this,re)&&(Math.abs(re.scale-1)>this.options.threshold||this.state&dt)},emit:function(re){if(re.scale!==1){var he=re.scale<1?"in":"out";re.additionalEvent=this.options.event+he}this._super.emit.call(this,re)}});function Ec(){yt.apply(this,arguments),this._timer=null,this._input=null}B(Ec,yt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[it]},process:function(re){var he=this.options,me=re.pointers.length===he.pointers,Be=re.distance<he.threshold,We=re.deltaTime>he.time;if(this._input=re,!Be||!me||re.eventType&(K|Z)&&!We)this.reset();else if(re.eventType&E)this.reset(),this._timer=S(function(){this.state=mt,this.tryEmit()},he.time,this);else if(re.eventType&K)return mt;return vt},reset:function(){clearTimeout(this._timer)},emit:function(re){this.state===mt&&(re&&re.eventType&K?this.manager.emit(this.options.event+"up",re):(this._input.timeStamp=M(),this.manager.emit(this.options.event,this._input)))}});function Rc(){Ir.apply(this,arguments)}B(Rc,Ir,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[xt]},attrTest:function(re){return this._super.attrTest.call(this,re)&&(Math.abs(re.rotation)>this.options.threshold||this.state&dt)}});function Ac(){Ir.apply(this,arguments)}B(Ac,Ir,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:D|N,pointers:1},getTouchAction:function(){return ku.prototype.getTouchAction.call(this)},attrTest:function(re){var he=this.options.direction,me;return he&(D|N)?me=re.overallVelocity:he&D?me=re.overallVelocityX:he&N&&(me=re.overallVelocityY),this._super.attrTest.call(this,re)&&he&re.offsetDirection&&re.distance>this.options.threshold&&re.maxPointers==this.options.pointers&&m(me)>this.options.velocity&&re.eventType&K},emit:function(re){var he=Ft(re.offsetDirection);he&&this.manager.emit(this.options.event+he,re),this.manager.emit(this.options.event,re)}});function $u(){yt.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}B($u,yt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[et]},process:function(re){var he=this.options,me=re.pointers.length===he.pointers,Be=re.distance<he.threshold,We=re.deltaTime<he.time;if(this.reset(),re.eventType&E&&this.count===0)return this.failTimeout();if(Be&&We&&me){if(re.eventType!=K)return this.failTimeout();var Ge=this.pTime?re.timeStamp-this.pTime<he.interval:!0,bt=!this.pCenter||fe(this.pCenter,re.center)<he.posThreshold;this.pTime=re.timeStamp,this.pCenter=re.center,!bt||!Ge?this.count=1:this.count+=1,this._input=re;var ar=this.count%he.taps;if(ar===0)return this.hasRequireFailures()?(this._timer=S(function(){this.state=mt,this.tryEmit()},he.interval,this),dt):mt}return vt},failTimeout:function(){return this._timer=S(function(){this.state=vt},this.options.interval,this),vt},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==mt&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function pn(re,he){return he=he||{},he.recognizers=W(he.recognizers,pn.defaults.preset),new Tc(re,he)}pn.VERSION="2.0.7",pn.defaults={domEvents:!1,touchAction:Fe,enable:!0,inputTarget:null,inputClass:null,preset:[[Rc,{enable:!1}],[xc,{enable:!1},["rotate"]],[Ac,{direction:D}],[ku,{direction:D},["swipe"]],[$u],[$u,{event:"doubletap",taps:2},["tap"]],[Ec]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var B4=1,im=2;function Tc(re,he){this.options=k({},pn.defaults,he||{}),this.options.inputTarget=this.options.inputTarget||re,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=re,this.input=ne(this),this.touchAction=new kt(this,this.options.touchAction),nm(this,!0),C(this.options.recognizers,function(me){var Be=this.add(new me[0](me[1]));me[2]&&Be.recognizeWith(me[2]),me[3]&&Be.requireFailure(me[3])},this)}Tc.prototype={set:function(re){return k(this.options,re),re.touchAction&&this.touchAction.update(),re.inputTarget&&(this.input.destroy(),this.input.target=re.inputTarget,this.input.init()),this},stop:function(re){this.session.stopped=re?im:B4},recognize:function(re){var he=this.session;if(!he.stopped){this.touchAction.preventDefaults(re);var me,Be=this.recognizers,We=he.curRecognizer;(!We||We&&We.state&mt)&&(We=he.curRecognizer=null);for(var Ge=0;Ge<Be.length;)me=Be[Ge],he.stopped!==im&&(!We||me==We||me.canRecognizeWith(We))?me.recognize(re):me.reset(),!We&&me.state&(dt|At|_t)&&(We=he.curRecognizer=me),Ge++}},get:function(re){if(re instanceof yt)return re;for(var he=this.recognizers,me=0;me<he.length;me++)if(he[me].options.event==re)return he[me];return null},add:function(re){if(R(re,"add",this))return this;var he=this.get(re.options.event);return he&&this.remove(he),this.recognizers.push(re),re.manager=this,this.touchAction.update(),re},remove:function(re){if(R(re,"remove",this))return this;if(re=this.get(re),re){var he=this.recognizers,me=_(he,re);me!==-1&&(he.splice(me,1),this.touchAction.update())}return this},on:function(re,he){if(re!==a&&he!==a){var me=this.handlers;return C(oe(re),function(Be){me[Be]=me[Be]||[],me[Be].push(he)}),this}},off:function(re,he){if(re!==a){var me=this.handlers;return C(oe(re),function(Be){he?me[Be]&&me[Be].splice(_(me[Be],he),1):delete me[Be]}),this}},emit:function(re,he){this.options.domEvents&&L4(re,he);var me=this.handlers[re]&&this.handlers[re].slice();if(!(!me||!me.length)){he.type=re,he.preventDefault=function(){he.srcEvent.preventDefault()};for(var Be=0;Be<me.length;)me[Be](he),Be++}},destroy:function(){this.element&&nm(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function nm(re,he){var me=re.element;if(me.style){var Be;C(re.options.cssProps,function(We,Ge){Be=l(me.style,Ge),he?(re.oldCssProps[Be]=me.style[Be],me.style[Be]=We):me.style[Be]=re.oldCssProps[Be]||""}),he||(re.oldCssProps={})}}function L4(re,he){var me=r.createEvent("Event");me.initEvent(re,!0,!0),me.gesture=he,he.target.dispatchEvent(me)}k(pn,{INPUT_START:E,INPUT_MOVE:U,INPUT_END:K,INPUT_CANCEL:Z,STATE_POSSIBLE:Bt,STATE_BEGAN:dt,STATE_CHANGED:At,STATE_ENDED:_t,STATE_RECOGNIZED:mt,STATE_CANCELLED:It,STATE_FAILED:vt,DIRECTION_NONE:b,DIRECTION_LEFT:y,DIRECTION_RIGHT:O,DIRECTION_UP:q,DIRECTION_DOWN:X,DIRECTION_HORIZONTAL:D,DIRECTION_VERTICAL:N,DIRECTION_ALL:j,Manager:Tc,Input:te,TouchAction:kt,TouchInput:Oe,MouseInput:qe,PointerEventInput:xe,TouchMouseInput:$e,SingleTouchInput:at,Recognizer:yt,AttrRecognizer:Ir,Tap:$u,Pan:ku,Swipe:Ac,Pinch:xc,Rotate:Rc,Press:Ec,on:Y,off:ie,each:C,merge:I,extend:L,assign:k,inherit:B,bindFn:H,prefixed:l});var N4=typeof t<"u"?t:typeof self<"u"?self:{};N4.Hammer=pn,typeof a=="function"&&a.amd?a(function(){return pn}):e.exports?e.exports=pn:t[i]=pn})(window,document,"Hammer")})(Z6);var mD=Z6.exports;const UV=Lo(mD);var X6={exports:{}};const yD=tv(zR);(function(e,t){(function(i,a){e.exports=a(yD,k4)})(typeof self<"u"?self:Ye,function(r,i){return function(a){var n={};function u(c){if(n[c])return n[c].exports;var d=n[c]={i:c,l:!1,exports:{}};return a[c].call(d.exports,d,d.exports,u),d.l=!0,d.exports}return u.m=a,u.c=n,u.d=function(c,d,m){u.o(c,d)||Object.defineProperty(c,d,{enumerable:!0,get:m})},u.r=function(c){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},u.t=function(c,d){if(d&1&&(c=u(c)),d&8||d&4&&typeof c=="object"&&c&&c.__esModule)return c;var m=Object.create(null);if(u.r(m),Object.defineProperty(m,"default",{enumerable:!0,value:c}),d&2&&typeof c!="string")for(var M in c)u.d(m,M,function(S){return c[S]}.bind(null,M));return m},u.n=function(c){var d=c&&c.__esModule?function(){return c.default}:function(){return c};return u.d(d,"a",d),d},u.o=function(c,d){return Object.prototype.hasOwnProperty.call(c,d)},u.p="",u(u.s="fb15")}({"00ee":function(a,n,u){var c=u("b622"),d=c("toStringTag"),m={};m[d]="z",a.exports=String(m)==="[object z]"},"0366":function(a,n,u){var c=u("1c0b");a.exports=function(d,m,M){if(c(d),m===void 0)return d;switch(M){case 0:return function(){return d.call(m)};case 1:return function(S){return d.call(m,S)};case 2:return function(S,R){return d.call(m,S,R)};case 3:return function(S,R,C){return d.call(m,S,R,C)}}return function(){return d.apply(m,arguments)}}},"057f":function(a,n,u){var c=u("fc6a"),d=u("241c").f,m={}.toString,M=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],S=function(R){try{return d(R)}catch{return M.slice()}};a.exports.f=function(C){return M&&m.call(C)=="[object Window]"?S(C):d(c(C))}},"06cf":function(a,n,u){var c=u("83ab"),d=u("d1e7"),m=u("5c6c"),M=u("fc6a"),S=u("c04e"),R=u("5135"),C=u("0cfb"),P=Object.getOwnPropertyDescriptor;n.f=c?P:function(L,I){if(L=M(L),I=S(I,!0),C)try{return P(L,I)}catch{}if(R(L,I))return m(!d.f.call(L,I),L[I])}},"0cfb":function(a,n,u){var c=u("83ab"),d=u("d039"),m=u("cc12");a.exports=!c&&!d(function(){return Object.defineProperty(m("div"),"a",{get:function(){return 7}}).a!=7})},"13d5":function(a,n,u){var c=u("23e7"),d=u("d58f").left,m=u("a640"),M=u("ae40"),S=m("reduce"),R=M("reduce",{1:0});c({target:"Array",proto:!0,forced:!S||!R},{reduce:function(P){return d(this,P,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(a,n,u){var c=u("c6b6"),d=u("9263");a.exports=function(m,M){var S=m.exec;if(typeof S=="function"){var R=S.call(m,M);if(typeof R!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return R}if(c(m)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return d.call(m,M)}},"159b":function(a,n,u){var c=u("da84"),d=u("fdbc"),m=u("17c2"),M=u("9112");for(var S in d){var R=c[S],C=R&&R.prototype;if(C&&C.forEach!==m)try{M(C,"forEach",m)}catch{C.forEach=m}}},"17c2":function(a,n,u){var c=u("b727").forEach,d=u("a640"),m=u("ae40"),M=d("forEach"),S=m("forEach");a.exports=!M||!S?function(C){return c(this,C,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(a,n,u){var c=u("d066");a.exports=c("document","documentElement")},"1c0b":function(a,n){a.exports=function(u){if(typeof u!="function")throw TypeError(String(u)+" is not a function");return u}},"1c7e":function(a,n,u){var c=u("b622"),d=c("iterator"),m=!1;try{var M=0,S={next:function(){return{done:!!M++}},return:function(){m=!0}};S[d]=function(){return this},Array.from(S,function(){throw 2})}catch{}a.exports=function(R,C){if(!C&&!m)return!1;var P=!1;try{var k={};k[d]=function(){return{next:function(){return{done:P=!0}}}},R(k)}catch{}return P}},"1d80":function(a,n){a.exports=function(u){if(u==null)throw TypeError("Can't call method on "+u);return u}},"1dde":function(a,n,u){var c=u("d039"),d=u("b622"),m=u("2d00"),M=d("species");a.exports=function(S){return m>=51||!c(function(){var R=[],C=R.constructor={};return C[M]=function(){return{foo:1}},R[S](Boolean).foo!==1})}},"23cb":function(a,n,u){var c=u("a691"),d=Math.max,m=Math.min;a.exports=function(M,S){var R=c(M);return R<0?d(R+S,0):m(R,S)}},"23e7":function(a,n,u){var c=u("da84"),d=u("06cf").f,m=u("9112"),M=u("6eeb"),S=u("ce4e"),R=u("e893"),C=u("94ca");a.exports=function(P,k){var L=P.target,I=P.global,B=P.stat,H,F,W,Y,ie,J;if(I?F=c:B?F=c[L]||S(L,{}):F=(c[L]||{}).prototype,F)for(W in k){if(ie=k[W],P.noTargetGet?(J=d(F,W),Y=J&&J.value):Y=F[W],H=C(I?W:L+(B?".":"#")+W,P.forced),!H&&Y!==void 0){if(typeof ie==typeof Y)continue;R(ie,Y)}(P.sham||Y&&Y.sham)&&m(ie,"sham",!0),M(F,W,ie,P)}}},"241c":function(a,n,u){var c=u("ca84"),d=u("7839"),m=d.concat("length","prototype");n.f=Object.getOwnPropertyNames||function(S){return c(S,m)}},"25f0":function(a,n,u){var c=u("6eeb"),d=u("825a"),m=u("d039"),M=u("ad6d"),S="toString",R=RegExp.prototype,C=R[S],P=m(function(){return C.call({source:"a",flags:"b"})!="/a/b"}),k=C.name!=S;(P||k)&&c(RegExp.prototype,S,function(){var I=d(this),B=String(I.source),H=I.flags,F=String(H===void 0&&I instanceof RegExp&&!("flags"in R)?M.call(I):H);return"/"+B+"/"+F},{unsafe:!0})},"2ca0":function(a,n,u){var c=u("23e7"),d=u("06cf").f,m=u("50c4"),M=u("5a34"),S=u("1d80"),R=u("ab13"),C=u("c430"),P="".startsWith,k=Math.min,L=R("startsWith"),I=!C&&!L&&!!function(){var B=d(String.prototype,"startsWith");return B&&!B.writable}();c({target:"String",proto:!0,forced:!I&&!L},{startsWith:function(H){var F=String(S(this));M(H);var W=m(k(arguments.length>1?arguments[1]:void 0,F.length)),Y=String(H);return P?P.call(F,Y,W):F.slice(W,W+Y.length)===Y}})},"2d00":function(a,n,u){var c=u("da84"),d=u("342f"),m=c.process,M=m&&m.versions,S=M&&M.v8,R,C;S?(R=S.split("."),C=R[0]+R[1]):d&&(R=d.match(/Edge\/(\d+)/),(!R||R[1]>=74)&&(R=d.match(/Chrome\/(\d+)/),R&&(C=R[1]))),a.exports=C&&+C},"342f":function(a,n,u){var c=u("d066");a.exports=c("navigator","userAgent")||""},"35a1":function(a,n,u){var c=u("f5df"),d=u("3f8c"),m=u("b622"),M=m("iterator");a.exports=function(S){if(S!=null)return S[M]||S["@@iterator"]||d[c(S)]}},"37e8":function(a,n,u){var c=u("83ab"),d=u("9bf2"),m=u("825a"),M=u("df75");a.exports=c?Object.defineProperties:function(R,C){m(R);for(var P=M(C),k=P.length,L=0,I;k>L;)d.f(R,I=P[L++],C[I]);return R}},"3bbe":function(a,n,u){var c=u("861d");a.exports=function(d){if(!c(d)&&d!==null)throw TypeError("Can't set "+String(d)+" as a prototype");return d}},"3ca3":function(a,n,u){var c=u("6547").charAt,d=u("69f3"),m=u("7dd0"),M="String Iterator",S=d.set,R=d.getterFor(M);m(String,"String",function(C){S(this,{type:M,string:String(C),index:0})},function(){var P=R(this),k=P.string,L=P.index,I;return L>=k.length?{value:void 0,done:!0}:(I=c(k,L),P.index+=I.length,{value:I,done:!1})})},"3f8c":function(a,n){a.exports={}},4160:function(a,n,u){var c=u("23e7"),d=u("17c2");c({target:"Array",proto:!0,forced:[].forEach!=d},{forEach:d})},"428f":function(a,n,u){var c=u("da84");a.exports=c},"44ad":function(a,n,u){var c=u("d039"),d=u("c6b6"),m="".split;a.exports=c(function(){return!Object("z").propertyIsEnumerable(0)})?function(M){return d(M)=="String"?m.call(M,""):Object(M)}:Object},"44d2":function(a,n,u){var c=u("b622"),d=u("7c73"),m=u("9bf2"),M=c("unscopables"),S=Array.prototype;S[M]==null&&m.f(S,M,{configurable:!0,value:d(null)}),a.exports=function(R){S[M][R]=!0}},"44e7":function(a,n,u){var c=u("861d"),d=u("c6b6"),m=u("b622"),M=m("match");a.exports=function(S){var R;return c(S)&&((R=S[M])!==void 0?!!R:d(S)=="RegExp")}},4930:function(a,n,u){var c=u("d039");a.exports=!!Object.getOwnPropertySymbols&&!c(function(){return!String(Symbol())})},"4d64":function(a,n,u){var c=u("fc6a"),d=u("50c4"),m=u("23cb"),M=function(S){return function(R,C,P){var k=c(R),L=d(k.length),I=m(P,L),B;if(S&&C!=C){for(;L>I;)if(B=k[I++],B!=B)return!0}else for(;L>I;I++)if((S||I in k)&&k[I]===C)return S||I||0;return!S&&-1}};a.exports={includes:M(!0),indexOf:M(!1)}},"4de4":function(a,n,u){var c=u("23e7"),d=u("b727").filter,m=u("1dde"),M=u("ae40"),S=m("filter"),R=M("filter");c({target:"Array",proto:!0,forced:!S||!R},{filter:function(P){return d(this,P,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(a,n,u){var c=u("0366"),d=u("7b0b"),m=u("9bdd"),M=u("e95a"),S=u("50c4"),R=u("8418"),C=u("35a1");a.exports=function(k){var L=d(k),I=typeof this=="function"?this:Array,B=arguments.length,H=B>1?arguments[1]:void 0,F=H!==void 0,W=C(L),Y=0,ie,J,V,oe,_,o;if(F&&(H=c(H,B>2?arguments[2]:void 0,2)),W!=null&&!(I==Array&&M(W)))for(oe=W.call(L),_=oe.next,J=new I;!(V=_.call(oe)).done;Y++)o=F?m(oe,H,[V.value,Y],!0):V.value,R(J,Y,o);else for(ie=S(L.length),J=new I(ie);ie>Y;Y++)o=F?H(L[Y],Y):L[Y],R(J,Y,o);return J.length=Y,J}},"4fad":function(a,n,u){var c=u("23e7"),d=u("6f53").entries;c({target:"Object",stat:!0},{entries:function(M){return d(M)}})},"50c4":function(a,n,u){var c=u("a691"),d=Math.min;a.exports=function(m){return m>0?d(c(m),9007199254740991):0}},5135:function(a,n){var u={}.hasOwnProperty;a.exports=function(c,d){return u.call(c,d)}},5319:function(a,n,u){var c=u("d784"),d=u("825a"),m=u("7b0b"),M=u("50c4"),S=u("a691"),R=u("1d80"),C=u("8aa5"),P=u("14c3"),k=Math.max,L=Math.min,I=Math.floor,B=/\$([$&'`]|\d\d?|<[^>]*>)/g,H=/\$([$&'`]|\d\d?)/g,F=function(W){return W===void 0?W:String(W)};c("replace",2,function(W,Y,ie,J){var V=J.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,oe=J.REPLACE_KEEPS_$0,_=V?"$":"$0";return[function(l,h){var p=R(this),w=l==null?void 0:l[W];return w!==void 0?w.call(l,p,h):Y.call(String(p),l,h)},function(f,l){if(!V&&oe||typeof l=="string"&&l.indexOf(_)===-1){var h=ie(Y,f,this,l);if(h.done)return h.value}var p=d(f),w=String(this),x=typeof l=="function";x||(l=String(l));var g=p.global;if(g){var s=p.unicode;p.lastIndex=0}for(var v=[];;){var T=P(p,w);if(T===null||(v.push(T),!g))break;var $=String(T[0]);$===""&&(p.lastIndex=C(w,M(p.lastIndex),s))}for(var G="",ee=0,A=0;A<v.length;A++){T=v[A];for(var E=String(T[0]),U=k(L(S(T.index),w.length),0),K=[],Z=1;Z<T.length;Z++)K.push(F(T[Z]));var b=T.groups;if(x){var y=[E].concat(K,U,w);b!==void 0&&y.push(b);var O=String(l.apply(void 0,y))}else O=o(E,w,U,K,b,l);U>=ee&&(G+=w.slice(ee,U)+O,ee=U+E.length)}return G+w.slice(ee)}];function o(f,l,h,p,w,x){var g=h+f.length,s=p.length,v=H;return w!==void 0&&(w=m(w),v=B),Y.call(x,v,function(T,$){var G;switch($.charAt(0)){case"$":return"$";case"&":return f;case"`":return l.slice(0,h);case"'":return l.slice(g);case"<":G=w[$.slice(1,-1)];break;default:var ee=+$;if(ee===0)return T;if(ee>s){var A=I(ee/10);return A===0?T:A<=s?p[A-1]===void 0?$.charAt(1):p[A-1]+$.charAt(1):T}G=p[ee-1]}return G===void 0?"":G})}})},5692:function(a,n,u){var c=u("c430"),d=u("c6cd");(a.exports=function(m,M){return d[m]||(d[m]=M!==void 0?M:{})})("versions",[]).push({version:"3.6.5",mode:c?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(a,n,u){var c=u("d066"),d=u("241c"),m=u("7418"),M=u("825a");a.exports=c("Reflect","ownKeys")||function(R){var C=d.f(M(R)),P=m.f;return P?C.concat(P(R)):C}},"5a34":function(a,n,u){var c=u("44e7");a.exports=function(d){if(c(d))throw TypeError("The method doesn't accept regular expressions");return d}},"5c6c":function(a,n){a.exports=function(u,c){return{enumerable:!(u&1),configurable:!(u&2),writable:!(u&4),value:c}}},"5db7":function(a,n,u){var c=u("23e7"),d=u("a2bf"),m=u("7b0b"),M=u("50c4"),S=u("1c0b"),R=u("65f0");c({target:"Array",proto:!0},{flatMap:function(P){var k=m(this),L=M(k.length),I;return S(P),I=R(k,0),I.length=d(I,k,k,L,0,1,P,arguments.length>1?arguments[1]:void 0),I}})},6547:function(a,n,u){var c=u("a691"),d=u("1d80"),m=function(M){return function(S,R){var C=String(d(S)),P=c(R),k=C.length,L,I;return P<0||P>=k?M?"":void 0:(L=C.charCodeAt(P),L<55296||L>56319||P+1===k||(I=C.charCodeAt(P+1))<56320||I>57343?M?C.charAt(P):L:M?C.slice(P,P+2):(L-55296<<10)+(I-56320)+65536)}};a.exports={codeAt:m(!1),charAt:m(!0)}},"65f0":function(a,n,u){var c=u("861d"),d=u("e8b5"),m=u("b622"),M=m("species");a.exports=function(S,R){var C;return d(S)&&(C=S.constructor,typeof C=="function"&&(C===Array||d(C.prototype))?C=void 0:c(C)&&(C=C[M],C===null&&(C=void 0))),new(C===void 0?Array:C)(R===0?0:R)}},"69f3":function(a,n,u){var c=u("7f9a"),d=u("da84"),m=u("861d"),M=u("9112"),S=u("5135"),R=u("f772"),C=u("d012"),P=d.WeakMap,k,L,I,B=function(V){return I(V)?L(V):k(V,{})},H=function(V){return function(oe){var _;if(!m(oe)||(_=L(oe)).type!==V)throw TypeError("Incompatible receiver, "+V+" required");return _}};if(c){var F=new P,W=F.get,Y=F.has,ie=F.set;k=function(V,oe){return ie.call(F,V,oe),oe},L=function(V){return W.call(F,V)||{}},I=function(V){return Y.call(F,V)}}else{var J=R("state");C[J]=!0,k=function(V,oe){return M(V,J,oe),oe},L=function(V){return S(V,J)?V[J]:{}},I=function(V){return S(V,J)}}a.exports={set:k,get:L,has:I,enforce:B,getterFor:H}},"6eeb":function(a,n,u){var c=u("da84"),d=u("9112"),m=u("5135"),M=u("ce4e"),S=u("8925"),R=u("69f3"),C=R.get,P=R.enforce,k=String(String).split("String");(a.exports=function(L,I,B,H){var F=H?!!H.unsafe:!1,W=H?!!H.enumerable:!1,Y=H?!!H.noTargetGet:!1;if(typeof B=="function"&&(typeof I=="string"&&!m(B,"name")&&d(B,"name",I),P(B).source=k.join(typeof I=="string"?I:"")),L===c){W?L[I]=B:M(I,B);return}else F?!Y&&L[I]&&(W=!0):delete L[I];W?L[I]=B:d(L,I,B)})(Function.prototype,"toString",function(){return typeof this=="function"&&C(this).source||S(this)})},"6f53":function(a,n,u){var c=u("83ab"),d=u("df75"),m=u("fc6a"),M=u("d1e7").f,S=function(R){return function(C){for(var P=m(C),k=d(P),L=k.length,I=0,B=[],H;L>I;)H=k[I++],(!c||M.call(P,H))&&B.push(R?[H,P[H]]:P[H]);return B}};a.exports={entries:S(!0),values:S(!1)}},"73d9":function(a,n,u){var c=u("44d2");c("flatMap")},7418:function(a,n){n.f=Object.getOwnPropertySymbols},"746f":function(a,n,u){var c=u("428f"),d=u("5135"),m=u("e538"),M=u("9bf2").f;a.exports=function(S){var R=c.Symbol||(c.Symbol={});d(R,S)||M(R,S,{value:m.f(S)})}},7839:function(a,n){a.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(a,n,u){var c=u("1d80");a.exports=function(d){return Object(c(d))}},"7c73":function(a,n,u){var c=u("825a"),d=u("37e8"),m=u("7839"),M=u("d012"),S=u("1be4"),R=u("cc12"),C=u("f772"),P=">",k="<",L="prototype",I="script",B=C("IE_PROTO"),H=function(){},F=function(V){return k+I+P+V+k+"/"+I+P},W=function(V){V.write(F("")),V.close();var oe=V.parentWindow.Object;return V=null,oe},Y=function(){var V=R("iframe"),oe="java"+I+":",_;return V.style.display="none",S.appendChild(V),V.src=String(oe),_=V.contentWindow.document,_.open(),_.write(F("document.F=Object")),_.close(),_.F},ie,J=function(){try{ie=document.domain&&new ActiveXObject("htmlfile")}catch{}J=ie?W(ie):Y();for(var V=m.length;V--;)delete J[L][m[V]];return J()};M[B]=!0,a.exports=Object.create||function(oe,_){var o;return oe!==null?(H[L]=c(oe),o=new H,H[L]=null,o[B]=oe):o=J(),_===void 0?o:d(o,_)}},"7dd0":function(a,n,u){var c=u("23e7"),d=u("9ed3"),m=u("e163"),M=u("d2bb"),S=u("d44e"),R=u("9112"),C=u("6eeb"),P=u("b622"),k=u("c430"),L=u("3f8c"),I=u("ae93"),B=I.IteratorPrototype,H=I.BUGGY_SAFARI_ITERATORS,F=P("iterator"),W="keys",Y="values",ie="entries",J=function(){return this};a.exports=function(V,oe,_,o,f,l,h){d(_,oe,o);var p=function(A){if(A===f&&v)return v;if(!H&&A in g)return g[A];switch(A){case W:return function(){return new _(this,A)};case Y:return function(){return new _(this,A)};case ie:return function(){return new _(this,A)}}return function(){return new _(this)}},w=oe+" Iterator",x=!1,g=V.prototype,s=g[F]||g["@@iterator"]||f&&g[f],v=!H&&s||p(f),T=oe=="Array"&&g.entries||s,$,G,ee;if(T&&($=m(T.call(new V)),B!==Object.prototype&&$.next&&(!k&&m($)!==B&&(M?M($,B):typeof $[F]!="function"&&R($,F,J)),S($,w,!0,!0),k&&(L[w]=J))),f==Y&&s&&s.name!==Y&&(x=!0,v=function(){return s.call(this)}),(!k||h)&&g[F]!==v&&R(g,F,v),L[oe]=v,f)if(G={values:p(Y),keys:l?v:p(W),entries:p(ie)},h)for(ee in G)(H||x||!(ee in g))&&C(g,ee,G[ee]);else c({target:oe,proto:!0,forced:H||x},G);return G}},"7f9a":function(a,n,u){var c=u("da84"),d=u("8925"),m=c.WeakMap;a.exports=typeof m=="function"&&/native code/.test(d(m))},"825a":function(a,n,u){var c=u("861d");a.exports=function(d){if(!c(d))throw TypeError(String(d)+" is not an object");return d}},"83ab":function(a,n,u){var c=u("d039");a.exports=!c(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},8418:function(a,n,u){var c=u("c04e"),d=u("9bf2"),m=u("5c6c");a.exports=function(M,S,R){var C=c(S);C in M?d.f(M,C,m(0,R)):M[C]=R}},"861d":function(a,n){a.exports=function(u){return typeof u=="object"?u!==null:typeof u=="function"}},8875:function(a,n,u){var c,d,m;(function(M,S){d=[],c=S,m=typeof c=="function"?c.apply(n,d):c,m!==void 0&&(a.exports=m)})(typeof self<"u"?self:this,function(){function M(){var S=Object.getOwnPropertyDescriptor(document,"currentScript");if(!S&&"currentScript"in document&&document.currentScript||S&&S.get!==M&&document.currentScript)return document.currentScript;try{throw new Error}catch(ie){var R=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,C=/@([^@]*):(\d+):(\d+)\s*$/ig,P=R.exec(ie.stack)||C.exec(ie.stack),k=P&&P[1]||!1,L=P&&P[2]||!1,I=document.location.href.replace(document.location.hash,""),B,H,F,W=document.getElementsByTagName("script");k===I&&(B=document.documentElement.outerHTML,H=new RegExp("(?:[^\\n]+?\\n){0,"+(L-2)+"}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*","i"),F=B.replace(H,"$1").trim());for(var Y=0;Y<W.length;Y++)if(W[Y].readyState==="interactive"||W[Y].src===k||k===I&&W[Y].innerHTML&&W[Y].innerHTML.trim()===F)return W[Y];return null}}return M})},8925:function(a,n,u){var c=u("c6cd"),d=Function.toString;typeof c.inspectSource!="function"&&(c.inspectSource=function(m){return d.call(m)}),a.exports=c.inspectSource},"8aa5":function(a,n,u){var c=u("6547").charAt;a.exports=function(d,m,M){return m+(M?c(d,m).length:1)}},"8bbf":function(a,n){a.exports=r},"90e3":function(a,n){var u=0,c=Math.random();a.exports=function(d){return"Symbol("+String(d===void 0?"":d)+")_"+(++u+c).toString(36)}},9112:function(a,n,u){var c=u("83ab"),d=u("9bf2"),m=u("5c6c");a.exports=c?function(M,S,R){return d.f(M,S,m(1,R))}:function(M,S,R){return M[S]=R,M}},9263:function(a,n,u){var c=u("ad6d"),d=u("9f7f"),m=RegExp.prototype.exec,M=String.prototype.replace,S=m,R=function(){var L=/a/,I=/b*/g;return m.call(L,"a"),m.call(I,"a"),L.lastIndex!==0||I.lastIndex!==0}(),C=d.UNSUPPORTED_Y||d.BROKEN_CARET,P=/()??/.exec("")[1]!==void 0,k=R||P||C;k&&(S=function(I){var B=this,H,F,W,Y,ie=C&&B.sticky,J=c.call(B),V=B.source,oe=0,_=I;return ie&&(J=J.replace("y",""),J.indexOf("g")===-1&&(J+="g"),_=String(I).slice(B.lastIndex),B.lastIndex>0&&(!B.multiline||B.multiline&&I[B.lastIndex-1]!==`
+`)&&(V="(?: "+V+")",_=" "+_,oe++),F=new RegExp("^(?:"+V+")",J)),P&&(F=new RegExp("^"+V+"$(?!\\s)",J)),R&&(H=B.lastIndex),W=m.call(ie?F:B,_),ie?W?(W.input=W.input.slice(oe),W[0]=W[0].slice(oe),W.index=B.lastIndex,B.lastIndex+=W[0].length):B.lastIndex=0:R&&W&&(B.lastIndex=B.global?W.index+W[0].length:H),P&&W&&W.length>1&&M.call(W[0],F,function(){for(Y=1;Y<arguments.length-2;Y++)arguments[Y]===void 0&&(W[Y]=void 0)}),W}),a.exports=S},"94ca":function(a,n,u){var c=u("d039"),d=/#|\.prototype\./,m=function(P,k){var L=S[M(P)];return L==C?!0:L==R?!1:typeof k=="function"?c(k):!!k},M=m.normalize=function(P){return String(P).replace(d,".").toLowerCase()},S=m.data={},R=m.NATIVE="N",C=m.POLYFILL="P";a.exports=m},"99af":function(a,n,u){var c=u("23e7"),d=u("d039"),m=u("e8b5"),M=u("861d"),S=u("7b0b"),R=u("50c4"),C=u("8418"),P=u("65f0"),k=u("1dde"),L=u("b622"),I=u("2d00"),B=L("isConcatSpreadable"),H=9007199254740991,F="Maximum allowed index exceeded",W=I>=51||!d(function(){var V=[];return V[B]=!1,V.concat()[0]!==V}),Y=k("concat"),ie=function(V){if(!M(V))return!1;var oe=V[B];return oe!==void 0?!!oe:m(V)},J=!W||!Y;c({target:"Array",proto:!0,forced:J},{concat:function(oe){var _=S(this),o=P(_,0),f=0,l,h,p,w,x;for(l=-1,p=arguments.length;l<p;l++)if(x=l===-1?_:arguments[l],ie(x)){if(w=R(x.length),f+w>H)throw TypeError(F);for(h=0;h<w;h++,f++)h in x&&C(o,f,x[h])}else{if(f>=H)throw TypeError(F);C(o,f++,x)}return o.length=f,o}})},"9bdd":function(a,n,u){var c=u("825a");a.exports=function(d,m,M,S){try{return S?m(c(M)[0],M[1]):m(M)}catch(C){var R=d.return;throw R!==void 0&&c(R.call(d)),C}}},"9bf2":function(a,n,u){var c=u("83ab"),d=u("0cfb"),m=u("825a"),M=u("c04e"),S=Object.defineProperty;n.f=c?S:function(C,P,k){if(m(C),P=M(P,!0),m(k),d)try{return S(C,P,k)}catch{}if("get"in k||"set"in k)throw TypeError("Accessors not supported");return"value"in k&&(C[P]=k.value),C}},"9ed3":function(a,n,u){var c=u("ae93").IteratorPrototype,d=u("7c73"),m=u("5c6c"),M=u("d44e"),S=u("3f8c"),R=function(){return this};a.exports=function(C,P,k){var L=P+" Iterator";return C.prototype=d(c,{next:m(1,k)}),M(C,L,!1,!0),S[L]=R,C}},"9f7f":function(a,n,u){var c=u("d039");function d(m,M){return RegExp(m,M)}n.UNSUPPORTED_Y=c(function(){var m=d("a","y");return m.lastIndex=2,m.exec("abcd")!=null}),n.BROKEN_CARET=c(function(){var m=d("^r","gy");return m.lastIndex=2,m.exec("str")!=null})},a2bf:function(a,n,u){var c=u("e8b5"),d=u("50c4"),m=u("0366"),M=function(S,R,C,P,k,L,I,B){for(var H=k,F=0,W=I?m(I,B,3):!1,Y;F<P;){if(F in C){if(Y=W?W(C[F],F,R):C[F],L>0&&c(Y))H=M(S,R,Y,d(Y.length),H,L-1)-1;else{if(H>=9007199254740991)throw TypeError("Exceed the acceptable array length");S[H]=Y}H++}F++}return H};a.exports=M},a352:function(a,n){a.exports=i},a434:function(a,n,u){var c=u("23e7"),d=u("23cb"),m=u("a691"),M=u("50c4"),S=u("7b0b"),R=u("65f0"),C=u("8418"),P=u("1dde"),k=u("ae40"),L=P("splice"),I=k("splice",{ACCESSORS:!0,0:0,1:2}),B=Math.max,H=Math.min,F=9007199254740991,W="Maximum allowed length exceeded";c({target:"Array",proto:!0,forced:!L||!I},{splice:function(ie,J){var V=S(this),oe=M(V.length),_=d(ie,oe),o=arguments.length,f,l,h,p,w,x;if(o===0?f=l=0:o===1?(f=0,l=oe-_):(f=o-2,l=H(B(m(J),0),oe-_)),oe+f-l>F)throw TypeError(W);for(h=R(V,l),p=0;p<l;p++)w=_+p,w in V&&C(h,p,V[w]);if(h.length=l,f<l){for(p=_;p<oe-l;p++)w=p+l,x=p+f,w in V?V[x]=V[w]:delete V[x];for(p=oe;p>oe-l+f;p--)delete V[p-1]}else if(f>l)for(p=oe-l;p>_;p--)w=p+l-1,x=p+f-1,w in V?V[x]=V[w]:delete V[x];for(p=0;p<f;p++)V[p+_]=arguments[p+2];return V.length=oe-l+f,h}})},a4d3:function(a,n,u){var c=u("23e7"),d=u("da84"),m=u("d066"),M=u("c430"),S=u("83ab"),R=u("4930"),C=u("fdbf"),P=u("d039"),k=u("5135"),L=u("e8b5"),I=u("861d"),B=u("825a"),H=u("7b0b"),F=u("fc6a"),W=u("c04e"),Y=u("5c6c"),ie=u("7c73"),J=u("df75"),V=u("241c"),oe=u("057f"),_=u("7418"),o=u("06cf"),f=u("9bf2"),l=u("d1e7"),h=u("9112"),p=u("6eeb"),w=u("5692"),x=u("f772"),g=u("d012"),s=u("90e3"),v=u("b622"),T=u("e538"),$=u("746f"),G=u("d44e"),ee=u("69f3"),A=u("b727").forEach,E=x("hidden"),U="Symbol",K="prototype",Z=v("toPrimitive"),b=ee.set,y=ee.getterFor(U),O=Object[K],q=d.Symbol,X=m("JSON","stringify"),D=o.f,N=f.f,j=oe.f,z=l.f,se=w("symbols"),te=w("op-symbols"),ne=w("string-to-symbol-registry"),Ee=w("symbol-to-string-registry"),Q=w("wks"),ue=d.QObject,le=!ue||!ue[K]||!ue[K].findChild,ce=S&&P(function(){return ie(N({},"a",{get:function(){return N(this,"a",{value:7}).a}})).a!=7})?function(qe,ye,_e){var Ve=D(O,ye);Ve&&delete O[ye],N(qe,ye,_e),Ve&&qe!==O&&N(O,ye,Ve)}:N,pe=function(qe,ye){var _e=se[qe]=ie(q[K]);return b(_e,{type:U,tag:qe,description:ye}),S||(_e.description=ye),_e},de=C?function(qe){return typeof qe=="symbol"}:function(qe){return Object(qe)instanceof q},ae=function(ye,_e,Ve){ye===O&&ae(te,_e,Ve),B(ye);var ge=W(_e,!0);return B(Ve),k(se,ge)?(Ve.enumerable?(k(ye,E)&&ye[E][ge]&&(ye[E][ge]=!1),Ve=ie(Ve,{enumerable:Y(0,!1)})):(k(ye,E)||N(ye,E,Y(1,{})),ye[E][ge]=!0),ce(ye,ge,Ve)):N(ye,ge,Ve)},fe=function(ye,_e){B(ye);var Ve=F(_e),ge=J(Ve).concat(be(Ve));return A(ge,function(xe){(!S||ve.call(Ve,xe))&&ae(ye,xe,Ve[xe])}),ye},Te=function(ye,_e){return _e===void 0?ie(ye):fe(ie(ye),_e)},ve=function(ye){var _e=W(ye,!0),Ve=z.call(this,_e);return this===O&&k(se,_e)&&!k(te,_e)?!1:Ve||!k(this,_e)||!k(se,_e)||k(this,E)&&this[E][_e]?Ve:!0},Me=function(ye,_e){var Ve=F(ye),ge=W(_e,!0);if(!(Ve===O&&k(se,ge)&&!k(te,ge))){var xe=D(Ve,ge);return xe&&k(se,ge)&&!(k(Ve,E)&&Ve[E][ge])&&(xe.enumerable=!0),xe}},Ke=function(ye){var _e=j(F(ye)),Ve=[];return A(_e,function(ge){!k(se,ge)&&!k(g,ge)&&Ve.push(ge)}),Ve},be=function(ye){var _e=ye===O,Ve=j(_e?te:F(ye)),ge=[];return A(Ve,function(xe){k(se,xe)&&(!_e||k(O,xe))&&ge.push(se[xe])}),ge};if(R||(q=function(){if(this instanceof q)throw TypeError("Symbol is not a constructor");var ye=!arguments.length||arguments[0]===void 0?void 0:String(arguments[0]),_e=s(ye),Ve=function(ge){this===O&&Ve.call(te,ge),k(this,E)&&k(this[E],_e)&&(this[E][_e]=!1),ce(this,_e,Y(1,ge))};return S&&le&&ce(O,_e,{configurable:!0,set:Ve}),pe(_e,ye)},p(q[K],"toString",function(){return y(this).tag}),p(q,"withoutSetter",function(qe){return pe(s(qe),qe)}),l.f=ve,f.f=ae,o.f=Me,V.f=oe.f=Ke,_.f=be,T.f=function(qe){return pe(v(qe),qe)},S&&(N(q[K],"description",{configurable:!0,get:function(){return y(this).description}}),M||p(O,"propertyIsEnumerable",ve,{unsafe:!0}))),c({global:!0,wrap:!0,forced:!R,sham:!R},{Symbol:q}),A(J(Q),function(qe){$(qe)}),c({target:U,stat:!0,forced:!R},{for:function(qe){var ye=String(qe);if(k(ne,ye))return ne[ye];var _e=q(ye);return ne[ye]=_e,Ee[_e]=ye,_e},keyFor:function(ye){if(!de(ye))throw TypeError(ye+" is not a symbol");if(k(Ee,ye))return Ee[ye]},useSetter:function(){le=!0},useSimple:function(){le=!1}}),c({target:"Object",stat:!0,forced:!R,sham:!S},{create:Te,defineProperty:ae,defineProperties:fe,getOwnPropertyDescriptor:Me}),c({target:"Object",stat:!0,forced:!R},{getOwnPropertyNames:Ke,getOwnPropertySymbols:be}),c({target:"Object",stat:!0,forced:P(function(){_.f(1)})},{getOwnPropertySymbols:function(ye){return _.f(H(ye))}}),X){var Se=!R||P(function(){var qe=q();return X([qe])!="[null]"||X({a:qe})!="{}"||X(Object(qe))!="{}"});c({target:"JSON",stat:!0,forced:Se},{stringify:function(ye,_e,Ve){for(var ge=[ye],xe=1,Xe;arguments.length>xe;)ge.push(arguments[xe++]);if(Xe=_e,!(!I(_e)&&ye===void 0||de(ye)))return L(_e)||(_e=function(Re,Le){if(typeof Xe=="function"&&(Le=Xe.call(this,Re,Le)),!de(Le))return Le}),ge[1]=_e,X.apply(null,ge)}})}q[K][Z]||h(q[K],Z,q[K].valueOf),G(q,U),g[E]=!0},a630:function(a,n,u){var c=u("23e7"),d=u("4df4"),m=u("1c7e"),M=!m(function(S){Array.from(S)});c({target:"Array",stat:!0,forced:M},{from:d})},a640:function(a,n,u){var c=u("d039");a.exports=function(d,m){var M=[][d];return!!M&&c(function(){M.call(null,m||function(){throw 1},1)})}},a691:function(a,n){var u=Math.ceil,c=Math.floor;a.exports=function(d){return isNaN(d=+d)?0:(d>0?c:u)(d)}},ab13:function(a,n,u){var c=u("b622"),d=c("match");a.exports=function(m){var M=/./;try{"/./"[m](M)}catch{try{return M[d]=!1,"/./"[m](M)}catch{}}return!1}},ac1f:function(a,n,u){var c=u("23e7"),d=u("9263");c({target:"RegExp",proto:!0,forced:/./.exec!==d},{exec:d})},ad6d:function(a,n,u){var c=u("825a");a.exports=function(){var d=c(this),m="";return d.global&&(m+="g"),d.ignoreCase&&(m+="i"),d.multiline&&(m+="m"),d.dotAll&&(m+="s"),d.unicode&&(m+="u"),d.sticky&&(m+="y"),m}},ae40:function(a,n,u){var c=u("83ab"),d=u("d039"),m=u("5135"),M=Object.defineProperty,S={},R=function(C){throw C};a.exports=function(C,P){if(m(S,C))return S[C];P||(P={});var k=[][C],L=m(P,"ACCESSORS")?P.ACCESSORS:!1,I=m(P,0)?P[0]:R,B=m(P,1)?P[1]:void 0;return S[C]=!!k&&!d(function(){if(L&&!c)return!0;var H={length:-1};L?M(H,1,{enumerable:!0,get:R}):H[1]=1,k.call(H,I,B)})}},ae93:function(a,n,u){var c=u("e163"),d=u("9112"),m=u("5135"),M=u("b622"),S=u("c430"),R=M("iterator"),C=!1,P=function(){return this},k,L,I;[].keys&&(I=[].keys(),"next"in I?(L=c(c(I)),L!==Object.prototype&&(k=L)):C=!0),k==null&&(k={}),!S&&!m(k,R)&&d(k,R,P),a.exports={IteratorPrototype:k,BUGGY_SAFARI_ITERATORS:C}},b041:function(a,n,u){var c=u("00ee"),d=u("f5df");a.exports=c?{}.toString:function(){return"[object "+d(this)+"]"}},b0c0:function(a,n,u){var c=u("83ab"),d=u("9bf2").f,m=Function.prototype,M=m.toString,S=/^\s*function ([^ (]*)/,R="name";c&&!(R in m)&&d(m,R,{configurable:!0,get:function(){try{return M.call(this).match(S)[1]}catch{return""}}})},b622:function(a,n,u){var c=u("da84"),d=u("5692"),m=u("5135"),M=u("90e3"),S=u("4930"),R=u("fdbf"),C=d("wks"),P=c.Symbol,k=R?P:P&&P.withoutSetter||M;a.exports=function(L){return m(C,L)||(S&&m(P,L)?C[L]=P[L]:C[L]=k("Symbol."+L)),C[L]}},b64b:function(a,n,u){var c=u("23e7"),d=u("7b0b"),m=u("df75"),M=u("d039"),S=M(function(){m(1)});c({target:"Object",stat:!0,forced:S},{keys:function(C){return m(d(C))}})},b727:function(a,n,u){var c=u("0366"),d=u("44ad"),m=u("7b0b"),M=u("50c4"),S=u("65f0"),R=[].push,C=function(P){var k=P==1,L=P==2,I=P==3,B=P==4,H=P==6,F=P==5||H;return function(W,Y,ie,J){for(var V=m(W),oe=d(V),_=c(Y,ie,3),o=M(oe.length),f=0,l=J||S,h=k?l(W,o):L?l(W,0):void 0,p,w;o>f;f++)if((F||f in oe)&&(p=oe[f],w=_(p,f,V),P)){if(k)h[f]=w;else if(w)switch(P){case 3:return!0;case 5:return p;case 6:return f;case 2:R.call(h,p)}else if(B)return!1}return H?-1:I||B?B:h}};a.exports={forEach:C(0),map:C(1),filter:C(2),some:C(3),every:C(4),find:C(5),findIndex:C(6)}},c04e:function(a,n,u){var c=u("861d");a.exports=function(d,m){if(!c(d))return d;var M,S;if(m&&typeof(M=d.toString)=="function"&&!c(S=M.call(d))||typeof(M=d.valueOf)=="function"&&!c(S=M.call(d))||!m&&typeof(M=d.toString)=="function"&&!c(S=M.call(d)))return S;throw TypeError("Can't convert object to primitive value")}},c430:function(a,n){a.exports=!1},c6b6:function(a,n){var u={}.toString;a.exports=function(c){return u.call(c).slice(8,-1)}},c6cd:function(a,n,u){var c=u("da84"),d=u("ce4e"),m="__core-js_shared__",M=c[m]||d(m,{});a.exports=M},c740:function(a,n,u){var c=u("23e7"),d=u("b727").findIndex,m=u("44d2"),M=u("ae40"),S="findIndex",R=!0,C=M(S);S in[]&&Array(1)[S](function(){R=!1}),c({target:"Array",proto:!0,forced:R||!C},{findIndex:function(k){return d(this,k,arguments.length>1?arguments[1]:void 0)}}),m(S)},c8ba:function(a,n){var u;u=function(){return this}();try{u=u||new Function("return this")()}catch{typeof window=="object"&&(u=window)}a.exports=u},c975:function(a,n,u){var c=u("23e7"),d=u("4d64").indexOf,m=u("a640"),M=u("ae40"),S=[].indexOf,R=!!S&&1/[1].indexOf(1,-0)<0,C=m("indexOf"),P=M("indexOf",{ACCESSORS:!0,1:0});c({target:"Array",proto:!0,forced:R||!C||!P},{indexOf:function(L){return R?S.apply(this,arguments)||0:d(this,L,arguments.length>1?arguments[1]:void 0)}})},ca84:function(a,n,u){var c=u("5135"),d=u("fc6a"),m=u("4d64").indexOf,M=u("d012");a.exports=function(S,R){var C=d(S),P=0,k=[],L;for(L in C)!c(M,L)&&c(C,L)&&k.push(L);for(;R.length>P;)c(C,L=R[P++])&&(~m(k,L)||k.push(L));return k}},caad:function(a,n,u){var c=u("23e7"),d=u("4d64").includes,m=u("44d2"),M=u("ae40"),S=M("indexOf",{ACCESSORS:!0,1:0});c({target:"Array",proto:!0,forced:!S},{includes:function(C){return d(this,C,arguments.length>1?arguments[1]:void 0)}}),m("includes")},cc12:function(a,n,u){var c=u("da84"),d=u("861d"),m=c.document,M=d(m)&&d(m.createElement);a.exports=function(S){return M?m.createElement(S):{}}},ce4e:function(a,n,u){var c=u("da84"),d=u("9112");a.exports=function(m,M){try{d(c,m,M)}catch{c[m]=M}return M}},d012:function(a,n){a.exports={}},d039:function(a,n){a.exports=function(u){try{return!!u()}catch{return!0}}},d066:function(a,n,u){var c=u("428f"),d=u("da84"),m=function(M){return typeof M=="function"?M:void 0};a.exports=function(M,S){return arguments.length<2?m(c[M])||m(d[M]):c[M]&&c[M][S]||d[M]&&d[M][S]}},d1e7:function(a,n,u){var c={}.propertyIsEnumerable,d=Object.getOwnPropertyDescriptor,m=d&&!c.call({1:2},1);n.f=m?function(S){var R=d(this,S);return!!R&&R.enumerable}:c},d28b:function(a,n,u){var c=u("746f");c("iterator")},d2bb:function(a,n,u){var c=u("825a"),d=u("3bbe");a.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var m=!1,M={},S;try{S=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,S.call(M,[]),m=M instanceof Array}catch{}return function(C,P){return c(C),d(P),m?S.call(C,P):C.__proto__=P,C}}():void 0)},d3b7:function(a,n,u){var c=u("00ee"),d=u("6eeb"),m=u("b041");c||d(Object.prototype,"toString",m,{unsafe:!0})},d44e:function(a,n,u){var c=u("9bf2").f,d=u("5135"),m=u("b622"),M=m("toStringTag");a.exports=function(S,R,C){S&&!d(S=C?S:S.prototype,M)&&c(S,M,{configurable:!0,value:R})}},d58f:function(a,n,u){var c=u("1c0b"),d=u("7b0b"),m=u("44ad"),M=u("50c4"),S=function(R){return function(C,P,k,L){c(P);var I=d(C),B=m(I),H=M(I.length),F=R?H-1:0,W=R?-1:1;if(k<2)for(;;){if(F in B){L=B[F],F+=W;break}if(F+=W,R?F<0:H<=F)throw TypeError("Reduce of empty array with no initial value")}for(;R?F>=0:H>F;F+=W)F in B&&(L=P(L,B[F],F,I));return L}};a.exports={left:S(!1),right:S(!0)}},d784:function(a,n,u){u("ac1f");var c=u("6eeb"),d=u("d039"),m=u("b622"),M=u("9263"),S=u("9112"),R=m("species"),C=!d(function(){var B=/./;return B.exec=function(){var H=[];return H.groups={a:"7"},H},"".replace(B,"$<a>")!=="7"}),P=function(){return"a".replace(/./,"$0")==="$0"}(),k=m("replace"),L=function(){return/./[k]?/./[k]("a","$0")==="":!1}(),I=!d(function(){var B=/(?:)/,H=B.exec;B.exec=function(){return H.apply(this,arguments)};var F="ab".split(B);return F.length!==2||F[0]!=="a"||F[1]!=="b"});a.exports=function(B,H,F,W){var Y=m(B),ie=!d(function(){var f={};return f[Y]=function(){return 7},""[B](f)!=7}),J=ie&&!d(function(){var f=!1,l=/a/;return B==="split"&&(l={},l.constructor={},l.constructor[R]=function(){return l},l.flags="",l[Y]=/./[Y]),l.exec=function(){return f=!0,null},l[Y](""),!f});if(!ie||!J||B==="replace"&&!(C&&P&&!L)||B==="split"&&!I){var V=/./[Y],oe=F(Y,""[B],function(f,l,h,p,w){return l.exec===M?ie&&!w?{done:!0,value:V.call(l,h,p)}:{done:!0,value:f.call(h,l,p)}:{done:!1}},{REPLACE_KEEPS_$0:P,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:L}),_=oe[0],o=oe[1];c(String.prototype,B,_),c(RegExp.prototype,Y,H==2?function(f,l){return o.call(f,this,l)}:function(f){return o.call(f,this)})}W&&S(RegExp.prototype[Y],"sham",!0)}},d81d:function(a,n,u){var c=u("23e7"),d=u("b727").map,m=u("1dde"),M=u("ae40"),S=m("map"),R=M("map");c({target:"Array",proto:!0,forced:!S||!R},{map:function(P){return d(this,P,arguments.length>1?arguments[1]:void 0)}})},da84:function(a,n,u){(function(c){var d=function(m){return m&&m.Math==Math&&m};a.exports=d(typeof globalThis=="object"&&globalThis)||d(typeof window=="object"&&window)||d(typeof self=="object"&&self)||d(typeof c=="object"&&c)||Function("return this")()}).call(this,u("c8ba"))},dbb4:function(a,n,u){var c=u("23e7"),d=u("83ab"),m=u("56ef"),M=u("fc6a"),S=u("06cf"),R=u("8418");c({target:"Object",stat:!0,sham:!d},{getOwnPropertyDescriptors:function(P){for(var k=M(P),L=S.f,I=m(k),B={},H=0,F,W;I.length>H;)W=L(k,F=I[H++]),W!==void 0&&R(B,F,W);return B}})},dbf1:function(a,n,u){(function(c){u.d(n,"a",function(){return m});function d(){return typeof window<"u"?window.console:c.console}var m=d()}).call(this,u("c8ba"))},ddb0:function(a,n,u){var c=u("da84"),d=u("fdbc"),m=u("e260"),M=u("9112"),S=u("b622"),R=S("iterator"),C=S("toStringTag"),P=m.values;for(var k in d){var L=c[k],I=L&&L.prototype;if(I){if(I[R]!==P)try{M(I,R,P)}catch{I[R]=P}if(I[C]||M(I,C,k),d[k]){for(var B in m)if(I[B]!==m[B])try{M(I,B,m[B])}catch{I[B]=m[B]}}}}},df75:function(a,n,u){var c=u("ca84"),d=u("7839");a.exports=Object.keys||function(M){return c(M,d)}},e01a:function(a,n,u){var c=u("23e7"),d=u("83ab"),m=u("da84"),M=u("5135"),S=u("861d"),R=u("9bf2").f,C=u("e893"),P=m.Symbol;if(d&&typeof P=="function"&&(!("description"in P.prototype)||P().description!==void 0)){var k={},L=function(){var Y=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),ie=this instanceof L?new P(Y):Y===void 0?P():P(Y);return Y===""&&(k[ie]=!0),ie};C(L,P);var I=L.prototype=P.prototype;I.constructor=L;var B=I.toString,H=String(P("test"))=="Symbol(test)",F=/^Symbol\((.*)\)[^)]+$/;R(I,"description",{configurable:!0,get:function(){var Y=S(this)?this.valueOf():this,ie=B.call(Y);if(M(k,Y))return"";var J=H?ie.slice(7,-1):ie.replace(F,"$1");return J===""?void 0:J}}),c({global:!0,forced:!0},{Symbol:L})}},e163:function(a,n,u){var c=u("5135"),d=u("7b0b"),m=u("f772"),M=u("e177"),S=m("IE_PROTO"),R=Object.prototype;a.exports=M?Object.getPrototypeOf:function(C){return C=d(C),c(C,S)?C[S]:typeof C.constructor=="function"&&C instanceof C.constructor?C.constructor.prototype:C instanceof Object?R:null}},e177:function(a,n,u){var c=u("d039");a.exports=!c(function(){function d(){}return d.prototype.constructor=null,Object.getPrototypeOf(new d)!==d.prototype})},e260:function(a,n,u){var c=u("fc6a"),d=u("44d2"),m=u("3f8c"),M=u("69f3"),S=u("7dd0"),R="Array Iterator",C=M.set,P=M.getterFor(R);a.exports=S(Array,"Array",function(k,L){C(this,{type:R,target:c(k),index:0,kind:L})},function(){var k=P(this),L=k.target,I=k.kind,B=k.index++;return!L||B>=L.length?(k.target=void 0,{value:void 0,done:!0}):I=="keys"?{value:B,done:!1}:I=="values"?{value:L[B],done:!1}:{value:[B,L[B]],done:!1}},"values"),m.Arguments=m.Array,d("keys"),d("values"),d("entries")},e439:function(a,n,u){var c=u("23e7"),d=u("d039"),m=u("fc6a"),M=u("06cf").f,S=u("83ab"),R=d(function(){M(1)}),C=!S||R;c({target:"Object",stat:!0,forced:C,sham:!S},{getOwnPropertyDescriptor:function(k,L){return M(m(k),L)}})},e538:function(a,n,u){var c=u("b622");n.f=c},e893:function(a,n,u){var c=u("5135"),d=u("56ef"),m=u("06cf"),M=u("9bf2");a.exports=function(S,R){for(var C=d(R),P=M.f,k=m.f,L=0;L<C.length;L++){var I=C[L];c(S,I)||P(S,I,k(R,I))}}},e8b5:function(a,n,u){var c=u("c6b6");a.exports=Array.isArray||function(m){return c(m)=="Array"}},e95a:function(a,n,u){var c=u("b622"),d=u("3f8c"),m=c("iterator"),M=Array.prototype;a.exports=function(S){return S!==void 0&&(d.Array===S||M[m]===S)}},f5df:function(a,n,u){var c=u("00ee"),d=u("c6b6"),m=u("b622"),M=m("toStringTag"),S=d(function(){return arguments}())=="Arguments",R=function(C,P){try{return C[P]}catch{}};a.exports=c?d:function(C){var P,k,L;return C===void 0?"Undefined":C===null?"Null":typeof(k=R(P=Object(C),M))=="string"?k:S?d(P):(L=d(P))=="Object"&&typeof P.callee=="function"?"Arguments":L}},f772:function(a,n,u){var c=u("5692"),d=u("90e3"),m=c("keys");a.exports=function(M){return m[M]||(m[M]=d(M))}},fb15:function(a,n,u){if(u.r(n),typeof window<"u"){var c=window.document.currentScript;{var d=u("8875");c=d(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:d})}var m=c&&c.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);m&&(u.p=m[1])}u("99af"),u("4de4"),u("4160"),u("c975"),u("d81d"),u("a434"),u("159b"),u("a4d3"),u("e439"),u("dbb4"),u("b64b");function M(de,ae,fe){return ae in de?Object.defineProperty(de,ae,{value:fe,enumerable:!0,configurable:!0,writable:!0}):de[ae]=fe,de}function S(de,ae){var fe=Object.keys(de);if(Object.getOwnPropertySymbols){var Te=Object.getOwnPropertySymbols(de);ae&&(Te=Te.filter(function(ve){return Object.getOwnPropertyDescriptor(de,ve).enumerable})),fe.push.apply(fe,Te)}return fe}function R(de){for(var ae=1;ae<arguments.length;ae++){var fe=arguments[ae]!=null?arguments[ae]:{};ae%2?S(Object(fe),!0).forEach(function(Te){M(de,Te,fe[Te])}):Object.getOwnPropertyDescriptors?Object.defineProperties(de,Object.getOwnPropertyDescriptors(fe)):S(Object(fe)).forEach(function(Te){Object.defineProperty(de,Te,Object.getOwnPropertyDescriptor(fe,Te))})}return de}function C(de){if(Array.isArray(de))return de}u("e01a"),u("d28b"),u("e260"),u("d3b7"),u("3ca3"),u("ddb0");function P(de,ae){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(de)))){var fe=[],Te=!0,ve=!1,Me=void 0;try{for(var Ke=de[Symbol.iterator](),be;!(Te=(be=Ke.next()).done)&&(fe.push(be.value),!(ae&&fe.length===ae));Te=!0);}catch(Se){ve=!0,Me=Se}finally{try{!Te&&Ke.return!=null&&Ke.return()}finally{if(ve)throw Me}}return fe}}u("a630"),u("fb6a"),u("b0c0"),u("25f0");function k(de,ae){(ae==null||ae>de.length)&&(ae=de.length);for(var fe=0,Te=new Array(ae);fe<ae;fe++)Te[fe]=de[fe];return Te}function L(de,ae){if(de){if(typeof de=="string")return k(de,ae);var fe=Object.prototype.toString.call(de).slice(8,-1);if(fe==="Object"&&de.constructor&&(fe=de.constructor.name),fe==="Map"||fe==="Set")return Array.from(de);if(fe==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(fe))return k(de,ae)}}function I(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function B(de,ae){return C(de)||P(de,ae)||L(de,ae)||I()}function H(de){if(Array.isArray(de))return k(de)}function F(de){if(typeof Symbol<"u"&&Symbol.iterator in Object(de))return Array.from(de)}function W(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Y(de){return H(de)||F(de)||L(de)||W()}var ie=u("a352"),J=u.n(ie);function V(de){de.parentElement!==null&&de.parentElement.removeChild(de)}function oe(de,ae,fe){var Te=fe===0?de.children[0]:de.children[fe-1].nextSibling;de.insertBefore(ae,Te)}var _=u("dbf1");u("13d5"),u("4fad"),u("ac1f"),u("5319");function o(de){var ae=Object.create(null);return function(Te){var ve=ae[Te];return ve||(ae[Te]=de(Te))}}var f=/-(\w)/g,l=o(function(de){return de.replace(f,function(ae,fe){return fe.toUpperCase()})});u("5db7"),u("73d9");var h=["Start","Add","Remove","Update","End"],p=["Choose","Unchoose","Sort","Filter","Clone"],w=["Move"],x=[w,h,p].flatMap(function(de){return de}).map(function(de){return"on".concat(de)}),g={manage:w,manageAndEmit:h,emit:p};function s(de){return x.indexOf(de)!==-1}u("caad"),u("2ca0");var v=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];function T(de){return v.includes(de)}function $(de){return["transition-group","TransitionGroup"].includes(de)}function G(de){return["id","class","role","style"].includes(de)||de.startsWith("data-")||de.startsWith("aria-")||de.startsWith("on")}function ee(de){return de.reduce(function(ae,fe){var Te=B(fe,2),ve=Te[0],Me=Te[1];return ae[ve]=Me,ae},{})}function A(de){var ae=de.$attrs,fe=de.componentData,Te=fe===void 0?{}:fe,ve=ee(Object.entries(ae).filter(function(Me){var Ke=B(Me,2),be=Ke[0];return Ke[1],G(be)}));return R(R({},ve),Te)}function E(de){var ae=de.$attrs,fe=de.callBackBuilder,Te=ee(U(ae));Object.entries(fe).forEach(function(Me){var Ke=B(Me,2),be=Ke[0],Se=Ke[1];g[be].forEach(function(qe){Te["on".concat(qe)]=Se(qe)})});var ve="[data-draggable]".concat(Te.draggable||"");return R(R({},Te),{},{draggable:ve})}function U(de){return Object.entries(de).filter(function(ae){var fe=B(ae,2),Te=fe[0];return fe[1],!G(Te)}).map(function(ae){var fe=B(ae,2),Te=fe[0],ve=fe[1];return[l(Te),ve]}).filter(function(ae){var fe=B(ae,2),Te=fe[0];return fe[1],!s(Te)})}u("c740");function K(de,ae){if(!(de instanceof ae))throw new TypeError("Cannot call a class as a function")}function Z(de,ae){for(var fe=0;fe<ae.length;fe++){var Te=ae[fe];Te.enumerable=Te.enumerable||!1,Te.configurable=!0,"value"in Te&&(Te.writable=!0),Object.defineProperty(de,Te.key,Te)}}function b(de,ae,fe){return ae&&Z(de.prototype,ae),fe&&Z(de,fe),de}var y=function(ae){var fe=ae.el;return fe},O=function(ae,fe){return ae.__draggable_context=fe},q=function(ae){return ae.__draggable_context},X=function(){function de(ae){var fe=ae.nodes,Te=fe.header,ve=fe.default,Me=fe.footer,Ke=ae.root,be=ae.realList;K(this,de),this.defaultNodes=ve,this.children=[].concat(Y(Te),Y(ve),Y(Me)),this.externalComponent=Ke.externalComponent,this.rootTransition=Ke.transition,this.tag=Ke.tag,this.realList=be}return b(de,[{key:"render",value:function(fe,Te){var ve=this.tag,Me=this.children,Ke=this._isRootComponent,be=Ke?{default:function(){return Me}}:Me;return fe(ve,Te,be)}},{key:"updated",value:function(){var fe=this.defaultNodes,Te=this.realList;fe.forEach(function(ve,Me){O(y(ve),{element:Te[Me],index:Me})})}},{key:"getUnderlyingVm",value:function(fe){return q(fe)}},{key:"getVmIndexFromDomIndex",value:function(fe,Te){var ve=this.defaultNodes,Me=ve.length,Ke=Te.children,be=Ke.item(fe);if(be===null)return Me;var Se=q(be);if(Se)return Se.index;if(Me===0)return 0;var qe=y(ve[0]),ye=Y(Ke).findIndex(function(_e){return _e===qe});return fe<ye?0:Me}},{key:"_isRootComponent",get:function(){return this.externalComponent||this.rootTransition}}]),de}(),D=u("8bbf");function N(de,ae){var fe=de[ae];return fe?fe():[]}function j(de){var ae=de.$slots,fe=de.realList,Te=de.getKey,ve=fe||[],Me=["header","footer"].map(function(_e){return N(ae,_e)}),Ke=B(Me,2),be=Ke[0],Se=Ke[1],qe=ae.item;if(!qe)throw new Error("draggable element must have an item slot");var ye=ve.flatMap(function(_e,Ve){return qe({element:_e,index:Ve}).map(function(ge){return ge.key=Te(_e),ge.props=R(R({},ge.props||{}),{},{"data-draggable":!0}),ge})});if(ye.length!==ve.length)throw new Error("Item slot must have only one child");return{header:be,footer:Se,default:ye}}function z(de){var ae=$(de),fe=!T(de)&&!ae;return{transition:ae,externalComponent:fe,tag:fe?Object(D.resolveComponent)(de):ae?D.TransitionGroup:de}}function se(de){var ae=de.$slots,fe=de.tag,Te=de.realList,ve=de.getKey,Me=j({$slots:ae,realList:Te,getKey:ve}),Ke=z(fe);return new X({nodes:Me,root:Ke,realList:Te})}function te(de,ae){var fe=this;Object(D.nextTick)(function(){return fe.$emit(de.toLowerCase(),ae)})}function ne(de){var ae=this;return function(fe,Te){if(ae.realList!==null)return ae["onDrag".concat(de)](fe,Te)}}function Ee(de){var ae=this,fe=ne.call(this,de);return function(Te,ve){fe.call(ae,Te,ve),te.call(ae,de,Te)}}var Q=null,ue={list:{type:Array,required:!1,default:null},modelValue:{type:Array,required:!1,default:null},itemKey:{type:[String,Function],required:!0},clone:{type:Function,default:function(ae){return ae}},tag:{type:String,default:"div"},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},le=["update:modelValue","change"].concat(Y([].concat(Y(g.manageAndEmit),Y(g.emit)).map(function(de){return de.toLowerCase()}))),ce=Object(D.defineComponent)({name:"draggable",inheritAttrs:!1,props:ue,emits:le,data:function(){return{error:!1}},render:function(){try{this.error=!1;var ae=this.$slots,fe=this.$attrs,Te=this.tag,ve=this.componentData,Me=this.realList,Ke=this.getKey,be=se({$slots:ae,tag:Te,realList:Me,getKey:Ke});this.componentStructure=be;var Se=A({$attrs:fe,componentData:ve});return be.render(D.h,Se)}catch(qe){return this.error=!0,Object(D.h)("pre",{style:{color:"red"}},qe.stack)}},created:function(){this.list!==null&&this.modelValue!==null&&_.a.error("modelValue and list props are mutually exclusive! Please set one or another.")},mounted:function(){var ae=this;if(!this.error){var fe=this.$attrs,Te=this.$el,ve=this.componentStructure;ve.updated();var Me=E({$attrs:fe,callBackBuilder:{manageAndEmit:function(Se){return Ee.call(ae,Se)},emit:function(Se){return te.bind(ae,Se)},manage:function(Se){return ne.call(ae,Se)}}}),Ke=Te.nodeType===1?Te:Te.parentElement;this._sortable=new J.a(Ke,Me),this.targetDomElement=Ke,Ke.__draggable_component__=this}},updated:function(){this.componentStructure.updated()},beforeUnmount:function(){this._sortable!==void 0&&this._sortable.destroy()},computed:{realList:function(){var ae=this.list;return ae||this.modelValue},getKey:function(){var ae=this.itemKey;return typeof ae=="function"?ae:function(fe){return fe[ae]}}},watch:{$attrs:{handler:function(ae){var fe=this._sortable;fe&&U(ae).forEach(function(Te){var ve=B(Te,2),Me=ve[0],Ke=ve[1];fe.option(Me,Ke)})},deep:!0}},methods:{getUnderlyingVm:function(ae){return this.componentStructure.getUnderlyingVm(ae)||null},getUnderlyingPotencialDraggableComponent:function(ae){return ae.__draggable_component__},emitChanges:function(ae){var fe=this;Object(D.nextTick)(function(){return fe.$emit("change",ae)})},alterList:function(ae){if(this.list){ae(this.list);return}var fe=Y(this.modelValue);ae(fe),this.$emit("update:modelValue",fe)},spliceList:function(){var ae=arguments,fe=function(ve){return ve.splice.apply(ve,Y(ae))};this.alterList(fe)},updatePosition:function(ae,fe){var Te=function(Me){return Me.splice(fe,0,Me.splice(ae,1)[0])};this.alterList(Te)},getRelatedContextFromMoveEvent:function(ae){var fe=ae.to,Te=ae.related,ve=this.getUnderlyingPotencialDraggableComponent(fe);if(!ve)return{component:ve};var Me=ve.realList,Ke={list:Me,component:ve};if(fe!==Te&&Me){var be=ve.getUnderlyingVm(Te)||{};return R(R({},be),Ke)}return Ke},getVmIndexFromDomIndex:function(ae){return this.componentStructure.getVmIndexFromDomIndex(ae,this.targetDomElement)},onDragStart:function(ae){this.context=this.getUnderlyingVm(ae.item),ae.item._underlying_vm_=this.clone(this.context.element),Q=ae.item},onDragAdd:function(ae){var fe=ae.item._underlying_vm_;if(fe!==void 0){V(ae.item);var Te=this.getVmIndexFromDomIndex(ae.newIndex);this.spliceList(Te,0,fe);var ve={element:fe,newIndex:Te};this.emitChanges({added:ve})}},onDragRemove:function(ae){if(oe(this.$el,ae.item,ae.oldIndex),ae.pullMode==="clone"){V(ae.clone);return}var fe=this.context,Te=fe.index,ve=fe.element;this.spliceList(Te,1);var Me={element:ve,oldIndex:Te};this.emitChanges({removed:Me})},onDragUpdate:function(ae){V(ae.item),oe(ae.from,ae.item,ae.oldIndex);var fe=this.context.index,Te=this.getVmIndexFromDomIndex(ae.newIndex);this.updatePosition(fe,Te);var ve={element:this.context.element,oldIndex:fe,newIndex:Te};this.emitChanges({moved:ve})},computeFutureIndex:function(ae,fe){if(!ae.element)return 0;var Te=Y(fe.to.children).filter(function(be){return be.style.display!=="none"}),ve=Te.indexOf(fe.related),Me=ae.component.getVmIndexFromDomIndex(ve),Ke=Te.indexOf(Q)!==-1;return Ke||!fe.willInsertAfter?Me:Me+1},onDragMove:function(ae,fe){var Te=this.move,ve=this.realList;if(!Te||!ve)return!0;var Me=this.getRelatedContextFromMoveEvent(ae),Ke=this.computeFutureIndex(Me,ae),be=R(R({},this.context),{},{futureIndex:Ke}),Se=R(R({},ae),{},{relatedContext:Me,draggedContext:be});return Te(Se,fe)},onDragEnd:function(){Q=null}}}),pe=ce;n.default=pe},fb6a:function(a,n,u){var c=u("23e7"),d=u("861d"),m=u("e8b5"),M=u("23cb"),S=u("50c4"),R=u("fc6a"),C=u("8418"),P=u("b622"),k=u("1dde"),L=u("ae40"),I=k("slice"),B=L("slice",{ACCESSORS:!0,0:0,1:2}),H=P("species"),F=[].slice,W=Math.max;c({target:"Array",proto:!0,forced:!I||!B},{slice:function(ie,J){var V=R(this),oe=S(V.length),_=M(ie,oe),o=M(J===void 0?oe:J,oe),f,l,h;if(m(V)&&(f=V.constructor,typeof f=="function"&&(f===Array||m(f.prototype))?f=void 0:d(f)&&(f=f[H],f===null&&(f=void 0)),f===Array||f===void 0))return F.call(V,_,o);for(l=new(f===void 0?Array:f)(W(o-_,0)),h=0;_<o;_++,h++)_ in V&&C(l,h,V[_]);return l.length=h,l}})},fc6a:function(a,n,u){var c=u("44ad"),d=u("1d80");a.exports=function(m){return c(d(m))}},fdbc:function(a,n){a.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(a,n,u){var c=u("4930");a.exports=c&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}}).default})})(X6);var bD=X6.exports;const HV=Lo(bD);var Su={};Su.version="1.0.0";Su.encode=function(t){return t.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")};Su.decode=function(t){return t+=Array(5-t.length%4).join("="),t=t.replace(/\-/g,"+").replace(/\_/g,"/"),new ke.Buffer(t,"base64")};Su.validate=function(t){return/^[A-Za-z0-9\-_]+$/.test(t)};var qV=Su,ct={},Dp={exports:{}},kd=65536,wD=4294967295;function _D(){throw new Error(`Secure random number generation is not supported by this browser.
+Use Chrome, Firefox or Internet Explorer 11`)}var MD=pt().Buffer,Jl=Ye.crypto||Ye.msCrypto;Jl&&Jl.getRandomValues?Dp.exports=SD:Dp.exports=_D;function SD(e,t){if(e>wD)throw new RangeError("requested too many random bytes");var r=MD.allocUnsafe(e);if(e>0)if(e>kd)for(var i=0;i<e;i+=kd)Jl.getRandomValues(r.slice(i,i+kd));else Jl.getRandomValues(r);return typeof t=="function"?we.nextTick(function(){t(null,r)}):r}var Ds=Dp.exports,Fp={exports:{}},J6=Or.EventEmitter,$d,rb;function xD(){if(rb)return $d;rb=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return $d=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),$d}function ED(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(jp,this,e)):we.nextTick(jp,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(ml,r):(r._writableState.errorEmitted=!0,we.nextTick(ib,r,n)):we.nextTick(ib,r,n):t?(we.nextTick(ml,r),t(n)):we.nextTick(ml,r)}),this)}function ib(e,t){jp(e,t),ml(e)}function ml(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function RD(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function jp(e,t){e.emit("error",t)}function AD(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var Q6={destroy:ED,undestroy:RD,errorOrDestroy:AD},Aa={};function TD(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var eS={};function Mi(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){TD(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,eS[e]=a}function nb(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function OD(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function ID(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function PD(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}Mi("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Mi("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&OD(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(ID(e," argument"))a="The ".concat(e," ").concat(i," ").concat(nb(t,"type"));else{var n=PD(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(nb(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);Mi("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Mi("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Mi("ERR_STREAM_PREMATURE_CLOSE","Premature close");Mi("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Mi("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Mi("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Mi("ERR_STREAM_WRITE_AFTER_END","write after end");Mi("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Mi("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Mi("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Aa.codes=eS;var CD=Aa.codes.ERR_INVALID_OPT_VALUE;function BD(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function LD(e,t,r,i){var a=BD(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new CD(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var tS={getHighWaterMark:LD},Dd,ob;function rS(){if(ob)return Dd;ob=1,Dd=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=J6,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=Q6,m=tS,M=m.getHighWaterMark,S=Aa.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||bs(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||bs();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},Dd}var Fd,ab;function bs(){if(ab)return Fd;ab=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};Fd=u;var t=nS(),r=rS();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),Fd}var sb=Aa.codes.ERR_STREAM_PREMATURE_CLOSE;function ND(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function kD(){}function $D(e){return e.setHeader&&typeof e.abort=="function"}function iS(e,t,r){if(typeof t=="function")return iS(e,null,t);t||(t={}),r=ND(r||kD);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new sb),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new sb),r.call(e,P)},R=function(){e.req.on("finish",c)};return $D(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var pg=iS,jd,fb;function DD(){if(fb)return jd;fb=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=pg,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return jd=B,jd}var Ud,ub;function FD(){return ub||(ub=1,Ud=function(){throw new Error("Readable.from is not available in the browser")}),Ud}var Hd,lb;function nS(){if(lb)return Hd;lb=1,Hd=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=J6,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=xD(),M=Q6,S=tS,R=S.getHighWaterMark,C=Aa.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||bs(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||bs(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=DD()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=FD()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return Hd}var oS=Fn,zh=Aa.codes,jD=zh.ERR_METHOD_NOT_IMPLEMENTED,UD=zh.ERR_MULTIPLE_CALLBACK,HD=zh.ERR_TRANSFORM_ALREADY_TRANSFORMING,qD=zh.ERR_TRANSFORM_WITH_LENGTH_0,Gh=bs();Ze(Fn,Gh);function WD(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new UD);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function Fn(e){if(!(this instanceof Fn))return new Fn(e);Gh.call(this,e),this._transformState={afterTransform:WD.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",KD)}function KD(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){hb(e,t,r)}):hb(this,null,null)}Fn.prototype.push=function(e,t){return this._transformState.needTransform=!1,Gh.prototype.push.call(this,e,t)};Fn.prototype._transform=function(e,t,r){r(new jD("_transform()"))};Fn.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};Fn.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Fn.prototype._destroy=function(e,t){Gh.prototype._destroy.call(this,e,function(r){t(r)})};function hb(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new qD;if(e._transformState.transforming)throw new HD;return e.push(null)}var VD=nu,aS=oS;Ze(nu,aS);function nu(e){if(!(this instanceof nu))return new nu(e);aS.call(this,e)}nu.prototype._transform=function(e,t,r){r(null,e)};var qd;function zD(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var sS=Aa.codes,GD=sS.ERR_MISSING_ARGS,YD=sS.ERR_STREAM_DESTROYED;function cb(e){if(e)throw e}function ZD(e){return e.setHeader&&typeof e.abort=="function"}function XD(e,t,r,i){i=zD(i);var a=!1;e.on("close",function(){a=!0}),qd===void 0&&(qd=pg),qd(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,ZD(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new YD("pipe"))}}}function db(e){e()}function JD(e,t){return e.pipe(t)}function QD(e){return!e.length||typeof e[e.length-1]!="function"?cb:e.pop()}function eF(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=QD(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new GD("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return XD(u,d,m,function(M){a||(a=M),M&&n.forEach(db),!d&&(n.forEach(db),i(a))})});return t.reduce(JD)}var tF=eF;(function(e,t){t=e.exports=nS(),t.Stream=t,t.Readable=t,t.Writable=rS(),t.Duplex=bs(),t.Transform=oS,t.PassThrough=VD,t.finished=pg,t.pipeline=tF})(Fp,Fp.exports);var rF=Fp.exports,Ql=pt().Buffer,fS=rF.Transform,iF=Ze;function nF(e,t){if(!Ql.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function ko(e){fS.call(this),this._block=Ql.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}iF(ko,fS);ko.prototype._transform=function(e,t,r){var i=null;try{this.update(e,t)}catch(a){i=a}r(i)};ko.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};ko.prototype.update=function(e,t){if(nF(e,"Data"),this._finalized)throw new Error("Digest already called");Ql.isBuffer(e)||(e=Ql.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var a=this._blockOffset;a<this._blockSize;)r[a++]=e[i++];this._update(),this._blockOffset=0}for(;i<e.length;)r[this._blockOffset++]=e[i++];for(var n=0,u=e.length*8;u>0;++n)this._length[n]+=u,u=this._length[n]/4294967296|0,u>0&&(this._length[n]-=4294967296*u);return this};ko.prototype._update=function(){throw new Error("_update is not implemented")};ko.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};ko.prototype._digest=function(){throw new Error("_digest is not implemented")};var uS=ko,oF=Ze,lS=uS,aF=pt().Buffer,sF=new Array(16);function Yh(){lS.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}oF(Yh,lS);Yh.prototype._update=function(){for(var e=sF,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);var r=this._a,i=this._b,a=this._c,n=this._d;r=_r(r,i,a,n,e[0],3614090360,7),n=_r(n,r,i,a,e[1],3905402710,12),a=_r(a,n,r,i,e[2],606105819,17),i=_r(i,a,n,r,e[3],3250441966,22),r=_r(r,i,a,n,e[4],4118548399,7),n=_r(n,r,i,a,e[5],1200080426,12),a=_r(a,n,r,i,e[6],2821735955,17),i=_r(i,a,n,r,e[7],4249261313,22),r=_r(r,i,a,n,e[8],1770035416,7),n=_r(n,r,i,a,e[9],2336552879,12),a=_r(a,n,r,i,e[10],4294925233,17),i=_r(i,a,n,r,e[11],2304563134,22),r=_r(r,i,a,n,e[12],1804603682,7),n=_r(n,r,i,a,e[13],4254626195,12),a=_r(a,n,r,i,e[14],2792965006,17),i=_r(i,a,n,r,e[15],1236535329,22),r=Mr(r,i,a,n,e[1],4129170786,5),n=Mr(n,r,i,a,e[6],3225465664,9),a=Mr(a,n,r,i,e[11],643717713,14),i=Mr(i,a,n,r,e[0],3921069994,20),r=Mr(r,i,a,n,e[5],3593408605,5),n=Mr(n,r,i,a,e[10],38016083,9),a=Mr(a,n,r,i,e[15],3634488961,14),i=Mr(i,a,n,r,e[4],3889429448,20),r=Mr(r,i,a,n,e[9],568446438,5),n=Mr(n,r,i,a,e[14],3275163606,9),a=Mr(a,n,r,i,e[3],4107603335,14),i=Mr(i,a,n,r,e[8],1163531501,20),r=Mr(r,i,a,n,e[13],2850285829,5),n=Mr(n,r,i,a,e[2],4243563512,9),a=Mr(a,n,r,i,e[7],1735328473,14),i=Mr(i,a,n,r,e[12],2368359562,20),r=Sr(r,i,a,n,e[5],4294588738,4),n=Sr(n,r,i,a,e[8],2272392833,11),a=Sr(a,n,r,i,e[11],1839030562,16),i=Sr(i,a,n,r,e[14],4259657740,23),r=Sr(r,i,a,n,e[1],2763975236,4),n=Sr(n,r,i,a,e[4],1272893353,11),a=Sr(a,n,r,i,e[7],4139469664,16),i=Sr(i,a,n,r,e[10],3200236656,23),r=Sr(r,i,a,n,e[13],681279174,4),n=Sr(n,r,i,a,e[0],3936430074,11),a=Sr(a,n,r,i,e[3],3572445317,16),i=Sr(i,a,n,r,e[6],76029189,23),r=Sr(r,i,a,n,e[9],3654602809,4),n=Sr(n,r,i,a,e[12],3873151461,11),a=Sr(a,n,r,i,e[15],530742520,16),i=Sr(i,a,n,r,e[2],3299628645,23),r=xr(r,i,a,n,e[0],4096336452,6),n=xr(n,r,i,a,e[7],1126891415,10),a=xr(a,n,r,i,e[14],2878612391,15),i=xr(i,a,n,r,e[5],4237533241,21),r=xr(r,i,a,n,e[12],1700485571,6),n=xr(n,r,i,a,e[3],2399980690,10),a=xr(a,n,r,i,e[10],4293915773,15),i=xr(i,a,n,r,e[1],2240044497,21),r=xr(r,i,a,n,e[8],1873313359,6),n=xr(n,r,i,a,e[15],4264355552,10),a=xr(a,n,r,i,e[6],2734768916,15),i=xr(i,a,n,r,e[13],1309151649,21),r=xr(r,i,a,n,e[4],4149444226,6),n=xr(n,r,i,a,e[11],3174756917,10),a=xr(a,n,r,i,e[2],718787259,15),i=xr(i,a,n,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+i|0,this._c=this._c+a|0,this._d=this._d+n|0};Yh.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=aF.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e};function Zh(e,t){return e<<t|e>>>32-t}function _r(e,t,r,i,a,n,u){return Zh(e+(t&r|~t&i)+a+n|0,u)+t|0}function Mr(e,t,r,i,a,n,u){return Zh(e+(t&i|r&~i)+a+n|0,u)+t|0}function Sr(e,t,r,i,a,n,u){return Zh(e+(t^r^i)+a+n|0,u)+t|0}function xr(e,t,r,i,a,n,u){return Zh(e+(r^(t|~i))+a+n|0,u)+t|0}var vg=Yh,Wd=ke.Buffer,fF=Ze,hS=uS,uF=new Array(16),lf=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],hf=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],cf=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],df=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],pf=[0,1518500249,1859775393,2400959708,2840853838],vf=[1352829926,1548603684,1836072691,2053994217,0];function Xh(){hS.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}fF(Xh,hS);Xh.prototype._update=function(){for(var e=uF,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);for(var r=this._a|0,i=this._b|0,a=this._c|0,n=this._d|0,u=this._e|0,c=this._a|0,d=this._b|0,m=this._c|0,M=this._d|0,S=this._e|0,R=0;R<80;R+=1){var C,P;R<16?(C=pb(r,i,a,n,u,e[lf[R]],pf[0],cf[R]),P=yb(c,d,m,M,S,e[hf[R]],vf[0],df[R])):R<32?(C=vb(r,i,a,n,u,e[lf[R]],pf[1],cf[R]),P=mb(c,d,m,M,S,e[hf[R]],vf[1],df[R])):R<48?(C=gb(r,i,a,n,u,e[lf[R]],pf[2],cf[R]),P=gb(c,d,m,M,S,e[hf[R]],vf[2],df[R])):R<64?(C=mb(r,i,a,n,u,e[lf[R]],pf[3],cf[R]),P=vb(c,d,m,M,S,e[hf[R]],vf[3],df[R])):(C=yb(r,i,a,n,u,e[lf[R]],pf[4],cf[R]),P=pb(c,d,m,M,S,e[hf[R]],vf[4],df[R])),r=u,u=n,n=ca(a,10),a=i,i=C,c=S,S=M,M=ca(m,10),m=d,d=P}var k=this._b+a+M|0;this._b=this._c+n+S|0,this._c=this._d+u+c|0,this._d=this._e+r+d|0,this._e=this._a+i+m|0,this._a=k};Xh.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=Wd.alloc?Wd.alloc(20):new Wd(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e};function ca(e,t){return e<<t|e>>>32-t}function pb(e,t,r,i,a,n,u,c){return ca(e+(t^r^i)+n+u|0,c)+a|0}function vb(e,t,r,i,a,n,u,c){return ca(e+(t&r|~t&i)+n+u|0,c)+a|0}function gb(e,t,r,i,a,n,u,c){return ca(e+((t|~r)^i)+n+u|0,c)+a|0}function mb(e,t,r,i,a,n,u,c){return ca(e+(t&i|r&~i)+n+u|0,c)+a|0}function yb(e,t,r,i,a,n,u,c){return ca(e+(t^(r|~i))+n+u|0,c)+a|0}var gg=Xh,cS={exports:{}},dS=pt().Buffer;function Jh(e,t){this._block=dS.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}Jh.prototype.update=function(e,t){typeof e=="string"&&(t=t||"utf8",e=dS.from(e,t));for(var r=this._block,i=this._blockSize,a=e.length,n=this._len,u=0;u<a;){for(var c=n%i,d=Math.min(a-u,i-c),m=0;m<d;m++)r[c+m]=e[u+m];n+=d,u+=d,n%i===0&&this._update(r)}return this._len+=a,this};Jh.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var i=(r&4294967295)>>>0,a=(r-i)/4294967296;this._block.writeUInt32BE(a,this._blockSize-8),this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var n=this._hash();return e?n.toString(e):n};Jh.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var Fs=Jh,lF=Ze,pS=Fs,hF=pt().Buffer,cF=[1518500249,1859775393,-1894007588,-899497514],dF=new Array(80);function xu(){this.init(),this._w=dF,pS.call(this,64,56)}lF(xu,pS);xu.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function pF(e){return e<<5|e>>>27}function vF(e){return e<<30|e>>>2}function gF(e,t,r,i){return e===0?t&r|~t&i:e===2?t&r|t&i|r&i:t^r^i}xu.prototype._update=function(e){for(var t=this._w,r=this._a|0,i=this._b|0,a=this._c|0,n=this._d|0,u=this._e|0,c=0;c<16;++c)t[c]=e.readInt32BE(c*4);for(;c<80;++c)t[c]=t[c-3]^t[c-8]^t[c-14]^t[c-16];for(var d=0;d<80;++d){var m=~~(d/20),M=pF(r)+gF(m,i,a,n)+u+t[d]+cF[m]|0;u=n,n=a,a=vF(i),i=r,r=M}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=n+this._d|0,this._e=u+this._e|0};xu.prototype._hash=function(){var e=hF.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var mF=xu,yF=Ze,vS=Fs,bF=pt().Buffer,wF=[1518500249,1859775393,-1894007588,-899497514],_F=new Array(80);function Eu(){this.init(),this._w=_F,vS.call(this,64,56)}yF(Eu,vS);Eu.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function MF(e){return e<<1|e>>>31}function SF(e){return e<<5|e>>>27}function xF(e){return e<<30|e>>>2}function EF(e,t,r,i){return e===0?t&r|~t&i:e===2?t&r|t&i|r&i:t^r^i}Eu.prototype._update=function(e){for(var t=this._w,r=this._a|0,i=this._b|0,a=this._c|0,n=this._d|0,u=this._e|0,c=0;c<16;++c)t[c]=e.readInt32BE(c*4);for(;c<80;++c)t[c]=MF(t[c-3]^t[c-8]^t[c-14]^t[c-16]);for(var d=0;d<80;++d){var m=~~(d/20),M=SF(r)+EF(m,i,a,n)+u+t[d]+wF[m]|0;u=n,n=a,a=xF(i),i=r,r=M}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=n+this._d|0,this._e=u+this._e|0};Eu.prototype._hash=function(){var e=bF.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var RF=Eu,AF=Ze,gS=Fs,TF=pt().Buffer,OF=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],IF=new Array(64);function Ru(){this.init(),this._w=IF,gS.call(this,64,56)}AF(Ru,gS);Ru.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function PF(e,t,r){return r^e&(t^r)}function CF(e,t,r){return e&t|r&(e|t)}function BF(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function LF(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function NF(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function kF(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}Ru.prototype._update=function(e){for(var t=this._w,r=this._a|0,i=this._b|0,a=this._c|0,n=this._d|0,u=this._e|0,c=this._f|0,d=this._g|0,m=this._h|0,M=0;M<16;++M)t[M]=e.readInt32BE(M*4);for(;M<64;++M)t[M]=kF(t[M-2])+t[M-7]+NF(t[M-15])+t[M-16]|0;for(var S=0;S<64;++S){var R=m+LF(u)+PF(u,c,d)+OF[S]+t[S]|0,C=BF(r)+CF(r,i,a)|0;m=d,d=c,c=u,u=n+R|0,n=a,a=i,i=r,r=R+C|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=n+this._d|0,this._e=u+this._e|0,this._f=c+this._f|0,this._g=d+this._g|0,this._h=m+this._h|0};Ru.prototype._hash=function(){var e=TF.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e};var mS=Ru,$F=Ze,DF=mS,FF=Fs,jF=pt().Buffer,UF=new Array(64);function Qh(){this.init(),this._w=UF,FF.call(this,64,56)}$F(Qh,DF);Qh.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};Qh.prototype._hash=function(){var e=jF.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e};var HF=Qh,qF=Ze,yS=Fs,WF=pt().Buffer,bb=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],KF=new Array(160);function Au(){this.init(),this._w=KF,yS.call(this,128,112)}qF(Au,yS);Au.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function wb(e,t,r){return r^e&(t^r)}function _b(e,t,r){return e&t|r&(e|t)}function Mb(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function Sb(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function VF(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function zF(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function GF(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function YF(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function sr(e,t){return e>>>0<t>>>0?1:0}Au.prototype._update=function(e){for(var t=this._w,r=this._ah|0,i=this._bh|0,a=this._ch|0,n=this._dh|0,u=this._eh|0,c=this._fh|0,d=this._gh|0,m=this._hh|0,M=this._al|0,S=this._bl|0,R=this._cl|0,C=this._dl|0,P=this._el|0,k=this._fl|0,L=this._gl|0,I=this._hl|0,B=0;B<32;B+=2)t[B]=e.readInt32BE(B*4),t[B+1]=e.readInt32BE(B*4+4);for(;B<160;B+=2){var H=t[B-30],F=t[B-15*2+1],W=VF(H,F),Y=zF(F,H);H=t[B-2*2],F=t[B-2*2+1];var ie=GF(H,F),J=YF(F,H),V=t[B-7*2],oe=t[B-7*2+1],_=t[B-16*2],o=t[B-16*2+1],f=Y+oe|0,l=W+V+sr(f,Y)|0;f=f+J|0,l=l+ie+sr(f,J)|0,f=f+o|0,l=l+_+sr(f,o)|0,t[B]=l,t[B+1]=f}for(var h=0;h<160;h+=2){l=t[h],f=t[h+1];var p=_b(r,i,a),w=_b(M,S,R),x=Mb(r,M),g=Mb(M,r),s=Sb(u,P),v=Sb(P,u),T=bb[h],$=bb[h+1],G=wb(u,c,d),ee=wb(P,k,L),A=I+v|0,E=m+s+sr(A,I)|0;A=A+ee|0,E=E+G+sr(A,ee)|0,A=A+$|0,E=E+T+sr(A,$)|0,A=A+f|0,E=E+l+sr(A,f)|0;var U=g+w|0,K=x+p+sr(U,g)|0;m=d,I=L,d=c,L=k,c=u,k=P,P=C+A|0,u=n+E+sr(P,C)|0,n=a,C=R,a=i,R=S,i=r,S=M,M=A+U|0,r=E+K+sr(M,A)|0}this._al=this._al+M|0,this._bl=this._bl+S|0,this._cl=this._cl+R|0,this._dl=this._dl+C|0,this._el=this._el+P|0,this._fl=this._fl+k|0,this._gl=this._gl+L|0,this._hl=this._hl+I|0,this._ah=this._ah+r+sr(this._al,M)|0,this._bh=this._bh+i+sr(this._bl,S)|0,this._ch=this._ch+a+sr(this._cl,R)|0,this._dh=this._dh+n+sr(this._dl,C)|0,this._eh=this._eh+u+sr(this._el,P)|0,this._fh=this._fh+c+sr(this._fl,k)|0,this._gh=this._gh+d+sr(this._gl,L)|0,this._hh=this._hh+m+sr(this._hl,I)|0};Au.prototype._hash=function(){var e=WF.allocUnsafe(64);function t(r,i,a){e.writeInt32BE(r,a),e.writeInt32BE(i,a+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e};var bS=Au,ZF=Ze,XF=bS,JF=Fs,QF=pt().Buffer,ej=new Array(160);function ec(){this.init(),this._w=ej,JF.call(this,128,112)}ZF(ec,XF);ec.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};ec.prototype._hash=function(){var e=QF.allocUnsafe(48);function t(r,i,a){e.writeInt32BE(r,a),e.writeInt32BE(i,a+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e};var tj=ec,Ta=cS.exports=function(t){t=t.toLowerCase();var r=Ta[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};Ta.sha=mF;Ta.sha1=RF;Ta.sha224=HF;Ta.sha256=mS;Ta.sha384=tj;Ta.sha512=bS;var mg=cS.exports,Kd,xb;function wS(){return xb||(xb=1,Kd=Or.EventEmitter),Kd}var Vd,Eb;function rj(){if(Eb)return Vd;Eb=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return Vd=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),Vd}var zd,Rb;function _S(){if(Rb)return zd;Rb=1;function e(u,c){var d=this,m=this._readableState&&this._readableState.destroyed,M=this._writableState&&this._writableState.destroyed;return m||M?(c?c(u):u&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(a,this,u)):we.nextTick(a,this,u)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(u||null,function(S){!c&&S?d._writableState?d._writableState.errorEmitted?we.nextTick(r,d):(d._writableState.errorEmitted=!0,we.nextTick(t,d,S)):we.nextTick(t,d,S):c?(we.nextTick(r,d),c(S)):we.nextTick(r,d)}),this)}function t(u,c){a(u,c),r(u)}function r(u){u._writableState&&!u._writableState.emitClose||u._readableState&&!u._readableState.emitClose||u.emit("close")}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(u,c){u.emit("error",c)}function n(u,c){var d=u._readableState,m=u._writableState;d&&d.autoDestroy||m&&m.autoDestroy?u.destroy(c):u.emit("error",c)}return zd={destroy:e,undestroy:i,errorOrDestroy:n},zd}var Gd={},Ab;function js(){if(Ab)return Gd;Ab=1;function e(c,d){c.prototype=Object.create(d.prototype),c.prototype.constructor=c,c.__proto__=d}var t={};function r(c,d,m){m||(m=Error);function M(R,C,P){return typeof d=="string"?d:d(R,C,P)}var S=function(R){e(C,R);function C(P,k,L){return R.call(this,M(P,k,L))||this}return C}(m);S.prototype.name=m.name,S.prototype.code=c,t[c]=S}function i(c,d){if(Array.isArray(c)){var m=c.length;return c=c.map(function(M){return String(M)}),m>2?"one of ".concat(d," ").concat(c.slice(0,m-1).join(", "),", or ")+c[m-1]:m===2?"one of ".concat(d," ").concat(c[0]," or ").concat(c[1]):"of ".concat(d," ").concat(c[0])}else return"of ".concat(d," ").concat(String(c))}function a(c,d,m){return c.substr(!m||m<0?0:+m,d.length)===d}function n(c,d,m){return(m===void 0||m>c.length)&&(m=c.length),c.substring(m-d.length,m)===d}function u(c,d,m){return typeof m!="number"&&(m=0),m+d.length>c.length?!1:c.indexOf(d,m)!==-1}return r("ERR_INVALID_OPT_VALUE",function(c,d){return'The value "'+d+'" is invalid for option "'+c+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(c,d,m){var M;typeof d=="string"&&a(d,"not ")?(M="must not be",d=d.replace(/^not /,"")):M="must be";var S;if(n(c," argument"))S="The ".concat(c," ").concat(M," ").concat(i(d,"type"));else{var R=u(c,".")?"property":"argument";S='The "'.concat(c,'" ').concat(R," ").concat(M," ").concat(i(d,"type"))}return S+=". Received type ".concat(typeof m),S},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(c){return"The "+c+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(c){return"Cannot call "+c+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(c){return"Unknown encoding: "+c},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Gd.codes=t,Gd}var Yd,Tb;function MS(){if(Tb)return Yd;Tb=1;var e=js().codes.ERR_INVALID_OPT_VALUE;function t(i,a,n){return i.highWaterMark!=null?i.highWaterMark:a?i[n]:null}function r(i,a,n,u){var c=t(a,u,n);if(c!=null){if(!(isFinite(c)&&Math.floor(c)===c)||c<0){var d=u?n:"highWaterMark";throw new e(d,c)}return Math.floor(c)}return i.objectMode?16:16*1024}return Yd={getHighWaterMark:r},Yd}var Zd,Ob;function SS(){if(Ob)return Zd;Ob=1,Zd=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=wS(),a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=_S(),m=MS(),M=m.getHighWaterMark,S=js().codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||ws(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||ws();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},Zd}var Xd,Ib;function ws(){if(Ib)return Xd;Ib=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};Xd=u;var t=xS(),r=SS();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),Xd}var Jd,Pb;function yg(){if(Pb)return Jd;Pb=1;var e=js().codes.ERR_STREAM_PREMATURE_CLOSE;function t(n){var u=!1;return function(){if(!u){u=!0;for(var c=arguments.length,d=new Array(c),m=0;m<c;m++)d[m]=arguments[m];n.apply(this,d)}}}function r(){}function i(n){return n.setHeader&&typeof n.abort=="function"}function a(n,u,c){if(typeof u=="function")return a(n,null,u);u||(u={}),c=t(c||r);var d=u.readable||u.readable!==!1&&n.readable,m=u.writable||u.writable!==!1&&n.writable,M=function(){n.writable||R()},S=n._writableState&&n._writableState.finished,R=function(){m=!1,S=!0,d||c.call(n)},C=n._readableState&&n._readableState.endEmitted,P=function(){d=!1,C=!0,m||c.call(n)},k=function(H){c.call(n,H)},L=function(){var H;if(d&&!C)return(!n._readableState||!n._readableState.ended)&&(H=new e),c.call(n,H);if(m&&!S)return(!n._writableState||!n._writableState.ended)&&(H=new e),c.call(n,H)},I=function(){n.req.on("finish",R)};return i(n)?(n.on("complete",R),n.on("abort",L),n.req?I():n.on("request",I)):m&&!n._writableState&&(n.on("end",M),n.on("close",M)),n.on("end",P),n.on("finish",R),u.error!==!1&&n.on("error",k),n.on("close",L),function(){n.removeListener("complete",R),n.removeListener("abort",L),n.removeListener("request",I),n.req&&n.req.removeListener("finish",R),n.removeListener("end",M),n.removeListener("close",M),n.removeListener("finish",R),n.removeListener("end",P),n.removeListener("error",k),n.removeListener("close",L)}}return Jd=a,Jd}var Qd,Cb;function ij(){if(Cb)return Qd;Cb=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=yg(),n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return Qd=B,Qd}var e0,Bb;function nj(){return Bb||(Bb=1,e0=function(){throw new Error("Readable.from is not available in the browser")}),e0}var t0,Lb;function xS(){if(Lb)return t0;Lb=1,t0=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=wS(),i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=rj(),M=_S(),S=MS(),R=S.getHighWaterMark,C=js().codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||ws(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||ws(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=ij()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=nj()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return t0}var r0,Nb;function ES(){if(Nb)return r0;Nb=1,r0=c;var e=js().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,r=e.ERR_MULTIPLE_CALLBACK,i=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=e.ERR_TRANSFORM_WITH_LENGTH_0,n=ws();Ze(c,n);function u(M,S){var R=this._transformState;R.transforming=!1;var C=R.writecb;if(C===null)return this.emit("error",new r);R.writechunk=null,R.writecb=null,S!=null&&this.push(S),C(M);var P=this._readableState;P.reading=!1,(P.needReadable||P.length<P.highWaterMark)&&this._read(P.highWaterMark)}function c(M){if(!(this instanceof c))return new c(M);n.call(this,M),this._transformState={afterTransform:u.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,M&&(typeof M.transform=="function"&&(this._transform=M.transform),typeof M.flush=="function"&&(this._flush=M.flush)),this.on("prefinish",d)}function d(){var M=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(S,R){m(M,S,R)}):m(this,null,null)}c.prototype.push=function(M,S){return this._transformState.needTransform=!1,n.prototype.push.call(this,M,S)},c.prototype._transform=function(M,S,R){R(new t("_transform()"))},c.prototype._write=function(M,S,R){var C=this._transformState;if(C.writecb=R,C.writechunk=M,C.writeencoding=S,!C.transforming){var P=this._readableState;(C.needTransform||P.needReadable||P.length<P.highWaterMark)&&this._read(P.highWaterMark)}},c.prototype._read=function(M){var S=this._transformState;S.writechunk!==null&&!S.transforming?(S.transforming=!0,this._transform(S.writechunk,S.writeencoding,S.afterTransform)):S.needTransform=!0},c.prototype._destroy=function(M,S){n.prototype._destroy.call(this,M,function(R){S(R)})};function m(M,S,R){if(S)return M.emit("error",S);if(R!=null&&M.push(R),M._writableState.length)throw new a;if(M._transformState.transforming)throw new i;return M.push(null)}return r0}var i0,kb;function oj(){if(kb)return i0;kb=1,i0=t;var e=ES();Ze(t,e);function t(r){if(!(this instanceof t))return new t(r);e.call(this,r)}return t.prototype._transform=function(r,i,a){a(null,r)},i0}var n0,$b;function aj(){if($b)return n0;$b=1;var e;function t(R){var C=!1;return function(){C||(C=!0,R.apply(void 0,arguments))}}var r=js().codes,i=r.ERR_MISSING_ARGS,a=r.ERR_STREAM_DESTROYED;function n(R){if(R)throw R}function u(R){return R.setHeader&&typeof R.abort=="function"}function c(R,C,P,k){k=t(k);var L=!1;R.on("close",function(){L=!0}),e===void 0&&(e=yg()),e(R,{readable:C,writable:P},function(B){if(B)return k(B);L=!0,k()});var I=!1;return function(B){if(!L&&!I){if(I=!0,u(R))return R.abort();if(typeof R.destroy=="function")return R.destroy();k(B||new a("pipe"))}}}function d(R){R()}function m(R,C){return R.pipe(C)}function M(R){return!R.length||typeof R[R.length-1]!="function"?n:R.pop()}function S(){for(var R=arguments.length,C=new Array(R),P=0;P<R;P++)C[P]=arguments[P];var k=M(C);if(Array.isArray(C[0])&&(C=C[0]),C.length<2)throw new i("streams");var L,I=C.map(function(B,H){var F=H<C.length-1,W=H>0;return c(B,F,W,function(Y){L||(L=Y),Y&&I.forEach(d),!F&&(I.forEach(d),k(L))})});return C.reduce(m)}return n0=S,n0}var sj=vi,bg=Or.EventEmitter,fj=Ze;fj(vi,bg);vi.Readable=xS();vi.Writable=SS();vi.Duplex=ws();vi.Transform=ES();vi.PassThrough=oj();vi.finished=yg();vi.pipeline=aj();vi.Stream=vi;function vi(){bg.call(this)}vi.prototype.pipe=function(e,t){var r=this;function i(M){e.writable&&e.write(M)===!1&&r.pause&&r.pause()}r.on("data",i);function a(){r.readable&&r.resume&&r.resume()}e.on("drain",a),!e._isStdio&&(!t||t.end!==!1)&&(r.on("end",u),r.on("close",c));var n=!1;function u(){n||(n=!0,e.end())}function c(){n||(n=!0,typeof e.destroy=="function"&&e.destroy())}function d(M){if(m(),bg.listenerCount(this,"error")===0)throw M}r.on("error",d),e.on("error",d);function m(){r.removeListener("data",i),e.removeListener("drain",a),r.removeListener("end",u),r.removeListener("close",c),r.removeListener("error",d),e.removeListener("error",d),r.removeListener("end",m),r.removeListener("close",m),e.removeListener("close",m)}return r.on("end",m),r.on("close",m),e.on("close",m),e.emit("pipe",r),e};var RS=pt().Buffer,AS=sj.Transform,uj=Xr().StringDecoder,lj=Ze;function Ui(e){AS.call(this),this.hashMode=typeof e=="string",this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}lj(Ui,AS);Ui.prototype.update=function(e,t,r){typeof e=="string"&&(e=RS.from(e,t));var i=this._update(e);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)};Ui.prototype.setAutoPadding=function(){};Ui.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};Ui.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};Ui.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};Ui.prototype._transform=function(e,t,r){var i;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(a){i=a}finally{r(i)}};Ui.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(r){t=r}e(t)};Ui.prototype._finalOrDigest=function(e){var t=this.__final()||RS.alloc(0);return e&&(t=this._toString(t,e,!0)),t};Ui.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new uj(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var i=this._decoder.write(e);return r&&(i+=this._decoder.end()),i};var $o=Ui,hj=Ze,cj=vg,dj=gg,pj=mg,TS=$o;function tc(e){TS.call(this,"digest"),this._hash=e}hj(tc,TS);tc.prototype._update=function(e){this._hash.update(e)};tc.prototype._final=function(){return this._hash.digest()};var Tu=function(t){return t=t.toLowerCase(),t==="md5"?new cj:t==="rmd160"||t==="ripemd160"?new dj:new tc(pj(t))},vj=Ze,Xo=pt().Buffer,OS=$o,gj=Xo.alloc(128),Fa=64;function rc(e,t){OS.call(this,"digest"),typeof t=="string"&&(t=Xo.from(t)),this._alg=e,this._key=t,t.length>Fa?t=e(t):t.length<Fa&&(t=Xo.concat([t,gj],Fa));for(var r=this._ipad=Xo.allocUnsafe(Fa),i=this._opad=Xo.allocUnsafe(Fa),a=0;a<Fa;a++)r[a]=t[a]^54,i[a]=t[a]^92;this._hash=[r]}vj(rc,OS);rc.prototype._update=function(e){this._hash.push(e)};rc.prototype._final=function(){var e=this._alg(Xo.concat(this._hash));return this._alg(Xo.concat([this._opad,e]))};var mj=rc,yj=vg,IS=function(e){return new yj().update(e).digest()},bj=Ze,wj=mj,PS=$o,xf=pt().Buffer,_j=IS,Up=gg,Hp=mg,Mj=xf.alloc(128);function ou(e,t){PS.call(this,"digest"),typeof t=="string"&&(t=xf.from(t));var r=e==="sha512"||e==="sha384"?128:64;if(this._alg=e,this._key=t,t.length>r){var i=e==="rmd160"?new Up:Hp(e);t=i.update(t).digest()}else t.length<r&&(t=xf.concat([t,Mj],r));for(var a=this._ipad=xf.allocUnsafe(r),n=this._opad=xf.allocUnsafe(r),u=0;u<r;u++)a[u]=t[u]^54,n[u]=t[u]^92;this._hash=e==="rmd160"?new Up:Hp(e),this._hash.update(a)}bj(ou,PS);ou.prototype._update=function(e){this._hash.update(e)};ou.prototype._final=function(){var e=this._hash.digest(),t=this._alg==="rmd160"?new Up:Hp(this._alg);return t.update(this._opad).update(e).digest()};var CS=function(t,r){return t=t.toLowerCase(),t==="rmd160"||t==="ripemd160"?new ou("rmd160",r):t==="md5"?new wj(_j,r):new ou(t,r)};const Sj={sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},xj={sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},Ej={sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},Rj={sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},Aj={sign:"ecdsa",hash:"sha256",id:""},Tj={sign:"ecdsa",hash:"sha224",id:""},Oj={sign:"ecdsa",hash:"sha384",id:""},Ij={sign:"ecdsa",hash:"sha512",id:""},Pj={sign:"dsa",hash:"sha1",id:""},Cj={sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},Bj={sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},BS={sha224WithRSAEncryption:Sj,"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:xj,"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:Ej,"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:Rj,"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:Aj,sha224:Tj,sha384:Oj,sha512:Ij,"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:Pj,"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:Cj,"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:Bj,"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}};var Lj=BS,ic={},Nj=Math.pow(2,30)-1,LS=function(e,t){if(typeof e!="number")throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if(typeof t!="number")throw new TypeError("Key length not a number");if(t<0||t>Nj||t!==t)throw new TypeError("Bad key length")},yl;if(Ye.process&&Ye.process.browser)yl="utf-8";else if(Ye.process&&Ye.process.version){var kj=parseInt(we.version.split(".")[0].slice(1),10);yl=kj>=6?"utf-8":"binary"}else yl="utf-8";var NS=yl,o0=pt().Buffer,kS=function(e,t,r){if(o0.isBuffer(e))return e;if(typeof e=="string")return o0.from(e,t);if(ArrayBuffer.isView(e))return o0.from(e.buffer);throw new TypeError(r+" must be a string, a Buffer, a typed array or a DataView")},$j=IS,Dj=gg,Fj=mg,Jo=pt().Buffer,jj=LS,Db=NS,Fb=kS,Uj=Jo.alloc(128),bl={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function $S(e,t,r){var i=Hj(e),a=e==="sha512"||e==="sha384"?128:64;t.length>a?t=i(t):t.length<a&&(t=Jo.concat([t,Uj],a));for(var n=Jo.allocUnsafe(a+bl[e]),u=Jo.allocUnsafe(a+bl[e]),c=0;c<a;c++)n[c]=t[c]^54,u[c]=t[c]^92;var d=Jo.allocUnsafe(a+r+4);n.copy(d,0,0,a),this.ipad1=d,this.ipad2=n,this.opad=u,this.alg=e,this.blocksize=a,this.hash=i,this.size=bl[e]}$S.prototype.run=function(e,t){e.copy(t,this.blocksize);var r=this.hash(t);return r.copy(this.opad,this.blocksize),this.hash(this.opad)};function Hj(e){function t(i){return Fj(e).update(i).digest()}function r(i){return new Dj().update(i).digest()}return e==="rmd160"||e==="ripemd160"?r:e==="md5"?$j:t}function qj(e,t,r,i,a){jj(r,i),e=Fb(e,Db,"Password"),t=Fb(t,Db,"Salt"),a=a||"sha1";var n=new $S(a,e,t.length),u=Jo.allocUnsafe(i),c=Jo.allocUnsafe(t.length+4);t.copy(c,0,0,t.length);for(var d=0,m=bl[a],M=Math.ceil(i/m),S=1;S<=M;S++){c.writeUInt32BE(S,t.length);for(var R=n.run(c,n.ipad1),C=R,P=1;P<r;P++){C=n.run(C,n.ipad2);for(var k=0;k<m;k++)R[k]^=C[k]}R.copy(u,d),d+=m}return u}var DS=qj,FS=pt().Buffer,Wj=LS,jb=NS,Ub=DS,Hb=kS,Ju,jf=Ye.crypto&&Ye.crypto.subtle,Kj={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},a0=[];function Vj(e){if(Ye.process&&!Ye.process.browser||!jf||!jf.importKey||!jf.deriveBits)return Promise.resolve(!1);if(a0[e]!==void 0)return a0[e];Ju=Ju||FS.alloc(8);var t=jS(Ju,Ju,10,128,e).then(function(){return!0}).catch(function(){return!1});return a0[e]=t,t}var Uo;function qp(){return Uo||(Ye.process&&Ye.process.nextTick?Uo=Ye.process.nextTick:Ye.queueMicrotask?Uo=Ye.queueMicrotask:Ye.setImmediate?Uo=Ye.setImmediate:Uo=Ye.setTimeout,Uo)}function jS(e,t,r,i,a){return jf.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then(function(n){return jf.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:a}},n,i<<3)}).then(function(n){return FS.from(n)})}function zj(e,t){e.then(function(r){qp()(function(){t(null,r)})},function(r){qp()(function(){t(r)})})}var Gj=function(e,t,r,i,a,n){typeof a=="function"&&(n=a,a=void 0),a=a||"sha1";var u=Kj[a.toLowerCase()];if(!u||typeof Ye.Promise!="function"){qp()(function(){var c;try{c=Ub(e,t,r,i,a)}catch(d){return n(d)}n(null,c)});return}if(Wj(r,i),e=Hb(e,jb,"Password"),t=Hb(t,jb,"Salt"),typeof n!="function")throw new Error("No callback provided to pbkdf2");zj(Vj(u).then(function(c){return c?jS(e,t,r,i,u):Ub(e,t,r,i,a)}),n)};ic.pbkdf2=Gj;ic.pbkdf2Sync=DS;var $i={},Us={},ti={};ti.readUInt32BE=function(t,r){var i=t[0+r]<<24|t[1+r]<<16|t[2+r]<<8|t[3+r];return i>>>0};ti.writeUInt32BE=function(t,r,i){t[0+i]=r>>>24,t[1+i]=r>>>16&255,t[2+i]=r>>>8&255,t[3+i]=r&255};ti.ip=function(t,r,i,a){for(var n=0,u=0,c=6;c>=0;c-=2){for(var d=0;d<=24;d+=8)n<<=1,n|=r>>>d+c&1;for(var d=0;d<=24;d+=8)n<<=1,n|=t>>>d+c&1}for(var c=6;c>=0;c-=2){for(var d=1;d<=25;d+=8)u<<=1,u|=r>>>d+c&1;for(var d=1;d<=25;d+=8)u<<=1,u|=t>>>d+c&1}i[a+0]=n>>>0,i[a+1]=u>>>0};ti.rip=function(t,r,i,a){for(var n=0,u=0,c=0;c<4;c++)for(var d=24;d>=0;d-=8)n<<=1,n|=r>>>d+c&1,n<<=1,n|=t>>>d+c&1;for(var c=4;c<8;c++)for(var d=24;d>=0;d-=8)u<<=1,u|=r>>>d+c&1,u<<=1,u|=t>>>d+c&1;i[a+0]=n>>>0,i[a+1]=u>>>0};ti.pc1=function(t,r,i,a){for(var n=0,u=0,c=7;c>=5;c--){for(var d=0;d<=24;d+=8)n<<=1,n|=r>>d+c&1;for(var d=0;d<=24;d+=8)n<<=1,n|=t>>d+c&1}for(var d=0;d<=24;d+=8)n<<=1,n|=r>>d+c&1;for(var c=1;c<=3;c++){for(var d=0;d<=24;d+=8)u<<=1,u|=r>>d+c&1;for(var d=0;d<=24;d+=8)u<<=1,u|=t>>d+c&1}for(var d=0;d<=24;d+=8)u<<=1,u|=t>>d+c&1;i[a+0]=n>>>0,i[a+1]=u>>>0};ti.r28shl=function(t,r){return t<<r&268435455|t>>>28-r};var Qu=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];ti.pc2=function(t,r,i,a){for(var n=0,u=0,c=Qu.length>>>1,d=0;d<c;d++)n<<=1,n|=t>>>Qu[d]&1;for(var d=c;d<Qu.length;d++)u<<=1,u|=r>>>Qu[d]&1;i[a+0]=n>>>0,i[a+1]=u>>>0};ti.expand=function(t,r,i){var a=0,n=0;a=(t&1)<<5|t>>>27;for(var u=23;u>=15;u-=4)a<<=6,a|=t>>>u&63;for(var u=11;u>=3;u-=4)n|=t>>>u&63,n<<=6;n|=(t&31)<<1|t>>>31,r[i+0]=a>>>0,r[i+1]=n>>>0};var qb=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];ti.substitute=function(t,r){for(var i=0,a=0;a<4;a++){var n=t>>>18-a*6&63,u=qb[a*64+n];i<<=4,i|=u}for(var a=0;a<4;a++){var n=r>>>18-a*6&63,u=qb[4*64+a*64+n];i<<=4,i|=u}return i>>>0};var Wb=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];ti.permute=function(t){for(var r=0,i=0;i<Wb.length;i++)r<<=1,r|=t>>>Wb[i]&1;return r>>>0};ti.padSplit=function(t,r,i){for(var a=t.toString(2);a.length<r;)a="0"+a;for(var n=[],u=0;u<r;u+=i)n.push(a.slice(u,u+i));return n.join(" ")};var Si=US;function US(e,t){if(!e)throw new Error(t||"Assertion failed")}US.equal=function(t,r,i){if(t!=r)throw new Error(i||"Assertion failed: "+t+" != "+r)};var Yj=Si;function xi(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0,this.padding=e.padding!==!1}var wg=xi;xi.prototype._init=function(){};xi.prototype.update=function(t){return t.length===0?[]:this.type==="decrypt"?this._updateDecrypt(t):this._updateEncrypt(t)};xi.prototype._buffer=function(t,r){for(var i=Math.min(this.buffer.length-this.bufferOff,t.length-r),a=0;a<i;a++)this.buffer[this.bufferOff+a]=t[r+a];return this.bufferOff+=i,i};xi.prototype._flushBuffer=function(t,r){return this._update(this.buffer,0,t,r),this.bufferOff=0,this.blockSize};xi.prototype._updateEncrypt=function(t){var r=0,i=0,a=(this.bufferOff+t.length)/this.blockSize|0,n=new Array(a*this.blockSize);this.bufferOff!==0&&(r+=this._buffer(t,r),this.bufferOff===this.buffer.length&&(i+=this._flushBuffer(n,i)));for(var u=t.length-(t.length-r)%this.blockSize;r<u;r+=this.blockSize)this._update(t,r,n,i),i+=this.blockSize;for(;r<t.length;r++,this.bufferOff++)this.buffer[this.bufferOff]=t[r];return n};xi.prototype._updateDecrypt=function(t){for(var r=0,i=0,a=Math.ceil((this.bufferOff+t.length)/this.blockSize)-1,n=new Array(a*this.blockSize);a>0;a--)r+=this._buffer(t,r),i+=this._flushBuffer(n,i);return r+=this._buffer(t,r),n};xi.prototype.final=function(t){var r;t&&(r=this.update(t));var i;return this.type==="encrypt"?i=this._finalEncrypt():i=this._finalDecrypt(),r?r.concat(i):i};xi.prototype._pad=function(t,r){if(r===0)return!1;for(;r<t.length;)t[r++]=0;return!0};xi.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var t=new Array(this.blockSize);return this._update(this.buffer,0,t,0),t};xi.prototype._unpad=function(t){return t};xi.prototype._finalDecrypt=function(){Yj.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var t=new Array(this.blockSize);return this._flushBuffer(t,0),this._unpad(t)};var HS=Si,Zj=Ze,or=ti,qS=wg;function Xj(){this.tmp=new Array(2),this.keys=null}function fn(e){qS.call(this,e);var t=new Xj;this._desState=t,this.deriveKeys(t,e.key)}Zj(fn,qS);var WS=fn;fn.create=function(t){return new fn(t)};var Jj=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];fn.prototype.deriveKeys=function(t,r){t.keys=new Array(16*2),HS.equal(r.length,this.blockSize,"Invalid key length");var i=or.readUInt32BE(r,0),a=or.readUInt32BE(r,4);or.pc1(i,a,t.tmp,0),i=t.tmp[0],a=t.tmp[1];for(var n=0;n<t.keys.length;n+=2){var u=Jj[n>>>1];i=or.r28shl(i,u),a=or.r28shl(a,u),or.pc2(i,a,t.keys,n)}};fn.prototype._update=function(t,r,i,a){var n=this._desState,u=or.readUInt32BE(t,r),c=or.readUInt32BE(t,r+4);or.ip(u,c,n.tmp,0),u=n.tmp[0],c=n.tmp[1],this.type==="encrypt"?this._encrypt(n,u,c,n.tmp,0):this._decrypt(n,u,c,n.tmp,0),u=n.tmp[0],c=n.tmp[1],or.writeUInt32BE(i,u,a),or.writeUInt32BE(i,c,a+4)};fn.prototype._pad=function(t,r){if(this.padding===!1)return!1;for(var i=t.length-r,a=r;a<t.length;a++)t[a]=i;return!0};fn.prototype._unpad=function(t){if(this.padding===!1)return t;for(var r=t[t.length-1],i=t.length-r;i<t.length;i++)HS.equal(t[i],r);return t.slice(0,t.length-r)};fn.prototype._encrypt=function(t,r,i,a,n){for(var u=r,c=i,d=0;d<t.keys.length;d+=2){var m=t.keys[d],M=t.keys[d+1];or.expand(c,t.tmp,0),m^=t.tmp[0],M^=t.tmp[1];var S=or.substitute(m,M),R=or.permute(S),C=c;c=(u^R)>>>0,u=C}or.rip(c,u,a,n)};fn.prototype._decrypt=function(t,r,i,a,n){for(var u=i,c=r,d=t.keys.length-2;d>=0;d-=2){var m=t.keys[d],M=t.keys[d+1];or.expand(u,t.tmp,0),m^=t.tmp[0],M^=t.tmp[1];var S=or.substitute(m,M),R=or.permute(S),C=u;u=(c^R)>>>0,c=C}or.rip(u,c,a,n)};var KS={},Qj=Si,eU=Ze,eh={};function tU(e){Qj.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}function rU(e){function t(n){e.call(this,n),this._cbcInit()}eU(t,e);for(var r=Object.keys(eh),i=0;i<r.length;i++){var a=r[i];t.prototype[a]=eh[a]}return t.create=function(u){return new t(u)},t}KS.instantiate=rU;eh._cbcInit=function(){var t=new tU(this.options.iv);this._cbcState=t};eh._update=function(t,r,i,a){var n=this._cbcState,u=this.constructor.super_.prototype,c=n.iv;if(this.type==="encrypt"){for(var d=0;d<this.blockSize;d++)c[d]^=t[r+d];u._update.call(this,c,0,i,a);for(var d=0;d<this.blockSize;d++)c[d]=i[a+d]}else{u._update.call(this,t,r,i,a);for(var d=0;d<this.blockSize;d++)i[a+d]^=c[d];for(var d=0;d<this.blockSize;d++)c[d]=t[r+d]}};var iU=Si,nU=Ze,VS=wg,ao=WS;function oU(e,t){iU.equal(t.length,24,"Invalid key length");var r=t.slice(0,8),i=t.slice(8,16),a=t.slice(16,24);e==="encrypt"?this.ciphers=[ao.create({type:"encrypt",key:r}),ao.create({type:"decrypt",key:i}),ao.create({type:"encrypt",key:a})]:this.ciphers=[ao.create({type:"decrypt",key:a}),ao.create({type:"encrypt",key:i}),ao.create({type:"decrypt",key:r})]}function da(e){VS.call(this,e);var t=new oU(this.type,this.options.key);this._edeState=t}nU(da,VS);var aU=da;da.create=function(t){return new da(t)};da.prototype._update=function(t,r,i,a){var n=this._edeState;n.ciphers[0]._update(t,r,i,a),n.ciphers[1]._update(i,a,i,a),n.ciphers[2]._update(i,a,i,a)};da.prototype._pad=ao.prototype._pad;da.prototype._unpad=ao.prototype._unpad;Us.utils=ti;Us.Cipher=wg;Us.DES=WS;Us.CBC=KS;Us.EDE=aU;var zS=$o,yn=Us,sU=Ze,zo=pt().Buffer,au={"des-ede3-cbc":yn.CBC.instantiate(yn.EDE),"des-ede3":yn.EDE,"des-ede-cbc":yn.CBC.instantiate(yn.EDE),"des-ede":yn.EDE,"des-cbc":yn.CBC.instantiate(yn.DES),"des-ecb":yn.DES};au.des=au["des-cbc"];au.des3=au["des-ede3-cbc"];var fU=nc;sU(nc,zS);function nc(e){zS.call(this);var t=e.mode.toLowerCase(),r=au[t],i;e.decrypt?i="decrypt":i="encrypt";var a=e.key;zo.isBuffer(a)||(a=zo.from(a)),(t==="des-ede"||t==="des-ede-cbc")&&(a=zo.concat([a,a.slice(0,8)]));var n=e.iv;zo.isBuffer(n)||(n=zo.from(n)),this._des=r.create({key:a,iv:n,type:i})}nc.prototype._update=function(e){return zo.from(this._des.update(e))};nc.prototype._final=function(){return zo.from(this._des.final())};var Qr={},_g={},Mg={};Mg.encrypt=function(e,t){return e._cipher.encryptBlock(t)};Mg.decrypt=function(e,t){return e._cipher.decryptBlock(t)};var Sg={},Ou=function(t,r){for(var i=Math.min(t.length,r.length),a=new ke.Buffer(i),n=0;n<i;++n)a[n]=t[n]^r[n];return a},GS=Ou;Sg.encrypt=function(e,t){var r=GS(t,e._prev);return e._prev=e._cipher.encryptBlock(r),e._prev};Sg.decrypt=function(e,t){var r=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return GS(i,r)};var YS={},Ef=pt().Buffer,uU=Ou;function Kb(e,t,r){var i=t.length,a=uU(t,e._cache);return e._cache=e._cache.slice(i),e._prev=Ef.concat([e._prev,r?t:a]),a}YS.encrypt=function(e,t,r){for(var i=Ef.allocUnsafe(0),a;t.length;)if(e._cache.length===0&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=Ef.allocUnsafe(0)),e._cache.length<=t.length)a=e._cache.length,i=Ef.concat([i,Kb(e,t.slice(0,a),r)]),t=t.slice(a);else{i=Ef.concat([i,Kb(e,t,r)]);break}return i};var ZS={},Wp=pt().Buffer;function lU(e,t,r){var i=e._cipher.encryptBlock(e._prev),a=i[0]^t;return e._prev=Wp.concat([e._prev.slice(1),Wp.from([r?t:a])]),a}ZS.encrypt=function(e,t,r){for(var i=t.length,a=Wp.allocUnsafe(i),n=-1;++n<i;)a[n]=lU(e,t[n],r);return a};var XS={},wl=pt().Buffer;function hU(e,t,r){for(var i,a=-1,n=8,u=0,c,d;++a<n;)i=e._cipher.encryptBlock(e._prev),c=t&1<<7-a?128:0,d=i[0]^c,u+=(d&128)>>a%8,e._prev=cU(e._prev,r?c:d);return u}function cU(e,t){var r=e.length,i=-1,a=wl.allocUnsafe(e.length);for(e=wl.concat([e,wl.from([t])]);++i<r;)a[i]=e[i]<<1|e[i+1]>>7;return a}XS.encrypt=function(e,t,r){for(var i=t.length,a=wl.allocUnsafe(i),n=-1;++n<i;)a[n]=hU(e,t[n],r);return a};var JS={},dU=Ou;function pU(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}JS.encrypt=function(e,t){for(;e._cache.length<t.length;)e._cache=ke.Buffer.concat([e._cache,pU(e)]);var r=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),dU(t,r)};var Kp={};function vU(e){for(var t=e.length,r;t--;)if(r=e.readUInt8(t),r===255)e.writeUInt8(0,t);else{r++,e.writeUInt8(r,t);break}}var QS=vU,gU=Ou,Vb=pt().Buffer,mU=QS;function yU(e){var t=e._cipher.encryptBlockRaw(e._prev);return mU(e._prev),t}var s0=16;Kp.encrypt=function(e,t){var r=Math.ceil(t.length/s0),i=e._cache.length;e._cache=Vb.concat([e._cache,Vb.allocUnsafe(r*s0)]);for(var a=0;a<r;a++){var n=yU(e),u=i+a*s0;e._cache.writeUInt32BE(n[0],u+0),e._cache.writeUInt32BE(n[1],u+4),e._cache.writeUInt32BE(n[2],u+8),e._cache.writeUInt32BE(n[3],u+12)}var c=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),gU(t,c)};const bU={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},wU={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},_U={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},ex={"aes-128-ecb":{cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},"aes-192-ecb":{cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},"aes-256-ecb":{cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},"aes-128-cbc":{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},"aes-192-cbc":{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},"aes-256-cbc":{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},aes128:bU,aes192:wU,aes256:_U,"aes-128-cfb":{cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},"aes-192-cfb":{cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},"aes-256-cfb":{cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},"aes-128-cfb8":{cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"},"aes-192-cfb8":{cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"},"aes-256-cfb8":{cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"},"aes-128-cfb1":{cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"},"aes-192-cfb1":{cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"},"aes-256-cfb1":{cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"},"aes-128-ofb":{cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},"aes-192-ofb":{cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},"aes-256-ofb":{cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},"aes-128-ctr":{cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},"aes-192-ctr":{cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},"aes-256-ctr":{cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"},"aes-128-gcm":{cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"},"aes-192-gcm":{cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"},"aes-256-gcm":{cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}};var MU={ECB:Mg,CBC:Sg,CFB:YS,CFB8:ZS,CFB1:XS,OFB:JS,CTR:Kp,GCM:Kp},_l=ex;for(var zb in _l)_l[zb].module=MU[_l[zb].mode];var xg=_l,Iu={},th=pt().Buffer;function Eg(e){th.isBuffer(e)||(e=th.from(e));for(var t=e.length/4|0,r=new Array(t),i=0;i<t;i++)r[i]=e.readUInt32BE(i*4);return r}function f0(e){for(var t=0;t<e.length;e++)e[t]=0}function tx(e,t,r,i,a){for(var n=r[0],u=r[1],c=r[2],d=r[3],m=e[0]^t[0],M=e[1]^t[1],S=e[2]^t[2],R=e[3]^t[3],C,P,k,L,I=4,B=1;B<a;B++)C=n[m>>>24]^u[M>>>16&255]^c[S>>>8&255]^d[R&255]^t[I++],P=n[M>>>24]^u[S>>>16&255]^c[R>>>8&255]^d[m&255]^t[I++],k=n[S>>>24]^u[R>>>16&255]^c[m>>>8&255]^d[M&255]^t[I++],L=n[R>>>24]^u[m>>>16&255]^c[M>>>8&255]^d[S&255]^t[I++],m=C,M=P,S=k,R=L;return C=(i[m>>>24]<<24|i[M>>>16&255]<<16|i[S>>>8&255]<<8|i[R&255])^t[I++],P=(i[M>>>24]<<24|i[S>>>16&255]<<16|i[R>>>8&255]<<8|i[m&255])^t[I++],k=(i[S>>>24]<<24|i[R>>>16&255]<<16|i[m>>>8&255]<<8|i[M&255])^t[I++],L=(i[R>>>24]<<24|i[m>>>16&255]<<16|i[M>>>8&255]<<8|i[S&255])^t[I++],C=C>>>0,P=P>>>0,k=k>>>0,L=L>>>0,[C,P,k,L]}var SU=[0,1,2,4,8,16,32,64,128,27,54],nr=function(){for(var e=new Array(256),t=0;t<256;t++)t<128?e[t]=t<<1:e[t]=t<<1^283;for(var r=[],i=[],a=[[],[],[],[]],n=[[],[],[],[]],u=0,c=0,d=0;d<256;++d){var m=c^c<<1^c<<2^c<<3^c<<4;m=m>>>8^m&255^99,r[u]=m,i[m]=u;var M=e[u],S=e[M],R=e[S],C=e[m]*257^m*16843008;a[0][u]=C<<24|C>>>8,a[1][u]=C<<16|C>>>16,a[2][u]=C<<8|C>>>24,a[3][u]=C,C=R*16843009^S*65537^M*257^u*16843008,n[0][m]=C<<24|C>>>8,n[1][m]=C<<16|C>>>16,n[2][m]=C<<8|C>>>24,n[3][m]=C,u===0?u=c=1:(u=M^e[e[e[R^M]]],c^=e[e[c]])}return{SBOX:r,INV_SBOX:i,SUB_MIX:a,INV_SUB_MIX:n}}();function gi(e){this._key=Eg(e),this._reset()}gi.blockSize=4*4;gi.keySize=256/8;gi.prototype.blockSize=gi.blockSize;gi.prototype.keySize=gi.keySize;gi.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,i=(r+1)*4,a=[],n=0;n<t;n++)a[n]=e[n];for(n=t;n<i;n++){var u=a[n-1];n%t===0?(u=u<<8|u>>>24,u=nr.SBOX[u>>>24]<<24|nr.SBOX[u>>>16&255]<<16|nr.SBOX[u>>>8&255]<<8|nr.SBOX[u&255],u^=SU[n/t|0]<<24):t>6&&n%t===4&&(u=nr.SBOX[u>>>24]<<24|nr.SBOX[u>>>16&255]<<16|nr.SBOX[u>>>8&255]<<8|nr.SBOX[u&255]),a[n]=a[n-t]^u}for(var c=[],d=0;d<i;d++){var m=i-d,M=a[m-(d%4?0:4)];d<4||m<=4?c[d]=M:c[d]=nr.INV_SUB_MIX[0][nr.SBOX[M>>>24]]^nr.INV_SUB_MIX[1][nr.SBOX[M>>>16&255]]^nr.INV_SUB_MIX[2][nr.SBOX[M>>>8&255]]^nr.INV_SUB_MIX[3][nr.SBOX[M&255]]}this._nRounds=r,this._keySchedule=a,this._invKeySchedule=c};gi.prototype.encryptBlockRaw=function(e){return e=Eg(e),tx(e,this._keySchedule,nr.SUB_MIX,nr.SBOX,this._nRounds)};gi.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=th.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r};gi.prototype.decryptBlock=function(e){e=Eg(e);var t=e[1];e[1]=e[3],e[3]=t;var r=tx(e,this._invKeySchedule,nr.INV_SUB_MIX,nr.INV_SBOX,this._nRounds),i=th.allocUnsafe(16);return i.writeUInt32BE(r[0],0),i.writeUInt32BE(r[3],4),i.writeUInt32BE(r[2],8),i.writeUInt32BE(r[1],12),i};gi.prototype.scrub=function(){f0(this._keySchedule),f0(this._invKeySchedule),f0(this._key)};Iu.AES=gi;var _s=pt().Buffer,xU=_s.alloc(16,0);function EU(e){return[e.readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)]}function rx(e){var t=_s.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function Pu(e){this.h=e,this.state=_s.alloc(16,0),this.cache=_s.allocUnsafe(0)}Pu.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()};Pu.prototype._multiply=function(){for(var e=EU(this.h),t=[0,0,0,0],r,i,a,n=-1;++n<128;){for(i=(this.state[~~(n/8)]&1<<7-n%8)!==0,i&&(t[0]^=e[0],t[1]^=e[1],t[2]^=e[2],t[3]^=e[3]),a=(e[3]&1)!==0,r=3;r>0;r--)e[r]=e[r]>>>1|(e[r-1]&1)<<31;e[0]=e[0]>>>1,a&&(e[0]=e[0]^225<<24)}this.state=rx(t)};Pu.prototype.update=function(e){this.cache=_s.concat([this.cache,e]);for(var t;this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)};Pu.prototype.final=function(e,t){return this.cache.length&&this.ghash(_s.concat([this.cache,xU],16)),this.ghash(rx([0,e,0,t])),this.state};var RU=Pu,AU=Iu,jr=pt().Buffer,ix=$o,TU=Ze,nx=RU,OU=Ou,IU=QS;function PU(e,t){var r=0;e.length!==t.length&&r++;for(var i=Math.min(e.length,t.length),a=0;a<i;++a)r+=e[a]^t[a];return r}function CU(e,t,r){if(t.length===12)return e._finID=jr.concat([t,jr.from([0,0,0,1])]),jr.concat([t,jr.from([0,0,0,2])]);var i=new nx(r),a=t.length,n=a%16;i.update(t),n&&(n=16-n,i.update(jr.alloc(n,0))),i.update(jr.alloc(8,0));var u=a*8,c=jr.alloc(8);c.writeUIntBE(u,0,8),i.update(c),e._finID=i.state;var d=jr.from(e._finID);return IU(d),d}function Oa(e,t,r,i){ix.call(this);var a=jr.alloc(4,0);this._cipher=new AU.AES(t);var n=this._cipher.encryptBlock(a);this._ghash=new nx(n),r=CU(this,r,n),this._prev=jr.from(r),this._cache=jr.allocUnsafe(0),this._secCache=jr.allocUnsafe(0),this._decrypt=i,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}TU(Oa,ix);Oa.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=jr.alloc(t,0),this._ghash.update(t))}this._called=!0;var r=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(r),this._len+=e.length,r};Oa.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=OU(this._ghash.final(this._alen*8,this._len*8),this._cipher.encryptBlock(this._finID));if(this._decrypt&&PU(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()};Oa.prototype.getAuthTag=function(){if(this._decrypt||!jr.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag};Oa.prototype.setAuthTag=function(t){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=t};Oa.prototype.setAAD=function(t){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(t),this._alen+=t.length};var ox=Oa,BU=Iu,u0=pt().Buffer,ax=$o,LU=Ze;function oc(e,t,r,i){ax.call(this),this._cipher=new BU.AES(t),this._prev=u0.from(r),this._cache=u0.allocUnsafe(0),this._secCache=u0.allocUnsafe(0),this._decrypt=i,this._mode=e}LU(oc,ax);oc.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)};oc.prototype._final=function(){this._cipher.scrub()};var sx=oc,Ho=pt().Buffer,NU=vg;function kU(e,t,r,i){if(Ho.isBuffer(e)||(e=Ho.from(e,"binary")),t&&(Ho.isBuffer(t)||(t=Ho.from(t,"binary")),t.length!==8))throw new RangeError("salt should be Buffer with 8 byte length");for(var a=r/8,n=Ho.alloc(a),u=Ho.alloc(i||0),c=Ho.alloc(0);a>0||i>0;){var d=new NU;d.update(c),d.update(e),t&&d.update(t),c=d.digest();var m=0;if(a>0){var M=n.length-a;m=Math.min(a,c.length),c.copy(n,M,0,m),a-=m}if(m<c.length&&i>0){var S=u.length-i,R=Math.min(i,c.length-m);c.copy(u,S,m,m+R),i-=R}}return c.fill(0),{key:n,iv:u}}var ac=kU,fx=xg,$U=ox,jn=pt().Buffer,DU=sx,ux=$o,FU=Iu,jU=ac,UU=Ze;function Cu(e,t,r){ux.call(this),this._cache=new sc,this._cipher=new FU.AES(t),this._prev=jn.from(r),this._mode=e,this._autopadding=!0}UU(Cu,ux);Cu.prototype._update=function(e){this._cache.add(e);for(var t,r,i=[];t=this._cache.get();)r=this._mode.encrypt(this,t),i.push(r);return jn.concat(i)};var HU=jn.alloc(16,16);Cu.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(HU))throw this._cipher.scrub(),new Error("data not multiple of block length")};Cu.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this};function sc(){this.cache=jn.allocUnsafe(0)}sc.prototype.add=function(e){this.cache=jn.concat([this.cache,e])};sc.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null};sc.prototype.flush=function(){for(var e=16-this.cache.length,t=jn.allocUnsafe(e),r=-1;++r<e;)t.writeUInt8(e,r);return jn.concat([this.cache,t])};function lx(e,t,r){var i=fx[e.toLowerCase()];if(!i)throw new TypeError("invalid suite type");if(typeof t=="string"&&(t=jn.from(t)),t.length!==i.key/8)throw new TypeError("invalid key length "+t.length);if(typeof r=="string"&&(r=jn.from(r)),i.mode!=="GCM"&&r.length!==i.iv)throw new TypeError("invalid iv length "+r.length);return i.type==="stream"?new DU(i.module,t,r):i.type==="auth"?new $U(i.module,t,r):new Cu(i.module,t,r)}function qU(e,t){var r=fx[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var i=jU(t,!1,r.key,r.iv);return lx(e,i.key,i.iv)}_g.createCipheriv=lx;_g.createCipher=qU;var Rg={},WU=ox,Ms=pt().Buffer,hx=xg,KU=sx,cx=$o,VU=Iu,zU=ac,GU=Ze;function Bu(e,t,r){cx.call(this),this._cache=new fc,this._last=void 0,this._cipher=new VU.AES(t),this._prev=Ms.from(r),this._mode=e,this._autopadding=!0}GU(Bu,cx);Bu.prototype._update=function(e){this._cache.add(e);for(var t,r,i=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),i.push(r);return Ms.concat(i)};Bu.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return YU(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")};Bu.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this};function fc(){this.cache=Ms.allocUnsafe(0)}fc.prototype.add=function(e){this.cache=Ms.concat([this.cache,e])};fc.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null};fc.prototype.flush=function(){if(this.cache.length)return this.cache};function YU(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");for(var r=-1;++r<t;)if(e[r+(16-t)]!==t)throw new Error("unable to decrypt data");if(t!==16)return e.slice(0,16-t)}function dx(e,t,r){var i=hx[e.toLowerCase()];if(!i)throw new TypeError("invalid suite type");if(typeof r=="string"&&(r=Ms.from(r)),i.mode!=="GCM"&&r.length!==i.iv)throw new TypeError("invalid iv length "+r.length);if(typeof t=="string"&&(t=Ms.from(t)),t.length!==i.key/8)throw new TypeError("invalid key length "+t.length);return i.type==="stream"?new KU(i.module,t,r,!0):i.type==="auth"?new WU(i.module,t,r,!0):new Bu(i.module,t,r)}function ZU(e,t){var r=hx[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var i=zU(t,!1,r.key,r.iv);return dx(e,i.key,i.iv)}Rg.createDecipher=ZU;Rg.createDecipheriv=dx;var px=_g,vx=Rg,XU=ex;function JU(){return Object.keys(XU)}Qr.createCipher=Qr.Cipher=px.createCipher;Qr.createCipheriv=Qr.Cipheriv=px.createCipheriv;Qr.createDecipher=Qr.Decipher=vx.createDecipher;Qr.createDecipheriv=Qr.Decipheriv=vx.createDecipheriv;Qr.listCiphers=Qr.getCiphers=JU;var gx={};(function(e){e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}})(gx);var mx=fU,Ag=Qr,wo=xg,Bn=gx,yx=ac;function QU(e,t){e=e.toLowerCase();var r,i;if(wo[e])r=wo[e].key,i=wo[e].iv;else if(Bn[e])r=Bn[e].key*8,i=Bn[e].iv;else throw new TypeError("invalid suite type");var a=yx(t,!1,r,i);return bx(e,a.key,a.iv)}function eH(e,t){e=e.toLowerCase();var r,i;if(wo[e])r=wo[e].key,i=wo[e].iv;else if(Bn[e])r=Bn[e].key*8,i=Bn[e].iv;else throw new TypeError("invalid suite type");var a=yx(t,!1,r,i);return _x(e,a.key,a.iv)}function bx(e,t,r){if(e=e.toLowerCase(),wo[e])return Ag.createCipheriv(e,t,r);if(Bn[e])return new mx({key:t,iv:r,mode:e});throw new TypeError("invalid suite type")}function _x(e,t,r){if(e=e.toLowerCase(),wo[e])return Ag.createDecipheriv(e,t,r);if(Bn[e])return new mx({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}function tH(){return Object.keys(Bn).concat(Ag.getCiphers())}$i.createCipher=$i.Cipher=QU;$i.createCipheriv=$i.Cipheriv=bx;$i.createDecipher=$i.Decipher=eH;$i.createDecipheriv=$i.Decipheriv=_x;$i.listCiphers=$i.getCiphers=tH;var qo={},Tg={exports:{}};Tg.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Tg);var Mx=Tg.exports,Og={exports:{}};Og.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Og);var rH=Og.exports,el={exports:{}},Gb;function Ig(){if(Gb)return el.exports;Gb=1;var e;el.exports=function(a){return e||(e=new t(null)),e.generate(a)};function t(i){this.rand=i}if(el.exports.Rand=t,t.prototype.generate=function(a){return this._rand(a)},t.prototype._rand=function(a){if(this.rand.getBytes)return this.rand.getBytes(a);for(var n=new Uint8Array(a),u=0;u<n.length;u++)n[u]=this.rand.getByte();return n},typeof self=="object")self.crypto&&self.crypto.getRandomValues?t.prototype._rand=function(a){var n=new Uint8Array(a);return self.crypto.getRandomValues(n),n}:self.msCrypto&&self.msCrypto.getRandomValues?t.prototype._rand=function(a){var n=new Uint8Array(a);return self.msCrypto.getRandomValues(n),n}:typeof window=="object"&&(t.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var r=C4();if(typeof r.randomBytes!="function")throw new Error("Not supported");t.prototype._rand=function(a){return r.randomBytes(a)}}catch{}return el.exports}var l0,Yb;function Sx(){if(Yb)return l0;Yb=1;var e=rH,t=Ig();function r(i){this.rand=i||new t.Rand}return l0=r,r.create=function(a){return new r(a)},r.prototype._randbelow=function(a){var n=a.bitLength(),u=Math.ceil(n/8);do var c=new e(this.rand.generate(u));while(c.cmp(a)>=0);return c},r.prototype._randrange=function(a,n){var u=n.sub(a);return a.add(this._randbelow(u))},r.prototype.test=function(a,n,u){var c=a.bitLength(),d=e.mont(a),m=new e(1).toRed(d);n||(n=Math.max(1,c/48|0));for(var M=a.subn(1),S=0;!M.testn(S);S++);for(var R=a.shrn(S),C=M.toRed(d),P=!0;n>0;n--){var k=this._randrange(new e(2),M);u&&u(k);var L=k.toRed(d).redPow(R);if(!(L.cmp(m)===0||L.cmp(C)===0)){for(var I=1;I<S;I++){if(L=L.redSqr(),L.cmp(m)===0)return!1;if(L.cmp(C)===0)break}if(I===S)return!1}}return P},r.prototype.getDivisor=function(a,n){var u=a.bitLength(),c=e.mont(a),d=new e(1).toRed(c);n||(n=Math.max(1,u/48|0));for(var m=a.subn(1),M=0;!m.testn(M);M++);for(var S=a.shrn(M),R=m.toRed(c);n>0;n--){var C=this._randrange(new e(2),m),P=a.gcd(C);if(P.cmpn(1)!==0)return P;var k=C.toRed(c).redPow(S);if(!(k.cmp(d)===0||k.cmp(R)===0)){for(var L=1;L<M;L++){if(k=k.redSqr(),k.cmp(d)===0)return k.fromRed().subn(1).gcd(a);if(k.cmp(R)===0)break}if(L===M)return k=k.redSqr(),k.fromRed().subn(1).gcd(a)}}return!1},l0}var h0,Zb;function xx(){if(Zb)return h0;Zb=1;var e=Ds;h0=L,L.simpleSieve=P,L.fermatTest=k;var t=Mx,r=new t(24),i=Sx(),a=new i,n=new t(1),u=new t(2),c=new t(5);new t(16),new t(8);var d=new t(10),m=new t(3);new t(7);var M=new t(11),S=new t(4);new t(12);var R=null;function C(){if(R!==null)return R;var I=1048576,B=[];B[0]=2;for(var H=1,F=3;F<I;F+=2){for(var W=Math.ceil(Math.sqrt(F)),Y=0;Y<H&&B[Y]<=W&&F%B[Y]!==0;Y++);H!==Y&&B[Y]<=W||(B[H++]=F)}return R=B,B}function P(I){for(var B=C(),H=0;H<B.length;H++)if(I.modn(B[H])===0)return I.cmpn(B[H])===0;return!0}function k(I){var B=t.mont(I);return u.toRed(B).redPow(I.subn(1)).fromRed().cmpn(1)===0}function L(I,B){if(I<16)return B===2||B===5?new t([140,123]):new t([140,39]);B=new t(B);for(var H,F;;){for(H=new t(e(Math.ceil(I/8)));H.bitLength()>I;)H.ishrn(1);if(H.isEven()&&H.iadd(n),H.testn(1)||H.iadd(u),B.cmp(u)){if(!B.cmp(c))for(;H.mod(d).cmp(m);)H.iadd(S)}else for(;H.mod(r).cmp(M);)H.iadd(S);if(F=H.shrn(1),P(F)&&P(H)&&k(F)&&k(H)&&a.test(F)&&a.test(H))return H}}return h0}const iH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},nH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},oH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},aH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},sH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},fH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},uH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},lH={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},hH={modp1:iH,modp2:nH,modp5:oH,modp14:aH,modp15:sH,modp16:fH,modp17:uH,modp18:lH};var c0,Xb;function cH(){if(Xb)return c0;Xb=1;var e=Mx,t=Sx(),r=new t,i=new e(24),a=new e(11),n=new e(10),u=new e(3),c=new e(7),d=xx(),m=Ds;c0=P;function M(L,I){return I=I||"utf8",ke.Buffer.isBuffer(L)||(L=new ke.Buffer(L,I)),this._pub=new e(L),this}function S(L,I){return I=I||"utf8",ke.Buffer.isBuffer(L)||(L=new ke.Buffer(L,I)),this._priv=new e(L),this}var R={};function C(L,I){var B=I.toString("hex"),H=[B,L.toString(16)].join("_");if(H in R)return R[H];var F=0;if(L.isEven()||!d.simpleSieve||!d.fermatTest(L)||!r.test(L))return F+=1,B==="02"||B==="05"?F+=8:F+=4,R[H]=F,F;r.test(L.shrn(1))||(F+=2);var W;switch(B){case"02":L.mod(i).cmp(a)&&(F+=8);break;case"05":W=L.mod(n),W.cmp(u)&&W.cmp(c)&&(F+=8);break;default:F+=4}return R[H]=F,F}function P(L,I,B){this.setGenerator(I),this.__prime=new e(L),this._prime=e.mont(this.__prime),this._primeLen=L.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,B?(this.setPublicKey=M,this.setPrivateKey=S):this._primeCode=8}Object.defineProperty(P.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=C(this.__prime,this.__gen)),this._primeCode}}),P.prototype.generateKeys=function(){return this._priv||(this._priv=new e(m(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},P.prototype.computeSecret=function(L){L=new e(L),L=L.toRed(this._prime);var I=L.redPow(this._priv).fromRed(),B=new ke.Buffer(I.toArray()),H=this.getPrime();if(B.length<H.length){var F=new ke.Buffer(H.length-B.length);F.fill(0),B=ke.Buffer.concat([F,B])}return B},P.prototype.getPublicKey=function(I){return k(this._pub,I)},P.prototype.getPrivateKey=function(I){return k(this._priv,I)},P.prototype.getPrime=function(L){return k(this.__prime,L)},P.prototype.getGenerator=function(L){return k(this._gen,L)},P.prototype.setGenerator=function(L,I){return I=I||"utf8",ke.Buffer.isBuffer(L)||(L=new ke.Buffer(L,I)),this.__gen=L,this._gen=new e(L),this};function k(L,I){var B=new ke.Buffer(L.toArray());return I?B.toString(I):B}return c0}var Jb;function dH(){if(Jb)return qo;Jb=1;var e=xx(),t=hH,r=cH();function i(u){var c=new ke.Buffer(t[u].prime,"hex"),d=new ke.Buffer(t[u].gen,"hex");return new r(c,d)}var a={binary:!0,hex:!0,base64:!0};function n(u,c,d,m){return ke.Buffer.isBuffer(c)||a[c]===void 0?n(u,"binary",c,d):(c=c||"binary",m=m||"binary",d=d||new ke.Buffer([2]),ke.Buffer.isBuffer(d)||(d=new ke.Buffer(d,m)),typeof u=="number"?new r(e(u,d),d,!0):(ke.Buffer.isBuffer(u)||(u=new ke.Buffer(u,c)),new r(u,d,!0)))}return qo.DiffieHellmanGroup=qo.createDiffieHellmanGroup=qo.getDiffieHellman=i,qo.createDiffieHellman=qo.DiffieHellman=n,qo}var Vp={exports:{}},Ex=Or.EventEmitter,d0,Qb;function pH(){if(Qb)return d0;Qb=1;function e(P,k){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(P);k&&(I=I.filter(function(B){return Object.getOwnPropertyDescriptor(P,B).enumerable})),L.push.apply(L,I)}return L}function t(P){for(var k=1;k<arguments.length;k++){var L=arguments[k]!=null?arguments[k]:{};k%2?e(Object(L),!0).forEach(function(I){r(P,I,L[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(L)):e(Object(L)).forEach(function(I){Object.defineProperty(P,I,Object.getOwnPropertyDescriptor(L,I))})}return P}function r(P,k,L){return k=u(k),k in P?Object.defineProperty(P,k,{value:L,enumerable:!0,configurable:!0,writable:!0}):P[k]=L,P}function i(P,k){if(!(P instanceof k))throw new TypeError("Cannot call a class as a function")}function a(P,k){for(var L=0;L<k.length;L++){var I=k[L];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(P,u(I.key),I)}}function n(P,k,L){return k&&a(P.prototype,k),L&&a(P,L),Object.defineProperty(P,"prototype",{writable:!1}),P}function u(P){var k=c(P,"string");return typeof k=="symbol"?k:String(k)}function c(P,k){if(typeof P!="object"||P===null)return P;var L=P[Symbol.toPrimitive];if(L!==void 0){var I=L.call(P,k||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(P)}var d=ke,m=d.Buffer,M=ei,S=M.inspect,R=S&&S.custom||"inspect";function C(P,k,L){m.prototype.copy.call(P,k,L)}return d0=function(){function P(){i(this,P),this.head=null,this.tail=null,this.length=0}return n(P,[{key:"push",value:function(L){var I={data:L,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(L){var I={data:L,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var L=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,L}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(L){if(this.length===0)return"";for(var I=this.head,B=""+I.data;I=I.next;)B+=L+I.data;return B}},{key:"concat",value:function(L){if(this.length===0)return m.alloc(0);for(var I=m.allocUnsafe(L>>>0),B=this.head,H=0;B;)C(B.data,I,H),H+=B.data.length,B=B.next;return I}},{key:"consume",value:function(L,I){var B;return L<this.head.data.length?(B=this.head.data.slice(0,L),this.head.data=this.head.data.slice(L)):L===this.head.data.length?B=this.shift():B=I?this._getString(L):this._getBuffer(L),B}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(L){var I=this.head,B=1,H=I.data;for(L-=H.length;I=I.next;){var F=I.data,W=L>F.length?F.length:L;if(W===F.length?H+=F:H+=F.slice(0,L),L-=W,L===0){W===F.length?(++B,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=F.slice(W));break}++B}return this.length-=B,H}},{key:"_getBuffer",value:function(L){var I=m.allocUnsafe(L),B=this.head,H=1;for(B.data.copy(I),L-=B.data.length;B=B.next;){var F=B.data,W=L>F.length?F.length:L;if(F.copy(I,I.length-L,0,W),L-=W,L===0){W===F.length?(++H,B.next?this.head=B.next:this.head=this.tail=null):(this.head=B,B.data=F.slice(W));break}++H}return this.length-=H,I}},{key:R,value:function(L,I){return S(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),P}(),d0}function vH(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,we.nextTick(zp,this,e)):we.nextTick(zp,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?we.nextTick(Ml,r):(r._writableState.errorEmitted=!0,we.nextTick(ew,r,n)):we.nextTick(ew,r,n):t?(we.nextTick(Ml,r),t(n)):we.nextTick(Ml,r)}),this)}function ew(e,t){zp(e,t),Ml(e)}function Ml(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function gH(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function zp(e,t){e.emit("error",t)}function mH(e,t){var r=e._readableState,i=e._writableState;r&&r.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}var Rx={destroy:vH,undestroy:gH,errorOrDestroy:mH},Ia={};function yH(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Ax={};function Ei(e,t,r){r||(r=Error);function i(n,u,c){return typeof t=="string"?t:t(n,u,c)}var a=function(n){yH(u,n);function u(c,d,m){return n.call(this,i(c,d,m))||this}return u}(r);a.prototype.name=r.name,a.prototype.code=e,Ax[e]=a}function tw(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(i){return String(i)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function bH(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function wH(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function _H(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}Ei("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Ei("ERR_INVALID_ARG_TYPE",function(e,t,r){var i;typeof t=="string"&&bH(t,"not ")?(i="must not be",t=t.replace(/^not /,"")):i="must be";var a;if(wH(e," argument"))a="The ".concat(e," ").concat(i," ").concat(tw(t,"type"));else{var n=_H(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(n," ").concat(i," ").concat(tw(t,"type"))}return a+=". Received type ".concat(typeof r),a},TypeError);Ei("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ei("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Ei("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ei("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Ei("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ei("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ei("ERR_STREAM_WRITE_AFTER_END","write after end");Ei("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ei("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Ei("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Ia.codes=Ax;var MH=Ia.codes.ERR_INVALID_OPT_VALUE;function SH(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function xH(e,t,r,i){var a=SH(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=i?r:"highWaterMark";throw new MH(n,a)}return Math.floor(a)}return e.objectMode?16:16*1024}var Tx={getHighWaterMark:xH},p0,rw;function Ox(){if(rw)return p0;rw=1,p0=J;function e(A){var E=this;this.next=null,this.entry=null,this.finish=function(){ee(E,A)}}var t;J.WritableState=Y;var r={deprecate:ks},i=Ex,a=ke.Buffer,n=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(A){return a.from(A)}function c(A){return a.isBuffer(A)||A instanceof n}var d=Rx,m=Tx,M=m.getHighWaterMark,S=Ia.codes,R=S.ERR_INVALID_ARG_TYPE,C=S.ERR_METHOD_NOT_IMPLEMENTED,P=S.ERR_MULTIPLE_CALLBACK,k=S.ERR_STREAM_CANNOT_PIPE,L=S.ERR_STREAM_DESTROYED,I=S.ERR_STREAM_NULL_VALUES,B=S.ERR_STREAM_WRITE_AFTER_END,H=S.ERR_UNKNOWN_ENCODING,F=d.errorOrDestroy;Ze(J,i);function W(){}function Y(A,E,U){t=t||Ss(),A=A||{},typeof U!="boolean"&&(U=E instanceof t),this.objectMode=!!A.objectMode,U&&(this.objectMode=this.objectMode||!!A.writableObjectMode),this.highWaterMark=M(this,A,"writableHighWaterMark",U),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var K=A.decodeStrings===!1;this.decodeStrings=!K,this.defaultEncoding=A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){p(E,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=A.emitClose!==!1,this.autoDestroy=!!A.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}Y.prototype.getBuffer=function(){for(var E=this.bufferedRequest,U=[];E;)U.push(E),E=E.next;return U},function(){try{Object.defineProperty(Y.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var ie;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ie=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(E){return ie.call(this,E)?!0:this!==J?!1:E&&E._writableState instanceof Y}})):ie=function(E){return E instanceof this};function J(A){t=t||Ss();var E=this instanceof t;if(!E&&!ie.call(J,this))return new J(A);this._writableState=new Y(A,this,E),this.writable=!0,A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final)),i.call(this)}J.prototype.pipe=function(){F(this,new k)};function V(A,E){var U=new B;F(A,U),we.nextTick(E,U)}function oe(A,E,U,K){var Z;return U===null?Z=new I:typeof U!="string"&&!E.objectMode&&(Z=new R("chunk",["string","Buffer"],U)),Z?(F(A,Z),we.nextTick(K,Z),!1):!0}J.prototype.write=function(A,E,U){var K=this._writableState,Z=!1,b=!K.objectMode&&c(A);return b&&!a.isBuffer(A)&&(A=u(A)),typeof E=="function"&&(U=E,E=null),b?E="buffer":E||(E=K.defaultEncoding),typeof U!="function"&&(U=W),K.ending?V(this,U):(b||oe(this,K,A,U))&&(K.pendingcb++,Z=o(this,K,b,A,E,U)),Z},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,!A.writing&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&g(this,A))},J.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new H(E);return this._writableState.defaultEncoding=E,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(A,E,U){return!A.objectMode&&A.decodeStrings!==!1&&typeof E=="string"&&(E=a.from(E,U)),E}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o(A,E,U,K,Z,b){if(!U){var y=_(E,K,Z);K!==y&&(U=!0,Z="buffer",K=y)}var O=E.objectMode?1:K.length;E.length+=O;var q=E.length<E.highWaterMark;if(q||(E.needDrain=!0),E.writing||E.corked){var X=E.lastBufferedRequest;E.lastBufferedRequest={chunk:K,encoding:Z,isBuf:U,callback:b,next:null},X?X.next=E.lastBufferedRequest:E.bufferedRequest=E.lastBufferedRequest,E.bufferedRequestCount+=1}else f(A,E,!1,O,K,Z,b);return q}function f(A,E,U,K,Z,b,y){E.writelen=K,E.writecb=y,E.writing=!0,E.sync=!0,E.destroyed?E.onwrite(new L("write")):U?A._writev(Z,E.onwrite):A._write(Z,b,E.onwrite),E.sync=!1}function l(A,E,U,K,Z){--E.pendingcb,U?(we.nextTick(Z,K),we.nextTick($,A,E),A._writableState.errorEmitted=!0,F(A,K)):(Z(K),A._writableState.errorEmitted=!0,F(A,K),$(A,E))}function h(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}function p(A,E){var U=A._writableState,K=U.sync,Z=U.writecb;if(typeof Z!="function")throw new P;if(h(U),E)l(A,U,K,E,Z);else{var b=s(U)||A.destroyed;!b&&!U.corked&&!U.bufferProcessing&&U.bufferedRequest&&g(A,U),K?we.nextTick(w,A,U,b,Z):w(A,U,b,Z)}}function w(A,E,U,K){U||x(A,E),E.pendingcb--,K(),$(A,E)}function x(A,E){E.length===0&&E.needDrain&&(E.needDrain=!1,A.emit("drain"))}function g(A,E){E.bufferProcessing=!0;var U=E.bufferedRequest;if(A._writev&&U&&U.next){var K=E.bufferedRequestCount,Z=new Array(K),b=E.corkedRequestsFree;b.entry=U;for(var y=0,O=!0;U;)Z[y]=U,U.isBuf||(O=!1),U=U.next,y+=1;Z.allBuffers=O,f(A,E,!0,E.length,Z,"",b.finish),E.pendingcb++,E.lastBufferedRequest=null,b.next?(E.corkedRequestsFree=b.next,b.next=null):E.corkedRequestsFree=new e(E),E.bufferedRequestCount=0}else{for(;U;){var q=U.chunk,X=U.encoding,D=U.callback,N=E.objectMode?1:q.length;if(f(A,E,!1,N,q,X,D),U=U.next,E.bufferedRequestCount--,E.writing)break}U===null&&(E.lastBufferedRequest=null)}E.bufferedRequest=U,E.bufferProcessing=!1}J.prototype._write=function(A,E,U){U(new C("_write()"))},J.prototype._writev=null,J.prototype.end=function(A,E,U){var K=this._writableState;return typeof A=="function"?(U=A,A=null,E=null):typeof E=="function"&&(U=E,E=null),A!=null&&this.write(A,E),K.corked&&(K.corked=1,this.uncork()),K.ending||G(this,K,U),this},Object.defineProperty(J.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(A){return A.ending&&A.length===0&&A.bufferedRequest===null&&!A.finished&&!A.writing}function v(A,E){A._final(function(U){E.pendingcb--,U&&F(A,U),E.prefinished=!0,A.emit("prefinish"),$(A,E)})}function T(A,E){!E.prefinished&&!E.finalCalled&&(typeof A._final=="function"&&!E.destroyed?(E.pendingcb++,E.finalCalled=!0,we.nextTick(v,A,E)):(E.prefinished=!0,A.emit("prefinish")))}function $(A,E){var U=s(E);if(U&&(T(A,E),E.pendingcb===0&&(E.finished=!0,A.emit("finish"),E.autoDestroy))){var K=A._readableState;(!K||K.autoDestroy&&K.endEmitted)&&A.destroy()}return U}function G(A,E,U){E.ending=!0,$(A,E),U&&(E.finished?we.nextTick(U):A.once("finish",U)),E.ended=!0,A.writable=!1}function ee(A,E,U){var K=A.entry;for(A.entry=null;K;){var Z=K.callback;E.pendingcb--,Z(U),K=K.next}E.corkedRequestsFree.next=A}return Object.defineProperty(J.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(E){this._writableState&&(this._writableState.destroyed=E)}}),J.prototype.destroy=d.destroy,J.prototype._undestroy=d.undestroy,J.prototype._destroy=function(A,E){E(A)},p0}var v0,iw;function Ss(){if(iw)return v0;iw=1;var e=Object.keys||function(m){var M=[];for(var S in m)M.push(S);return M};v0=u;var t=Px(),r=Ox();Ze(u,t);for(var i=e(r.prototype),a=0;a<i.length;a++){var n=i[a];u.prototype[n]||(u.prototype[n]=r.prototype[n])}function u(m){if(!(this instanceof u))return new u(m);t.call(this,m),r.call(this,m),this.allowHalfOpen=!0,m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",c)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function c(){this._writableState.ended||we.nextTick(d,this)}function d(m){m.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(M){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=M,this._writableState.destroyed=M)}}),v0}var nw=Ia.codes.ERR_STREAM_PREMATURE_CLOSE;function EH(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];e.apply(this,i)}}}function RH(){}function AH(e){return e.setHeader&&typeof e.abort=="function"}function Ix(e,t,r){if(typeof t=="function")return Ix(e,null,t);t||(t={}),r=EH(r||RH);var i=t.readable||t.readable!==!1&&e.readable,a=t.writable||t.writable!==!1&&e.writable,n=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){a=!1,u=!0,i||r.call(e)},d=e._readableState&&e._readableState.endEmitted,m=function(){i=!1,d=!0,a||r.call(e)},M=function(P){r.call(e,P)},S=function(){var P;if(i&&!d)return(!e._readableState||!e._readableState.ended)&&(P=new nw),r.call(e,P);if(a&&!u)return(!e._writableState||!e._writableState.ended)&&(P=new nw),r.call(e,P)},R=function(){e.req.on("finish",c)};return AH(e)?(e.on("complete",c),e.on("abort",S),e.req?R():e.on("request",R)):a&&!e._writableState&&(e.on("end",n),e.on("close",n)),e.on("end",m),e.on("finish",c),t.error!==!1&&e.on("error",M),e.on("close",S),function(){e.removeListener("complete",c),e.removeListener("abort",S),e.removeListener("request",R),e.req&&e.req.removeListener("finish",c),e.removeListener("end",n),e.removeListener("close",n),e.removeListener("finish",c),e.removeListener("end",m),e.removeListener("error",M),e.removeListener("close",S)}}var Pg=Ix,g0,ow;function TH(){if(ow)return g0;ow=1;var e;function t(H,F,W){return F=r(F),F in H?Object.defineProperty(H,F,{value:W,enumerable:!0,configurable:!0,writable:!0}):H[F]=W,H}function r(H){var F=i(H,"string");return typeof F=="symbol"?F:String(F)}function i(H,F){if(typeof H!="object"||H===null)return H;var W=H[Symbol.toPrimitive];if(W!==void 0){var Y=W.call(H,F||"default");if(typeof Y!="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(F==="string"?String:Number)(H)}var a=Pg,n=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),m=Symbol("lastPromise"),M=Symbol("handlePromise"),S=Symbol("stream");function R(H,F){return{value:H,done:F}}function C(H){var F=H[n];if(F!==null){var W=H[S].read();W!==null&&(H[m]=null,H[n]=null,H[u]=null,F(R(W,!1)))}}function P(H){we.nextTick(C,H)}function k(H,F){return function(W,Y){H.then(function(){if(F[d]){W(R(void 0,!0));return}F[M](W,Y)},Y)}}var L=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[S]},next:function(){var F=this,W=this[c];if(W!==null)return Promise.reject(W);if(this[d])return Promise.resolve(R(void 0,!0));if(this[S].destroyed)return new Promise(function(V,oe){we.nextTick(function(){F[c]?oe(F[c]):V(R(void 0,!0))})});var Y=this[m],ie;if(Y)ie=new Promise(k(Y,this));else{var J=this[S].read();if(J!==null)return Promise.resolve(R(J,!1));ie=new Promise(this[M])}return this[m]=ie,ie}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var F=this;return new Promise(function(W,Y){F[S].destroy(null,function(ie){if(ie){Y(ie);return}W(R(void 0,!0))})})}),e),L),B=function(F){var W,Y=Object.create(I,(W={},t(W,S,{value:F,writable:!0}),t(W,n,{value:null,writable:!0}),t(W,u,{value:null,writable:!0}),t(W,c,{value:null,writable:!0}),t(W,d,{value:F._readableState.endEmitted,writable:!0}),t(W,M,{value:function(J,V){var oe=Y[S].read();oe?(Y[m]=null,Y[n]=null,Y[u]=null,J(R(oe,!1))):(Y[n]=J,Y[u]=V)},writable:!0}),W));return Y[m]=null,a(F,function(ie){if(ie&&ie.code!=="ERR_STREAM_PREMATURE_CLOSE"){var J=Y[u];J!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,J(ie)),Y[c]=ie;return}var V=Y[n];V!==null&&(Y[m]=null,Y[n]=null,Y[u]=null,V(R(void 0,!0))),Y[d]=!0}),F.on("readable",P.bind(null,Y)),Y};return g0=B,g0}var m0,aw;function OH(){return aw||(aw=1,m0=function(){throw new Error("Readable.from is not available in the browser")}),m0}var y0,sw;function Px(){if(sw)return y0;sw=1,y0=V;var e;V.ReadableState=J,Or.EventEmitter;var t=function(y,O){return y.listeners(O).length},r=Ex,i=ke.Buffer,a=(typeof Ye<"u"?Ye:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function n(b){return i.from(b)}function u(b){return i.isBuffer(b)||b instanceof a}var c=ei,d;c&&c.debuglog?d=c.debuglog("stream"):d=function(){};var m=pH(),M=Rx,S=Tx,R=S.getHighWaterMark,C=Ia.codes,P=C.ERR_INVALID_ARG_TYPE,k=C.ERR_STREAM_PUSH_AFTER_EOF,L=C.ERR_METHOD_NOT_IMPLEMENTED,I=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,B,H,F;Ze(V,r);var W=M.errorOrDestroy,Y=["error","close","destroy","pause","resume"];function ie(b,y,O){if(typeof b.prependListener=="function")return b.prependListener(y,O);!b._events||!b._events[y]?b.on(y,O):Array.isArray(b._events[y])?b._events[y].unshift(O):b._events[y]=[O,b._events[y]]}function J(b,y,O){e=e||Ss(),b=b||{},typeof O!="boolean"&&(O=y instanceof e),this.objectMode=!!b.objectMode,O&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=R(this,b,"readableHighWaterMark",O),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(B||(B=Xr().StringDecoder),this.decoder=new B(b.encoding),this.encoding=b.encoding)}function V(b){if(e=e||Ss(),!(this instanceof V))return new V(b);var y=this instanceof e;this._readableState=new J(b,this,y),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(y){this._readableState&&(this._readableState.destroyed=y)}}),V.prototype.destroy=M.destroy,V.prototype._undestroy=M.undestroy,V.prototype._destroy=function(b,y){y(b)},V.prototype.push=function(b,y){var O=this._readableState,q;return O.objectMode?q=!0:typeof b=="string"&&(y=y||O.defaultEncoding,y!==O.encoding&&(b=i.from(b,y),y=""),q=!0),oe(this,b,y,!1,q)},V.prototype.unshift=function(b){return oe(this,b,null,!0,!1)};function oe(b,y,O,q,X){d("readableAddChunk",y);var D=b._readableState;if(y===null)D.reading=!1,p(b,D);else{var N;if(X||(N=o(D,y)),N)W(b,N);else if(D.objectMode||y&&y.length>0)if(typeof y!="string"&&!D.objectMode&&Object.getPrototypeOf(y)!==i.prototype&&(y=n(y)),q)D.endEmitted?W(b,new I):_(b,D,y,!0);else if(D.ended)W(b,new k);else{if(D.destroyed)return!1;D.reading=!1,D.decoder&&!O?(y=D.decoder.write(y),D.objectMode||y.length!==0?_(b,D,y,!1):g(b,D)):_(b,D,y,!1)}else q||(D.reading=!1,g(b,D))}return!D.ended&&(D.length<D.highWaterMark||D.length===0)}function _(b,y,O,q){y.flowing&&y.length===0&&!y.sync?(y.awaitDrain=0,b.emit("data",O)):(y.length+=y.objectMode?1:O.length,q?y.buffer.unshift(O):y.buffer.push(O),y.needReadable&&w(b)),g(b,y)}function o(b,y){var O;return!u(y)&&typeof y!="string"&&y!==void 0&&!b.objectMode&&(O=new P("chunk",["string","Buffer","Uint8Array"],y)),O}V.prototype.isPaused=function(){return this._readableState.flowing===!1},V.prototype.setEncoding=function(b){B||(B=Xr().StringDecoder);var y=new B(b);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;for(var O=this._readableState.buffer.head,q="";O!==null;)q+=y.write(O.data),O=O.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var f=1073741824;function l(b){return b>=f?b=f:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function h(b,y){return b<=0||y.length===0&&y.ended?0:y.objectMode?1:b!==b?y.flowing&&y.length?y.buffer.head.data.length:y.length:(b>y.highWaterMark&&(y.highWaterMark=l(b)),b<=y.length?b:y.ended?y.length:(y.needReadable=!0,0))}V.prototype.read=function(b){d("read",b),b=parseInt(b,10);var y=this._readableState,O=b;if(b!==0&&(y.emittedReadable=!1),b===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return d("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?U(this):w(this),null;if(b=h(b,y),b===0&&y.ended)return y.length===0&&U(this),null;var q=y.needReadable;d("need readable",q),(y.length===0||y.length-b<y.highWaterMark)&&(q=!0,d("length less than watermark",q)),y.ended||y.reading?(q=!1,d("reading or ended",q)):q&&(d("do read"),y.reading=!0,y.sync=!0,y.length===0&&(y.needReadable=!0),this._read(y.highWaterMark),y.sync=!1,y.reading||(b=h(O,y)));var X;return b>0?X=E(b,y):X=null,X===null?(y.needReadable=y.length<=y.highWaterMark,b=0):(y.length-=b,y.awaitDrain=0),y.length===0&&(y.ended||(y.needReadable=!0),O!==b&&y.ended&&U(this)),X!==null&&this.emit("data",X),X};function p(b,y){if(d("onEofChunk"),!y.ended){if(y.decoder){var O=y.decoder.end();O&&O.length&&(y.buffer.push(O),y.length+=y.objectMode?1:O.length)}y.ended=!0,y.sync?w(b):(y.needReadable=!1,y.emittedReadable||(y.emittedReadable=!0,x(b)))}}function w(b){var y=b._readableState;d("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||(d("emitReadable",y.flowing),y.emittedReadable=!0,we.nextTick(x,b))}function x(b){var y=b._readableState;d("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&(y.length||y.ended)&&(b.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,A(b)}function g(b,y){y.readingMore||(y.readingMore=!0,we.nextTick(s,b,y))}function s(b,y){for(;!y.reading&&!y.ended&&(y.length<y.highWaterMark||y.flowing&&y.length===0);){var O=y.length;if(d("maybeReadMore read 0"),b.read(0),O===y.length)break}y.readingMore=!1}V.prototype._read=function(b){W(this,new L("_read()"))},V.prototype.pipe=function(b,y){var O=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=b;break;case 1:q.pipes=[q.pipes,b];break;default:q.pipes.push(b);break}q.pipesCount+=1,d("pipe count=%d opts=%j",q.pipesCount,y);var X=(!y||y.end!==!1)&&b!==we.stdout&&b!==we.stderr,D=X?j:le;q.endEmitted?we.nextTick(D):O.once("end",D),b.on("unpipe",N);function N(ce,pe){d("onunpipe"),ce===O&&pe&&pe.hasUnpiped===!1&&(pe.hasUnpiped=!0,te())}function j(){d("onend"),b.end()}var z=v(O);b.on("drain",z);var se=!1;function te(){d("cleanup"),b.removeListener("close",Q),b.removeListener("finish",ue),b.removeListener("drain",z),b.removeListener("error",Ee),b.removeListener("unpipe",N),O.removeListener("end",j),O.removeListener("end",le),O.removeListener("data",ne),se=!0,q.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&z()}O.on("data",ne);function ne(ce){d("ondata");var pe=b.write(ce);d("dest.write",pe),pe===!1&&((q.pipesCount===1&&q.pipes===b||q.pipesCount>1&&Z(q.pipes,b)!==-1)&&!se&&(d("false write response, pause",q.awaitDrain),q.awaitDrain++),O.pause())}function Ee(ce){d("onerror",ce),le(),b.removeListener("error",Ee),t(b,"error")===0&&W(b,ce)}ie(b,"error",Ee);function Q(){b.removeListener("finish",ue),le()}b.once("close",Q);function ue(){d("onfinish"),b.removeListener("close",Q),le()}b.once("finish",ue);function le(){d("unpipe"),O.unpipe(b)}return b.emit("pipe",O),q.flowing||(d("pipe resume"),O.resume()),b};function v(b){return function(){var O=b._readableState;d("pipeOnDrain",O.awaitDrain),O.awaitDrain&&O.awaitDrain--,O.awaitDrain===0&&t(b,"data")&&(O.flowing=!0,A(b))}}V.prototype.unpipe=function(b){var y=this._readableState,O={hasUnpiped:!1};if(y.pipesCount===0)return this;if(y.pipesCount===1)return b&&b!==y.pipes?this:(b||(b=y.pipes),y.pipes=null,y.pipesCount=0,y.flowing=!1,b&&b.emit("unpipe",this,O),this);if(!b){var q=y.pipes,X=y.pipesCount;y.pipes=null,y.pipesCount=0,y.flowing=!1;for(var D=0;D<X;D++)q[D].emit("unpipe",this,{hasUnpiped:!1});return this}var N=Z(y.pipes,b);return N===-1?this:(y.pipes.splice(N,1),y.pipesCount-=1,y.pipesCount===1&&(y.pipes=y.pipes[0]),b.emit("unpipe",this,O),this)},V.prototype.on=function(b,y){var O=r.prototype.on.call(this,b,y),q=this._readableState;return b==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):b==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,d("on readable",q.length,q.reading),q.length?w(this):q.reading||we.nextTick($,this)),O},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(b,y){var O=r.prototype.removeListener.call(this,b,y);return b==="readable"&&we.nextTick(T,this),O},V.prototype.removeAllListeners=function(b){var y=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&we.nextTick(T,this),y};function T(b){var y=b._readableState;y.readableListening=b.listenerCount("readable")>0,y.resumeScheduled&&!y.paused?y.flowing=!0:b.listenerCount("data")>0&&b.resume()}function $(b){d("readable nexttick read 0"),b.read(0)}V.prototype.resume=function(){var b=this._readableState;return b.flowing||(d("resume"),b.flowing=!b.readableListening,G(this,b)),b.paused=!1,this};function G(b,y){y.resumeScheduled||(y.resumeScheduled=!0,we.nextTick(ee,b,y))}function ee(b,y){d("resume",y.reading),y.reading||b.read(0),y.resumeScheduled=!1,b.emit("resume"),A(b),y.flowing&&!y.reading&&b.read(0)}V.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function A(b){var y=b._readableState;for(d("flow",y.flowing);y.flowing&&b.read()!==null;);}V.prototype.wrap=function(b){var y=this,O=this._readableState,q=!1;b.on("end",function(){if(d("wrapped end"),O.decoder&&!O.ended){var N=O.decoder.end();N&&N.length&&y.push(N)}y.push(null)}),b.on("data",function(N){if(d("wrapped data"),O.decoder&&(N=O.decoder.write(N)),!(O.objectMode&&N==null)&&!(!O.objectMode&&(!N||!N.length))){var j=y.push(N);j||(q=!0,b.pause())}});for(var X in b)this[X]===void 0&&typeof b[X]=="function"&&(this[X]=function(j){return function(){return b[j].apply(b,arguments)}}(X));for(var D=0;D<Y.length;D++)b.on(Y[D],this.emit.bind(this,Y[D]));return this._read=function(N){d("wrapped _read",N),q&&(q=!1,b.resume())},this},typeof Symbol=="function"&&(V.prototype[Symbol.asyncIterator]=function(){return H===void 0&&(H=TH()),H(this)}),Object.defineProperty(V.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(V.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(V.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(y){this._readableState&&(this._readableState.flowing=y)}}),V._fromList=E,Object.defineProperty(V.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function E(b,y){if(y.length===0)return null;var O;return y.objectMode?O=y.buffer.shift():!b||b>=y.length?(y.decoder?O=y.buffer.join(""):y.buffer.length===1?O=y.buffer.first():O=y.buffer.concat(y.length),y.buffer.clear()):O=y.buffer.consume(b,y.decoder),O}function U(b){var y=b._readableState;d("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,we.nextTick(K,y,b))}function K(b,y){if(d("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,y.readable=!1,y.emit("end"),b.autoDestroy)){var O=y._writableState;(!O||O.autoDestroy&&O.finished)&&y.destroy()}}typeof Symbol=="function"&&(V.from=function(b,y){return F===void 0&&(F=OH()),F(V,b,y)});function Z(b,y){for(var O=0,q=b.length;O<q;O++)if(b[O]===y)return O;return-1}return y0}var Cx=Un,uc=Ia.codes,IH=uc.ERR_METHOD_NOT_IMPLEMENTED,PH=uc.ERR_MULTIPLE_CALLBACK,CH=uc.ERR_TRANSFORM_ALREADY_TRANSFORMING,BH=uc.ERR_TRANSFORM_WITH_LENGTH_0,lc=Ss();Ze(Un,lc);function LH(e,t){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new PH);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),i(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function Un(e){if(!(this instanceof Un))return new Un(e);lc.call(this,e),this._transformState={afterTransform:LH.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",NH)}function NH(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){fw(e,t,r)}):fw(this,null,null)}Un.prototype.push=function(e,t){return this._transformState.needTransform=!1,lc.prototype.push.call(this,e,t)};Un.prototype._transform=function(e,t,r){r(new IH("_transform()"))};Un.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var a=this._readableState;(i.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};Un.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Un.prototype._destroy=function(e,t){lc.prototype._destroy.call(this,e,function(r){t(r)})};function fw(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new BH;if(e._transformState.transforming)throw new CH;return e.push(null)}var kH=su,Bx=Cx;Ze(su,Bx);function su(e){if(!(this instanceof su))return new su(e);Bx.call(this,e)}su.prototype._transform=function(e,t,r){r(null,e)};var b0;function $H(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var Lx=Ia.codes,DH=Lx.ERR_MISSING_ARGS,FH=Lx.ERR_STREAM_DESTROYED;function uw(e){if(e)throw e}function jH(e){return e.setHeader&&typeof e.abort=="function"}function UH(e,t,r,i){i=$H(i);var a=!1;e.on("close",function(){a=!0}),b0===void 0&&(b0=Pg),b0(e,{readable:t,writable:r},function(u){if(u)return i(u);a=!0,i()});var n=!1;return function(u){if(!a&&!n){if(n=!0,jH(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();i(u||new FH("pipe"))}}}function lw(e){e()}function HH(e,t){return e.pipe(t)}function qH(e){return!e.length||typeof e[e.length-1]!="function"?uw:e.pop()}function WH(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=qH(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new DH("streams");var a,n=t.map(function(u,c){var d=c<t.length-1,m=c>0;return UH(u,d,m,function(M){a||(a=M),M&&n.forEach(lw),!d&&(n.forEach(lw),i(a))})});return t.reduce(HH)}var KH=WH;(function(e,t){t=e.exports=Px(),t.Stream=t,t.Readable=t,t.Writable=Ox(),t.Duplex=Ss(),t.Transform=Cx,t.PassThrough=kH,t.finished=Pg,t.pipeline=KH})(Vp,Vp.exports);var VH=Vp.exports,gf={exports:{}},Cg={exports:{}};Cg.exports;(function(e){(function(t,r){function i(f,l){if(!f)throw new Error(l||"Assertion failed")}function a(f,l){f.super_=l;var h=function(){};h.prototype=l.prototype,f.prototype=new h,f.prototype.constructor=f}function n(f,l,h){if(n.isBN(f))return f;this.negative=0,this.words=null,this.length=0,this.red=null,f!==null&&((l==="le"||l==="be")&&(h=l,l=10),this._init(f||0,l||10,h||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(l){return l instanceof n?!0:l!==null&&typeof l=="object"&&l.constructor.wordSize===n.wordSize&&Array.isArray(l.words)},n.max=function(l,h){return l.cmp(h)>0?l:h},n.min=function(l,h){return l.cmp(h)<0?l:h},n.prototype._init=function(l,h,p){if(typeof l=="number")return this._initNumber(l,h,p);if(typeof l=="object")return this._initArray(l,h,p);h==="hex"&&(h=16),i(h===(h|0)&&h>=2&&h<=36),l=l.toString().replace(/\s+/g,"");var w=0;l[0]==="-"&&(w++,this.negative=1),w<l.length&&(h===16?this._parseHex(l,w,p):(this._parseBase(l,h,w),p==="le"&&this._initArray(this.toArray(),h,p)))},n.prototype._initNumber=function(l,h,p){l<0&&(this.negative=1,l=-l),l<67108864?(this.words=[l&67108863],this.length=1):l<4503599627370496?(this.words=[l&67108863,l/67108864&67108863],this.length=2):(i(l<9007199254740992),this.words=[l&67108863,l/67108864&67108863,1],this.length=3),p==="le"&&this._initArray(this.toArray(),h,p)},n.prototype._initArray=function(l,h,p){if(i(typeof l.length=="number"),l.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(l.length/3),this.words=new Array(this.length);for(var w=0;w<this.length;w++)this.words[w]=0;var x,g,s=0;if(p==="be")for(w=l.length-1,x=0;w>=0;w-=3)g=l[w]|l[w-1]<<8|l[w-2]<<16,this.words[x]|=g<<s&67108863,this.words[x+1]=g>>>26-s&67108863,s+=24,s>=26&&(s-=26,x++);else if(p==="le")for(w=0,x=0;w<l.length;w+=3)g=l[w]|l[w+1]<<8|l[w+2]<<16,this.words[x]|=g<<s&67108863,this.words[x+1]=g>>>26-s&67108863,s+=24,s>=26&&(s-=26,x++);return this._strip()};function c(f,l){var h=f.charCodeAt(l);if(h>=48&&h<=57)return h-48;if(h>=65&&h<=70)return h-55;if(h>=97&&h<=102)return h-87;i(!1,"Invalid character in "+f)}function d(f,l,h){var p=c(f,h);return h-1>=l&&(p|=c(f,h-1)<<4),p}n.prototype._parseHex=function(l,h,p){this.length=Math.ceil((l.length-h)/6),this.words=new Array(this.length);for(var w=0;w<this.length;w++)this.words[w]=0;var x=0,g=0,s;if(p==="be")for(w=l.length-1;w>=h;w-=2)s=d(l,h,w)<<x,this.words[g]|=s&67108863,x>=18?(x-=18,g+=1,this.words[g]|=s>>>26):x+=8;else{var v=l.length-h;for(w=v%2===0?h+1:h;w<l.length;w+=2)s=d(l,h,w)<<x,this.words[g]|=s&67108863,x>=18?(x-=18,g+=1,this.words[g]|=s>>>26):x+=8}this._strip()};function m(f,l,h,p){for(var w=0,x=0,g=Math.min(f.length,h),s=l;s<g;s++){var v=f.charCodeAt(s)-48;w*=p,v>=49?x=v-49+10:v>=17?x=v-17+10:x=v,i(v>=0&&x<p,"Invalid character"),w+=x}return w}n.prototype._parseBase=function(l,h,p){this.words=[0],this.length=1;for(var w=0,x=1;x<=67108863;x*=h)w++;w--,x=x/h|0;for(var g=l.length-p,s=g%w,v=Math.min(g,g-s)+p,T=0,$=p;$<v;$+=w)T=m(l,$,$+w,h),this.imuln(x),this.words[0]+T<67108864?this.words[0]+=T:this._iaddn(T);if(s!==0){var G=1;for(T=m(l,$,l.length,h),$=0;$<s;$++)G*=h;this.imuln(G),this.words[0]+T<67108864?this.words[0]+=T:this._iaddn(T)}this._strip()},n.prototype.copy=function(l){l.words=new Array(this.length);for(var h=0;h<this.length;h++)l.words[h]=this.words[h];l.length=this.length,l.negative=this.negative,l.red=this.red};function M(f,l){f.words=l.words,f.length=l.length,f.negative=l.negative,f.red=l.red}if(n.prototype._move=function(l){M(l,this)},n.prototype.clone=function(){var l=new n(null);return this.copy(l),l},n.prototype._expand=function(l){for(;this.length<l;)this.words[this.length++]=0;return this},n.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{n.prototype[Symbol.for("nodejs.util.inspect.custom")]=S}catch{n.prototype.inspect=S}else n.prototype.inspect=S;function S(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var R=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],C=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],P=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(l,h){l=l||10,h=h|0||1;var p;if(l===16||l==="hex"){p="";for(var w=0,x=0,g=0;g<this.length;g++){var s=this.words[g],v=((s<<w|x)&16777215).toString(16);x=s>>>24-w&16777215,w+=2,w>=26&&(w-=26,g--),x!==0||g!==this.length-1?p=R[6-v.length]+v+p:p=v+p}for(x!==0&&(p=x.toString(16)+p);p.length%h!==0;)p="0"+p;return this.negative!==0&&(p="-"+p),p}if(l===(l|0)&&l>=2&&l<=36){var T=C[l],$=P[l];p="";var G=this.clone();for(G.negative=0;!G.isZero();){var ee=G.modrn($).toString(l);G=G.idivn($),G.isZero()?p=ee+p:p=R[T-ee.length]+ee+p}for(this.isZero()&&(p="0"+p);p.length%h!==0;)p="0"+p;return this.negative!==0&&(p="-"+p),p}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var l=this.words[0];return this.length===2?l+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l:l},n.prototype.toJSON=function(){return this.toString(16,2)},u&&(n.prototype.toBuffer=function(l,h){return this.toArrayLike(u,l,h)}),n.prototype.toArray=function(l,h){return this.toArrayLike(Array,l,h)};var k=function(l,h){return l.allocUnsafe?l.allocUnsafe(h):new l(h)};n.prototype.toArrayLike=function(l,h,p){this._strip();var w=this.byteLength(),x=p||Math.max(1,w);i(w<=x,"byte array longer than desired length"),i(x>0,"Requested array length <= 0");var g=k(l,x),s=h==="le"?"LE":"BE";return this["_toArrayLike"+s](g,w),g},n.prototype._toArrayLikeLE=function(l,h){for(var p=0,w=0,x=0,g=0;x<this.length;x++){var s=this.words[x]<<g|w;l[p++]=s&255,p<l.length&&(l[p++]=s>>8&255),p<l.length&&(l[p++]=s>>16&255),g===6?(p<l.length&&(l[p++]=s>>24&255),w=0,g=0):(w=s>>>24,g+=2)}if(p<l.length)for(l[p++]=w;p<l.length;)l[p++]=0},n.prototype._toArrayLikeBE=function(l,h){for(var p=l.length-1,w=0,x=0,g=0;x<this.length;x++){var s=this.words[x]<<g|w;l[p--]=s&255,p>=0&&(l[p--]=s>>8&255),p>=0&&(l[p--]=s>>16&255),g===6?(p>=0&&(l[p--]=s>>24&255),w=0,g=0):(w=s>>>24,g+=2)}if(p>=0)for(l[p--]=w;p>=0;)l[p--]=0},Math.clz32?n.prototype._countBits=function(l){return 32-Math.clz32(l)}:n.prototype._countBits=function(l){var h=l,p=0;return h>=4096&&(p+=13,h>>>=13),h>=64&&(p+=7,h>>>=7),h>=8&&(p+=4,h>>>=4),h>=2&&(p+=2,h>>>=2),p+h},n.prototype._zeroBits=function(l){if(l===0)return 26;var h=l,p=0;return h&8191||(p+=13,h>>>=13),h&127||(p+=7,h>>>=7),h&15||(p+=4,h>>>=4),h&3||(p+=2,h>>>=2),h&1||p++,p},n.prototype.bitLength=function(){var l=this.words[this.length-1],h=this._countBits(l);return(this.length-1)*26+h};function L(f){for(var l=new Array(f.bitLength()),h=0;h<l.length;h++){var p=h/26|0,w=h%26;l[h]=f.words[p]>>>w&1}return l}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l=0,h=0;h<this.length;h++){var p=this._zeroBits(this.words[h]);if(l+=p,p!==26)break}return l},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(l){return this.negative!==0?this.abs().inotn(l).iaddn(1):this.clone()},n.prototype.fromTwos=function(l){return this.testn(l-1)?this.notn(l).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(l){for(;this.length<l.length;)this.words[this.length++]=0;for(var h=0;h<l.length;h++)this.words[h]=this.words[h]|l.words[h];return this._strip()},n.prototype.ior=function(l){return i((this.negative|l.negative)===0),this.iuor(l)},n.prototype.or=function(l){return this.length>l.length?this.clone().ior(l):l.clone().ior(this)},n.prototype.uor=function(l){return this.length>l.length?this.clone().iuor(l):l.clone().iuor(this)},n.prototype.iuand=function(l){var h;this.length>l.length?h=l:h=this;for(var p=0;p<h.length;p++)this.words[p]=this.words[p]&l.words[p];return this.length=h.length,this._strip()},n.prototype.iand=function(l){return i((this.negative|l.negative)===0),this.iuand(l)},n.prototype.and=function(l){return this.length>l.length?this.clone().iand(l):l.clone().iand(this)},n.prototype.uand=function(l){return this.length>l.length?this.clone().iuand(l):l.clone().iuand(this)},n.prototype.iuxor=function(l){var h,p;this.length>l.length?(h=this,p=l):(h=l,p=this);for(var w=0;w<p.length;w++)this.words[w]=h.words[w]^p.words[w];if(this!==h)for(;w<h.length;w++)this.words[w]=h.words[w];return this.length=h.length,this._strip()},n.prototype.ixor=function(l){return i((this.negative|l.negative)===0),this.iuxor(l)},n.prototype.xor=function(l){return this.length>l.length?this.clone().ixor(l):l.clone().ixor(this)},n.prototype.uxor=function(l){return this.length>l.length?this.clone().iuxor(l):l.clone().iuxor(this)},n.prototype.inotn=function(l){i(typeof l=="number"&&l>=0);var h=Math.ceil(l/26)|0,p=l%26;this._expand(h),p>0&&h--;for(var w=0;w<h;w++)this.words[w]=~this.words[w]&67108863;return p>0&&(this.words[w]=~this.words[w]&67108863>>26-p),this._strip()},n.prototype.notn=function(l){return this.clone().inotn(l)},n.prototype.setn=function(l,h){i(typeof l=="number"&&l>=0);var p=l/26|0,w=l%26;return this._expand(p+1),h?this.words[p]=this.words[p]|1<<w:this.words[p]=this.words[p]&~(1<<w),this._strip()},n.prototype.iadd=function(l){var h;if(this.negative!==0&&l.negative===0)return this.negative=0,h=this.isub(l),this.negative^=1,this._normSign();if(this.negative===0&&l.negative!==0)return l.negative=0,h=this.isub(l),l.negative=1,h._normSign();var p,w;this.length>l.length?(p=this,w=l):(p=l,w=this);for(var x=0,g=0;g<w.length;g++)h=(p.words[g]|0)+(w.words[g]|0)+x,this.words[g]=h&67108863,x=h>>>26;for(;x!==0&&g<p.length;g++)h=(p.words[g]|0)+x,this.words[g]=h&67108863,x=h>>>26;if(this.length=p.length,x!==0)this.words[this.length]=x,this.length++;else if(p!==this)for(;g<p.length;g++)this.words[g]=p.words[g];return this},n.prototype.add=function(l){var h;return l.negative!==0&&this.negative===0?(l.negative=0,h=this.sub(l),l.negative^=1,h):l.negative===0&&this.negative!==0?(this.negative=0,h=l.sub(this),this.negative=1,h):this.length>l.length?this.clone().iadd(l):l.clone().iadd(this)},n.prototype.isub=function(l){if(l.negative!==0){l.negative=0;var h=this.iadd(l);return l.negative=1,h._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l),this.negative=1,this._normSign();var p=this.cmp(l);if(p===0)return this.negative=0,this.length=1,this.words[0]=0,this;var w,x;p>0?(w=this,x=l):(w=l,x=this);for(var g=0,s=0;s<x.length;s++)h=(w.words[s]|0)-(x.words[s]|0)+g,g=h>>26,this.words[s]=h&67108863;for(;g!==0&&s<w.length;s++)h=(w.words[s]|0)+g,g=h>>26,this.words[s]=h&67108863;if(g===0&&s<w.length&&w!==this)for(;s<w.length;s++)this.words[s]=w.words[s];return this.length=Math.max(this.length,s),w!==this&&(this.negative=1),this._strip()},n.prototype.sub=function(l){return this.clone().isub(l)};function I(f,l,h){h.negative=l.negative^f.negative;var p=f.length+l.length|0;h.length=p,p=p-1|0;var w=f.words[0]|0,x=l.words[0]|0,g=w*x,s=g&67108863,v=g/67108864|0;h.words[0]=s;for(var T=1;T<p;T++){for(var $=v>>>26,G=v&67108863,ee=Math.min(T,l.length-1),A=Math.max(0,T-f.length+1);A<=ee;A++){var E=T-A|0;w=f.words[E]|0,x=l.words[A]|0,g=w*x+G,$+=g/67108864|0,G=g&67108863}h.words[T]=G|0,v=$|0}return v!==0?h.words[T]=v|0:h.length--,h._strip()}var B=function(l,h,p){var w=l.words,x=h.words,g=p.words,s=0,v,T,$,G=w[0]|0,ee=G&8191,A=G>>>13,E=w[1]|0,U=E&8191,K=E>>>13,Z=w[2]|0,b=Z&8191,y=Z>>>13,O=w[3]|0,q=O&8191,X=O>>>13,D=w[4]|0,N=D&8191,j=D>>>13,z=w[5]|0,se=z&8191,te=z>>>13,ne=w[6]|0,Ee=ne&8191,Q=ne>>>13,ue=w[7]|0,le=ue&8191,ce=ue>>>13,pe=w[8]|0,de=pe&8191,ae=pe>>>13,fe=w[9]|0,Te=fe&8191,ve=fe>>>13,Me=x[0]|0,Ke=Me&8191,be=Me>>>13,Se=x[1]|0,qe=Se&8191,ye=Se>>>13,_e=x[2]|0,Ve=_e&8191,ge=_e>>>13,xe=x[3]|0,Xe=xe&8191,Re=xe>>>13,Le=x[4]|0,at=Le&8191,Ae=Le>>>13,Ne=x[5]|0,rt=Ne&8191,Oe=Ne>>>13,De=x[6]|0,nt=De&8191,Ie=De>>>13,$e=x[7]|0,st=$e&8191,Pe=$e>>>13,je=x[8]|0,ht=je&8191,Ce=je>>>13,Fe=x[9]|0,it=Fe&8191,et=Fe>>>13;p.negative=l.negative^h.negative,p.length=19,v=Math.imul(ee,Ke),T=Math.imul(ee,be),T=T+Math.imul(A,Ke)|0,$=Math.imul(A,be);var xt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(xt>>>26)|0,xt&=67108863,v=Math.imul(U,Ke),T=Math.imul(U,be),T=T+Math.imul(K,Ke)|0,$=Math.imul(K,be),v=v+Math.imul(ee,qe)|0,T=T+Math.imul(ee,ye)|0,T=T+Math.imul(A,qe)|0,$=$+Math.imul(A,ye)|0;var Tt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,v=Math.imul(b,Ke),T=Math.imul(b,be),T=T+Math.imul(y,Ke)|0,$=Math.imul(y,be),v=v+Math.imul(U,qe)|0,T=T+Math.imul(U,ye)|0,T=T+Math.imul(K,qe)|0,$=$+Math.imul(K,ye)|0,v=v+Math.imul(ee,Ve)|0,T=T+Math.imul(ee,ge)|0,T=T+Math.imul(A,Ve)|0,$=$+Math.imul(A,ge)|0;var Ot=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,v=Math.imul(q,Ke),T=Math.imul(q,be),T=T+Math.imul(X,Ke)|0,$=Math.imul(X,be),v=v+Math.imul(b,qe)|0,T=T+Math.imul(b,ye)|0,T=T+Math.imul(y,qe)|0,$=$+Math.imul(y,ye)|0,v=v+Math.imul(U,Ve)|0,T=T+Math.imul(U,ge)|0,T=T+Math.imul(K,Ve)|0,$=$+Math.imul(K,ge)|0,v=v+Math.imul(ee,Xe)|0,T=T+Math.imul(ee,Re)|0,T=T+Math.imul(A,Xe)|0,$=$+Math.imul(A,Re)|0;var Ct=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,v=Math.imul(N,Ke),T=Math.imul(N,be),T=T+Math.imul(j,Ke)|0,$=Math.imul(j,be),v=v+Math.imul(q,qe)|0,T=T+Math.imul(q,ye)|0,T=T+Math.imul(X,qe)|0,$=$+Math.imul(X,ye)|0,v=v+Math.imul(b,Ve)|0,T=T+Math.imul(b,ge)|0,T=T+Math.imul(y,Ve)|0,$=$+Math.imul(y,ge)|0,v=v+Math.imul(U,Xe)|0,T=T+Math.imul(U,Re)|0,T=T+Math.imul(K,Xe)|0,$=$+Math.imul(K,Re)|0,v=v+Math.imul(ee,at)|0,T=T+Math.imul(ee,Ae)|0,T=T+Math.imul(A,at)|0,$=$+Math.imul(A,Ae)|0;var kt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(kt>>>26)|0,kt&=67108863,v=Math.imul(se,Ke),T=Math.imul(se,be),T=T+Math.imul(te,Ke)|0,$=Math.imul(te,be),v=v+Math.imul(N,qe)|0,T=T+Math.imul(N,ye)|0,T=T+Math.imul(j,qe)|0,$=$+Math.imul(j,ye)|0,v=v+Math.imul(q,Ve)|0,T=T+Math.imul(q,ge)|0,T=T+Math.imul(X,Ve)|0,$=$+Math.imul(X,ge)|0,v=v+Math.imul(b,Xe)|0,T=T+Math.imul(b,Re)|0,T=T+Math.imul(y,Xe)|0,$=$+Math.imul(y,Re)|0,v=v+Math.imul(U,at)|0,T=T+Math.imul(U,Ae)|0,T=T+Math.imul(K,at)|0,$=$+Math.imul(K,Ae)|0,v=v+Math.imul(ee,rt)|0,T=T+Math.imul(ee,Oe)|0,T=T+Math.imul(A,rt)|0,$=$+Math.imul(A,Oe)|0;var Ut=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,v=Math.imul(Ee,Ke),T=Math.imul(Ee,be),T=T+Math.imul(Q,Ke)|0,$=Math.imul(Q,be),v=v+Math.imul(se,qe)|0,T=T+Math.imul(se,ye)|0,T=T+Math.imul(te,qe)|0,$=$+Math.imul(te,ye)|0,v=v+Math.imul(N,Ve)|0,T=T+Math.imul(N,ge)|0,T=T+Math.imul(j,Ve)|0,$=$+Math.imul(j,ge)|0,v=v+Math.imul(q,Xe)|0,T=T+Math.imul(q,Re)|0,T=T+Math.imul(X,Xe)|0,$=$+Math.imul(X,Re)|0,v=v+Math.imul(b,at)|0,T=T+Math.imul(b,Ae)|0,T=T+Math.imul(y,at)|0,$=$+Math.imul(y,Ae)|0,v=v+Math.imul(U,rt)|0,T=T+Math.imul(U,Oe)|0,T=T+Math.imul(K,rt)|0,$=$+Math.imul(K,Oe)|0,v=v+Math.imul(ee,nt)|0,T=T+Math.imul(ee,Ie)|0,T=T+Math.imul(A,nt)|0,$=$+Math.imul(A,Ie)|0;var Ht=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,v=Math.imul(le,Ke),T=Math.imul(le,be),T=T+Math.imul(ce,Ke)|0,$=Math.imul(ce,be),v=v+Math.imul(Ee,qe)|0,T=T+Math.imul(Ee,ye)|0,T=T+Math.imul(Q,qe)|0,$=$+Math.imul(Q,ye)|0,v=v+Math.imul(se,Ve)|0,T=T+Math.imul(se,ge)|0,T=T+Math.imul(te,Ve)|0,$=$+Math.imul(te,ge)|0,v=v+Math.imul(N,Xe)|0,T=T+Math.imul(N,Re)|0,T=T+Math.imul(j,Xe)|0,$=$+Math.imul(j,Re)|0,v=v+Math.imul(q,at)|0,T=T+Math.imul(q,Ae)|0,T=T+Math.imul(X,at)|0,$=$+Math.imul(X,Ae)|0,v=v+Math.imul(b,rt)|0,T=T+Math.imul(b,Oe)|0,T=T+Math.imul(y,rt)|0,$=$+Math.imul(y,Oe)|0,v=v+Math.imul(U,nt)|0,T=T+Math.imul(U,Ie)|0,T=T+Math.imul(K,nt)|0,$=$+Math.imul(K,Ie)|0,v=v+Math.imul(ee,st)|0,T=T+Math.imul(ee,Pe)|0,T=T+Math.imul(A,st)|0,$=$+Math.imul(A,Pe)|0;var Bt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,v=Math.imul(de,Ke),T=Math.imul(de,be),T=T+Math.imul(ae,Ke)|0,$=Math.imul(ae,be),v=v+Math.imul(le,qe)|0,T=T+Math.imul(le,ye)|0,T=T+Math.imul(ce,qe)|0,$=$+Math.imul(ce,ye)|0,v=v+Math.imul(Ee,Ve)|0,T=T+Math.imul(Ee,ge)|0,T=T+Math.imul(Q,Ve)|0,$=$+Math.imul(Q,ge)|0,v=v+Math.imul(se,Xe)|0,T=T+Math.imul(se,Re)|0,T=T+Math.imul(te,Xe)|0,$=$+Math.imul(te,Re)|0,v=v+Math.imul(N,at)|0,T=T+Math.imul(N,Ae)|0,T=T+Math.imul(j,at)|0,$=$+Math.imul(j,Ae)|0,v=v+Math.imul(q,rt)|0,T=T+Math.imul(q,Oe)|0,T=T+Math.imul(X,rt)|0,$=$+Math.imul(X,Oe)|0,v=v+Math.imul(b,nt)|0,T=T+Math.imul(b,Ie)|0,T=T+Math.imul(y,nt)|0,$=$+Math.imul(y,Ie)|0,v=v+Math.imul(U,st)|0,T=T+Math.imul(U,Pe)|0,T=T+Math.imul(K,st)|0,$=$+Math.imul(K,Pe)|0,v=v+Math.imul(ee,ht)|0,T=T+Math.imul(ee,Ce)|0,T=T+Math.imul(A,ht)|0,$=$+Math.imul(A,Ce)|0;var dt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(dt>>>26)|0,dt&=67108863,v=Math.imul(Te,Ke),T=Math.imul(Te,be),T=T+Math.imul(ve,Ke)|0,$=Math.imul(ve,be),v=v+Math.imul(de,qe)|0,T=T+Math.imul(de,ye)|0,T=T+Math.imul(ae,qe)|0,$=$+Math.imul(ae,ye)|0,v=v+Math.imul(le,Ve)|0,T=T+Math.imul(le,ge)|0,T=T+Math.imul(ce,Ve)|0,$=$+Math.imul(ce,ge)|0,v=v+Math.imul(Ee,Xe)|0,T=T+Math.imul(Ee,Re)|0,T=T+Math.imul(Q,Xe)|0,$=$+Math.imul(Q,Re)|0,v=v+Math.imul(se,at)|0,T=T+Math.imul(se,Ae)|0,T=T+Math.imul(te,at)|0,$=$+Math.imul(te,Ae)|0,v=v+Math.imul(N,rt)|0,T=T+Math.imul(N,Oe)|0,T=T+Math.imul(j,rt)|0,$=$+Math.imul(j,Oe)|0,v=v+Math.imul(q,nt)|0,T=T+Math.imul(q,Ie)|0,T=T+Math.imul(X,nt)|0,$=$+Math.imul(X,Ie)|0,v=v+Math.imul(b,st)|0,T=T+Math.imul(b,Pe)|0,T=T+Math.imul(y,st)|0,$=$+Math.imul(y,Pe)|0,v=v+Math.imul(U,ht)|0,T=T+Math.imul(U,Ce)|0,T=T+Math.imul(K,ht)|0,$=$+Math.imul(K,Ce)|0,v=v+Math.imul(ee,it)|0,T=T+Math.imul(ee,et)|0,T=T+Math.imul(A,it)|0,$=$+Math.imul(A,et)|0;var At=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(At>>>26)|0,At&=67108863,v=Math.imul(Te,qe),T=Math.imul(Te,ye),T=T+Math.imul(ve,qe)|0,$=Math.imul(ve,ye),v=v+Math.imul(de,Ve)|0,T=T+Math.imul(de,ge)|0,T=T+Math.imul(ae,Ve)|0,$=$+Math.imul(ae,ge)|0,v=v+Math.imul(le,Xe)|0,T=T+Math.imul(le,Re)|0,T=T+Math.imul(ce,Xe)|0,$=$+Math.imul(ce,Re)|0,v=v+Math.imul(Ee,at)|0,T=T+Math.imul(Ee,Ae)|0,T=T+Math.imul(Q,at)|0,$=$+Math.imul(Q,Ae)|0,v=v+Math.imul(se,rt)|0,T=T+Math.imul(se,Oe)|0,T=T+Math.imul(te,rt)|0,$=$+Math.imul(te,Oe)|0,v=v+Math.imul(N,nt)|0,T=T+Math.imul(N,Ie)|0,T=T+Math.imul(j,nt)|0,$=$+Math.imul(j,Ie)|0,v=v+Math.imul(q,st)|0,T=T+Math.imul(q,Pe)|0,T=T+Math.imul(X,st)|0,$=$+Math.imul(X,Pe)|0,v=v+Math.imul(b,ht)|0,T=T+Math.imul(b,Ce)|0,T=T+Math.imul(y,ht)|0,$=$+Math.imul(y,Ce)|0,v=v+Math.imul(U,it)|0,T=T+Math.imul(U,et)|0,T=T+Math.imul(K,it)|0,$=$+Math.imul(K,et)|0;var _t=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(_t>>>26)|0,_t&=67108863,v=Math.imul(Te,Ve),T=Math.imul(Te,ge),T=T+Math.imul(ve,Ve)|0,$=Math.imul(ve,ge),v=v+Math.imul(de,Xe)|0,T=T+Math.imul(de,Re)|0,T=T+Math.imul(ae,Xe)|0,$=$+Math.imul(ae,Re)|0,v=v+Math.imul(le,at)|0,T=T+Math.imul(le,Ae)|0,T=T+Math.imul(ce,at)|0,$=$+Math.imul(ce,Ae)|0,v=v+Math.imul(Ee,rt)|0,T=T+Math.imul(Ee,Oe)|0,T=T+Math.imul(Q,rt)|0,$=$+Math.imul(Q,Oe)|0,v=v+Math.imul(se,nt)|0,T=T+Math.imul(se,Ie)|0,T=T+Math.imul(te,nt)|0,$=$+Math.imul(te,Ie)|0,v=v+Math.imul(N,st)|0,T=T+Math.imul(N,Pe)|0,T=T+Math.imul(j,st)|0,$=$+Math.imul(j,Pe)|0,v=v+Math.imul(q,ht)|0,T=T+Math.imul(q,Ce)|0,T=T+Math.imul(X,ht)|0,$=$+Math.imul(X,Ce)|0,v=v+Math.imul(b,it)|0,T=T+Math.imul(b,et)|0,T=T+Math.imul(y,it)|0,$=$+Math.imul(y,et)|0;var mt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(mt>>>26)|0,mt&=67108863,v=Math.imul(Te,Xe),T=Math.imul(Te,Re),T=T+Math.imul(ve,Xe)|0,$=Math.imul(ve,Re),v=v+Math.imul(de,at)|0,T=T+Math.imul(de,Ae)|0,T=T+Math.imul(ae,at)|0,$=$+Math.imul(ae,Ae)|0,v=v+Math.imul(le,rt)|0,T=T+Math.imul(le,Oe)|0,T=T+Math.imul(ce,rt)|0,$=$+Math.imul(ce,Oe)|0,v=v+Math.imul(Ee,nt)|0,T=T+Math.imul(Ee,Ie)|0,T=T+Math.imul(Q,nt)|0,$=$+Math.imul(Q,Ie)|0,v=v+Math.imul(se,st)|0,T=T+Math.imul(se,Pe)|0,T=T+Math.imul(te,st)|0,$=$+Math.imul(te,Pe)|0,v=v+Math.imul(N,ht)|0,T=T+Math.imul(N,Ce)|0,T=T+Math.imul(j,ht)|0,$=$+Math.imul(j,Ce)|0,v=v+Math.imul(q,it)|0,T=T+Math.imul(q,et)|0,T=T+Math.imul(X,it)|0,$=$+Math.imul(X,et)|0;var It=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(It>>>26)|0,It&=67108863,v=Math.imul(Te,at),T=Math.imul(Te,Ae),T=T+Math.imul(ve,at)|0,$=Math.imul(ve,Ae),v=v+Math.imul(de,rt)|0,T=T+Math.imul(de,Oe)|0,T=T+Math.imul(ae,rt)|0,$=$+Math.imul(ae,Oe)|0,v=v+Math.imul(le,nt)|0,T=T+Math.imul(le,Ie)|0,T=T+Math.imul(ce,nt)|0,$=$+Math.imul(ce,Ie)|0,v=v+Math.imul(Ee,st)|0,T=T+Math.imul(Ee,Pe)|0,T=T+Math.imul(Q,st)|0,$=$+Math.imul(Q,Pe)|0,v=v+Math.imul(se,ht)|0,T=T+Math.imul(se,Ce)|0,T=T+Math.imul(te,ht)|0,$=$+Math.imul(te,Ce)|0,v=v+Math.imul(N,it)|0,T=T+Math.imul(N,et)|0,T=T+Math.imul(j,it)|0,$=$+Math.imul(j,et)|0;var vt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(vt>>>26)|0,vt&=67108863,v=Math.imul(Te,rt),T=Math.imul(Te,Oe),T=T+Math.imul(ve,rt)|0,$=Math.imul(ve,Oe),v=v+Math.imul(de,nt)|0,T=T+Math.imul(de,Ie)|0,T=T+Math.imul(ae,nt)|0,$=$+Math.imul(ae,Ie)|0,v=v+Math.imul(le,st)|0,T=T+Math.imul(le,Pe)|0,T=T+Math.imul(ce,st)|0,$=$+Math.imul(ce,Pe)|0,v=v+Math.imul(Ee,ht)|0,T=T+Math.imul(Ee,Ce)|0,T=T+Math.imul(Q,ht)|0,$=$+Math.imul(Q,Ce)|0,v=v+Math.imul(se,it)|0,T=T+Math.imul(se,et)|0,T=T+Math.imul(te,it)|0,$=$+Math.imul(te,et)|0;var yt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(yt>>>26)|0,yt&=67108863,v=Math.imul(Te,nt),T=Math.imul(Te,Ie),T=T+Math.imul(ve,nt)|0,$=Math.imul(ve,Ie),v=v+Math.imul(de,st)|0,T=T+Math.imul(de,Pe)|0,T=T+Math.imul(ae,st)|0,$=$+Math.imul(ae,Pe)|0,v=v+Math.imul(le,ht)|0,T=T+Math.imul(le,Ce)|0,T=T+Math.imul(ce,ht)|0,$=$+Math.imul(ce,Ce)|0,v=v+Math.imul(Ee,it)|0,T=T+Math.imul(Ee,et)|0,T=T+Math.imul(Q,it)|0,$=$+Math.imul(Q,et)|0;var Dt=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,v=Math.imul(Te,st),T=Math.imul(Te,Pe),T=T+Math.imul(ve,st)|0,$=Math.imul(ve,Pe),v=v+Math.imul(de,ht)|0,T=T+Math.imul(de,Ce)|0,T=T+Math.imul(ae,ht)|0,$=$+Math.imul(ae,Ce)|0,v=v+Math.imul(le,it)|0,T=T+Math.imul(le,et)|0,T=T+Math.imul(ce,it)|0,$=$+Math.imul(ce,et)|0;var Ft=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,v=Math.imul(Te,ht),T=Math.imul(Te,Ce),T=T+Math.imul(ve,ht)|0,$=Math.imul(ve,Ce),v=v+Math.imul(de,it)|0,T=T+Math.imul(de,et)|0,T=T+Math.imul(ae,it)|0,$=$+Math.imul(ae,et)|0;var Zn=(s+v|0)+((T&8191)<<13)|0;s=($+(T>>>13)|0)+(Zn>>>26)|0,Zn&=67108863,v=Math.imul(Te,it),T=Math.imul(Te,et),T=T+Math.imul(ve,it)|0,$=Math.imul(ve,et);var Ir=(s+v|0)+((T&8191)<<13)|0;return s=($+(T>>>13)|0)+(Ir>>>26)|0,Ir&=67108863,g[0]=xt,g[1]=Tt,g[2]=Ot,g[3]=Ct,g[4]=kt,g[5]=Ut,g[6]=Ht,g[7]=Bt,g[8]=dt,g[9]=At,g[10]=_t,g[11]=mt,g[12]=It,g[13]=vt,g[14]=yt,g[15]=Dt,g[16]=Ft,g[17]=Zn,g[18]=Ir,s!==0&&(g[19]=s,p.length++),p};Math.imul||(B=I);function H(f,l,h){h.negative=l.negative^f.negative,h.length=f.length+l.length;for(var p=0,w=0,x=0;x<h.length-1;x++){var g=w;w=0;for(var s=p&67108863,v=Math.min(x,l.length-1),T=Math.max(0,x-f.length+1);T<=v;T++){var $=x-T,G=f.words[$]|0,ee=l.words[T]|0,A=G*ee,E=A&67108863;g=g+(A/67108864|0)|0,E=E+s|0,s=E&67108863,g=g+(E>>>26)|0,w+=g>>>26,g&=67108863}h.words[x]=s,p=g,g=w}return p!==0?h.words[x]=p:h.length--,h._strip()}function F(f,l,h){return H(f,l,h)}n.prototype.mulTo=function(l,h){var p,w=this.length+l.length;return this.length===10&&l.length===10?p=B(this,l,h):w<63?p=I(this,l,h):w<1024?p=H(this,l,h):p=F(this,l,h),p},n.prototype.mul=function(l){var h=new n(null);return h.words=new Array(this.length+l.length),this.mulTo(l,h)},n.prototype.mulf=function(l){var h=new n(null);return h.words=new Array(this.length+l.length),F(this,l,h)},n.prototype.imul=function(l){return this.clone().mulTo(l,this)},n.prototype.imuln=function(l){var h=l<0;h&&(l=-l),i(typeof l=="number"),i(l<67108864);for(var p=0,w=0;w<this.length;w++){var x=(this.words[w]|0)*l,g=(x&67108863)+(p&67108863);p>>=26,p+=x/67108864|0,p+=g>>>26,this.words[w]=g&67108863}return p!==0&&(this.words[w]=p,this.length++),h?this.ineg():this},n.prototype.muln=function(l){return this.clone().imuln(l)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(l){var h=L(l);if(h.length===0)return new n(1);for(var p=this,w=0;w<h.length&&h[w]===0;w++,p=p.sqr());if(++w<h.length)for(var x=p.sqr();w<h.length;w++,x=x.sqr())h[w]!==0&&(p=p.mul(x));return p},n.prototype.iushln=function(l){i(typeof l=="number"&&l>=0);var h=l%26,p=(l-h)/26,w=67108863>>>26-h<<26-h,x;if(h!==0){var g=0;for(x=0;x<this.length;x++){var s=this.words[x]&w,v=(this.words[x]|0)-s<<h;this.words[x]=v|g,g=s>>>26-h}g&&(this.words[x]=g,this.length++)}if(p!==0){for(x=this.length-1;x>=0;x--)this.words[x+p]=this.words[x];for(x=0;x<p;x++)this.words[x]=0;this.length+=p}return this._strip()},n.prototype.ishln=function(l){return i(this.negative===0),this.iushln(l)},n.prototype.iushrn=function(l,h,p){i(typeof l=="number"&&l>=0);var w;h?w=(h-h%26)/26:w=0;var x=l%26,g=Math.min((l-x)/26,this.length),s=67108863^67108863>>>x<<x,v=p;if(w-=g,w=Math.max(0,w),v){for(var T=0;T<g;T++)v.words[T]=this.words[T];v.length=g}if(g!==0)if(this.length>g)for(this.length-=g,T=0;T<this.length;T++)this.words[T]=this.words[T+g];else this.words[0]=0,this.length=1;var $=0;for(T=this.length-1;T>=0&&($!==0||T>=w);T--){var G=this.words[T]|0;this.words[T]=$<<26-x|G>>>x,$=G&s}return v&&$!==0&&(v.words[v.length++]=$),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},n.prototype.ishrn=function(l,h,p){return i(this.negative===0),this.iushrn(l,h,p)},n.prototype.shln=function(l){return this.clone().ishln(l)},n.prototype.ushln=function(l){return this.clone().iushln(l)},n.prototype.shrn=function(l){return this.clone().ishrn(l)},n.prototype.ushrn=function(l){return this.clone().iushrn(l)},n.prototype.testn=function(l){i(typeof l=="number"&&l>=0);var h=l%26,p=(l-h)/26,w=1<<h;if(this.length<=p)return!1;var x=this.words[p];return!!(x&w)},n.prototype.imaskn=function(l){i(typeof l=="number"&&l>=0);var h=l%26,p=(l-h)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=p)return this;if(h!==0&&p++,this.length=Math.min(p,this.length),h!==0){var w=67108863^67108863>>>h<<h;this.words[this.length-1]&=w}return this._strip()},n.prototype.maskn=function(l){return this.clone().imaskn(l)},n.prototype.iaddn=function(l){return i(typeof l=="number"),i(l<67108864),l<0?this.isubn(-l):this.negative!==0?this.length===1&&(this.words[0]|0)<=l?(this.words[0]=l-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(l),this.negative=1,this):this._iaddn(l)},n.prototype._iaddn=function(l){this.words[0]+=l;for(var h=0;h<this.length&&this.words[h]>=67108864;h++)this.words[h]-=67108864,h===this.length-1?this.words[h+1]=1:this.words[h+1]++;return this.length=Math.max(this.length,h+1),this},n.prototype.isubn=function(l){if(i(typeof l=="number"),i(l<67108864),l<0)return this.iaddn(-l);if(this.negative!==0)return this.negative=0,this.iaddn(l),this.negative=1,this;if(this.words[0]-=l,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var h=0;h<this.length&&this.words[h]<0;h++)this.words[h]+=67108864,this.words[h+1]-=1;return this._strip()},n.prototype.addn=function(l){return this.clone().iaddn(l)},n.prototype.subn=function(l){return this.clone().isubn(l)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(l,h,p){var w=l.length+p,x;this._expand(w);var g,s=0;for(x=0;x<l.length;x++){g=(this.words[x+p]|0)+s;var v=(l.words[x]|0)*h;g-=v&67108863,s=(g>>26)-(v/67108864|0),this.words[x+p]=g&67108863}for(;x<this.length-p;x++)g=(this.words[x+p]|0)+s,s=g>>26,this.words[x+p]=g&67108863;if(s===0)return this._strip();for(i(s===-1),s=0,x=0;x<this.length;x++)g=-(this.words[x]|0)+s,s=g>>26,this.words[x]=g&67108863;return this.negative=1,this._strip()},n.prototype._wordDiv=function(l,h){var p=this.length-l.length,w=this.clone(),x=l,g=x.words[x.length-1]|0,s=this._countBits(g);p=26-s,p!==0&&(x=x.ushln(p),w.iushln(p),g=x.words[x.length-1]|0);var v=w.length-x.length,T;if(h!=="mod"){T=new n(null),T.length=v+1,T.words=new Array(T.length);for(var $=0;$<T.length;$++)T.words[$]=0}var G=w.clone()._ishlnsubmul(x,1,v);G.negative===0&&(w=G,T&&(T.words[v]=1));for(var ee=v-1;ee>=0;ee--){var A=(w.words[x.length+ee]|0)*67108864+(w.words[x.length+ee-1]|0);for(A=Math.min(A/g|0,67108863),w._ishlnsubmul(x,A,ee);w.negative!==0;)A--,w.negative=0,w._ishlnsubmul(x,1,ee),w.isZero()||(w.negative^=1);T&&(T.words[ee]=A)}return T&&T._strip(),w._strip(),h!=="div"&&p!==0&&w.iushrn(p),{div:T||null,mod:w}},n.prototype.divmod=function(l,h,p){if(i(!l.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var w,x,g;return this.negative!==0&&l.negative===0?(g=this.neg().divmod(l,h),h!=="mod"&&(w=g.div.neg()),h!=="div"&&(x=g.mod.neg(),p&&x.negative!==0&&x.iadd(l)),{div:w,mod:x}):this.negative===0&&l.negative!==0?(g=this.divmod(l.neg(),h),h!=="mod"&&(w=g.div.neg()),{div:w,mod:g.mod}):this.negative&l.negative?(g=this.neg().divmod(l.neg(),h),h!=="div"&&(x=g.mod.neg(),p&&x.negative!==0&&x.isub(l)),{div:g.div,mod:x}):l.length>this.length||this.cmp(l)<0?{div:new n(0),mod:this}:l.length===1?h==="div"?{div:this.divn(l.words[0]),mod:null}:h==="mod"?{div:null,mod:new n(this.modrn(l.words[0]))}:{div:this.divn(l.words[0]),mod:new n(this.modrn(l.words[0]))}:this._wordDiv(l,h)},n.prototype.div=function(l){return this.divmod(l,"div",!1).div},n.prototype.mod=function(l){return this.divmod(l,"mod",!1).mod},n.prototype.umod=function(l){return this.divmod(l,"mod",!0).mod},n.prototype.divRound=function(l){var h=this.divmod(l);if(h.mod.isZero())return h.div;var p=h.div.negative!==0?h.mod.isub(l):h.mod,w=l.ushrn(1),x=l.andln(1),g=p.cmp(w);return g<0||x===1&&g===0?h.div:h.div.negative!==0?h.div.isubn(1):h.div.iaddn(1)},n.prototype.modrn=function(l){var h=l<0;h&&(l=-l),i(l<=67108863);for(var p=(1<<26)%l,w=0,x=this.length-1;x>=0;x--)w=(p*w+(this.words[x]|0))%l;return h?-w:w},n.prototype.modn=function(l){return this.modrn(l)},n.prototype.idivn=function(l){var h=l<0;h&&(l=-l),i(l<=67108863);for(var p=0,w=this.length-1;w>=0;w--){var x=(this.words[w]|0)+p*67108864;this.words[w]=x/l|0,p=x%l}return this._strip(),h?this.ineg():this},n.prototype.divn=function(l){return this.clone().idivn(l)},n.prototype.egcd=function(l){i(l.negative===0),i(!l.isZero());var h=this,p=l.clone();h.negative!==0?h=h.umod(l):h=h.clone();for(var w=new n(1),x=new n(0),g=new n(0),s=new n(1),v=0;h.isEven()&&p.isEven();)h.iushrn(1),p.iushrn(1),++v;for(var T=p.clone(),$=h.clone();!h.isZero();){for(var G=0,ee=1;!(h.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(h.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(T),x.isub($)),w.iushrn(1),x.iushrn(1);for(var A=0,E=1;!(p.words[0]&E)&&A<26;++A,E<<=1);if(A>0)for(p.iushrn(A);A-- >0;)(g.isOdd()||s.isOdd())&&(g.iadd(T),s.isub($)),g.iushrn(1),s.iushrn(1);h.cmp(p)>=0?(h.isub(p),w.isub(g),x.isub(s)):(p.isub(h),g.isub(w),s.isub(x))}return{a:g,b:s,gcd:p.iushln(v)}},n.prototype._invmp=function(l){i(l.negative===0),i(!l.isZero());var h=this,p=l.clone();h.negative!==0?h=h.umod(l):h=h.clone();for(var w=new n(1),x=new n(0),g=p.clone();h.cmpn(1)>0&&p.cmpn(1)>0;){for(var s=0,v=1;!(h.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(h.iushrn(s);s-- >0;)w.isOdd()&&w.iadd(g),w.iushrn(1);for(var T=0,$=1;!(p.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(p.iushrn(T);T-- >0;)x.isOdd()&&x.iadd(g),x.iushrn(1);h.cmp(p)>=0?(h.isub(p),w.isub(x)):(p.isub(h),x.isub(w))}var G;return h.cmpn(1)===0?G=w:G=x,G.cmpn(0)<0&&G.iadd(l),G},n.prototype.gcd=function(l){if(this.isZero())return l.abs();if(l.isZero())return this.abs();var h=this.clone(),p=l.clone();h.negative=0,p.negative=0;for(var w=0;h.isEven()&&p.isEven();w++)h.iushrn(1),p.iushrn(1);do{for(;h.isEven();)h.iushrn(1);for(;p.isEven();)p.iushrn(1);var x=h.cmp(p);if(x<0){var g=h;h=p,p=g}else if(x===0||p.cmpn(1)===0)break;h.isub(p)}while(!0);return p.iushln(w)},n.prototype.invm=function(l){return this.egcd(l).a.umod(l)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(l){return this.words[0]&l},n.prototype.bincn=function(l){i(typeof l=="number");var h=l%26,p=(l-h)/26,w=1<<h;if(this.length<=p)return this._expand(p+1),this.words[p]|=w,this;for(var x=w,g=p;x!==0&&g<this.length;g++){var s=this.words[g]|0;s+=x,x=s>>>26,s&=67108863,this.words[g]=s}return x!==0&&(this.words[g]=x,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(l){var h=l<0;if(this.negative!==0&&!h)return-1;if(this.negative===0&&h)return 1;this._strip();var p;if(this.length>1)p=1;else{h&&(l=-l),i(l<=67108863,"Number is too big");var w=this.words[0]|0;p=w===l?0:w<l?-1:1}return this.negative!==0?-p|0:p},n.prototype.cmp=function(l){if(this.negative!==0&&l.negative===0)return-1;if(this.negative===0&&l.negative!==0)return 1;var h=this.ucmp(l);return this.negative!==0?-h|0:h},n.prototype.ucmp=function(l){if(this.length>l.length)return 1;if(this.length<l.length)return-1;for(var h=0,p=this.length-1;p>=0;p--){var w=this.words[p]|0,x=l.words[p]|0;if(w!==x){w<x?h=-1:w>x&&(h=1);break}}return h},n.prototype.gtn=function(l){return this.cmpn(l)===1},n.prototype.gt=function(l){return this.cmp(l)===1},n.prototype.gten=function(l){return this.cmpn(l)>=0},n.prototype.gte=function(l){return this.cmp(l)>=0},n.prototype.ltn=function(l){return this.cmpn(l)===-1},n.prototype.lt=function(l){return this.cmp(l)===-1},n.prototype.lten=function(l){return this.cmpn(l)<=0},n.prototype.lte=function(l){return this.cmp(l)<=0},n.prototype.eqn=function(l){return this.cmpn(l)===0},n.prototype.eq=function(l){return this.cmp(l)===0},n.red=function(l){return new _(l)},n.prototype.toRed=function(l){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),l.convertTo(this)._forceRed(l)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(l){return this.red=l,this},n.prototype.forceRed=function(l){return i(!this.red,"Already a number in reduction context"),this._forceRed(l)},n.prototype.redAdd=function(l){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,l)},n.prototype.redIAdd=function(l){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l)},n.prototype.redSub=function(l){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,l)},n.prototype.redISub=function(l){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,l)},n.prototype.redShl=function(l){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,l)},n.prototype.redMul=function(l){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,l),this.red.mul(this,l)},n.prototype.redIMul=function(l){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,l),this.red.imul(this,l)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(l){return i(this.red&&!l.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l)};var W={k256:null,p224:null,p192:null,p25519:null};function Y(f,l){this.name=f,this.p=new n(l,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Y.prototype._tmp=function(){var l=new n(null);return l.words=new Array(Math.ceil(this.n/13)),l},Y.prototype.ireduce=function(l){var h=l,p;do this.split(h,this.tmp),h=this.imulK(h),h=h.iadd(this.tmp),p=h.bitLength();while(p>this.n);var w=p<this.n?-1:h.ucmp(this.p);return w===0?(h.words[0]=0,h.length=1):w>0?h.isub(this.p):h.strip!==void 0?h.strip():h._strip(),h},Y.prototype.split=function(l,h){l.iushrn(this.n,0,h)},Y.prototype.imulK=function(l){return l.imul(this.k)};function ie(){Y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(ie,Y),ie.prototype.split=function(l,h){for(var p=4194303,w=Math.min(l.length,9),x=0;x<w;x++)h.words[x]=l.words[x];if(h.length=w,l.length<=9){l.words[0]=0,l.length=1;return}var g=l.words[9];for(h.words[h.length++]=g&p,x=10;x<l.length;x++){var s=l.words[x]|0;l.words[x-10]=(s&p)<<4|g>>>22,g=s}g>>>=22,l.words[x-10]=g,g===0&&l.length>10?l.length-=10:l.length-=9},ie.prototype.imulK=function(l){l.words[l.length]=0,l.words[l.length+1]=0,l.length+=2;for(var h=0,p=0;p<l.length;p++){var w=l.words[p]|0;h+=w*977,l.words[p]=h&67108863,h=w*64+(h/67108864|0)}return l.words[l.length-1]===0&&(l.length--,l.words[l.length-1]===0&&l.length--),l};function J(){Y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(J,Y);function V(){Y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(V,Y);function oe(){Y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(oe,Y),oe.prototype.imulK=function(l){for(var h=0,p=0;p<l.length;p++){var w=(l.words[p]|0)*19+h,x=w&67108863;w>>>=26,l.words[p]=x,h=w}return h!==0&&(l.words[l.length++]=h),l},n._prime=function(l){if(W[l])return W[l];var h;if(l==="k256")h=new ie;else if(l==="p224")h=new J;else if(l==="p192")h=new V;else if(l==="p25519")h=new oe;else throw new Error("Unknown prime "+l);return W[l]=h,h};function _(f){if(typeof f=="string"){var l=n._prime(f);this.m=l.p,this.prime=l}else i(f.gtn(1),"modulus must be greater than 1"),this.m=f,this.prime=null}_.prototype._verify1=function(l){i(l.negative===0,"red works only with positives"),i(l.red,"red works only with red numbers")},_.prototype._verify2=function(l,h){i((l.negative|h.negative)===0,"red works only with positives"),i(l.red&&l.red===h.red,"red works only with red numbers")},_.prototype.imod=function(l){return this.prime?this.prime.ireduce(l)._forceRed(this):(M(l,l.umod(this.m)._forceRed(this)),l)},_.prototype.neg=function(l){return l.isZero()?l.clone():this.m.sub(l)._forceRed(this)},_.prototype.add=function(l,h){this._verify2(l,h);var p=l.add(h);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},_.prototype.iadd=function(l,h){this._verify2(l,h);var p=l.iadd(h);return p.cmp(this.m)>=0&&p.isub(this.m),p},_.prototype.sub=function(l,h){this._verify2(l,h);var p=l.sub(h);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},_.prototype.isub=function(l,h){this._verify2(l,h);var p=l.isub(h);return p.cmpn(0)<0&&p.iadd(this.m),p},_.prototype.shl=function(l,h){return this._verify1(l),this.imod(l.ushln(h))},_.prototype.imul=function(l,h){return this._verify2(l,h),this.imod(l.imul(h))},_.prototype.mul=function(l,h){return this._verify2(l,h),this.imod(l.mul(h))},_.prototype.isqr=function(l){return this.imul(l,l.clone())},_.prototype.sqr=function(l){return this.mul(l,l)},_.prototype.sqrt=function(l){if(l.isZero())return l.clone();var h=this.m.andln(3);if(i(h%2===1),h===3){var p=this.m.add(new n(1)).iushrn(2);return this.pow(l,p)}for(var w=this.m.subn(1),x=0;!w.isZero()&&w.andln(1)===0;)x++,w.iushrn(1);i(!w.isZero());var g=new n(1).toRed(this),s=g.redNeg(),v=this.m.subn(1).iushrn(1),T=this.m.bitLength();for(T=new n(2*T*T).toRed(this);this.pow(T,v).cmp(s)!==0;)T.redIAdd(s);for(var $=this.pow(T,w),G=this.pow(l,w.addn(1).iushrn(1)),ee=this.pow(l,w),A=x;ee.cmp(g)!==0;){for(var E=ee,U=0;E.cmp(g)!==0;U++)E=E.redSqr();i(U<A);var K=this.pow($,new n(1).iushln(A-U-1));G=G.redMul(K),$=K.redSqr(),ee=ee.redMul($),A=U}return G},_.prototype.invm=function(l){var h=l._invmp(this.m);return h.negative!==0?(h.negative=0,this.imod(h).redNeg()):this.imod(h)},_.prototype.pow=function(l,h){if(h.isZero())return new n(1).toRed(this);if(h.cmpn(1)===0)return l.clone();var p=4,w=new Array(1<<p);w[0]=new n(1).toRed(this),w[1]=l;for(var x=2;x<w.length;x++)w[x]=this.mul(w[x-1],l);var g=w[0],s=0,v=0,T=h.bitLength()%26;for(T===0&&(T=26),x=h.length-1;x>=0;x--){for(var $=h.words[x],G=T-1;G>=0;G--){var ee=$>>G&1;if(g!==w[0]&&(g=this.sqr(g)),ee===0&&s===0){v=0;continue}s<<=1,s|=ee,v++,!(v!==p&&(x!==0||G!==0))&&(g=this.mul(g,w[s]),v=0,s=0)}T=26}return g},_.prototype.convertTo=function(l){var h=l.umod(this.m);return h===l?h.clone():h},_.prototype.convertFrom=function(l){var h=l.clone();return h.red=null,h},n.mont=function(l){return new o(l)};function o(f){_.call(this,f),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(o,_),o.prototype.convertTo=function(l){return this.imod(l.ushln(this.shift))},o.prototype.convertFrom=function(l){var h=this.imod(l.mul(this.rinv));return h.red=null,h},o.prototype.imul=function(l,h){if(l.isZero()||h.isZero())return l.words[0]=0,l.length=1,l;var p=l.imul(h),w=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=p.isub(w).iushrn(this.shift),g=x;return x.cmp(this.m)>=0?g=x.isub(this.m):x.cmpn(0)<0&&(g=x.iadd(this.m)),g._forceRed(this)},o.prototype.mul=function(l,h){if(l.isZero()||h.isZero())return new n(0)._forceRed(this);var p=l.mul(h),w=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=p.isub(w).iushrn(this.shift),g=x;return x.cmp(this.m)>=0?g=x.isub(this.m):x.cmpn(0)<0&&(g=x.iadd(this.m)),g._forceRed(this)},o.prototype.invm=function(l){var h=this.imod(l._invmp(this.m).mul(this.r2));return h._forceRed(this)}})(e,Ye)})(Cg);var Bg=Cg.exports,is=Bg,zH=Ds;function GH(e){var t=Nx(e),r=t.toRed(is.mont(e.modulus)).redPow(new is(e.publicExponent)).fromRed();return{blinder:r,unblinder:t.invm(e.modulus)}}function Nx(e){var t=e.modulus.byteLength(),r;do r=new is(zH(t));while(r.cmp(e.modulus)>=0||!r.umod(e.prime1)||!r.umod(e.prime2));return r}function kx(e,t){var r=GH(t),i=t.modulus.byteLength(),a=new is(e).mul(r.blinder).umod(t.modulus),n=a.toRed(is.mont(t.prime1)),u=a.toRed(is.mont(t.prime2)),c=t.coefficient,d=t.prime1,m=t.prime2,M=n.redPow(t.exponent1).fromRed(),S=u.redPow(t.exponent2).fromRed(),R=M.isub(S).imul(c).umod(d).imul(m);return S.iadd(R).imul(r.unblinder).umod(t.modulus).toArrayLike(ke.Buffer,"be",i)}kx.getr=Nx;var Lg=kx,w0={};const YH="elliptic",ZH="6.5.4",XH="EC cryptography",JH="lib/elliptic.js",QH=["lib"],eq={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},tq={type:"git",url:"git@github.com:indutny/elliptic"},rq=["EC","Elliptic","curve","Cryptography"],iq="Fedor Indutny <fedor@indutny.com>",nq="MIT",oq={url:"https://github.com/indutny/elliptic/issues"},aq="https://github.com/indutny/elliptic",sq={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},fq={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},uq={name:YH,version:ZH,description:XH,main:JH,files:QH,scripts:eq,repository:tq,keywords:rq,author:iq,license:nq,bugs:oq,homepage:aq,devDependencies:sq,dependencies:fq};var ri={},Ng={exports:{}};Ng.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Ng);var Yn=Ng.exports,kg={};(function(e){var t=e;function r(n,u){if(Array.isArray(n))return n.slice();if(!n)return[];var c=[];if(typeof n!="string"){for(var d=0;d<n.length;d++)c[d]=n[d]|0;return c}if(u==="hex"){n=n.replace(/[^a-z0-9]+/ig,""),n.length%2!==0&&(n="0"+n);for(var d=0;d<n.length;d+=2)c.push(parseInt(n[d]+n[d+1],16))}else for(var d=0;d<n.length;d++){var m=n.charCodeAt(d),M=m>>8,S=m&255;M?c.push(M,S):c.push(S)}return c}t.toArray=r;function i(n){return n.length===1?"0"+n:n}t.zero2=i;function a(n){for(var u="",c=0;c<n.length;c++)u+=i(n[c].toString(16));return u}t.toHex=a,t.encode=function(u,c){return c==="hex"?a(u):u}})(kg);(function(e){var t=e,r=Yn,i=Si,a=kg;t.assert=i,t.toArray=a.toArray,t.zero2=a.zero2,t.toHex=a.toHex,t.encode=a.encode;function n(M,S,R){var C=new Array(Math.max(M.bitLength(),R)+1);C.fill(0);for(var P=1<<S+1,k=M.clone(),L=0;L<C.length;L++){var I,B=k.andln(P-1);k.isOdd()?(B>(P>>1)-1?I=(P>>1)-B:I=B,k.isubn(I)):I=0,C[L]=I,k.iushrn(1)}return C}t.getNAF=n;function u(M,S){var R=[[],[]];M=M.clone(),S=S.clone();for(var C=0,P=0,k;M.cmpn(-C)>0||S.cmpn(-P)>0;){var L=M.andln(3)+C&3,I=S.andln(3)+P&3;L===3&&(L=-1),I===3&&(I=-1);var B;L&1?(k=M.andln(7)+C&7,(k===3||k===5)&&I===2?B=-L:B=L):B=0,R[0].push(B);var H;I&1?(k=S.andln(7)+P&7,(k===3||k===5)&&L===2?H=-I:H=I):H=0,R[1].push(H),2*C===B+1&&(C=1-C),2*P===H+1&&(P=1-P),M.iushrn(1),S.iushrn(1)}return R}t.getJSF=u;function c(M,S,R){var C="_"+S;M.prototype[S]=function(){return this[C]!==void 0?this[C]:this[C]=R.call(this)}}t.cachedProperty=c;function d(M){return typeof M=="string"?t.toArray(M,"hex"):M}t.parseBytes=d;function m(M){return new r(M,"hex","le")}t.intFromLE=m})(ri);var $g={},Wo=Yn,Lu=ri,rh=Lu.getNAF,lq=Lu.getJSF,ih=Lu.assert;function Do(e,t){this.type=e,this.p=new Wo(t.p,16),this.red=t.prime?Wo.red(t.prime):Wo.mont(this.p),this.zero=new Wo(0).toRed(this.red),this.one=new Wo(1).toRed(this.red),this.two=new Wo(2).toRed(this.red),this.n=t.n&&new Wo(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var hc=Do;Do.prototype.point=function(){throw new Error("Not implemented")};Do.prototype.validate=function(){throw new Error("Not implemented")};Do.prototype._fixedNafMul=function(t,r){ih(t.precomputed);var i=t._getDoubles(),a=rh(r,1,this._bitLength),n=(1<<i.step+1)-(i.step%2===0?2:1);n/=3;var u=[],c,d;for(c=0;c<a.length;c+=i.step){d=0;for(var m=c+i.step-1;m>=c;m--)d=(d<<1)+a[m];u.push(d)}for(var M=this.jpoint(null,null,null),S=this.jpoint(null,null,null),R=n;R>0;R--){for(c=0;c<u.length;c++)d=u[c],d===R?S=S.mixedAdd(i.points[c]):d===-R&&(S=S.mixedAdd(i.points[c].neg()));M=M.add(S)}return M.toP()};Do.prototype._wnafMul=function(t,r){var i=4,a=t._getNAFPoints(i);i=a.wnd;for(var n=a.points,u=rh(r,i,this._bitLength),c=this.jpoint(null,null,null),d=u.length-1;d>=0;d--){for(var m=0;d>=0&&u[d]===0;d--)m++;if(d>=0&&m++,c=c.dblp(m),d<0)break;var M=u[d];ih(M!==0),t.type==="affine"?M>0?c=c.mixedAdd(n[M-1>>1]):c=c.mixedAdd(n[-M-1>>1].neg()):M>0?c=c.add(n[M-1>>1]):c=c.add(n[-M-1>>1].neg())}return t.type==="affine"?c.toP():c};Do.prototype._wnafMulAdd=function(t,r,i,a,n){var u=this._wnafT1,c=this._wnafT2,d=this._wnafT3,m=0,M,S,R;for(M=0;M<a;M++){R=r[M];var C=R._getNAFPoints(t);u[M]=C.wnd,c[M]=C.points}for(M=a-1;M>=1;M-=2){var P=M-1,k=M;if(u[P]!==1||u[k]!==1){d[P]=rh(i[P],u[P],this._bitLength),d[k]=rh(i[k],u[k],this._bitLength),m=Math.max(d[P].length,m),m=Math.max(d[k].length,m);continue}var L=[r[P],null,null,r[k]];r[P].y.cmp(r[k].y)===0?(L[1]=r[P].add(r[k]),L[2]=r[P].toJ().mixedAdd(r[k].neg())):r[P].y.cmp(r[k].y.redNeg())===0?(L[1]=r[P].toJ().mixedAdd(r[k]),L[2]=r[P].add(r[k].neg())):(L[1]=r[P].toJ().mixedAdd(r[k]),L[2]=r[P].toJ().mixedAdd(r[k].neg()));var I=[-3,-1,-5,-7,0,7,5,1,3],B=lq(i[P],i[k]);for(m=Math.max(B[0].length,m),d[P]=new Array(m),d[k]=new Array(m),S=0;S<m;S++){var H=B[0][S]|0,F=B[1][S]|0;d[P][S]=I[(H+1)*3+(F+1)],d[k][S]=0,c[P]=L}}var W=this.jpoint(null,null,null),Y=this._wnafT4;for(M=m;M>=0;M--){for(var ie=0;M>=0;){var J=!0;for(S=0;S<a;S++)Y[S]=d[S][M]|0,Y[S]!==0&&(J=!1);if(!J)break;ie++,M--}if(M>=0&&ie++,W=W.dblp(ie),M<0)break;for(S=0;S<a;S++){var V=Y[S];V!==0&&(V>0?R=c[S][V-1>>1]:V<0&&(R=c[S][-V-1>>1].neg()),R.type==="affine"?W=W.mixedAdd(R):W=W.add(R))}}for(M=0;M<a;M++)c[M]=null;return n?W:W.toP()};function Ri(e,t){this.curve=e,this.type=t,this.precomputed=null}Do.BasePoint=Ri;Ri.prototype.eq=function(){throw new Error("Not implemented")};Ri.prototype.validate=function(){return this.curve.validate(this)};Do.prototype.decodePoint=function(t,r){t=Lu.toArray(t,r);var i=this.p.byteLength();if((t[0]===4||t[0]===6||t[0]===7)&&t.length-1===2*i){t[0]===6?ih(t[t.length-1]%2===0):t[0]===7&&ih(t[t.length-1]%2===1);var a=this.point(t.slice(1,1+i),t.slice(1+i,1+2*i));return a}else if((t[0]===2||t[0]===3)&&t.length-1===i)return this.pointFromX(t.slice(1,1+i),t[0]===3);throw new Error("Unknown point format")};Ri.prototype.encodeCompressed=function(t){return this.encode(t,!0)};Ri.prototype._encode=function(t){var r=this.curve.p.byteLength(),i=this.getX().toArray("be",r);return t?[this.getY().isEven()?2:3].concat(i):[4].concat(i,this.getY().toArray("be",r))};Ri.prototype.encode=function(t,r){return Lu.encode(this._encode(r),t)};Ri.prototype.precompute=function(t){if(this.precomputed)return this;var r={doubles:null,naf:null,beta:null};return r.naf=this._getNAFPoints(8),r.doubles=this._getDoubles(4,t),r.beta=this._getBeta(),this.precomputed=r,this};Ri.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var r=this.precomputed.doubles;return r?r.points.length>=Math.ceil((t.bitLength()+1)/r.step):!1};Ri.prototype._getDoubles=function(t,r){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],a=this,n=0;n<r;n+=t){for(var u=0;u<t;u++)a=a.dbl();i.push(a)}return{step:t,points:i}};Ri.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var r=[this],i=(1<<t)-1,a=i===1?null:this.dbl(),n=1;n<i;n++)r[n]=r[n-1].add(a);return{wnd:t,points:r}};Ri.prototype._getBeta=function(){return null};Ri.prototype.dblp=function(t){for(var r=this,i=0;i<t;i++)r=r.dbl();return r};var hq=ri,Jt=Yn,Dg=Ze,Hs=hc,cq=hq.assert;function Ai(e){Hs.call(this,"short",e),this.a=new Jt(e.a,16).toRed(this.red),this.b=new Jt(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Dg(Ai,Hs);var dq=Ai;Ai.prototype._getEndomorphism=function(t){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var r,i;if(t.beta)r=new Jt(t.beta,16).toRed(this.red);else{var a=this._getEndoRoots(this.p);r=a[0].cmp(a[1])<0?a[0]:a[1],r=r.toRed(this.red)}if(t.lambda)i=new Jt(t.lambda,16);else{var n=this._getEndoRoots(this.n);this.g.mul(n[0]).x.cmp(this.g.x.redMul(r))===0?i=n[0]:(i=n[1],cq(this.g.mul(i).x.cmp(this.g.x.redMul(r))===0))}var u;return t.basis?u=t.basis.map(function(c){return{a:new Jt(c.a,16),b:new Jt(c.b,16)}}):u=this._getEndoBasis(i),{beta:r,lambda:i,basis:u}}};Ai.prototype._getEndoRoots=function(t){var r=t===this.p?this.red:Jt.mont(t),i=new Jt(2).toRed(r).redInvm(),a=i.redNeg(),n=new Jt(3).toRed(r).redNeg().redSqrt().redMul(i),u=a.redAdd(n).fromRed(),c=a.redSub(n).fromRed();return[u,c]};Ai.prototype._getEndoBasis=function(t){for(var r=this.n.ushrn(Math.floor(this.n.bitLength()/2)),i=t,a=this.n.clone(),n=new Jt(1),u=new Jt(0),c=new Jt(0),d=new Jt(1),m,M,S,R,C,P,k,L=0,I,B;i.cmpn(0)!==0;){var H=a.div(i);I=a.sub(H.mul(i)),B=c.sub(H.mul(n));var F=d.sub(H.mul(u));if(!S&&I.cmp(r)<0)m=k.neg(),M=n,S=I.neg(),R=B;else if(S&&++L===2)break;k=I,a=i,i=I,c=n,n=B,d=u,u=F}C=I.neg(),P=B;var W=S.sqr().add(R.sqr()),Y=C.sqr().add(P.sqr());return Y.cmp(W)>=0&&(C=m,P=M),S.negative&&(S=S.neg(),R=R.neg()),C.negative&&(C=C.neg(),P=P.neg()),[{a:S,b:R},{a:C,b:P}]};Ai.prototype._endoSplit=function(t){var r=this.endo.basis,i=r[0],a=r[1],n=a.b.mul(t).divRound(this.n),u=i.b.neg().mul(t).divRound(this.n),c=n.mul(i.a),d=u.mul(a.a),m=n.mul(i.b),M=u.mul(a.b),S=t.sub(c).sub(d),R=m.add(M).neg();return{k1:S,k2:R}};Ai.prototype.pointFromX=function(t,r){t=new Jt(t,16),t.red||(t=t.toRed(this.red));var i=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),a=i.redSqrt();if(a.redSqr().redSub(i).cmp(this.zero)!==0)throw new Error("invalid point");var n=a.fromRed().isOdd();return(r&&!n||!r&&n)&&(a=a.redNeg()),this.point(t,a)};Ai.prototype.validate=function(t){if(t.inf)return!0;var r=t.x,i=t.y,a=this.a.redMul(r),n=r.redSqr().redMul(r).redIAdd(a).redIAdd(this.b);return i.redSqr().redISub(n).cmpn(0)===0};Ai.prototype._endoWnafMulAdd=function(t,r,i){for(var a=this._endoWnafT1,n=this._endoWnafT2,u=0;u<t.length;u++){var c=this._endoSplit(r[u]),d=t[u],m=d._getBeta();c.k1.negative&&(c.k1.ineg(),d=d.neg(!0)),c.k2.negative&&(c.k2.ineg(),m=m.neg(!0)),a[u*2]=d,a[u*2+1]=m,n[u*2]=c.k1,n[u*2+1]=c.k2}for(var M=this._wnafMulAdd(1,a,n,u*2,i),S=0;S<u*2;S++)a[S]=null,n[S]=null;return M};function dr(e,t,r,i){Hs.BasePoint.call(this,e,"affine"),t===null&&r===null?(this.x=null,this.y=null,this.inf=!0):(this.x=new Jt(t,16),this.y=new Jt(r,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}Dg(dr,Hs.BasePoint);Ai.prototype.point=function(t,r,i){return new dr(this,t,r,i)};Ai.prototype.pointFromJSON=function(t,r){return dr.fromJSON(this,t,r)};dr.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var r=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var i=this.curve,a=function(n){return i.point(n.x.redMul(i.endo.beta),n.y)};t.beta=r,r.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(a)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(a)}}}return r}};dr.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]};dr.fromJSON=function(t,r,i){typeof r=="string"&&(r=JSON.parse(r));var a=t.point(r[0],r[1],i);if(!r[2])return a;function n(c){return t.point(c[0],c[1],i)}var u=r[2];return a.precomputed={beta:null,doubles:u.doubles&&{step:u.doubles.step,points:[a].concat(u.doubles.points.map(n))},naf:u.naf&&{wnd:u.naf.wnd,points:[a].concat(u.naf.points.map(n))}},a};dr.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"};dr.prototype.isInfinity=function(){return this.inf};dr.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(this.x.cmp(t.x)===0)return this.curve.point(null,null);var r=this.y.redSub(t.y);r.cmpn(0)!==0&&(r=r.redMul(this.x.redSub(t.x).redInvm()));var i=r.redSqr().redISub(this.x).redISub(t.x),a=r.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)};dr.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(t.cmpn(0)===0)return this.curve.point(null,null);var r=this.curve.a,i=this.x.redSqr(),a=t.redInvm(),n=i.redAdd(i).redIAdd(i).redIAdd(r).redMul(a),u=n.redSqr().redISub(this.x.redAdd(this.x)),c=n.redMul(this.x.redSub(u)).redISub(this.y);return this.curve.point(u,c)};dr.prototype.getX=function(){return this.x.fromRed()};dr.prototype.getY=function(){return this.y.fromRed()};dr.prototype.mul=function(t){return t=new Jt(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)};dr.prototype.mulAdd=function(t,r,i){var a=[this,r],n=[t,i];return this.curve.endo?this.curve._endoWnafMulAdd(a,n):this.curve._wnafMulAdd(1,a,n,2)};dr.prototype.jmulAdd=function(t,r,i){var a=[this,r],n=[t,i];return this.curve.endo?this.curve._endoWnafMulAdd(a,n,!0):this.curve._wnafMulAdd(1,a,n,2,!0)};dr.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||this.x.cmp(t.x)===0&&this.y.cmp(t.y)===0)};dr.prototype.neg=function(t){if(this.inf)return this;var r=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var i=this.precomputed,a=function(n){return n.neg()};r.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(a)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(a)}}}return r};dr.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var t=this.curve.jpoint(this.x,this.y,this.curve.one);return t};function wr(e,t,r,i){Hs.BasePoint.call(this,e,"jacobian"),t===null&&r===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Jt(0)):(this.x=new Jt(t,16),this.y=new Jt(r,16),this.z=new Jt(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Dg(wr,Hs.BasePoint);Ai.prototype.jpoint=function(t,r,i){return new wr(this,t,r,i)};wr.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),r=t.redSqr(),i=this.x.redMul(r),a=this.y.redMul(r).redMul(t);return this.curve.point(i,a)};wr.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};wr.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var r=t.z.redSqr(),i=this.z.redSqr(),a=this.x.redMul(r),n=t.x.redMul(i),u=this.y.redMul(r.redMul(t.z)),c=t.y.redMul(i.redMul(this.z)),d=a.redSub(n),m=u.redSub(c);if(d.cmpn(0)===0)return m.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var M=d.redSqr(),S=M.redMul(d),R=a.redMul(M),C=m.redSqr().redIAdd(S).redISub(R).redISub(R),P=m.redMul(R.redISub(C)).redISub(u.redMul(S)),k=this.z.redMul(t.z).redMul(d);return this.curve.jpoint(C,P,k)};wr.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var r=this.z.redSqr(),i=this.x,a=t.x.redMul(r),n=this.y,u=t.y.redMul(r).redMul(this.z),c=i.redSub(a),d=n.redSub(u);if(c.cmpn(0)===0)return d.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var m=c.redSqr(),M=m.redMul(c),S=i.redMul(m),R=d.redSqr().redIAdd(M).redISub(S).redISub(S),C=d.redMul(S.redISub(R)).redISub(n.redMul(M)),P=this.z.redMul(c);return this.curve.jpoint(R,C,P)};wr.prototype.dblp=function(t){if(t===0)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var r;if(this.curve.zeroA||this.curve.threeA){var i=this;for(r=0;r<t;r++)i=i.dbl();return i}var a=this.curve.a,n=this.curve.tinv,u=this.x,c=this.y,d=this.z,m=d.redSqr().redSqr(),M=c.redAdd(c);for(r=0;r<t;r++){var S=u.redSqr(),R=M.redSqr(),C=R.redSqr(),P=S.redAdd(S).redIAdd(S).redIAdd(a.redMul(m)),k=u.redMul(R),L=P.redSqr().redISub(k.redAdd(k)),I=k.redISub(L),B=P.redMul(I);B=B.redIAdd(B).redISub(C);var H=M.redMul(d);r+1<t&&(m=m.redMul(C)),u=L,d=H,M=B}return this.curve.jpoint(u,M.redMul(n),d)};wr.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()};wr.prototype._zeroDbl=function(){var t,r,i;if(this.zOne){var a=this.x.redSqr(),n=this.y.redSqr(),u=n.redSqr(),c=this.x.redAdd(n).redSqr().redISub(a).redISub(u);c=c.redIAdd(c);var d=a.redAdd(a).redIAdd(a),m=d.redSqr().redISub(c).redISub(c),M=u.redIAdd(u);M=M.redIAdd(M),M=M.redIAdd(M),t=m,r=d.redMul(c.redISub(m)).redISub(M),i=this.y.redAdd(this.y)}else{var S=this.x.redSqr(),R=this.y.redSqr(),C=R.redSqr(),P=this.x.redAdd(R).redSqr().redISub(S).redISub(C);P=P.redIAdd(P);var k=S.redAdd(S).redIAdd(S),L=k.redSqr(),I=C.redIAdd(C);I=I.redIAdd(I),I=I.redIAdd(I),t=L.redISub(P).redISub(P),r=k.redMul(P.redISub(t)).redISub(I),i=this.y.redMul(this.z),i=i.redIAdd(i)}return this.curve.jpoint(t,r,i)};wr.prototype._threeDbl=function(){var t,r,i;if(this.zOne){var a=this.x.redSqr(),n=this.y.redSqr(),u=n.redSqr(),c=this.x.redAdd(n).redSqr().redISub(a).redISub(u);c=c.redIAdd(c);var d=a.redAdd(a).redIAdd(a).redIAdd(this.curve.a),m=d.redSqr().redISub(c).redISub(c);t=m;var M=u.redIAdd(u);M=M.redIAdd(M),M=M.redIAdd(M),r=d.redMul(c.redISub(m)).redISub(M),i=this.y.redAdd(this.y)}else{var S=this.z.redSqr(),R=this.y.redSqr(),C=this.x.redMul(R),P=this.x.redSub(S).redMul(this.x.redAdd(S));P=P.redAdd(P).redIAdd(P);var k=C.redIAdd(C);k=k.redIAdd(k);var L=k.redAdd(k);t=P.redSqr().redISub(L),i=this.y.redAdd(this.z).redSqr().redISub(R).redISub(S);var I=R.redSqr();I=I.redIAdd(I),I=I.redIAdd(I),I=I.redIAdd(I),r=P.redMul(k.redISub(t)).redISub(I)}return this.curve.jpoint(t,r,i)};wr.prototype._dbl=function(){var t=this.curve.a,r=this.x,i=this.y,a=this.z,n=a.redSqr().redSqr(),u=r.redSqr(),c=i.redSqr(),d=u.redAdd(u).redIAdd(u).redIAdd(t.redMul(n)),m=r.redAdd(r);m=m.redIAdd(m);var M=m.redMul(c),S=d.redSqr().redISub(M.redAdd(M)),R=M.redISub(S),C=c.redSqr();C=C.redIAdd(C),C=C.redIAdd(C),C=C.redIAdd(C);var P=d.redMul(R).redISub(C),k=i.redAdd(i).redMul(a);return this.curve.jpoint(S,P,k)};wr.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),r=this.y.redSqr(),i=this.z.redSqr(),a=r.redSqr(),n=t.redAdd(t).redIAdd(t),u=n.redSqr(),c=this.x.redAdd(r).redSqr().redISub(t).redISub(a);c=c.redIAdd(c),c=c.redAdd(c).redIAdd(c),c=c.redISub(u);var d=c.redSqr(),m=a.redIAdd(a);m=m.redIAdd(m),m=m.redIAdd(m),m=m.redIAdd(m);var M=n.redIAdd(c).redSqr().redISub(u).redISub(d).redISub(m),S=r.redMul(M);S=S.redIAdd(S),S=S.redIAdd(S);var R=this.x.redMul(d).redISub(S);R=R.redIAdd(R),R=R.redIAdd(R);var C=this.y.redMul(M.redMul(m.redISub(M)).redISub(c.redMul(d)));C=C.redIAdd(C),C=C.redIAdd(C),C=C.redIAdd(C);var P=this.z.redAdd(c).redSqr().redISub(i).redISub(d);return this.curve.jpoint(R,C,P)};wr.prototype.mul=function(t,r){return t=new Jt(t,r),this.curve._wnafMul(this,t)};wr.prototype.eq=function(t){if(t.type==="affine")return this.eq(t.toJ());if(this===t)return!0;var r=this.z.redSqr(),i=t.z.redSqr();if(this.x.redMul(i).redISub(t.x.redMul(r)).cmpn(0)!==0)return!1;var a=r.redMul(this.z),n=i.redMul(t.z);return this.y.redMul(n).redISub(t.y.redMul(a)).cmpn(0)===0};wr.prototype.eqXToP=function(t){var r=this.z.redSqr(),i=t.toRed(this.curve.red).redMul(r);if(this.x.cmp(i)===0)return!0;for(var a=t.clone(),n=this.curve.redN.redMul(r);;){if(a.iadd(this.curve.n),a.cmp(this.curve.p)>=0)return!1;if(i.redIAdd(n),this.x.cmp(i)===0)return!0}};wr.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"};wr.prototype.isInfinity=function(){return this.z.cmpn(0)===0};var Va=Yn,$x=Ze,cc=hc,pq=ri;function qs(e){cc.call(this,"mont",e),this.a=new Va(e.a,16).toRed(this.red),this.b=new Va(e.b,16).toRed(this.red),this.i4=new Va(4).toRed(this.red).redInvm(),this.two=new Va(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}$x(qs,cc);var vq=qs;qs.prototype.validate=function(t){var r=t.normalize().x,i=r.redSqr(),a=i.redMul(r).redAdd(i.redMul(this.a)).redAdd(r),n=a.redSqrt();return n.redSqr().cmp(a)===0};function cr(e,t,r){cc.BasePoint.call(this,e,"projective"),t===null&&r===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Va(t,16),this.z=new Va(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}$x(cr,cc.BasePoint);qs.prototype.decodePoint=function(t,r){return this.point(pq.toArray(t,r),1)};qs.prototype.point=function(t,r){return new cr(this,t,r)};qs.prototype.pointFromJSON=function(t){return cr.fromJSON(this,t)};cr.prototype.precompute=function(){};cr.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};cr.fromJSON=function(t,r){return new cr(t,r[0],r[1]||t.one)};cr.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};cr.prototype.isInfinity=function(){return this.z.cmpn(0)===0};cr.prototype.dbl=function(){var t=this.x.redAdd(this.z),r=t.redSqr(),i=this.x.redSub(this.z),a=i.redSqr(),n=r.redSub(a),u=r.redMul(a),c=n.redMul(a.redAdd(this.curve.a24.redMul(n)));return this.curve.point(u,c)};cr.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};cr.prototype.diffAdd=function(t,r){var i=this.x.redAdd(this.z),a=this.x.redSub(this.z),n=t.x.redAdd(t.z),u=t.x.redSub(t.z),c=u.redMul(i),d=n.redMul(a),m=r.z.redMul(c.redAdd(d).redSqr()),M=r.x.redMul(c.redISub(d).redSqr());return this.curve.point(m,M)};cr.prototype.mul=function(t){for(var r=t.clone(),i=this,a=this.curve.point(null,null),n=this,u=[];r.cmpn(0)!==0;r.iushrn(1))u.push(r.andln(1));for(var c=u.length-1;c>=0;c--)u[c]===0?(i=i.diffAdd(a,n),a=a.dbl()):(a=i.diffAdd(a,n),i=i.dbl());return a};cr.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};cr.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};cr.prototype.eq=function(t){return this.getX().cmp(t.getX())===0};cr.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};cr.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var gq=ri,Cn=Yn,Dx=Ze,dc=hc,mq=gq.assert;function cn(e){this.twisted=(e.a|0)!==1,this.mOneA=this.twisted&&(e.a|0)===-1,this.extended=this.mOneA,dc.call(this,"edwards",e),this.a=new Cn(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Cn(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Cn(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),mq(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(e.c|0)===1}Dx(cn,dc);var yq=cn;cn.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)};cn.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)};cn.prototype.jpoint=function(t,r,i,a){return this.point(t,r,i,a)};cn.prototype.pointFromX=function(t,r){t=new Cn(t,16),t.red||(t=t.toRed(this.red));var i=t.redSqr(),a=this.c2.redSub(this.a.redMul(i)),n=this.one.redSub(this.c2.redMul(this.d).redMul(i)),u=a.redMul(n.redInvm()),c=u.redSqrt();if(c.redSqr().redSub(u).cmp(this.zero)!==0)throw new Error("invalid point");var d=c.fromRed().isOdd();return(r&&!d||!r&&d)&&(c=c.redNeg()),this.point(t,c)};cn.prototype.pointFromY=function(t,r){t=new Cn(t,16),t.red||(t=t.toRed(this.red));var i=t.redSqr(),a=i.redSub(this.c2),n=i.redMul(this.d).redMul(this.c2).redSub(this.a),u=a.redMul(n.redInvm());if(u.cmp(this.zero)===0){if(r)throw new Error("invalid point");return this.point(this.zero,t)}var c=u.redSqrt();if(c.redSqr().redSub(u).cmp(this.zero)!==0)throw new Error("invalid point");return c.fromRed().isOdd()!==r&&(c=c.redNeg()),this.point(c,t)};cn.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var r=t.x.redSqr(),i=t.y.redSqr(),a=r.redMul(this.a).redAdd(i),n=this.c2.redMul(this.one.redAdd(this.d.redMul(r).redMul(i)));return a.cmp(n)===0};function Yt(e,t,r,i,a){dc.BasePoint.call(this,e,"projective"),t===null&&r===null&&i===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Cn(t,16),this.y=new Cn(r,16),this.z=i?new Cn(i,16):this.curve.one,this.t=a&&new Cn(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}Dx(Yt,dc.BasePoint);cn.prototype.pointFromJSON=function(t){return Yt.fromJSON(this,t)};cn.prototype.point=function(t,r,i,a){return new Yt(this,t,r,i,a)};Yt.fromJSON=function(t,r){return new Yt(t,r[0],r[1],r[2])};Yt.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};Yt.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Yt.prototype._extDbl=function(){var t=this.x.redSqr(),r=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var a=this.curve._mulA(t),n=this.x.redAdd(this.y).redSqr().redISub(t).redISub(r),u=a.redAdd(r),c=u.redSub(i),d=a.redSub(r),m=n.redMul(c),M=u.redMul(d),S=n.redMul(d),R=c.redMul(u);return this.curve.point(m,M,R,S)};Yt.prototype._projDbl=function(){var t=this.x.redAdd(this.y).redSqr(),r=this.x.redSqr(),i=this.y.redSqr(),a,n,u,c,d,m;if(this.curve.twisted){c=this.curve._mulA(r);var M=c.redAdd(i);this.zOne?(a=t.redSub(r).redSub(i).redMul(M.redSub(this.curve.two)),n=M.redMul(c.redSub(i)),u=M.redSqr().redSub(M).redSub(M)):(d=this.z.redSqr(),m=M.redSub(d).redISub(d),a=t.redSub(r).redISub(i).redMul(m),n=M.redMul(c.redSub(i)),u=M.redMul(m))}else c=r.redAdd(i),d=this.curve._mulC(this.z).redSqr(),m=c.redSub(d).redSub(d),a=this.curve._mulC(t.redISub(c)).redMul(m),n=this.curve._mulC(c).redMul(r.redISub(i)),u=c.redMul(m);return this.curve.point(a,n,u)};Yt.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};Yt.prototype._extAdd=function(t){var r=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),i=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),a=this.t.redMul(this.curve.dd).redMul(t.t),n=this.z.redMul(t.z.redAdd(t.z)),u=i.redSub(r),c=n.redSub(a),d=n.redAdd(a),m=i.redAdd(r),M=u.redMul(c),S=d.redMul(m),R=u.redMul(m),C=c.redMul(d);return this.curve.point(M,S,C,R)};Yt.prototype._projAdd=function(t){var r=this.z.redMul(t.z),i=r.redSqr(),a=this.x.redMul(t.x),n=this.y.redMul(t.y),u=this.curve.d.redMul(a).redMul(n),c=i.redSub(u),d=i.redAdd(u),m=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(a).redISub(n),M=r.redMul(c).redMul(m),S,R;return this.curve.twisted?(S=r.redMul(d).redMul(n.redSub(this.curve._mulA(a))),R=c.redMul(d)):(S=r.redMul(d).redMul(n.redSub(a)),R=this.curve._mulC(c).redMul(d)),this.curve.point(M,S,R)};Yt.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)};Yt.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)};Yt.prototype.mulAdd=function(t,r,i){return this.curve._wnafMulAdd(1,[this,r],[t,i],2,!1)};Yt.prototype.jmulAdd=function(t,r,i){return this.curve._wnafMulAdd(1,[this,r],[t,i],2,!0)};Yt.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this};Yt.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Yt.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Yt.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Yt.prototype.eq=function(t){return this===t||this.getX().cmp(t.getX())===0&&this.getY().cmp(t.getY())===0};Yt.prototype.eqXToP=function(t){var r=t.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(r)===0)return!0;for(var i=t.clone(),a=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(a),this.x.cmp(r)===0)return!0}};Yt.prototype.toP=Yt.prototype.normalize;Yt.prototype.mixedAdd=Yt.prototype.add;(function(e){var t=e;t.base=hc,t.short=dq,t.mont=vq,t.edwards=yq})($g);var pc={},vc={},St={},bq=Si,wq=Ze;St.inherits=wq;function _q(e,t){return(e.charCodeAt(t)&64512)!==55296||t<0||t+1>=e.length?!1:(e.charCodeAt(t+1)&64512)===56320}function Mq(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(typeof e=="string")if(t){if(t==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),a=0;a<e.length;a+=2)r.push(parseInt(e[a]+e[a+1],16))}else for(var i=0,a=0;a<e.length;a++){var n=e.charCodeAt(a);n<128?r[i++]=n:n<2048?(r[i++]=n>>6|192,r[i++]=n&63|128):_q(e,a)?(n=65536+((n&1023)<<10)+(e.charCodeAt(++a)&1023),r[i++]=n>>18|240,r[i++]=n>>12&63|128,r[i++]=n>>6&63|128,r[i++]=n&63|128):(r[i++]=n>>12|224,r[i++]=n>>6&63|128,r[i++]=n&63|128)}else for(a=0;a<e.length;a++)r[a]=e[a]|0;return r}St.toArray=Mq;function Sq(e){for(var t="",r=0;r<e.length;r++)t+=jx(e[r].toString(16));return t}St.toHex=Sq;function Fx(e){var t=e>>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return t>>>0}St.htonl=Fx;function xq(e,t){for(var r="",i=0;i<e.length;i++){var a=e[i];t==="little"&&(a=Fx(a)),r+=Ux(a.toString(16))}return r}St.toHex32=xq;function jx(e){return e.length===1?"0"+e:e}St.zero2=jx;function Ux(e){return e.length===7?"0"+e:e.length===6?"00"+e:e.length===5?"000"+e:e.length===4?"0000"+e:e.length===3?"00000"+e:e.length===2?"000000"+e:e.length===1?"0000000"+e:e}St.zero8=Ux;function Eq(e,t,r,i){var a=r-t;bq(a%4===0);for(var n=new Array(a/4),u=0,c=t;u<n.length;u++,c+=4){var d;i==="big"?d=e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3]:d=e[c+3]<<24|e[c+2]<<16|e[c+1]<<8|e[c],n[u]=d>>>0}return n}St.join32=Eq;function Rq(e,t){for(var r=new Array(e.length*4),i=0,a=0;i<e.length;i++,a+=4){var n=e[i];t==="big"?(r[a]=n>>>24,r[a+1]=n>>>16&255,r[a+2]=n>>>8&255,r[a+3]=n&255):(r[a+3]=n>>>24,r[a+2]=n>>>16&255,r[a+1]=n>>>8&255,r[a]=n&255)}return r}St.split32=Rq;function Aq(e,t){return e>>>t|e<<32-t}St.rotr32=Aq;function Tq(e,t){return e<<t|e>>>32-t}St.rotl32=Tq;function Oq(e,t){return e+t>>>0}St.sum32=Oq;function Iq(e,t,r){return e+t+r>>>0}St.sum32_3=Iq;function Pq(e,t,r,i){return e+t+r+i>>>0}St.sum32_4=Pq;function Cq(e,t,r,i,a){return e+t+r+i+a>>>0}St.sum32_5=Cq;function Bq(e,t,r,i){var a=e[t],n=e[t+1],u=i+n>>>0,c=(u<i?1:0)+r+a;e[t]=c>>>0,e[t+1]=u}St.sum64=Bq;function Lq(e,t,r,i){var a=t+i>>>0,n=(a<t?1:0)+e+r;return n>>>0}St.sum64_hi=Lq;function Nq(e,t,r,i){var a=t+i;return a>>>0}St.sum64_lo=Nq;function kq(e,t,r,i,a,n,u,c){var d=0,m=t;m=m+i>>>0,d+=m<t?1:0,m=m+n>>>0,d+=m<n?1:0,m=m+c>>>0,d+=m<c?1:0;var M=e+r+a+u+d;return M>>>0}St.sum64_4_hi=kq;function $q(e,t,r,i,a,n,u,c){var d=t+i+n+c;return d>>>0}St.sum64_4_lo=$q;function Dq(e,t,r,i,a,n,u,c,d,m){var M=0,S=t;S=S+i>>>0,M+=S<t?1:0,S=S+n>>>0,M+=S<n?1:0,S=S+c>>>0,M+=S<c?1:0,S=S+m>>>0,M+=S<m?1:0;var R=e+r+a+u+d+M;return R>>>0}St.sum64_5_hi=Dq;function Fq(e,t,r,i,a,n,u,c,d,m){var M=t+i+n+c+m;return M>>>0}St.sum64_5_lo=Fq;function jq(e,t,r){var i=t<<32-r|e>>>r;return i>>>0}St.rotr64_hi=jq;function Uq(e,t,r){var i=e<<32-r|t>>>r;return i>>>0}St.rotr64_lo=Uq;function Hq(e,t,r){return e>>>r}St.shr64_hi=Hq;function qq(e,t,r){var i=e<<32-r|t>>>r;return i>>>0}St.shr64_lo=qq;var Ws={},hw=St,Wq=Si;function gc(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}Ws.BlockHash=gc;gc.prototype.update=function(t,r){if(t=hw.toArray(t,r),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){t=this.pending;var i=t.length%this._delta8;this.pending=t.slice(t.length-i,t.length),this.pending.length===0&&(this.pending=null),t=hw.join32(t,0,t.length-i,this.endian);for(var a=0;a<t.length;a+=this._delta32)this._update(t,a,a+this._delta32)}return this};gc.prototype.digest=function(t){return this.update(this._pad()),Wq(this.pending===null),this._digest(t)};gc.prototype._pad=function(){var t=this.pendingTotal,r=this._delta8,i=r-(t+this.padLength)%r,a=new Array(i+this.padLength);a[0]=128;for(var n=1;n<i;n++)a[n]=0;if(t<<=3,this.endian==="big"){for(var u=8;u<this.padLength;u++)a[n++]=0;a[n++]=0,a[n++]=0,a[n++]=0,a[n++]=0,a[n++]=t>>>24&255,a[n++]=t>>>16&255,a[n++]=t>>>8&255,a[n++]=t&255}else for(a[n++]=t&255,a[n++]=t>>>8&255,a[n++]=t>>>16&255,a[n++]=t>>>24&255,a[n++]=0,a[n++]=0,a[n++]=0,a[n++]=0,u=8;u<this.padLength;u++)a[n++]=0;return a};var Ks={},dn={},Kq=St,rn=Kq.rotr32;function Vq(e,t,r,i){if(e===0)return Hx(t,r,i);if(e===1||e===3)return Wx(t,r,i);if(e===2)return qx(t,r,i)}dn.ft_1=Vq;function Hx(e,t,r){return e&t^~e&r}dn.ch32=Hx;function qx(e,t,r){return e&t^e&r^t&r}dn.maj32=qx;function Wx(e,t,r){return e^t^r}dn.p32=Wx;function zq(e){return rn(e,2)^rn(e,13)^rn(e,22)}dn.s0_256=zq;function Gq(e){return rn(e,6)^rn(e,11)^rn(e,25)}dn.s1_256=Gq;function Yq(e){return rn(e,7)^rn(e,18)^e>>>3}dn.g0_256=Yq;function Zq(e){return rn(e,17)^rn(e,19)^e>>>10}dn.g1_256=Zq;var xs=St,Xq=Ws,Jq=dn,_0=xs.rotl32,mf=xs.sum32,Qq=xs.sum32_5,eW=Jq.ft_1,Kx=Xq.BlockHash,tW=[1518500249,1859775393,2400959708,3395469782];function un(){if(!(this instanceof un))return new un;Kx.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}xs.inherits(un,Kx);var rW=un;un.blockSize=512;un.outSize=160;un.hmacStrength=80;un.padLength=64;un.prototype._update=function(t,r){for(var i=this.W,a=0;a<16;a++)i[a]=t[r+a];for(;a<i.length;a++)i[a]=_0(i[a-3]^i[a-8]^i[a-14]^i[a-16],1);var n=this.h[0],u=this.h[1],c=this.h[2],d=this.h[3],m=this.h[4];for(a=0;a<i.length;a++){var M=~~(a/20),S=Qq(_0(n,5),eW(M,u,c,d),m,i[a],tW[M]);m=d,d=c,c=_0(u,30),u=n,n=S}this.h[0]=mf(this.h[0],n),this.h[1]=mf(this.h[1],u),this.h[2]=mf(this.h[2],c),this.h[3]=mf(this.h[3],d),this.h[4]=mf(this.h[4],m)};un.prototype._digest=function(t){return t==="hex"?xs.toHex32(this.h,"big"):xs.split32(this.h,"big")};var Es=St,iW=Ws,Vs=dn,nW=Si,Oi=Es.sum32,oW=Es.sum32_4,aW=Es.sum32_5,sW=Vs.ch32,fW=Vs.maj32,uW=Vs.s0_256,lW=Vs.s1_256,hW=Vs.g0_256,cW=Vs.g1_256,Vx=iW.BlockHash,dW=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function ln(){if(!(this instanceof ln))return new ln;Vx.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=dW,this.W=new Array(64)}Es.inherits(ln,Vx);var zx=ln;ln.blockSize=512;ln.outSize=256;ln.hmacStrength=192;ln.padLength=64;ln.prototype._update=function(t,r){for(var i=this.W,a=0;a<16;a++)i[a]=t[r+a];for(;a<i.length;a++)i[a]=oW(cW(i[a-2]),i[a-7],hW(i[a-15]),i[a-16]);var n=this.h[0],u=this.h[1],c=this.h[2],d=this.h[3],m=this.h[4],M=this.h[5],S=this.h[6],R=this.h[7];for(nW(this.k.length===i.length),a=0;a<i.length;a++){var C=aW(R,lW(m),sW(m,M,S),this.k[a],i[a]),P=Oi(uW(n),fW(n,u,c));R=S,S=M,M=m,m=Oi(d,C),d=c,c=u,u=n,n=Oi(C,P)}this.h[0]=Oi(this.h[0],n),this.h[1]=Oi(this.h[1],u),this.h[2]=Oi(this.h[2],c),this.h[3]=Oi(this.h[3],d),this.h[4]=Oi(this.h[4],m),this.h[5]=Oi(this.h[5],M),this.h[6]=Oi(this.h[6],S),this.h[7]=Oi(this.h[7],R)};ln.prototype._digest=function(t){return t==="hex"?Es.toHex32(this.h,"big"):Es.split32(this.h,"big")};var Gp=St,Gx=zx;function Hn(){if(!(this instanceof Hn))return new Hn;Gx.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Gp.inherits(Hn,Gx);var pW=Hn;Hn.blockSize=512;Hn.outSize=224;Hn.hmacStrength=192;Hn.padLength=64;Hn.prototype._digest=function(t){return t==="hex"?Gp.toHex32(this.h.slice(0,7),"big"):Gp.split32(this.h.slice(0,7),"big")};var Vr=St,vW=Ws,gW=Si,nn=Vr.rotr64_hi,on=Vr.rotr64_lo,Yx=Vr.shr64_hi,Zx=Vr.shr64_lo,to=Vr.sum64,M0=Vr.sum64_hi,S0=Vr.sum64_lo,mW=Vr.sum64_4_hi,yW=Vr.sum64_4_lo,bW=Vr.sum64_5_hi,wW=Vr.sum64_5_lo,Xx=vW.BlockHash,_W=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Di(){if(!(this instanceof Di))return new Di;Xx.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=_W,this.W=new Array(160)}Vr.inherits(Di,Xx);var Jx=Di;Di.blockSize=1024;Di.outSize=512;Di.hmacStrength=192;Di.padLength=128;Di.prototype._prepareBlock=function(t,r){for(var i=this.W,a=0;a<32;a++)i[a]=t[r+a];for(;a<i.length;a+=2){var n=CW(i[a-4],i[a-3]),u=BW(i[a-4],i[a-3]),c=i[a-14],d=i[a-13],m=IW(i[a-30],i[a-29]),M=PW(i[a-30],i[a-29]),S=i[a-32],R=i[a-31];i[a]=mW(n,u,c,d,m,M,S,R),i[a+1]=yW(n,u,c,d,m,M,S,R)}};Di.prototype._update=function(t,r){this._prepareBlock(t,r);var i=this.W,a=this.h[0],n=this.h[1],u=this.h[2],c=this.h[3],d=this.h[4],m=this.h[5],M=this.h[6],S=this.h[7],R=this.h[8],C=this.h[9],P=this.h[10],k=this.h[11],L=this.h[12],I=this.h[13],B=this.h[14],H=this.h[15];gW(this.k.length===i.length);for(var F=0;F<i.length;F+=2){var W=B,Y=H,ie=TW(R,C),J=OW(R,C),V=MW(R,C,P,k,L),oe=SW(R,C,P,k,L,I),_=this.k[F],o=this.k[F+1],f=i[F],l=i[F+1],h=bW(W,Y,ie,J,V,oe,_,o,f,l),p=wW(W,Y,ie,J,V,oe,_,o,f,l);W=RW(a,n),Y=AW(a,n),ie=xW(a,n,u,c,d),J=EW(a,n,u,c,d,m);var w=M0(W,Y,ie,J),x=S0(W,Y,ie,J);B=L,H=I,L=P,I=k,P=R,k=C,R=M0(M,S,h,p),C=S0(S,S,h,p),M=d,S=m,d=u,m=c,u=a,c=n,a=M0(h,p,w,x),n=S0(h,p,w,x)}to(this.h,0,a,n),to(this.h,2,u,c),to(this.h,4,d,m),to(this.h,6,M,S),to(this.h,8,R,C),to(this.h,10,P,k),to(this.h,12,L,I),to(this.h,14,B,H)};Di.prototype._digest=function(t){return t==="hex"?Vr.toHex32(this.h,"big"):Vr.split32(this.h,"big")};function MW(e,t,r,i,a){var n=e&r^~e&a;return n<0&&(n+=4294967296),n}function SW(e,t,r,i,a,n){var u=t&i^~t&n;return u<0&&(u+=4294967296),u}function xW(e,t,r,i,a){var n=e&r^e&a^r&a;return n<0&&(n+=4294967296),n}function EW(e,t,r,i,a,n){var u=t&i^t&n^i&n;return u<0&&(u+=4294967296),u}function RW(e,t){var r=nn(e,t,28),i=nn(t,e,2),a=nn(t,e,7),n=r^i^a;return n<0&&(n+=4294967296),n}function AW(e,t){var r=on(e,t,28),i=on(t,e,2),a=on(t,e,7),n=r^i^a;return n<0&&(n+=4294967296),n}function TW(e,t){var r=nn(e,t,14),i=nn(e,t,18),a=nn(t,e,9),n=r^i^a;return n<0&&(n+=4294967296),n}function OW(e,t){var r=on(e,t,14),i=on(e,t,18),a=on(t,e,9),n=r^i^a;return n<0&&(n+=4294967296),n}function IW(e,t){var r=nn(e,t,1),i=nn(e,t,8),a=Yx(e,t,7),n=r^i^a;return n<0&&(n+=4294967296),n}function PW(e,t){var r=on(e,t,1),i=on(e,t,8),a=Zx(e,t,7),n=r^i^a;return n<0&&(n+=4294967296),n}function CW(e,t){var r=nn(e,t,19),i=nn(t,e,29),a=Yx(e,t,6),n=r^i^a;return n<0&&(n+=4294967296),n}function BW(e,t){var r=on(e,t,19),i=on(t,e,29),a=Zx(e,t,6),n=r^i^a;return n<0&&(n+=4294967296),n}var Yp=St,Qx=Jx;function qn(){if(!(this instanceof qn))return new qn;Qx.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Yp.inherits(qn,Qx);var LW=qn;qn.blockSize=1024;qn.outSize=384;qn.hmacStrength=192;qn.padLength=128;qn.prototype._digest=function(t){return t==="hex"?Yp.toHex32(this.h.slice(0,12),"big"):Yp.split32(this.h.slice(0,12),"big")};Ks.sha1=rW;Ks.sha224=pW;Ks.sha256=zx;Ks.sha384=LW;Ks.sha512=Jx;var e4={},pa=St,NW=Ws,tl=pa.rotl32,cw=pa.sum32,yf=pa.sum32_3,dw=pa.sum32_4,t4=NW.BlockHash;function hn(){if(!(this instanceof hn))return new hn;t4.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}pa.inherits(hn,t4);e4.ripemd160=hn;hn.blockSize=512;hn.outSize=160;hn.hmacStrength=192;hn.padLength=64;hn.prototype._update=function(t,r){for(var i=this.h[0],a=this.h[1],n=this.h[2],u=this.h[3],c=this.h[4],d=i,m=a,M=n,S=u,R=c,C=0;C<80;C++){var P=cw(tl(dw(i,pw(C,a,n,u),t[DW[C]+r],kW(C)),jW[C]),c);i=c,c=u,u=tl(n,10),n=a,a=P,P=cw(tl(dw(d,pw(79-C,m,M,S),t[FW[C]+r],$W(C)),UW[C]),R),d=R,R=S,S=tl(M,10),M=m,m=P}P=yf(this.h[1],n,S),this.h[1]=yf(this.h[2],u,R),this.h[2]=yf(this.h[3],c,d),this.h[3]=yf(this.h[4],i,m),this.h[4]=yf(this.h[0],a,M),this.h[0]=P};hn.prototype._digest=function(t){return t==="hex"?pa.toHex32(this.h,"little"):pa.split32(this.h,"little")};function pw(e,t,r,i){return e<=15?t^r^i:e<=31?t&r|~t&i:e<=47?(t|~r)^i:e<=63?t&i|r&~i:t^(r|~i)}function kW(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function $W(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}var DW=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],FW=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],jW=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],UW=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],HW=St,qW=Si;function Rs(e,t,r){if(!(this instanceof Rs))return new Rs(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(HW.toArray(t,r))}var WW=Rs;Rs.prototype._init=function(t){t.length>this.blockSize&&(t=new this.Hash().update(t).digest()),qW(t.length<=this.blockSize);for(var r=t.length;r<this.blockSize;r++)t.push(0);for(r=0;r<t.length;r++)t[r]^=54;for(this.inner=new this.Hash().update(t),r=0;r<t.length;r++)t[r]^=106;this.outer=new this.Hash().update(t)};Rs.prototype.update=function(t,r){return this.inner.update(t,r),this};Rs.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)};(function(e){var t=e;t.utils=St,t.common=Ws,t.sha=Ks,t.ripemd=e4,t.hmac=WW,t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160})(vc);var x0,vw;function KW(){return vw||(vw=1,x0={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}),x0}(function(e){var t=e,r=vc,i=$g,a=ri,n=a.assert;function u(m){m.type==="short"?this.curve=new i.short(m):m.type==="edwards"?this.curve=new i.edwards(m):this.curve=new i.mont(m),this.g=this.curve.g,this.n=this.curve.n,this.hash=m.hash,n(this.g.validate(),"Invalid curve"),n(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}t.PresetCurve=u;function c(m,M){Object.defineProperty(t,m,{configurable:!0,enumerable:!0,get:function(){var S=new u(M);return Object.defineProperty(t,m,{configurable:!0,enumerable:!0,value:S}),S}})}c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:r.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:r.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:r.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:r.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:r.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:r.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:r.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var d;try{d=KW()}catch{d=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:r.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",d]})})(pc);var VW=vc,aa=kg,r4=Si;function Bo(e){if(!(this instanceof Bo))return new Bo(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=aa.toArray(e.entropy,e.entropyEnc||"hex"),r=aa.toArray(e.nonce,e.nonceEnc||"hex"),i=aa.toArray(e.pers,e.persEnc||"hex");r4(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,i)}var zW=Bo;Bo.prototype._init=function(t,r,i){var a=t.concat(r).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n<this.V.length;n++)this.K[n]=0,this.V[n]=1;this._update(a),this._reseed=1,this.reseedInterval=281474976710656};Bo.prototype._hmac=function(){return new VW.hmac(this.hash,this.K)};Bo.prototype._update=function(t){var r=this._hmac().update(this.V).update([0]);t&&(r=r.update(t)),this.K=r.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())};Bo.prototype.reseed=function(t,r,i,a){typeof r!="string"&&(a=i,i=r,r=null),t=aa.toArray(t,r),i=aa.toArray(i,a),r4(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(i||[])),this._reseed=1};Bo.prototype.generate=function(t,r,i,a){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof r!="string"&&(a=i,i=r,r=null),i&&(i=aa.toArray(i,a||"hex"),this._update(i));for(var n=[];n.length<t;)this.V=this._hmac().update(this.V).digest(),n=n.concat(this.V);var u=n.slice(0,t);return this._update(i),this._reseed++,aa.encode(u,r)};var GW=Yn,YW=ri,Zp=YW.assert;function Ar(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var ZW=Ar;Ar.fromPublic=function(t,r,i){return r instanceof Ar?r:new Ar(t,{pub:r,pubEnc:i})};Ar.fromPrivate=function(t,r,i){return r instanceof Ar?r:new Ar(t,{priv:r,privEnc:i})};Ar.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}};Ar.prototype.getPublic=function(t,r){return typeof t=="string"&&(r=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),r?this.pub.encode(r,t):this.pub};Ar.prototype.getPrivate=function(t){return t==="hex"?this.priv.toString(16,2):this.priv};Ar.prototype._importPrivate=function(t,r){this.priv=new GW(t,r||16),this.priv=this.priv.umod(this.ec.curve.n)};Ar.prototype._importPublic=function(t,r){if(t.x||t.y){this.ec.curve.type==="mont"?Zp(t.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&Zp(t.x&&t.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(t.x,t.y);return}this.pub=this.ec.curve.decodePoint(t,r)};Ar.prototype.derive=function(t){return t.validate()||Zp(t.validate(),"public point not validated"),t.mul(this.priv).getX()};Ar.prototype.sign=function(t,r,i){return this.ec.sign(t,this,r,i)};Ar.prototype.verify=function(t,r){return this.ec.verify(t,r,this)};Ar.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var nh=Yn,Fg=ri,XW=Fg.assert;function mc(e,t){if(e instanceof mc)return e;this._importDER(e,t)||(XW(e.r&&e.s,"Signature without r or s"),this.r=new nh(e.r,16),this.s=new nh(e.s,16),e.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var JW=mc;function QW(){this.place=0}function E0(e,t){var r=e[t.place++];if(!(r&128))return r;var i=r&15;if(i===0||i>4)return!1;for(var a=0,n=0,u=t.place;n<i;n++,u++)a<<=8,a|=e[u],a>>>=0;return a<=127?!1:(t.place=u,a)}function gw(e){for(var t=0,r=e.length-1;!e[t]&&!(e[t+1]&128)&&t<r;)t++;return t===0?e:e.slice(t)}mc.prototype._importDER=function(t,r){t=Fg.toArray(t,r);var i=new QW;if(t[i.place++]!==48)return!1;var a=E0(t,i);if(a===!1||a+i.place!==t.length||t[i.place++]!==2)return!1;var n=E0(t,i);if(n===!1)return!1;var u=t.slice(i.place,n+i.place);if(i.place+=n,t[i.place++]!==2)return!1;var c=E0(t,i);if(c===!1||t.length!==c+i.place)return!1;var d=t.slice(i.place,c+i.place);if(u[0]===0)if(u[1]&128)u=u.slice(1);else return!1;if(d[0]===0)if(d[1]&128)d=d.slice(1);else return!1;return this.r=new nh(u),this.s=new nh(d),this.recoveryParam=null,!0};function R0(e,t){if(t<128){e.push(t);return}var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(r|128);--r;)e.push(t>>>(r<<3)&255);e.push(t)}mc.prototype.toDER=function(t){var r=this.r.toArray(),i=this.s.toArray();for(r[0]&128&&(r=[0].concat(r)),i[0]&128&&(i=[0].concat(i)),r=gw(r),i=gw(i);!i[0]&&!(i[1]&128);)i=i.slice(1);var a=[2];R0(a,r.length),a=a.concat(r),a.push(2),R0(a,i.length);var n=a.concat(i),u=[48];return R0(u,n.length),u=u.concat(n),Fg.encode(u,t)};var A0,mw;function eK(){if(mw)return A0;mw=1;var e=Yn,t=zW,r=ri,i=pc,a=Ig(),n=r.assert,u=ZW,c=JW;function d(m){if(!(this instanceof d))return new d(m);typeof m=="string"&&(n(Object.prototype.hasOwnProperty.call(i,m),"Unknown curve "+m),m=i[m]),m instanceof i.PresetCurve&&(m={curve:m}),this.curve=m.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=m.curve.g,this.g.precompute(m.curve.n.bitLength()+1),this.hash=m.hash||m.curve.hash}return A0=d,d.prototype.keyPair=function(M){return new u(this,M)},d.prototype.keyFromPrivate=function(M,S){return u.fromPrivate(this,M,S)},d.prototype.keyFromPublic=function(M,S){return u.fromPublic(this,M,S)},d.prototype.genKeyPair=function(M){M||(M={});for(var S=new t({hash:this.hash,pers:M.pers,persEnc:M.persEnc||"utf8",entropy:M.entropy||a(this.hash.hmacStrength),entropyEnc:M.entropy&&M.entropyEnc||"utf8",nonce:this.n.toArray()}),R=this.n.byteLength(),C=this.n.sub(new e(2));;){var P=new e(S.generate(R));if(!(P.cmp(C)>0))return P.iaddn(1),this.keyFromPrivate(P)}},d.prototype._truncateToN=function(M,S){var R=M.byteLength()*8-this.n.bitLength();return R>0&&(M=M.ushrn(R)),!S&&M.cmp(this.n)>=0?M.sub(this.n):M},d.prototype.sign=function(M,S,R,C){typeof R=="object"&&(C=R,R=null),C||(C={}),S=this.keyFromPrivate(S,R),M=this._truncateToN(new e(M,16));for(var P=this.n.byteLength(),k=S.getPrivate().toArray("be",P),L=M.toArray("be",P),I=new t({hash:this.hash,entropy:k,nonce:L,pers:C.pers,persEnc:C.persEnc||"utf8"}),B=this.n.sub(new e(1)),H=0;;H++){var F=C.k?C.k(H):new e(I.generate(this.n.byteLength()));if(F=this._truncateToN(F,!0),!(F.cmpn(1)<=0||F.cmp(B)>=0)){var W=this.g.mul(F);if(!W.isInfinity()){var Y=W.getX(),ie=Y.umod(this.n);if(ie.cmpn(0)!==0){var J=F.invm(this.n).mul(ie.mul(S.getPrivate()).iadd(M));if(J=J.umod(this.n),J.cmpn(0)!==0){var V=(W.getY().isOdd()?1:0)|(Y.cmp(ie)!==0?2:0);return C.canonical&&J.cmp(this.nh)>0&&(J=this.n.sub(J),V^=1),new c({r:ie,s:J,recoveryParam:V})}}}}}},d.prototype.verify=function(M,S,R,C){M=this._truncateToN(new e(M,16)),R=this.keyFromPublic(R,C),S=new c(S,"hex");var P=S.r,k=S.s;if(P.cmpn(1)<0||P.cmp(this.n)>=0||k.cmpn(1)<0||k.cmp(this.n)>=0)return!1;var L=k.invm(this.n),I=L.mul(M).umod(this.n),B=L.mul(P).umod(this.n),H;return this.curve._maxwellTrick?(H=this.g.jmulAdd(I,R.getPublic(),B),H.isInfinity()?!1:H.eqXToP(P)):(H=this.g.mulAdd(I,R.getPublic(),B),H.isInfinity()?!1:H.getX().umod(this.n).cmp(P)===0)},d.prototype.recoverPubKey=function(m,M,S,R){n((3&S)===S,"The recovery param is more than two bits"),M=new c(M,R);var C=this.n,P=new e(m),k=M.r,L=M.s,I=S&1,B=S>>1;if(k.cmp(this.curve.p.umod(this.curve.n))>=0&&B)throw new Error("Unable to find sencond key candinate");B?k=this.curve.pointFromX(k.add(this.curve.n),I):k=this.curve.pointFromX(k,I);var H=M.r.invm(C),F=C.sub(P).mul(H).umod(C),W=L.mul(H).umod(C);return this.g.mulAdd(F,k,W)},d.prototype.getKeyRecoveryParam=function(m,M,S,R){if(M=new c(M,R),M.recoveryParam!==null)return M.recoveryParam;for(var C=0;C<4;C++){var P;try{P=this.recoverPubKey(m,M,C)}catch{continue}if(P.eq(S))return C}throw new Error("Unable to find valid recovery factor")},A0}var Nu=ri,i4=Nu.assert,yw=Nu.parseBytes,zs=Nu.cachedProperty;function hr(e,t){this.eddsa=e,this._secret=yw(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=yw(t.pub)}hr.fromPublic=function(t,r){return r instanceof hr?r:new hr(t,{pub:r})};hr.fromSecret=function(t,r){return r instanceof hr?r:new hr(t,{secret:r})};hr.prototype.secret=function(){return this._secret};zs(hr,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});zs(hr,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});zs(hr,"privBytes",function(){var t=this.eddsa,r=this.hash(),i=t.encodingLength-1,a=r.slice(0,t.encodingLength);return a[0]&=248,a[i]&=127,a[i]|=64,a});zs(hr,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});zs(hr,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});zs(hr,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});hr.prototype.sign=function(t){return i4(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)};hr.prototype.verify=function(t,r){return this.eddsa.verify(t,r,this)};hr.prototype.getSecret=function(t){return i4(this._secret,"KeyPair is public only"),Nu.encode(this.secret(),t)};hr.prototype.getPublic=function(t){return Nu.encode(this.pubBytes(),t)};var tK=hr,rK=Yn,yc=ri,iK=yc.assert,bc=yc.cachedProperty,nK=yc.parseBytes;function Pa(e,t){this.eddsa=e,typeof t!="object"&&(t=nK(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),iK(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof rK&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}bc(Pa,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});bc(Pa,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});bc(Pa,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});bc(Pa,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});Pa.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};Pa.prototype.toHex=function(){return yc.encode(this.toBytes(),"hex").toUpperCase()};var oK=Pa,aK=vc,sK=pc,As=ri,fK=As.assert,n4=As.parseBytes,o4=tK,bw=oK;function zr(e){if(fK(e==="ed25519","only tested with ed25519 so far"),!(this instanceof zr))return new zr(e);e=sK[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=aK.sha512}var uK=zr;zr.prototype.sign=function(t,r){t=n4(t);var i=this.keyFromSecret(r),a=this.hashInt(i.messagePrefix(),t),n=this.g.mul(a),u=this.encodePoint(n),c=this.hashInt(u,i.pubBytes(),t).mul(i.priv()),d=a.add(c).umod(this.curve.n);return this.makeSignature({R:n,S:d,Rencoded:u})};zr.prototype.verify=function(t,r,i){t=n4(t),r=this.makeSignature(r);var a=this.keyFromPublic(i),n=this.hashInt(r.Rencoded(),a.pubBytes(),t),u=this.g.mul(r.S()),c=r.R().add(a.pub().mul(n));return c.eq(u)};zr.prototype.hashInt=function(){for(var t=this.hash(),r=0;r<arguments.length;r++)t.update(arguments[r]);return As.intFromLE(t.digest()).umod(this.curve.n)};zr.prototype.keyFromPublic=function(t){return o4.fromPublic(this,t)};zr.prototype.keyFromSecret=function(t){return o4.fromSecret(this,t)};zr.prototype.makeSignature=function(t){return t instanceof bw?t:new bw(this,t)};zr.prototype.encodePoint=function(t){var r=t.getY().toArray("le",this.encodingLength);return r[this.encodingLength-1]|=t.getX().isOdd()?128:0,r};zr.prototype.decodePoint=function(t){t=As.parseBytes(t);var r=t.length-1,i=t.slice(0,r).concat(t[r]&-129),a=(t[r]&128)!==0,n=As.intFromLE(i);return this.curve.pointFromY(n,a)};zr.prototype.encodeInt=function(t){return t.toArray("le",this.encodingLength)};zr.prototype.decodeInt=function(t){return As.intFromLE(t)};zr.prototype.isPoint=function(t){return t instanceof this.pointClass};var ww;function jg(){return ww||(ww=1,function(e){var t=e;t.version=uq.version,t.utils=ri,t.rand=Ig(),t.curve=$g,t.curves=pc,t.ec=eK(),t.eddsa=uK}(w0)),w0}var Hi={},Ug={},Hg={exports:{}};Hg.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Hg);var a4=Hg.exports,s4={},qg={},Sl=ke,ns=Sl.Buffer,li={},hi;for(hi in Sl)Sl.hasOwnProperty(hi)&&(hi==="SlowBuffer"||hi==="Buffer"||(li[hi]=Sl[hi]));var os=li.Buffer={};for(hi in ns)ns.hasOwnProperty(hi)&&(hi==="allocUnsafe"||hi==="allocUnsafeSlow"||(os[hi]=ns[hi]));li.Buffer.prototype=ns.prototype;(!os.from||os.from===Uint8Array.from)&&(os.from=function(e,t,r){if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&typeof e.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return ns(e,t,r)});os.alloc||(os.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var i=ns(e);return!t||t.length===0?i.fill(0):typeof r=="string"?i.fill(t,r):i.fill(t),i});if(!li.kStringMaxLength)try{li.kStringMaxLength=we.binding("buffer").kStringMaxLength}catch{}li.constants||(li.constants={MAX_LENGTH:li.kMaxLength},li.kStringMaxLength&&(li.constants.MAX_STRING_LENGTH=li.kStringMaxLength));var Wg=li,wc={};const lK=Ze;function Ti(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}wc.Reporter=Ti;Ti.prototype.isError=function(t){return t instanceof Ts};Ti.prototype.save=function(){const t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}};Ti.prototype.restore=function(t){const r=this._reporterState;r.obj=t.obj,r.path=r.path.slice(0,t.pathLen)};Ti.prototype.enterKey=function(t){return this._reporterState.path.push(t)};Ti.prototype.exitKey=function(t){const r=this._reporterState;r.path=r.path.slice(0,t-1)};Ti.prototype.leaveKey=function(t,r,i){const a=this._reporterState;this.exitKey(t),a.obj!==null&&(a.obj[r]=i)};Ti.prototype.path=function(){return this._reporterState.path.join("/")};Ti.prototype.enterObject=function(){const t=this._reporterState,r=t.obj;return t.obj={},r};Ti.prototype.leaveObject=function(t){const r=this._reporterState,i=r.obj;return r.obj=t,i};Ti.prototype.error=function(t){let r;const i=this._reporterState,a=t instanceof Ts;if(a?r=t:r=new Ts(i.path.map(function(n){return"["+JSON.stringify(n)+"]"}).join(""),t.message||t,t.stack),!i.options.partial)throw r;return a||i.errors.push(r),r};Ti.prototype.wrapResult=function(t){const r=this._reporterState;return r.options.partial?{result:this.isError(t)?null:t,errors:r.errors}:t};function Ts(e,t){this.path=e,this.rethrow(t)}lK(Ts,Error);Ts.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,Ts),!this.stack)try{throw new Error(this.message)}catch(r){this.stack=r.stack}return this};var va={};const hK=Ze,_c=wc.Reporter,Os=Wg.Buffer;function mi(e,t){if(_c.call(this,t),!Os.isBuffer(e)){this.error("Input not Buffer");return}this.base=e,this.offset=0,this.length=e.length}hK(mi,_c);va.DecoderBuffer=mi;mi.isDecoderBuffer=function(t){return t instanceof mi?!0:typeof t=="object"&&Os.isBuffer(t.base)&&t.constructor.name==="DecoderBuffer"&&typeof t.offset=="number"&&typeof t.length=="number"&&typeof t.save=="function"&&typeof t.restore=="function"&&typeof t.isEmpty=="function"&&typeof t.readUInt8=="function"&&typeof t.skip=="function"&&typeof t.raw=="function"};mi.prototype.save=function(){return{offset:this.offset,reporter:_c.prototype.save.call(this)}};mi.prototype.restore=function(t){const r=new mi(this.base);return r.offset=t.offset,r.length=this.offset,this.offset=t.offset,_c.prototype.restore.call(this,t.reporter),r};mi.prototype.isEmpty=function(){return this.offset===this.length};mi.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")};mi.prototype.skip=function(t,r){if(!(this.offset+t<=this.length))return this.error(r||"DecoderBuffer overrun");const i=new mi(this.base);return i._reporterState=this._reporterState,i.offset=this.offset,i.length=this.offset+t,this.offset+=t,i};mi.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)};function Is(e,t){if(Array.isArray(e))this.length=0,this.value=e.map(function(r){return Is.isEncoderBuffer(r)||(r=new Is(r,t)),this.length+=r.length,r},this);else if(typeof e=="number"){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if(typeof e=="string")this.value=e,this.length=Os.byteLength(e);else if(Os.isBuffer(e))this.value=e,this.length=e.length;else return t.error("Unsupported type: "+typeof e)}va.EncoderBuffer=Is;Is.isEncoderBuffer=function(t){return t instanceof Is?!0:typeof t=="object"&&t.constructor.name==="EncoderBuffer"&&typeof t.length=="number"&&typeof t.join=="function"};Is.prototype.join=function(t,r){return t||(t=Os.alloc(this.length)),r||(r=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(i){i.join(t,r),r+=i.length}):(typeof this.value=="number"?t[r]=this.value:typeof this.value=="string"?t.write(this.value,r):Os.isBuffer(this.value)&&this.value.copy(t,r),r+=this.length)),t};const cK=wc.Reporter,dK=va.EncoderBuffer,pK=va.DecoderBuffer,kr=Si,f4=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],vK=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(f4),gK=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function Kt(e,t,r){const i={};this._baseState=i,i.name=r,i.enc=e,i.parent=t||null,i.children=null,i.tag=null,i.args=null,i.reverseArgs=null,i.choice=null,i.optional=!1,i.any=!1,i.obj=!1,i.use=null,i.useDecoder=null,i.key=null,i.default=null,i.explicit=null,i.implicit=null,i.contains=null,i.parent||(i.children=[],this._wrap())}var Kg=Kt;const mK=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];Kt.prototype.clone=function(){const t=this._baseState,r={};mK.forEach(function(a){r[a]=t[a]});const i=new this.constructor(r.parent);return i._baseState=r,i};Kt.prototype._wrap=function(){const t=this._baseState;vK.forEach(function(r){this[r]=function(){const a=new this.constructor(this);return t.children.push(a),a[r].apply(a,arguments)}},this)};Kt.prototype._init=function(t){const r=this._baseState;kr(r.parent===null),t.call(this),r.children=r.children.filter(function(i){return i._baseState.parent===this},this),kr.equal(r.children.length,1,"Root node can have only one child")};Kt.prototype._useArgs=function(t){const r=this._baseState,i=t.filter(function(a){return a instanceof this.constructor},this);t=t.filter(function(a){return!(a instanceof this.constructor)},this),i.length!==0&&(kr(r.children===null),r.children=i,i.forEach(function(a){a._baseState.parent=this},this)),t.length!==0&&(kr(r.args===null),r.args=t,r.reverseArgs=t.map(function(a){if(typeof a!="object"||a.constructor!==Object)return a;const n={};return Object.keys(a).forEach(function(u){u==(u|0)&&(u|=0);const c=a[u];n[c]=u}),n}))};gK.forEach(function(e){Kt.prototype[e]=function(){const r=this._baseState;throw new Error(e+" not implemented for encoding: "+r.enc)}});f4.forEach(function(e){Kt.prototype[e]=function(){const r=this._baseState,i=Array.prototype.slice.call(arguments);return kr(r.tag===null),r.tag=e,this._useArgs(i),this}});Kt.prototype.use=function(t){kr(t);const r=this._baseState;return kr(r.use===null),r.use=t,this};Kt.prototype.optional=function(){const t=this._baseState;return t.optional=!0,this};Kt.prototype.def=function(t){const r=this._baseState;return kr(r.default===null),r.default=t,r.optional=!0,this};Kt.prototype.explicit=function(t){const r=this._baseState;return kr(r.explicit===null&&r.implicit===null),r.explicit=t,this};Kt.prototype.implicit=function(t){const r=this._baseState;return kr(r.explicit===null&&r.implicit===null),r.implicit=t,this};Kt.prototype.obj=function(){const t=this._baseState,r=Array.prototype.slice.call(arguments);return t.obj=!0,r.length!==0&&this._useArgs(r),this};Kt.prototype.key=function(t){const r=this._baseState;return kr(r.key===null),r.key=t,this};Kt.prototype.any=function(){const t=this._baseState;return t.any=!0,this};Kt.prototype.choice=function(t){const r=this._baseState;return kr(r.choice===null),r.choice=t,this._useArgs(Object.keys(t).map(function(i){return t[i]})),this};Kt.prototype.contains=function(t){const r=this._baseState;return kr(r.use===null),r.contains=t,this};Kt.prototype._decode=function(t,r){const i=this._baseState;if(i.parent===null)return t.wrapResult(i.children[0]._decode(t,r));let a=i.default,n=!0,u=null;if(i.key!==null&&(u=t.enterKey(i.key)),i.optional){let d=null;if(i.explicit!==null?d=i.explicit:i.implicit!==null?d=i.implicit:i.tag!==null&&(d=i.tag),d===null&&!i.any){const m=t.save();try{i.choice===null?this._decodeGeneric(i.tag,t,r):this._decodeChoice(t,r),n=!0}catch{n=!1}t.restore(m)}else if(n=this._peekTag(t,d,i.any),t.isError(n))return n}let c;if(i.obj&&n&&(c=t.enterObject()),n){if(i.explicit!==null){const m=this._decodeTag(t,i.explicit);if(t.isError(m))return m;t=m}const d=t.offset;if(i.use===null&&i.choice===null){let m;i.any&&(m=t.save());const M=this._decodeTag(t,i.implicit!==null?i.implicit:i.tag,i.any);if(t.isError(M))return M;i.any?a=t.raw(m):t=M}if(r&&r.track&&i.tag!==null&&r.track(t.path(),d,t.length,"tagged"),r&&r.track&&i.tag!==null&&r.track(t.path(),t.offset,t.length,"content"),i.any||(i.choice===null?a=this._decodeGeneric(i.tag,t,r):a=this._decodeChoice(t,r)),t.isError(a))return a;if(!i.any&&i.choice===null&&i.children!==null&&i.children.forEach(function(M){M._decode(t,r)}),i.contains&&(i.tag==="octstr"||i.tag==="bitstr")){const m=new pK(a);a=this._getUse(i.contains,t._reporterState.obj)._decode(m,r)}}return i.obj&&n&&(a=t.leaveObject(c)),i.key!==null&&(a!==null||n===!0)?t.leaveKey(u,i.key,a):u!==null&&t.exitKey(u),a};Kt.prototype._decodeGeneric=function(t,r,i){const a=this._baseState;return t==="seq"||t==="set"?null:t==="seqof"||t==="setof"?this._decodeList(r,t,a.args[0],i):/str$/.test(t)?this._decodeStr(r,t,i):t==="objid"&&a.args?this._decodeObjid(r,a.args[0],a.args[1],i):t==="objid"?this._decodeObjid(r,null,null,i):t==="gentime"||t==="utctime"?this._decodeTime(r,t,i):t==="null_"?this._decodeNull(r,i):t==="bool"?this._decodeBool(r,i):t==="objDesc"?this._decodeStr(r,t,i):t==="int"||t==="enum"?this._decodeInt(r,a.args&&a.args[0],i):a.use!==null?this._getUse(a.use,r._reporterState.obj)._decode(r,i):r.error("unknown tag: "+t)};Kt.prototype._getUse=function(t,r){const i=this._baseState;return i.useDecoder=this._use(t,r),kr(i.useDecoder._baseState.parent===null),i.useDecoder=i.useDecoder._baseState.children[0],i.implicit!==i.useDecoder._baseState.implicit&&(i.useDecoder=i.useDecoder.clone(),i.useDecoder._baseState.implicit=i.implicit),i.useDecoder};Kt.prototype._decodeChoice=function(t,r){const i=this._baseState;let a=null,n=!1;return Object.keys(i.choice).some(function(u){const c=t.save(),d=i.choice[u];try{const m=d._decode(t,r);if(t.isError(m))return!1;a={type:u,value:m},n=!0}catch{return t.restore(c),!1}return!0},this),n?a:t.error("Choice not matched")};Kt.prototype._createEncoderBuffer=function(t){return new dK(t,this.reporter)};Kt.prototype._encode=function(t,r,i){const a=this._baseState;if(a.default!==null&&a.default===t)return;const n=this._encodeValue(t,r,i);if(n!==void 0&&!this._skipDefault(n,r,i))return n};Kt.prototype._encodeValue=function(t,r,i){const a=this._baseState;if(a.parent===null)return a.children[0]._encode(t,r||new cK);let n=null;if(this.reporter=r,a.optional&&t===void 0)if(a.default!==null)t=a.default;else return;let u=null,c=!1;if(a.any)n=this._createEncoderBuffer(t);else if(a.choice)n=this._encodeChoice(t,r);else if(a.contains)u=this._getUse(a.contains,i)._encode(t,r),c=!0;else if(a.children)u=a.children.map(function(d){if(d._baseState.tag==="null_")return d._encode(null,r,t);if(d._baseState.key===null)return r.error("Child should have a key");const m=r.enterKey(d._baseState.key);if(typeof t!="object")return r.error("Child expected, but input is not object");const M=d._encode(t[d._baseState.key],r,t);return r.leaveKey(m),M},this).filter(function(d){return d}),u=this._createEncoderBuffer(u);else if(a.tag==="seqof"||a.tag==="setof"){if(!(a.args&&a.args.length===1))return r.error("Too many args for : "+a.tag);if(!Array.isArray(t))return r.error("seqof/setof, but data is not Array");const d=this.clone();d._baseState.implicit=null,u=this._createEncoderBuffer(t.map(function(m){const M=this._baseState;return this._getUse(M.args[0],t)._encode(m,r)},d))}else a.use!==null?n=this._getUse(a.use,i)._encode(t,r):(u=this._encodePrimitive(a.tag,t),c=!0);if(!a.any&&a.choice===null){const d=a.implicit!==null?a.implicit:a.tag,m=a.implicit===null?"universal":"context";d===null?a.use===null&&r.error("Tag could be omitted only for .use()"):a.use===null&&(n=this._encodeComposite(d,c,m,u))}return a.explicit!==null&&(n=this._encodeComposite(a.explicit,!1,"context",n)),n};Kt.prototype._encodeChoice=function(t,r){const i=this._baseState,a=i.choice[t.type];return a||kr(!1,t.type+" not found in "+JSON.stringify(Object.keys(i.choice))),a._encode(t.value,r)};Kt.prototype._encodePrimitive=function(t,r){const i=this._baseState;if(/str$/.test(t))return this._encodeStr(r,t);if(t==="objid"&&i.args)return this._encodeObjid(r,i.reverseArgs[0],i.args[1]);if(t==="objid")return this._encodeObjid(r,null,null);if(t==="gentime"||t==="utctime")return this._encodeTime(r,t);if(t==="null_")return this._encodeNull();if(t==="int"||t==="enum")return this._encodeInt(r,i.args&&i.reverseArgs[0]);if(t==="bool")return this._encodeBool(r);if(t==="objDesc")return this._encodeStr(r,t);throw new Error("Unsupported tag: "+t)};Kt.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)};Kt.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(t)};var Mc={};(function(e){function t(r){const i={};return Object.keys(r).forEach(function(a){(a|0)==a&&(a=a|0);const n=r[a];i[n]=a}),i}e.tagClass={0:"universal",1:"application",2:"context",3:"private"},e.tagClassByName=t(e.tagClass),e.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},e.tagByName=t(e.tag)})(Mc);const yK=Ze,On=Wg.Buffer,u4=Kg,T0=Mc;function l4(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new qi,this.tree._init(e.body)}var h4=l4;l4.prototype.encode=function(t,r){return this.tree._encode(t,r).join()};function qi(e){u4.call(this,"der",e)}yK(qi,u4);qi.prototype._encodeComposite=function(t,r,i,a){const n=bK(t,r,i,this.reporter);if(a.length<128){const d=On.alloc(2);return d[0]=n,d[1]=a.length,this._createEncoderBuffer([d,a])}let u=1;for(let d=a.length;d>=256;d>>=8)u++;const c=On.alloc(1+1+u);c[0]=n,c[1]=128|u;for(let d=1+u,m=a.length;m>0;d--,m>>=8)c[d]=m&255;return this._createEncoderBuffer([c,a])};qi.prototype._encodeStr=function(t,r){if(r==="bitstr")return this._createEncoderBuffer([t.unused|0,t.data]);if(r==="bmpstr"){const i=On.alloc(t.length*2);for(let a=0;a<t.length;a++)i.writeUInt16BE(t.charCodeAt(a),a*2);return this._createEncoderBuffer(i)}else return r==="numstr"?this._isNumstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: numstr supports only digits and space"):r==="printstr"?this._isPrintstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(r)?this._createEncoderBuffer(t):r==="objDesc"?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: "+r+" unsupported")};qi.prototype._encodeObjid=function(t,r,i){if(typeof t=="string"){if(!r)return this.reporter.error("string objid given, but no values map found");if(!r.hasOwnProperty(t))return this.reporter.error("objid not found in values map");t=r[t].split(/[\s.]+/g);for(let c=0;c<t.length;c++)t[c]|=0}else if(Array.isArray(t)){t=t.slice();for(let c=0;c<t.length;c++)t[c]|=0}if(!Array.isArray(t))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(t));if(!i){if(t[1]>=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,t[0]*40+t[1])}let a=0;for(let c=0;c<t.length;c++){let d=t[c];for(a++;d>=128;d>>=7)a++}const n=On.alloc(a);let u=n.length-1;for(let c=t.length-1;c>=0;c--){let d=t[c];for(n[u--]=d&127;(d>>=7)>0;)n[u--]=128|d&127}return this._createEncoderBuffer(n)};function ai(e){return e<10?"0"+e:e}qi.prototype._encodeTime=function(t,r){let i;const a=new Date(t);return r==="gentime"?i=[ai(a.getUTCFullYear()),ai(a.getUTCMonth()+1),ai(a.getUTCDate()),ai(a.getUTCHours()),ai(a.getUTCMinutes()),ai(a.getUTCSeconds()),"Z"].join(""):r==="utctime"?i=[ai(a.getUTCFullYear()%100),ai(a.getUTCMonth()+1),ai(a.getUTCDate()),ai(a.getUTCHours()),ai(a.getUTCMinutes()),ai(a.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+r+" time is not supported yet"),this._encodeStr(i,"octstr")};qi.prototype._encodeNull=function(){return this._createEncoderBuffer("")};qi.prototype._encodeInt=function(t,r){if(typeof t=="string"){if(!r)return this.reporter.error("String int or enum given, but no values map");if(!r.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=r[t]}if(typeof t!="number"&&!On.isBuffer(t)){const n=t.toArray();!t.sign&&n[0]&128&&n.unshift(0),t=On.from(n)}if(On.isBuffer(t)){let n=t.length;t.length===0&&n++;const u=On.alloc(n);return t.copy(u),t.length===0&&(u[0]=0),this._createEncoderBuffer(u)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);let i=1;for(let n=t;n>=256;n>>=8)i++;const a=new Array(i);for(let n=a.length-1;n>=0;n--)a[n]=t&255,t>>=8;return a[0]&128&&a.unshift(0),this._createEncoderBuffer(On.from(a))};qi.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)};qi.prototype._use=function(t,r){return typeof t=="function"&&(t=t(r)),t._getEncoder("der").tree};qi.prototype._skipDefault=function(t,r,i){const a=this._baseState;let n;if(a.default===null)return!1;const u=t.join();if(a.defaultBuffer===void 0&&(a.defaultBuffer=this._encodeValue(a.default,r,i).join()),u.length!==a.defaultBuffer.length)return!1;for(n=0;n<u.length;n++)if(u[n]!==a.defaultBuffer[n])return!1;return!0};function bK(e,t,r,i){let a;if(e==="seqof"?e="seq":e==="setof"&&(e="set"),T0.tagByName.hasOwnProperty(e))a=T0.tagByName[e];else if(typeof e=="number"&&(e|0)===e)a=e;else return i.error("Unknown tag: "+e);return a>=31?i.error("Multi-octet tag encoding unsupported"):(t||(a|=32),a|=T0.tagClassByName[r||"universal"]<<6,a)}const wK=Ze,Vg=h4;function zg(e){Vg.call(this,e),this.enc="pem"}wK(zg,Vg);var _K=zg;zg.prototype.encode=function(t,r){const a=Vg.prototype.encode.call(this,t).toString("base64"),n=["-----BEGIN "+r.label+"-----"];for(let u=0;u<a.length;u+=64)n.push(a.slice(u,u+64));return n.push("-----END "+r.label+"-----"),n.join(`
+`)};(function(e){const t=e;t.der=h4,t.pem=_K})(qg);var Gg={};const MK=Ze,SK=a4,_w=va.DecoderBuffer,c4=Kg,Mw=Mc;function d4(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new ii,this.tree._init(e.body)}var p4=d4;d4.prototype.decode=function(t,r){return _w.isDecoderBuffer(t)||(t=new _w(t,r)),this.tree._decode(t,r)};function ii(e){c4.call(this,"der",e)}MK(ii,c4);ii.prototype._peekTag=function(t,r,i){if(t.isEmpty())return!1;const a=t.save(),n=Yg(t,'Failed to peek tag: "'+r+'"');return t.isError(n)?n:(t.restore(a),n.tag===r||n.tagStr===r||n.tagStr+"of"===r||i)};ii.prototype._decodeTag=function(t,r,i){const a=Yg(t,'Failed to decode tag of "'+r+'"');if(t.isError(a))return a;let n=v4(t,a.primitive,'Failed to get length of "'+r+'"');if(t.isError(n))return n;if(!i&&a.tag!==r&&a.tagStr!==r&&a.tagStr+"of"!==r)return t.error('Failed to match tag: "'+r+'"');if(a.primitive||n!==null)return t.skip(n,'Failed to match body of: "'+r+'"');const u=t.save(),c=this._skipUntilEnd(t,'Failed to skip indefinite length body: "'+this.tag+'"');return t.isError(c)?c:(n=t.offset-u.offset,t.restore(u),t.skip(n,'Failed to match body of: "'+r+'"'))};ii.prototype._skipUntilEnd=function(t,r){for(;;){const i=Yg(t,r);if(t.isError(i))return i;const a=v4(t,i.primitive,r);if(t.isError(a))return a;let n;if(i.primitive||a!==null?n=t.skip(a):n=this._skipUntilEnd(t,r),t.isError(n))return n;if(i.tagStr==="end")break}};ii.prototype._decodeList=function(t,r,i,a){const n=[];for(;!t.isEmpty();){const u=this._peekTag(t,"end");if(t.isError(u))return u;const c=i.decode(t,"der",a);if(t.isError(c)&&u)break;n.push(c)}return n};ii.prototype._decodeStr=function(t,r){if(r==="bitstr"){const i=t.readUInt8();return t.isError(i)?i:{unused:i,data:t.raw()}}else if(r==="bmpstr"){const i=t.raw();if(i.length%2===1)return t.error("Decoding of string type: bmpstr length mismatch");let a="";for(let n=0;n<i.length/2;n++)a+=String.fromCharCode(i.readUInt16BE(n*2));return a}else if(r==="numstr"){const i=t.raw().toString("ascii");return this._isNumstr(i)?i:t.error("Decoding of string type: numstr unsupported characters")}else{if(r==="octstr")return t.raw();if(r==="objDesc")return t.raw();if(r==="printstr"){const i=t.raw().toString("ascii");return this._isPrintstr(i)?i:t.error("Decoding of string type: printstr unsupported characters")}else return/str$/.test(r)?t.raw().toString():t.error("Decoding of string type: "+r+" unsupported")}};ii.prototype._decodeObjid=function(t,r,i){let a;const n=[];let u=0,c=0;for(;!t.isEmpty();)c=t.readUInt8(),u<<=7,u|=c&127,c&128||(n.push(u),u=0);c&128&&n.push(u);const d=n[0]/40|0,m=n[0]%40;if(i?a=n:a=[d,m].concat(n.slice(1)),r){let M=r[a.join(" ")];M===void 0&&(M=r[a.join(".")]),M!==void 0&&(a=M)}return a};ii.prototype._decodeTime=function(t,r){const i=t.raw().toString();let a,n,u,c,d,m;if(r==="gentime")a=i.slice(0,4)|0,n=i.slice(4,6)|0,u=i.slice(6,8)|0,c=i.slice(8,10)|0,d=i.slice(10,12)|0,m=i.slice(12,14)|0;else if(r==="utctime")a=i.slice(0,2)|0,n=i.slice(2,4)|0,u=i.slice(4,6)|0,c=i.slice(6,8)|0,d=i.slice(8,10)|0,m=i.slice(10,12)|0,a<70?a=2e3+a:a=1900+a;else return t.error("Decoding "+r+" time is not supported yet");return Date.UTC(a,n-1,u,c,d,m,0)};ii.prototype._decodeNull=function(){return null};ii.prototype._decodeBool=function(t){const r=t.readUInt8();return t.isError(r)?r:r!==0};ii.prototype._decodeInt=function(t,r){const i=t.raw();let a=new SK(i);return r&&(a=r[a.toString(10)]||a),a};ii.prototype._use=function(t,r){return typeof t=="function"&&(t=t(r)),t._getDecoder("der").tree};function Yg(e,t){let r=e.readUInt8(t);if(e.isError(r))return r;const i=Mw.tagClass[r>>6],a=(r&32)===0;if((r&31)===31){let u=r;for(r=0;(u&128)===128;){if(u=e.readUInt8(t),e.isError(u))return u;r<<=7,r|=u&127}}else r&=31;const n=Mw.tag[r];return{cls:i,primitive:a,tag:r,tagStr:n}}function v4(e,t,r){let i=e.readUInt8(r);if(e.isError(i))return i;if(!t&&i===128)return null;if(!(i&128))return i;const a=i&127;if(a>4)return e.error("length octect is too long");i=0;for(let n=0;n<a;n++){i<<=8;const u=e.readUInt8(r);if(e.isError(u))return u;i|=u}return i}const xK=Ze,EK=Wg.Buffer,Zg=p4;function Xg(e){Zg.call(this,e),this.enc="pem"}xK(Xg,Zg);var RK=Xg;Xg.prototype.decode=function(t,r){const i=t.toString().split(/[\r\n]+/g),a=r.label.toUpperCase(),n=/^-----(BEGIN|END) ([^-]+)-----$/;let u=-1,c=-1;for(let M=0;M<i.length;M++){const S=i[M].match(n);if(S!==null&&S[2]===a)if(u===-1){if(S[1]!=="BEGIN")break;u=M}else{if(S[1]!=="END")break;c=M;break}}if(u===-1||c===-1)throw new Error("PEM section not found for: "+a);const d=i.slice(u+1,c).join("");d.replace(/[^a-z0-9+/=]+/gi,"");const m=EK.from(d,"base64");return Zg.prototype.decode.call(this,m,r)};(function(e){const t=e;t.der=p4,t.pem=RK})(Gg);(function(e){const t=qg,r=Gg,i=Ze,a=e;a.define=function(c,d){return new n(c,d)};function n(u,c){this.name=u,this.body=c,this.decoders={},this.encoders={}}n.prototype._createNamed=function(c){const d=this.name;function m(M){this._initNamed(M,d)}return i(m,c),m.prototype._initNamed=function(S,R){c.call(this,S,R)},new m(this)},n.prototype._getDecoder=function(c){return c=c||"der",this.decoders.hasOwnProperty(c)||(this.decoders[c]=this._createNamed(r[c])),this.decoders[c]},n.prototype.decode=function(c,d,m){return this._getDecoder(d).decode(c,m)},n.prototype._getEncoder=function(c){return c=c||"der",this.encoders.hasOwnProperty(c)||(this.encoders[c]=this._createNamed(t[c])),this.encoders[c]},n.prototype.encode=function(c,d,m){return this._getEncoder(d).encode(c,m)}})(s4);var g4={};(function(e){const t=e;t.Reporter=wc.Reporter,t.DecoderBuffer=va.DecoderBuffer,t.EncoderBuffer=va.EncoderBuffer,t.Node=Kg})(g4);var m4={};(function(e){const t=e;t._reverse=function(i){const a={};return Object.keys(i).forEach(function(n){(n|0)==n&&(n=n|0);const u=i[n];a[u]=n}),a},t.der=Mc})(m4);(function(e){const t=e;t.bignum=a4,t.define=s4.define,t.base=g4,t.constants=m4,t.decoders=Gg,t.encoders=qg})(Ug);var Wi=Ug,Sw=Wi.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),AK=Wi.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),Jg=Wi.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),TK=Wi.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(Jg),this.key("subjectPublicKey").bitstr())}),OK=Wi.define("RelativeDistinguishedName",function(){this.setof(AK)}),IK=Wi.define("RDNSequence",function(){this.seqof(OK)}),xw=Wi.define("Name",function(){this.choice({rdnSequence:this.use(IK)})}),PK=Wi.define("Validity",function(){this.seq().obj(this.key("notBefore").use(Sw),this.key("notAfter").use(Sw))}),CK=Wi.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),BK=Wi.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(Jg),this.key("issuer").use(xw),this.key("validity").use(PK),this.key("subject").use(xw),this.key("subjectPublicKeyInfo").use(TK),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(CK).optional())}),LK=Wi.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(BK),this.key("signatureAlgorithm").use(Jg),this.key("signatureValue").bitstr())}),NK=LK,Ki=Ug;Hi.certificate=NK;var kK=Ki.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});Hi.RSAPrivateKey=kK;var $K=Ki.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});Hi.RSAPublicKey=$K;var DK=Ki.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(y4),this.key("subjectPublicKey").bitstr())});Hi.PublicKey=DK;var y4=Ki.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),FK=Ki.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(y4),this.key("subjectPrivateKey").octstr())});Hi.PrivateKey=FK;var jK=Ki.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});Hi.EncryptedPrivateKey=jK;var UK=Ki.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});Hi.DSAPrivateKey=UK;Hi.DSAparam=Ki.define("DSAparam",function(){this.int()});var HK=Ki.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(qK),this.key("publicKey").optional().explicit(1).bitstr())});Hi.ECPrivateKey=HK;var qK=Ki.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});Hi.signature=Ki.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())});const WK={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"};var KK=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,VK=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,zK=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,GK=ac,YK=Qr,rl=pt().Buffer,ZK=function(e,t){var r=e.toString(),i=r.match(KK),a;if(i){var u="aes"+i[1],c=rl.from(i[2],"hex"),d=rl.from(i[3].replace(/[\r\n]/g,""),"base64"),m=GK(t,c.slice(0,8),parseInt(i[1],10)).key,M=[],S=YK.createDecipheriv(u,m,c);M.push(S.update(d)),M.push(S.final()),a=rl.concat(M)}else{var n=r.match(zK);a=rl.from(n[2].replace(/[\r\n]/g,""),"base64")}var R=r.match(VK)[1];return{tag:R,data:a}},$r=Hi,XK=WK,JK=ZK,QK=Qr,eV=ic,Xp=pt().Buffer,Sc=b4;function b4(e){var t;typeof e=="object"&&!Xp.isBuffer(e)&&(t=e.passphrase,e=e.key),typeof e=="string"&&(e=Xp.from(e));var r=JK(e,t),i=r.tag,a=r.data,n,u;switch(i){case"CERTIFICATE":u=$r.certificate.decode(a,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(u||(u=$r.PublicKey.decode(a,"der")),n=u.algorithm.algorithm.join("."),n){case"1.2.840.113549.1.1.1":return $r.RSAPublicKey.decode(u.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return u.subjectPrivateKey=u.subjectPublicKey,{type:"ec",data:u};case"1.2.840.10040.4.1":return u.algorithm.params.pub_key=$r.DSAparam.decode(u.subjectPublicKey.data,"der"),{type:"dsa",data:u.algorithm.params};default:throw new Error("unknown key id "+n)}case"ENCRYPTED PRIVATE KEY":a=$r.EncryptedPrivateKey.decode(a,"der"),a=tV(a,t);case"PRIVATE KEY":switch(u=$r.PrivateKey.decode(a,"der"),n=u.algorithm.algorithm.join("."),n){case"1.2.840.113549.1.1.1":return $r.RSAPrivateKey.decode(u.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:u.algorithm.curve,privateKey:$r.ECPrivateKey.decode(u.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return u.algorithm.params.priv_key=$r.DSAparam.decode(u.subjectPrivateKey,"der"),{type:"dsa",params:u.algorithm.params};default:throw new Error("unknown key id "+n)}case"RSA PUBLIC KEY":return $r.RSAPublicKey.decode(a,"der");case"RSA PRIVATE KEY":return $r.RSAPrivateKey.decode(a,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:$r.DSAPrivateKey.decode(a,"der")};case"EC PRIVATE KEY":return a=$r.ECPrivateKey.decode(a,"der"),{curve:a.parameters.value,privateKey:a.privateKey};default:throw new Error("unknown key type "+i)}}b4.signature=$r.signature;function tV(e,t){var r=e.algorithm.decrypt.kde.kdeparams.salt,i=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),a=XK[e.algorithm.decrypt.cipher.algo.join(".")],n=e.algorithm.decrypt.cipher.iv,u=e.subjectPrivateKey,c=parseInt(a.split("-")[1],10)/8,d=eV.pbkdf2Sync(t,r,i,c,"sha1"),m=QK.createDecipheriv(a,d,n),M=[];return M.push(m.update(u)),M.push(m.final()),Xp.concat(M)}const w4={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"};var Ew;function rV(){if(Ew)return gf.exports;Ew=1;var e=pt().Buffer,t=CS,r=Lg,i=jg().ec,a=Bg,n=Sc,u=w4;function c(L,I,B,H,F){var W=n(I);if(W.curve){if(H!=="ecdsa"&&H!=="ecdsa/rsa")throw new Error("wrong private key type");return d(L,W)}else if(W.type==="dsa"){if(H!=="dsa")throw new Error("wrong private key type");return m(L,W,B)}else if(H!=="rsa"&&H!=="ecdsa/rsa")throw new Error("wrong private key type");L=e.concat([F,L]);for(var Y=W.modulus.byteLength(),ie=[0,1];L.length+ie.length+1<Y;)ie.push(255);ie.push(0);for(var J=-1;++J<L.length;)ie.push(L[J]);var V=r(ie,W);return V}function d(L,I){var B=u[I.curve.join(".")];if(!B)throw new Error("unknown curve "+I.curve.join("."));var H=new i(B),F=H.keyFromPrivate(I.privateKey),W=F.sign(L);return e.from(W.toDER())}function m(L,I,B){for(var H=I.params.priv_key,F=I.params.p,W=I.params.q,Y=I.params.g,ie=new a(0),J,V=R(L,W).mod(W),oe=!1,_=S(H,W,L,B);oe===!1;)J=P(W,_,B),ie=k(Y,J,F,W),oe=J.invm(W).imul(V.add(H.mul(ie))).mod(W),oe.cmpn(0)===0&&(oe=!1,ie=new a(0));return M(ie,oe)}function M(L,I){L=L.toArray(),I=I.toArray(),L[0]&128&&(L=[0].concat(L)),I[0]&128&&(I=[0].concat(I));var B=L.length+I.length+4,H=[48,B,2,L.length];return H=H.concat(L,[2,I.length],I),e.from(H)}function S(L,I,B,H){if(L=e.from(L.toArray()),L.length<I.byteLength()){var F=e.alloc(I.byteLength()-L.length);L=e.concat([F,L])}var W=B.length,Y=C(B,I),ie=e.alloc(W);ie.fill(1);var J=e.alloc(W);return J=t(H,J).update(ie).update(e.from([0])).update(L).update(Y).digest(),ie=t(H,J).update(ie).digest(),J=t(H,J).update(ie).update(e.from([1])).update(L).update(Y).digest(),ie=t(H,J).update(ie).digest(),{k:J,v:ie}}function R(L,I){var B=new a(L),H=(L.length<<3)-I.bitLength();return H>0&&B.ishrn(H),B}function C(L,I){L=R(L,I),L=L.mod(I);var B=e.from(L.toArray());if(B.length<I.byteLength()){var H=e.alloc(I.byteLength()-B.length);B=e.concat([H,B])}return B}function P(L,I,B){var H,F;do{for(H=e.alloc(0);H.length*8<L.bitLength();)I.v=t(B,I.k).update(I.v).digest(),H=e.concat([H,I.v]);F=R(H,L),I.k=t(B,I.k).update(I.v).update(e.from([0])).digest(),I.v=t(B,I.k).update(I.v).digest()}while(F.cmp(L)!==-1);return F}function k(L,I,B,H){return L.toRed(a.mont(B)).redPow(I).fromRed().mod(H)}return gf.exports=c,gf.exports.getKey=S,gf.exports.makeKey=P,gf.exports}var O0,Rw;function iV(){if(Rw)return O0;Rw=1;var e=pt().Buffer,t=Bg,r=jg().ec,i=Sc,a=w4;function n(m,M,S,R,C){var P=i(S);if(P.type==="ec"){if(R!=="ecdsa"&&R!=="ecdsa/rsa")throw new Error("wrong public key type");return u(m,M,P)}else if(P.type==="dsa"){if(R!=="dsa")throw new Error("wrong public key type");return c(m,M,P)}else if(R!=="rsa"&&R!=="ecdsa/rsa")throw new Error("wrong public key type");M=e.concat([C,M]);for(var k=P.modulus.byteLength(),L=[1],I=0;M.length+L.length+2<k;)L.push(255),I++;L.push(0);for(var B=-1;++B<M.length;)L.push(M[B]);L=e.from(L);var H=t.mont(P.modulus);m=new t(m).toRed(H),m=m.redPow(new t(P.publicExponent)),m=e.from(m.fromRed().toArray());var F=I<8?1:0;for(k=Math.min(m.length,L.length),m.length!==L.length&&(F=1),B=-1;++B<k;)F|=m[B]^L[B];return F===0}function u(m,M,S){var R=a[S.data.algorithm.curve.join(".")];if(!R)throw new Error("unknown curve "+S.data.algorithm.curve.join("."));var C=new r(R),P=S.data.subjectPrivateKey.data;return C.verify(M,m,P)}function c(m,M,S){var R=S.data.p,C=S.data.q,P=S.data.g,k=S.data.pub_key,L=i.signature.decode(m,"der"),I=L.s,B=L.r;d(I,C),d(B,C);var H=t.mont(R),F=I.invm(C),W=P.toRed(H).redPow(new t(M).mul(F).mod(C)).fromRed().mul(k.toRed(H).redPow(B.mul(F).mod(C)).fromRed()).mod(R).mod(C);return W.cmp(B)===0}function d(m,M){if(m.cmpn(0)<=0)throw new Error("invalid sig");if(m.cmp(M)>=M)throw new Error("invalid sig")}return O0=n,O0}var I0,Aw;function nV(){if(Aw)return I0;Aw=1;var e=pt().Buffer,t=Tu,r=VH,i=Ze,a=rV(),n=iV(),u=BS;Object.keys(u).forEach(function(S){u[S].id=e.from(u[S].id,"hex"),u[S.toLowerCase()]=u[S]});function c(S){r.Writable.call(this);var R=u[S];if(!R)throw new Error("Unknown message digest");this._hashType=R.hash,this._hash=t(R.hash),this._tag=R.id,this._signType=R.sign}i(c,r.Writable),c.prototype._write=function(R,C,P){this._hash.update(R),P()},c.prototype.update=function(R,C){return typeof R=="string"&&(R=e.from(R,C)),this._hash.update(R),this},c.prototype.sign=function(R,C){this.end();var P=this._hash.digest(),k=a(P,R,this._hashType,this._signType,this._tag);return C?k.toString(C):k};function d(S){r.Writable.call(this);var R=u[S];if(!R)throw new Error("Unknown message digest");this._hash=t(R.hash),this._tag=R.id,this._signType=R.sign}i(d,r.Writable),d.prototype._write=function(R,C,P){this._hash.update(R),P()},d.prototype.update=function(R,C){return typeof R=="string"&&(R=e.from(R,C)),this._hash.update(R),this},d.prototype.verify=function(R,C,P){typeof C=="string"&&(C=e.from(C,P)),this.end();var k=this._hash.digest();return n(C,k,R,this._signType,this._tag)};function m(S){return new c(S)}function M(S){return new d(S)}return I0={Sign:m,Verify:M,createSign:m,createVerify:M},I0}var Qg={exports:{}};Qg.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(Qg);var oV=Qg.exports,P0,Tw;function aV(){if(Tw)return P0;Tw=1;var e=jg(),t=oV;P0=function(u){return new i(u)};var r={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};r.p224=r.secp224r1,r.p256=r.secp256r1=r.prime256v1,r.p192=r.secp192r1=r.prime192v1,r.p384=r.secp384r1,r.p521=r.secp521r1;function i(n){this.curveType=r[n],this.curveType||(this.curveType={name:n}),this.curve=new e.ec(this.curveType.name),this.keys=void 0}i.prototype.generateKeys=function(n,u){return this.keys=this.curve.genKeyPair(),this.getPublicKey(n,u)},i.prototype.computeSecret=function(n,u,c){u=u||"utf8",ke.Buffer.isBuffer(n)||(n=new ke.Buffer(n,u));var d=this.curve.keyFromPublic(n).getPublic(),m=d.mul(this.keys.getPrivate()).getX();return a(m,c,this.curveType.byteLength)},i.prototype.getPublicKey=function(n,u){var c=this.keys.getPublic(u==="compressed",!0);return u==="hybrid"&&(c[c.length-1]%2?c[0]=7:c[0]=6),a(c,n)},i.prototype.getPrivateKey=function(n){return a(this.keys.getPrivate(),n)},i.prototype.setPublicKey=function(n,u){return u=u||"utf8",ke.Buffer.isBuffer(n)||(n=new ke.Buffer(n,u)),this.keys._importPublic(n),this},i.prototype.setPrivateKey=function(n,u){u=u||"utf8",ke.Buffer.isBuffer(n)||(n=new ke.Buffer(n,u));var c=new t(n);return c=c.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(c),this};function a(n,u,c){Array.isArray(n)||(n=n.toArray());var d=new ke.Buffer(n);if(c&&d.length<c){var m=new ke.Buffer(c-d.length);m.fill(0),d=ke.Buffer.concat([m,d])}return u?d.toString(u):d}return P0}var _4={},sV=Tu,Jp=pt().Buffer,M4=function(e,t){for(var r=Jp.alloc(0),i=0,a;r.length<t;)a=fV(i++),r=Jp.concat([r,sV("sha1").update(e).update(a).digest()]);return r.slice(0,t)};function fV(e){var t=Jp.allocUnsafe(4);return t.writeUInt32BE(e,0),t}var S4=function(t,r){for(var i=t.length,a=-1;++a<i;)t[a]^=r[a];return t},em={exports:{}};em.exports;(function(e){(function(t,r){function i(_,o){if(!_)throw new Error(o||"Assertion failed")}function a(_,o){_.super_=o;var f=function(){};f.prototype=o.prototype,_.prototype=new f,_.prototype.constructor=_}function n(_,o,f){if(n.isBN(_))return _;this.negative=0,this.words=null,this.length=0,this.red=null,_!==null&&((o==="le"||o==="be")&&(f=o,o=10),this._init(_||0,o||10,f||"be"))}typeof t=="object"?t.exports=n:r.BN=n,n.BN=n,n.wordSize=26;var u;try{typeof window<"u"&&typeof window.Buffer<"u"?u=window.Buffer:u=ke.Buffer}catch{}n.isBN=function(o){return o instanceof n?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===n.wordSize&&Array.isArray(o.words)},n.max=function(o,f){return o.cmp(f)>0?o:f},n.min=function(o,f){return o.cmp(f)<0?o:f},n.prototype._init=function(o,f,l){if(typeof o=="number")return this._initNumber(o,f,l);if(typeof o=="object")return this._initArray(o,f,l);f==="hex"&&(f=16),i(f===(f|0)&&f>=2&&f<=36),o=o.toString().replace(/\s+/g,"");var h=0;o[0]==="-"&&(h++,this.negative=1),h<o.length&&(f===16?this._parseHex(o,h,l):(this._parseBase(o,f,h),l==="le"&&this._initArray(this.toArray(),f,l)))},n.prototype._initNumber=function(o,f,l){o<0&&(this.negative=1,o=-o),o<67108864?(this.words=[o&67108863],this.length=1):o<4503599627370496?(this.words=[o&67108863,o/67108864&67108863],this.length=2):(i(o<9007199254740992),this.words=[o&67108863,o/67108864&67108863,1],this.length=3),l==="le"&&this._initArray(this.toArray(),f,l)},n.prototype._initArray=function(o,f,l){if(i(typeof o.length=="number"),o.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(o.length/3),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p,w,x=0;if(l==="be")for(h=o.length-1,p=0;h>=0;h-=3)w=o[h]|o[h-1]<<8|o[h-2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);else if(l==="le")for(h=0,p=0;h<o.length;h+=3)w=o[h]|o[h+1]<<8|o[h+2]<<16,this.words[p]|=w<<x&67108863,this.words[p+1]=w>>>26-x&67108863,x+=24,x>=26&&(x-=26,p++);return this.strip()};function c(_,o){var f=_.charCodeAt(o);return f>=65&&f<=70?f-55:f>=97&&f<=102?f-87:f-48&15}function d(_,o,f){var l=c(_,f);return f-1>=o&&(l|=c(_,f-1)<<4),l}n.prototype._parseHex=function(o,f,l){this.length=Math.ceil((o.length-f)/6),this.words=new Array(this.length);for(var h=0;h<this.length;h++)this.words[h]=0;var p=0,w=0,x;if(l==="be")for(h=o.length-1;h>=f;h-=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8;else{var g=o.length-f;for(h=g%2===0?f+1:f;h<o.length;h+=2)x=d(o,f,h)<<p,this.words[w]|=x&67108863,p>=18?(p-=18,w+=1,this.words[w]|=x>>>26):p+=8}this.strip()};function m(_,o,f,l){for(var h=0,p=Math.min(_.length,f),w=o;w<p;w++){var x=_.charCodeAt(w)-48;h*=l,x>=49?h+=x-49+10:x>=17?h+=x-17+10:h+=x}return h}n.prototype._parseBase=function(o,f,l){this.words=[0],this.length=1;for(var h=0,p=1;p<=67108863;p*=f)h++;h--,p=p/f|0;for(var w=o.length-l,x=w%h,g=Math.min(w,w-x)+l,s=0,v=l;v<g;v+=h)s=m(o,v,v+h,f),this.imuln(p),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(x!==0){var T=1;for(s=m(o,v,o.length,f),v=0;v<x;v++)T*=f;this.imuln(T),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},n.prototype.copy=function(o){o.words=new Array(this.length);for(var f=0;f<this.length;f++)o.words[f]=this.words[f];o.length=this.length,o.negative=this.negative,o.red=this.red},n.prototype.clone=function(){var o=new n(null);return this.copy(o),o},n.prototype._expand=function(o){for(;this.length<o;)this.words[this.length++]=0;return this},n.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var M=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(o,f){o=o||10,f=f|0||1;var l;if(o===16||o==="hex"){l="";for(var h=0,p=0,w=0;w<this.length;w++){var x=this.words[w],g=((x<<h|p)&16777215).toString(16);p=x>>>24-h&16777215,p!==0||w!==this.length-1?l=M[6-g.length]+g+l:l=g+l,h+=2,h>=26&&(h-=26,w--)}for(p!==0&&(l=p.toString(16)+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}if(o===(o|0)&&o>=2&&o<=36){var s=S[o],v=R[o];l="";var T=this.clone();for(T.negative=0;!T.isZero();){var $=T.modn(v).toString(o);T=T.idivn(v),T.isZero()?l=$+l:l=M[s-$.length]+$+l}for(this.isZero()&&(l="0"+l);l.length%f!==0;)l="0"+l;return this.negative!==0&&(l="-"+l),l}i(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(o,f){return i(typeof u<"u"),this.toArrayLike(u,o,f)},n.prototype.toArray=function(o,f){return this.toArrayLike(Array,o,f)},n.prototype.toArrayLike=function(o,f,l){var h=this.byteLength(),p=l||Math.max(1,h);i(h<=p,"byte array longer than desired length"),i(p>0,"Requested array length <= 0"),this.strip();var w=f==="le",x=new o(p),g,s,v=this.clone();if(w){for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[s]=g;for(;s<p;s++)x[s]=0}else{for(s=0;s<p-h;s++)x[s]=0;for(s=0;!v.isZero();s++)g=v.andln(255),v.iushrn(8),x[p-s-1]=g}return x},Math.clz32?n.prototype._countBits=function(o){return 32-Math.clz32(o)}:n.prototype._countBits=function(o){var f=o,l=0;return f>=4096&&(l+=13,f>>>=13),f>=64&&(l+=7,f>>>=7),f>=8&&(l+=4,f>>>=4),f>=2&&(l+=2,f>>>=2),l+f},n.prototype._zeroBits=function(o){if(o===0)return 26;var f=o,l=0;return f&8191||(l+=13,f>>>=13),f&127||(l+=7,f>>>=7),f&15||(l+=4,f>>>=4),f&3||(l+=2,f>>>=2),f&1||l++,l},n.prototype.bitLength=function(){var o=this.words[this.length-1],f=this._countBits(o);return(this.length-1)*26+f};function C(_){for(var o=new Array(_.bitLength()),f=0;f<o.length;f++){var l=f/26|0,h=f%26;o[f]=(_.words[l]&1<<h)>>>h}return o}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,f=0;f<this.length;f++){var l=this._zeroBits(this.words[f]);if(o+=l,l!==26)break}return o},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(o){return this.negative!==0?this.abs().inotn(o).iaddn(1):this.clone()},n.prototype.fromTwos=function(o){return this.testn(o-1)?this.notn(o).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return this.negative!==0},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(o){for(;this.length<o.length;)this.words[this.length++]=0;for(var f=0;f<o.length;f++)this.words[f]=this.words[f]|o.words[f];return this.strip()},n.prototype.ior=function(o){return i((this.negative|o.negative)===0),this.iuor(o)},n.prototype.or=function(o){return this.length>o.length?this.clone().ior(o):o.clone().ior(this)},n.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},n.prototype.iuand=function(o){var f;this.length>o.length?f=o:f=this;for(var l=0;l<f.length;l++)this.words[l]=this.words[l]&o.words[l];return this.length=f.length,this.strip()},n.prototype.iand=function(o){return i((this.negative|o.negative)===0),this.iuand(o)},n.prototype.and=function(o){return this.length>o.length?this.clone().iand(o):o.clone().iand(this)},n.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},n.prototype.iuxor=function(o){var f,l;this.length>o.length?(f=this,l=o):(f=o,l=this);for(var h=0;h<l.length;h++)this.words[h]=f.words[h]^l.words[h];if(this!==f)for(;h<f.length;h++)this.words[h]=f.words[h];return this.length=f.length,this.strip()},n.prototype.ixor=function(o){return i((this.negative|o.negative)===0),this.iuxor(o)},n.prototype.xor=function(o){return this.length>o.length?this.clone().ixor(o):o.clone().ixor(this)},n.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},n.prototype.inotn=function(o){i(typeof o=="number"&&o>=0);var f=Math.ceil(o/26)|0,l=o%26;this._expand(f),l>0&&f--;for(var h=0;h<f;h++)this.words[h]=~this.words[h]&67108863;return l>0&&(this.words[h]=~this.words[h]&67108863>>26-l),this.strip()},n.prototype.notn=function(o){return this.clone().inotn(o)},n.prototype.setn=function(o,f){i(typeof o=="number"&&o>=0);var l=o/26|0,h=o%26;return this._expand(l+1),f?this.words[l]=this.words[l]|1<<h:this.words[l]=this.words[l]&~(1<<h),this.strip()},n.prototype.iadd=function(o){var f;if(this.negative!==0&&o.negative===0)return this.negative=0,f=this.isub(o),this.negative^=1,this._normSign();if(this.negative===0&&o.negative!==0)return o.negative=0,f=this.isub(o),o.negative=1,f._normSign();var l,h;this.length>o.length?(l=this,h=o):(l=o,h=this);for(var p=0,w=0;w<h.length;w++)f=(l.words[w]|0)+(h.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;for(;p!==0&&w<l.length;w++)f=(l.words[w]|0)+p,this.words[w]=f&67108863,p=f>>>26;if(this.length=l.length,p!==0)this.words[this.length]=p,this.length++;else if(l!==this)for(;w<l.length;w++)this.words[w]=l.words[w];return this},n.prototype.add=function(o){var f;return o.negative!==0&&this.negative===0?(o.negative=0,f=this.sub(o),o.negative^=1,f):o.negative===0&&this.negative!==0?(this.negative=0,f=o.sub(this),this.negative=1,f):this.length>o.length?this.clone().iadd(o):o.clone().iadd(this)},n.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var f=this.iadd(o);return o.negative=1,f._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var l=this.cmp(o);if(l===0)return this.negative=0,this.length=1,this.words[0]=0,this;var h,p;l>0?(h=this,p=o):(h=o,p=this);for(var w=0,x=0;x<p.length;x++)f=(h.words[x]|0)-(p.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;for(;w!==0&&x<h.length;x++)f=(h.words[x]|0)+w,w=f>>26,this.words[x]=f&67108863;if(w===0&&x<h.length&&h!==this)for(;x<h.length;x++)this.words[x]=h.words[x];return this.length=Math.max(this.length,x),h!==this&&(this.negative=1),this.strip()},n.prototype.sub=function(o){return this.clone().isub(o)};function P(_,o,f){f.negative=o.negative^_.negative;var l=_.length+o.length|0;f.length=l,l=l-1|0;var h=_.words[0]|0,p=o.words[0]|0,w=h*p,x=w&67108863,g=w/67108864|0;f.words[0]=x;for(var s=1;s<l;s++){for(var v=g>>>26,T=g&67108863,$=Math.min(s,o.length-1),G=Math.max(0,s-_.length+1);G<=$;G++){var ee=s-G|0;h=_.words[ee]|0,p=o.words[G]|0,w=h*p+T,v+=w/67108864|0,T=w&67108863}f.words[s]=T|0,g=v|0}return g!==0?f.words[s]=g|0:f.length--,f.strip()}var k=function(o,f,l){var h=o.words,p=f.words,w=l.words,x=0,g,s,v,T=h[0]|0,$=T&8191,G=T>>>13,ee=h[1]|0,A=ee&8191,E=ee>>>13,U=h[2]|0,K=U&8191,Z=U>>>13,b=h[3]|0,y=b&8191,O=b>>>13,q=h[4]|0,X=q&8191,D=q>>>13,N=h[5]|0,j=N&8191,z=N>>>13,se=h[6]|0,te=se&8191,ne=se>>>13,Ee=h[7]|0,Q=Ee&8191,ue=Ee>>>13,le=h[8]|0,ce=le&8191,pe=le>>>13,de=h[9]|0,ae=de&8191,fe=de>>>13,Te=p[0]|0,ve=Te&8191,Me=Te>>>13,Ke=p[1]|0,be=Ke&8191,Se=Ke>>>13,qe=p[2]|0,ye=qe&8191,_e=qe>>>13,Ve=p[3]|0,ge=Ve&8191,xe=Ve>>>13,Xe=p[4]|0,Re=Xe&8191,Le=Xe>>>13,at=p[5]|0,Ae=at&8191,Ne=at>>>13,rt=p[6]|0,Oe=rt&8191,De=rt>>>13,nt=p[7]|0,Ie=nt&8191,$e=nt>>>13,st=p[8]|0,Pe=st&8191,je=st>>>13,ht=p[9]|0,Ce=ht&8191,Fe=ht>>>13;l.negative=o.negative^f.negative,l.length=19,g=Math.imul($,ve),s=Math.imul($,Me),s=s+Math.imul(G,ve)|0,v=Math.imul(G,Me);var it=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(A,ve),s=Math.imul(A,Me),s=s+Math.imul(E,ve)|0,v=Math.imul(E,Me),g=g+Math.imul($,be)|0,s=s+Math.imul($,Se)|0,s=s+Math.imul(G,be)|0,v=v+Math.imul(G,Se)|0;var et=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(et>>>26)|0,et&=67108863,g=Math.imul(K,ve),s=Math.imul(K,Me),s=s+Math.imul(Z,ve)|0,v=Math.imul(Z,Me),g=g+Math.imul(A,be)|0,s=s+Math.imul(A,Se)|0,s=s+Math.imul(E,be)|0,v=v+Math.imul(E,Se)|0,g=g+Math.imul($,ye)|0,s=s+Math.imul($,_e)|0,s=s+Math.imul(G,ye)|0,v=v+Math.imul(G,_e)|0;var xt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(xt>>>26)|0,xt&=67108863,g=Math.imul(y,ve),s=Math.imul(y,Me),s=s+Math.imul(O,ve)|0,v=Math.imul(O,Me),g=g+Math.imul(K,be)|0,s=s+Math.imul(K,Se)|0,s=s+Math.imul(Z,be)|0,v=v+Math.imul(Z,Se)|0,g=g+Math.imul(A,ye)|0,s=s+Math.imul(A,_e)|0,s=s+Math.imul(E,ye)|0,v=v+Math.imul(E,_e)|0,g=g+Math.imul($,ge)|0,s=s+Math.imul($,xe)|0,s=s+Math.imul(G,ge)|0,v=v+Math.imul(G,xe)|0;var Tt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,g=Math.imul(X,ve),s=Math.imul(X,Me),s=s+Math.imul(D,ve)|0,v=Math.imul(D,Me),g=g+Math.imul(y,be)|0,s=s+Math.imul(y,Se)|0,s=s+Math.imul(O,be)|0,v=v+Math.imul(O,Se)|0,g=g+Math.imul(K,ye)|0,s=s+Math.imul(K,_e)|0,s=s+Math.imul(Z,ye)|0,v=v+Math.imul(Z,_e)|0,g=g+Math.imul(A,ge)|0,s=s+Math.imul(A,xe)|0,s=s+Math.imul(E,ge)|0,v=v+Math.imul(E,xe)|0,g=g+Math.imul($,Re)|0,s=s+Math.imul($,Le)|0,s=s+Math.imul(G,Re)|0,v=v+Math.imul(G,Le)|0;var Ot=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,g=Math.imul(j,ve),s=Math.imul(j,Me),s=s+Math.imul(z,ve)|0,v=Math.imul(z,Me),g=g+Math.imul(X,be)|0,s=s+Math.imul(X,Se)|0,s=s+Math.imul(D,be)|0,v=v+Math.imul(D,Se)|0,g=g+Math.imul(y,ye)|0,s=s+Math.imul(y,_e)|0,s=s+Math.imul(O,ye)|0,v=v+Math.imul(O,_e)|0,g=g+Math.imul(K,ge)|0,s=s+Math.imul(K,xe)|0,s=s+Math.imul(Z,ge)|0,v=v+Math.imul(Z,xe)|0,g=g+Math.imul(A,Re)|0,s=s+Math.imul(A,Le)|0,s=s+Math.imul(E,Re)|0,v=v+Math.imul(E,Le)|0,g=g+Math.imul($,Ae)|0,s=s+Math.imul($,Ne)|0,s=s+Math.imul(G,Ae)|0,v=v+Math.imul(G,Ne)|0;var Ct=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,g=Math.imul(te,ve),s=Math.imul(te,Me),s=s+Math.imul(ne,ve)|0,v=Math.imul(ne,Me),g=g+Math.imul(j,be)|0,s=s+Math.imul(j,Se)|0,s=s+Math.imul(z,be)|0,v=v+Math.imul(z,Se)|0,g=g+Math.imul(X,ye)|0,s=s+Math.imul(X,_e)|0,s=s+Math.imul(D,ye)|0,v=v+Math.imul(D,_e)|0,g=g+Math.imul(y,ge)|0,s=s+Math.imul(y,xe)|0,s=s+Math.imul(O,ge)|0,v=v+Math.imul(O,xe)|0,g=g+Math.imul(K,Re)|0,s=s+Math.imul(K,Le)|0,s=s+Math.imul(Z,Re)|0,v=v+Math.imul(Z,Le)|0,g=g+Math.imul(A,Ae)|0,s=s+Math.imul(A,Ne)|0,s=s+Math.imul(E,Ae)|0,v=v+Math.imul(E,Ne)|0,g=g+Math.imul($,Oe)|0,s=s+Math.imul($,De)|0,s=s+Math.imul(G,Oe)|0,v=v+Math.imul(G,De)|0;var kt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(kt>>>26)|0,kt&=67108863,g=Math.imul(Q,ve),s=Math.imul(Q,Me),s=s+Math.imul(ue,ve)|0,v=Math.imul(ue,Me),g=g+Math.imul(te,be)|0,s=s+Math.imul(te,Se)|0,s=s+Math.imul(ne,be)|0,v=v+Math.imul(ne,Se)|0,g=g+Math.imul(j,ye)|0,s=s+Math.imul(j,_e)|0,s=s+Math.imul(z,ye)|0,v=v+Math.imul(z,_e)|0,g=g+Math.imul(X,ge)|0,s=s+Math.imul(X,xe)|0,s=s+Math.imul(D,ge)|0,v=v+Math.imul(D,xe)|0,g=g+Math.imul(y,Re)|0,s=s+Math.imul(y,Le)|0,s=s+Math.imul(O,Re)|0,v=v+Math.imul(O,Le)|0,g=g+Math.imul(K,Ae)|0,s=s+Math.imul(K,Ne)|0,s=s+Math.imul(Z,Ae)|0,v=v+Math.imul(Z,Ne)|0,g=g+Math.imul(A,Oe)|0,s=s+Math.imul(A,De)|0,s=s+Math.imul(E,Oe)|0,v=v+Math.imul(E,De)|0,g=g+Math.imul($,Ie)|0,s=s+Math.imul($,$e)|0,s=s+Math.imul(G,Ie)|0,v=v+Math.imul(G,$e)|0;var Ut=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ut>>>26)|0,Ut&=67108863,g=Math.imul(ce,ve),s=Math.imul(ce,Me),s=s+Math.imul(pe,ve)|0,v=Math.imul(pe,Me),g=g+Math.imul(Q,be)|0,s=s+Math.imul(Q,Se)|0,s=s+Math.imul(ue,be)|0,v=v+Math.imul(ue,Se)|0,g=g+Math.imul(te,ye)|0,s=s+Math.imul(te,_e)|0,s=s+Math.imul(ne,ye)|0,v=v+Math.imul(ne,_e)|0,g=g+Math.imul(j,ge)|0,s=s+Math.imul(j,xe)|0,s=s+Math.imul(z,ge)|0,v=v+Math.imul(z,xe)|0,g=g+Math.imul(X,Re)|0,s=s+Math.imul(X,Le)|0,s=s+Math.imul(D,Re)|0,v=v+Math.imul(D,Le)|0,g=g+Math.imul(y,Ae)|0,s=s+Math.imul(y,Ne)|0,s=s+Math.imul(O,Ae)|0,v=v+Math.imul(O,Ne)|0,g=g+Math.imul(K,Oe)|0,s=s+Math.imul(K,De)|0,s=s+Math.imul(Z,Oe)|0,v=v+Math.imul(Z,De)|0,g=g+Math.imul(A,Ie)|0,s=s+Math.imul(A,$e)|0,s=s+Math.imul(E,Ie)|0,v=v+Math.imul(E,$e)|0,g=g+Math.imul($,Pe)|0,s=s+Math.imul($,je)|0,s=s+Math.imul(G,Pe)|0,v=v+Math.imul(G,je)|0;var Ht=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,g=Math.imul(ae,ve),s=Math.imul(ae,Me),s=s+Math.imul(fe,ve)|0,v=Math.imul(fe,Me),g=g+Math.imul(ce,be)|0,s=s+Math.imul(ce,Se)|0,s=s+Math.imul(pe,be)|0,v=v+Math.imul(pe,Se)|0,g=g+Math.imul(Q,ye)|0,s=s+Math.imul(Q,_e)|0,s=s+Math.imul(ue,ye)|0,v=v+Math.imul(ue,_e)|0,g=g+Math.imul(te,ge)|0,s=s+Math.imul(te,xe)|0,s=s+Math.imul(ne,ge)|0,v=v+Math.imul(ne,xe)|0,g=g+Math.imul(j,Re)|0,s=s+Math.imul(j,Le)|0,s=s+Math.imul(z,Re)|0,v=v+Math.imul(z,Le)|0,g=g+Math.imul(X,Ae)|0,s=s+Math.imul(X,Ne)|0,s=s+Math.imul(D,Ae)|0,v=v+Math.imul(D,Ne)|0,g=g+Math.imul(y,Oe)|0,s=s+Math.imul(y,De)|0,s=s+Math.imul(O,Oe)|0,v=v+Math.imul(O,De)|0,g=g+Math.imul(K,Ie)|0,s=s+Math.imul(K,$e)|0,s=s+Math.imul(Z,Ie)|0,v=v+Math.imul(Z,$e)|0,g=g+Math.imul(A,Pe)|0,s=s+Math.imul(A,je)|0,s=s+Math.imul(E,Pe)|0,v=v+Math.imul(E,je)|0,g=g+Math.imul($,Ce)|0,s=s+Math.imul($,Fe)|0,s=s+Math.imul(G,Ce)|0,v=v+Math.imul(G,Fe)|0;var Bt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,g=Math.imul(ae,be),s=Math.imul(ae,Se),s=s+Math.imul(fe,be)|0,v=Math.imul(fe,Se),g=g+Math.imul(ce,ye)|0,s=s+Math.imul(ce,_e)|0,s=s+Math.imul(pe,ye)|0,v=v+Math.imul(pe,_e)|0,g=g+Math.imul(Q,ge)|0,s=s+Math.imul(Q,xe)|0,s=s+Math.imul(ue,ge)|0,v=v+Math.imul(ue,xe)|0,g=g+Math.imul(te,Re)|0,s=s+Math.imul(te,Le)|0,s=s+Math.imul(ne,Re)|0,v=v+Math.imul(ne,Le)|0,g=g+Math.imul(j,Ae)|0,s=s+Math.imul(j,Ne)|0,s=s+Math.imul(z,Ae)|0,v=v+Math.imul(z,Ne)|0,g=g+Math.imul(X,Oe)|0,s=s+Math.imul(X,De)|0,s=s+Math.imul(D,Oe)|0,v=v+Math.imul(D,De)|0,g=g+Math.imul(y,Ie)|0,s=s+Math.imul(y,$e)|0,s=s+Math.imul(O,Ie)|0,v=v+Math.imul(O,$e)|0,g=g+Math.imul(K,Pe)|0,s=s+Math.imul(K,je)|0,s=s+Math.imul(Z,Pe)|0,v=v+Math.imul(Z,je)|0,g=g+Math.imul(A,Ce)|0,s=s+Math.imul(A,Fe)|0,s=s+Math.imul(E,Ce)|0,v=v+Math.imul(E,Fe)|0;var dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(dt>>>26)|0,dt&=67108863,g=Math.imul(ae,ye),s=Math.imul(ae,_e),s=s+Math.imul(fe,ye)|0,v=Math.imul(fe,_e),g=g+Math.imul(ce,ge)|0,s=s+Math.imul(ce,xe)|0,s=s+Math.imul(pe,ge)|0,v=v+Math.imul(pe,xe)|0,g=g+Math.imul(Q,Re)|0,s=s+Math.imul(Q,Le)|0,s=s+Math.imul(ue,Re)|0,v=v+Math.imul(ue,Le)|0,g=g+Math.imul(te,Ae)|0,s=s+Math.imul(te,Ne)|0,s=s+Math.imul(ne,Ae)|0,v=v+Math.imul(ne,Ne)|0,g=g+Math.imul(j,Oe)|0,s=s+Math.imul(j,De)|0,s=s+Math.imul(z,Oe)|0,v=v+Math.imul(z,De)|0,g=g+Math.imul(X,Ie)|0,s=s+Math.imul(X,$e)|0,s=s+Math.imul(D,Ie)|0,v=v+Math.imul(D,$e)|0,g=g+Math.imul(y,Pe)|0,s=s+Math.imul(y,je)|0,s=s+Math.imul(O,Pe)|0,v=v+Math.imul(O,je)|0,g=g+Math.imul(K,Ce)|0,s=s+Math.imul(K,Fe)|0,s=s+Math.imul(Z,Ce)|0,v=v+Math.imul(Z,Fe)|0;var At=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(ae,ge),s=Math.imul(ae,xe),s=s+Math.imul(fe,ge)|0,v=Math.imul(fe,xe),g=g+Math.imul(ce,Re)|0,s=s+Math.imul(ce,Le)|0,s=s+Math.imul(pe,Re)|0,v=v+Math.imul(pe,Le)|0,g=g+Math.imul(Q,Ae)|0,s=s+Math.imul(Q,Ne)|0,s=s+Math.imul(ue,Ae)|0,v=v+Math.imul(ue,Ne)|0,g=g+Math.imul(te,Oe)|0,s=s+Math.imul(te,De)|0,s=s+Math.imul(ne,Oe)|0,v=v+Math.imul(ne,De)|0,g=g+Math.imul(j,Ie)|0,s=s+Math.imul(j,$e)|0,s=s+Math.imul(z,Ie)|0,v=v+Math.imul(z,$e)|0,g=g+Math.imul(X,Pe)|0,s=s+Math.imul(X,je)|0,s=s+Math.imul(D,Pe)|0,v=v+Math.imul(D,je)|0,g=g+Math.imul(y,Ce)|0,s=s+Math.imul(y,Fe)|0,s=s+Math.imul(O,Ce)|0,v=v+Math.imul(O,Fe)|0;var _t=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(_t>>>26)|0,_t&=67108863,g=Math.imul(ae,Re),s=Math.imul(ae,Le),s=s+Math.imul(fe,Re)|0,v=Math.imul(fe,Le),g=g+Math.imul(ce,Ae)|0,s=s+Math.imul(ce,Ne)|0,s=s+Math.imul(pe,Ae)|0,v=v+Math.imul(pe,Ne)|0,g=g+Math.imul(Q,Oe)|0,s=s+Math.imul(Q,De)|0,s=s+Math.imul(ue,Oe)|0,v=v+Math.imul(ue,De)|0,g=g+Math.imul(te,Ie)|0,s=s+Math.imul(te,$e)|0,s=s+Math.imul(ne,Ie)|0,v=v+Math.imul(ne,$e)|0,g=g+Math.imul(j,Pe)|0,s=s+Math.imul(j,je)|0,s=s+Math.imul(z,Pe)|0,v=v+Math.imul(z,je)|0,g=g+Math.imul(X,Ce)|0,s=s+Math.imul(X,Fe)|0,s=s+Math.imul(D,Ce)|0,v=v+Math.imul(D,Fe)|0;var mt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ae,Ae),s=Math.imul(ae,Ne),s=s+Math.imul(fe,Ae)|0,v=Math.imul(fe,Ne),g=g+Math.imul(ce,Oe)|0,s=s+Math.imul(ce,De)|0,s=s+Math.imul(pe,Oe)|0,v=v+Math.imul(pe,De)|0,g=g+Math.imul(Q,Ie)|0,s=s+Math.imul(Q,$e)|0,s=s+Math.imul(ue,Ie)|0,v=v+Math.imul(ue,$e)|0,g=g+Math.imul(te,Pe)|0,s=s+Math.imul(te,je)|0,s=s+Math.imul(ne,Pe)|0,v=v+Math.imul(ne,je)|0,g=g+Math.imul(j,Ce)|0,s=s+Math.imul(j,Fe)|0,s=s+Math.imul(z,Ce)|0,v=v+Math.imul(z,Fe)|0;var It=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(ae,Oe),s=Math.imul(ae,De),s=s+Math.imul(fe,Oe)|0,v=Math.imul(fe,De),g=g+Math.imul(ce,Ie)|0,s=s+Math.imul(ce,$e)|0,s=s+Math.imul(pe,Ie)|0,v=v+Math.imul(pe,$e)|0,g=g+Math.imul(Q,Pe)|0,s=s+Math.imul(Q,je)|0,s=s+Math.imul(ue,Pe)|0,v=v+Math.imul(ue,je)|0,g=g+Math.imul(te,Ce)|0,s=s+Math.imul(te,Fe)|0,s=s+Math.imul(ne,Ce)|0,v=v+Math.imul(ne,Fe)|0;var vt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(ae,Ie),s=Math.imul(ae,$e),s=s+Math.imul(fe,Ie)|0,v=Math.imul(fe,$e),g=g+Math.imul(ce,Pe)|0,s=s+Math.imul(ce,je)|0,s=s+Math.imul(pe,Pe)|0,v=v+Math.imul(pe,je)|0,g=g+Math.imul(Q,Ce)|0,s=s+Math.imul(Q,Fe)|0,s=s+Math.imul(ue,Ce)|0,v=v+Math.imul(ue,Fe)|0;var yt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(yt>>>26)|0,yt&=67108863,g=Math.imul(ae,Pe),s=Math.imul(ae,je),s=s+Math.imul(fe,Pe)|0,v=Math.imul(fe,je),g=g+Math.imul(ce,Ce)|0,s=s+Math.imul(ce,Fe)|0,s=s+Math.imul(pe,Ce)|0,v=v+Math.imul(pe,Fe)|0;var Dt=(x+g|0)+((s&8191)<<13)|0;x=(v+(s>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,g=Math.imul(ae,Ce),s=Math.imul(ae,Fe),s=s+Math.imul(fe,Ce)|0,v=Math.imul(fe,Fe);var Ft=(x+g|0)+((s&8191)<<13)|0;return x=(v+(s>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,w[0]=it,w[1]=et,w[2]=xt,w[3]=Tt,w[4]=Ot,w[5]=Ct,w[6]=kt,w[7]=Ut,w[8]=Ht,w[9]=Bt,w[10]=dt,w[11]=At,w[12]=_t,w[13]=mt,w[14]=It,w[15]=vt,w[16]=yt,w[17]=Dt,w[18]=Ft,x!==0&&(w[19]=x,l.length++),l};Math.imul||(k=P);function L(_,o,f){f.negative=o.negative^_.negative,f.length=_.length+o.length;for(var l=0,h=0,p=0;p<f.length-1;p++){var w=h;h=0;for(var x=l&67108863,g=Math.min(p,o.length-1),s=Math.max(0,p-_.length+1);s<=g;s++){var v=p-s,T=_.words[v]|0,$=o.words[s]|0,G=T*$,ee=G&67108863;w=w+(G/67108864|0)|0,ee=ee+x|0,x=ee&67108863,w=w+(ee>>>26)|0,h+=w>>>26,w&=67108863}f.words[p]=x,l=w,w=h}return l!==0?f.words[p]=l:f.length--,f.strip()}function I(_,o,f){var l=new B;return l.mulp(_,o,f)}n.prototype.mulTo=function(o,f){var l,h=this.length+o.length;return this.length===10&&o.length===10?l=k(this,o,f):h<63?l=P(this,o,f):h<1024?l=L(this,o,f):l=I(this,o,f),l};function B(_,o){this.x=_,this.y=o}B.prototype.makeRBT=function(o){for(var f=new Array(o),l=n.prototype._countBits(o)-1,h=0;h<o;h++)f[h]=this.revBin(h,l,o);return f},B.prototype.revBin=function(o,f,l){if(o===0||o===l-1)return o;for(var h=0,p=0;p<f;p++)h|=(o&1)<<f-p-1,o>>=1;return h},B.prototype.permute=function(o,f,l,h,p,w){for(var x=0;x<w;x++)h[x]=f[o[x]],p[x]=l[o[x]]},B.prototype.transform=function(o,f,l,h,p,w){this.permute(w,o,f,l,h,p);for(var x=1;x<p;x<<=1)for(var g=x<<1,s=Math.cos(2*Math.PI/g),v=Math.sin(2*Math.PI/g),T=0;T<p;T+=g)for(var $=s,G=v,ee=0;ee<x;ee++){var A=l[T+ee],E=h[T+ee],U=l[T+ee+x],K=h[T+ee+x],Z=$*U-G*K;K=$*K+G*U,U=Z,l[T+ee]=A+U,h[T+ee]=E+K,l[T+ee+x]=A-U,h[T+ee+x]=E-K,ee!==g&&(Z=s*$-v*G,G=s*G+v*$,$=Z)}},B.prototype.guessLen13b=function(o,f){var l=Math.max(f,o)|1,h=l&1,p=0;for(l=l/2|0;l;l=l>>>1)p++;return 1<<p+1+h},B.prototype.conjugate=function(o,f,l){if(!(l<=1))for(var h=0;h<l/2;h++){var p=o[h];o[h]=o[l-h-1],o[l-h-1]=p,p=f[h],f[h]=-f[l-h-1],f[l-h-1]=-p}},B.prototype.normalize13b=function(o,f){for(var l=0,h=0;h<f/2;h++){var p=Math.round(o[2*h+1]/f)*8192+Math.round(o[2*h]/f)+l;o[h]=p&67108863,p<67108864?l=0:l=p/67108864|0}return o},B.prototype.convert13b=function(o,f,l,h){for(var p=0,w=0;w<f;w++)p=p+(o[w]|0),l[2*w]=p&8191,p=p>>>13,l[2*w+1]=p&8191,p=p>>>13;for(w=2*f;w<h;++w)l[w]=0;i(p===0),i((p&-8192)===0)},B.prototype.stub=function(o){for(var f=new Array(o),l=0;l<o;l++)f[l]=0;return f},B.prototype.mulp=function(o,f,l){var h=2*this.guessLen13b(o.length,f.length),p=this.makeRBT(h),w=this.stub(h),x=new Array(h),g=new Array(h),s=new Array(h),v=new Array(h),T=new Array(h),$=new Array(h),G=l.words;G.length=h,this.convert13b(o.words,o.length,x,h),this.convert13b(f.words,f.length,v,h),this.transform(x,w,g,s,h,p),this.transform(v,w,T,$,h,p);for(var ee=0;ee<h;ee++){var A=g[ee]*T[ee]-s[ee]*$[ee];s[ee]=g[ee]*$[ee]+s[ee]*T[ee],g[ee]=A}return this.conjugate(g,s,h),this.transform(g,s,G,w,h,p),this.conjugate(G,w,h),this.normalize13b(G,h),l.negative=o.negative^f.negative,l.length=o.length+f.length,l.strip()},n.prototype.mul=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),this.mulTo(o,f)},n.prototype.mulf=function(o){var f=new n(null);return f.words=new Array(this.length+o.length),I(this,o,f)},n.prototype.imul=function(o){return this.clone().mulTo(o,this)},n.prototype.imuln=function(o){i(typeof o=="number"),i(o<67108864);for(var f=0,l=0;l<this.length;l++){var h=(this.words[l]|0)*o,p=(h&67108863)+(f&67108863);f>>=26,f+=h/67108864|0,f+=p>>>26,this.words[l]=p&67108863}return f!==0&&(this.words[l]=f,this.length++),this},n.prototype.muln=function(o){return this.clone().imuln(o)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(o){var f=C(o);if(f.length===0)return new n(1);for(var l=this,h=0;h<f.length&&f[h]===0;h++,l=l.sqr());if(++h<f.length)for(var p=l.sqr();h<f.length;h++,p=p.sqr())f[h]!==0&&(l=l.mul(p));return l},n.prototype.iushln=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=67108863>>>26-f<<26-f,p;if(f!==0){var w=0;for(p=0;p<this.length;p++){var x=this.words[p]&h,g=(this.words[p]|0)-x<<f;this.words[p]=g|w,w=x>>>26-f}w&&(this.words[p]=w,this.length++)}if(l!==0){for(p=this.length-1;p>=0;p--)this.words[p+l]=this.words[p];for(p=0;p<l;p++)this.words[p]=0;this.length+=l}return this.strip()},n.prototype.ishln=function(o){return i(this.negative===0),this.iushln(o)},n.prototype.iushrn=function(o,f,l){i(typeof o=="number"&&o>=0);var h;f?h=(f-f%26)/26:h=0;var p=o%26,w=Math.min((o-p)/26,this.length),x=67108863^67108863>>>p<<p,g=l;if(h-=w,h=Math.max(0,h),g){for(var s=0;s<w;s++)g.words[s]=this.words[s];g.length=w}if(w!==0)if(this.length>w)for(this.length-=w,s=0;s<this.length;s++)this.words[s]=this.words[s+w];else this.words[0]=0,this.length=1;var v=0;for(s=this.length-1;s>=0&&(v!==0||s>=h);s--){var T=this.words[s]|0;this.words[s]=v<<26-p|T>>>p,v=T&x}return g&&v!==0&&(g.words[g.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(o,f,l){return i(this.negative===0),this.iushrn(o,f,l)},n.prototype.shln=function(o){return this.clone().ishln(o)},n.prototype.ushln=function(o){return this.clone().iushln(o)},n.prototype.shrn=function(o){return this.clone().ishrn(o)},n.prototype.ushrn=function(o){return this.clone().iushrn(o)},n.prototype.testn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return!1;var p=this.words[l];return!!(p&h)},n.prototype.imaskn=function(o){i(typeof o=="number"&&o>=0);var f=o%26,l=(o-f)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=l)return this;if(f!==0&&l++,this.length=Math.min(l,this.length),f!==0){var h=67108863^67108863>>>f<<f;this.words[this.length-1]&=h}return this.strip()},n.prototype.maskn=function(o){return this.clone().imaskn(o)},n.prototype.iaddn=function(o){return i(typeof o=="number"),i(o<67108864),o<0?this.isubn(-o):this.negative!==0?this.length===1&&(this.words[0]|0)<o?(this.words[0]=o-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(o),this.negative=1,this):this._iaddn(o)},n.prototype._iaddn=function(o){this.words[0]+=o;for(var f=0;f<this.length&&this.words[f]>=67108864;f++)this.words[f]-=67108864,f===this.length-1?this.words[f+1]=1:this.words[f+1]++;return this.length=Math.max(this.length,f+1),this},n.prototype.isubn=function(o){if(i(typeof o=="number"),i(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var f=0;f<this.length&&this.words[f]<0;f++)this.words[f]+=67108864,this.words[f+1]-=1;return this.strip()},n.prototype.addn=function(o){return this.clone().iaddn(o)},n.prototype.subn=function(o){return this.clone().isubn(o)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(o,f,l){var h=o.length+l,p;this._expand(h);var w,x=0;for(p=0;p<o.length;p++){w=(this.words[p+l]|0)+x;var g=(o.words[p]|0)*f;w-=g&67108863,x=(w>>26)-(g/67108864|0),this.words[p+l]=w&67108863}for(;p<this.length-l;p++)w=(this.words[p+l]|0)+x,x=w>>26,this.words[p+l]=w&67108863;if(x===0)return this.strip();for(i(x===-1),x=0,p=0;p<this.length;p++)w=-(this.words[p]|0)+x,x=w>>26,this.words[p]=w&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(o,f){var l=this.length-o.length,h=this.clone(),p=o,w=p.words[p.length-1]|0,x=this._countBits(w);l=26-x,l!==0&&(p=p.ushln(l),h.iushln(l),w=p.words[p.length-1]|0);var g=h.length-p.length,s;if(f!=="mod"){s=new n(null),s.length=g+1,s.words=new Array(s.length);for(var v=0;v<s.length;v++)s.words[v]=0}var T=h.clone()._ishlnsubmul(p,1,g);T.negative===0&&(h=T,s&&(s.words[g]=1));for(var $=g-1;$>=0;$--){var G=(h.words[p.length+$]|0)*67108864+(h.words[p.length+$-1]|0);for(G=Math.min(G/w|0,67108863),h._ishlnsubmul(p,G,$);h.negative!==0;)G--,h.negative=0,h._ishlnsubmul(p,1,$),h.isZero()||(h.negative^=1);s&&(s.words[$]=G)}return s&&s.strip(),h.strip(),f!=="div"&&l!==0&&h.iushrn(l),{div:s||null,mod:h}},n.prototype.divmod=function(o,f,l){if(i(!o.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var h,p,w;return this.negative!==0&&o.negative===0?(w=this.neg().divmod(o,f),f!=="mod"&&(h=w.div.neg()),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.iadd(o)),{div:h,mod:p}):this.negative===0&&o.negative!==0?(w=this.divmod(o.neg(),f),f!=="mod"&&(h=w.div.neg()),{div:h,mod:w.mod}):this.negative&o.negative?(w=this.neg().divmod(o.neg(),f),f!=="div"&&(p=w.mod.neg(),l&&p.negative!==0&&p.isub(o)),{div:w.div,mod:p}):o.length>this.length||this.cmp(o)<0?{div:new n(0),mod:this}:o.length===1?f==="div"?{div:this.divn(o.words[0]),mod:null}:f==="mod"?{div:null,mod:new n(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new n(this.modn(o.words[0]))}:this._wordDiv(o,f)},n.prototype.div=function(o){return this.divmod(o,"div",!1).div},n.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},n.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},n.prototype.divRound=function(o){var f=this.divmod(o);if(f.mod.isZero())return f.div;var l=f.div.negative!==0?f.mod.isub(o):f.mod,h=o.ushrn(1),p=o.andln(1),w=l.cmp(h);return w<0||p===1&&w===0?f.div:f.div.negative!==0?f.div.isubn(1):f.div.iaddn(1)},n.prototype.modn=function(o){i(o<=67108863);for(var f=(1<<26)%o,l=0,h=this.length-1;h>=0;h--)l=(f*l+(this.words[h]|0))%o;return l},n.prototype.idivn=function(o){i(o<=67108863);for(var f=0,l=this.length-1;l>=0;l--){var h=(this.words[l]|0)+f*67108864;this.words[l]=h/o|0,f=h%o}return this.strip()},n.prototype.divn=function(o){return this.clone().idivn(o)},n.prototype.egcd=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=new n(0),x=new n(1),g=0;f.isEven()&&l.isEven();)f.iushrn(1),l.iushrn(1),++g;for(var s=l.clone(),v=f.clone();!f.isZero();){for(var T=0,$=1;!(f.words[0]&$)&&T<26;++T,$<<=1);if(T>0)for(f.iushrn(T);T-- >0;)(h.isOdd()||p.isOdd())&&(h.iadd(s),p.isub(v)),h.iushrn(1),p.iushrn(1);for(var G=0,ee=1;!(l.words[0]&ee)&&G<26;++G,ee<<=1);if(G>0)for(l.iushrn(G);G-- >0;)(w.isOdd()||x.isOdd())&&(w.iadd(s),x.isub(v)),w.iushrn(1),x.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(w),p.isub(x)):(l.isub(f),w.isub(h),x.isub(p))}return{a:w,b:x,gcd:l.iushln(g)}},n.prototype._invmp=function(o){i(o.negative===0),i(!o.isZero());var f=this,l=o.clone();f.negative!==0?f=f.umod(o):f=f.clone();for(var h=new n(1),p=new n(0),w=l.clone();f.cmpn(1)>0&&l.cmpn(1)>0;){for(var x=0,g=1;!(f.words[0]&g)&&x<26;++x,g<<=1);if(x>0)for(f.iushrn(x);x-- >0;)h.isOdd()&&h.iadd(w),h.iushrn(1);for(var s=0,v=1;!(l.words[0]&v)&&s<26;++s,v<<=1);if(s>0)for(l.iushrn(s);s-- >0;)p.isOdd()&&p.iadd(w),p.iushrn(1);f.cmp(l)>=0?(f.isub(l),h.isub(p)):(l.isub(f),p.isub(h))}var T;return f.cmpn(1)===0?T=h:T=p,T.cmpn(0)<0&&T.iadd(o),T},n.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var f=this.clone(),l=o.clone();f.negative=0,l.negative=0;for(var h=0;f.isEven()&&l.isEven();h++)f.iushrn(1),l.iushrn(1);do{for(;f.isEven();)f.iushrn(1);for(;l.isEven();)l.iushrn(1);var p=f.cmp(l);if(p<0){var w=f;f=l,l=w}else if(p===0||l.cmpn(1)===0)break;f.isub(l)}while(!0);return l.iushln(h)},n.prototype.invm=function(o){return this.egcd(o).a.umod(o)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(o){return this.words[0]&o},n.prototype.bincn=function(o){i(typeof o=="number");var f=o%26,l=(o-f)/26,h=1<<f;if(this.length<=l)return this._expand(l+1),this.words[l]|=h,this;for(var p=h,w=l;p!==0&&w<this.length;w++){var x=this.words[w]|0;x+=p,p=x>>>26,x&=67108863,this.words[w]=x}return p!==0&&(this.words[w]=p,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(o){var f=o<0;if(this.negative!==0&&!f)return-1;if(this.negative===0&&f)return 1;this.strip();var l;if(this.length>1)l=1;else{f&&(o=-o),i(o<=67108863,"Number is too big");var h=this.words[0]|0;l=h===o?0:h<o?-1:1}return this.negative!==0?-l|0:l},n.prototype.cmp=function(o){if(this.negative!==0&&o.negative===0)return-1;if(this.negative===0&&o.negative!==0)return 1;var f=this.ucmp(o);return this.negative!==0?-f|0:f},n.prototype.ucmp=function(o){if(this.length>o.length)return 1;if(this.length<o.length)return-1;for(var f=0,l=this.length-1;l>=0;l--){var h=this.words[l]|0,p=o.words[l]|0;if(h!==p){h<p?f=-1:h>p&&(f=1);break}}return f},n.prototype.gtn=function(o){return this.cmpn(o)===1},n.prototype.gt=function(o){return this.cmp(o)===1},n.prototype.gten=function(o){return this.cmpn(o)>=0},n.prototype.gte=function(o){return this.cmp(o)>=0},n.prototype.ltn=function(o){return this.cmpn(o)===-1},n.prototype.lt=function(o){return this.cmp(o)===-1},n.prototype.lten=function(o){return this.cmpn(o)<=0},n.prototype.lte=function(o){return this.cmp(o)<=0},n.prototype.eqn=function(o){return this.cmpn(o)===0},n.prototype.eq=function(o){return this.cmp(o)===0},n.red=function(o){return new V(o)},n.prototype.toRed=function(o){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},n.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(o){return this.red=o,this},n.prototype.forceRed=function(o){return i(!this.red,"Already a number in reduction context"),this._forceRed(o)},n.prototype.redAdd=function(o){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},n.prototype.redIAdd=function(o){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},n.prototype.redSub=function(o){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},n.prototype.redISub=function(o){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},n.prototype.redShl=function(o){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},n.prototype.redMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},n.prototype.redIMul=function(o){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},n.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(o){return i(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var H={k256:null,p224:null,p192:null,p25519:null};function F(_,o){this.name=_,this.p=new n(o,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F.prototype._tmp=function(){var o=new n(null);return o.words=new Array(Math.ceil(this.n/13)),o},F.prototype.ireduce=function(o){var f=o,l;do this.split(f,this.tmp),f=this.imulK(f),f=f.iadd(this.tmp),l=f.bitLength();while(l>this.n);var h=l<this.n?-1:f.ucmp(this.p);return h===0?(f.words[0]=0,f.length=1):h>0?f.isub(this.p):f.strip!==void 0?f.strip():f._strip(),f},F.prototype.split=function(o,f){o.iushrn(this.n,0,f)},F.prototype.imulK=function(o){return o.imul(this.k)};function W(){F.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(W,F),W.prototype.split=function(o,f){for(var l=4194303,h=Math.min(o.length,9),p=0;p<h;p++)f.words[p]=o.words[p];if(f.length=h,o.length<=9){o.words[0]=0,o.length=1;return}var w=o.words[9];for(f.words[f.length++]=w&l,p=10;p<o.length;p++){var x=o.words[p]|0;o.words[p-10]=(x&l)<<4|w>>>22,w=x}w>>>=22,o.words[p-10]=w,w===0&&o.length>10?o.length-=10:o.length-=9},W.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var f=0,l=0;l<o.length;l++){var h=o.words[l]|0;f+=h*977,o.words[l]=f&67108863,f=h*64+(f/67108864|0)}return o.words[o.length-1]===0&&(o.length--,o.words[o.length-1]===0&&o.length--),o};function Y(){F.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(Y,F);function ie(){F.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(ie,F);function J(){F.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a(J,F),J.prototype.imulK=function(o){for(var f=0,l=0;l<o.length;l++){var h=(o.words[l]|0)*19+f,p=h&67108863;h>>>=26,o.words[l]=p,f=h}return f!==0&&(o.words[o.length++]=f),o},n._prime=function(o){if(H[o])return H[o];var f;if(o==="k256")f=new W;else if(o==="p224")f=new Y;else if(o==="p192")f=new ie;else if(o==="p25519")f=new J;else throw new Error("Unknown prime "+o);return H[o]=f,f};function V(_){if(typeof _=="string"){var o=n._prime(_);this.m=o.p,this.prime=o}else i(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}V.prototype._verify1=function(o){i(o.negative===0,"red works only with positives"),i(o.red,"red works only with red numbers")},V.prototype._verify2=function(o,f){i((o.negative|f.negative)===0,"red works only with positives"),i(o.red&&o.red===f.red,"red works only with red numbers")},V.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},V.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},V.prototype.add=function(o,f){this._verify2(o,f);var l=o.add(f);return l.cmp(this.m)>=0&&l.isub(this.m),l._forceRed(this)},V.prototype.iadd=function(o,f){this._verify2(o,f);var l=o.iadd(f);return l.cmp(this.m)>=0&&l.isub(this.m),l},V.prototype.sub=function(o,f){this._verify2(o,f);var l=o.sub(f);return l.cmpn(0)<0&&l.iadd(this.m),l._forceRed(this)},V.prototype.isub=function(o,f){this._verify2(o,f);var l=o.isub(f);return l.cmpn(0)<0&&l.iadd(this.m),l},V.prototype.shl=function(o,f){return this._verify1(o),this.imod(o.ushln(f))},V.prototype.imul=function(o,f){return this._verify2(o,f),this.imod(o.imul(f))},V.prototype.mul=function(o,f){return this._verify2(o,f),this.imod(o.mul(f))},V.prototype.isqr=function(o){return this.imul(o,o.clone())},V.prototype.sqr=function(o){return this.mul(o,o)},V.prototype.sqrt=function(o){if(o.isZero())return o.clone();var f=this.m.andln(3);if(i(f%2===1),f===3){var l=this.m.add(new n(1)).iushrn(2);return this.pow(o,l)}for(var h=this.m.subn(1),p=0;!h.isZero()&&h.andln(1)===0;)p++,h.iushrn(1);i(!h.isZero());var w=new n(1).toRed(this),x=w.redNeg(),g=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new n(2*s*s).toRed(this);this.pow(s,g).cmp(x)!==0;)s.redIAdd(x);for(var v=this.pow(s,h),T=this.pow(o,h.addn(1).iushrn(1)),$=this.pow(o,h),G=p;$.cmp(w)!==0;){for(var ee=$,A=0;ee.cmp(w)!==0;A++)ee=ee.redSqr();i(A<G);var E=this.pow(v,new n(1).iushln(G-A-1));T=T.redMul(E),v=E.redSqr(),$=$.redMul(v),G=A}return T},V.prototype.invm=function(o){var f=o._invmp(this.m);return f.negative!==0?(f.negative=0,this.imod(f).redNeg()):this.imod(f)},V.prototype.pow=function(o,f){if(f.isZero())return new n(1).toRed(this);if(f.cmpn(1)===0)return o.clone();var l=4,h=new Array(1<<l);h[0]=new n(1).toRed(this),h[1]=o;for(var p=2;p<h.length;p++)h[p]=this.mul(h[p-1],o);var w=h[0],x=0,g=0,s=f.bitLength()%26;for(s===0&&(s=26),p=f.length-1;p>=0;p--){for(var v=f.words[p],T=s-1;T>=0;T--){var $=v>>T&1;if(w!==h[0]&&(w=this.sqr(w)),$===0&&x===0){g=0;continue}x<<=1,x|=$,g++,!(g!==l&&(p!==0||T!==0))&&(w=this.mul(w,h[x]),g=0,x=0)}s=26}return w},V.prototype.convertTo=function(o){var f=o.umod(this.m);return f===o?f.clone():f},V.prototype.convertFrom=function(o){var f=o.clone();return f.red=null,f},n.mont=function(o){return new oe(o)};function oe(_){V.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(oe,V),oe.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},oe.prototype.convertFrom=function(o){var f=this.imod(o.mul(this.rinv));return f.red=null,f},oe.prototype.imul=function(o,f){if(o.isZero()||f.isZero())return o.words[0]=0,o.length=1,o;var l=o.imul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.mul=function(o,f){if(o.isZero()||f.isZero())return new n(0)._forceRed(this);var l=o.mul(f),h=l.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),p=l.isub(h).iushrn(this.shift),w=p;return p.cmp(this.m)>=0?w=p.isub(this.m):p.cmpn(0)<0&&(w=p.iadd(this.m)),w._forceRed(this)},oe.prototype.invm=function(o){var f=this.imod(o._invmp(this.m).mul(this.r2));return f._forceRed(this)}})(e,Ye)})(em);var tm=em.exports,Ow=tm,uV=pt().Buffer;function lV(e,t){return uV.from(e.toRed(Ow.mont(t.modulus)).redPow(new Ow(t.publicExponent)).fromRed().toArray())}var x4=lV,hV=Sc,Qp=Ds,cV=Tu,Iw=M4,Pw=S4,rm=tm,dV=x4,pV=Lg,Ci=pt().Buffer,vV=function(t,r,i){var a;t.padding?a=t.padding:i?a=1:a=4;var n=hV(t),u;if(a===4)u=gV(n,r);else if(a===1)u=mV(n,r,i);else if(a===3){if(u=new rm(r),u.cmp(n.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return i?pV(u,n):dV(u,n)};function gV(e,t){var r=e.modulus.byteLength(),i=t.length,a=cV("sha1").update(Ci.alloc(0)).digest(),n=a.length,u=2*n;if(i>r-u-2)throw new Error("message too long");var c=Ci.alloc(r-i-u-2),d=r-n-1,m=Qp(n),M=Pw(Ci.concat([a,c,Ci.alloc(1,1),t],d),Iw(m,d)),S=Pw(m,Iw(M,n));return new rm(Ci.concat([Ci.alloc(1),S,M],r))}function mV(e,t,r){var i=t.length,a=e.modulus.byteLength();if(i>a-11)throw new Error("message too long");var n;return r?n=Ci.alloc(a-i-3,255):n=yV(a-i-3),new rm(Ci.concat([Ci.from([0,r?1:2]),n,Ci.alloc(1),t],a))}function yV(e){for(var t=Ci.allocUnsafe(e),r=0,i=Qp(e*2),a=0,n;r<e;)a===i.length&&(i=Qp(e*2),a=0),n=i[a++],n&&(t[r++]=n);return t}var bV=Sc,Cw=M4,Bw=S4,Lw=tm,wV=Lg,_V=Tu,MV=x4,fu=pt().Buffer,SV=function(t,r,i){var a;t.padding?a=t.padding:i?a=1:a=4;var n=bV(t),u=n.modulus.byteLength();if(r.length>u||new Lw(r).cmp(n.modulus)>=0)throw new Error("decryption error");var c;i?c=MV(new Lw(r),n):c=wV(r,n);var d=fu.alloc(u-c.length);if(c=fu.concat([d,c],u),a===4)return xV(n,c);if(a===1)return EV(n,c,i);if(a===3)return c;throw new Error("unknown padding")};function xV(e,t){var r=e.modulus.byteLength(),i=_V("sha1").update(fu.alloc(0)).digest(),a=i.length;if(t[0]!==0)throw new Error("decryption error");var n=t.slice(1,a+1),u=t.slice(a+1),c=Bw(n,Cw(u,a)),d=Bw(u,Cw(c,r-a-1));if(RV(i,d.slice(0,a)))throw new Error("decryption error");for(var m=a;d[m]===0;)m++;if(d[m++]!==1)throw new Error("decryption error");return d.slice(m)}function EV(e,t,r){for(var i=t.slice(0,2),a=2,n=0;t[a++]!==0;)if(a>=t.length){n++;break}var u=t.slice(2,a-1);if((i.toString("hex")!=="0002"&&!r||i.toString("hex")!=="0001"&&r)&&n++,u.length<8&&n++,n)throw new Error("decryption error");return t.slice(a)}function RV(e,t){e=fu.from(e),t=fu.from(t);var r=0,i=e.length;e.length!==t.length&&(r++,i=Math.min(e.length,t.length));for(var a=-1;++a<i;)r+=e[a]^t[a];return r}(function(e){e.publicEncrypt=vV,e.privateDecrypt=SV,e.privateEncrypt=function(r,i){return e.publicEncrypt(r,i,!0)},e.publicDecrypt=function(r,i){return e.privateDecrypt(r,i,!0)}})(_4);var Rf={};function Nw(){throw new Error(`secure random number generation not supported by this browser
+use chrome, FireFox or Internet Explorer 11`)}var E4=pt(),kw=Ds,R4=E4.Buffer,A4=E4.kMaxLength,ev=Ye.crypto||Ye.msCrypto,T4=Math.pow(2,32)-1;function O4(e,t){if(typeof e!="number"||e!==e)throw new TypeError("offset must be a number");if(e>T4||e<0)throw new TypeError("offset must be a uint32");if(e>A4||e>t)throw new RangeError("offset out of range")}function I4(e,t,r){if(typeof e!="number"||e!==e)throw new TypeError("size must be a number");if(e>T4||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>A4)throw new RangeError("buffer too small")}ev&&ev.getRandomValues||!we.browser?(Rf.randomFill=AV,Rf.randomFillSync=TV):(Rf.randomFill=Nw,Rf.randomFillSync=Nw);function AV(e,t,r,i){if(!R4.isBuffer(e)&&!(e instanceof Ye.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof t=="function")i=t,t=0,r=e.length;else if(typeof r=="function")i=r,r=e.length-t;else if(typeof i!="function")throw new TypeError('"cb" argument must be a function');return O4(t,e.length),I4(r,t,e.length),P4(e,t,r,i)}function P4(e,t,r,i){if(we.browser){var a=e.buffer,n=new Uint8Array(a,t,r);if(ev.getRandomValues(n),i){we.nextTick(function(){i(null,e)});return}return e}if(i){kw(r,function(c,d){if(c)return i(c);d.copy(e,t),i(null,e)});return}var u=kw(r);return u.copy(e,t),e}function TV(e,t,r){if(typeof t>"u"&&(t=0),!R4.isBuffer(e)&&!(e instanceof Ye.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return O4(t,e.length),r===void 0&&(r=e.length-t),I4(r,t,e.length),P4(e,t,r)}var $w;function C4(){if($w)return ct;$w=1,ct.randomBytes=ct.rng=ct.pseudoRandomBytes=ct.prng=Ds,ct.createHash=ct.Hash=Tu,ct.createHmac=ct.Hmac=CS;var e=Lj,t=Object.keys(e),r=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(t);ct.getHashes=function(){return r};var i=ic;ct.pbkdf2=i.pbkdf2,ct.pbkdf2Sync=i.pbkdf2Sync;var a=$i;ct.Cipher=a.Cipher,ct.createCipher=a.createCipher,ct.Cipheriv=a.Cipheriv,ct.createCipheriv=a.createCipheriv,ct.Decipher=a.Decipher,ct.createDecipher=a.createDecipher,ct.Decipheriv=a.Decipheriv,ct.createDecipheriv=a.createDecipheriv,ct.getCiphers=a.getCiphers,ct.listCiphers=a.listCiphers;var n=dH();ct.DiffieHellmanGroup=n.DiffieHellmanGroup,ct.createDiffieHellmanGroup=n.createDiffieHellmanGroup,ct.getDiffieHellman=n.getDiffieHellman,ct.createDiffieHellman=n.createDiffieHellman,ct.DiffieHellman=n.DiffieHellman;var u=nV();ct.createSign=u.createSign,ct.Sign=u.Sign,ct.createVerify=u.createVerify,ct.Verify=u.Verify,ct.createECDH=aV();var c=_4;ct.publicEncrypt=c.publicEncrypt,ct.privateEncrypt=c.privateEncrypt,ct.publicDecrypt=c.publicDecrypt,ct.privateDecrypt=c.privateDecrypt;var d=Rf;return ct.randomFill=d.randomFill,ct.randomFillSync=d.randomFillSync,ct.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(`
+`))},ct.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},ct}var OV=C4();const WV=Lo(OV);export{jV as $,Zt as A,ol as B,$p as C,Dl as D,a_ as E,jR as F,Lt as G,UV as H,Ii as I,$v as J,Pn as K,wv as L,Ah as M,Mn as N,Fl as O,R_ as P,M2 as Q,S2 as R,BV as S,j5 as T,kV as U,NV as V,LV as W,HR as X,$V as Y,DV as Z,GR as _,mr as a,j8 as a0,V8 as a1,G8 as a2,HV as a3,qV as a4,WV as a5,CV as a6,ke as b,Ye as c,Bs as d,wh as e,Qt as f,ho as g,Eh as h,qf as i,tv as j,tt as k,ft as l,U0 as m,vr as n,Ns as o,K8 as p,Je as q,FV as r,h2 as s,lt as t,Cv as u,Q0 as v,lr as w,si as x,Pv as y,fi as z};
diff --git a/web/settings/assets/vendor-axios-13ef03ae.js b/web/settings/assets/vendor-axios-dc63434e.js
similarity index 99%
rename from web/settings/assets/vendor-axios-13ef03ae.js
rename to web/settings/assets/vendor-axios-dc63434e.js
index 040cb403c3..81b5a601c0 100644
--- a/web/settings/assets/vendor-axios-13ef03ae.js
+++ b/web/settings/assets/vendor-axios-dc63434e.js
@@ -1,3 +1,3 @@
-import{g as ke,b as Ie}from"./vendor-20bb207d.js";function ye(e,t){return function(){return e.apply(t,arguments)}}const{toString:He}=Object.prototype,{getPrototypeOf:te}=Object,M=(e=>t=>{const n=He.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),R=e=>(e=e.toLowerCase(),t=>M(t)===e),q=e=>t=>typeof t===e,{isArray:P}=Array,F=q("undefined");function Me(e){return e!==null&&!F(e)&&e.constructor!==null&&!F(e.constructor)&&b(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const we=R("ArrayBuffer");function qe(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&we(e.buffer),t}const ze=q("string"),b=q("function"),Ee=q("number"),z=e=>e!==null&&typeof e=="object",Ve=e=>e===!0||e===!1,L=e=>{if(M(e)!=="object")return!1;const t=te(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Je=R("Date"),$e=R("File"),We=R("Blob"),ve=R("FileList"),Ke=e=>z(e)&&b(e.pipe),Ge=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||b(e.append)&&((t=M(e))==="formdata"||t==="object"&&b(e.toString)&&e.toString()==="[object FormData]"))},Xe=R("URLSearchParams"),Qe=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function _(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),P(e))for(r=0,s=e.length;r<s;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),i=o.length;let u;for(r=0;r<i;r++)u=o[r],t.call(null,e[u],u,e)}}function be(e,t){t=t.toLowerCase();const n=Object.keys(e);let r=n.length,s;for(;r-- >0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Se=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:ke)(),Oe=e=>!F(e)&&e!==Se;function Q(){const{caseless:e}=Oe(this)&&this||{},t={},n=(r,s)=>{const o=e&&be(t,s)||s;L(t[o])&&L(r)?t[o]=Q(t[o],r):L(r)?t[o]=Q({},r):P(r)?t[o]=r.slice():t[o]=r};for(let r=0,s=arguments.length;r<s;r++)arguments[r]&&_(arguments[r],n);return t}const Ye=(e,t,n,{allOwnKeys:r}={})=>(_(t,(s,o)=>{n&&b(s)?e[o]=ye(s,n):e[o]=s},{allOwnKeys:r}),e),Ze=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),et=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},tt=(e,t,n,r)=>{let s,o,i;const u={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!u[i]&&(t[i]=e[i],u[i]=!0);e=n!==!1&&te(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},nt=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},rt=e=>{if(!e)return null;if(P(e))return e;let t=e.length;if(!Ee(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},st=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&te(Uint8Array)),ot=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},it=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},at=R("HTMLFormElement"),ct=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ie=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ut=R("RegExp"),Re=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};_(n,(s,o)=>{t(s,o,e)!==!1&&(r[o]=s)}),Object.defineProperties(e,r)},lt=e=>{Re(e,(t,n)=>{if(b(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(b(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},ft=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return P(e)?r(e):r(String(e).split(t)),n},dt=()=>{},pt=(e,t)=>(e=+e,Number.isFinite(e)?e:t),W="abcdefghijklmnopqrstuvwxyz",ae="0123456789",Ae={DIGIT:ae,ALPHA:W,ALPHA_DIGIT:W+W.toUpperCase()+ae},ht=(e=16,t=Ae.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function mt(e){return!!(e&&b(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const yt=e=>{const t=new Array(10),n=(r,s)=>{if(z(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[s]=r;const o=P(r)?[]:{};return _(r,(i,u)=>{const d=n(i,s+1);!F(d)&&(o[u]=d)}),t[s]=void 0,o}}return r};return n(e,0)},wt=R("AsyncFunction"),Et=e=>e&&(z(e)||b(e))&&b(e.then)&&b(e.catch),a={isArray:P,isArrayBuffer:we,isBuffer:Me,isFormData:Ge,isArrayBufferView:qe,isString:ze,isNumber:Ee,isBoolean:Ve,isObject:z,isPlainObject:L,isUndefined:F,isDate:Je,isFile:$e,isBlob:We,isRegExp:ut,isFunction:b,isStream:Ke,isURLSearchParams:Xe,isTypedArray:st,isFileList:ve,forEach:_,merge:Q,extend:Ye,trim:Qe,stripBOM:Ze,inherits:et,toFlatObject:tt,kindOf:M,kindOfTest:R,endsWith:nt,toArray:rt,forEachEntry:ot,matchAll:it,isHTMLForm:at,hasOwnProperty:ie,hasOwnProp:ie,reduceDescriptors:Re,freezeMethods:lt,toObjectSet:ft,toCamelCase:ct,noop:dt,toFiniteNumber:pt,findKey:be,global:Se,isContextDefined:Oe,ALPHABET:Ae,generateString:ht,isSpecCompliantForm:mt,toJSONObject:yt,isAsyncFn:wt,isThenable:Et};function m(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s)}a.inherits(m,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:a.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Te=m.prototype,xe={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{xe[e]={value:e}});Object.defineProperties(m,xe);Object.defineProperty(Te,"isAxiosError",{value:!0});m.from=(e,t,n,r,s,o)=>{const i=Object.create(Te);return a.toFlatObject(e,i,function(d){return d!==Error.prototype},u=>u!=="isAxiosError"),m.call(i,e.message,t,n,r,s),i.cause=e,i.name=e.name,o&&Object.assign(i,o),i};const bt=null;function Y(e){return a.isPlainObject(e)||a.isArray(e)}function ge(e){return a.endsWith(e,"[]")?e.slice(0,-2):e}function ce(e,t,n){return e?e.concat(t).map(function(s,o){return s=ge(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function St(e){return a.isArray(e)&&!e.some(Y)}const Ot=a.toFlatObject(a,{},null,function(t){return/^is[A-Z]/.test(t)});function V(e,t,n){if(!a.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=a.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(h,A){return!a.isUndefined(A[h])});const r=n.metaTokens,s=n.visitor||l,o=n.dots,i=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&a.isSpecCompliantForm(t);if(!a.isFunction(s))throw new TypeError("visitor must be a function");function c(f){if(f===null)return"";if(a.isDate(f))return f.toISOString();if(!d&&a.isBlob(f))throw new m("Blob is not supported. Use a Buffer instead.");return a.isArrayBuffer(f)||a.isTypedArray(f)?d&&typeof Blob=="function"?new Blob([f]):Ie.Buffer.from(f):f}function l(f,h,A){let S=f;if(f&&!A&&typeof f=="object"){if(a.endsWith(h,"{}"))h=r?h:h.slice(0,-2),f=JSON.stringify(f);else if(a.isArray(f)&&St(f)||(a.isFileList(f)||a.endsWith(h,"[]"))&&(S=a.toArray(f)))return h=ge(h),S.forEach(function(D,je){!(a.isUndefined(D)||D===null)&&t.append(i===!0?ce([h],je,o):i===null?h:h+"[]",c(D))}),!1}return Y(f)?!0:(t.append(ce(A,h,o),c(f)),!1)}const p=[],E=Object.assign(Ot,{defaultVisitor:l,convertValue:c,isVisitable:Y});function y(f,h){if(!a.isUndefined(f)){if(p.indexOf(f)!==-1)throw Error("Circular reference detected in "+h.join("."));p.push(f),a.forEach(f,function(S,g){(!(a.isUndefined(S)||S===null)&&s.call(t,S,a.isString(g)?g.trim():g,h,E))===!0&&y(S,h?h.concat(g):[g])}),p.pop()}}if(!a.isObject(e))throw new TypeError("data must be an object");return y(e),t}function ue(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function ne(e,t){this._pairs=[],e&&V(e,this,t)}const Ne=ne.prototype;Ne.append=function(t,n){this._pairs.push([t,n])};Ne.toString=function(t){const n=t?function(r){return t.call(this,r,ue)}:ue;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Rt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Pe(e,t,n){if(!t)return e;const r=n&&n.encode||Rt,s=n&&n.serialize;let o;if(s?o=s(t,n):o=a.isURLSearchParams(t)?t.toString():new ne(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class At{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){a.forEach(this.handlers,function(r){r!==null&&t(r)})}}const le=At,Ce={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Tt=typeof URLSearchParams<"u"?URLSearchParams:ne,xt=typeof FormData<"u"?FormData:null,gt=typeof Blob<"u"?Blob:null,Nt=(()=>{let e;return typeof navigator<"u"&&((e=navigator.product)==="ReactNative"||e==="NativeScript"||e==="NS")?!1:typeof window<"u"&&typeof document<"u"})(),Pt=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),O={isBrowser:!0,classes:{URLSearchParams:Tt,FormData:xt,Blob:gt},isStandardBrowserEnv:Nt,isStandardBrowserWebWorkerEnv:Pt,protocols:["http","https","file","blob","url","data"]};function Ct(e,t){return V(e,new O.classes.URLSearchParams,Object.assign({visitor:function(n,r,s,o){return O.isNode&&a.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}function Ft(e){return a.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function _t(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r<s;r++)o=n[r],t[o]=e[o];return t}function Fe(e){function t(n,r,s,o){let i=n[o++];const u=Number.isFinite(+i),d=o>=n.length;return i=!i&&a.isArray(s)?s.length:i,d?(a.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!u):((!s[i]||!a.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&a.isArray(s[i])&&(s[i]=_t(s[i])),!u)}if(a.isFormData(e)&&a.isFunction(e.entries)){const n={};return a.forEachEntry(e,(r,s)=>{t(Ft(r),s,n,0)}),n}return null}const Bt={"Content-Type":void 0};function Dt(e,t,n){if(a.isString(e))try{return(t||JSON.parse)(e),a.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const J={transitional:Ce,adapter:["xhr","http"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=a.isObject(t);if(o&&a.isHTMLForm(t)&&(t=new FormData(t)),a.isFormData(t))return s&&s?JSON.stringify(Fe(t)):t;if(a.isArrayBuffer(t)||a.isBuffer(t)||a.isStream(t)||a.isFile(t)||a.isBlob(t))return t;if(a.isArrayBufferView(t))return t.buffer;if(a.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Ct(t,this.formSerializer).toString();if((u=a.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return V(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Dt(t)):t}],transformResponse:[function(t){const n=this.transitional||J.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(t&&a.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(u){if(i)throw u.name==="SyntaxError"?m.from(u,m.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:O.classes.FormData,Blob:O.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};a.forEach(["delete","get","head"],function(t){J.headers[t]={}});a.forEach(["post","put","patch"],function(t){J.headers[t]=a.merge(Bt)});const re=J,Lt=a.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ut=e=>{const t={};let n,r,s;return e&&e.split(`
+import{g as ke,b as Ie}from"./vendor-94ac8c48.js";function ye(e,t){return function(){return e.apply(t,arguments)}}const{toString:He}=Object.prototype,{getPrototypeOf:te}=Object,M=(e=>t=>{const n=He.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),R=e=>(e=e.toLowerCase(),t=>M(t)===e),q=e=>t=>typeof t===e,{isArray:P}=Array,F=q("undefined");function Me(e){return e!==null&&!F(e)&&e.constructor!==null&&!F(e.constructor)&&b(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const we=R("ArrayBuffer");function qe(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&we(e.buffer),t}const ze=q("string"),b=q("function"),Ee=q("number"),z=e=>e!==null&&typeof e=="object",Ve=e=>e===!0||e===!1,L=e=>{if(M(e)!=="object")return!1;const t=te(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Je=R("Date"),$e=R("File"),We=R("Blob"),ve=R("FileList"),Ke=e=>z(e)&&b(e.pipe),Ge=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||b(e.append)&&((t=M(e))==="formdata"||t==="object"&&b(e.toString)&&e.toString()==="[object FormData]"))},Xe=R("URLSearchParams"),Qe=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function _(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),P(e))for(r=0,s=e.length;r<s;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),i=o.length;let u;for(r=0;r<i;r++)u=o[r],t.call(null,e[u],u,e)}}function be(e,t){t=t.toLowerCase();const n=Object.keys(e);let r=n.length,s;for(;r-- >0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Se=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:ke)(),Oe=e=>!F(e)&&e!==Se;function Q(){const{caseless:e}=Oe(this)&&this||{},t={},n=(r,s)=>{const o=e&&be(t,s)||s;L(t[o])&&L(r)?t[o]=Q(t[o],r):L(r)?t[o]=Q({},r):P(r)?t[o]=r.slice():t[o]=r};for(let r=0,s=arguments.length;r<s;r++)arguments[r]&&_(arguments[r],n);return t}const Ye=(e,t,n,{allOwnKeys:r}={})=>(_(t,(s,o)=>{n&&b(s)?e[o]=ye(s,n):e[o]=s},{allOwnKeys:r}),e),Ze=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),et=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},tt=(e,t,n,r)=>{let s,o,i;const u={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!u[i]&&(t[i]=e[i],u[i]=!0);e=n!==!1&&te(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},nt=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},rt=e=>{if(!e)return null;if(P(e))return e;let t=e.length;if(!Ee(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},st=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&te(Uint8Array)),ot=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},it=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},at=R("HTMLFormElement"),ct=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ie=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ut=R("RegExp"),Re=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};_(n,(s,o)=>{t(s,o,e)!==!1&&(r[o]=s)}),Object.defineProperties(e,r)},lt=e=>{Re(e,(t,n)=>{if(b(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(b(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},ft=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return P(e)?r(e):r(String(e).split(t)),n},dt=()=>{},pt=(e,t)=>(e=+e,Number.isFinite(e)?e:t),W="abcdefghijklmnopqrstuvwxyz",ae="0123456789",Ae={DIGIT:ae,ALPHA:W,ALPHA_DIGIT:W+W.toUpperCase()+ae},ht=(e=16,t=Ae.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function mt(e){return!!(e&&b(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const yt=e=>{const t=new Array(10),n=(r,s)=>{if(z(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[s]=r;const o=P(r)?[]:{};return _(r,(i,u)=>{const d=n(i,s+1);!F(d)&&(o[u]=d)}),t[s]=void 0,o}}return r};return n(e,0)},wt=R("AsyncFunction"),Et=e=>e&&(z(e)||b(e))&&b(e.then)&&b(e.catch),a={isArray:P,isArrayBuffer:we,isBuffer:Me,isFormData:Ge,isArrayBufferView:qe,isString:ze,isNumber:Ee,isBoolean:Ve,isObject:z,isPlainObject:L,isUndefined:F,isDate:Je,isFile:$e,isBlob:We,isRegExp:ut,isFunction:b,isStream:Ke,isURLSearchParams:Xe,isTypedArray:st,isFileList:ve,forEach:_,merge:Q,extend:Ye,trim:Qe,stripBOM:Ze,inherits:et,toFlatObject:tt,kindOf:M,kindOfTest:R,endsWith:nt,toArray:rt,forEachEntry:ot,matchAll:it,isHTMLForm:at,hasOwnProperty:ie,hasOwnProp:ie,reduceDescriptors:Re,freezeMethods:lt,toObjectSet:ft,toCamelCase:ct,noop:dt,toFiniteNumber:pt,findKey:be,global:Se,isContextDefined:Oe,ALPHABET:Ae,generateString:ht,isSpecCompliantForm:mt,toJSONObject:yt,isAsyncFn:wt,isThenable:Et};function m(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s)}a.inherits(m,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:a.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Te=m.prototype,xe={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{xe[e]={value:e}});Object.defineProperties(m,xe);Object.defineProperty(Te,"isAxiosError",{value:!0});m.from=(e,t,n,r,s,o)=>{const i=Object.create(Te);return a.toFlatObject(e,i,function(d){return d!==Error.prototype},u=>u!=="isAxiosError"),m.call(i,e.message,t,n,r,s),i.cause=e,i.name=e.name,o&&Object.assign(i,o),i};const bt=null;function Y(e){return a.isPlainObject(e)||a.isArray(e)}function ge(e){return a.endsWith(e,"[]")?e.slice(0,-2):e}function ce(e,t,n){return e?e.concat(t).map(function(s,o){return s=ge(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function St(e){return a.isArray(e)&&!e.some(Y)}const Ot=a.toFlatObject(a,{},null,function(t){return/^is[A-Z]/.test(t)});function V(e,t,n){if(!a.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=a.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(h,A){return!a.isUndefined(A[h])});const r=n.metaTokens,s=n.visitor||l,o=n.dots,i=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&a.isSpecCompliantForm(t);if(!a.isFunction(s))throw new TypeError("visitor must be a function");function c(f){if(f===null)return"";if(a.isDate(f))return f.toISOString();if(!d&&a.isBlob(f))throw new m("Blob is not supported. Use a Buffer instead.");return a.isArrayBuffer(f)||a.isTypedArray(f)?d&&typeof Blob=="function"?new Blob([f]):Ie.Buffer.from(f):f}function l(f,h,A){let S=f;if(f&&!A&&typeof f=="object"){if(a.endsWith(h,"{}"))h=r?h:h.slice(0,-2),f=JSON.stringify(f);else if(a.isArray(f)&&St(f)||(a.isFileList(f)||a.endsWith(h,"[]"))&&(S=a.toArray(f)))return h=ge(h),S.forEach(function(D,je){!(a.isUndefined(D)||D===null)&&t.append(i===!0?ce([h],je,o):i===null?h:h+"[]",c(D))}),!1}return Y(f)?!0:(t.append(ce(A,h,o),c(f)),!1)}const p=[],E=Object.assign(Ot,{defaultVisitor:l,convertValue:c,isVisitable:Y});function y(f,h){if(!a.isUndefined(f)){if(p.indexOf(f)!==-1)throw Error("Circular reference detected in "+h.join("."));p.push(f),a.forEach(f,function(S,g){(!(a.isUndefined(S)||S===null)&&s.call(t,S,a.isString(g)?g.trim():g,h,E))===!0&&y(S,h?h.concat(g):[g])}),p.pop()}}if(!a.isObject(e))throw new TypeError("data must be an object");return y(e),t}function ue(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function ne(e,t){this._pairs=[],e&&V(e,this,t)}const Ne=ne.prototype;Ne.append=function(t,n){this._pairs.push([t,n])};Ne.toString=function(t){const n=t?function(r){return t.call(this,r,ue)}:ue;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Rt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Pe(e,t,n){if(!t)return e;const r=n&&n.encode||Rt,s=n&&n.serialize;let o;if(s?o=s(t,n):o=a.isURLSearchParams(t)?t.toString():new ne(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class At{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){a.forEach(this.handlers,function(r){r!==null&&t(r)})}}const le=At,Ce={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Tt=typeof URLSearchParams<"u"?URLSearchParams:ne,xt=typeof FormData<"u"?FormData:null,gt=typeof Blob<"u"?Blob:null,Nt=(()=>{let e;return typeof navigator<"u"&&((e=navigator.product)==="ReactNative"||e==="NativeScript"||e==="NS")?!1:typeof window<"u"&&typeof document<"u"})(),Pt=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),O={isBrowser:!0,classes:{URLSearchParams:Tt,FormData:xt,Blob:gt},isStandardBrowserEnv:Nt,isStandardBrowserWebWorkerEnv:Pt,protocols:["http","https","file","blob","url","data"]};function Ct(e,t){return V(e,new O.classes.URLSearchParams,Object.assign({visitor:function(n,r,s,o){return O.isNode&&a.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}function Ft(e){return a.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function _t(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r<s;r++)o=n[r],t[o]=e[o];return t}function Fe(e){function t(n,r,s,o){let i=n[o++];const u=Number.isFinite(+i),d=o>=n.length;return i=!i&&a.isArray(s)?s.length:i,d?(a.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!u):((!s[i]||!a.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&a.isArray(s[i])&&(s[i]=_t(s[i])),!u)}if(a.isFormData(e)&&a.isFunction(e.entries)){const n={};return a.forEachEntry(e,(r,s)=>{t(Ft(r),s,n,0)}),n}return null}const Bt={"Content-Type":void 0};function Dt(e,t,n){if(a.isString(e))try{return(t||JSON.parse)(e),a.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const J={transitional:Ce,adapter:["xhr","http"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=a.isObject(t);if(o&&a.isHTMLForm(t)&&(t=new FormData(t)),a.isFormData(t))return s&&s?JSON.stringify(Fe(t)):t;if(a.isArrayBuffer(t)||a.isBuffer(t)||a.isStream(t)||a.isFile(t)||a.isBlob(t))return t;if(a.isArrayBufferView(t))return t.buffer;if(a.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Ct(t,this.formSerializer).toString();if((u=a.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return V(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Dt(t)):t}],transformResponse:[function(t){const n=this.transitional||J.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(t&&a.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(u){if(i)throw u.name==="SyntaxError"?m.from(u,m.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:O.classes.FormData,Blob:O.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};a.forEach(["delete","get","head"],function(t){J.headers[t]={}});a.forEach(["post","put","patch"],function(t){J.headers[t]=a.merge(Bt)});const re=J,Lt=a.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ut=e=>{const t={};let n,r,s;return e&&e.split(`
 `).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Lt[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},fe=Symbol("internals");function C(e){return e&&String(e).trim().toLowerCase()}function U(e){return e===!1||e==null?e:a.isArray(e)?e.map(U):String(e)}function jt(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const kt=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function v(e,t,n,r,s){if(a.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!a.isString(t)){if(a.isString(r))return t.indexOf(r)!==-1;if(a.isRegExp(r))return r.test(t)}}function It(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Ht(e,t){const n=a.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}class ${constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(u,d,c){const l=C(d);if(!l)throw new Error("header name must be a non-empty string");const p=a.findKey(s,l);(!p||s[p]===void 0||c===!0||c===void 0&&s[p]!==!1)&&(s[p||d]=U(u))}const i=(u,d)=>a.forEach(u,(c,l)=>o(c,l,d));return a.isPlainObject(t)||t instanceof this.constructor?i(t,n):a.isString(t)&&(t=t.trim())&&!kt(t)?i(Ut(t),n):t!=null&&o(n,t,r),this}get(t,n){if(t=C(t),t){const r=a.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return jt(s);if(a.isFunction(n))return n.call(this,s,r);if(a.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=C(t),t){const r=a.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||v(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=C(i),i){const u=a.findKey(r,i);u&&(!n||v(r,r[u],u,n))&&(delete r[u],s=!0)}}return a.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||v(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return a.forEach(this,(s,o)=>{const i=a.findKey(r,o);if(i){n[i]=U(s),delete n[o];return}const u=t?It(o):String(o).trim();u!==o&&delete n[o],n[u]=U(s),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return a.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&a.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(`
 `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[fe]=this[fe]={accessors:{}}).accessors,s=this.prototype;function o(i){const u=C(i);r[u]||(Ht(s,i),r[u]=!0)}return a.isArray(t)?t.forEach(o):o(t),this}}$.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);a.freezeMethods($.prototype);a.freezeMethods($);const T=$;function K(e,t){const n=this||re,r=t||n,s=T.from(r.headers);let o=r.data;return a.forEach(e,function(u){o=u.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function _e(e){return!!(e&&e.__CANCEL__)}function B(e,t,n){m.call(this,e??"canceled",m.ERR_CANCELED,t,n),this.name="CanceledError"}a.inherits(B,m,{__CANCEL__:!0});function Mt(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new m("Request failed with status code "+n.status,[m.ERR_BAD_REQUEST,m.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const qt=O.isStandardBrowserEnv?function(){return{write:function(n,r,s,o,i,u){const d=[];d.push(n+"="+encodeURIComponent(r)),a.isNumber(s)&&d.push("expires="+new Date(s).toGMTString()),a.isString(o)&&d.push("path="+o),a.isString(i)&&d.push("domain="+i),u===!0&&d.push("secure"),document.cookie=d.join("; ")},read:function(n){const r=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function zt(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Vt(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function Be(e,t){return e&&!zt(t)?Vt(e,t):t}const Jt=O.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let r;function s(o){let i=o;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=s(window.location.href),function(i){const u=a.isString(i)?s(i):i;return u.protocol===r.protocol&&u.host===r.host}}():function(){return function(){return!0}}();function $t(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Wt(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(d){const c=Date.now(),l=r[o];i||(i=c),n[s]=d,r[s]=c;let p=o,E=0;for(;p!==s;)E+=n[p++],p=p%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),c-i<t)return;const y=l&&c-l;return y?Math.round(E*1e3/y):void 0}}function de(e,t){let n=0;const r=Wt(50,250);return s=>{const o=s.loaded,i=s.lengthComputable?s.total:void 0,u=o-n,d=r(u),c=o<=i;n=o;const l={loaded:o,total:i,progress:i?o/i:void 0,bytes:u,rate:d||void 0,estimated:d&&i&&c?(i-o)/d:void 0,event:s};l[t?"download":"upload"]=!0,e(l)}}const vt=typeof XMLHttpRequest<"u",Kt=vt&&function(e){return new Promise(function(n,r){let s=e.data;const o=T.from(e.headers).normalize(),i=e.responseType;let u;function d(){e.cancelToken&&e.cancelToken.unsubscribe(u),e.signal&&e.signal.removeEventListener("abort",u)}a.isFormData(s)&&(O.isStandardBrowserEnv||O.isStandardBrowserWebWorkerEnv?o.setContentType(!1):o.setContentType("multipart/form-data;",!1));let c=new XMLHttpRequest;if(e.auth){const y=e.auth.username||"",f=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(y+":"+f))}const l=Be(e.baseURL,e.url);c.open(e.method.toUpperCase(),Pe(l,e.params,e.paramsSerializer),!0),c.timeout=e.timeout;function p(){if(!c)return;const y=T.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders()),h={data:!i||i==="text"||i==="json"?c.responseText:c.response,status:c.status,statusText:c.statusText,headers:y,config:e,request:c};Mt(function(S){n(S),d()},function(S){r(S),d()},h),c=null}if("onloadend"in c?c.onloadend=p:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(p)},c.onabort=function(){c&&(r(new m("Request aborted",m.ECONNABORTED,e,c)),c=null)},c.onerror=function(){r(new m("Network Error",m.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let f=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const h=e.transitional||Ce;e.timeoutErrorMessage&&(f=e.timeoutErrorMessage),r(new m(f,h.clarifyTimeoutError?m.ETIMEDOUT:m.ECONNABORTED,e,c)),c=null},O.isStandardBrowserEnv){const y=(e.withCredentials||Jt(l))&&e.xsrfCookieName&&qt.read(e.xsrfCookieName);y&&o.set(e.xsrfHeaderName,y)}s===void 0&&o.setContentType(null),"setRequestHeader"in c&&a.forEach(o.toJSON(),function(f,h){c.setRequestHeader(h,f)}),a.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),i&&i!=="json"&&(c.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&c.addEventListener("progress",de(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",de(e.onUploadProgress)),(e.cancelToken||e.signal)&&(u=y=>{c&&(r(!y||y.type?new B(null,e,c):y),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(u),e.signal&&(e.signal.aborted?u():e.signal.addEventListener("abort",u)));const E=$t(l);if(E&&O.protocols.indexOf(E)===-1){r(new m("Unsupported protocol "+E+":",m.ERR_BAD_REQUEST,e));return}c.send(s||null)})},j={http:bt,xhr:Kt};a.forEach(j,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Gt={getAdapter:e=>{e=a.isArray(e)?e:[e];const{length:t}=e;let n,r;for(let s=0;s<t&&(n=e[s],!(r=a.isString(n)?j[n.toLowerCase()]:n));s++);if(!r)throw r===!1?new m(`Adapter ${n} is not supported by the environment`,"ERR_NOT_SUPPORT"):new Error(a.hasOwnProp(j,n)?`Adapter '${n}' is not available in the build`:`Unknown adapter '${n}'`);if(!a.isFunction(r))throw new TypeError("adapter is not a function");return r},adapters:j};function G(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new B(null,e)}function pe(e){return G(e),e.headers=T.from(e.headers),e.data=K.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Gt.getAdapter(e.adapter||re.adapter)(e).then(function(r){return G(e),r.data=K.call(e,e.transformResponse,r),r.headers=T.from(r.headers),r},function(r){return _e(r)||(G(e),r&&r.response&&(r.response.data=K.call(e,e.transformResponse,r.response),r.response.headers=T.from(r.response.headers))),Promise.reject(r)})}const he=e=>e instanceof T?e.toJSON():e;function N(e,t){t=t||{};const n={};function r(c,l,p){return a.isPlainObject(c)&&a.isPlainObject(l)?a.merge.call({caseless:p},c,l):a.isPlainObject(l)?a.merge({},l):a.isArray(l)?l.slice():l}function s(c,l,p){if(a.isUndefined(l)){if(!a.isUndefined(c))return r(void 0,c,p)}else return r(c,l,p)}function o(c,l){if(!a.isUndefined(l))return r(void 0,l)}function i(c,l){if(a.isUndefined(l)){if(!a.isUndefined(c))return r(void 0,c)}else return r(void 0,l)}function u(c,l,p){if(p in t)return r(c,l);if(p in e)return r(void 0,c)}const d={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:u,headers:(c,l)=>s(he(c),he(l),!0)};return a.forEach(Object.keys(Object.assign({},e,t)),function(l){const p=d[l]||s,E=p(e[l],t[l],l);a.isUndefined(E)&&p!==u||(n[l]=E)}),n}const De="1.4.0",se={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{se[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const me={};se.transitional=function(t,n,r){function s(o,i){return"[Axios v"+De+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,u)=>{if(t===!1)throw new m(s(i," has been removed"+(n?" in "+n:"")),m.ERR_DEPRECATED);return n&&!me[i]&&(me[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,u):!0}};function Xt(e,t,n){if(typeof e!="object")throw new m("options must be an object",m.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const u=e[o],d=u===void 0||i(u,o,e);if(d!==!0)throw new m("option "+o+" must be "+d,m.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new m("Unknown option "+o,m.ERR_BAD_OPTION)}}const Z={assertOptions:Xt,validators:se},x=Z.validators;class I{constructor(t){this.defaults=t,this.interceptors={request:new le,response:new le}}request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=N(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Z.assertOptions(r,{silentJSONParsing:x.transitional(x.boolean),forcedJSONParsing:x.transitional(x.boolean),clarifyTimeoutError:x.transitional(x.boolean)},!1),s!=null&&(a.isFunction(s)?n.paramsSerializer={serialize:s}:Z.assertOptions(s,{encode:x.function,serialize:x.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i;i=o&&a.merge(o.common,o[n.method]),i&&a.forEach(["delete","get","head","post","put","patch","common"],f=>{delete o[f]}),n.headers=T.concat(i,o);const u=[];let d=!0;this.interceptors.request.forEach(function(h){typeof h.runWhen=="function"&&h.runWhen(n)===!1||(d=d&&h.synchronous,u.unshift(h.fulfilled,h.rejected))});const c=[];this.interceptors.response.forEach(function(h){c.push(h.fulfilled,h.rejected)});let l,p=0,E;if(!d){const f=[pe.bind(this),void 0];for(f.unshift.apply(f,u),f.push.apply(f,c),E=f.length,l=Promise.resolve(n);p<E;)l=l.then(f[p++],f[p++]);return l}E=u.length;let y=n;for(p=0;p<E;){const f=u[p++],h=u[p++];try{y=f(y)}catch(A){h.call(this,A);break}}try{l=pe.call(this,y)}catch(f){return Promise.reject(f)}for(p=0,E=c.length;p<E;)l=l.then(c[p++],c[p++]);return l}getUri(t){t=N(this.defaults,t);const n=Be(t.baseURL,t.url);return Pe(n,t.params,t.paramsSerializer)}}a.forEach(["delete","get","head","options"],function(t){I.prototype[t]=function(n,r){return this.request(N(r||{},{method:t,url:n,data:(r||{}).data}))}});a.forEach(["post","put","patch"],function(t){function n(r){return function(o,i,u){return this.request(N(u||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:i}))}}I.prototype[t]=n(),I.prototype[t+"Form"]=n(!0)});const k=I;class oe{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});const r=this;this.promise.then(s=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(u=>{r.subscribe(u),o=u}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,u){r.reason||(r.reason=new B(o,i,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new oe(function(s){t=s}),cancel:t}}}const Qt=oe;function Yt(e){return function(n){return e.apply(null,n)}}function Zt(e){return a.isObject(e)&&e.isAxiosError===!0}const ee={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ee).forEach(([e,t])=>{ee[t]=e});const en=ee;function Le(e){const t=new k(e),n=ye(k.prototype.request,t);return a.extend(n,k.prototype,t,{allOwnKeys:!0}),a.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Le(N(e,s))},n}const w=Le(re);w.Axios=k;w.CanceledError=B;w.CancelToken=Qt;w.isCancel=_e;w.VERSION=De;w.toFormData=V;w.AxiosError=m;w.Cancel=w.CanceledError;w.all=function(t){return Promise.all(t)};w.spread=Yt;w.isAxiosError=Zt;w.mergeConfig=N;w.AxiosHeaders=T;w.formToJSON=e=>Fe(a.isHTMLForm(e)?new FormData(e):e);w.HttpStatusCode=en;w.default=w;const cn=w;function H(e){return H=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},H(e)}function X(e,t){if(!e.vueAxiosInstalled){var n=Ue(t)?rn(t):t;if(sn(n)){var r=on(e);if(r){var s=r<3?tn:nn;Object.keys(n).forEach(function(o){s(e,o,n[o])}),e.vueAxiosInstalled=!0}else console.error("[vue-axios] unknown Vue version")}else console.error("[vue-axios] configuration is invalid, expected options are either <axios_instance> or { <registration_key>: <axios_instance> }")}}function tn(e,t,n){Object.defineProperty(e.prototype,t,{get:function(){return n}}),e[t]=n}function nn(e,t,n){e.config.globalProperties[t]=n,e[t]=n}function Ue(e){return e&&typeof e.get=="function"&&typeof e.post=="function"}function rn(e){return{axios:e,$http:e}}function sn(e){return H(e)==="object"&&Object.keys(e).every(function(t){return Ue(e[t])})}function on(e){return e&&e.version&&Number(e.version.split(".")[0])}(typeof exports>"u"?"undefined":H(exports))=="object"?module.exports=X:typeof define=="function"&&define.amd?define([],function(){return X}):window.Vue&&window.axios&&window.Vue.use&&Vue.use(X,window.axios);export{cn as a,X as p};
diff --git a/web/settings/assets/vendor-bootstrap-d275de6c.js b/web/settings/assets/vendor-bootstrap-9f620114.js
similarity index 99%
rename from web/settings/assets/vendor-bootstrap-d275de6c.js
rename to web/settings/assets/vendor-bootstrap-9f620114.js
index 904ff0d045..b682d45963 100644
--- a/web/settings/assets/vendor-bootstrap-d275de6c.js
+++ b/web/settings/assets/vendor-bootstrap-9f620114.js
@@ -1,4 +1,4 @@
-import{r as or,c as ur}from"./vendor-20bb207d.js";import{r as fr}from"./vendor-jquery-89b63fca.js";var Ft={exports:{}};/*!
+import{r as or,c as ur}from"./vendor-94ac8c48.js";import{r as fr}from"./vendor-jquery-f7104ff8.js";var Ft={exports:{}};/*!
   * Bootstrap v4.6.2 (https://getbootstrap.com/)
   * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
diff --git a/web/settings/assets/vendor-chartjs-93103a11.js b/web/settings/assets/vendor-chartjs-dd3fd71e.js
similarity index 99%
rename from web/settings/assets/vendor-chartjs-93103a11.js
rename to web/settings/assets/vendor-chartjs-dd3fd71e.js
index a5c221f7c9..6234b003dc 100644
--- a/web/settings/assets/vendor-chartjs-93103a11.js
+++ b/web/settings/assets/vendor-chartjs-dd3fd71e.js
@@ -1,4 +1,4 @@
-var io=Object.defineProperty;var no=(i,t,e)=>t in i?io(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var S=(i,t,e)=>(no(i,typeof t!="symbol"?t+"":t,e),e);import{C as Zn,d as Qn,s as Jn,h as ts,v as so,a as oo,o as ro,e as ao,w as lo,t as ti,i as es,H as Zt}from"./vendor-20bb207d.js";import{D as lt}from"./vendor-luxon-1af9332f.js";/*!
+var io=Object.defineProperty;var no=(i,t,e)=>t in i?io(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var S=(i,t,e)=>(no(i,typeof t!="symbol"?t+"":t,e),e);import{C as Zn,d as Qn,s as Jn,h as ts,v as so,a as oo,o as ro,e as ao,w as lo,t as ti,i as es,H as Zt}from"./vendor-94ac8c48.js";import{D as lt}from"./vendor-luxon-1af9332f.js";/*!
  * Chart.js v4.3.0
  * https://www.chartjs.org
  * (c) 2023 Chart.js Contributors
diff --git a/web/settings/assets/vendor-fortawesome-838df0c9.js b/web/settings/assets/vendor-fortawesome-ad83e535.js
similarity index 99%
rename from web/settings/assets/vendor-fortawesome-838df0c9.js
rename to web/settings/assets/vendor-fortawesome-ad83e535.js
index f9958de964..50babbbdbd 100644
--- a/web/settings/assets/vendor-fortawesome-838df0c9.js
+++ b/web/settings/assets/vendor-fortawesome-ad83e535.js
@@ -1,4 +1,4 @@
-import{g as ce,d as _e,f as U,w as bn,h as Te}from"./vendor-20bb207d.js";function fe(a,e){var n=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter(function(r){return Object.getOwnPropertyDescriptor(a,r).enumerable})),n.push.apply(n,t)}return n}function u(a){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?fe(Object(n),!0).forEach(function(t){A(a,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)):fe(Object(n)).forEach(function(t){Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(n,t))})}return a}function wa(a){"@babel/helpers - typeof";return wa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wa(a)}function gn(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}function le(a,e){for(var n=0;n<e.length;n++){var t=e[n];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(a,t.key,t)}}function hn(a,e,n){return e&&le(a.prototype,e),n&&le(a,n),Object.defineProperty(a,"prototype",{writable:!1}),a}function A(a,e,n){return e in a?Object.defineProperty(a,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):a[e]=n,a}function qa(a,e){return xn(a)||wn(a,e)||Fe(a,e)||An()}function ca(a){return yn(a)||kn(a)||Fe(a)||zn()}function yn(a){if(Array.isArray(a))return _a(a)}function xn(a){if(Array.isArray(a))return a}function kn(a){if(typeof Symbol<"u"&&a[Symbol.iterator]!=null||a["@@iterator"]!=null)return Array.from(a)}function wn(a,e){var n=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(n!=null){var t=[],r=!0,i=!1,o,s;try{for(n=n.call(a);!(r=(o=n.next()).done)&&(t.push(o.value),!(e&&t.length===e));r=!0);}catch(c){i=!0,s=c}finally{try{!r&&n.return!=null&&n.return()}finally{if(i)throw s}}return t}}function Fe(a,e){if(a){if(typeof a=="string")return _a(a,e);var n=Object.prototype.toString.call(a).slice(8,-1);if(n==="Object"&&a.constructor&&(n=a.constructor.name),n==="Map"||n==="Set")return Array.from(a);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _a(a,e)}}function _a(a,e){(e==null||e>a.length)&&(e=a.length);for(var n=0,t=new Array(e);n<e;n++)t[n]=a[n];return t}function zn(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+import{g as ce,d as _e,f as U,w as bn,h as Te}from"./vendor-94ac8c48.js";function fe(a,e){var n=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter(function(r){return Object.getOwnPropertyDescriptor(a,r).enumerable})),n.push.apply(n,t)}return n}function u(a){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?fe(Object(n),!0).forEach(function(t){A(a,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)):fe(Object(n)).forEach(function(t){Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(n,t))})}return a}function wa(a){"@babel/helpers - typeof";return wa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wa(a)}function gn(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}function le(a,e){for(var n=0;n<e.length;n++){var t=e[n];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(a,t.key,t)}}function hn(a,e,n){return e&&le(a.prototype,e),n&&le(a,n),Object.defineProperty(a,"prototype",{writable:!1}),a}function A(a,e,n){return e in a?Object.defineProperty(a,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):a[e]=n,a}function qa(a,e){return xn(a)||wn(a,e)||Fe(a,e)||An()}function ca(a){return yn(a)||kn(a)||Fe(a)||zn()}function yn(a){if(Array.isArray(a))return _a(a)}function xn(a){if(Array.isArray(a))return a}function kn(a){if(typeof Symbol<"u"&&a[Symbol.iterator]!=null||a["@@iterator"]!=null)return Array.from(a)}function wn(a,e){var n=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(n!=null){var t=[],r=!0,i=!1,o,s;try{for(n=n.call(a);!(r=(o=n.next()).done)&&(t.push(o.value),!(e&&t.length===e));r=!0);}catch(c){i=!0,s=c}finally{try{!r&&n.return!=null&&n.return()}finally{if(i)throw s}}return t}}function Fe(a,e){if(a){if(typeof a=="string")return _a(a,e);var n=Object.prototype.toString.call(a).slice(8,-1);if(n==="Object"&&a.constructor&&(n=a.constructor.name),n==="Map"||n==="Set")return Array.from(a);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _a(a,e)}}function _a(a,e){(e==null||e>a.length)&&(e=a.length);for(var n=0,t=new Array(e);n<e;n++)t[n]=a[n];return t}function zn(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
 In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function An(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
 In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var ue=function(){},Ka={},Re={},De=null,je={mark:ue,measure:ue};try{typeof window<"u"&&(Ka=window),typeof document<"u"&&(Re=document),typeof MutationObserver<"u"&&(De=MutationObserver),typeof performance<"u"&&(je=performance)}catch{}var Cn=Ka.navigator||{},me=Cn.userAgent,ve=me===void 0?"":me,j=Ka,x=Re,de=De,ua=je;j.document;var F=!!x.documentElement&&!!x.head&&typeof x.addEventListener=="function"&&typeof x.createElement=="function",$e=~ve.indexOf("MSIE")||~ve.indexOf("Trident/"),ma,va,da,pa,ba,I="___FONT_AWESOME___",Ta=16,Ye="fa",Ue="svg-inline--fa",G="data-fa-i2svg",Fa="data-fa-pseudo-element",Hn="data-fa-pseudo-element-pending",Qa="data-prefix",Za="data-icon",pe="fontawesome-i2svg",Mn="async",Sn=["HTML","HEAD","STYLE","SCRIPT"],Be=function(){try{return!1}catch{return!1}}(),y="classic",k="sharp",Ja=[y,k];function fa(a){return new Proxy(a,{get:function(n,t){return t in n?n[t]:n[y]}})}var ta=fa((ma={},A(ma,y,{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit"}),A(ma,k,{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light"}),ma)),ra=fa((va={},A(va,y,{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"}),A(va,k,{solid:"fass",regular:"fasr",light:"fasl"}),va)),ia=fa((da={},A(da,y,{fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"}),A(da,k,{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light"}),da)),On=fa((pa={},A(pa,y,{"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"}),A(pa,k,{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl"}),pa)),Nn=/fa(s|r|l|t|d|b|k|ss|sr|sl)?[\-\ ]/,We="fa-layers-text",Vn=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,Ln=fa((ba={},A(ba,y,{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"}),A(ba,k,{900:"fass",400:"fasr",300:"fasl"}),ba)),Ge=[1,2,3,4,5,6,7,8,9,10],Pn=Ge.concat([11,12,13,14,15,16,17,18,19,20]),En=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],B={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},oa=new Set;Object.keys(ra[y]).map(oa.add.bind(oa));Object.keys(ra[k]).map(oa.add.bind(oa));var In=[].concat(Ja,ca(oa),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",B.GROUP,B.SWAP_OPACITY,B.PRIMARY,B.SECONDARY]).concat(Ge.map(function(a){return"".concat(a,"x")})).concat(Pn.map(function(a){return"w-".concat(a)})),ea=j.FontAwesomeConfig||{};function _n(a){var e=x.querySelector("script["+a+"]");if(e)return e.getAttribute(a)}function Tn(a){return a===""?!0:a==="false"?!1:a==="true"?!0:a}if(x&&typeof x.querySelector=="function"){var Fn=[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];Fn.forEach(function(a){var e=qa(a,2),n=e[0],t=e[1],r=Tn(_n(n));r!=null&&(ea[t]=r)})}var Xe={styleDefault:"solid",familyDefault:"classic",cssPrefix:Ye,replacementClass:Ue,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};ea.familyPrefix&&(ea.cssPrefix=ea.familyPrefix);var Z=u(u({},Xe),ea);Z.autoReplaceSvg||(Z.observeMutations=!1);var m={};Object.keys(Xe).forEach(function(a){Object.defineProperty(m,a,{enumerable:!0,set:function(n){Z[a]=n,na.forEach(function(t){return t(m)})},get:function(){return Z[a]}})});Object.defineProperty(m,"familyPrefix",{enumerable:!0,set:function(e){Z.cssPrefix=e,na.forEach(function(n){return n(m)})},get:function(){return Z.cssPrefix}});j.FontAwesomeConfig=m;var na=[];function Rn(a){return na.push(a),function(){na.splice(na.indexOf(a),1)}}var D=Ta,P={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function Dn(a){if(!(!a||!F)){var e=x.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=a;for(var n=x.head.childNodes,t=null,r=n.length-1;r>-1;r--){var i=n[r],o=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(t=i)}return x.head.insertBefore(e,t),a}}var jn="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function sa(){for(var a=12,e="";a-- >0;)e+=jn[Math.random()*62|0];return e}function J(a){for(var e=[],n=(a||[]).length>>>0;n--;)e[n]=a[n];return e}function ae(a){return a.classList?J(a.classList):(a.getAttribute("class")||"").split(" ").filter(function(e){return e})}function qe(a){return"".concat(a).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function $n(a){return Object.keys(a||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(qe(a[n]),'" ')},"").trim()}function Ha(a){return Object.keys(a||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(a[n].trim(),";")},"")}function ee(a){return a.size!==P.size||a.x!==P.x||a.y!==P.y||a.rotate!==P.rotate||a.flipX||a.flipY}function Yn(a){var e=a.transform,n=a.containerWidth,t=a.iconWidth,r={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(e.x*32,", ").concat(e.y*32,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),s="rotate(".concat(e.rotate," 0 0)"),c={transform:"".concat(i," ").concat(o," ").concat(s)},l={transform:"translate(".concat(t/2*-1," -256)")};return{outer:r,inner:c,path:l}}function Un(a){var e=a.transform,n=a.width,t=n===void 0?Ta:n,r=a.height,i=r===void 0?Ta:r,o=a.startCentered,s=o===void 0?!1:o,c="";return s&&$e?c+="translate(".concat(e.x/D-t/2,"em, ").concat(e.y/D-i/2,"em) "):s?c+="translate(calc(-50% + ".concat(e.x/D,"em), calc(-50% + ").concat(e.y/D,"em)) "):c+="translate(".concat(e.x/D,"em, ").concat(e.y/D,"em) "),c+="scale(".concat(e.size/D*(e.flipX?-1:1),", ").concat(e.size/D*(e.flipY?-1:1),") "),c+="rotate(".concat(e.rotate,"deg) "),c}var Bn=`:root, :host {
   --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";
diff --git a/web/settings/assets/vendor-jquery-89b63fca.js b/web/settings/assets/vendor-jquery-f7104ff8.js
similarity index 99%
rename from web/settings/assets/vendor-jquery-89b63fca.js
rename to web/settings/assets/vendor-jquery-f7104ff8.js
index d6f94d8b87..eeb956e359 100644
--- a/web/settings/assets/vendor-jquery-89b63fca.js
+++ b/web/settings/assets/vendor-jquery-f7104ff8.js
@@ -1,4 +1,4 @@
-import{c as Fr}from"./vendor-20bb207d.js";var Mt={exports:{}};/*!
+import{c as Fr}from"./vendor-94ac8c48.js";var Mt={exports:{}};/*!
  * jQuery JavaScript Library v3.7.0
  * https://jquery.com/
  *
diff --git a/web/settings/assets/vendor-sortablejs-ad1d2cc8.js b/web/settings/assets/vendor-sortablejs-dbc23470.js
similarity index 99%
rename from web/settings/assets/vendor-sortablejs-ad1d2cc8.js
rename to web/settings/assets/vendor-sortablejs-dbc23470.js
index bc08f6aa4b..e99664398a 100644
--- a/web/settings/assets/vendor-sortablejs-ad1d2cc8.js
+++ b/web/settings/assets/vendor-sortablejs-dbc23470.js
@@ -1,4 +1,4 @@
-import{j as Ue}from"./vendor-20bb207d.js";/**!
+import{j as Ue}from"./vendor-94ac8c48.js";/**!
  * Sortable 1.14.0
  * @author	RubaXa   <trash@rubaxa.org>
  * @author	owenm    <owen23355@gmail.com>
diff --git a/web/settings/index.html b/web/settings/index.html
index 6d657d7b79..1c31bee22d 100644
--- a/web/settings/index.html
+++ b/web/settings/index.html
@@ -7,13 +7,13 @@
 	<meta name="viewport" content="width=device-width,initial-scale=1.0">
 	<link rel="icon" href="/openWB/web/settings/favicon.ico">
 	<title>openWB</title>
-  <script type="module" crossorigin src="/openWB/web/settings/assets/index-2a1b0c80.js"></script>
-  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-sortablejs-ad1d2cc8.js">
-  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-20bb207d.js">
-  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-fortawesome-838df0c9.js">
-  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-jquery-89b63fca.js">
-  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-bootstrap-d275de6c.js">
-  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-axios-13ef03ae.js">
+  <script type="module" crossorigin src="/openWB/web/settings/assets/index-bc47a901.js"></script>
+  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-sortablejs-dbc23470.js">
+  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-94ac8c48.js">
+  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-fortawesome-ad83e535.js">
+  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-jquery-f7104ff8.js">
+  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-bootstrap-9f620114.js">
+  <link rel="modulepreload" crossorigin href="/openWB/web/settings/assets/vendor-axios-dc63434e.js">
   <link rel="stylesheet" href="/openWB/web/settings/assets/vendor-7b9e30aa.css">
   <link rel="stylesheet" href="/openWB/web/settings/assets/vendor-bootstrap-e99e333f.css">
   <link rel="stylesheet" href="/openWB/web/settings/assets/index-27f04b3e.css">
diff --git a/web/setupMqttServices.js b/web/setupMqttServices.js
new file mode 100644
index 0000000000..70711051f4
--- /dev/null
+++ b/web/setupMqttServices.js
@@ -0,0 +1,124 @@
+/**
+ * Functions to provide services for MQTT
+ */
+
+// these topics will be subscribed
+var topicsToSubscribe = {
+	// system topics
+	"openWB/system/version": false,
+	"openWB/system/boot_done": false,
+	"openWB/system/update_in_progress": false,
+	"openWB/general/extern": false,
+	"openWB/general/web_theme": false,
+}
+var secondaryTopicsToSubscribe = {
+	"openWB/internal_chargepoint/global_data": false,
+	"openWB/internal_chargepoint/0/data/parent_cp": false,
+	"openWB/internal_chargepoint/1/data/parent_cp": false,
+};
+
+var data = {};
+var retries = 0;
+
+// Connect Options
+var isSSL = location.protocol == 'https:';
+var port = parseInt(location.port) || (location.protocol == "https:" ? 443 : 80);
+
+var options = {
+	timeout: 5,
+	useSSL: isSSL,
+	// Gets Called if the connection has been established
+	onSuccess: function () {
+		console.debug("connected!");
+		retries = 0;
+		updateProgress();
+		Object.keys(topicsToSubscribe).forEach((topic) => {
+			client.subscribe(topic, { qos: 0 });
+		});
+		Object.keys(secondaryTopicsToSubscribe).forEach((topic) => {
+			client.subscribe(topic, { qos: 0 });
+		});
+	},
+	// Gets Called if the connection could not be established
+	onFailure: function (message) {
+		console.error("error connecting to broker!");
+		setTimeout(() => {
+			client.connect(options);
+		}, 5000);
+	}
+};
+
+var client_uid = Math.random().toString(36).replace(/[^a-z]+/g, "").substring(0, 5);
+console.debug(`connecting to broker on ${location.hostname}:${port} as client "${client_uid}"`);
+var client = new Messaging.Client(location.hostname, port, client_uid);
+
+// Gets called if the websocket/mqtt connection gets disconnected for any reason
+client.onConnectionLost = function (responseObject) {
+	console.debug("reconnecting...");
+	setTimeout(() => {
+		client.connect(options);
+	}, 2000);
+};
+
+// Gets called whenever you receive a message
+client.onMessageArrived = function (message) {
+	if (message.destinationName.includes("/internal_chargepoint/")) {
+		secondaryTopicsToSubscribe[message.destinationName] = true;
+	} else {
+		topicsToSubscribe[message.destinationName] = true;
+	}
+	data[message.destinationName] = JSON.parse(message.payloadString);
+	updateProgress();
+	handleMessage(message.destinationName, message.payloadString);
+};
+
+console.debug("connecting...");
+client.connect(options);
+timeOfLastMqttMessage = Date.now();
+
+//Creates a new Messaging.Message Object and sends it
+function publish(payload, topic) {
+	var message = new Messaging.Message(payload);
+	message.destinationName = topic;
+	message.qos = 2;
+	message.retained = true;
+	client.send(message);
+	var message = new Messaging.Message("local client uid: " + client_uid + " sent: " + topic);
+	message.destinationName = "openWB/set/system/topicSender";
+	message.qos = 2;
+	message.retained = true;
+	client.send(message);
+}
+
+function totalTopicCount() {
+	var counter = Object.keys(topicsToSubscribe).length;
+	if (data["openWB/general/extern"]) {
+		counter += Object.keys(secondaryTopicsToSubscribe).length;
+	}
+	return counter;
+}
+
+function missingTopics() {
+	var counter = 0;
+	Object.keys(topicsToSubscribe).forEach((topic) => {
+		if (!topicsToSubscribe[topic]) {
+			counter++;
+		};
+	});
+	if (data["openWB/general/extern"]) {
+		Object.keys(secondaryTopicsToSubscribe).forEach((topic) => {
+			if (!secondaryTopicsToSubscribe[topic]) {
+				counter++;
+			};
+		});
+	}
+	return counter;
+}
+
+function allTopicsReceived() {
+	return (missingTopics() == 0);
+}
+
+function updateProgress() {
+	document.getElementById("progress-value").style.width = `${(totalTopicCount() - missingTopics()) / totalTopicCount() * 100}%`;
+}
diff --git a/web/style.css b/web/style.css
new file mode 100644
index 0000000000..564f252bb5
--- /dev/null
+++ b/web/style.css
@@ -0,0 +1,118 @@
+/* prevent scroll gestures */
+body,
+html {
+	overscroll-behavior: none;
+}
+
+body,
+html,
+iframe {
+	border: 0;
+	margin: 0;
+	padding: 0;
+	background-color: black;
+	color: white;
+	font-family: Open Sans;
+}
+
+iframe {
+	width: 100%;
+	height: 100%;
+}
+
+a {
+	color: inherit;
+	text-decoration: underline;
+	font-weight: bold;
+}
+
+.wrapper {
+	display: flex;
+	justify-content: center;
+	align-items: center;
+	width: 100vw;
+	height: 100vh;
+}
+
+.hide {
+	display: none !important;
+}
+
+#notReady {
+	display: flex;
+	width: 80vw;
+	height: 90vh;
+	overflow-y: auto;
+	flex-direction: column;
+	justify-content: space-between;
+	padding-top: 10vh;
+}
+
+#logo {
+	display: flex;
+	flex-direction: column;
+	align-content: center;
+	flex-wrap: wrap;
+}
+
+#progress {
+	margin-top: 0.75em;
+	width: auto;
+	height: 1em;
+	background: rgba(255,255,255,0.1);
+	justify-content: flex-start;
+	border-radius: 100px;
+	align-items: center;
+	position: relative;
+	padding: 0 5px;
+	display: flex;
+}
+
+#progress-value {
+	border-radius: 0.25em;
+	background: #00ff0a;
+	height: 0.5em;
+	width: 0;
+	box-shadow: 0px 0px 12px 2px #00ff0a;
+}
+
+#log {
+	flex-grow: 1;
+	overflow-x: auto;
+	font-family: 'Courier New', Courier, monospace;
+	white-space: nowrap;
+	padding-bottom: 0;
+	margin-bottom: 0;
+}
+
+#info p {
+	border: 1px solid #fff;
+	border-radius: 5px;
+	padding: 0.5em;
+	background: #333;
+}
+
+#info p::before {
+	display: inline-block;
+	border: 1px solid #fff;
+	border-radius: 0.75em;
+	width: 1.5em;
+	height: 1.5em;
+	text-align: center;
+	background: #fff;
+	color: #000;
+}
+
+#info p:not(.warning)::before {
+	content: '\2139';
+}
+
+#info p.warning::before {
+	content: '!';
+	font-weight: bolder;
+}
+
+#info p.warning {
+	background-color: #ffca284d;
+	border-color: #ffca28;
+}
diff --git a/web/themes/.donotdelete b/web/themes/.donotdelete
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/web/themes/EvenDarker/preview.png b/web/themes/EvenDarker/preview.png
deleted file mode 100644
index 6a11a043b5..0000000000
Binary files a/web/themes/EvenDarker/preview.png and /dev/null differ
diff --git a/web/themes/EvenDarker/settings.css b/web/themes/EvenDarker/settings.css
deleted file mode 100644
index 2a9e37cae6..0000000000
--- a/web/themes/EvenDarker/settings.css
+++ /dev/null
@@ -1,146 +0,0 @@
-.bg-warning, .bg-info, .bg-success, .bg-light {
-	color: #212529;
-}
-
-.btn-outline-secondary,
-.table,
-pre {
-	color: #ffffff;
-}
-
-.card {
-	background-color: #212529;
-	border-color: rgba(255, 255, 255, 0.5);
-}
-
-.card-header.bg-secondary .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-success .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-primary .btn-outline-info:not(.active):not(:hover) {
-	background-color: #212529;
-}
-
-.card-header.bg-success .btn-outline-info.focus {
-	box-shadow: 0 0 0 0.2rem rgba(23,162,184,.5);
-}
-
-.card-header.bg-success .btn-outline-info.active,
-.card-header.bg-success .btn-outline-info:hover {
-	border-color: #212529;
-}
-
-.form-control,
-.form-control:focus,
-.custom-file-label {
-	background-color: #343a40;
-	border: 1px solid #ced4da;
-	color: #ffffff;
-}
-
-.form-control:disabled,
-.form-control[readonly] {
-	background-color: #000000;
-}
-
-.input-group-text {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-.modal-content {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-body {
-	background: linear-gradient(27deg, #151515 5px, transparent 5px) 0 5px, linear-gradient(207deg, #151515 5px, transparent 5px) 10px 0px, linear-gradient(27deg, #222 5px, transparent 5px) 0px 10px, linear-gradient(207deg, #222 5px, transparent 5px) 10px 5px, linear-gradient(90deg, #1b1b1b 10px, transparent 10px), linear-gradient(#1d1d1d 25%, #1a1a1a 25%, #1a1a1a 50%, transparent 50%, transparent 75%, #242424 75%, #242424);
-	background-color: #131313;
-	background-size: 20px 20px;
-	color: #ffffff;
-}
-
-input, select {
-	background-color: #6c757d;
-	color: #ffffff;
-}
-
-input[type="text"], input[type="password"], select {
-	border: 1px solid #ced4da;
-}
-
-hr {
-	border-top-color: rgba(255, 255, 255, 0.5);
-}
-
-.modal-content,
-.modal-header,
-.modal-footer {
-	border-color: dimgrey;
-}
-
-.clockpicker-popover,
-.datepicker.datepicker-dropdown {
-	background-color: #343a40;
-}
-
-.clockpicker-popover .popover-title,
-.clockpicker-popover .popover-content {
-	background-color: transparent;
-}
-
-.clockpicker-plate {
-	background-color: black;
-}
-
-.datepicker .datepicker-switch,
-.datepicker .prev:not(.disabled),
-.datepicker .next:not(.disabled),
-.datepicker .today,
-.datepicker .month,
-.datepicker .year {
-	color: #ffffff;
-}
-
-.datepicker .datepicker-switch:hover,
-.datepicker .next:hover,
-.datepicker .prev:hover,
-.datepicker tfoot tr th:hover {
-	background: #eeeeee;
-	color: #000000;
-}
-
-.datepicker table tr td span.focused,
-.datepicker table tr td span:hover {
-	background: #eeeeee;
-	color: #000000;
-}
-
-.carousel-caption,
-.carousel-control-next,
-.carousel-control-prev {
-	color: #ffffff;
-}
-
-.carousel-control-next-icon,
-.carousel-control-prev-icon {
-	filter: none;
-}
-
-.carousel-indicators li {
-	background-color: #ffffff;
-}
-
-.cssload-inner.cssload-one {
-	border-bottom: 5px solid #ffffff;
-}
-
-.cssload-inner.cssload-two {
-	border-right: 5px solid #ffffff;
-}
-
-.cssload-inner.cssload-three {
-	border-top: 5px solid #ffffff;
-}
-
-canvas.chartjs-render-monitor {
-	background: #343a40;
-}
diff --git a/web/themes/EvenDarker/style.css b/web/themes/EvenDarker/style.css
deleted file mode 100644
index 8b061770fc..0000000000
--- a/web/themes/EvenDarker/style.css
+++ /dev/null
@@ -1,610 +0,0 @@
-/*!
-Stylesheet for openWB Theme "EvenDarker"
-Based on Theme "dark" by Michael Ortenstein
-
-2020 Lutz Bender
-*/
-
-html {
-	min-height: 100%;
-	min-width: 100%;
-}
-
-body {
-	color: white;
-}
-
-body>.container {
-	padding: 55px 15px 25px;
-}
-
-@keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-o-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-moz-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-webkit-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-.animate-alertPulsation {
-	-webkit-animation: alertPulsation 3s infinite;
-	-moz-animation: alertPulsation 3s infinite;
-	-o-animation: alertPulsation 3s infinite;
-	animation: alertPulsation 3s infinite;
-}
-
-.limitation-progress {
-	height: 0.6em !important;
-}
-
-.fill-height:has(div.collapse.show) {
-	min-height: 100%;
-}
-
-.pull-right {
-	float: right
-}
-
-.row.no-gutter [class*='col-']:first-child:not(:only-child) {
-	padding-right: 0;
-}
-
-.row.no-gutter [class*='col-']:last-child:not(:only-child) {
-	padding-left: 0;
-}
-
-.row.no-gutter [class*='col-']:not(:first-child):not(:last-child):not(:only-child) {
-	padding-right: 0;
-	padding-left: 0;
-}
-
-.gradient {
-	background: -webkit-linear-gradient(black, #f2f2f2, black);
-	-webkit-background-clip: text;
-	-webkit-text-fill-color: transparent;
-	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15);
-}
-
-.cursor-pointer {
-	cursor: pointer;
-}
-
-.vaRow {
-	/* vertical alignment of content in rows */
-	display: flex;
-	align-items: center;
-}
-
-.hide {
-	display: none;
-}
-
-.charge-point-enabled {
-	color: #00b125;
-	text-decoration: none;
-}
-
-.charge-point-waiting {
-	color: #ffdb00;
-	text-decoration: none;
-}
-
-.charge-point-disabled {
-	color: #e21f1f;
-	text-decoration: line-through;
-}
-
-.text-green {
-	color: #00b125;
-}
-
-.text-red {
-	color: #e21f1f;
-}
-
-.text-white {
-	color: white;
-}
-
-.text-orange {
-	color: #ff8c1a;
-}
-
-.text-black {
-	color: white;
-}
-
-.text-blue {
-	color: blue;
-}
-
-.text-grey {
-	color: #e4e4e4;
-}
-
-.text-lightgrey {
-	color: #ffffffd1;
-}
-
-.bg-darkgrey {
-	background-color: #6c757d;
-}
-
-.bg-lightgrey {
-	background-color: #565656;
-}
-
-.bg-lightblue {
-	background-color: #23ebe1;
-}
-
-.bg-lightgreen {
-	background-color: #befebe;
-}
-
-.bg-rose {
-	background-color: #febebe;
-}
-
-.bg-apricot {
-	background-color: #fefedf;
-}
-
-.bg-orange {
-	background-color: #fcbe1e;
-}
-
-/* Extra small devices (portrait phones, less than 576px) */
-/* No media query since this is the default in Bootstrap */
-h1 {
-	font-size: 1.4rem;
-}
-
-h2 {
-	font-size: 0.9rem;
-}
-
-h3 {
-	font-size: 0.7rem;
-}
-
-.verySmallTextSize {
-	font-size: 0.5rem;
-}
-
-.smallTextSize {
-	font-size: 0.5rem;
-}
-
-.regularTextSize {
-	font-size: 0.7rem;
-}
-
-.largeTextSize {
-	font-size: 0.8rem;
-}
-
-.buttonTextSize {
-	font-size: 0.9rem;
-}
-
-/* Small devices (landscape phones, 576px and up) */
-@media screen and (min-width: 576px) {
-	h1 {
-		font-size: 1.7rem;
-	}
-
-	h2 {
-		font-size: 1.1rem;
-	}
-
-	h3 {
-		font-size: 0.9rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 0.6rem;
-	}
-
-	.smallTextSize {
-		font-size: 0.68rem;
-	}
-
-	.regularTextSize {
-		font-size: 0.75rem;
-	}
-
-	.largeTextSize {
-		font-size: 0.95rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.0rem;
-	}
-}
-
-/* Medium devices (tablets, 768px and up) */
-@media screen and (min-width: 768px) {
-	h1 {
-		font-size: 2.0rem;
-	}
-
-	h2 {
-		font-size: 1.4rem;
-	}
-
-	h3 {
-		font-size: 1.1rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 0.8rem;
-	}
-
-	.smallTextSize {
-		font-size: 0.9rem;
-	}
-
-	.regularTextSize {
-		font-size: 1.0rem;
-	}
-
-	.largeTextSize {
-		font-size: 1.3rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.2rem;
-	}
-}
-
-/* Large devices (desktops, 992px and up) */
-@media screen and (min-width: 992px) {
-	h1 {
-		font-size: 2.6rem;
-	}
-
-	h2 {
-		font-size: 2.0rem;
-	}
-
-	h3 {
-		font-size: 1.6rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 1.1rem;
-	}
-
-	.smallTextSize {
-		font-size: 1.25rem;
-	}
-
-	.regularTextSize {
-		font-size: 1.4rem;
-	}
-
-	.largeTextSize {
-		font-size: 1.6rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.6rem;
-	}
-}
-
-/* Extra large devices (large desktops, 1200px and up) */
-@media (min-width: 1200px) {
-	h1 {
-		font-size: 3rem;
-	}
-
-	h2 {
-		font-size: 2.4rem;
-	}
-
-	h3 {
-		font-size: 1.95rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 1.4rem;
-	}
-
-	.smallTextSize {
-		font-size: 1.65rem;
-	}
-
-	.regularTextSize {
-		font-size: 1.8rem;
-	}
-
-	.largeTextSize {
-		font-size: 1.8rem;
-	}
-
-	.buttonTextSize {
-		font-size: 2.0rem;
-	}
-}
-
-/* live chart colors */
-:root {
-	--fontCol: rgba(255, 255, 255, 0.82);
-	--gridCol: rgba(255, 255, 255, 0.82);
-	--xgridCol: rgba(255, 255, 255, 0.1);
-	--gridSocCol: rgba(0, 0, 0, 0);
-	--tickCol: rgba(255, 255, 255, 0.82);
-	--lp1Col: rgba(0, 0, 255, 0.7);
-	--lp1bgCol: rgba(0, 0, 255, 0.7);
-	--lp2Col: rgba(50, 30, 105, 0.7);
-	--lp2bgCol: rgba(50, 30, 105, 0.7);
-	--evuCol: rgba(255, 0, 0, 0.7);
-	--evubgCol: rgba(255, 10, 13, 0.3);
-	--pvCol: rgba(0, 255, 0, 1);
-	--pvbgCol: rgba(10, 255, 13, 0.3);
-	--speicherCol: rgba(255, 153, 0, 0.8);
-	--speicherbgCol: rgba(200, 255, 13, 0.3);
-	--speicherSocCol: rgba(255, 153, 0, 0.8);
-	--speicherSocbgCol: rgba(200, 255, 13, 0.3);
-	--lp1SocCol: rgba(0, 0, 255, 0.5);
-	--lp2SocCol: rgba(50, 50, 55, 0.5);
-	--hausverbrauchCol: rgba(255, 255, 255, 0.7);
-	--hausverbrauchbgCol: rgba(200, 255, 13, 0.3);
-	--verbraucher1Col: rgba(0, 150, 150, 0.7);
-	--verbraucher1bgCol: rgba(200, 255, 13, 0.3);
-	--verbraucher2Col: rgba(150, 150, 0, 0.7);
-	--verbraucher2bgCol: rgba(200, 255, 13, 0.3);
-	--lpgesamtCol: rgba(50, 50, 55, 0.1);
-	--lpgesamtbgCol: rgba(0, 0, 255, 0.1);
-	--lp3Col: rgba(50, 50, 55, 0.7);
-	--lp3bgCol: blue;
-	--lp4Col: rgba(50, 50, 55, 0.7);
-	--lp4bgCol: blue;
-	--lp5Col: rgba(50, 50, 55, 0.7);
-	--lp5bgCol: blue;
-	--lp6Col: rgba(50, 50, 55, 0.7);
-	--lp6bgCol: blue;
-	--lp7Col: rgba(50, 50, 55, 0.7);
-	--lp7bgCol: blue;
-	--lp8Col: rgba(50, 50, 55, 0.7);
-	--lp8bgCol: blue;
-	--d1Col: rgba(230, 50, 220, 0.7);
-	--d1bgCol: blue;
-	--d2Col: rgba(230, 50, 220, 0.7);
-	--d2bgCol: blue;
-	--d3Col: rgba(230, 50, 220, 0.7);
-	--d3bgCol: blue;
-	--d4Col: rgba(230, 50, 220, 0.7);
-	--d4bgCol: blue;
-	--d5Col: rgba(230, 50, 220, 0.7);
-	--d5bgCol: blue;
-	--d6Col: rgba(230, 50, 220, 0.7);
-	--d6bgCol: blue;
-	--d7Col: rgba(230, 50, 220, 0.7);
-	--d7bgCol: blue;
-	--d8Col: rgba(230, 50, 220, 0.7);
-	--d8bgCol: blue;
-	--d9Col: rgba(230, 50, 220, 0.7);
-	--d9bgCol: blue;
-}
-
-/* modifications start here */
-.openwb-pv {
-	background-color: #006400;
-	color: #80ff80;
-}
-
-.openwb-evu {
-	background-color: darkred;
-	color: #ff8a8a;
-}
-
-.openwb-house {
-	background-color: dimgrey;
-	color: #e6e6e6;
-}
-
-.openwb-lp {
-	background-color: midnightblue;
-	color: #b0b0e8;
-}
-
-.openwb-housebat {
-	background-color: #b36200;
-	color: hsla(33, 70%, 80%, 1);
-}
-
-.openwb-device-1 {
-	color: rgb(204 255 255);
-	background-color: rgb(0 150 150);
-}
-
-.openwb-device-2 {
-	color: rgb(255 255 204);
-	background-color: rgb(150 150 0);
-}
-
-@media screen and (max-width: 575px) {
-	#date {
-		padding-right: 0;
-		padding-left: 5px;
-	}
-
-	#time {
-		padding-right: 5px;
-		padding-left: 0;
-	}
-}
-
-.progress {
-	background-color: #424242;
-}
-
-.progress-bar {
-	background-color: #424242;
-}
-
-.row.middle {
-	align-items: center;
-}
-
-#ladelogtablediv {
-	background: #343a40;
-}
-
-#ladelogtablediv .table {
-	color: #ffffff;
-}
-
-.bg-warning,
-.bg-info,
-.bg-success {
-	color: #212529;
-}
-
-.btn-secondary {
-	color: #ffffff;
-	background-color: #343a40;
-	border-color: #ffffff;
-}
-
-.btn-secondary:hover {
-	border-color: inherit;
-}
-
-.btn-success {
-	color: #fff;
-	background-color: #28a745;
-	/*border-color: #28a745;*/
-}
-
-.btn-outline-secondary {
-	color: #ffffff;
-}
-
-.card {
-	background-color: #212529;
-	border-color: rgba(255, 255, 255, 0.5);
-}
-
-.datepicker {
-	background: #212529;
-	color: #ffffff;
-}
-
-.datepicker table tr td span.focused,
-.datepicker table tr td span:hover,
-.datepicker .datepicker-switch:hover,
-.datepicker .next:hover,
-.datepicker .prev:hover,
-.datepicker tfoot tr th:hover,
-.datepicker table tr td.day:hover,
-.datepicker table tr td.focused {
-	color: #000000;
-}
-
-.dropdown-menu .dropdown-item.disabled {
-	background-color: #343a40;
-	color: #ffffff;
-}
-
-.form-control,
-.form-control[readonly],
-.form-control:focus {
-	background-color: #343a40;
-	border: 1px solid #ced4da;
-	color: #ffffff;
-}
-
-.form-group {
-	color: #ffffff;
-}
-
-.input-group-text {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-.modal-content {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-.modal-content .text-grey {
-	color: #d0d0d0;
-}
-
-body {
-	background: linear-gradient(27deg, #151515 5px, transparent 5px) 0 5px,
-		linear-gradient(207deg, #151515 5px, transparent 5px) 10px 0px,
-		linear-gradient(27deg, #222 5px, transparent 5px) 0px 10px,
-		linear-gradient(207deg, #222 5px, transparent 5px) 10px 5px,
-		linear-gradient(90deg, #1b1b1b 10px, transparent 10px),
-		linear-gradient(#1d1d1d 25%, #1a1a1a 25%, #1a1a1a 50%, transparent 50%, transparent 75%, #242424 75%, #242424);
-	background-color: #131313;
-	background-size: 20px 20px;
-}
-
-canvas.chartjs-render-monitor {
-	background: #343a40;
-}
-
-hr {
-	border-top-color: #ffffff;
-}
-
-input[type="text"],
-input[type="password"],
-input[type="email"],
-select {
-	border: 1px solid #ced4da;
-}
diff --git a/web/themes/EvenDarker/theme.html b/web/themes/EvenDarker/theme.html
deleted file mode 100644
index 9797c04e95..0000000000
--- a/web/themes/EvenDarker/theme.html
+++ /dev/null
@@ -1,1675 +0,0 @@
-<!DOCTYPE html>
-<html lang="de">
-
-<head>
-	<!-- theme for openWB layout for standard and dark, only css is different-->
-	<!-- 2020 Michael Ortenstein -->
-	<!-- modified for theme 'EvenDarker' by Lutz Bender -->
-
-	<title>openWB</title>
-	<meta charset="UTF-8">
-	<meta name="viewport"
-		content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-	<meta name="apple-mobile-web-app-capable" content="yes">
-	<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
-	<meta name="apple-mobile-web-app-title" content="openWB">
-	<meta name="apple-mobile-web-app-status-bar-style" content="default">
-	<link rel="apple-touch-startup-image" href="/openWB/web/img/favicons/splash1125x2436w.png" />
-	<link rel="apple-touch-startup-image"
-		media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)"
-		href="img/favicons/splash1125x2436w.png">
-	<meta name="apple-mobile-web-app-title" content="openWB">
-
-	<meta name="description" content="openWB">
-	<meta name="keywords" content="openWB">
-	<meta name="author" content="Michael Ortenstein">
-	<link rel="apple-touch-icon" sizes="72x72" href="img/favicons/apple-icon-72x72.png">
-	<link rel="apple-touch-icon" sizes="76x76" href="img/favicons/apple-icon-76x76.png">
-	<link rel="apple-touch-icon" sizes="114x114" href="img/favicons/apple-icon-114x114.png">
-	<link rel="apple-touch-icon" sizes="120x120" href="img/favicons/apple-icon-120x120.png">
-	<link rel="apple-touch-icon" sizes="144x144" href="img/favicons/apple-icon-144x144.png">
-	<link rel="apple-touch-icon" sizes="152x152" href="img/favicons/apple-icon-152x152.png">
-	<link rel="apple-touch-icon" sizes="180x180" href="img/favicons/apple-icon-180x180.png">
-	<link rel="icon" type="image/png" sizes="192x192" href="img/favicons/android-icon-192x192.png">
-	<link rel="icon" type="image/png" sizes="32x32" href="img/favicons/favicon-32x32.png">
-	<link rel="icon" type="image/png" sizes="96x96" href="img/favicons/favicon-96x96.png">
-	<link rel="icon" type="image/png" sizes="16x16" href="img/favicons/favicon-16x16.png">
-	<meta name="msapplication-TileColor" content="#ffffff">
-	<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
-	<link rel="apple-touch-icon" sizes="57x57" href="img/favicons/apple-touch-icon-57x57.png">
-	<link rel="apple-touch-icon" sizes="60x60" href="img/favicons/apple-touch-icon-60x60.png">
-	<link rel="manifest" href="manifest.json">
-	<link rel="shortcut icon" href="img/favicons/favicon.ico">
-	<!-- <link rel="apple-touch-startup-image" href="img/loader.gif"> -->
-	<meta name="msapplication-config" content="img/favicons/browserconfig.xml">
-	<meta name="theme-color" content="#ffffff">
-
-	<!-- Bootstrap -->
-	<link rel="stylesheet" type="text/css" href="css/bootstrap-4.4.1/bootstrap.min.css">
-	<!-- Normalize -->
-	<link rel="stylesheet" type="text/css" href="css/normalize-8.0.1.css">
-	<!-- Font Awesome, all styles -->
-	<link rel="stylesheet" type="text/css" href="fonts/font-awesome-5.8.2/css/all.css">
-	<!-- local css due to async loading of theme css -->
-	<style>
-		#preloader {
-			background-color: black;
-			position: fixed;
-			top: 0px;
-			left: 0px;
-			width: 100%;
-			height: 100%;
-			z-index: 999999;
-		}
-
-		#preloader-inner {
-			margin-top: 150px;
-			text-align: center;
-		}
-
-		#preloader-image {
-			max-width: 300px;
-		}
-
-		#preloader-info {
-			color: #e4e4e4;
-		}
-
-		#thegraph>div {
-			height: 350px;
-			padding: 0;
-		}
-
-		#electricityPriceChartCanvasDiv {
-			height: 150px;
-		}
-	</style>
-	<!-- important scripts to be loaded -->
-	<script src="js/jquery-3.6.0.min.js"></script>
-	<script src="js/bootstrap-4.4.1/bootstrap.bundle.min.js"></script>
-	<script>
-		function getCookie(cname) {
-			var name = cname + '=';
-			var decodedCookie = decodeURIComponent(document.cookie);
-			var ca = decodedCookie.split(';');
-			for (var i = 0; i < ca.length; i++) {
-				var c = ca[i];
-				while (c.charAt(0) == ' ') {
-					c = c.substring(1);
-				}
-				if (c.indexOf(name) == 0) {
-					return c.substring(name.length, c.length);
-				}
-			}
-			return '';
-		}
-		var themeCookie = getCookie('openWBTheme');
-		// include special Theme style
-		$('head').append('<link rel="stylesheet" href="themes/' + themeCookie + '/style.css?v=20221122">');
-	</script>
-</head>
-
-<body>
-	<!-- Preloader with Progress Bar -->
-	<!-- style instead of css due to async loading of theme css -->
-	<div id="preloader">
-		<div id="preloader-inner">
-			<div class="row">
-				<div class="mx-auto d-block justify-content-center">
-					<img id="preloader-image" src="img/openWB_logo_dark.png" alt="openWB">
-				</div>
-			</div>
-			<div id="preloader-info" class="row justify-content-center mt-2">
-				<div class="col-10 col-sm-6">
-					Bitte warten, während die Seite aufgebaut wird.
-				</div>
-			</div>
-			<div class="row justify-content-center mt-2">
-				<div class="col-10 col-sm-6">
-					<div class="progress active">
-						<div class="progress-bar progress-bar-success progress-bar-striped progress-bar-animated"
-							id="preloaderbar" role="progressbar">
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-
-	<!-- Landing Page -->
-	<div id="nav-placeholder"></div>
-	<div class="container">
-		<div class="row middle py-1 regularTextSize text-black bg-darkgrey">
-			<div id="date" class="col text-left">
-				&nbsp;
-			</div>
-			<div class="col-5 text-center">
-				<button type="button" class="btn btn-sm btn-secondary cursor-pointer regularTextSize"
-					id="chargeModeSelectBtn">
-					<span id="chargeModeSelectBtnText">Lademodus</span>
-					<span id="priorityEvBattery">
-						<span class="fas fa-car" id="priorityEvBatteryIcon">&nbsp;</span>
-					</span>
-				</button>
-			</div>
-			<div id="time" class="col text-right">
-				&nbsp;
-			</div>
-		</div>
-
-		<div class="row justify-content-center regularTextSize font-weight-bold text-center">
-			<div class="col-sm openwb-pv px-1">
-				<span class="smallTextSize">PV: <span id="pvleistung">lade Daten</span></span><span
-					class="verySmallTextSize" id="pvdailyyield"></span>
-			</div>
-			<div id="evudiv" class="col-sm openwb-evu px-1">
-				<span class="smallTextSize">Netz<span id="bezug">: lade Daten</span></span><span
-					class="verySmallTextSize" id="evuidailyyield"></span><span class="verySmallTextSize"
-					id="evuedailyyield"></span>
-			</div>
-		</div>
-
-		<div class="row justify-content-center regularTextSize font-weight-bold text-center">
-			<div class="col-sm openwb-house px-1">
-				<span class="smallTextSize">Hausverbrauch: <span id="hausverbrauch">lade Daten</span></span><span
-					class="verySmallTextSize" id="hausverbrauchdailyyield"></span>
-			</div>
-			<div class="col-sm openwb-lp px-1">
-				<span class="smallTextSize">Ladeleistung: <span id="powerAllLp">lade Daten</span></span><span
-					class="verySmallTextSize" id="lladailyyield"></span>
-			</div>
-		</div>
-		<div id="speicher" class="row justify-content-center regularTextSize font-weight-bold text-center">
-			<div class="col-sm openwb-housebat px-1">
-				<span class="smallTextSize">Speicher<span id="speicherleistung">: lade Daten</span></span><span
-					class="verySmallTextSize" id="siidailyyield"></span><span class="verySmallTextSize"
-					id="siedailyyield"></span> <span class="smallTextSize">- Ladestand: <span id="speichersoc"> lade
-						Daten</span></span>
-			</div>
-		</div>
-		<div id="strompreis" class="row justify-content-center regularTextSize font-weight-bold text-center text-black">
-			<div class="col-sm bg-rose px-1">
-				<span class="smallTextSize">aktueller Strompreis: <span id="aktuellerStrompreis"> lade
-						Daten</span></span>
-			</div>
-		</div>
-
-		<div id="verbraucher" class="row justify-content-center regularTextSize font-weight-bold text-center hide">
-			<div id="verbraucher1" class="col-sm px-1 openwb-device-1 hide">
-				<span class="smallTextSize"><span id="verbraucher1name">Verbraucher 1</span>: <span
-						id="verbraucher1leistung">lade Daten</span></span><span class="verySmallTextSize"
-					id="verbraucher1dailyyield"></span>
-			</div>
-			<div id="verbraucher2" class="col-sm px-1 openwb-device-2 hide">
-				<span class="smallTextSize"><span id="verbraucher2name">Verbraucher 2</span>: <span
-						id="verbraucher2leistung">lade Daten</span></span><span class="verySmallTextSize"
-					id="verbraucher2dailyyield"></span>
-			</div>
-		</div>
-
-		<div class="row justify-content-center regularTextSize font-weight-bold text-center text-black">
-			<div class="hide bg-lightblue col-sm SmartHomeTemp px-1" data-dev="1">
-				<span class="actualTemp0Device"></span>
-			</div>
-			<div class="hide bg-lightblue col-sm SmartHomeTemp px-1" data-dev="1">
-				<span class="actualTemp1Device"></span>
-			</div>
-			<div class="hide bg-lightblue col-sm SmartHomeTemp px-1" data-dev="1">
-				<span class="actualTemp2Device"></span>
-			</div>
-		</div>
-
-		<div class="row justify-content-center regularTextSize font-weight-bold text-center text-black">
-			<div class="hide bg-lightblue col-sm SmartHomeTemp px-1" data-dev="2">
-				<span class="actualTemp0Device"></span>
-			</div>
-			<div class="hide bg-lightblue col-sm SmartHomeTemp px-1" data-dev="2">
-				<span class="actualTemp1Device"></span>
-			</div>
-			<div class="hide bg-lightblue col-sm SmartHomeTemp px-1" data-dev="2">
-				<span class="actualTemp2Device"></span>
-			</div>
-		</div>
-
-		<div id="webhooks"
-			class="row justify-content-center regularTextSize font-weight-bold text-center text-black bg-darkgrey">
-			<div id="hook1" class="col-3 m-1 bg-danger px-1 hide">
-				ext. Gerät 1
-			</div>
-			<div id="hook2" class="col-3 m-1 bg-danger px-1 hide">
-				ext. Gerät 2
-			</div>
-			<div id="hook3" class="col-3 m-1 bg-danger px-1 hide">
-				ext. Gerät 3
-			</div>
-		</div>
-
-		<!-- interactive chart.js -->
-		<!-- will be refreshed using MQTT (in livechart.js)-->
-		<div class="row justify-content-center my-2" id="thegraph">
-			<div class="col-sm-12 text-center smallTextSize">
-				<div id="waitforgraphloadingdiv">
-					Graph lädt, bitte warten...
-				</div>
-				<canvas id="canvas"></canvas>
-			</div>
-		</div>
-
-		<div class="row text-center bg-lightgrey">
-			<div class="col">
-				<span id="lastregelungaktiv" class="regularTextSize text-red animate-alertPulsation"></span>
-			</div>
-		</div>
-
-		<!-- chargepoint info header -->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-darkgrey text-grey font-weight-bold">
-			<div class="col-3 px-0">
-				Ladepunkt <span id="etproviderEnabledIcon" class="fa fa-chart-line hide"></span>
-			</div>
-			<div class="col-3 px-0">
-				Ladeparameter
-			</div>
-			<div class="col-4 px-0">
-				geladen
-			</div>
-			<div class="col-2 px-0">
-				SoC
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp1-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey" data-lp="1">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center cursor-pointer">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp2-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="2">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center cursor-pointer">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp3-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="3">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp4-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="4">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp5-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="5">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp6-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="6">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp7-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="7">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-				<span class="socLp"></span> %
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp8-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="8">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-				<span class="socLp"></span> %
-			</div>
-		</div>
-
-		<div class="smartHome hide">
-			<hr class="border-secondary">
-
-			<!-- SmartHome info header -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-darkgrey text-grey font-weight-bold">
-				<div class="col-3 px-0">
-					Gerät
-				</div>
-				<div class="col-3 px-0">
-					Verbrauch
-				</div>
-				<div class="col-3 px-0">
-					Modus
-				</div>
-				<div class="col-3 px-0">
-					Laufzeit
-				</div>
-			</div>
-
-			<!-- SmartHome Device 1 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="1">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 2 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="2">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 3 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="3">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 4 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="4">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 5 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="5">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 6 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="6">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 7 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="7">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 8 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="8">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 9 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="9">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-		</div> <!-- end smart home -->
-
-		<!-- depending on charge mode show options -->
-		<form id="minundpvladenEinstellungen" class="hide">
-			<hr class="border-secondary">
-			<div class="row justify-content-center">
-				<h3 class="font-weight-bold text-center text-lightgrey">Minimal Stromstärke</h3>
-			</div>
-
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="1">
-				<label for="minCurrentMinPv" class="col-3 col-form-label text-right"></label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="minCurrentMinPv" min="6" max="16"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/pv/">
-				</div>
-				<label for="minCurrentMinPv" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-		</form>
-
-		<form id="sofortladenEinstellungen" class="hide">
-			<div class="hide" id="priceBasedCharging">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">preisbasiertes Laden</h3>
-				</div>
-				<div class="row justify-content-center my-2">
-					<div id="electricityPriceChartCanvasDiv" class="col text-center">
-						<canvas id="electricityPriceChartCanvas"></canvas>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize">
-					<label for="MaxPriceForCharging" class="col-3 col-form-label text-right">max. Preis:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="MaxPriceForCharging" min="-25"
-							max="95" step="0.1" value="0" data-topicprefix="openWB/global/awattar/">
-					</div>
-					<label for="MaxPriceForCharging" class="col-3 col-form-label valueLabel" suffix="ct/kWh"></label>
-				</div>
-				<div class="row justify-content-center regularTextSize vaRow">
-					<button type="button" class="btn btn-secondary mr-3 priceLess"><i
-							class="far fa-minus-square"></i></button>
-					Preis
-					<button type="button" class="btn btn-secondary ml-3 priceMore"><i
-							class="far fa-plus-square"></i></button>
-				</div>
-			</div>
-			<!--/ priceBasedCharging -->
-
-			<hr class="border-secondary">
-			<div class="row justify-content-center">
-				<h3 class="font-weight-bold text-center text-lightgrey">Sofortladen Stromstärke</h3>
-			</div>
-
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="1">
-				<label for="lp/1/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP1</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/1/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/1/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="2">
-				<label for="lp/2/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP2</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/2/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/2/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="3">
-				<label for="lp/3/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP3</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/3/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/3/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="4">
-				<label for="lp/4/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP4</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/4/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/4/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="5">
-				<label for="lp/5/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP5</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/5/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/5/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="6">
-				<label for="lp/6/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP6</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/6/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/6/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="7">
-				<label for="lp/7/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP7</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/7/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/7/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="8">
-				<label for="lp/8/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP8</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/8/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/8/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-
-			<div class="chargeLimitation" data-lp="1">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="1">
-					<div class="col btn-group btn-group-toggle" id="lp/1/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/1/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/1/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/1/chargeLimitation" data-option="2"> EV-SoC
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/1/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/1/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/1/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="2">
-					<label for="lp/1/socToChargeTo" class="col-3 col-form-label text-right">SoC:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/1/socToChargeTo" min="5"
-							max="100" step="5" value="5" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/1/socToChargeTo" class="col-3 col-form-label valueLabel" suffix="%"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/1/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="2">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="2">
-					<div class="col btn-group btn-group-toggle" id="lp/2/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/2/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/2/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/2/chargeLimitation" data-option="2"> EV-SoC
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/2/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/2/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/2/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="2">
-					<label for="lp/2/socToChargeTo" class="col-3 col-form-label text-right">SoC:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/2/socToChargeTo" min="5"
-							max="100" step="5" value="5" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/2/socToChargeTo" class="col-3 col-form-label valueLabel" suffix="%"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/2/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="3">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="3">
-					<div class="col btn-group btn-group-toggle" id="lp/3/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/3/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/3/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/3/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/3/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/3/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/3/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="4">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="4">
-					<div class="col btn-group btn-group-toggle" id="lp/4/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/4/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/4/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/4/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/4/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/4/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/4/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="5">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="5">
-					<div class="col btn-group btn-group-toggle" id="lp/5/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/5/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/5/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/5/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/5/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/5/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/5/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="6">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="6">
-					<div class="col btn-group btn-group-toggle" id="lp/6/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/6/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/6/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/6/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/6/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/6/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/6/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="7">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="7">
-					<div class="col btn-group btn-group-toggle" id="lp/7/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/7/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/7/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/7/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/7/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/7/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/7/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="8">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="8">
-					<div class="col btn-group btn-group-toggle" id="lp/8/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/8/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-dark btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/8/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/8/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/8/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/8/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/8/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-		</form>
-
-		<!-- modal chargemode-select-window -->
-		<div class="modal fade" id="chargeModeModal">
-			<div class="modal-dialog">
-				<div class="modal-content">
-
-					<!-- modal header -->
-					<div class="modal-header bg-success">
-						<h4 class="modal-title">Lademodus-Auswahl</h4>
-					</div>
-
-					<!-- modal body -->
-					<div class="modal-body">
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button id="chargeModeSofortBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="0">Sofort</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 order-first order-sm-last py-1">
-								<button id="chargeModePVBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="2">PV</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button id="chargeModeMinPVBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="1">Min + PV</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button id="chargeModeStdbyBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="4">Standby</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button id="chargeModeStopBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="3">Stop</button>
-							</div>
-						</div>
-						<div id="priorityModeBtns" class="hide">
-							<hr>
-							<div class="row">
-								<div class="col text-center text-grey">
-									Vorrang im Lademodus PV-Laden:
-								</div>
-							</div>
-							<div class="row justify-content-center">
-								<div class="col-sm-5 py-1">
-									<button id="evPriorityBtn" type="button"
-										class="priorityModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-										priority="1">
-										EV <span class="fas fa-car">&nbsp;</span>
-									</button>
-								</div>
-							</div>
-							<div class="row justify-content-center">
-								<div class="col-sm-5 py-1">
-									<button id="batteryPriorityBtn" type="button"
-										class="priorityModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-										priority="0">
-										Speicher <span class="fas fa-car-battery">&nbsp;</span>
-									</button>
-								</div>
-							</div>
-						</div>
-						<div id="70ModeBtn" class="hide">
-							<hr>
-							<div class="row">
-								<div class="col text-center text-grey">
-									70% beachten im Lademodus PV-Laden:
-								</div>
-							</div>
-							<div class="row justify-content-center">
-								<div class="col-sm-5 py-1">
-									<button id="70PvBtn" type="button"
-										class=" 70PvBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal">
-										70 % beachten
-									</button>
-								</div>
-							</div>
-						</div>
-
-					</div> <!-- /modal body -->
-
-					<!-- no modal footer -->
-				</div>
-			</div>
-		</div>
-
-		<!-- modal SoC-window -->
-		<div class="modal fade" id="socModal">
-			<div class="modal-dialog">
-				<div class="modal-content">
-					<!-- modal header -->
-					<div class="modal-header bg-warning">
-						<h4 class="modal-title text-dark">Manuelle SoC-Eingabe - Ladepunkt <span class="socLp"></span>
-						</h4>
-					</div>
-					<!-- modal body -->
-					<div class="modal-body">
-						<div class="row justify-content-center">
-							<div class="col-2 px-1 py-1">
-								<button type="button" id="manualSocDecrement"
-									class="btn btn-block btn-secondary">-</button>
-							</div>
-							<div class="col-5 py-1">
-								<div class="input-group">
-									<input id="manualSocBox" type="number" min="0" max="100" step="1" value="0"
-										name="socBox" class="form-control text-right">
-									<div class="input-group-append">
-										<div class="input-group-text">
-											%
-										</div>
-									</div>
-								</div>
-							</div>
-							<div class="col-2 px-1 py-1">
-								<button type="button" id="manualSocIncrement"
-									class="btn btn-block btn-secondary">+</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button type="button" id="manualSocOk" class="btn btn-lg btn-block btn-success"
-									data-dismiss="modal">Übernehmen</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button type="button" id="manualSocCancel" class="btn btn-lg btn-block btn-secondary"
-									data-dismiss="modal">Abbrechen</button>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-			<script>
-				function clearSocForm() {
-					$("#manualSocBox").val("0");
-				}
-
-				function submitSocForm() {
-					var currentLp = $('#socModal').find('.socLp').text();
-					var manualSoc = $("#manualSocBox").val();
-					// console.log("SoC for LP"+currentLp+": "+manualSoc);
-					publish(manualSoc, "openWB/set/lp/" + currentLp + "/manualSoc");
-					// reset input after publishing
-					clearSocForm();
-				};
-				$(document).ready(function () {
-
-					$('#manualSocDecrement').click(function () {
-						var newValue = parseInt($('#manualSocBox').val()) - 1;
-						if (newValue < 0) {
-							newValue = 0;
-						}
-						$('#manualSocBox').val(newValue);
-					});
-
-					$('#manualSocIncrement').click(function () {
-						var newValue = parseInt($('#manualSocBox').val()) + 1;
-						if (newValue > 100) {
-							newValue = 100;
-						}
-						$('#manualSocBox').val(newValue);
-					});
-
-					$('#manualSocCancel').click(function () {
-						clearSocForm();
-					});
-
-					$('#manualSocOk').click(function () {
-						submitSocForm();
-					});
-
-				});
-			</script>
-		</div>
-
-	</div> <!-- container -->
-	<footer class="bg-dark fixed-bottom small text-light">
-		<div class="container text-center">
-			openWB - die modulare Wallbox
-		</div>
-	</footer>
-
-	<script>
-
-		// load navbar, be careful: it loads asynchronous
-		$.get(
-			{ url: "themes/navbar.html", cache: false },
-			function (data) {
-				$("#nav-placeholder").replaceWith(data);
-			}
-		);
-
-		var timeOfLastMqttMessage = 0;  // holds timestamp of last received message
-		var landingpageShown = false;  // holds flag for landing page being shown
-
-		function chargeLimitationOptionsShowHide(btnGrp, option) {
-			// show/hide all option-parameters in form-rows for selected option
-			var parent = btnGrp.closest('.chargeLimitation[data-lp]');  // get parent div element for charge limitation options
-			$(parent).find('.form-row[data-option*=' + option + ']').show();  // now show option elements for selected option
-			$(parent).find('.form-row[data-option]').not('[data-option*=' + option + ']').hide();  // hide all other option elements
-		}
-
-		function processPreloader(mqttTopic) {
-			// sets flag for topic received in topic-array
-			// and updates the preloader progress bar
-			if (!landingpageShown) {
-				var countTopicsReceived = 0;
-				for (var index = 0; index < topicsToSubscribe.length; index++) {
-					if (topicsToSubscribe[index][0] == mqttTopic && topicsToSubscribe[index][1] == 0) {
-						// topic found in array
-						topicsToSubscribe[index][1] = 1;  // mark topic as received
-					};
-					if (topicsToSubscribe[index][1] > 0) {
-						countTopicsReceived++;
-					}
-				};
-				// countTopicsToBeReceived holds all topics flagged 1 and not only those for preloader
-				countTopicsReceived = countTopicsReceived - countTopicsNotForPreloader;
-				var countTopicsToBeReceived = topicsToSubscribe.length - countTopicsNotForPreloader;
-				var percentageReceived = (countTopicsReceived / countTopicsToBeReceived * 100).toFixed(0);
-				var timeBetweenTwoMessages = Date.now() - timeOfLastMqttMessage;
-				if (timeBetweenTwoMessages > 3000) {
-					// latest after 3 sec without new messages
-					percentageReceived = 100;
-					// debug output
-					topicsToSubscribe.forEach((item, i) => {
-						if (item[1] == 0) {
-							console.log('not received: ' + item[0]);
-						}
-					});
-
-				}
-				timeOfLastMqttMessage = Date.now();
-				$("#preloaderbar").width(percentageReceived + "%");
-				$("#preloaderbar").text(percentageReceived + " %");
-				if (percentageReceived == 100) {
-					landingpageShown = true;
-					setTimeout(function () {
-						// delay a little bit
-						$("#preloader").fadeOut(1000);
-					}, 500);
-				}
-			}
-		}
-
-		var delayUserInput = (function () {
-			// sets a timeout on call and resets timeout if called again for same id before timeout fires
-			var timeoutHandles = {};
-			return function (id, callback, ms) {
-				if (timeoutHandles[id]) {
-					clearTimeout(timeoutHandles[id]);
-				};
-				timeoutHandles[id] = setTimeout(function () {
-					delete timeoutHandles[id];
-					callback(id);
-				}, ms);
-			};
-		})();
-
-		$(document).ready(function () {
-
-			// load scripts synchronously in order specified
-			var scriptsToLoad = [
-				// load Chart.js library
-				'js/Chart.bundle.min.js',
-				// load Chart.js annotation plugin
-				'js/chartjs-plugin-annotation.min.js',
-				// load mqtt library
-				'js/mqttws31.js',
-				// some helper functions
-				'themes/dark/helperFunctions.js?ver=20201218',
-				// functions for processing messages
-				'themes/dark/processAllMqttMsg.js?ver=20221102',
-				// respective Chart.js definition live
-				'themes/dark/livechart.js?ver=20210307',
-				// respective Chart.js definition
-				'themes/dark/electricityPriceChart.js?ver=20210210',
-				// functions performing mqtt and start mqtt-service
-				'themes/dark/setupMqttServices.js?ver=20221102',
-			];
-			scriptsToLoad.forEach(function (src) {
-				var script = document.createElement('script');
-				script.src = src;
-				script.async = false;
-				document.body.appendChild(script);
-			});
-
-			$('.enableLp').click(function (event) {
-				// send mqtt set to enable/disable charge point after click
-				var lp = parseInt($(this).closest('[data-lp]').data('lp'));  // get attribute lp-# of parent element
-				if (!isNaN(lp) && lp > 0 && lp < 9) {
-					var isEnabled = $(this).hasClass("lpEnabledStyle")
-					if (isEnabled) {
-						publish("0", "openWB/set/lp/" + lp + "/ChargePointEnabled");
-					} else {
-						publish("1", "openWB/set/lp/" + lp + "/ChargePointEnabled");
-					}
-				}
-			});
-
-			$('.socConfiguredLp').click(function (event) {
-				// send mqtt set to force reload of charge point SoC after click
-				var lp = parseInt($(this).closest('[data-lp]').data('lp'));  // get attribute lp-# of parent element
-				if (!isNaN(parseInt(lp)) && lp > 0 && lp < 9) {
-					if ($(this).hasClass('manualSoC')) {
-						var currentSoc = $(this).find('.socLp').text();
-						$('#socModal').find('.socLp').text(lp);
-						$("#manualSocBox").val(currentSoc);
-						$('#socModal').modal("show");
-					} else {
-						var spinner = $(this).find('.reloadLpSoc');
-						var isRunning = spinner.hasClass("fa-spin");
-						if (!isRunning) {
-							spinner.addClass("fa-spin");
-							publish("1", "openWB/set/lp/" + lp + "/ForceSoCUpdate");
-						}
-					}
-				}
-			});
-
-			$('.enableDevice').click(function (event) {
-				// send mqtt set to enable/disable Device after click
-				var dev = parseInt($(this).closest('[data-dev]').data('dev'));  // get attribute device-# of parent element
-				var isLocked = $(this).hasClass("locked");
-				if (isLocked) {
-					if (!isNaN(dev) && dev > 0 && dev < 10) {
-						var isEnabled = $(this).hasClass("lpEnabledStyle")
-						if (isEnabled) {
-							publish("0", "openWB/config/set/SmartHome/Device" + dev + "/device_manual_control");
-							$(this).removeClass('lpEnabledStyle').removeClass('lpDisabledStyle').addClass('lpWaitingStyle');
-						} else {
-							publish("1", "openWB/config/set/SmartHome/Devices/" + dev + "/device_manual_control");
-							$(this).removeClass('lpEnabledStyle').removeClass('lpDisabledStyle').addClass('lpWaitingStyle');
-						}
-					}
-				}
-			});
-
-			$('.changeSHMode').click(function (event) {
-				// send mqtt set to enable/disable Device after click
-				var dev = parseInt($(this).closest('[data-dev]').data('dev'));  // get attribute device-# of parent element
-				if ($(this).text() == "Automatik") {
-					publish("1", "openWB/config/set/SmartHome/Devices/" + dev + "/mode");
-				} else {
-					publish("0", "openWB/config/set/SmartHome/Devices/" + dev + "/mode");
-				}
-			});
-
-			$('#chargeModeSelectBtn').click(function (event) {
-				$("#chargeModeModal").modal("show");
-			});
-
-			$('.chargeModeBtn').click(function (event) {
-				var chargeMode = $(this).attr("chargeMode")
-				publish(chargeMode, "openWB/set/ChargeMode");
-			});
-
-			$('.priorityModeBtn').click(function (event) {
-				// priority: 0 = battery, 1 = ev
-				var priority = $(this).attr('priority');
-				if (priority == '0' || priority == '1') {
-					publish(priority, 'openWB/config/set/pv/priorityModeEVBattery');
-				}
-			});
-
-			$('.70PvBtn').click(function (event) {
-				// 0 deaktiviert, 1 aktiviert
-				var element = document.getElementById('70PvBtn');
-				if (element.classList.contains("btn-success")) {
-					publish("0", "openWB/set/pv/NurPV70Status");
-				} else {
-					publish("1", "openWB/set/pv/NurPV70Status");
-				}
-			});
-
-			$('.btn[value="Reset"]').click(function (event) {
-				var topic = getTopicToSendTo($(this).attr('id'));
-				publish("1", topic);
-			});
-
-			$('.sofortladenLadezielSelektor').change(function (event) {
-				// switches the visibility of the settings-divs according to dropdown selection
-				var selectorId = '#' + event.target.id;
-				var divAusId = selectorId.slice(0, 8) + 'n' + selectorId.slice(8);
-				var divSocId = selectorId.slice(0, 8) + 's' + selectorId.slice(8);
-				var divMengeId = selectorId.slice(0, 8) + 'm' + selectorId.slice(8);
-				switch ($(selectorId).val()) {
-					case '0':
-						$(divAusId).removeClass('hide');
-						$(divSocId).addClass('hide');
-						$(divMengeId).addClass('hide');
-						break;
-					case '1':
-						$(divAusId).addClass('hide');
-						$(divSocId).addClass('hide');
-						$(divMengeId).removeClass('hide');
-						break;
-					case '2':
-						$(divAusId).addClass('hide');
-						$(divSocId).removeClass('hide');
-						$(divMengeId).addClass('hide');
-						break;
-				}
-			});
-
-			$('.btn-group-toggle').change(function (event) {
-				// only charge limitation has class btn-group-toggle so far
-				// option: 0 = keine, 1 = Energiemenge, 2 = EV-SoC
-				var elementId = $(this).attr('id');
-				var option = $('input[name="' + elementId + '"]:checked').data('option').toString();
-				var topic = getTopicToSendTo(elementId);
-				publish(option, topic);
-				// show/hide respective option-values and progress
-				chargeLimitationOptionsShowHide(this, option);
-			});
-
-			$('.priceMore, .priceLess').click(function (event) {
-				// change Slider upon click on buttons
-				event.preventDefault();
-				var currentMaxPrice = parseFloat($('#MaxPriceForCharging').val());
-				var rangeMin = parseFloat($('#MaxPriceForCharging').attr('min'));
-				var rangeMax = parseFloat($('#MaxPriceForCharging').attr('max'));
-				var step = parseFloat($('#MaxPriceForCharging').attr('step'));
-				if ($(this).hasClass('priceLess')) {
-					currentMaxPrice -= step;
-				} else {
-					currentMaxPrice += step;
-				}
-				// prevent timeout of delayUserInput when clicking "beyond" range
-				if (currentMaxPrice < rangeMin) {
-					currentMaxPrice = rangeMin;
-				} else if (currentMaxPrice > rangeMax) {
-					currentMaxPrice = rangeMax;
-				}
-				$('#MaxPriceForCharging').val(currentMaxPrice);
-				$('#MaxPriceForCharging').trigger('input');
-			});
-
-			$('.rangeInput').on('input', function () {
-				// show slider value in label of class valueLabel
-				var elementId = $(this).attr('id');
-				updateLabel(elementId);
-				var element = $('#' + $.escapeSelector(elementId));
-				var label = $('label[for="' + elementId + '"].valueLabel');
-				label.addClass('text-danger');
-				if ($.escapeSelector(elementId) == 'MaxPriceForCharging') {
-					// marks times in the price chart where the price is low enough so charging would be allowed
-					var priceAnnotations = createPriceAnnotations();
-					electricityPricechart.options.annotation.annotations = priceAnnotations;
-					electricityPricechart.update();
-				}
-				delayUserInput(elementId, function (id) {
-					// gets executed on callback, 2000ms after last input-change
-					// changes label color back to normal and sends input-value by mqtt
-					var elem = $('#' + $.escapeSelector(id));
-					var value = elem.val();
-					var topic = getTopicToSendTo(id);
-					publish(value, topic);
-					var label = $('label[for="' + id + '"].valueLabel');
-					label.removeClass('text-danger');
-					// if rangeInput is for chargeLimitation, recalculate progress
-					if (id.includes('/energyToCharge')) {
-						var parent = elem.closest('.chargeLimitation')  // get parent div element for charge limitation
-						var element = parent.find('.progress-bar');  // now get parents progressbar
-						var actualCharged = element.data('actualCharged');  // get stored value
-						if (isNaN(parseFloat(actualCharged))) {
-							actualCharged = 0;  // minimum value
-						}
-						var progress = (actualCharged / value * 100).toFixed(0);
-						element.width(progress + "%");
-					}
-				}, 2000);
-			});
-
-			// register an event listener for changes in visibility
-			let hidden;
-			let visibilityChange;
-			if (typeof document.hidden !== 'undefined') { // Opera 12.10 and Firefox 18 and later support
-				hidden = 'hidden';
-				visibilityChange = 'visibilitychange';
-			} else if (typeof document.msHidden !== 'undefined') {
-				hidden = 'msHidden';
-				visibilityChange = 'msvisibilitychange';
-			} else if (typeof document.webkitHidden !== 'undefined') {
-				hidden = 'webkitHidden';
-				visibilityChange = 'webkitvisibilitychange';
-			}
-			window.document.addEventListener(visibilityChange, () => {
-				if (!document[hidden]) {
-					// once page is unhidden... reload graph completely
-					initialread = 0;
-					all1 = 0;
-					all2 = 0;
-					all3 = 0;
-					all4 = 0;
-					all5 = 0;
-					all6 = 0;
-					all7 = 0;
-					all8 = 0;
-					all9 = 0;
-					all10 = 0;
-					all11 = 0;
-					all12 = 0;
-					all13 = 0;
-					all14 = 0;
-					all15 = 0;
-					all16 = 0;
-
-					subscribeMqttGraphSegments();
-				}
-			});
-
-		});  // end document ready
-	</script>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/web/themes/Gauges/electricityPriceChart.js b/web/themes/Gauges/electricityPriceChart.js
deleted file mode 100644
index e1cf1a2850..0000000000
--- a/web/themes/Gauges/electricityPriceChart.js
+++ /dev/null
@@ -1,150 +0,0 @@
-function createPriceAnnotations(){
-	// creates green annotation boxes for all times where price is <= maxPrice
-	class Annotation {
-		type = 'box';
-		drawTime = "beforeDatasetsDraw"; // (default)
-		xScaleID = 'x-axis-0';
-		// left and right edge of the box, units are x-axis index
-		// initially set to index found
-		xMin = 0;
-		xMax = 0;
-		borderColor = 'rgba(73, 238, 73, 0.3)';
-		borderWidth = 2;
-		backgroundColor = 'rgba(73, 238, 73, 0.3)';
-		cornerRadius = 0;
-	}
-	var annotations = [];
-	var maxPrice = parseFloat($('#MaxPriceForCharging').val());
-	if ( !isNaN(maxPrice) ) {
-		for ( var i = 0; i < electricityPriceChartline.length; i++ ) {
-			if ( electricityPriceChartline[i] <= maxPrice ) {
-				var newAnnotation = new Annotation();
-				newAnnotation.xMin = i;  // set left edge of box
-				while ( i < electricityPriceChartline.length && electricityPriceChartline[i] <= maxPrice ) {
-					i++;
-				}
-				if ( i == electricityPriceChartline.length ) {
-					// correct index if out of bounds
-					i--;
-				}
-				newAnnotation.xMax = i;  // first index electricityPriceChartline[i] > maxPrice is right edge of box
-				annotations.push(newAnnotation);  // add box to annotations
-			}
-		}
-	}
-	return annotations;
-}
-
-function buildXLabel(value) {
-	// builds a string like "morgen 13 Uhr" from timestamp
-	var xLabelDate = new Date(value);  // date-object from timestamp
-	var theDate = new Date();  // now
-	var xLabel = xLabelDate.getHours() + ' Uhr';
-	var datumIstHeute = xLabelDate.getYear() == theDate.getYear() && xLabelDate.getMonth() == theDate.getMonth() && xLabelDate.getDate() == theDate.getDate();
-	if ( !datumIstHeute ) {
-		theDate.setDate(theDate.getDate() + 1);  // set date to tomorrow
-		if ( xLabelDate.getYear() == theDate.getYear() && xLabelDate.getMonth() == theDate.getMonth() && xLabelDate.getDate() == theDate.getDate() ) {
-			xLabel = 'morgen ' + xLabel;
-		} else {
-			xLabel = xLabelDate.getDate() + '.' + xLabelDate.getMonth() + '.' + xLabelDate.getFullYear() + ', ' + xLabel;
-		}
-	}
-	return xLabel;
-}
-
-function getXLabels(timestampLabels){
-	// converts array of timestamps and returns converted array
-	var labels = [];
-	for (i=0; i<timestampLabels.length; i++) {
-		labels.push(buildXLabel(timestampLabels[i]));
-	}
-	return labels;
-}
-
-function loadElectricityPriceChart() {
-	if (typeof electricityPriceTimeline === 'undefined') {
-		console.debug("'electricityPriceTimeline' not defined. Skipping chart update.");
-		return
-	}
-	var xLabels = getXLabels(electricityPriceTimeline);
-
-	var electricityPriceChartData = {
-		labels: xLabels,
-		datasets: [{
-			//yAxisID: 'y-axis-left',
-			data: electricityPriceChartline,
-			borderColor: evuCol,  // from liveChart
-			backgroundColor: "rgba(0, 0, 255, 0.7)",
-			borderWidth: 3,
-			fill: false,
-			steppedLine: true
-		}]
-	}
-
-	var ctxElectricityPricechart = $('#electricityPriceChartCanvas')[0].getContext('2d');
-
-	window.electricityPricechart = new Chart.Line(ctxElectricityPricechart, {
-		data: electricityPriceChartData,
-		options: {
-			tooltips: {
-				enabled: true,
-				callbacks: {
-					label: function(tooltipItem, data) {
-						let i = tooltipItem.index;
-						return data.datasets[0].data[i] + ' ct/kWh';
-					},
-					title: function(tooltipItem, data) {
-						let i = tooltipItem[0].index;
-						let title = 'jetzt';
-						if ( i > 0 ) {
-							title =  'ab ' + xLabels[i];
-						}
-						return title;
-					}
-				}
-			},
-			responsive: true,
-			maintainAspectRatio: false,
-			animation: false,
-			legend: {
-				display: false
-			},
-			title: {
-				display: false
-			},
-			scales: {
-				xAxes: [{
-					gridLines: {
-						color: xgridCol  // from liveChart
-					},
-					ticks: {
-						fontColor: tickCol  // from liveChart
-					}
-				}],
-				yAxes: [{
-					// values = price
-					position: 'left',
-					id: 'y-axis-left',
-					type: 'linear',
-					display: true,
-					scaleLabel: {
-						display: true,
-						labelString: 'Preis [ct/kWh]',
-						fontColor: fontCol  // from liveChart
-					},
-					gridLines: {
-						color: gridCol,  // from liveChart
-						zeroLineColor: gridCol
-					},
-					ticks: {
-						fontColor: tickCol,  // from liveChart
-						maxTicksLimit: 7.1
-					}
-				}]
-			},
-			annotation: {
-				annotations: createPriceAnnotations()
-			}
-		}
-	});
-}
diff --git a/web/themes/Gauges/helperFunctions.js b/web/themes/Gauges/helperFunctions.js
deleted file mode 100644
index d2c993bda5..0000000000
--- a/web/themes/Gauges/helperFunctions.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * helper functions for setup-pages
- *
- * @author Michael Ortenstein
- */
-
-function updateLabel(elementId) {
-    /** @function updateLabel
-     * sets the value-label (if exists) attached to the element to the element value
-     * @param {string} elementId - the id of the element
-     * @requires class:valueLabel assigned to the attached label
-     */
-    var element = $('#' + $.escapeSelector(elementId));
-    var label = $('label[for="' + elementId + '"].valueLabel');
-    if ( label.length == 1 ) {
-        var suffix = label.attr('suffix');
-        var text = parseFloat(element.val()).toLocaleString(undefined, {maximumFractionDigits: 2});
-        if ( suffix != '' ) {
-            text += ' ' + suffix;
-        }
-        label.text(text);
-    }
-}
-
-function setInputValue(elementId, value) {
-    /** @function setInputValue
-     * sets the value-label (if exists) attached to the element to the element value
-     * @param {string} elementId - the id of the element
-     * @param {string} value - the value the element has to be set to
-     * if the element has data-attribute 'signcheckbox' the checkbox with the id of the attribute
-     * will represent negative numbers by being checked
-     */
-    if ( !isNaN(value) ) {
-        var element = $('#' + $.escapeSelector(elementId));
-        var signCheckboxName = element.data('signcheckbox');
-        var signCheckbox = $('#' + signCheckboxName);
-        if ( signCheckbox.length == 1 ) {
-            // checkbox exists
-            if ( value < 0 ) {
-                signCheckbox.prop('checked', true);
-                value *= -1;
-            } else {
-                signCheckbox.prop('checked', false);
-            }
-        }
-        element.val(value);
-        if ( element.attr('type') == 'range' ) {
-            updateLabel(elementId);
-        }
-    }
-}
-
-function getTopicToSendTo (elementId) {
-    var element = $('#' + $.escapeSelector(elementId));
-    var topic = element.data('topicprefix') + elementId;
-    topic = topic.replace('/get/', '/set/');
-    if (topic.includes('MaxPriceForCharging')) {
-        topic = 'openWB/set/awattar/MaxPriceForCharging'
-    }
-    return topic;
-}
-
-function setToggleBtnGroup(groupId, option) {
-    /** @function setInputValue
-     * sets the value-label (if exists) attached to the element to the element value
-     * @param {string} elementId - the id of the button group
-     * @param {string} option - the option the group buttons will be set to
-     * @requires data-attribute 'option' (unique for group) assigned to every radio-btn
-     */
-    $('input[name="' + groupId + '"][data-option="' + option + '"]').prop('checked', true);
-    $('input[name="' + groupId + '"][data-option="' + option + '"]').closest('label').addClass('active');
-    // and uncheck all others
-    $('input[name="' + groupId + '"]').not('[data-option="' + option + '"]').each(function() {
-        $(this).prop('checked', false);
-        $(this).closest('label').removeClass('active');
-    });
-    chargeLimitationOptionsShowHide($('#' + $.escapeSelector(groupId)), option)
-}
diff --git a/web/themes/Gauges/livechart.js b/web/themes/Gauges/livechart.js
deleted file mode 100644
index 967b1f29c2..0000000000
--- a/web/themes/Gauges/livechart.js
+++ /dev/null
@@ -1,921 +0,0 @@
-var style = getComputedStyle(document.body);
-var fontCol = style.getPropertyValue('--fontCol');
-var gridCol = style.getPropertyValue('--gridCol');
-var xgridCol = style.getPropertyValue('--xgridCol');
-var gridSocCol = style.getPropertyValue('--gridSocCol');
-var tickCol = style.getPropertyValue('--tickCol');
-var lp1Col = style.getPropertyValue('--lp1Col');
-var lp1bgCol = style.getPropertyValue('--lp1bgCol');
-var lp2Col = style.getPropertyValue('--lp2Col');
-var lp2bgCol = style.getPropertyValue('--lp2bgCol');
-var evuCol = style.getPropertyValue('--evuCol');
-var evubgCol = style.getPropertyValue('--evubgCol');
-var pvCol = style.getPropertyValue('--pvCol');
-var pvbgCol = style.getPropertyValue('--pvbgCol');
-var speicherCol = style.getPropertyValue('--speicherCol');
-var speicherSocCol = style.getPropertyValue('--speicherSocCol');
-var speicherbgCol = style.getPropertyValue('--speicherbgCol');
-var speicherSocbgCol = style.getPropertyValue('--speicherSocbgCol');
-var lp1SocCol = style.getPropertyValue('--lp1SocCol');
-var lp2SocCol = style.getPropertyValue('--lp2SocCol');
-var hausverbrauchCol = style.getPropertyValue('--hausverbrauchCol');
-var hausverbrauchbgCol = style.getPropertyValue('--hausverbrauchbgCol');
-var lpgesamtCol = style.getPropertyValue('--lpgesamtCol');
-var lpgesamtbgCol = style.getPropertyValue('--lpgesamtbgCol');
-var lp3Col = style.getPropertyValue('--lp3Col');
-var lp3bgCol = style.getPropertyValue('--lp3bgCol');
-var lp4Col = style.getPropertyValue('--lp4Col');
-var lp4bgCol = style.getPropertyValue('--lp4bgCol');
-var lp5Col = style.getPropertyValue('--lp5Col');
-var lp5bgCol = style.getPropertyValue('--lp5bgCol');
-var lp6Col = style.getPropertyValue('--lp6Col');
-var lp6bgCol = style.getPropertyValue('--lp6bgCol');
-var lp7Col = style.getPropertyValue('--lp7Col');
-var lp7bgCol = style.getPropertyValue('--lp7bgCol');
-var lp8Col = style.getPropertyValue('--lp8Col');
-var lp8bgCol = style.getPropertyValue('--lp8bgCol');
-var verbraucher1Col = style.getPropertyValue('--verbraucher1Col');
-var verbraucher1bgCol = style.getPropertyValue('--verbraucher1bgCol');
-var verbraucher2Col = style.getPropertyValue('--verbraucher2Col');
-var verbraucher2bgCol = style.getPropertyValue('--verbraucher2bgCol');
-var d1Col = style.getPropertyValue('--d1Col');
-var d1bgCol = style.getPropertyValue('--d1bgCol');
-var d2Col = style.getPropertyValue('--d2Col');
-var d2bgCol = style.getPropertyValue('--d2bgCol');
-var d3Col = style.getPropertyValue('--d3Col');
-var d3bgCol = style.getPropertyValue('--d3bgCol');
-var d4Col = style.getPropertyValue('--d4Col');
-var d4bgCol = style.getPropertyValue('--d4bgCol');
-var d5Col = style.getPropertyValue('--d5Col');
-var d5bgCol = style.getPropertyValue('--d5bgCol');
-var d6Col = style.getPropertyValue('--d6Col');
-var d6bgCol = style.getPropertyValue('--d6bgCol');
-var d7Col = style.getPropertyValue('--d7Col');
-var d7bgCol = style.getPropertyValue('--d7bgCol');
-var d8Col = style.getPropertyValue('--d8Col');
-var d8bgCol = style.getPropertyValue('--d8bgCol');
-var d9Col = style.getPropertyValue('--d9Col');
-var d9bgCol = style.getPropertyValue('--d9bgCol');
-
-var initialread = 0;
-var graphloaded = 0;
-var boolDisplayHouseConsumption;
-var boolDisplayLoad1;
-var boolDisplayLp1Soc;
-var boolDisplayLoad2;
-var boolDisplayLp2Soc;
-var boolDisplayLp1;
-var boolDisplayLp2;
-var boolDisplayLp3;
-var boolDisplayLp4;
-var boolDisplayLp5;
-var boolDisplayLp6;
-var boolDisplayLp7;
-var boolDisplayLp8;
-var boolDisplayLpAll;
-var boolDisplaySpeicherSoc;
-var boolDisplaySpeicher;
-var boolDisplayEvu;
-var boolDisplayPv;
-var boolDisplayLegend;
-var boolDisplayLiveGraph;
-var boolDisplayshd1;
-var boolDisplayshd2;
-var boolDisplayshd3;
-var boolDisplayshd4;
-var boolDisplayshd5;
-var boolDisplayshd6;
-var boolDisplayshd7;
-var boolDisplayshd8;
-var boolDisplayshd9;
-var d1name = 'Device 1';
-var d2name = 'Device 2';
-var d3name = 'Device 3';
-var d4name = 'Device 4';
-var d5name = 'Device 5';
-var d6name = 'Device 6';
-var d7name = 'Device 7';
-var d8name = 'Device 8';
-var d9name = 'Device 9';
-var all1 = 0;
-var all2 = 0;
-var all3 = 0;
-var all4 = 0;
-var all5 = 0;
-var all6 = 0;
-var all7 = 0;
-var all8 = 0;
-var all9 = 0;
-var all10 = 0;
-var all11 = 0;
-var all12 = 0;
-var all13 = 0;
-var all14 = 0;
-var all15 = 0;
-var all16 = 0;
-var all1p;
-var all2p;
-var all3p;
-var all4p;
-var all5p;
-var all6p;
-var all7p;
-var all8p;
-var all9p;
-var all10p;
-var all11p;
-var all12p;
-var all13p;
-var all14p;
-var all15p;
-var all16p;
-
-var hidehaus;
-var myLine;
-
-function loadgraph(animationDuration = 1000) {
-	var lineChartData = {
-		labels: atime,
-		datasets: [{
-			label: 'Lp1',
-			borderColor: lp1Col,
-			backgroundColor: lp1bgCol,
-			borderWidth: 2,
-			hidden: boolDisplayLp1,
-			fill: false,
-			lineTension: 0.2,
-			data: alp1,
-			yAxisID: 'y-axis-1'
-		} , {
-			label: 'Lp2',
-			borderColor: lp2Col,
-			backgroundColor: lp2bgCol,
-			borderWidth: 2,
-			hidden: boolDisplayLp2,
-			fill: false,
-			lineTension: 0.2,
-			data: alp2,
-			yAxisID: 'y-axis-1'
-		} , {
-			label: 'EVU',
-			borderColor: evuCol,
-			backgroundColor: evubgCol,
-			borderWidth: 1,
-			fill: true,
-			lineTension: 0.2,
-			data: abezug,
-			hidden: boolDisplayEvu,
-			yAxisID: 'y-axis-1'
-		} , {
-			label: 'PV',
-			borderColor: pvCol,
-			backgroundColor: pvbgCol,
-			fill: true,
-			lineTension: 0.2,
-			hidden: boolDisplayPv,
-			borderWidth: 1,
-			data: apv,
-			yAxisID: 'y-axis-1'
-		}  , {
-			label: 'Speicher',
-			borderColor: speicherCol,
-			backgroundColor: speicherbgCol,
-			fill: true,
-			lineTension: 0.2,
-			borderWidth: 1,
-			data: aspeicherl,
-			hidden: boolDisplaySpeicher,
-			yAxisID: 'y-axis-1'
-		} , {
-			label: 'Speicher SoC',
-			borderColor: speicherSocCol,
-			backgroundColor: speicherSocbgCol,
-			borderDash: [10,5],
-			hidden: boolDisplaySpeicherSoc,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: aspeichersoc,
-			yAxisID: 'y-axis-2'
-		} , {
-			label: 'LP1 SoC',
-			borderColor: lp1SocCol,
-			borderDash: [10,5],
-			borderWidth: 2,
-			hidden: boolDisplayLp1Soc,
-			fill: false,
-			lineTension: 0.2,
-			data: asoc,
-			yAxisID: 'y-axis-2'
-		} , {
-			label: 'LP2 SoC',
-			borderColor: lp2SocCol,
-			borderDash: [10,5],
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			hidden: boolDisplayLp2Soc,
-			data: asoc1,
-			yAxisID: 'y-axis-2'
-		} , {
-			label: 'Hausverbrauch',
-			borderColor: hausverbrauchCol,
-			backgroundColor: hausverbrauchbgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			hidden: boolDisplayHouseConsumption,
-			data: ahausverbrauch,
-			yAxisID: 'y-axis-1'
-		} , {
-			label: 'Verbraucher 1',
-			borderColor: verbraucher1Col,
-			backgroundColor: verbraucher1bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			hidden: boolDisplayLoad1,
-			data: averbraucher1,
-			yAxisID: 'y-axis-1'
-		} , {
-			label: 'Verbraucher 2',
-			borderColor: verbraucher2Col,
-			backgroundColor: verbraucher2bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: averbraucher2,
-			hidden: boolDisplayLoad2,
-			yAxisID: 'y-axis-1'
-		} , {
-			label: 'LP Gesamt',
-			borderColor: lpgesamtCol,
-			backgroundColor: lpgesamtbgCol,
-			fill: true,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: alpa,
-			hidden: boolDisplayLpAll,
-			yAxisID: 'y-axis-1'
-		} , {
-			label: 'Lp3',
-			borderColor: lp3Col,
-			backgroundColor: lp3bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: alp3,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayLp3
-		} , {
-			label: 'Lp4',
-			borderColor: lp4Col,
-			backgroundColor: lp4bgCol,
-			fill: false,
-			lineTension: 0.2,
-			data: alp4,
-			borderWidth: 2,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayLp4
-		} , {
-			label: 'Lp5',
-			borderColor: lp5Col,
-			backgroundColor: lp5bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: alp5,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayLp5
-		} , {
-			label: 'Lp6',
-			borderColor: lp6Col,
-			backgroundColor: lp6bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: alp6,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayLp6
-		} , {
-			label: 'Lp7',
-			borderColor: lp7Col,
-			backgroundColor: lp7bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: alp7,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayLp7
-		} , {
-			label: 'Lp8',
-			borderColor: lp8Col,
-			backgroundColor: lp8bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: alp8,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayLp8
-		}, {
-			label: d1name,
-			borderColor: d1Col,
-			backgroundColor: d1bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd1,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd1
-		}, {
-			label: d2name,
-			borderColor: d2Col,
-			backgroundColor: d2bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd2,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd2
-		}, {
-			label: d3name,
-			borderColor: d3Col,
-			backgroundColor: d3bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd3,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd3
-		}, {
-			label: d4name,
-			borderColor: d4Col,
-			backgroundColor: d4bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd4,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd4
-		}, {
-			label: d5name,
-			borderColor: d5Col,
-			backgroundColor: d5bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd5,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd5
-		}, {
-			label: d6name,
-			borderColor: d6Col,
-			backgroundColor: d6bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd6,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd6
-		}, {
-			label: d7name,
-			borderColor: d7Col,
-			backgroundColor: d7bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd7,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd7
-		}, {
-			label: d8name,
-			borderColor: d8Col,
-			backgroundColor: d8bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd8,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd8
-		}, {
-			label: d9name,
-			borderColor: d9Col,
-			backgroundColor: d9bgCol,
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd9,
-			yAxisID: 'y-axis-1',
-			hidden: boolDisplayshd9
-		}/*, {
-			label: 'Device 1t0',
-			borderColor: "rgba(250, 250, 155, 0.7)",
-			backgroundColor: 'blue',
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd1t0,
-			yAxisID: 'y-axis-2',
-			hidden: boolDisplayLp8
-		}, {
-			label: 'Device 1t1',
-			borderColor: "rgba(150, 250, 255, 0.7)",
-			backgroundColor: 'blue',
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd1t1,
-			yAxisID: 'y-axis-2',
-			hidden: boolDisplayLp8
-		}, {
-			label: 'Device 1t2',
-			borderColor: "rgba(255, 150, 255, 0.7)",
-			backgroundColor: 'blue',
-			fill: false,
-			lineTension: 0.2,
-			borderWidth: 2,
-			data: ashd1t2,
-			yAxisID: 'y-axis-2',
-			hidden: boolDisplayLp8
-		}*/
-		]
-	}
-
-	function getMaxTicksLimit(width) {
-		if ( width < 350 ) {
-			return 6;
-		} else if ( width < 470 ) {
-			return 9;
-		} else if ( width < 768 ) {
-			return 12;
-		} else {
-			return 18;
-		}
-	}
-
-	function setGraphLineBorderWidth(theGraph, newWidth) {
-		// sets borderWidth attribute for all single lines without fill
-		for ( var index = 0; index < theGraph.config.data.datasets.length; index++) {
-			if ( !theGraph.config.data.datasets[index].fill ) {
-				theGraph.config.data.datasets[index].borderWidth = newWidth;
-			}
-		}
-	}
-
-	function doGraphResponsive(chartInstance) {
-		// changes graph responding to screen size
-		// quantity of x-axis labels
-		chartInstance.config.options.scales.xAxes[0].ticks.maxTicksLimit = getMaxTicksLimit(chartInstance.width);
-		// other settings
-		if ( chartInstance.width > 390 ) {
-			setGraphLineBorderWidth(chartInstance, 2);
-			chartInstance.config.options.scales.xAxes[0].ticks.fontSize = 12;
-			chartInstance.config.options.scales.yAxes[0].ticks.fontSize = 12;
-			chartInstance.config.options.scales.yAxes[0].scaleLabel.fontSize = 12;
-			chartInstance.config.options.scales.yAxes[1].ticks.fontSize = 12;
-			chartInstance.config.options.scales.yAxes[1].scaleLabel.fontSize = 12;
-		} else {
-			setGraphLineBorderWidth(chartInstance, 1);
-			chartInstance.config.options.scales.xAxes[0].ticks.fontSize = 10;
-			chartInstance.config.options.scales.yAxes[0].ticks.fontSize = 9;
-			chartInstance.config.options.scales.yAxes[0].scaleLabel.fontSize = 10;
-			chartInstance.config.options.scales.yAxes[1].ticks.fontSize = 9;
-			chartInstance.config.options.scales.yAxes[1].scaleLabel.fontSize = 10;
-		}
-
-		chartInstance.update();
-	}
-
-	var ctx = document.getElementById('canvas').getContext('2d');
-
-	window.myLine = new Chart.Line(ctx, {
-		plugins: {
-			afterInit: doGraphResponsive,
-			resize: doGraphResponsive
-		},
-		data: lineChartData,
-		options: {
-			tooltips: {
-				enabled: false
-			},
-			elements: {
-				point: {
-					radius: 0
-				}
-			},
-			animation: {
-				duration: animationDuration,
-				onComplete: function(animation) {
-					// if duration was set to 0 to avoid pumping after reload, set back to default
-					this.options.animation.duration = 1000
-				}
-			},
-			responsive: true,
-			maintainAspectRatio: false,
-			hover: {
-				mode: 'null'
-			},
-			stacked: false,
-			legend: {
-				display: boolDisplayLegend,
-				labels: {
-					fontColor: fontCol,
-					filter: function(item,chart) {
-						if ( item.text.includes(hidehaus) || item.text.includes(hideload2) || item.text.includes(hideload1) || item.text.includes(hidelp2soc) || item.text.includes(hidelp1soc) || item.text.includes(hidelp1) || item.text.includes(hidelp2) || item.text.includes(hidelp3) || item.text.includes(hidelp4) || item.text.includes(hidelp5) || item.text.includes(hidelp6) || item.text.includes(hidelp7) || item.text.includes(hidelp8) || item.text.includes(hidespeichersoc) || item.text.includes(hidespeicher) || item.text.includes(hidelpa) || item.text.includes(hidepv) || item.text.includes(hideevu) || item.text.includes(hideshd1)|| item.text.includes(hideshd2)|| item.text.includes(hideshd3)|| item.text.includes(hideshd4)|| item.text.includes(hideshd5)|| item.text.includes(hideshd6) || item.text.includes(hideshd7) || item.text.includes(hideshd8)|| item.text.includes(hideshd9) ) { return false } else { return true}
-					}
-				}
-			},
-			title: {
-				display: false
-			},
-			scales: {
-				xAxes: [
-					{
-						gridLines: {
-							color: xgridCol
-						},
-					ticks: {
-							fontColor: tickCol,
-							maxTicksLimit: 15
-					}
-				}],
-				yAxes: [
-					{
-						// horizontal line for values displayed on the left side (power)
-						position: 'left',
-						id: 'y-axis-1',
-						type: 'linear',
-						display: true,
-						scaleLabel: {
-						display: true,
-						labelString: 'Leistung [kW]',
-						fontColor: fontCol
-					},
-						gridLines: {
-							color: gridCol
-						},
-						ticks: {
-							stepSize: 0.2,
-							maxTicksLimit: 10,
-							fontColor: tickCol
-						}
-					},{
-						// horizontal line for values displayed on the right side (SoC)
-						position: 'right',
-						id: 'y-axis-2',
-						type: 'linear',
-						display: true,
-						scaleLabel: {
-							display: true,
-							labelString: 'SoC [%]',
-							fontColor: fontCol
-						},
-						gridLines: {
-							// black, opacity = 0% (invisible)
-							color: gridSocCol,
-						},
-						ticks: {
-							min: 0,
-							suggestedMax: 100,
-							fontColor: tickCol
-						}
-					}
-				]
-			}
-		}
-	});
-	initialread = 1;
-	$('#waitforgraphloadingdiv').hide();
-}  // end loadgraph
-// Sichtbarkeit für SmartHome Devices im Graph
-function setvisibility(datarr,hidevar,hidevalue,booldisplay){
-	var arrayLength = datarr.length;
-	var vis=0
-	for (var i = 0; i < arrayLength; i++) {
-		if (( datarr[i] >= 0.010) || (datarr[i] <=- 0.010)) {
-			vis=1
-		}
-	}
-	if ( vis == 0){
-		window[hidevar] = hidevalue;
-		window[booldisplay] = true;
-	} else {
-		window[hidevar] = 'foo';
-		window[booldisplay] = false;
-
-	}
-}
-function putgraphtogether() {
-	if ( (all1 == 1) && (all2 == 1) && (all3 == 1) && (all4 == 1) && (all5 == 1) && (all6 == 1) && (all7 == 1) && (all8 == 1) && (all9 == 1) && (all10 == 1) && (all11 == 1) && (all12 == 1) && (all13 == 1) && (all14 == 1) && (all15 == 1) && (all16 == 1) ){
-		var alldata = all1p + "\n" + all2p + "\n" + all3p + "\n" + all4p + "\n" + all5p + "\n" + all6p + "\n" + all7p + "\n" + all8p + "\n" + all9p + "\n" + all10p + "\n" + all11p + "\n" + all12p + "\n" + all13p + "\n" + all14p + "\n" + all15p + "\n" + all16p;
-		alldata = alldata.replace(/^\s*[\n]/gm, "");
-		alldata = alldata.replace(/^\s*-[\n]/gm, "");
-		var csvData = [];
-		var rawcsv = alldata.split(/\r?\n|\r/);
-		for (var i = 0; i < rawcsv.length; i++) {
-			  csvData.push(rawcsv[i].split(","));
-		}
-		csvData.pop();
-		// Retrieved data from csv file content
-		var splittime = [];
-		getCol(csvData, 0).forEach(function(zeit){
-			splittime.push(zeit.substring(0, zeit.length -3));
-		});
-		atime = splittime;
-		if ( atime.length >= 30 ) {
-			//atime = getCol(csvData, 0);
-			abezug = convertToKw(getCol(csvData, 1));
-			alpa = convertToKw(getCol(csvData, 2));
-			apv = convertToKw(getCol(csvData, 3));
-			alp1 = convertToKw(getCol(csvData, 4));
-			alp2 = convertToKw(getCol(csvData, 5));
-			aspeicherl = convertToKw(getCol(csvData, 7));
-			aspeichersoc = getCol(csvData, 8);
-			asoc = getCol(csvData, 9);
-			asoc1 = getCol(csvData, 10);
-			ahausverbrauch = convertToKw(getCol(csvData, 11));
-			averbraucher1 = convertToKw(getCol(csvData, 12));
-			averbraucher2 = convertToKw(getCol(csvData, 13));
-			alp3 = convertToKw(getCol(csvData, 14));
-			alp4 = convertToKw(getCol(csvData, 15));
-			alp5 = convertToKw(getCol(csvData, 16));
-			alp6 = convertToKw(getCol(csvData, 17));
-			alp7 = convertToKw(getCol(csvData, 18));
-			alp8 = convertToKw(getCol(csvData, 19));
-			ashd1 = convertToKw(getCol(csvData, 20));
-			ashd2 = convertToKw(getCol(csvData, 21));
-			ashd3 = convertToKw(getCol(csvData, 22));
-			ashd4 = convertToKw(getCol(csvData, 23));
-			ashd5 = convertToKw(getCol(csvData, 24));
-			ashd6 = convertToKw(getCol(csvData, 25));
-			ashd7 = convertToKw(getCol(csvData, 26));
-			ashd8 = convertToKw(getCol(csvData, 27));
-			ashd9 = convertToKw(getCol(csvData, 28));
-			//ashd1t0 = getCol(csvData, 29);
-			//ashd1t1 = getCol(csvData, 30);
-			//ashd1t2 = getCol(csvData, 31);
-			setvisibility(alp3,'hidelp3','Lp3');
-			setvisibility(alp4,'hidelp4','Lp4');
-			setvisibility(alp5,'hidelp5','Lp5');
-			setvisibility(alp6,'hidelp6','Lp6');
-			setvisibility(alp7,'hidelp7','Lp7');
-			setvisibility(alp8,'hidelp8','Lp8');
-			setvisibility(ashd1,'hideshd1',d1name,'boolDisplayshd1');
-			setvisibility(ashd2,'hideshd2',d2name,'boolDisplayshd2');
-			setvisibility(ashd3,'hideshd3',d3name,'boolDisplayshd3');
-			setvisibility(ashd4,'hideshd4',d4name,'boolDisplayshd4');
-			setvisibility(ashd5,'hideshd5',d5name,'boolDisplayshd5');
-			setvisibility(ashd6,'hideshd6',d6name,'boolDisplayshd6');
-			setvisibility(ashd7,'hideshd7',d7name,'boolDisplayshd7');
-			setvisibility(ashd8,'hideshd8',d8name,'boolDisplayshd8');
-			setvisibility(ashd9,'hideshd9',d9name,'boolDisplayshd9');
-
-			initialread = 1 ;
-			// after receipt of all 8 first data segments, unsubscribe from these topics to save bandwidth
-			unsubscribeMqttGraphSegments();
-
-			checkgraphload();
-		} else {
-			all1 = 0;
-			all2 = 0;
-			all3 = 0;
-			all4 = 0;
-			all5 = 0;
-			all6 = 0;
-			all7 = 0;
-			all8 = 0;
-			all9 = 0;
-			all10 = 0;
-			all11 = 0;
-			all12 = 0;
-			all13 = 0;
-			all14 = 0;
-			all15 = 0;
-			all16 = 0;
-
-			var percent = (atime.length / 60 * 100).toFixed();
-			$('#waitforgraphloadingdiv').text('Erst ca. ' + percent + '% der mindestens benötigten Datenpunkte für den Graph seit Neustart vorhanden.');
-		}
-	}
-}  // end putgraphtogether
-
-function updateGraph(dataset) {
-	var lines = dataset.split("\n");
-	for (var i = 0; i < lines.length; i++) {
-		var ldate = lines[i].split(",")[0];
-		var lbezug = lines[i].split(",")[1];
-		var lpv = lines[i].split(",")[3];
-		var llp2 = lines[i].split(",")[5];
-		var lspeicherl = lines[i].split(",")[7];
-		var lsoc = lines[i].split(",")[9];
-		var lspeichersoc = lines[i].split(",")[8];
-		var lpa = lines[i].split(",")[2];
-		var llp1 = lines[i].split(",")[4];
-		var lsoc1 = lines[i].split(",")[10];
-		var lhausverbrauch = lines[i].split(",")[11];
-		var lverbraucher1 = lines[i].split(",")[12];
-		var lverbraucher2 = lines[i].split(",")[13];
-		var lp3 = lines[i].split(",")[14];
-		var lp4 = lines[i].split(",")[15];
-		var lp5 = lines[i].split(",")[16];
-		var lp6 = lines[i].split(",")[17];
-		var lp7 = lines[i].split(",")[18];
-		var lp8 = lines[i].split(",")[19];
-		var shd1 = lines[i].split(",")[20];
-		var shd2 = lines[i].split(",")[21];
-		var shd3 = lines[i].split(",")[22];
-		var shd4 = lines[i].split(",")[23];
-		var shd5 = lines[i].split(",")[24];
-		var shd6 = lines[i].split(",")[25];
-		var shd7 = lines[i].split(",")[26];
-		var shd8 = lines[i].split(",")[27];
-		var shd9 = lines[i].split(",")[28];
-		//var shd1t0 = lines[i].split(",")[29];
-		//var shd1t1 = lines[i].split(",")[30];
-		//var shd1t2 = lines[i].split(",")[31];
-
-	}
-	myLine.data.labels.push(ldate.substring(0, ldate.length -3));
-	myLine.data.datasets[2].data.push(lbezug / 1000);
-	myLine.data.datasets[3].data.push(lpv / 1000);
-	myLine.data.datasets[4].data.push(lspeicherl / 1000);
-	myLine.data.datasets[5].data.push(lspeichersoc);
-	myLine.data.datasets[6].data.push(lsoc);
-	myLine.data.datasets[0].data.push(llp1 / 1000);
-	myLine.data.datasets[1].data.push(llp2 / 1000);
-	myLine.data.datasets[7].data.push(lsoc1);
-	myLine.data.datasets[8].data.push(lhausverbrauch / 1000);
-	myLine.data.datasets[9].data.push(lverbraucher1 / 1000);
-	myLine.data.datasets[10].data.push(lverbraucher2 / 1000);
-	myLine.data.datasets[11].data.push(lpa / 1000);
-	myLine.data.datasets[12].data.push(lp3 / 1000);
-	myLine.data.datasets[13].data.push(lp4 / 1000);
-	myLine.data.datasets[14].data.push(lp5 / 1000);
-	myLine.data.datasets[15].data.push(lp6 / 1000);
-	myLine.data.datasets[16].data.push(lp7 / 1000);
-	myLine.data.datasets[17].data.push(lp8 / 1000);
-	myLine.data.datasets[18].data.push(shd1 / 1000);
-	myLine.data.datasets[19].data.push(shd2 / 1000);
-	myLine.data.datasets[20].data.push(shd3 / 1000);
-	myLine.data.datasets[21].data.push(shd4 / 1000);
-	myLine.data.datasets[22].data.push(shd5 / 1000);
-	myLine.data.datasets[23].data.push(shd6 / 1000);
-	myLine.data.datasets[24].data.push(shd7 / 1000);
-	myLine.data.datasets[25].data.push(shd8 / 1000);
-	myLine.data.datasets[26].data.push(shd9 / 1000);
-	//myLine.data.datasets[27].data.push(shd1t0);
-	//myLine.data.datasets[28].data.push(shd1t1);
-	//myLine.data.datasets[29].data.push(shd1t2);
-	myLine.data.labels.splice(0, 1);
-	myLine.data.datasets.forEach(function(dataset) {
-		dataset.data.splice(0, 1);
-	});
-	myLine.update();
-}
-
-function checkgraphload(){
-	if ( graphloaded == 1 ) {
-		myLine.destroy();
-		loadgraph();
-		return;
-	}
-	if ( typeof boolDisplayHouseConsumption === "boolean" &&
-		typeof boolDisplayLoad1 === "boolean" &&
-		typeof boolDisplayLp1Soc === "boolean" &&
-		typeof boolDisplayLp2Soc === "boolean" &&
-		typeof boolDisplayLoad2 === "boolean" &&
-		typeof boolDisplayLp1 === "boolean" &&
-		typeof boolDisplayLp2 === "boolean" &&
-		typeof boolDisplayLp3 === "boolean" &&
-		typeof boolDisplayLp4 === "boolean" &&
-		typeof boolDisplayLp5 === "boolean" &&
-		typeof boolDisplayLp6 === "boolean" &&
-		typeof boolDisplayLp7 === "boolean" &&
-		typeof boolDisplayLp8 === "boolean" &&
-		typeof boolDisplayLpAll === "boolean" &&
-		typeof boolDisplaySpeicherSoc === "boolean" &&
-		typeof boolDisplaySpeicher === "boolean" &&
-		typeof boolDisplayEvu === "boolean" &&
-		typeof boolDisplayPv === "boolean" &&
-		typeof boolDisplayLegend === "boolean" ) {
-		if ( initialread != 0 ) {
-			if ( graphloaded == 0 ) {
-				graphloaded = 1;
-			} else {
-				myLine.destroy();
-			}
-			loadgraph();
-		}
-	}
-}
-
-$(document).ready(function(){
-	setTimeout(forcegraphload, 15000);
-});
-
-function forcegraphload() {
-	if ( graphloaded == 0 ) {
-		if ( !(typeof boolDisplayHouseConsumption === "boolean") ) {
-			showhidedataset('boolDisplayHouseConsumption');
-		}
-		if ( !(typeof boolDisplayLoad1 === "boolean") ) {
-			showhidedataset('boolDisplayLoad1');
-		}
-		if ( !(typeof boolDisplayLp1Soc === "boolean") ) {
-			showhidedataset('boolDisplayLp1Soc');
-		}
-		if ( !(typeof boolDisplayLp2Soc === "boolean") ) {
-			showhidedataset('boolDisplayLp2Soc');
-		}
-		if ( !(typeof boolDisplayLoad2 === "boolean") ) {
-			showhidedataset('boolDisplayLoad2');
-		}
-		if ( !(typeof boolDisplayLp1 === "boolean") ) {
-			showhidedataset('boolDisplayLp1');
-		}
-		if ( !(typeof boolDisplayLp2 === "boolean") ) {
-			showhidedataset('boolDisplayLp2');
-		}
-		if ( !(typeof boolDisplayLp3 === "boolean") ) {
-			showhidedataset('boolDisplayLp3');
-		}
-		if ( !(typeof boolDisplayLp4 === "boolean") ) {
-			showhidedataset('boolDisplayLp4');
-		}
-		if ( !(typeof boolDisplayLp5 === "boolean") ) {
-			showhidedataset('boolDisplayLp5');
-		}
-		if ( !(typeof boolDisplayLp6 === "boolean") ) {
-			showhidedataset('boolDisplayLp6');
-		}
-		if ( !(typeof boolDisplayLp7 === "boolean") ) {
-			showhidedataset('boolDisplayLp7');
-		}
-		if ( !(typeof boolDisplayLp8 === "boolean") ) {
-			showhidedataset('boolDisplayLp8');
-		}
-		if ( !(typeof boolDisplayLpAll === "boolean") ) {
-			showhidedataset('boolDisplayLpAll');
-		}
-		if ( !(typeof boolDisplaySpeicherSoc === "boolean") ) {
-			showhidedataset('boolDisplaySpeicherSoc');
-		}
-		if ( !(typeof boolDisplaySpeicher === "boolean") ) {
-			showhidedataset('boolDisplaySpeicher');
-		}
-		if ( !(typeof boolDisplayEvu === "boolean") ) {
-			showhidedataset('boolDisplayEvu');
-		}
-		if ( !(typeof boolDisplayPv === "boolean") ) {
-			showhidedataset('boolDisplayPv');
-		}
-		if ( !(typeof boolDisplayLegend === "boolean") ) {
-			showhidedataset('boolDisplayLegend');
-		}
-		checkgraphload();
-	}
-}  // end forcegraphload
-
-function showhidedataset(thedataset) {
-	if ( window[thedataset] == true ) {
-		publish("1","openWB/graph/"+thedataset);
-	} else if ( window[thedataset] == false ) {
-		publish("0","openWB/graph/"+thedataset);
-	} else {
-		publish("1","openWB/graph/"+thedataset);
-	}
-}
-
-function showhidelegend(thedataset) {
-	if ( window[thedataset] == true ) {
-		publish("0","openWB/graph/"+thedataset);
-	} else if ( window[thedataset] == false ) {
-		publish("1","openWB/graph/"+thedataset);
-	} else {
-		publish("0","openWB/graph/"+thedataset);
-	}
-}
-
-function showhide(thedataset) {
-	if ( window[thedataset] == 0 ) {
-		publish("1","openWB/graph/"+thedataset);
-	} else if ( window[thedataset] == 1 ) {
-		publish("0","openWB/graph/"+thedataset);
-	} else {
-		publish("1","openWB/graph/"+thedataset);
-	}
-}
-
-function subscribeMqttGraphSegments() {
-	for (var segments = 1; segments < 17; segments++) {
-		topic = "openWB/graph/" + segments + "alllivevalues";
-		client.subscribe(topic, {qos: 0});
-	}
-}
-
-function unsubscribeMqttGraphSegments() {
-	for (var segments = 1; segments < 17; segments++) {
-		topic = "openWB/graph/" + segments + "alllivevalues";
-		client.unsubscribe(topic);
-	}
-}
diff --git a/web/themes/Gauges/preview.png b/web/themes/Gauges/preview.png
deleted file mode 100644
index cec0365a2e..0000000000
Binary files a/web/themes/Gauges/preview.png and /dev/null differ
diff --git a/web/themes/Gauges/processAllMqttMsg.js b/web/themes/Gauges/processAllMqttMsg.js
deleted file mode 100644
index a18e8575b9..0000000000
--- a/web/themes/Gauges/processAllMqttMsg.js
+++ /dev/null
@@ -1,1071 +0,0 @@
-/**
- * Functions to update graph and gui values via MQTT-messages
- *
- * @author Kevin Wieland
- * @author Michael Ortenstein
- */
-var graphrefreshcounter = 0;
-function getCol(matrix, col){
-	var column = [];
-	for(var i=0; i<matrix.length; i++){
-		column.push(matrix[i][col]);
-	}
-	return column;
-}
-
-function convertToKw(dataColum) {
-	var convertedDataColumn = [];
-	dataColum.forEach((value) => {
-		convertedDataColumn.push(value / 1000);
-	});
-	return convertedDataColumn;
-}
-
-function getIndex(topic) {
-	// get occurrence of numbers between / / in topic
-	// since this is supposed to be the index like in openwb/lp/4/w
-	// no lookbehind supported by safari, so workaround with replace needed
-	var index = topic.match(/(?:\/)([0-9]+)(?=\/)/g)[0].replace(/[^0-9]+/g, '');
-	if ( typeof index === 'undefined' ) {
-		index = '';
-	}
-	return index;
-}
-
-function handlevar(mqttmsg, mqttpayload) {
-	// receives all messages and calls respective function to process them
-	if ( mqttmsg.match( /^openwb\/graph\//i ) ) { processGraphMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/evu\//i) ) { processEvuMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/global\/awattar\//i) ) { processETProviderMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/global\/ETProvider\//i) ) { processETProviderMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/global\//i) ) { processGlobalMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/housebattery\//i) ) { processHousebatteryMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/system\//i) ) { processSystemMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/pv\//i) ) { processPvMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/verbraucher\//i) ) { processVerbraucherMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/lp\//i) ) { processLpMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/hook\//i) ) { processHookMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/SmartHome\/Devices\//i) ) { processSmartHomeDevicesMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/config\/get\/SmartHome\/Devices\//i) ) { processSmartHomeDevicesConfigMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/config\/get\/sofort\/lp\//i) ) { processSofortConfigMessages(mqttmsg, mqttpayload); }
-	else if ( mqttmsg.match( /^openwb\/config\/get\/pv\//i) ) { processPvConfigMessages(mqttmsg, mqttpayload); }
-}  // end handlevar
-
-function processETProviderMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/global
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg == 'openWB/global/ETProvider/providerName' ) {
-		$('.etproviderName').text(mqttpayload);
-	}
-	else if ( mqttmsg == 'openWB/global/ETProvider/modulePath' ) {
-		$('.etproviderLink').attr("href", "/openWB/modules/"+mqttpayload+"/stromtarifinfo/infopage.php");
-	}
-	else if ( mqttmsg == 'openWB/global/awattar/boolAwattarEnabled' ) {
-		// sets icon, graph and price-info-field visible/invisible
-		if ( mqttpayload == '1' ) {
-			$('#etproviderEnabledIcon').removeClass('hide');
-			$('#priceBasedCharging').removeClass('hide');
-			$('#strompreis').removeClass('hide');
-			$('#navStromtarifInfo').removeClass('hide');
-		} else {
-			$('#etproviderEnabledIcon').addClass('hide');
-			$('#priceBasedCharging').addClass('hide');
-			$('#strompreis').addClass('hide');
-			$('#navStromtarifInfo').addClass('hide');
-		}
-	}
-	else if ( mqttmsg == 'openWB/global/awattar/pricelist' ) {
-		// read etprovider values and trigger graph creation
-		// loadElectricityPriceChart will show electricityPriceChartCanvas if etprovideraktiv=1 in openwb.conf
-		// graph will be redrawn after 5 minutes (new data pushed from cron5min.sh)
-		var csvData = [];
-		var rawcsv = mqttpayload.split(/\r?\n|\r/);
-		// skip first entry: it is module-name responsible for list
-		for (var i = 1; i < rawcsv.length; i++) {
-			csvData.push(rawcsv[i].split(','));
-		}
-		// Timeline (x-Achse) ist UNIX Timestamp in UTC, deshalb Umrechnung (*1000) in Javascript-Timestamp (mit Millisekunden)
-		electricityPriceTimeline = getCol(csvData, 0).map(function(x) { return x * 1000; });
-		// Chartline (y-Achse) ist Preis in ct/kWh
-		electricityPriceChartline = getCol(csvData, 1);
-
-		loadElectricityPriceChart();
-	}
-	else if ( mqttmsg == 'openWB/global/awattar/MaxPriceForCharging' ) {
-		setInputValue('MaxPriceForCharging', mqttpayload);
-	}
-	else if ( mqttmsg == 'openWB/global/awattar/ActualPriceForCharging' ) {
-		$('#aktuellerStrompreis').text(parseFloat(mqttpayload).toLocaleString(undefined, {maximumFractionDigits: 2}) + ' ct/kWh');
-	}
-
-}
-
-function processPvConfigMessages(mqttmsg, mqttpayload) {
-	processPreloader(mqttmsg);
-	if ( mqttmsg == 'openWB/config/get/pv/priorityModeEVBattery' ) {
-		// sets button color in charge mode modal and sets icon in mode select button
-		switch (mqttpayload) {
-			case '0':
-				// battery priority
-				$('#evPriorityBtn').removeClass('btn-success');
-				$('#batteryPriorityBtn').addClass('btn-success');
-				$('#priorityEvBatteryIcon').removeClass('fa-car').addClass('fa-car-battery')
-				break;
-			case '1':
-				// ev priority
-				$('#evPriorityBtn').addClass('btn-success');
-				$('#batteryPriorityBtn').removeClass('btn-success');
-				$('#priorityEvBatteryIcon').removeClass('fa-car-battery').addClass('fa-car')
-			break;
-		}
-	}
-	else if ( mqttmsg == 'openWB/config/get/pv/nurpv70dynact' ) {
-		//  and sets icon in mode select button
-		switch (mqttpayload) {
-			case '0':
-				// deaktiviert
-				$('#70ModeBtn').addClass('hide');
-				break;
-			case '1':
-				// aktiviert
-				$('#70ModeBtn').removeClass('hide');
-			break;
-		}
-	}
-	else if ( mqttmsg == 'openWB/config/get/pv/minCurrentMinPv' ) {
-		setInputValue('minCurrentMinPv', mqttpayload);
-	}
-}
-
-function processSofortConfigMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/config/get/sofort/
-	// called by handlevar
-	processPreloader(mqttmsg);
-	var elementId = mqttmsg.replace('openWB/config/get/sofort/', '');
-	var element = $('#' + $.escapeSelector(elementId));
-	if ( element.attr('type') == 'range' ) {
-		setInputValue(elementId, mqttpayload);
-	} else if ( element.hasClass('btn-group-toggle') ) {
-		setToggleBtnGroup(elementId, mqttpayload);
-	}
-}
-
-function processGraphMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/graph
-	// called by handlevar
-	// console.log("received graph msg: " + mqttmsg + ": " + mqttpayload);
-	processPreloader(mqttmsg);
-	if ( mqttmsg == 'openWB/graph/boolDisplayHouseConsumption' ) {
-		if ( mqttpayload == 1) {
-			boolDisplayHouseConsumption = false;
-			hidehaus = 'foo';
-		} else {
-			boolDisplayHouseConsumption = true;
-			hidehaus = 'Hausverbrauch';
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg == 'openWB/graph/boolDisplayLegend' ) {
-		if ( mqttpayload == 0) {
-			boolDisplayLegend = false;
-		} else {
-			boolDisplayLegend = true;
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg == 'openWB/graph/boolDisplayLiveGraph' ) {
-		if ( mqttpayload == 0) {
-			$('#thegraph').addClass('hide');
-			boolDisplayLiveGraph = false;
-		} else {
-			$('#thegraph').removeClass('hide');
-			boolDisplayLiveGraph = true;
-		}
-	}
-	else if ( mqttmsg == 'openWB/graph/boolDisplayEvu' ) {
-		if ( mqttpayload == 1) {
-			boolDisplayEvu = false;
-			hideevu = 'foo';
-		} else {
-			boolDisplayEvu = true;
-			hideevu = 'Bezug';
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg == 'openWB/graph/boolDisplayPv' ) {
-		if ( mqttpayload == 1) {
-			boolDisplayPv = false;
-			hidepv = 'foo';
-		} else {
-			boolDisplayPv = true;
-			hidepv = 'PV';
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg.match( /^openwb\/graph\/booldisplaylp[1-9][0-9]*$/i ) ) {
-		var index = mqttmsg.match(/(\d+)(?!.*\d)/g)[0];  // extract last match = number from mqttmsg
-		// now call functions or set variables corresponding to the index
-		if ( mqttpayload == 1) {
-			window['boolDisplayLp'+index] = false;
-			window['hidelp'+index] = 'foo';
-		} else {
-			window['boolDisplayLp'+index] = true;
-			window['hidelp'+index] = 'Lp' + index;
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg == 'openWB/graph/boolDisplayLpAll' ) {
-		if ( mqttpayload == 1) {
-			boolDisplayLpAll = false;
-			hidelpa = 'foo';
-		} else {
-			boolDisplayLpAll = true;
-			hidelpa = 'LP Gesamt';
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg == 'openWB/graph/boolDisplaySpeicher' ) {
-		if ( mqttpayload == 1) {
-			boolDisplaySpeicher = false;
-			hidespeicher = 'foo';
-		} else {
-			hidespeicher = 'Speicher';
-			boolDisplaySpeicher = true;
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg == 'openWB/graph/boolDisplaySpeicherSoc' ) {
-		if ( mqttpayload == 1) {
-			hidespeichersoc = 'foo';
-			boolDisplaySpeicherSoc = false;
-		} else {
-			hidespeichersoc = 'Speicher SoC';
-			boolDisplaySpeicherSoc = true;
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg.match( /^openwb\/graph\/booldisplaylp[1-9][0-9]*soc$/i ) ) {
-		var index = mqttmsg.match(/(\d+)(?!.*\d)/g)[0];  // extract last match = number from mqttmsg
-		if ( mqttpayload == 1) {
-			$('#socenabledlp' + index).removeClass('hide');
-			window['boolDisplayLp' + index + 'Soc'] = false;
-			window['hidelp' + index + 'soc'] = 'foo';
-		} else {
-			$('#socenabledlp' + index).addClass('hide');
-			window['boolDisplayLp' + index + 'Soc'] = true;
-			window['hidelp' + index + 'soc'] = 'LP' + index + ' SoC';
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg.match( /^openwb\/graph\/booldisplayload[1-9][0-9]*$/i ) ) {
-		var index = mqttmsg.match(/(\d+)(?!.*\d)/g)[0];  // extract last match = number from mqttmsg
-		// now call functions or set variables corresponding to the index
-		if ( mqttpayload == 1) {
-			window['hideload'+index] = 'foo';
-			window['boolDisplayLoad'+index] = false;
-		} else {
-			window['hideload'+index] = 'Verbraucher ' + index;
-			window['boolDisplayLoad'+index] = true;
-		}
-		checkgraphload();
-	}
-	else if ( mqttmsg.match( /^openwb\/graph\/[1-9][0-9]*alllivevalues$/i ) ) {
-		// graph messages if local connection
-		var index = mqttmsg.match(/(\d+)(?!.*\d)/g)[0];  // extract last match = number from mqttmsg
-		// now call functions or set variables corresponding to the index
-		if (initialread == 0) {
-			window['all'+index+'p'] = mqttpayload;
-			window['all'+index] = 1;
-			putgraphtogether();
-		}
-	}
-	else if ( mqttmsg == 'openWB/graph/lastlivevalues' ) {
-		// graph messages if local connection
-		if ( initialread > 0) {
-			updateGraph(mqttpayload);
-		}
-		if (graphrefreshcounter > 60) {
-			// reload graph completely
-			initialread = 0;
-			all1 = 0;
-			all2 = 0;
-			all3 = 0;
-			all4 = 0;
-			all5 = 0;
-			all6 = 0;
-			all7 = 0;
-			all8 = 0;
-			all9 = 0;
-			all10 = 0;
-			all11 = 0;
-			all12 = 0;
-			all13 = 0;
-			all14 = 0;
-			all15 = 0;
-			all16 = 0;
-			graphrefreshcounter = 0;
-			subscribeMqttGraphSegments();
-		}
-		graphrefreshcounter += 1;
-	}
-}  // end processGraphMessages
-
-function processEvuMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/evu
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg == "openWB/evu/W" ) {
-		// zur Regelung: Einspeisung = negativ, Bezug = positiv
-		// Vorzeichen zur Darstellung umdrehen
-		var evuPower = parseInt(mqttpayload,10) * -1;
-		if ( isNaN(evuPower) ) {
-			evuPower = 0;
-		}
-		updateGaugeValue(gaugeEVU, evuPower, "");
-	}
-	else if ( mqttmsg == 'openWB/evu/DailyYieldImportKwh') {
-		var evuiDailyYield = parseFloat(mqttpayload);
-		if ( isNaN(evuiDailyYield) ) {
-			evuiDailyYield = 0;
-		}
-		if ( evuiDailyYield >= 0 ) {
-			var evuiDailyYieldStr = ' (' + evuiDailyYield.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' kWh I)';
-			$('#evuidailyyield').text(evuiDailyYieldStr);
-		} else {
-			$('#evuidailyyield').text("");
-		}
-
-	}
-}
-
-function processGlobalMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/global
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg == 'openWB/global/WHouseConsumption' ) {
-		var anzeigeWert = parseInt(mqttpayload,10);
-		if ( anzeigeWert < 0 ) {
-			// beim Hausverbrauch bleibt Gauge im positiven Bereich
-			// negative Werte werden = 0 gesetzt
-			anzeigeWert = 0;
-		}
-		// Gauge mit Rückgabewert erneuern, kein Text, asymmetrische Gauge 0-Max, AutoRescale
-		updateGaugeValue(gaugeHome, anzeigeWert, '');
-	}
-	else if ( mqttmsg == 'openWB/global/DailyYieldHausverbrauchKwh') {
-		var houseDailyYield = parseFloat(mqttpayload);
-		if ( isNaN(houseDailyYield) ) {
-			houseDailyYield = 0;
-		}
-		var houseDailyYieldStr = '';
-		if ( houseDailyYield >= 0 ) {
-			houseDailyYieldStr = houseDailyYield.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' kWh';
-		}
-		gaugeHome.set('titleBottom', houseDailyYieldStr).grow();
-	}
-	else if ( mqttmsg == 'openWB/global/WAllChargePoints') {
-		var powerAllLp = parseInt(mqttpayload, 10);
-		if ( isNaN(powerAllLp) ) {
-			powerAllLp = 0;
-		}
-		if (powerAllLp > 999) {
-			powerAllLp = (powerAllLp / 1000).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' kW';
-		} else {
-			powerAllLp += ' W';
-		}
-		$('#powerAllLp').text(powerAllLp);
-	}
-	else if ( mqttmsg == 'openWB/global/strLastmanagementActive' ) {
-		if ( mqttpayload.length >= 5 ) {
-			// if there is info-text in payload for topic, show the text
-			$('#lastregelungaktiv').text(mqttpayload);
-		} else {
-			// if there is no text, show nothing (hides row)
-			$('#lastregelungaktiv').text('');
-		}
-	}
-	else if ( mqttmsg == 'openWB/global/ChargeMode' ) {
-		// set modal button colors depending on charge mode
-		// set visibility of divs
-		// set visibility of priority icon depending on charge mode
-		// (priority icon is encapsulated in another element hidden/shown by house battery configured or not)
-		switch (mqttpayload) {
-			case '0':
-				// mode sofort
-				$('#chargeModeSelectBtnText').text('Sofortladen');  // text btn main page
-				$('.chargeModeBtn').removeClass('btn-success');  // changes to select buttons in modal
-				$('#chargeModeSofortBtn').addClass('btn-success');
-				$('#targetChargingProgress').removeClass('hide');  // visibility of divs for special settings
-				$('#sofortladenEinstellungen').removeClass('hide');
-				$('#priorityEvBatteryIcon').addClass('hide');  // visibility of priority icon
-				$('#minundpvladenEinstellungen').addClass('hide');
-
-				break;
-			case '1':
-				// mode min+pv
-				$('#chargeModeSelectBtnText').text('Min+PV-Laden');
-				$('.chargeModeBtn').removeClass('btn-success');
-				$('#chargeModeMinPVBtn').addClass('btn-success');
-				$('#targetChargingProgress').addClass('hide');
-				$('#sofortladenEinstellungen').addClass('hide');
-				$('#priorityEvBatteryIcon').addClass('hide');
-				$('#minundpvladenEinstellungen').removeClass('hide');
-
-				break;
-			case '2':
-				// mode pv
-				$('#chargeModeSelectBtnText').text('PV-Laden');
-				$('.chargeModeBtn').removeClass('btn-success');
-				$('#chargeModePVBtn').addClass('btn-success');
-				$('#targetChargingProgress').addClass('hide');
-				$('#sofortladenEinstellungen').addClass('hide');
-				$('#priorityEvBatteryIcon').removeClass('hide');
-				$('#minundpvladenEinstellungen').addClass('hide');
-
-				break;
-			case '3':
-				// mode stop
-				$('#chargeModeSelectBtnText').text('Stop');
-				$('.chargeModeBtn').removeClass('btn-success');
-				$('#chargeModeStopBtn').addClass('btn-success');
-				$('#targetChargingProgress').addClass('hide');
-				$('#sofortladenEinstellungen').addClass('hide');
-				$('#priorityEvBatteryIcon').addClass('hide');
-				$('#minundpvladenEinstellungen').addClass('hide');
-
-				break;
-			case '4':
-				// mode standby
-				$('#chargeModeSelectBtnText').text('Standby');
-				$('.chargeModeBtn').removeClass('btn-success');
-				$('#chargeModeStdbyBtn').addClass('btn-success');
-				$('#targetChargingProgress').addClass('hide');
-				$('#sofortladenEinstellungen').addClass('hide');
-				$('#priorityEvBatteryIcon').addClass('hide');
-				$('#minundpvladenEinstellungen').addClass('hide');
-
-		}
-	}
-
-}
-
-function processHousebatteryMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/housebattery
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg == 'openWB/housebattery/W' ) {
-		// Entladung = negativ, Ladung = positiv
-		var anzeigeWert = parseInt(mqttpayload, 10);
-		if ( isNaN(anzeigeWert) ) {
-			anzeigeWert = 0;
-		}
-		updateGaugeValue(gaugeBatt, anzeigeWert, '');
-	}
-	else if ( mqttmsg == 'openWB/housebattery/%Soc' ) {
-		var speicherSoc = parseInt(mqttpayload, 10);
-		if ( isNaN(speicherSoc) || speicherSoc < 0 || speicherSoc > 100 ) {
-			speicherSoc = 0;
-		}
-		var anzeigeText = 'SoC ' + speicherSoc + ' %';
-		gaugeBatt.set('titleBottom', anzeigeText).grow();
-
-	}
-	else if ( mqttmsg == 'openWB/housebattery/boolHouseBatteryConfigured' ) {
-		if ( mqttpayload == 1 ) {
-			// if housebattery is configured, show info-div
-			$('#battDataDiv').removeClass('hide');
-			// and outer element for priority icon in pv mode
-			$('#priorityEvBattery').removeClass('hide');
-			// priority buttons in modal
-			$('#priorityModeBtns').removeClass('hide');
-		} else {
-			$('#battDataDiv').addClass('hide');
-			$('#priorityEvBattery').addClass('hide');
-			$('#priorityModeBtns').addClass('hide');
-		}
-	}
-}
-
-function processSystemMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/system
-	// called by handlevar
-	// console.log("received system msg: " + mqttmsg + ": " + mqttpayload);
-	processPreloader(mqttmsg);
-	if ( mqttmsg == 'openWB/system/Timestamp') {
-		var dateObject = new Date(mqttpayload * 1000);  // Unix timestamp to date-object
-		var time = '&nbsp;';
-		var date = '&nbsp;';
-		if ( dateObject instanceof Date && !isNaN(dateObject.valueOf()) ) {
-			// timestamp is valid date so process
-			var HH = String(dateObject.getHours()).padStart(2, '0');
-			var MM = String(dateObject.getMinutes()).padStart(2, '0');
-			time = HH + ':'  + MM;
-			var dd = String(dateObject.getDate()).padStart(2, '0');  // format with leading zeros
-			var mm = String(dateObject.getMonth() + 1).padStart(2, '0'); //January is 0 so add +1!
-			var dayOfWeek = dateObject.toLocaleDateString('de-DE', { weekday: 'short'});
-			date = dayOfWeek + ', ' + dd + '.' + mm + '.' + dateObject.getFullYear();
-		}
-		$('#time').text(time);
-		$('#date').text(date);
-	}
-}
-
-function processPvMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/pv
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg == 'openWB/pv/W') {
-		// production is negative for calculations so adjust for display
-		var pvPower = parseInt(mqttpayload, 10) * -1;
-		if ( isNaN(pvPower) ) {
-			pvPower = 0;
-		}
-		updateGaugeValue(gaugePV, pvPower, "");
-	}
-	else if ( mqttmsg == 'openWB/pv/DailyYieldKwh') {
-		var pvDailyYield = parseFloat(mqttpayload);
-		if ( isNaN(pvDailyYield) ) {
-			pvDailyYield = 0;
-		}
-		var pvDailyYieldStr = '';
-		if ( pvDailyYield >= 0 ) {
-			pvDailyYieldStr = pvDailyYield.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' kWh';
-		}
-		gaugePV.set('titleBottom', pvDailyYieldStr).grow();
-	}
-	else if ( mqttmsg == 'openWB/pv/bool70PVDynStatus') {
-		switch (mqttpayload) {
-			case '0':
-				// deaktiviert
-				$('#70PvBtn').removeClass('btn-success');
-				break;
-			case '1':
-				// ev priority
-				$('#70PvBtn').addClass('btn-success');
-			break;
-		}
-	}
-}
-
-function processVerbraucherMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/Verbraucher
-	// called by handlevar
-	processPreloader(mqttmsg);
-	var index = getIndex(mqttmsg);  // extract number between two / /
-	if ( mqttmsg.match( /^openwb\/Verbraucher\/[1-2]\/Configured$/i ) ) {
-		if ( mqttpayload == 1 ) {
-			// if at least one device is configured, show info-div
-			$('#verbraucher').removeClass("hide");
-			// now show info-div for this device
-			$('#verbraucher'+index).removeClass("hide");
-		} else {
-			$('#verbraucher'+index).addClass("hide");
-		}
-	} else if ( mqttmsg.match( /^openwb\/Verbraucher\/[1-2]\/Name$/i ) ) {
-		if ( mqttpayload != "Name" ){
-			$('#verbraucher'+index+'name').text(mqttpayload);
-		}
-	} else if ( mqttmsg.match( /^openwb\/Verbraucher\/[1-2]\/Watt$/i ) ) {
-		var unit = ' W';
-		var verbraucherwatt = parseInt(mqttpayload, 10);
-		if ( isNaN(verbraucherwatt) ) {
-			verbraucherwatt = 0;
-		}
-		if ( verbraucherwatt > 999 ) {
-			verbraucherwatt = (verbraucherwatt / 1000).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
-			unit = ' kW';
-		}
-		$('#verbraucher'+index+'leistung').text(verbraucherwatt + unit);
-	} else if ( mqttmsg.match( /^openwb\/Verbraucher\/[1-2]\/DailyYieldImportkWh$/i ) ) {
-		var verbraucherDailyYield = parseFloat(mqttpayload);
-		if ( isNaN(verbraucherDailyYield) ) {
-			verbraucherDailyYield = 0;
-		}
-		if ( verbraucherDailyYield >= 0 ) {
-			var verbraucherDailyYieldStr = ' (' + verbraucherDailyYield.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' kWh)';
-			$('#verbraucher'+index+'dailyyield').text(verbraucherDailyYieldStr);
-		} else {
-			$('#verbraucher'+index+'dailyyield').text("");
-		}
-
-	}
-}
-
-function processLpMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/lp
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/w$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.actualPowerLp');  // now get parents respective child element
-		var actualPower = parseInt(mqttpayload, 10);
-		if ( isNaN(actualPower) ) {
-			actualPower = 0;
-		}
-		if (actualPower > 999) {
-			actualPower = (actualPower / 1000).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
-			actualPower += ' kW';
-		} else {
-			actualPower += ' W';
-		}
-		element.text(actualPower);
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/kWhchargedsinceplugged$/i ) ) {
-		// energy charged since ev was plugged in
-		// also calculates and displays km charged
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.energyChargedLp');  // now get parents respective child element
-		var energyCharged = parseFloat(mqttpayload, 10);
-		if ( isNaN(energyCharged) ) {
-			energyCharged = 0;
-		}
-		element.text(energyCharged.toLocaleString(undefined, {minimumFractionDigits: 1, maximumFractionDigits: 1}) + ' kWh');
-		var kmChargedLp = parent.find('.kmChargedLp');  // now get parents kmChargedLp child element
-		var consumption = parseFloat($(kmChargedLp).data('consumption'));
-		var kmCharged = '';
-		if ( !isNaN(consumption) && consumption > 0 ) {
-			kmCharged = (energyCharged / consumption) * 100;
-			kmCharged = ' / ' + kmCharged.toLocaleString(undefined, {minimumFractionDigits: 1, maximumFractionDigits: 1}) + ' km';
-		} else {
-			kmCharged = '-- km';
-		}
-		$(kmChargedLp).text(kmCharged);
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/kWhactualcharged$/i ) ) {
-		// energy charged since reset of limitation
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		if ( isNaN(mqttpayload) ) {
-			mqttpayload = 0;
-		}
-		var parent = $('[data-lp="' + index + '"]');  // get parent div element for charge limitation
-		var element = parent.find('.progress-bar');  // now get parents progress bar
-		element.data('actualCharged', mqttpayload);  // store value received
-		var limitElementId = 'lp/' + index + '/energyToCharge';
-		var limit = $('#' + $.escapeSelector(limitElementId)).val();  // slider value
-		if ( isNaN(limit) || limit < 2 ) {
-			limit = 2;  // minimum value
-		}
-		var progress = (mqttpayload / limit * 100).toFixed(0);
-		element.width(progress+"%");
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/\%soc$/i ) ) {
-		// soc of ev at respective charge point
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.socLp');  // now get parents respective child element
-		var soc = parseInt(mqttpayload, 10);
-		if ( isNaN(soc) || soc < 0 || soc > 100 ) {
-			soc = '--';
-		}
-		element.text(soc);
-		var spinner = parent.find('.reloadLpSoc');
-		if ( spinner.hasClass('fa-spin') ) {
-			spinner.removeClass('fa-spin');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/timeremaining$/i ) ) {
-		// time remaining for charging to target value
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('.chargeLimitation[data-lp="' + index + '"]');  // get parent div element for charge limitation
-		var element = parent.find('.restzeitLp');  // get element
-		element.text('Restzeit ' + mqttpayload);
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/boolchargeatnight$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.nightChargingLp');  // now get parents respective child element
-		if ( mqttpayload == 1 ) {
-			element.removeClass('hide');
-		} else {
-			element.addClass('hide');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/boolplugstat$/i ) ) {
-		// status ev plugged in or not
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.plugstatLp');  // now get parents respective child element
-		if ( mqttpayload == 1 ) {
-			element.removeClass('hide');
-		} else {
-			element.addClass('hide');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/boolchargestat$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.plugstatLp');  // now get parents respective child element
-		if ( mqttpayload == 1 ) {
-			element.removeClass('text-orange').addClass('text-green');
-		} else {
-			element.removeClass('text-green').addClass('text-orange');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/strchargepointname$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		$('.nameLp').each(function() {  // fill in name for all element of class '.nameLp'
-			var lp = $(this).closest('[data-lp]').data('lp');  // get attribute lp from parent
-			if ( lp == index ) {
-				$(this).text(mqttpayload);
-			}
-		});
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/chargepointenabled$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		$('.nameLp').each(function() {  // check all elements of class '.nameLp'
-			var lp = $(this).closest('[data-lp]').data('lp');  // get attribute lp from parent
-			if ( lp == index ) {
-				if ( $(this).hasClass('enableLp') ) {
-					// but only apply styles to element in chargepoint info data block
-					if ( mqttpayload == 0 ) {
-						$(this).removeClass('lpEnabledStyle').addClass('lpDisabledStyle');
-					} else {
-						$(this).removeClass('lpDisabledStyle').addClass('lpEnabledStyle');
-					}
-				}
-			}
-		});
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/countphasesinuse/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.phasesInUseLp');  // now get parents respective child element
-		var phasesInUse = parseInt(mqttpayload, 10);
-		if ( isNaN(phasesInUse) || phasesInUse < 1 || phasesInUse > 3 ) {
-			element.text(' /');
-		} else {
-			var phaseSymbols = ['', '\u2460', '\u2461', '\u2462'];
-			element.text(' ' + phaseSymbols[phasesInUse]);
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/aconfigured$/i ) ) {
-		// target current value at charge point
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.targetCurrentLp');  // now get parents respective child element
-		var targetCurrent = parseInt(mqttpayload, 10);
-		if ( isNaN(targetCurrent) ) {
-			element.text(' 0 A');
-		} else {
-			element.text(' ' + targetCurrent + ' A');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/boolsocconfigured$/i ) ) {
-		// soc-module configured for respective charge point
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var elementIsConfigured = $(parent).find('.socConfiguredLp');  // now get parents respective child element
-		var elementIsNotConfigured = $(parent).find('.socNotConfiguredLp');  // now get parents respective child element
-		if (mqttpayload == 1) {
-			$(elementIsNotConfigured).addClass('hide');
-			$(elementIsConfigured).removeClass('hide');
-		} else {
-			$(elementIsNotConfigured).removeClass('hide');
-			$(elementIsConfigured).addClass('hide');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/boolsocmanual$/i ) ) {
-		// manual soc-module configured for respective charge point
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var elementIsConfigured = $(parent).find('.socConfiguredLp');  // now get parents respective child element
-		if (mqttpayload == 1) {
-			$(elementIsConfigured).addClass('manualSoC');
-			$(elementIsConfigured).find('.manualSocSymbol').removeClass('hide');
-			$(elementIsConfigured).find('.reloadLpSoc').addClass('hide');
-		} else {
-			$(elementIsConfigured).removeClass('manualSoC');
-			$(elementIsConfigured).find('.manualSocSymbol').addClass('hide');
-			$(elementIsConfigured).find('.reloadLpSoc').removeClass('hide');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/boolchargepointconfigured$/i ) ) {
-		// respective charge point configured
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		// now show/hide element containing data-lp attribute with value=index
-		switch (mqttpayload) {
-			case '0':
-				$('[data-lp="' + index + '"]').addClass('hide');
-				break;
-			case '1':
-				$('[data-lp="' + index + '"]').removeClass('hide');
-				break;
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/autolockconfigured$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract first match = number from
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.autolockConfiguredLp');  // now get parents respective child element
-		if ( mqttpayload == 0 ) {
-			element.addClass('hide');
-		} else {
-			element.removeClass('hide');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/autolockstatus$/i ) ) {
-		// values used for AutolockStatus flag:
-		// 0 = standby
-		// 1 = waiting for autolock
-		// 2 = autolock performed
-		// 3 = auto-unlock performed
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.autolockConfiguredLp');  // now get parents respective child element
-		switch ( mqttpayload ) {
-			case '0':
-				// remove animation from span and set standard colored key icon
-				element.removeClass('fa-lock fa-lock-open animate-alertPulsation text-red text-green');
-				element.addClass('fa-key');
-				break;
-			case '1':
-				// add animation to standard icon
-				element.removeClass('fa-lock fa-lock-open text-red text-green');
-				element.addClass('fa-key animate-alertPulsation');
-				break;
-			case '2':
-				// add red locked icon
-				element.removeClass('fa-lock-open fa-key animate-alertPulsation text-green');
-				element.addClass('fa-lock text-red');
-				break;
-			case '3':
-				// add green unlock icon
-				element.removeClass('fa-lock fa-key animate-alertPulsation text-red');
-				element.addClass('fa-lock-open text-green');
-				break;
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/energyconsumptionper100km$/i ) ) {
-		// store configured value in element attribute
-		// to calculate charged km upon receipt of charged energy
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.kmChargedLp');  // now get parents respective child element
-		var consumption = parseFloat(mqttpayload);
-		if ( isNaN(consumption) ) {
-			consumption = 0;
-		}
-		element.data('consumption', consumption);  // store value in data-attribute
-		// if already energyCharged-displayed, update kmCharged
-		var energyChargedLp = parent.find('.energyChargedLp');  // now get parents respective energyCharged child element
-		var energyCharged = parseFloat($(energyChargedLp).text());
-		var kmCharged = '';
-		if ( !isNaN(energyCharged) && consumption > 0 ) {
-			kmCharged = (energyCharged / consumption) * 100;
-			kmCharged = ' / ' + kmCharged.toLocaleString(undefined, {minimumFractionDigits: 1, maximumFractionDigits: 1}) + ' km';
-		} else {
-			kmCharged = '-- km';
-		}
-		element.text(kmCharged);
-	}
-	else if ( mqttmsg.match( /^openwb\/lp\/[1-9][0-9]*\/boolfinishattimechargeactive$/i ) ) {
-		// respective charge point configured
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-lp="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.targetChargingLp');  // now get parents respective child element
-		if (mqttpayload == 1) {
-			element.removeClass('hide');
-		} else {
-			element.addClass('hide');
-		}
-	}
-}
-
-function processHookMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/hook
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg.match( /^openwb\/hook\/[1-9][0-9]*\/boolhookstatus$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		if ( mqttpayload == 1 ) {
-			$('#hook' + index).removeClass("bg-danger").addClass("bg-success");
-		} else {
-			$('#hook' + index).removeClass("bg-success").addClass("bg-danger");
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/hook\/[1-9][0-9]*\/boolhookconfigured$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		if ( mqttpayload == 1 ) {
-			$('#hook' + index).removeClass('hide');
-		} else {
-			$('#hook' + index).addClass('hide');
-		}
-	}
-}
-
-function processSmartHomeDevicesMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/LegacySmartHomeDevices - actual values only!
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg.match( /^openwb\/SmartHome\/Devices\/[1-9][0-9]*\/Watt$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-dev="' + index + '"]');  // get parent row element for SH Device
-		var element = parent.find('.actualPowerDevice');  // now get parents respective child element
-		var actualPower = parseInt(mqttpayload, 10);
-		if ( isNaN(actualPower) ) {
-			actualPower = 0;
-		}
-		if (actualPower > 999) {
-			actualPower = (actualPower / 1000).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
-			actualPower += ' kW';
-		} else {
-			actualPower += ' W';
-		}
-		element.text(actualPower);
-	}
-	else if ( mqttmsg.match( /^openwb\/SmartHome\/Devices\/[1-9][0-9]*\/DailyYieldKwh$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-dev="' + index + '"]');  // get parent row element for SH Device
-		var element = parent.find('.actualDailyYieldDevice');  // now get parents respective child element
-		var actualDailyYield = parseFloat(mqttpayload);
-		if ( isNaN(actualDailyYield) ) {
-			siiDailyYield = 0;
-		}
-		if ( actualDailyYield >= 0 ) {
-			var actualDailyYieldStr = ' (' + actualDailyYield.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' kWh)';
-			element.text(actualDailyYieldStr);
-		} else {
-			element.text("");
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/SmartHome\/Devices\/[1-9][0-9]*\/RunningTimeToday$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-dev="' + index + '"]');  // get parent row element for SH Device
-		var element = parent.find('.actualRunningTimeDevice');  // now get parents respective child element
-		var actualPower = parseInt(mqttpayload, 10);
-		if ( isNaN(actualPower) ) {
-			actualPower = 0;
-		}
-		if (actualPower < 3600) {
-			actualPower = (actualPower / 60).toFixed(0);
-			actualPower += ' Min';
-		} else {
-			rest = (actualPower % 3600 / 60).toFixed(0);
-			ganz = (actualPower / 3600).toFixed(0);
-			actualPower = ganz + ' H ' + rest +' Min';
-		}
-		element.text(actualPower);
-	}
-	else if ( mqttmsg.match( /^openwb\/SmartHome\/Devices\/[1-9][0-9]*\/RelayStatus$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		$('.nameDevice').each(function() {  // check all elements of class '.nameLp'
-			var dev = $(this).closest('[data-dev]').data('dev');  // get attribute lp from parent
-			if ( dev == index ) {
-				if ( $(this).hasClass('enableDevice') ) {
-					// but only apply styles to element in chargepoint info data block
-					if ( mqttpayload == 0 ) {
-						$(this).removeClass('lpEnabledStyle').removeClass('lpWaitingStyle').addClass('lpDisabledStyle');
-					} else {
-						$(this).removeClass('lpDisabledStyle').removeClass('lpWaitingStyle').addClass('lpEnabledStyle');
-					}
-				}
-			}
-		});
-	}
-	else if ( mqttmsg.match( /^openwb\/SmartHome\/Devices\/[1-9][0-9]*\/TemperatureSensor0$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('.SmartHomeTemp[data-dev="' + index + '"]');  // get parent row element for SH Device
-		var element = parent.find('.actualTemp0Device');  // now get parents respective child element
-		var actualTemp = parseFloat(mqttpayload);
-		if ( isNaN(actualTemp) ) {
-			StringTemp = '';
-			parent.addClass('hide');
-		} else {
-			if (actualTemp > 200) {
-				StringTemp = ''; // display only something if we got a value
-				parent.addClass('hide');
-			} else {
-				StringTemp = 'Temp1 ' + actualTemp.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); // make complete string to display
-				parent.removeClass('hide');
-			}
-		}
-		element.text(StringTemp);
-	}
-	else if ( mqttmsg.match( /^openwb\/SmartHome\/Devices\/[1-9][0-9]*\/TemperatureSensor1$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('.SmartHomeTemp[data-dev="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.actualTemp1Device');  // now get parents respective child element
-		var actualTemp = parseFloat(mqttpayload);
-		if ( isNaN(actualTemp) ) {
-			StringTemp = '';
-		} else {
-			if (actualTemp > 200) {
-				StringTemp = ''; // display only something if we got a value
-			} else {
-				StringTemp = 'Temp2 ' + actualTemp.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); // make complete string to display
-			}
-		}
-		element.text(StringTemp);
-	}
-	else if ( mqttmsg.match( /^openwb\/SmartHome\/Devices\/[1-9][0-9]*\/TemperatureSensor2$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('.SmartHomeTemp[data-dev="' + index + '"]');  // get parent row element for charge point
-		var element = parent.find('.actualTemp2Device');  // now get parents respective child element
-		var actualTemp = parseFloat(mqttpayload);
-		if ( isNaN(actualTemp) ) {
-			StringTemp = '';
-		} else {
-			if (actualTemp > 200) {
-				StringTemp = ''; // display only something if we got a value
-			} else {
-				StringTemp = 'Temp3 ' + actualTemp.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); // make complete string to display
-			}
-		}
-		element.text(StringTemp);
-	}
-}
-
-function processSmartHomeDevicesConfigMessages(mqttmsg, mqttpayload) {
-	// processes mqttmsg for topic openWB/LegacySmartHome/config/get/Devices - config variables (Name / configured only!), actual Variables in proccessSMartHomeDevices
-	// called by handlevar
-	processPreloader(mqttmsg);
-	if ( mqttmsg.match( /^openwb\/config\/get\/SmartHome\/Devices\/[1-9][0-9]*\/device_configured$/i ) ) {
-		// respective SH Device configured
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var infoElement = $('[data-dev="' + index + '"]');  // get row of SH Device
-		if (mqttpayload == 1) {
-			infoElement.removeClass('hide');
-		} else {
-			infoElement.addClass('hide');
-		}
-		var visibleRows = $('.smartHome [data-dev]').not('.hide');  // show/hide complete block depending on visible rows within
-		if ( visibleRows.length > 0 ) {
-			$('.smartHome').removeClass('hide');
-		} else {
-			$('.smartHome').addClass('hide');
-		}
-	}
-	else if ( mqttmsg.match( /^openwb\/config\/get\/SmartHome\/Devices\/[1-9][0-9]*\/mode$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-dev="' + index + '"]');  // get parent row element for SH Device
-		var element = parent.find('.actualModeDevice');  // now get parents respective child element
-		if ( mqttpayload == 0 ) {
-			actualMode = "Automatik"
-		} else {
-			actualMode = "Manuell"
-		}
-		element.text(actualMode);
-		$('.nameDevice').each(function() {  // check all elements of class '.nameDevice'
-			var dev = $(this).closest('[data-dev]').data('dev');  // get attribute Device from parent
-			if ( dev == index ) {
-				if ( $(this).hasClass('enableDevice') ) {
-					// but only apply styles to element in chargepoint info data block
-					if ( mqttpayload == 1 ) {
-						$(this).addClass('cursor-pointer').addClass('locked');
-					} else {
-						$(this).removeClass('cursor-pointer').removeClass('locked');
-					}
-				}
-			}
-		});
-	}
-	else if ( mqttmsg.match( /^openWB\/config\/get\/SmartHome\/Devices\/[1-9][0-9]*\/device_name$/i ) ) {
-		var index = getIndex(mqttmsg);  // extract number between two / /
-		var parent = $('[data-dev="' + index + '"]');  // get parent row element for SH Device
-		var element = parent.find('.nameDevice');  // now get parents respective child element
-		element.text(mqttpayload);
-		window['d'+index+'name']=mqttpayload;
-	}
-}
diff --git a/web/themes/Gauges/settings.css b/web/themes/Gauges/settings.css
deleted file mode 100644
index 4680caeb22..0000000000
--- a/web/themes/Gauges/settings.css
+++ /dev/null
@@ -1,141 +0,0 @@
-html{
-	min-height: 100%;
-	min-width: 100%;
-}
-
-body {
-	color: white;
-	/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#5a5a5a+0,0e0e0e+100;Black+3D */
-	/* Old browsers */
-	background: rgb(90,90,90);
-	/* FF3.6-15 */
-	background: -moz-linear-gradient(top,  rgba(90,90,90,1) 0%, rgba(14,14,14,1) 100%);
-	/* Chrome10-25,Safari5.1-6 */
-	background: -webkit-linear-gradient(top,  rgba(90,90,90,1) 0%,rgba(14,14,14,1) 100%);
-	/* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
-	background: linear-gradient(to bottom,  rgba(90,90,90,1) 0%,rgba(14,14,14,1) 100%);
-	/* IE6-9 */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5a5a5a', endColorstr='#0e0e0e',GradientType=0 );
-	background-attachment: fixed;
-}
-
-.bg-warning, .bg-info, .bg-success, .bg-light {
-	color: #212529;
-}
-
-.btn-outline-secondary,
-.table,
-pre {
-	color: #ffffff;
-}
-
-.card {
-	background-color: #212529;
-	border-color: rgba(255, 255, 255, 0.5);
-}
-
-.card-header.bg-secondary .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-success .btn-outline-info:not(.active):not(:hover) {
-	background-color: #212529;
-}
-
-.card-header.bg-success .btn-outline-info.focus {
-	box-shadow: 0 0 0 0.2rem rgba(23,162,184,.5);
-}
-
-.card-header.bg-success .btn-outline-info.active,
-.card-header.bg-success .btn-outline-info:hover {
-	border-color: #212529;
-}
-
-.form-control, .form-control[readonly], .form-control:focus {
-	background-color: #343a40;
-	border: 1px solid #ced4da;
-	color: #ffffff;
-}
-
-.input-group-text {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-.modal-content {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-body {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-input, select {
-	background-color: #6c757d;
-	color: #ffffff;
-}
-
-input[type="text"], input[type="password"], select {
-	border: 1px solid #ced4da;
-}
-
-hr {
-	border-top-color: white;
-}
-
-.modal-content,
-.modal-header,
-.modal-footer {
-	border-color: dimgrey;
-}
-
-.clockpicker-popover,
-.datepicker.datepicker-dropdown {
-	background-color: #343a40;
-}
-
-.clockpicker-popover .popover-title,
-.clockpicker-popover .popover-content {
-	background-color: transparent;
-}
-
-.clockpicker-plate {
-	background-color: black;
-}
-
-.datepicker .datepicker-switch,
-.datepicker .prev:not(.disabled),
-.datepicker .next:not(.disabled),
-.datepicker .today,
-.datepicker .month,
-.datepicker .year {
-	color: #ffffff;
-}
-
-.datepicker .datepicker-switch:hover,
-.datepicker .next:hover,
-.datepicker .prev:hover,
-.datepicker tfoot tr th:hover {
-	background: #eeeeee;
-	color: #000000;
-}
-
-.datepicker table tr td span.focused,
-.datepicker table tr td span:hover {
-	background: #eeeeee;
-	color: #000000;
-}
-
-.carousel-caption,
-.carousel-control-next,
-.carousel-control-prev {
-	color: #ffffff;
-}
-
-.carousel-control-next-icon,
-.carousel-control-prev-icon {
-	filter: none;
-}
-
-.carousel-indicators li {
-	background-color: #ffffff;
-}
diff --git a/web/themes/Gauges/setupMqttServices.js b/web/themes/Gauges/setupMqttServices.js
deleted file mode 100644
index 1394d4097f..0000000000
--- a/web/themes/Gauges/setupMqttServices.js
+++ /dev/null
@@ -1,384 +0,0 @@
-/**
- * Functions to provide services for MQTT
- *
- * @author Kevin Wieland
- * @author Michael Ortenstein
- */
-
-// these topics will be subscribed
-// index 1 represents flag if value was received, needed for preloader progress bar
-// if flags are preset with 1 they are not counted on reload and page will show even if topic was not received
-var topicsToSubscribe = [
-	// Status Konfiguration Ladepunkt
-	["openWB/lp/1/boolChargePointConfigured", 0],
-	["openWB/lp/2/boolChargePointConfigured", 0],
-	["openWB/lp/3/boolChargePointConfigured", 0],
-	["openWB/lp/4/boolChargePointConfigured", 0],
-	["openWB/lp/5/boolChargePointConfigured", 0],
-	["openWB/lp/6/boolChargePointConfigured", 0],
-	["openWB/lp/7/boolChargePointConfigured", 0],
-	["openWB/lp/8/boolChargePointConfigured", 0],
-	// hook Konfiguration
-	["openWB/hook/1/boolHookConfigured", 0],
-	["openWB/hook/2/boolHookConfigured", 0],
-	["openWB/hook/3/boolHookConfigured", 0],
-	// housebattery Konfiguration
-	["openWB/housebattery/boolHouseBatteryConfigured", 0],
-	// SmartHome Konfiguration
-	["openWB/LegacySmartHome/config/get/Devices/1/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/2/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/3/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/4/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/5/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/6/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/7/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/8/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/9/device_configured", 0],
-	["openWB/LegacySmartHome/config/get/Devices/1/device_name", 1],
-	["openWB/LegacySmartHome/config/get/Devices/2/device_name", 1],
-	["openWB/LegacySmartHome/config/get/Devices/3/device_name", 1],
-	["openWB/LegacySmartHome/config/get/Devices/4/device_name", 1],
-	["openWB/LegacySmartHome/config/get/Devices/5/device_name", 1],
-	["openWB/LegacySmartHome/config/get/Devices/6/device_name", 1],
-	["openWB/LegacySmartHome/config/get/Devices/7/device_name", 1],
-	["openWB/LegacySmartHome/config/get/Devices/8/device_name", 1],
-	["openWB/LegacySmartHome/config/get/Devices/9/device_name", 1],
-
-	// etprovider topcis
-	["openWB/global/ETProvider/modulePath", 1],
-	["openWB/global/awattar/boolAwattarEnabled", 1],
-	["openWB/global/awattar/MaxPriceForCharging", 1],
-	["openWB/global/awattar/ActualPriceForCharging", 1],
-	["openWB/global/awattar/pricelist", 1],
-	// graph topics
-	//
-	["openWB/graph/lastlivevalues", 1],
-	["openWB/graph/1alllivevalues", 1],
-	["openWB/graph/2alllivevalues", 1],
-	["openWB/graph/3alllivevalues", 1],
-	["openWB/graph/4alllivevalues", 1],
-	["openWB/graph/5alllivevalues", 1],
-	["openWB/graph/6alllivevalues", 1],
-	["openWB/graph/7alllivevalues", 1],
-	["openWB/graph/8alllivevalues", 1],
-	["openWB/graph/9alllivevalues", 1],
-	["openWB/graph/10alllivevalues", 1],
-	["openWB/graph/11alllivevalues", 1],
-	["openWB/graph/12alllivevalues", 1],
-	["openWB/graph/13alllivevalues", 1],
-	["openWB/graph/14alllivevalues", 1],
-	["openWB/graph/15alllivevalues", 1],
-	["openWB/graph/16alllivevalues", 1],
-    ["openWB/graph/boolDisplayLp1", 1],
-    ["openWB/graph/boolDisplayLp2", 1],
-    ["openWB/graph/boolDisplayLp3", 1],
-    ["openWB/graph/boolDisplayLp4", 1],
-    ["openWB/graph/boolDisplayLp5", 1],
-    ["openWB/graph/boolDisplayLp6", 1],
-    ["openWB/graph/boolDisplayLp7", 1],
-    ["openWB/graph/boolDisplayLp8", 1],
-	["openWB/graph/boolDisplayHouseConsumption", 1],
-	["openWB/graph/boolDisplayLoad1", 1],
-	["openWB/graph/boolDisplayLoad2", 1],
-	["openWB/graph/boolDisplayLp1Soc", 1],
-	["openWB/graph/boolDisplayLp2Soc", 1],
-	["openWB/graph/boolDisplayLpAll", 1],
-	["openWB/graph/boolDisplaySpeicherSoc", 1],
-	["openWB/graph/boolDisplaySpeicher", 1],
-	["openWB/graph/boolDisplayEvu", 1],
-	["openWB/graph/boolDisplayLegend", 1],
-	["openWB/graph/boolDisplayLiveGraph", 1],
-	["openWB/graph/boolDisplayPv", 1],
-
-	// global topics
-	["openWB/global/WHouseConsumption", 1],
-	["openWB/global/DailyYieldHausverbrauchKwh", 1],
-	["openWB/global/ChargeMode", 1],
-	["openWB/global/WAllChargePoints", 1],
-	["openWB/global/strLastmanagementActive", 1],
-	["openWB/config/get/pv/priorityModeEVBattery", 1],
-	// system topics
-	["openWB/system/Timestamp", 1],
-	// pv topics
-	["openWB/pv/W", 1],
-	["openWB/pv/DailyYieldKwh", 1],
-	// evu topics
-	["openWB/evu/W", 1],
-	// lp topics
-	["openWB/lp/1/%Soc", 1],
-	["openWB/lp/2/%Soc", 1],
-	// geladene kWh seit anstecken des EV
-	["openWB/lp/1/kWhChargedSincePlugged", 1],
-	["openWB/lp/2/kWhChargedSincePlugged", 1],
-	["openWB/lp/3/kWhChargedSincePlugged", 1],
-	["openWB/lp/4/kWhChargedSincePlugged", 1],
-	["openWB/lp/5/kWhChargedSincePlugged", 1],
-	["openWB/lp/6/kWhChargedSincePlugged", 1],
-	["openWB/lp/7/kWhChargedSincePlugged", 1],
-	["openWB/lp/8/kWhChargedSincePlugged", 1],
-	// geladene kWh seit Reset Lademengenbegrenzung
-	["openWB/lp/1/kWhActualCharged", 1],
-	["openWB/lp/2/kWhActualCharged", 1],
-	["openWB/lp/3/kWhActualCharged", 1],
-	["openWB/lp/4/kWhActualCharged", 1],
-	["openWB/lp/5/kWhActualCharged", 1],
-	["openWB/lp/6/kWhActualCharged", 1],
-	["openWB/lp/7/kWhActualCharged", 1],
-	["openWB/lp/8/kWhActualCharged", 1],
-	// Durchschnittsverbrauch
-	["openWB/lp/1/energyConsumptionPer100km", 1],
-	["openWB/lp/2/energyConsumptionPer100km", 1],
-	["openWB/lp/3/energyConsumptionPer100km", 1],
-	// Ladeleistung am LP
-	["openWB/lp/1/W", 1],
-	["openWB/lp/2/W", 1],
-	["openWB/lp/3/W", 1],
-	["openWB/lp/4/W", 1],
-	["openWB/lp/5/W", 1],
-	["openWB/lp/6/W", 1],
-	["openWB/lp/7/W", 1],
-	["openWB/lp/8/W", 1],
-	// Anzahl genutzter Phasen während Ladung am LP
-	["openWB/lp/1/countPhasesInUse", 1],
-	["openWB/lp/2/countPhasesInUse", 1],
-	["openWB/lp/3/countPhasesInUse", 1],
-	["openWB/lp/4/countPhasesInUse", 1],
-	["openWB/lp/5/countPhasesInUse", 1],
-	["openWB/lp/6/countPhasesInUse", 1],
-	["openWB/lp/7/countPhasesInUse", 1],
-	["openWB/lp/8/countPhasesInUse", 1],
-	// Status Stecker
-	["openWB/lp/1/boolPlugStat", 1],
-	["openWB/lp/2/boolPlugStat", 1],
-	["openWB/lp/3/boolPlugStat", 1],
-	["openWB/lp/4/boolPlugStat", 1],
-	["openWB/lp/5/boolPlugStat", 1],
-	["openWB/lp/6/boolPlugStat", 1],
-	["openWB/lp/7/boolPlugStat", 1],
-	["openWB/lp/8/boolPlugStat", 1],
-	// Status Laden
-	["openWB/lp/1/boolChargeStat", 1],
-	["openWB/lp/2/boolChargeStat", 1],
-	["openWB/lp/3/boolChargeStat", 1],
-	["openWB/lp/4/boolChargeStat", 1],
-	["openWB/lp/5/boolChargeStat", 1],
-	["openWB/lp/6/boolChargeStat", 1],
-	["openWB/lp/7/boolChargeStat", 1],
-	["openWB/lp/8/boolChargeStat", 1],
-	// Status Konfiguration SoC
-	["openWB/lp/1/boolSocConfigured", 1],
-	["openWB/lp/2/boolSocConfigured", 1],
-	// manual SoC
-	["openWB/lp/1/boolSocManual", 1],
-	["openWB/lp/2/boolSocManual", 1],
-	// Status Nachtladen
-	["openWB/lp/1/boolChargeAtNight", 1],
-	["openWB/lp/2/boolChargeAtNight", 1],
-	// eingestellter Ladestrom
-	["openWB/lp/1/AConfigured", 1],
-	["openWB/lp/2/AConfigured", 1],
-	["openWB/lp/3/AConfigured", 1],
-	["openWB/lp/8/AConfigured", 1],
-	["openWB/lp/4/AConfigured", 1],
-	["openWB/lp/5/AConfigured", 1],
-	["openWB/lp/6/AConfigured", 1],
-	["openWB/lp/7/AConfigured", 1],
-	// Restzeit
-	["openWB/lp/1/TimeRemaining", 1],
-	["openWB/lp/2/TimeRemaining", 1],
-	["openWB/lp/3/TimeRemaining", 1],
-	["openWB/lp/4/TimeRemaining", 1],
-	["openWB/lp/5/TimeRemaining", 1],
-	["openWB/lp/6/TimeRemaining", 1],
-	["openWB/lp/7/TimeRemaining", 1],
-	["openWB/lp/8/TimeRemaining", 1],
-
-	["openWB/lp/1/boolDirectChargeMode_none_kwh_soc", 1],
-	["openWB/lp/2/boolDirectChargeMode_none_kwh_soc", 1],
-	["openWB/lp/3/boolDirectChargeMode_none_kwh_soc", 1],
-	["openWB/lp/4/boolDirectChargeMode_none_kwh_soc", 1],
-	["openWB/lp/5/boolDirectChargeMode_none_kwh_soc", 1],
-	["openWB/lp/6/boolDirectChargeMode_none_kwh_soc", 1],
-	["openWB/lp/7/boolDirectChargeMode_none_kwh_soc", 1],
-	["openWB/lp/8/boolDirectChargeMode_none_kwh_soc", 1],
-	//
-	["openWB/lp/1/ChargePointEnabled", 1],
-	["openWB/lp/2/ChargePointEnabled", 1],
-	["openWB/lp/3/ChargePointEnabled", 1],
-	["openWB/lp/4/ChargePointEnabled", 1],
-	["openWB/lp/5/ChargePointEnabled", 1],
-	["openWB/lp/6/ChargePointEnabled", 1],
-	["openWB/lp/7/ChargePointEnabled", 1],
-	["openWB/lp/8/ChargePointEnabled", 1],
-	// Name LP
-	["openWB/lp/1/strChargePointName", 1],
-	["openWB/lp/2/strChargePointName", 1],
-	["openWB/lp/3/strChargePointName", 1],
-	["openWB/lp/4/strChargePointName", 1],
-	["openWB/lp/5/strChargePointName", 1],
-	["openWB/lp/6/strChargePointName", 1],
-	["openWB/lp/7/strChargePointName", 1],
-	["openWB/lp/8/strChargePointName", 1],
-	// Status Autolock konfiguriert
-	["openWB/lp/1/AutolockConfigured", 1],
-	["openWB/lp/2/AutolockConfigured", 1],
-	["openWB/lp/3/AutolockConfigured", 1],
-	["openWB/lp/4/AutolockConfigured", 1],
-	["openWB/lp/5/AutolockConfigured", 1],
-	["openWB/lp/6/AutolockConfigured", 1],
-	["openWB/lp/7/AutolockConfigured", 1],
-	["openWB/lp/8/AutolockConfigured", 1],
-	// Status Autolock
-	["openWB/lp/1/AutolockStatus", 1],
-	["openWB/lp/2/AutolockStatus", 1],
-	["openWB/lp/3/AutolockStatus", 1],
-	["openWB/lp/4/AutolockStatus", 1],
-	["openWB/lp/5/AutolockStatus", 1],
-	["openWB/lp/6/AutolockStatus", 1],
-	["openWB/lp/7/AutolockStatus", 1],
-	["openWB/lp/8/AutolockStatus", 1],
-	["openWB/lp/1/ADirectModeAmps", 1],
-	["openWB/lp/2/ADirectModeAmps", 1],
-	["openWB/lp/3/ADirectModeAmps", 1],
-	["openWB/lp/4/ADirectModeAmps", 1],
-	["openWB/lp/5/ADirectModeAmps", 1],
-	["openWB/lp/6/ADirectModeAmps", 1],
-	["openWB/lp/7/ADirectModeAmps", 1],
-	["openWB/lp/8/ADirectModeAmps", 1],
-	// Zielladen
-	["openWB/lp/1/boolFinishAtTimeChargeActive", 1],
-	// housebattery values
-	["openWB/housebattery/W", 1],
-	["openWB/housebattery/%Soc", 1],
-	// hook status
-	["openWB/hook/1/boolHookStatus", 1],
-	["openWB/hook/2/boolHookStatus", 1],
-	["openWB/hook/3/boolHookStatus", 1],
-	// Smart Home Devices, only configured is definitely set, other values only set if configured, assume they are there!
-	["openWB/LegacySmartHome/Devices/1/Watt", 1],
-	["openWB/LegacySmartHome/Devices/1/TemperatureSensor0", 1],
-	["openWB/LegacySmartHome/Devices/1/TemperatureSensor1", 1],
-	["openWB/LegacySmartHome/Devices/1/TemperatureSensor2", 1],
-	["openWB/LegacySmartHome/Devices/2/Watt", 1],
-	["openWB/LegacySmartHome/Devices/2/TemperatureSensor0", 1],
-	["openWB/LegacySmartHome/Devices/2/TemperatureSensor1", 1],
-	["openWB/LegacySmartHome/Devices/2/TemperatureSensor2", 1],
-	["openWB/LegacySmartHome/Devices/3/Watt", 1],
-	["openWB/LegacySmartHome/Devices/4/Watt", 1],
-	["openWB/LegacySmartHome/Devices/5/Watt", 1],
-	["openWB/LegacySmartHome/Devices/6/Watt", 1],
-	["openWB/LegacySmartHome/Devices/7/Watt", 1],
-	["openWB/LegacySmartHome/Devices/8/Watt", 1],
-	["openWB/LegacySmartHome/Devices/9/Watt", 1],
-	["openWB/LegacySmartHome/Devices/1/RelayStatus", 1],
-	["openWB/LegacySmartHome/Devices/2/RelayStatus", 1],
-	["openWB/LegacySmartHome/Devices/3/RelayStatus", 1],
-	["openWB/LegacySmartHome/Devices/4/RelayStatus", 1],
-	["openWB/LegacySmartHome/Devices/5/RelayStatus", 1],
-	["openWB/LegacySmartHome/Devices/6/RelayStatus", 1],
-	["openWB/LegacySmartHome/Devices/7/RelayStatus", 1],
-	["openWB/LegacySmartHome/Devices/8/RelayStatus", 1],
-	["openWB/LegacySmartHome/Devices/9/RelayStatus", 1],
-	["openWB/LegacySmartHome/config/get/Devices/1/mode", 1],
-	["openWB/LegacySmartHome/config/get/Devices/2/mode", 1],
-	["openWB/LegacySmartHome/config/get/Devices/3/mode", 1],
-	["openWB/LegacySmartHome/config/get/Devices/4/mode", 1],
-	["openWB/LegacySmartHome/config/get/Devices/5/mode", 1],
-	["openWB/LegacySmartHome/config/get/Devices/6/mode", 1],
-	["openWB/LegacySmartHome/config/get/Devices/7/mode", 1],
-	["openWB/LegacySmartHome/config/get/Devices/8/mode", 1],
-	["openWB/LegacySmartHome/config/get/Devices/9/mode", 1],
-	// Config Vars Sofort current
-	["openWB/config/get/sofort/lp/1/current", 1],
-	["openWB/config/get/sofort/lp/2/current", 1],
-	["openWB/config/get/sofort/lp/3/current", 1],
-	["openWB/config/get/sofort/lp/4/current", 1],
-	["openWB/config/get/sofort/lp/5/current", 1],
-	["openWB/config/get/sofort/lp/6/current", 1],
-	["openWB/config/get/sofort/lp/7/current", 1],
-	["openWB/config/get/sofort/lp/8/current", 1],
-	["openWB/config/get/sofort/lp/1/chargeLimitation", 1],
-	["openWB/config/get/sofort/lp/2/chargeLimitation", 1],
-	["openWB/config/get/sofort/lp/3/chargeLimitation", 1],
-	["openWB/config/get/sofort/lp/4/chargeLimitation", 1],
-	["openWB/config/get/sofort/lp/5/chargeLimitation", 1],
-	["openWB/config/get/sofort/lp/6/chargeLimitation", 1],
-	["openWB/config/get/sofort/lp/7/chargeLimitation", 1],
-	["openWB/config/get/sofort/lp/8/chargeLimitation", 1],
-	["openWB/config/get/sofort/lp/1/energyToCharge", 1],
-	["openWB/config/get/sofort/lp/2/energyToCharge", 1],
-	["openWB/config/get/sofort/lp/3/energyToCharge", 1],
-	["openWB/config/get/sofort/lp/4/energyToCharge", 1],
-	["openWB/config/get/sofort/lp/5/energyToCharge", 1],
-	["openWB/config/get/sofort/lp/6/energyToCharge", 1],
-	["openWB/config/get/sofort/lp/7/energyToCharge", 1],
-	["openWB/config/get/sofort/lp/8/energyToCharge", 1],
-	["openWB/config/get/sofort/lp/1/socToChargeTo", 1],
-	["openWB/config/get/sofort/lp/2/socToChargeTo", 1],
-
-	["openWB/LegacySmartHome/Devices/1/RunningTimeToday", 1],
-	["openWB/LegacySmartHome/Devices/2/RunningTimeToday", 1],
-	["openWB/LegacySmartHome/Devices/3/RunningTimeToday", 1],
-	["openWB/LegacySmartHome/Devices/4/RunningTimeToday", 1],
-	["openWB/LegacySmartHome/Devices/5/RunningTimeToday", 1],
-	["openWB/LegacySmartHome/Devices/6/RunningTimeToday", 1],
-	["openWB/LegacySmartHome/Devices/7/RunningTimeToday", 1],
-	["openWB/LegacySmartHome/Devices/8/RunningTimeToday", 1],
-	["openWB/LegacySmartHome/Devices/9/RunningTimeToday", 1],
-	["openWB/pv/bool70PVDynStatus", 1],
-	["openWB/config/get/pv/nurpv70dynact", 1]
-];
-
-// holds number of topics flagged 1 initially
-var countTopicsNotForPreloader = topicsToSubscribe.filter(row => row[1] === 1).length;
-
-var retries = 0;
-
-//Connect Options
-var isSSL = location.protocol == 'https:'
-var options = {
-	timeout: 5,
-	useSSL: isSSL,
-	//Gets Called if the connection has been established
-	onSuccess: function () {
-		retries = 0;
-		topicsToSubscribe.forEach((topic) => {
-			client.subscribe(topic[0], {qos: 0});
-		});
-	},
-	//Gets Called if the connection could not be established
-	onFailure: function (message) {
-		setTimeout(function() { client.connect(options); }, 5000);
-	}
-};
-
-var clientuid = Math.random().toString(36).replace(/[^a-z]+/g, "").substr(0, 5);
-var client = new Messaging.Client(location.hostname, 9001, clientuid);
-
-$(document).ready(function(){
-	client.connect(options);
-	timeOfLastMqttMessage = Date.now();
-});
-
-//Gets  called if the websocket/mqtt connection gets disconnected for any reason
-client.onConnectionLost = function (responseObject) {
-	client.connect(options);
-};
-//Gets called whenever you receive a message
-client.onMessageArrived = function (message) {
-	handlevar(message.destinationName, message.payloadString);
-};
-
-//Creates a new Messaging.Message Object and sends it
-function publish(payload, topic) {
-	var message = new Messaging.Message(payload);
-	message.destinationName = topic;
-	message.qos = 2;
-	message.retained = true;
-	client.send(message);
-	var message = new Messaging.Message("local client uid: " + clientuid + " sent: " + topic);
-	message.destinationName = "openWB/set/system/topicSender";
-	message.qos = 2;
-	message.retained = true;
-	client.send(message);
-}
diff --git a/web/themes/Gauges/style.css b/web/themes/Gauges/style.css
deleted file mode 100644
index 6869ec449b..0000000000
--- a/web/themes/Gauges/style.css
+++ /dev/null
@@ -1,469 +0,0 @@
-/*!
-Stylesheet zum openWB Standard-Theme
-
-2019-2020 Michael Ortenstein
-*/
-
-html {
-	min-height: 100%;
-	min-width: 100%;
-}
-
-body {
-	color: white;
-	/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#5a5a5a+0,0e0e0e+100;Black+3D */
-	/* Old browsers */
-	background: rgb(90, 90, 90);
-	/* FF3.6-15 */
-	background: -moz-linear-gradient(top, rgba(90, 90, 90, 1) 0%, rgba(14, 14, 14, 1) 100%);
-	/* Chrome10-25,Safari5.1-6 */
-	background: -webkit-linear-gradient(top, rgba(90, 90, 90, 1) 0%, rgba(14, 14, 14, 1) 100%);
-	/* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
-	background: linear-gradient(to bottom, rgba(90, 90, 90, 1) 0%, rgba(14, 14, 14, 1) 100%);
-	/* IE6-9 */
-	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5a5a5a', endColorstr='#0e0e0e', GradientType=0);
-	background-attachment: fixed;
-}
-
-body>.container {
-	padding: 55px 15px 25px;
-}
-
-@keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-o-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-moz-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-webkit-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-.animate-alertPulsation {
-	-webkit-animation: alertPulsation 1s infinite;
-	-moz-animation: alertPulsation 1s infinite;
-	-o-animation: alertPulsation 1s infinite;
-	animation: alertPulsation 1s infinite;
-}
-
-.limitation-progress {
-	height: 0.6em !important;
-}
-
-.pull-right {
-	float: right
-}
-
-.row.no-gutter [class*='col-']:first-child:not(:only-child) {
-	padding-right: 0;
-}
-
-.row.no-gutter [class*='col-']:last-child:not(:only-child) {
-	padding-left: 0;
-}
-
-.row.no-gutter [class*='col-']:not(:first-child):not(:last-child):not(:only-child) {
-	padding-right: 0;
-	padding-left: 0;
-}
-
-.gradient {
-	background: -webkit-linear-gradient(black, #f2f2f2, black);
-	-webkit-background-clip: text;
-	-webkit-text-fill-color: transparent;
-	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15);
-}
-
-.cursor-pointer {
-	cursor: pointer;
-}
-
-.vaRow {
-	/* vertical alignment of content in rows */
-	display: flex;
-	align-items: center;
-}
-
-.hide {
-	display: none;
-}
-
-.lpEnabledStyle {
-	color: #006515;
-	text-decoration: none;
-}
-
-.lpWaitingStyle {
-	color: #ffdb00;
-	text-decoration: none;
-}
-
-.lpDisabledStyle {
-	color: #A30000;
-	text-decoration: line-through;
-}
-
-.text-green {
-	color: #006515;
-}
-
-.text-red {
-	color: #A30000;
-}
-
-.text-white {
-	color: white;
-}
-
-.text-orange {
-	color: #ff8c1a;
-}
-
-.text-black {
-	color: black;
-}
-
-.text-blue {
-	color: blue;
-}
-
-.text-grey {
-	color: #515151;
-}
-
-.text-lightgrey {
-	color: rgba(255, 255, 255, 0.82);
-}
-
-.bg-darkgrey {
-	background-color: #b6bcc9;
-}
-
-.bg-lightgrey {
-	background-color: #d0d7e6;
-}
-
-.bg-lightblue {
-	background-color: #23ebe1;
-}
-
-.bg-lightgreen {
-	background-color: #befebe;
-}
-
-.bg-rose {
-	background-color: #febebe;
-}
-
-.bg-apricot {
-	background-color: #fefedf;
-}
-
-.bg-orange {
-	background-color: #fcbe1e;
-}
-
-/* Extra small devices (portrait phones, less than 576px) */
-/* No media query since this is the default in Bootstrap */
-h1 {
-	font-size: 1.4rem;
-}
-
-h2 {
-	font-size: 0.9rem;
-}
-
-h3 {
-	font-size: 0.7rem;
-}
-
-.verySmallTextSize {
-	font-size: 0.5rem;
-}
-
-.smallTextSize {
-	font-size: 0.5rem;
-}
-
-.regularTextSize {
-	font-size: 0.7rem;
-}
-
-.largeTextSize {
-	font-size: 0.8rem;
-}
-
-.buttonTextSize {
-	font-size: 0.9rem;
-}
-
-/* Small devices (landscape phones, 576px and up) */
-@media screen and (min-width: 576px) {
-	h1 {
-		font-size: 1.7rem;
-	}
-
-	h2 {
-		font-size: 1.1rem;
-	}
-
-	h3 {
-		font-size: 0.9rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 0.6rem;
-	}
-
-	.smallTextSize {
-		font-size: 0.68rem;
-	}
-
-	.regularTextSize {
-		font-size: 0.75rem;
-	}
-
-	.largeTextSize {
-		font-size: 0.95rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.0rem;
-	}
-}
-
-/* Medium devices (tablets, 768px and up) */
-@media screen and (min-width: 768px) {
-	h1 {
-		font-size: 2.0rem;
-	}
-
-	h2 {
-		font-size: 1.4rem;
-	}
-
-	h3 {
-		font-size: 1.1rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 0.8rem;
-	}
-
-	.smallTextSize {
-		font-size: 0.9rem;
-	}
-
-	.regularTextSize {
-		font-size: 1.0rem;
-	}
-
-	.largeTextSize {
-		font-size: 1.3rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.2rem;
-	}
-}
-
-/* Large devices (desktops, 992px and up) */
-@media screen and (min-width: 992px) {
-	h1 {
-		font-size: 2.6rem;
-	}
-
-	h2 {
-		font-size: 2.0rem;
-	}
-
-	h3 {
-		font-size: 1.6rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 1.1rem;
-	}
-
-	.smallTextSize {
-		font-size: 1.25rem;
-	}
-
-	.regularTextSize {
-		font-size: 1.4rem;
-	}
-
-	.largeTextSize {
-		font-size: 1.6rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.6rem;
-	}
-}
-
-/* Extra large devices (large desktops, 1200px and up) */
-@media (min-width: 1200px) {
-	h1 {
-		font-size: 3rem;
-	}
-
-	h2 {
-		font-size: 2.4rem;
-	}
-
-	h3 {
-		font-size: 1.95rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 1.4rem;
-	}
-
-	.smallTextSize {
-		font-size: 1.65rem;
-	}
-
-	.regularTextSize {
-		font-size: 1.8rem;
-	}
-
-	.largeTextSize {
-		font-size: 1.8rem;
-	}
-
-	.buttonTextSize {
-		font-size: 2.0rem;
-	}
-}
-
-/* Livechart colors */
-:root {
-	--fontCol: rgba(255, 255, 255, 0.82);
-	--gridCol: rgba(255, 255, 255, 0.82);
-	--xgridCol: rgba(255, 255, 255, 0.1);
-	--gridSocCol: rgba(0, 0, 0, 0);
-	--tickCol: rgba(255, 255, 255, 0.82);
-	--lp1Col: rgba(0, 0, 255, 0.7);
-	--lp1bgCol: rgba(0, 0, 255, 0.7);
-	--lp2Col: rgba(50, 30, 105, 0.7);
-	--lp2bgCol: rgba(50, 30, 105, 0.7);
-	--evuCol: rgba(255, 0, 0, 0.7);
-	--evubgCol: rgba(255, 10, 13, 0.3);
-	--pvCol: rgba(0, 255, 0, 1);
-	--pvbgCol: rgba(10, 255, 13, 0.3);
-	--speicherCol: rgba(255, 153, 0, 0.8);
-	--speicherbgCol: rgba(200, 255, 13, 0.3);
-	--speicherSocCol: rgba(255, 153, 0, 0.8);
-	--speicherSocbgCol: rgba(200, 255, 13, 0.3);
-	--lp1SocCol: rgba(0, 0, 255, 0.5);
-	--lp2SocCol: rgba(50, 50, 55, 0.5);
-	--hausverbrauchCol: rgba(255, 255, 255, 0.7);
-	--hausverbrauchbgCol: rgba(200, 255, 13, 0.3);
-	--verbraucher1Col: rgba(0, 150, 150, 0.7);
-	--verbraucher1bgCol: rgba(200, 255, 13, 0.3);
-	--verbraucher2Col: rgba(150, 150, 0, 0.7);
-	--verbraucher2bgCol: rgba(200, 255, 13, 0.3);
-	--lpgesamtCol: rgba(50, 50, 55, 0.1);
-	--lpgesamtbgCol: rgba(0, 0, 255, 0.1);
-	--lp3Col: rgba(50, 50, 55, 0.7);
-	--lp3bgCol: blue;
-	--lp4Col: rgba(50, 50, 55, 0.7);
-	--lp4bgCol: blue;
-	--lp5Col: rgba(50, 50, 55, 0.7);
-	--lp5bgCol: blue;
-	--lp6Col: rgba(50, 50, 55, 0.7);
-	--lp6bgCol: blue;
-	--lp7Col: rgba(50, 50, 55, 0.7);
-	--lp7bgCol: blue;
-	--lp8Col: rgba(50, 50, 55, 0.7);
-	--lp8bgCol: blue;
-	--d1Col: rgba(230, 50, 220, 0.7);
-	--d1bgCol: blue;
-	--d2Col: rgba(230, 50, 220, 0.7);
-	--d2bgCol: blue;
-	--d3Col: rgba(230, 50, 220, 0.7);
-	--d3bgCol: blue;
-	--d4Col: rgba(230, 50, 220, 0.7);
-	--d4bgCol: blue;
-	--d5Col: rgba(230, 50, 220, 0.7);
-	--d5bgCol: blue;
-	--d6Col: rgba(230, 50, 220, 0.7);
-	--d6bgCol: blue;
-	--d7Col: rgba(230, 50, 220, 0.7);
-	--d7bgCol: blue;
-	--d8Col: rgba(230, 50, 220, 0.7);
-	--d8bgCol: blue;
-	--d9Col: rgba(230, 50, 220, 0.7);
-	--d9bgCol: blue;
-}
-
-@media screen and (max-width: 575px) {
-	#date {
-		padding-right: 0;
-		padding-left: 5px;
-	}
-
-	#time {
-		padding-right: 5px;
-		padding-left: 0;
-	}
-}
-
-.progress {
-	background-color: #424242;
-}
-
-.progress-bar {
-	background-color: #424242;
-}
-
-.row.middle {
-	align-items: center;
-}
diff --git a/web/themes/Gauges/theme.html b/web/themes/Gauges/theme.html
deleted file mode 100644
index 06a65c40da..0000000000
--- a/web/themes/Gauges/theme.html
+++ /dev/null
@@ -1,2086 +0,0 @@
-<!DOCTYPE html>
-<html lang="de">
-
-<head>
-	<!-- theme with gauges for openWB -->
-	<!-- 2020 Michael Ortenstein -->
-
-	<title>openWB</title>
-	<meta charset="UTF-8">
-	<meta name="viewport"
-		content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-	<meta name="apple-mobile-web-app-capable" content="yes">
-	<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
-	<meta name="apple-mobile-web-app-title" content="openWB">
-	<meta name="apple-mobile-web-app-status-bar-style" content="default">
-	<link rel="apple-touch-startup-image" href="/openWB/web/img/favicons/splash1125x2436w.png" />
-	<link rel="apple-touch-startup-image"
-		media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)"
-		href="img/favicons/splash1125x2436w.png">
-	<meta name="apple-mobile-web-app-title" content="openWB">
-
-	<meta name="description" content="openWB">
-	<meta name="keywords" content="openWB">
-	<meta name="author" content="Michael Ortenstein">
-	<link rel="apple-touch-icon" sizes="72x72" href="img/favicons/apple-icon-72x72.png">
-	<link rel="apple-touch-icon" sizes="76x76" href="img/favicons/apple-icon-76x76.png">
-	<link rel="apple-touch-icon" sizes="114x114" href="img/favicons/apple-icon-114x114.png">
-	<link rel="apple-touch-icon" sizes="120x120" href="img/favicons/apple-icon-120x120.png">
-	<link rel="apple-touch-icon" sizes="144x144" href="img/favicons/apple-icon-144x144.png">
-	<link rel="apple-touch-icon" sizes="152x152" href="img/favicons/apple-icon-152x152.png">
-	<link rel="apple-touch-icon" sizes="180x180" href="img/favicons/apple-icon-180x180.png">
-	<link rel="icon" type="image/png" sizes="192x192" href="img/favicons/android-icon-192x192.png">
-	<link rel="icon" type="image/png" sizes="32x32" href="img/favicons/favicon-32x32.png">
-	<link rel="icon" type="image/png" sizes="96x96" href="img/favicons/favicon-96x96.png">
-	<link rel="icon" type="image/png" sizes="16x16" href="img/favicons/favicon-16x16.png">
-	<meta name="msapplication-TileColor" content="#ffffff">
-	<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
-	<link rel="apple-touch-icon" sizes="57x57" href="img/favicons/apple-touch-icon-57x57.png">
-	<link rel="apple-touch-icon" sizes="60x60" href="img/favicons/apple-touch-icon-60x60.png">
-	<link rel="manifest" href="manifest.json">
-	<link rel="shortcut icon" href="img/favicons/favicon.ico">
-	<!-- <link rel="apple-touch-startup-image" href="img/loader.gif"> -->
-	<meta name="msapplication-config" content="img/favicons/browserconfig.xml">
-	<meta name="theme-color" content="#ffffff">
-
-	<!-- Bootstrap -->
-	<link rel="stylesheet" type="text/css" href="css/bootstrap-4.4.1/bootstrap.min.css">
-	<!-- Normalize -->
-	<link rel="stylesheet" type="text/css" href="css/normalize-8.0.1.css">
-	<!-- Font Awesome, all styles -->
-	<link rel="stylesheet" type="text/css" href="fonts/font-awesome-5.8.2/css/all.css">
-	<!-- local css due to async loading of theme css -->
-	<style>
-		#preloader {
-			background-color: black;
-			position: fixed;
-			top: 0px;
-			left: 0px;
-			width: 100%;
-			height: 100%;
-			z-index: 999999;
-		}
-
-		#preloader-inner {
-			margin-top: 150px;
-			text-align: center;
-		}
-
-		#preloader-image {
-			max-width: 300px;
-		}
-
-		#preloader-info {
-			color: #e4e4e4;
-		}
-
-		#thegraph>div {
-			height: 350px;
-		}
-
-		#electricityPriceChartCanvasDiv {
-			height: 150px;
-		}
-	</style>
-	<!-- important scripts to be loaded -->
-	<script src="js/jquery-3.6.0.min.js"></script>
-	<script src="js/bootstrap-4.4.1/bootstrap.bundle.min.js"></script>
-	<script src="js/RGraph.common.core.js"></script>
-	<script src="js/RGraph.common.dynamic.js"></script>
-	<script src="js/RGraph.common.effects.js"></script>
-	<script src="js/RGraph.gauge.js"></script>
-
-	<script>
-		function setCookie(name, value, days) {
-			var expires = '';
-			if (days) {
-				var date = new Date();
-				date.setDate(date.getDate() + days);
-				expires = '; expires=' + date.toUTCString();
-			}
-			document.cookie = name + '=' + (value || '') + expires;
-		}
-
-		function getCookie(cname) {
-			var name = cname + '=';
-			var decodedCookie = decodeURIComponent(document.cookie);
-			var ca = decodedCookie.split(';');
-			for (var i = 0; i < ca.length; i++) {
-				var c = ca[i];
-				while (c.charAt(0) == ' ') {
-					c = c.substring(1);
-				}
-				if (c.indexOf(name) == 0) {
-					return c.substring(name.length, c.length);
-				}
-			}
-			return '';
-		}
-		var themeCookie = getCookie('openWBTheme');
-		// include special Theme style
-		$('head').append('<link rel="stylesheet" href="themes/' + themeCookie + '/style.css?v=20221125">');
-	</script>
-</head>
-
-<body>
-	<!-- Preloader with Progress Bar -->
-	<!-- style instead of css due to async loading of theme css -->
-	<div id="preloader">
-		<div id="preloader-inner">
-			<div class="row">
-				<div class="mx-auto d-block justify-content-center">
-					<img id="preloader-image" src="img/openWB_logo_dark.png" alt="openWB">
-				</div>
-			</div>
-			<div id="preloader-info" class="row justify-content-center mt-2">
-				<div class="col-10 col-sm-6">
-					Bitte warten, während die Seite aufgebaut wird.
-				</div>
-			</div>
-			<div class="row justify-content-center mt-2">
-				<div class="col-10 col-sm-6">
-					<div class="progress active">
-						<div class="progress-bar progress-bar-success progress-bar-striped progress-bar-animated"
-							id="preloaderbar" role="progressbar">
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-
-	<!-- Landing Page -->
-	<div id="nav-placeholder"></div>
-	<div class="container">
-		<div class="row middle py-1 regularTextSize text-black bg-darkgrey">
-			<div id="date" class="col text-left">
-				&nbsp;
-			</div>
-			<div class="col-5 text-center">
-				<button type="button" class="btn btn-sm btn-secondary cursor-pointer regularTextSize"
-					id="chargeModeSelectBtn">
-					<span id="chargeModeSelectBtnText">Lademodus</span>
-					<span id="priorityEvBattery">
-						<span class="fas fa-car" id="priorityEvBatteryIcon">&nbsp;</span>
-					</span>
-				</button>
-			</div>
-			<div id="time" class="col text-right">
-				&nbsp;
-			</div>
-		</div>
-
-		<div class="row justify-content-center">
-			<div class="col-6 col-md-3 pvInfoStyle text-center">
-				<div class="">Photovoltaik</div>
-				<canvas id="pvData">
-					Sorry, no canvas support
-				</canvas>
-			</div>
-			<div class="col-6 col-md-3 pvInfoStyle text-center" id="battDataDiv">
-				<div>Speicher</div>
-				<canvas id="battData">
-					Sorry, no canvas support
-				</canvas>
-			</div>
-			<div class="col-6 col-md-3 pvInfoStyle text-center">
-				<div>Energienetz</div>
-				<canvas id="evuData">
-					Sorry, no canvas support
-				</canvas>
-			</div>
-			<div class="col-6 col-md-3 pvInfoStyle text-center">
-				<div>Hausverbrauch</div>
-				<canvas id="homeData">
-					Sorry, no canvas support
-				</canvas>
-			</div>
-		</div>
-		<div class="row justify-content-center regularTextSize font-weight-bold text-center text-grey">
-			<div class="col bg-lightgrey">
-				Ladeleistung: <span id="powerAllLp">lade Daten</span>
-			</div>
-		</div>
-		<div id="strompreis"
-			class="row justify-content-center regularTextSize font-weight-bold text-center text-black hide">
-			<div class="col-sm bg-rose">
-				<span class="smallTextSize">aktueller Strompreis: <span id="aktuellerStrompreis"> lade
-						Daten</span></span>
-			</div>
-		</div>
-
-		<div id="verbraucher"
-			class="row justify-content-center regularTextSize font-weight-bold text-center openwb-devices hide">
-			<div id="verbraucher1" class="col-sm hide">
-				<span class="smallTextSize"><span id="verbraucher1name">Verbraucher 1</span>: <span
-						id="verbraucher1leistung">lade Daten</span></span><span class="verySmallTextSize"
-					id="verbraucher1dailyyield"></span>
-			</div>
-			<div id="verbraucher2" class="col-sm hide">
-				<span class="smallTextSize"><span id="verbraucher2name">Verbraucher 2</span>: <span
-						id="verbraucher2leistung">lade Daten</span></span><span class="verySmallTextSize"
-					id="verbraucher2dailyyield"></span>
-			</div>
-		</div>
-
-		<div class="row justify-content-center regularTextSize font-weight-bold text-center text-black">
-			<div class="hide bg-lightblue col-sm SmartHomeTemp" data-dev="1">
-				<span class="actualTemp0Device"></span>
-			</div>
-			<div class="hide bg-lightblue col-sm SmartHomeTemp" data-dev="1">
-				<span class="actualTemp1Device"></span>
-			</div>
-			<div class="hide bg-lightblue col-sm SmartHomeTemp" data-dev="1">
-				<span class="actualTemp2Device"></span>
-			</div>
-		</div>
-
-		<div class="row justify-content-center regularTextSize font-weight-bold text-center text-black">
-			<div class="hide bg-lightblue col-sm SmartHomeTemp" data-dev="2">
-				<span class="actualTemp0Device"></span>
-			</div>
-			<div class="hide bg-lightblue col-sm SmartHomeTemp" data-dev="2">
-				<span class="actualTemp1Device"></span>
-			</div>
-			<div class="hide bg-lightblue col-sm SmartHomeTemp" data-dev="2">
-				<span class="actualTemp2Device"></span>
-			</div>
-		</div>
-
-		<div id="webhooks"
-			class="row justify-content-center regularTextSize font-weight-bold text-center text-black bg-darkgrey">
-			<div id="hook1" class="col-3 m-1 bg-danger hide">
-				ext. Gerät 1
-			</div>
-			<div id="hook2" class="col-3 m-1 bg-danger hide">
-				ext. Gerät 2
-			</div>
-			<div id="hook3" class="col-3 m-1 bg-danger hide">
-				ext. Gerät 3
-			</div>
-		</div>
-
-		<!-- interactive chart.js -->
-		<!-- will be refreshed using MQTT (in livechart.js)-->
-		<div class="row justify-content-center my-2" id="thegraph">
-			<div class="col-sm-12 text-center smallTextSize">
-				<div id="waitforgraphloadingdiv">
-					Graph lädt, bitte warten...
-				</div>
-				<canvas id="canvas"></canvas>
-			</div>
-		</div>
-
-		<div class="row text-center bg-darkgrey">
-			<div class="col">
-				<span id="lastregelungaktiv" class="regularTextSize text-red animate-alertPulsation"></span>
-			</div>
-		</div>
-
-		<!-- chargepoint info header -->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-darkgrey text-grey font-weight-bold">
-			<div class="col-3 px-0">
-				Ladepunkt <span id="etproviderEnabledIcon" class="fa fa-chart-line hide"></span>
-			</div>
-			<div class="col-3 px-0">
-				Ladeparameter
-			</div>
-			<div class="col-4 px-0">
-				geladen
-			</div>
-			<div class="col-2 px-0">
-				SoC
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp1-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey" data-lp="1">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center cursor-pointer">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp2-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="2">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center cursor-pointer">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp3-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="3">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp4-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="4">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp5-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="5">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp6-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="6">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<span class="socLp"></span> %
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp7-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="7">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-				<span class="socLp"></span> %
-			</div>
-		</div>
-
-		<!-- chargepoint info data lp8-->
-		<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-lp="8">
-			<div class="col-3 px-0">
-				<span class="fas fa-xs hide autolockConfiguredLp"></span>
-				<span class="cursor-pointer font-weight-bold lpDisabledStyle enableLp nameLp">LP Name</span>
-				<span class="fa fa-xs fa-plug text-orange hide plugstatLp"></span>
-				<span class="fa fa-xs fa-flag-checkered hide targetChargingLp"></span>
-				<span class="fa fa-xs fa-moon hide nightChargingLp"></span>
-			</div>
-			<div class="col-3 px-0">
-				<span class="actualPowerLp">lade Daten</span><span class="phasesInUseLp"></span><span
-					class="targetCurrentLp"></span>
-			</div>
-			<div class="col-4 px-0">
-				<span class="energyChargedLp">lade Daten</span><span class="kmChargedLp" data-consumption="0"></span>
-			</div>
-			<div class="col-2 px-0 socNotConfiguredLp text-center">
-				--
-			</div>
-			<div class="col-2 px-0 hide socConfiguredLp text-center">
-				<i class="small reloadLpSoc fas fa-redo-alt"></i>
-				<i class="manualSocSymbol fas fa-edit hide"></i>
-				<a class="socHasError hide text-red" href="status/status.php"><i
-						class="fas fa-exclamation-triangle"></i></a>
-				<span class="socLp"></span> %
-			</div>
-		</div>
-
-		<div class="smartHome hide">
-			<hr class="border-secondary">
-
-			<!-- SmartHome info header -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-darkgrey text-grey font-weight-bold">
-				<div class="col-3 px-0">
-					Gerät
-				</div>
-				<div class="col-3 px-0">
-					Verbrauch
-				</div>
-				<div class="col-3 px-0">
-					Modus
-				</div>
-				<div class="col-3 px-0">
-					Laufzeit
-				</div>
-			</div>
-
-			<!-- SmartHome Device 1 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="1">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 2 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="2">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 3 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="3">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 4 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="4">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 5 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="5">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 6 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="6">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 7 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="7">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 8 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="8">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-
-			<!-- SmartHome Device 9 data -->
-			<div class="row no-gutter py-1 py-md-0 smallTextSize text-center bg-lightgrey text-grey hide" data-dev="9">
-				<div class="col-3 px-0">
-					<span
-						class="cursor-pointer font-weight-bold lpEnabledStyle enableDevice nameDevice">SmartHomeDevice</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualPowerDevice">lade Daten</span><span class="actualDailyYieldDevice"></span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="cursor-pointer actualModeDevice changeSHMode">lade Daten</span>
-				</div>
-				<div class="col-3 px-0">
-					<span class="actualRunningTimeDevice">lade Daten</span>
-				</div>
-			</div>
-		</div> <!-- end smart home -->
-
-		<!-- depending on charge mode show options -->
-		<form id="minundpvladenEinstellungen" class="hide">
-			<hr class="border-secondary">
-			<div class="row justify-content-center">
-				<h3 class="font-weight-bold text-center text-lightgrey">Minimal Stromstärke</h3>
-			</div>
-
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="1">
-				<label for="minCurrentMinPv" class="col-3 col-form-label text-right"></label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="minCurrentMinPv" min="6" max="16"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/pv/">
-				</div>
-				<label for="minCurrentMinPv" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-		</form>
-
-		<form id="sofortladenEinstellungen" class="hide">
-			<div class="hide" id="priceBasedCharging">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">preisbasiertes Laden</h3>
-				</div>
-				<div class="row justify-content-center my-2">
-					<div id="electricityPriceChartCanvasDiv" class="col text-center">
-						<canvas id="electricityPriceChartCanvas"></canvas>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize">
-					<label for="MaxPriceForCharging" class="col-3 col-form-label text-right">max. Preis:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="MaxPriceForCharging" min="-25"
-							max="95" step="0.1" value="0" data-topicprefix="openWB/global/awattar/">
-					</div>
-					<label for="MaxPriceForCharging" class="col-3 col-form-label valueLabel" suffix="ct/kWh"></label>
-				</div>
-				<div class="row justify-content-center regularTextSize vaRow">
-					<button type="button" class="btn btn-secondary mr-3 priceLess"><i
-							class="far fa-minus-square"></i></button>
-					Preis
-					<button type="button" class="btn btn-secondary ml-3 priceMore"><i
-							class="far fa-plus-square"></i></button>
-				</div>
-			</div>
-			<!--/ priceBasedCharging -->
-
-			<hr class="border-secondary">
-			<div class="row justify-content-center">
-				<h3 class="font-weight-bold text-center text-lightgrey">Sofortladen Stromstärke</h3>
-			</div>
-
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="1">
-				<label for="lp/1/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP1</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/1/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/1/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="2">
-				<label for="lp/2/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP2</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/2/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/2/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="3">
-				<label for="lp/3/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP3</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/3/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/3/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="4">
-				<label for="lp/4/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP4</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/4/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/4/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="5">
-				<label for="lp/5/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP5</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/5/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/5/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="6">
-				<label for="lp/6/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP6</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/6/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/6/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="7">
-				<label for="lp/7/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP7</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/7/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/7/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-			<div class="form-row form-group mb-1 vaRow regularTextSize" data-lp="8">
-				<label for="lp/8/current" class="col-3 col-form-label text-right"><span
-						class="nameLp">LP8</span>:</label>
-				<div class="col">
-					<input type="range" class="form-control-range rangeInput" id="lp/8/current" min="6" max="32"
-						step="1" value="6" data-initialized="0" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-				<label for="lp/8/current" class="col-3 col-form-label valueLabel" suffix="A"></label>
-			</div>
-
-			<div class="chargeLimitation" data-lp="1">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="1">
-					<div class="col btn-group btn-group-toggle" id="lp/1/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/1/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/1/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/1/chargeLimitation" data-option="2"> EV-SoC
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/1/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/1/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/1/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="2">
-					<label for="lp/1/socToChargeTo" class="col-3 col-form-label text-right">SoC:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/1/socToChargeTo" min="5"
-							max="100" step="5" value="5" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/1/socToChargeTo" class="col-3 col-form-label valueLabel" suffix="%"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/1/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="2">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="2">
-					<div class="col btn-group btn-group-toggle" id="lp/2/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/2/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/2/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/2/chargeLimitation" data-option="2"> EV-SoC
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/2/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/2/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/2/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="2">
-					<label for="lp/2/socToChargeTo" class="col-3 col-form-label text-right">SoC:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/2/socToChargeTo" min="5"
-							max="100" step="5" value="5" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/2/socToChargeTo" class="col-3 col-form-label valueLabel" suffix="%"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/2/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="3">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="3">
-					<div class="col btn-group btn-group-toggle" id="lp/3/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/3/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/3/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/3/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/3/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/3/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/3/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="4">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="4">
-					<div class="col btn-group btn-group-toggle" id="lp/4/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/4/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/4/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/4/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/4/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/4/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/4/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="5">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="5">
-					<div class="col btn-group btn-group-toggle" id="lp/5/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/5/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/5/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/5/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/5/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/5/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/5/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="6">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="6">
-					<div class="col btn-group btn-group-toggle" id="lp/6/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/6/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/6/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/6/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/6/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/6/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/6/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="7">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="7">
-					<div class="col btn-group btn-group-toggle" id="lp/7/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/7/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/7/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/7/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/7/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/7/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/7/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-			<div class="chargeLimitation" data-lp="8">
-				<hr class="border-secondary">
-				<div class="row justify-content-center">
-					<h3 class="font-weight-bold text-center text-lightgrey">Lademengenbegrenzung <span
-							class="nameLp"></span></h3>
-				</div>
-				<div class="form-row vaRow form-group mt-1 justify-content-center" data-lp="8">
-					<div class="col btn-group btn-group-toggle" id="lp/8/chargeLimitation" data-toggle="buttons"
-						data-topicprefix="openWB/config/get/sofort/">
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/8/chargeLimitation" data-option="0"> keine
-						</label>
-						<label class="btn btn-sm btn-outline-info btn-toggle regularTextSize">
-							<input type="radio" name="lp/8/chargeLimitation" data-option="1"> Energiemenge
-						</label>
-					</div>
-				</div>
-				<div class="form-row form-group mb-1 vaRow regularTextSize" data-option="1">
-					<label for="lp/8/energyToCharge" class="col-3 col-form-label text-right">Energie:</label>
-					<div class="col">
-						<input type="range" class="form-control-range rangeInput" id="lp/8/energyToCharge" min="2"
-							max="100" step="2" value="2" data-topicprefix="openWB/config/get/sofort/">
-					</div>
-					<label for="lp/8/energyToCharge" class="col-3 col-form-label valueLabel" suffix="kWh"></label>
-				</div>
-				<div class="form-row mt-2 justify-content-center regularTextSize" data-option="1">
-					<div class="col col-sm-6">
-						<span class="progress-label">Fortschritt: </span>
-						<span class="restzeitLp pull-right"></span>
-						<div class="progress active limitation-progress">
-							<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
-								data-actualCharged="0">
-							</div>
-						</div>
-					</div>
-					<input class="btn btn-sm btn-primary regularTextSize ml-2" type="button"
-						id="lp/8/resetEnergyToCharge" value="Reset" data-topicprefix="openWB/config/get/sofort/">
-				</div>
-			</div>
-
-		</form>
-
-		<!-- modal chargemode-select-window -->
-		<div class="modal fade" id="chargeModeModal">
-			<div class="modal-dialog">
-				<div class="modal-content">
-
-					<!-- modal header -->
-					<div class="modal-header bg-success">
-						<h4 class="modal-title">Lademodus-Auswahl</h4>
-					</div>
-
-					<!-- modal body -->
-					<div class="modal-body">
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button id="chargeModeSofortBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="0">Sofort</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 order-first order-sm-last py-1">
-								<button id="chargeModePVBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="2">PV</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button id="chargeModeMinPVBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="1">Min + PV</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button id="chargeModeStdbyBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="4">Standby</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button id="chargeModeStopBtn" type="button"
-									class="chargeModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-									chargeMode="3">Stop</button>
-							</div>
-						</div>
-						<div id="priorityModeBtns" class="hide">
-							<hr>
-							<div class="row">
-								<div class="col text-center text-grey">
-									Vorrang im Lademodus PV-Laden:
-								</div>
-							</div>
-							<div class="row justify-content-center">
-								<div class="col-sm-5 py-1">
-									<button id="evPriorityBtn" type="button"
-										class="priorityModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-										priority="1">
-										EV <span class="fas fa-car">&nbsp;</span>
-									</button>
-								</div>
-							</div>
-							<div class="row justify-content-center">
-								<div class="col-sm-5 py-1">
-									<button id="batteryPriorityBtn" type="button"
-										class="priorityModeBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal"
-										priority="0">
-										Speicher <span class="fas fa-car-battery">&nbsp;</span>
-									</button>
-								</div>
-							</div>
-						</div>
-						<div id="70ModeBtn" class="hide">
-							<hr>
-							<div class="row">
-								<div class="col text-center text-grey">
-									70% beachten im Lademodus PV-Laden:
-								</div>
-							</div>
-							<div class="row justify-content-center">
-								<div class="col-sm-5 py-1">
-									<button id="70PvBtn" type="button"
-										class=" 70PvBtn btn btn-lg btn-block btn-secondary" data-dismiss="modal">
-										70 % beachten
-									</button>
-								</div>
-							</div>
-						</div>
-
-					</div> <!-- /modal body -->
-
-					<!-- no modal footer -->
-				</div>
-			</div>
-		</div>
-
-		<!-- modal SoC-window -->
-		<div class="modal fade" id="socModal">
-			<div class="modal-dialog">
-				<div class="modal-content">
-					<!-- modal header -->
-					<div class="modal-header bg-warning">
-						<h4 class="modal-title text-dark">Manuelle SoC-Eingabe - Ladepunkt <span class="socLp"></span>
-						</h4>
-					</div>
-					<!-- modal body -->
-					<div class="modal-body">
-						<div class="row justify-content-center">
-							<div class="col-2 px-1 py-1">
-								<button type="button" id="manualSocDecrement"
-									class="btn btn-block btn-secondary">-</button>
-							</div>
-							<div class="col-5 py-1">
-								<div class="input-group">
-									<input id="manualSocBox" type="number" min="0" max="100" step="1" value="0"
-										name="socBox" class="form-control text-right">
-									<div class="input-group-append">
-										<div class="input-group-text">
-											%
-										</div>
-									</div>
-								</div>
-							</div>
-							<div class="col-2 px-1 py-1">
-								<button type="button" id="manualSocIncrement"
-									class="btn btn-block btn-secondary">+</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button type="button" id="manualSocOk" class="btn btn-lg btn-block btn-success"
-									data-dismiss="modal">Übernehmen</button>
-							</div>
-						</div>
-						<div class="row justify-content-center">
-							<div class="col-sm-5 py-1">
-								<button type="button" id="manualSocCancel" class="btn btn-lg btn-block btn-secondary"
-									data-dismiss="modal">Abbrechen</button>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-			<script>
-				function clearSocForm() {
-					$("#manualSocBox").val("0");
-				}
-
-				function submitSocForm() {
-					var currentLp = $('#socModal').find('.socLp').text();
-					var manualSoc = $("#manualSocBox").val();
-					// console.log("SoC for LP"+currentLp+": "+manualSoc);
-					publish(manualSoc, "openWB/set/lp/" + currentLp + "/manualSoc");
-					// reset input after publishing
-					clearSocForm();
-				};
-				$(document).ready(function () {
-
-					$('#manualSocDecrement').click(function () {
-						var newValue = parseInt($('#manualSocBox').val()) - 1;
-						if (newValue < 0) {
-							newValue = 0;
-						}
-						$('#manualSocBox').val(newValue);
-					});
-
-					$('#manualSocIncrement').click(function () {
-						var newValue = parseInt($('#manualSocBox').val()) + 1;
-						if (newValue > 100) {
-							newValue = 100;
-						}
-						$('#manualSocBox').val(newValue);
-					});
-
-					$('#manualSocCancel').click(function () {
-						clearSocForm();
-					});
-
-					$('#manualSocOk').click(function () {
-						submitSocForm();
-					});
-
-				});
-			</script>
-		</div>
-
-		<!-- modal reset-gauge-limits-window -->
-		<div class="modal fade" id="resetGaugeLimitsModal" role="dialog">
-			<div class="modal-dialog" role="document">
-				<div class="modal-content">
-					<!-- modal header -->
-					<div class="modal-header bg-danger">
-						<h4 class="modal-title text-light">Achtung</h4>
-					</div>
-					<!-- modal body -->
-					<div class="modal-body text-center text-black">
-						<p>
-							Sollen die Limits für diese Gauge wirklich zurückgesetzt werden?
-						</p>
-					</div>
-					<!-- modal footer -->
-					<div class="modal-footer d-flex justify-content-center">
-						<button type="button" class="btn btn-success" data-dismiss="modal" id="resetGaugeLimitsBtn"
-							data-gaugeID="">Fortfahren</button>
-						<button type="button" class="btn btn-danger" data-dismiss="modal"
-							id="resetGaugeLimitsCancelBtn">Abbruch</button>
-					</div>
-				</div>
-			</div>
-		</div>
-
-	</div> <!-- container -->
-	<footer class="bg-dark fixed-bottom small text-light">
-		<div class="container text-center">
-			openWB - die modulare Wallbox
-		</div>
-	</footer>
-
-	<script>
-		var defaultScaleCounter = 8640;  // ca. 12 Stunden Gauge Auto-Rescale
-
-		// load navbar, be careful: it loads asynchronous
-		$.get(
-			{ url: "themes/navbar.html", cache: false },
-			function (data) {
-				$("#nav-placeholder").replaceWith(data);
-			}
-		);
-
-		var timeOfLastMqttMessage = 0;  // holds timestamp of last received message
-		var landingpageShown = false;  // holds flag for landing page being shown
-
-		function chargeLimitationOptionsShowHide(btnGrp, option) {
-			// show/hide all option-parameters in form-rows for selected option
-			var parent = btnGrp.closest('.chargeLimitation[data-lp]');  // get parent div element for charge limitation options
-			$(parent).find('.form-row[data-option*=' + option + ']').show();  // now show option elements for selected option
-			$(parent).find('.form-row[data-option]').not('[data-option*=' + option + ']').hide();  // hide all other option elements
-		}
-
-		function processPreloader(mqttTopic) {
-			// sets flag for topic received in topic-array
-			// and updates the preloader progress bar
-			if (!landingpageShown) {
-				var countTopicsReceived = 0;
-				for (var index = 0; index < topicsToSubscribe.length; index++) {
-					if (topicsToSubscribe[index][0] == mqttTopic && topicsToSubscribe[index][1] == 0) {
-						// topic found in array
-						topicsToSubscribe[index][1] = 1;  // mark topic as received
-					};
-					if (topicsToSubscribe[index][1] > 0) {
-						countTopicsReceived++;
-					}
-				};
-				// countTopicsToBeReceived holds all topics flagged 1 and not only those for preloader
-				countTopicsReceived = countTopicsReceived - countTopicsNotForPreloader;
-				var countTopicsToBeReceived = topicsToSubscribe.length - countTopicsNotForPreloader;
-				var percentageReceived = (countTopicsReceived / countTopicsToBeReceived * 100).toFixed(0);
-				var timeBetweenTwoMessages = Date.now() - timeOfLastMqttMessage;
-				if (timeBetweenTwoMessages > 3000) {
-					// latest after 3 sec without new messages
-					percentageReceived = 100;
-					// debug output
-					topicsToSubscribe.forEach((item, i) => {
-						if (item[1] == 0) {
-							console.log('not received: ' + item[0]);
-						}
-					});
-
-				}
-				timeOfLastMqttMessage = Date.now();
-				$("#preloaderbar").width(percentageReceived + "%");
-				$("#preloaderbar").text(percentageReceived + " %");
-				if (percentageReceived == 100) {
-					landingpageShown = true;
-					setTimeout(function () {
-						// delay a little bit
-						$("#preloader").fadeOut(1000);
-					}, 500);
-				}
-			}
-		}
-
-		var delayUserInput = (function () {
-			// sets a timeout on call and resets timeout if called again for same id before timeout fires
-			var timeoutHandles = {};
-			return function (id, callback, ms) {
-				if (timeoutHandles[id]) {
-					clearTimeout(timeoutHandles[id]);
-				};
-				timeoutHandles[id] = setTimeout(function () {
-					delete timeoutHandles[id];
-					callback(id);
-				}, ms);
-			};
-		})();
-
-		function getScaleCookie(cookie) {
-			// reads cookie for gauge-scale and returns default if not set
-			var cookieValue = getCookie(cookie);
-			if (isNaN(parseInt(cookieValue))) {
-				return 1000;
-			} else {
-				return cookieValue;
-			}
-		}
-
-		function setGaugeInitialMinMax(gauge) {
-			gauge.max = getScaleCookie('GaugesScaleMax_' + gauge.id);
-			if (gauge.isSymmetric) {
-				gauge.min = gauge.max * -1;
-			}
-			// farbigen Rand anpassen
-			gauge.set('colorsRanges', [[gauge.min, 0, 'red', 3], [0, gauge.max, 'green', 3]]);
-			// Labels in kW
-			gauge.set('labelsSpecific', [(gauge.min / gauge.scaleBase), ((gauge.max - Math.abs(gauge.min)) / (2 * gauge.scaleBase)), (gauge.max / gauge.scaleBase)]);
-			gauge.grow()
-		}
-
-		function updateGaugeValue(gauge, value, text) {
-			// gauge: zu erneuernde Gauge
-			// value: neuer Wert
-			// text: ggf. neuer Text
-			if (isNaN(parseFloat(value))) {
-				// es wurde keine Zahl als Wert übergeben
-				return;  // gleich wieder zurück
-			}
-			var needsScaling = false;
-			var newGaugeMax = Math.ceil((Math.abs(value) / gauge.scaleBase)) * gauge.scaleBase;
-			if (gauge.max < newGaugeMax) {
-				// benötigtes Maximum ist größer als Skala
-				gauge.max = newGaugeMax;  // Skala positiv anpassen
-				gauge.scaleCounter = defaultScaleCounter;  // Counter reset
-				needsScaling = true;
-				if (!gauge.autoRescale) {
-					// neues Maximum der Gauge als Cookie speichern
-					setCookie('GaugesScaleMax_' + gauge.id, newGaugeMax, 365);
-				}
-			} else if (gauge.max > newGaugeMax) {
-				// Skala ist aktuell eigentlich zu groß
-				if (gauge.autoRescale) {
-					// und Anpassung soll automatisch erfolgen
-					gauge.scaleCounter -= 1; // dann Counter reduzieren
-					if (gauge.scaleCounter == 0) {
-						// wenn Zeit rum
-						gauge.scaleCounter = defaultScaleCounter;  // Counter reset
-						gauge.max = gauge.max - (Math.ceil((gauge.max - newGaugeMax) / (2 * gauge.scaleBase)) * gauge.scaleBase);  // Skala anpassen
-						needsScaling = true;
-					}
-				}
-			} else {
-				// Skala soll bleiben, keine automatische Anpassung
-				if (gauge.scaleCounter < defaultScaleCounter) {
-					// aber Zähler zum Wechsel ist schon angelaufen
-					gauge.scaleCounter = defaultScaleCounter;  // Counter reset
-				}
-			}
-			if (needsScaling) {
-				// wenn Skala angepasst werden muss
-				if (gauge.isSymmetric) {
-					// bei symmetrischer Gauge die negative Skala angleichen
-					gauge.min = gauge.max * -1;
-				}
-				// farbigen Rand anpassen
-				gauge.set('colorsRanges', [[gauge.min, 0, 'red', 3], [0, gauge.max, 'green', 3]]);
-				// Labels in kW
-				gauge.set('labelsSpecific', [(gauge.min / gauge.scaleBase), ((gauge.max - Math.abs(gauge.min)) / (2 * gauge.scaleBase)), (gauge.max / gauge.scaleBase)]);
-			}
-			// neuen Wert für Gauge setzen, ggf. Text im Label ändern
-			gauge.value = value;
-			if (gauge.setText) {
-				gauge.set('titleBottom', text);
-				// Farben der Schrift ggf. anpassen
-				if (value < 0) {
-					gauge.set('titleBottomColor', 'red');
-				} else {
-					gauge.set('titleBottomColor', 'green');
-				}
-			}
-			// und Anzeige erneuern
-			gauge.grow();
-		}
-
-		function prepareGauges() {
-			// prepares all gauges and their settings for ui
-			responsiveGaugeSettings = [
-				{
-					maxWidth: 400, width: 145, height: 145,
-					options: {
-						radius: 65, marginTop: 30, shadowBlur: 3, titleTopPos: 0.28,
-						titleTopSize: 7, titleBottomSize: 6, labelsValueSize: 10, labelsSize: 8
-					},
-					callback: function (obj) {
-						if (obj.autoScale) {
-							setGaugeInitialMinMax(obj);
-						}
-					}
-				},
-				{
-					maxWidth: 575, width: 155, height: 155,
-					options: {
-						radius: 70, marginTop: 30, shadowBlur: 3, titleTopPos: 0.3,
-						titleTopSize: 7, titleBottomSize: 7, labelsValueSize: 10, labelsSize: 8
-					},
-					callback: function (obj) {
-						if (obj.autoScale) {
-							setGaugeInitialMinMax(obj);
-						}
-					}
-				},
-				{
-					maxWidth: 767, width: 220, height: 220,
-					options: {
-						radius: 95, marginTop: 20, shadowBlur: 5, titleTopPos: 0.4,
-						titleTopSize: 11, titleBottomSize: 8, labelsValueSize: 10, labelsSize: 11
-					},
-					callback: function (obj) {
-						if (obj.autoScale) {
-							setGaugeInitialMinMax(obj);
-						}
-					}
-				},
-				{
-					maxWidth: 991, width: 150, height: 150,
-					options: {
-						radius: 72, marginTop: 35, shadowBlur: 4, titleTopPos: 0.30,
-						titleTopSize: 10, titleBottomSize: 8, labelsValueSize: 11, labelsSize: 9
-					},
-					callback: function (obj) {
-						if (obj.autoScale) {
-							setGaugeInitialMinMax(obj);
-						}
-					}
-				},
-				{
-					maxWidth: 1199, width: 200, height: 200,
-					options: {
-						radius: 92, marginTop: 35, shadowBlur: 6, titleTopPos: 0.36,
-						titleTopSize: 12, titleBottomSize: 9, labelsValueSize: 12, labelsSize: 11
-					},
-					callback: function (obj) {
-						if (obj.autoScale) {
-							setGaugeInitialMinMax(obj);
-						}
-					}
-				},
-				{
-					maxWidth: null, width: 220, height: 220,
-					options: {
-						radius: 102, marginTop: 35, shadowBlur: 6, titleTopPos: 0.38,
-						titleTopSize: 14, titleBottomSize: 10, labelsValueSize: 13, labelsSize: 13
-					},
-					callback: function (obj) {
-						if (obj.autoScale) {
-							setGaugeInitialMinMax(obj);
-						}
-					}
-				}
-			];
-
-			gaugePV = new RGraph.Gauge({
-				id: 'pvData',
-				min: 0,
-				max: 1000,
-				value: 0,
-				options: {
-					marginLeft: 0,
-					marginRight: 0,
-					titleTop: 'kW',
-					labelsCount: 2,
-					labelsSpecific: ['0', '0.5', '1'],
-					tickmarksLarge: 4,
-					tickmarksSmall: 20,
-					shadow: true,
-					shadowColor: '#E9E9E9',
-					backgroundColor: 'Gradient(white:#BEFEBE)',
-					borderWidth: 1,
-					borderInner: '#739B73',
-					centerpinColor: '#8E8E8B',
-					labelsValue: true,
-					labelsValueBounding: false,
-					labelsValueUnitsPost: ' W',
-					labelsValueBold: true,
-					labelsValueItalic: true,
-					titleBottomPos: 0.61,
-					titleBottomBold: true,
-					adjustable: false,
-					textAccessible: false,
-					colorsRanges: [[0, 1000, 'green', 3]],
-					anglesStart: RGraph.PI - 0.55,
-					anglesEnd: RGraph.TWOPI + 0.55
-				}
-			}).draw().responsive(responsiveGaugeSettings);
-			gaugePV.scaleCounter = defaultScaleCounter;  // Attribut zur Gauge hinzufügen
-			gaugePV.isSymmetric = false;  // nur Werte > 0
-			gaugePV.autoScale = true;  // Skalierung automatisch vergrößern
-			gaugePV.autoRescale = false;  // neue Skalierung wird nicht von selbst wieder verkleinert
-			gaugePV.setText = false;  // Text und Farbe des Labels anpassen
-			gaugePV.scaleBase = 1000;  // 1000 W ist Basisgröße
-
-			// Add the context menu click listener
-			gaugePV.canvas.ondblclick = function (e) {
-				e.stopPropagation();  // Stops the window.dblclick event from firing
-				var gaugeID = e.srcElement.__object__.id;
-				if (gaugeID == 'pvData') {
-					$("#resetGaugeLimitsBtn").data("gaugeID", gaugeID);
-					$("#resetGaugeLimitsModal").modal("show");  // if resetGaugeLimitsBtn is clicked, event handler will reset limits
-				}
-			}
-
-			gaugeBatt = new RGraph.Gauge({
-				id: 'battData',
-				min: -1000,
-				max: 1000,
-				value: 0,
-				options: {
-					marginLeft: 0,
-					marginRight: 0,
-					titleTop: 'kW',
-					labelsCount: 2,
-					labelsSpecific: ['-1', '0', '1'],
-					tickmarksLarge: 4,
-					tickmarksSmall: 20,
-					shadow: true,
-					shadowColor: '#E9E9E9',
-					backgroundColor: 'Gradient(white:#FCBE1E)',
-					borderWidth: 1,
-					borderInner: '#BA8C16',
-					centerpinColor: '#8E8E8B',
-					labelsValue: true,
-					labelsValueBounding: false,
-					labelsValueUnitsPost: ' W',
-					labelsValueBold: true,
-					labelsValueItalic: true,
-					titleBottomPos: 0.61,
-					titleBottomBold: true,
-					adjustable: false,
-					textAccessible: false,
-					colorsRanges: [[-1000, 0, 'red', 3], [0, 1000, 'green', 3]],
-					anglesStart: RGraph.PI - 0.55,
-					anglesEnd: RGraph.TWOPI + 0.55
-				}
-			}).draw().responsive(responsiveGaugeSettings);
-			gaugeBatt.scaleCounter = defaultScaleCounter;  // Attribut zur Gauge hinzufügen
-			gaugeBatt.isSymmetric = true;  // Werte +-
-			gaugeBatt.autoScale = true;  // Skalierung automatisch vergrößern
-			gaugeBatt.autoRescale = false;  // neue Skalierung wird nicht von selbst wieder verkleinert
-			gaugeBatt.setText = false;  // Text und Farbe des Labels anpassen
-			gaugeBatt.scaleBase = 1000;  // 1000 W ist Basisgröße
-
-			gaugeEVU = new RGraph.Gauge({
-				id: 'evuData',
-				min: -1000,
-				max: 1000,
-				value: 0,
-				options: {
-					marginLeft: 0,
-					marginRight: 0,
-					titleTop: 'kW',
-					labelsCount: 2,
-					labelsSpecific: ['-1', '0', '1'],
-					tickmarksLarge: 4,
-					tickmarksSmall: 20,
-					shadow: true,
-					shadowColor: '#E9E9E9',
-					backgroundColor: 'Gradient(white:#FEBEBE)',
-					borderWidth: 1,
-					borderInner: '#A07676',
-					centerpinColor: '#8E8E8B',
-					labelsValue: true,
-					labelsValueBounding: false,
-					labelsValueUnitsPost: ' W',
-					labelsValueBold: true,
-					labelsValueItalic: true,
-					labelsValueSize: 17,
-					titleBottomPos: 0.61,
-					titleBottomBold: true,
-					titleBottomSize: 11,
-					adjustable: false,
-					textAccessible: false,
-					colorsRanges: [[-1000, 0, 'red', 3], [0, 1000, 'green', 3]],
-					anglesStart: RGraph.PI - 0.55,
-					anglesEnd: RGraph.TWOPI + 0.55
-				}
-			}).draw().responsive(responsiveGaugeSettings);
-			gaugeEVU.scaleCounter = defaultScaleCounter;  // Attribut zur Gauge hinzufügen
-			gaugeEVU.isSymmetric = true;  // Werte +-
-			gaugeEVU.autoScale = true;  // Skalierung automatisch vergrößern
-			gaugeEVU.autoRescale = false;  // neue Skalierung wird nicht von selbst wieder verkleinert
-			gaugeEVU.setText = true;  // Text und Farbe des Labels anpassen
-			gaugeEVU.scaleBase = 1000;  // 1000 W ist Basisgröße
-
-			gaugeEVU.canvas.ondblclick = function (e) {
-				e.stopPropagation();  // Stops the window.ondblclick event from firing
-				var gaugeID = e.srcElement.__object__.id;
-				if (gaugeID == 'evuData') {
-					$("#resetGaugeLimitsBtn").data("gaugeID", gaugeID);
-					$("#resetGaugeLimitsModal").modal("show");  // if resetGaugeLimitsBtn is clicked, event handler will reset limits
-				}
-			}
-
-			gaugeHome = new RGraph.Gauge({
-				id: 'homeData',
-				min: 0,
-				max: 1000,
-				value: 0,
-				options: {
-					marginLeft: 0,
-					marginRight: 0,
-					titleTop: 'kW',
-					labelsCount: 2,
-					labelsSpecific: ['0', '0.5', '1'],
-					tickmarksLarge: 4,
-					tickmarksSmall: 20,
-					shadow: true,
-					shadowColor: '#E9E9E9',
-					backgroundColor: 'Gradient(white:#B5F1FF)',
-					borderWidth: 1,
-					borderInner: '#6E939B',
-					centerpinColor: '#8E8E8B',
-					labelsValue: true,
-					labelsValueBounding: false,
-					labelsValueUnitsPost: ' W',
-					labelsValueBold: true,
-					labelsValueItalic: true,
-					labelsValueSize: 17,
-					titleBottomPos: 0.61,
-					titleBottomBold: true,
-					adjustable: false,
-					textAccessible: false,
-					colorsRanges: [[0, 1000, 'green', 3]],
-					colorsRedWidth: 0,
-					colorsYellowWidth: 0,
-					anglesStart: RGraph.PI - 0.55,
-					anglesEnd: RGraph.TWOPI + 0.55
-				}
-			}).draw().responsive(responsiveGaugeSettings);
-			gaugeHome.scaleCounter = defaultScaleCounter;  // Attribut zur Gauge hinzufügen
-			gaugeHome.isSymmetric = false;  // Werte > 0
-			gaugeHome.autoScale = true;  // Skalierung automatisch vergrößern
-			gaugeHome.autoRescale = true;  // neue Skalierung wird von selbst wieder verkleinert
-			gaugeHome.setText = false;  // Text und Farbe des Labels nicht anpassen
-			gaugeHome.scaleBase = 1000;  // 1000 W ist Basisgröße
-
-			setGaugeInitialMinMax(gaugePV);
-			setGaugeInitialMinMax(gaugeEVU);
-			setGaugeInitialMinMax(gaugeBatt);
-		}
-
-		$(document).ready(function () {
-
-			// load scripts synchronously in order specified
-			var scriptsToLoad = [
-				// load Chart.js library
-				'js/Chart.bundle.min.js',
-				// load Chart.js annotation plugin
-				'js/chartjs-plugin-annotation.min.js',
-				// load mqtt library
-				'js/mqttws31.js',
-				// some helper functions
-				'themes/Gauges/helperFunctions.js?ver=20201228',
-				// functions for processing messages
-				'themes/Gauges/processAllMqttMsg.js?ver=20221102',
-				// respective Chart.js definition live
-				'themes/Gauges/livechart.js?ver=20210307',
-				// respective Chart.js definition price chart
-				'themes/dark/electricityPriceChart.js?ver=20210210',
-				// functions performing mqtt and start mqtt-service
-				'themes/Gauges/setupMqttServices.js?ver=20221102',
-			];
-			scriptsToLoad.forEach(function (src) {
-				var script = document.createElement('script');
-				script.src = src;
-				script.async = false;
-				document.body.appendChild(script);
-			});
-
-			prepareGauges();
-
-			$('.enableLp').click(function (event) {
-				// send mqtt set to enable/disable charge point after click
-				var lp = parseInt($(this).closest('[data-lp]').data('lp'));  // get attribute lp-# of parent element
-				if (!isNaN(lp) && lp > 0 && lp < 9) {
-					var isEnabled = $(this).hasClass("lpEnabledStyle")
-					if (isEnabled) {
-						publish("0", "openWB/set/lp/" + lp + "/ChargePointEnabled");
-					} else {
-						publish("1", "openWB/set/lp/" + lp + "/ChargePointEnabled");
-					}
-				}
-			});
-
-			$('.socConfiguredLp').click(function (event) {
-				// send mqtt set to force reload of charge point SoC after click
-				var lp = parseInt($(this).closest('[data-lp]').data('lp'));  // get attribute lp-# of parent element
-				if (!isNaN(parseInt(lp)) && lp > 0 && lp < 9) {
-					if ($(this).hasClass('manualSoC')) {
-						var currentSoc = $(this).find('.socLp').text();
-						$('#socModal').find('.socLp').text(lp);
-						$("#manualSocBox").val(currentSoc);
-						$('#socModal').modal("show");
-					} else {
-						var spinner = $(this).find('.reloadLpSoc');
-						var isRunning = spinner.hasClass("fa-spin");
-						if (!isRunning) {
-							spinner.addClass("fa-spin");
-							publish("1", "openWB/set/lp/" + lp + "/ForceSoCUpdate");
-						}
-					}
-				}
-			});
-
-			$('.enableDevice').click(function (event) {
-				// send mqtt set to enable/disable Device after click
-				var dev = parseInt($(this).closest('[data-dev]').data('dev'));  // get attribute device-# of parent element
-				var isLocked = $(this).hasClass("locked");
-				if (isLocked) {
-					if (!isNaN(dev) && dev > 0 && dev < 10) {
-						var isEnabled = $(this).hasClass("lpEnabledStyle")
-						if (isEnabled) {
-							publish("0", "openWB/config/set/SmartHome/Device" + dev + "/device_manual_control");
-							$(this).removeClass('lpEnabledStyle').removeClass('lpDisabledStyle').addClass('lpWaitingStyle');
-						} else {
-							publish("1", "openWB/config/set/SmartHome/Devices/" + dev + "/device_manual_control");
-							$(this).removeClass('lpEnabledStyle').removeClass('lpDisabledStyle').addClass('lpWaitingStyle');
-						}
-					}
-				}
-			});
-
-			$('.changeSHMode').click(function (event) {
-				// send mqtt set to enable/disable Device after click
-				var dev = parseInt($(this).closest('[data-dev]').data('dev'));  // get attribute device-# of parent element
-				if ($(this).text() == "Automatik") {
-					publish("1", "openWB/config/set/SmartHome/Devices/" + dev + "/mode");
-				} else {
-					publish("0", "openWB/config/set/SmartHome/Devices/" + dev + "/mode");
-				}
-			});
-
-			$('#chargeModeSelectBtn').click(function (event) {
-				$("#chargeModeModal").modal("show");
-			});
-
-			$('.chargeModeBtn').click(function (event) {
-				var chargeMode = $(this).attr("chargeMode")
-				publish(chargeMode, "openWB/set/ChargeMode");
-			});
-
-			$('.priorityModeBtn').click(function (event) {
-				// priority: 0 = battery, 1 = ev
-				var priority = $(this).attr('priority');
-				if (priority == '0' || priority == '1') {
-					publish(priority, 'openWB/config/set/pv/priorityModeEVBattery');
-				}
-			});
-
-			$('.70PvBtn').click(function (event) {
-				// 0 deaktiviert, 1 aktiviert
-				var element = document.getElementById('70PvBtn');
-				if (element.classList.contains("btn-success")) {
-					publish("0", "openWB/set/pv/NurPV70Status");
-				} else {
-					publish("1", "openWB/set/pv/NurPV70Status");
-				}
-			});
-
-			$('#resetGaugeLimitsBtn').click(function (event) {
-				var gaugeID = $("#resetGaugeLimitsBtn").data("gaugeID");
-				if (gaugeID == 'pvData') {
-					setCookie('GaugesScaleMax_pvData', gaugePV.scaleBase, 365);
-					document.location.reload(true);
-				} else if (gaugeID == 'evuData') {
-					setCookie('GaugesScaleMax_evuData', gaugeEVU.scaleBase, 365);
-					document.location.reload(true);
-				}
-			});
-
-			$('#resetGaugeLimitsCancelBtn').click(function (event) {
-				$("#resetGaugeLimitsBtn").data("gaugeID", "");
-			});
-
-			$('.btn[value="Reset"]').click(function (event) {
-				var topic = getTopicToSendTo($(this).attr('id'));
-				publish("1", topic);
-			});
-
-			$('.sofortladenLadezielSelektor').change(function (event) {
-				// switches the visibility of the settings-divs according to dropdown selection
-				var selectorId = '#' + event.target.id;
-				var divAusId = selectorId.slice(0, 8) + 'n' + selectorId.slice(8);
-				var divSocId = selectorId.slice(0, 8) + 's' + selectorId.slice(8);
-				var divMengeId = selectorId.slice(0, 8) + 'm' + selectorId.slice(8);
-				switch ($(selectorId).val()) {
-					case '0':
-						$(divAusId).removeClass('hide');
-						$(divSocId).addClass('hide');
-						$(divMengeId).addClass('hide');
-						break;
-					case '1':
-						$(divAusId).addClass('hide');
-						$(divSocId).addClass('hide');
-						$(divMengeId).removeClass('hide');
-						break;
-					case '2':
-						$(divAusId).addClass('hide');
-						$(divSocId).removeClass('hide');
-						$(divMengeId).addClass('hide');
-						break;
-				}
-			});
-
-			$('.btn-group-toggle').change(function (event) {
-				// only charge limitation has class btn-group-toggle so far
-				// option: 0 = keine, 1 = Energiemenge, 2 = EV-SoC
-				var elementId = $(this).attr('id');
-				var option = $('input[name="' + elementId + '"]:checked').data('option').toString();
-				var topic = getTopicToSendTo(elementId);
-				publish(option, topic);
-				// show/hide respective option-values and progress
-				chargeLimitationOptionsShowHide(this, option);
-			});
-
-			$('.priceMore, .priceLess').click(function (event) {
-				// change Slider upon click on buttons
-				event.preventDefault();
-				var currentMaxPrice = parseFloat($('#MaxPriceForCharging').val());
-				var rangeMin = parseFloat($('#MaxPriceForCharging').attr('min'));
-				var rangeMax = parseFloat($('#MaxPriceForCharging').attr('max'));
-				var step = parseFloat($('#MaxPriceForCharging').attr('step'));
-				if ($(this).hasClass('priceLess')) {
-					currentMaxPrice -= step;
-				} else {
-					currentMaxPrice += step;
-				}
-				// prevent timeout of delayUserInput when clicking "beyond" range
-				if (currentMaxPrice < rangeMin) {
-					currentMaxPrice = rangeMin;
-				} else if (currentMaxPrice > rangeMax) {
-					currentMaxPrice = rangeMax;
-				}
-				$('#MaxPriceForCharging').val(currentMaxPrice);
-				$('#MaxPriceForCharging').trigger('input');
-			});
-
-			$('.rangeInput').on('input', function () {
-				// show slider value in label of class valueLabel
-				var elementId = $(this).attr('id');
-				updateLabel(elementId);
-				var element = $('#' + $.escapeSelector(elementId));
-				var label = $('label[for="' + elementId + '"].valueLabel');
-				label.addClass('text-danger');
-				if ($.escapeSelector(elementId) == 'MaxPriceForCharging') {
-					// marks times in the price chart where the price is low enough so charging would be allowed
-					var priceAnnotations = createPriceAnnotations();
-					electricityPricechart.options.annotation.annotations = priceAnnotations;
-					electricityPricechart.update();
-				}
-				delayUserInput(elementId, function (id) {
-					// gets executed on callback, 2000ms after last input-change
-					// changes label color back to normal and sends input-value by mqtt
-					var elem = $('#' + $.escapeSelector(id));
-					var value = elem.val();
-					var topic = getTopicToSendTo(id);
-					publish(value, topic);
-					var label = $('label[for="' + id + '"].valueLabel');
-					label.removeClass('text-danger');
-					// if rangeInput is for chargeLimitation, recalculate progress
-					if (id.includes('/energyToCharge')) {
-						var parent = elem.closest('.chargeLimitation')  // get parent div element for charge limitation
-						var element = parent.find('.progress-bar');  // now get parents progressbar
-						var actualCharged = element.data('actualCharged');  // get stored value
-						if (isNaN(parseFloat(actualCharged))) {
-							actualCharged = 0;  // minimum value
-						}
-						var progress = (actualCharged / value * 100).toFixed(0);
-						element.width(progress + "%");
-					}
-				}, 2000);
-			});
-
-			// register an event listener for changes in visibility
-			let hidden;
-			let visibilityChange;
-			if (typeof document.hidden !== 'undefined') { // Opera 12.10 and Firefox 18 and later support
-				hidden = 'hidden';
-				visibilityChange = 'visibilitychange';
-			} else if (typeof document.msHidden !== 'undefined') {
-				hidden = 'msHidden';
-				visibilityChange = 'msvisibilitychange';
-			} else if (typeof document.webkitHidden !== 'undefined') {
-				hidden = 'webkitHidden';
-				visibilityChange = 'webkitvisibilitychange';
-			}
-			window.document.addEventListener(visibilityChange, () => {
-				if (!document[hidden]) {
-					// once page is unhidden... reload graph completely
-					initialread = 0;
-					all1 = 0;
-					all2 = 0;
-					all3 = 0;
-					all4 = 0;
-					all5 = 0;
-					all6 = 0;
-					all7 = 0;
-					all8 = 0;
-					all9 = 0;
-					all10 = 0;
-					all11 = 0;
-					all12 = 0;
-					all13 = 0;
-					all14 = 0;
-					all15 = 0;
-					all16 = 0;
-
-					subscribeMqttGraphSegments();
-				}
-			});
-
-		});  // end document ready
-	</script>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/web/themes/colors b/web/themes/colors
new file mode 120000
index 0000000000..26601fc6b3
--- /dev/null
+++ b/web/themes/colors
@@ -0,0 +1 @@
+../../packages/modules/web_themes/colors/web/
\ No newline at end of file
diff --git a/web/themes/dark/electricityPriceChart.js b/web/themes/dark/electricityPriceChart.js
deleted file mode 100644
index 07d07560af..0000000000
--- a/web/themes/dark/electricityPriceChart.js
+++ /dev/null
@@ -1,150 +0,0 @@
-function createPriceAnnotations(){
-	// creates green annotation boxes for all times where price is <= maxPrice
-	class Annotation {
-		type = 'box';
-		drawTime = "beforeDatasetsDraw"; // (default)
-		xScaleID = 'x-axis-0';
-		// left and right edge of the box, units are x-axis index
-		// initially set to index found
-		xMin = 0;
-		xMax = 0;
-		borderColor = 'rgba(73, 238, 73, 0.3)';
-		borderWidth = 2;
-		backgroundColor = 'rgba(73, 238, 73, 0.3)';
-		cornerRadius = 0;
-	}
-	var annotations = [];
-	var maxPrice = parseFloat($('#MaxPriceForCharging').val());
-	if ( !isNaN(maxPrice) ) {
-		for ( var i = 0; i < electricityPriceChartLine.length; i++ ) {
-			if ( electricityPriceChartLine[i] <= maxPrice ) {
-				var newAnnotation = new Annotation();
-				newAnnotation.xMin = i;  // set left edge of box
-				while ( i < electricityPriceChartLine.length && electricityPriceChartLine[i] <= maxPrice ) {
-					i++;
-				}
-				if ( i == electricityPriceChartLine.length ) {
-					// correct index if out of bounds
-					i--;
-				}
-				newAnnotation.xMax = i;  // first index electricityPriceChartLine[i] > maxPrice is right edge of box
-				annotations.push(newAnnotation);  // add box to annotations
-			}
-		}
-	}
-	return annotations;
-}
-
-function buildXLabel(value) {
-	// builds a string like "morgen 13 Uhr" from timestamp
-	var xLabelDate = new Date(value);  // date-object from timestamp
-	var theDate = new Date();  // now
-	var xLabel = xLabelDate.getHours() + ' Uhr';
-	var datumIstHeute = xLabelDate.getYear() == theDate.getYear() && xLabelDate.getMonth() == theDate.getMonth() && xLabelDate.getDate() == theDate.getDate();
-	if ( !datumIstHeute ) {
-		theDate.setDate(theDate.getDate() + 1);  // set date to tomorrow
-		if ( xLabelDate.getYear() == theDate.getYear() && xLabelDate.getMonth() == theDate.getMonth() && xLabelDate.getDate() == theDate.getDate() ) {
-			xLabel = 'morgen ' + xLabel;
-		} else {
-			xLabel = xLabelDate.getDate() + '.' + xLabelDate.getMonth() + '.' + xLabelDate.getFullYear() + ', ' + xLabel;
-		}
-	}
-	return xLabel;
-}
-
-function getXLabels(timestampLabels){
-	// converts array of timestamps and returns converted array
-	var labels = [];
-	for (i=0; i<timestampLabels.length; i++) {
-		labels.push(buildXLabel(timestampLabels[i]));
-	}
-	return labels;
-}
-
-function loadElectricityPriceChart() {
-	if (typeof electricityPriceTimeline === 'undefined') {
-		console.debug("'electricityPriceTimeline' not defined. Skipping chart update.");
-		return
-	}
-	var xLabels = getXLabels(electricityPriceTimeline);
-
-	var electricityPriceChartData = {
-		labels: xLabels,
-		datasets: [{
-			//yAxisID: 'y-axis-left',
-			data: electricityPriceChartLine,
-			borderColor: evuCol,  // from liveChart
-			backgroundColor: "rgba(0, 0, 255, 0.7)",
-			borderWidth: 3,
-			fill: false,
-			steppedLine: true
-		}]
-	}
-
-	var ctxElectricityPriceChart = $('#electricityPriceChartCanvas')[0].getContext('2d');
-
-	window.electricityPriceChart = new Chart.Line(ctxElectricityPriceChart, {
-		data: electricityPriceChartData,
-		options: {
-			tooltips: {
-				enabled: true,
-				callbacks: {
-					label: function(tooltipItem, data) {
-						let i = tooltipItem.index;
-						return data.datasets[0].data[i] + ' ct/kWh';
-					},
-					title: function(tooltipItem, data) {
-						let i = tooltipItem[0].index;
-						let title = 'jetzt';
-						if ( i > 0 ) {
-							title =  'ab ' + xLabels[i];
-						}
-						return title;
-					}
-				}
-			},
-			responsive: true,
-			maintainAspectRatio: false,
-			animation: false,
-			legend: {
-				display: false
-			},
-			title: {
-				display: false
-			},
-			scales: {
-				xAxes: [{
-					gridLines: {
-						color: xGridCol  // from liveChart
-					},
-					ticks: {
-						fontColor: tickCol  // from liveChart
-					}
-				}],
-				yAxes: [{
-					// values = price
-					position: 'left',
-					id: 'y-axis-left',
-					type: 'linear',
-					display: true,
-					scaleLabel: {
-						display: true,
-						labelString: 'Preis [ct/kWh]',
-						fontColor: fontCol  // from liveChart
-					},
-					gridLines: {
-						color: gridCol,  // from liveChart
-						zeroLineColor: gridCol
-					},
-					ticks: {
-						fontColor: tickCol,  // from liveChart
-						maxTicksLimit: 7.1
-					}
-				}]
-			},
-			annotation: {
-				annotations: createPriceAnnotations()
-			}
-		}
-	});
-}
diff --git a/web/themes/dark/preview.png b/web/themes/dark/preview.png
deleted file mode 100644
index 3479188564..0000000000
Binary files a/web/themes/dark/preview.png and /dev/null differ
diff --git a/web/themes/dark/settings.css b/web/themes/dark/settings.css
deleted file mode 100644
index 5af5a9b5ec..0000000000
--- a/web/themes/dark/settings.css
+++ /dev/null
@@ -1,157 +0,0 @@
-html{
-	min-height: 100%;
-	min-width: 100%;
-}
-
-body {
-	color: white;
-	/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#5a5a5a+0,0e0e0e+100;Black+3D */
-	/* Old browsers */
-	background: rgb(90,90,90);
-	/* FF3.6-15 */
-	background: -moz-linear-gradient(top,  rgba(90,90,90,1) 0%, rgba(14,14,14,1) 100%);
-	/* Chrome10-25,Safari5.1-6 */
-	background: -webkit-linear-gradient(top,  rgba(90,90,90,1) 0%,rgba(14,14,14,1) 100%);
-	/* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
-	background: linear-gradient(to bottom,  rgba(90,90,90,1) 0%,rgba(14,14,14,1) 100%);
-	/* IE6-9 */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5a5a5a', endColorstr='#0e0e0e',GradientType=0 );
-	background-attachment: fixed;
-}
-
-.bg-warning, .bg-info, .bg-success, .bg-light {
-	color: #212529;
-}
-
-.btn-outline-secondary,
-.table,
-pre {
-	color: #ffffff;
-}
-
-.card {
-	background-color: #212529;
-	border-color: rgba(255, 255, 255, 0.5);
-}
-
-.card-header.bg-secondary .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-success .btn-outline-info:not(.active):not(:hover),
-.card-header.bg-primary .btn-outline-info:not(.active):not(:hover) {
-	background-color: #212529;
-}
-
-.card-header.bg-success .btn-outline-info.focus {
-	box-shadow: 0 0 0 0.2rem rgba(23,162,184,.5);
-}
-
-.card-header.bg-success .btn-outline-info.active,
-.card-header.bg-success .btn-outline-info:hover {
-	border-color: #212529;
-}
-
-.form-control,
-.form-control[readonly],
-.form-control:focus,
-.custom-file-label {
-	background-color: #343a40;
-	border: 1px solid #ced4da;
-	color: #ffffff;
-}
-
-.input-group-text {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-.modal-content {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-body {
-	background-color: #212529;
-	color: #ffffff;
-}
-
-input, select {
-	background-color: #6c757d;
-	color: #ffffff;
-}
-
-input[type="text"], input[type="password"], select {
-	border: 1px solid #ced4da;
-}
-
-hr {
-	border-top-color: white;
-}
-
-.modal-content,
-.modal-header,
-.modal-footer {
-	border-color: dimgrey;
-}
-
-.clockpicker-popover,
-.datepicker.datepicker-dropdown {
-	background-color: #343a40;
-}
-
-.clockpicker-popover .popover-title,
-.clockpicker-popover .popover-content {
-	background-color: transparent;
-}
-
-.clockpicker-plate {
-	background-color: black;
-}
-
-.datepicker .datepicker-switch,
-.datepicker .prev:not(.disabled),
-.datepicker .next:not(.disabled),
-.datepicker .today,
-.datepicker .month,
-.datepicker .year {
-	color: #ffffff;
-}
-
-.datepicker .datepicker-switch:hover,
-.datepicker .next:hover,
-.datepicker .prev:hover,
-.datepicker tfoot tr th:hover {
-	background: #eeeeee;
-	color: #000000;
-}
-
-.datepicker table tr td span.focused,
-.datepicker table tr td span:hover {
-	background: #eeeeee;
-	color: #000000;
-}
-
-.carousel-caption,
-.carousel-control-next,
-.carousel-control-prev {
-	color: #ffffff;
-}
-
-.carousel-control-next-icon,
-.carousel-control-prev-icon {
-	filter: none;
-}
-
-.carousel-indicators li {
-	background-color: #ffffff;
-}
-
-.cssload-inner.cssload-one {
-	border-bottom: 5px solid #ffffff;
-}
-
-.cssload-inner.cssload-two {
-	border-right: 5px solid #ffffff;
-}
-
-.cssload-inner.cssload-three {
-	border-top: 5px solid #ffffff;
-}
diff --git a/web/themes/dark/style.css b/web/themes/dark/style.css
deleted file mode 100644
index 15fef1e595..0000000000
--- a/web/themes/dark/style.css
+++ /dev/null
@@ -1,487 +0,0 @@
-/*!
-Stylesheet zum openWB Dark-Theme
-
-2019-2020 Michael Ortenstein
-*/
-
-html {
-	min-height: 100%;
-	min-width: 100%;
-}
-
-body {
-	color: white;
-	/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#5a5a5a+0,0e0e0e+100;Black+3D */
-	/* Old browsers */
-	background: rgb(90, 90, 90);
-	/* FF3.6-15 */
-	background: -moz-linear-gradient(top, rgba(90, 90, 90, 1) 0%, rgba(14, 14, 14, 1) 100%);
-	/* Chrome10-25,Safari5.1-6 */
-	background: -webkit-linear-gradient(top, rgba(90, 90, 90, 1) 0%, rgba(14, 14, 14, 1) 100%);
-	/* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
-	background: linear-gradient(to bottom, rgba(90, 90, 90, 1) 0%, rgba(14, 14, 14, 1) 100%);
-	/* IE6-9 */
-	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5a5a5a', endColorstr='#0e0e0e', GradientType=0);
-	background-attachment: fixed;
-}
-
-body>.container {
-	padding: 55px 0px 0;
-}
-
-@keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-o-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-moz-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-@-webkit-keyframes alertPulsation {
-	0% {
-		opacity: 1;
-	}
-
-	50% {
-		opacity: 0;
-	}
-
-	100% {
-		opacity: 1;
-	}
-}
-
-.animate-alertPulsation {
-	-webkit-animation: alertPulsation 1s infinite;
-	-moz-animation: alertPulsation 1s infinite;
-	-o-animation: alertPulsation 1s infinite;
-	animation: alertPulsation 1s infinite;
-}
-
-.limitation-progress {
-	height: 0.6em !important;
-}
-
-.fill-height:has(div.collapse.show) {
-	min-height: 100%;
-}
-
-.pull-right {
-	float: right
-}
-
-.row.no-gutter [class*='col-']:first-child:not(:only-child) {
-	padding-right: 0;
-}
-
-.row.no-gutter [class*='col-']:last-child:not(:only-child) {
-	padding-left: 0;
-}
-
-.row.no-gutter [class*='col-']:not(:first-child):not(:last-child):not(:only-child) {
-	padding-right: 0;
-	padding-left: 0;
-}
-
-.gradient {
-	background: -webkit-linear-gradient(black, #f2f2f2, black);
-	background-clip: initial;
-	-webkit-background-clip: text;
-	-webkit-text-fill-color: transparent;
-	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15);
-}
-
-.cursor-pointer {
-	cursor: pointer;
-}
-
-.vaRow {
-	/* vertical alignment of content in rows */
-	display: flex;
-	align-items: center;
-}
-
-.hide {
-	display: none;
-}
-
-.charge-point-enabled {
-	color: #006515;
-	text-decoration: none;
-}
-
-.charge-point-waiting {
-	color: #ffdb00;
-	text-decoration: none;
-}
-
-.charge-point-disabled {
-	color: #A30000;
-	text-decoration: line-through;
-}
-
-.text-green {
-	color: #006515;
-}
-
-.text-red {
-	color: #A30000;
-}
-
-.text-white {
-	color: white;
-}
-
-.text-orange {
-	color: #ff8c1a;
-}
-
-.text-black {
-	color: black;
-}
-
-.text-blue {
-	color: blue;
-}
-
-.text-grey {
-	color: #515151;
-}
-
-.text-lightgrey {
-	color: #ffffffd1;
-}
-
-.bg-darkgrey {
-	background-color: #b6bcc9;
-}
-
-.bg-lightgrey {
-	background-color: #d0d7e6;
-}
-
-.bg-lightblue {
-	background-color: #23ebe1;
-}
-
-.bg-lightgreen {
-	background-color: #befebe;
-}
-
-.bg-rose {
-	background-color: #febebe;
-}
-
-.bg-apricot {
-	background-color: #fefedf;
-}
-
-.bg-orange {
-	background-color: #fcbe1e;
-}
-
-/* Extra small devices (portrait phones, less than 576px) */
-/* No media query since this is the default in Bootstrap */
-h1 {
-	font-size: 1.4rem;
-}
-
-h2 {
-	font-size: 0.9rem;
-}
-
-h3 {
-	font-size: 0.7rem;
-}
-
-.verySmallTextSize {
-	font-size: 0.5rem;
-}
-
-.smallTextSize {
-	font-size: 0.5rem;
-}
-
-.regularTextSize,
-.form-control {
-	font-size: 0.7rem;
-}
-
-.largeTextSize {
-	font-size: 0.8rem;
-}
-
-.buttonTextSize {
-	font-size: 0.9rem;
-}
-
-/* Small devices (landscape phones, 576px and up) */
-@media screen and (min-width: 576px) {
-	h1 {
-		font-size: 1.7rem;
-	}
-
-	h2 {
-		font-size: 1.1rem;
-	}
-
-	h3 {
-		font-size: 0.9rem;
-	}
-
-	.container {
-		max-width: 100%;
-	}
-
-	.verySmallTextSize {
-		font-size: 0.6rem;
-	}
-
-	.smallTextSize {
-		font-size: 0.68rem;
-	}
-
-	.regularTextSize {
-		font-size: 0.75rem;
-	}
-
-	.largeTextSize {
-		font-size: 0.95rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.0rem;
-	}
-}
-
-/* Medium devices (tablets, 768px and up) */
-@media screen and (min-width: 768px) {
-	h1 {
-		font-size: 2.0rem;
-	}
-
-	h2 {
-		font-size: 1.4rem;
-	}
-
-	h3 {
-		font-size: 1.1rem;
-	}
-
-	body>.container {
-		padding: 60px 5% 0;
-	}
-
-	.verySmallTextSize {
-		font-size: 0.8rem;
-	}
-
-	.smallTextSize {
-		font-size: 0.9rem;
-	}
-
-	.regularTextSize {
-		font-size: 1.0rem;
-	}
-
-	.largeTextSize {
-		font-size: 1.3rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.2rem;
-	}
-}
-
-/* Large devices (desktops, 992px and up) */
-@media screen and (min-width: 992px) {
-	h1 {
-		font-size: 2.6rem;
-	}
-
-	h2 {
-		font-size: 2.0rem;
-	}
-
-	h3 {
-		font-size: 1.6rem;
-	}
-
-	.container {
-		max-width: 1500px;
-	}
-
-	.verySmallTextSize {
-		font-size: 1.1rem;
-	}
-
-	.smallTextSize {
-		font-size: 1.25rem;
-	}
-
-	/* .regularTextSize {
-		font-size: 1.4rem;
-	} */
-
-	.largeTextSize {
-		font-size: 1.6rem;
-	}
-
-	.buttonTextSize {
-		font-size: 1.6rem;
-	}
-}
-
-/* Extra large devices (large desktops, 1200px and up) */
-@media (min-width: 1200px) {
-	h1 {
-		font-size: 3rem;
-	}
-
-	h2 {
-		font-size: 2.4rem;
-	}
-
-	h3 {
-		font-size: 1.95rem;
-	}
-
-	.verySmallTextSize {
-		font-size: 1.4rem;
-	}
-
-	.smallTextSize {
-		font-size: 1.65rem;
-	}
-
-	/* .regularTextSize {
-		font-size: 1.8rem;
-	} */
-
-	.largeTextSize {
-		font-size: 1.8rem;
-	}
-
-	.buttonTextSize {
-		font-size: 2.0rem;
-	}
-}
-
-/* live chart colors */
-:root {
-	--fontCol: rgba(255, 255, 255, 0.82);
-	--gridCol: rgba(255, 255, 255, 0.82);
-	--xGridCol: rgba(255, 255, 255, 0.1);
-	--gridSocCol: rgba(0, 0, 0, 0);
-	--tickCol: rgba(255, 255, 255, 0.82);
-	--cpCol: rgba(0, 0, 255, 0.7);
-	--cpBgCol: rgba(0, 0, 255, 0.7);
-	--evSocCol: rgba(0, 0, 255, 0.5);
-	--evuCol: rgba(255, 0, 0, 0.7);
-	--evuBgCol: rgba(255, 10, 13, 0.3);
-	--counterCol: rgba(255, 127, 127, 0.7);
-	--counterBgCol: rgba(255, 127, 127, 0.3);
-	--pvCol: rgba(0, 255, 0, 1);
-	--pvBgCol: rgba(10, 255, 13, 0.3);
-	--batteryCol: rgba(255, 153, 0, 0.8);
-	--batteryBgCol: rgba(200, 255, 13, 0.3);
-	--batterySocCol: rgba(255, 153, 0, 0.8);
-	--batterySocBgCol: rgba(200, 255, 13, 0.3);
-	--homeConsumptionCol: rgba(255, 255, 255, 0.7);
-	--homeConsumptionBgCol: rgba(200, 255, 13, 0.3);
-	--cpSumCol: rgba(50, 50, 55, 0.1);
-	--cpSumBgCol: rgba(0, 0, 255, 0.1);
-	--loadCol: rgba(0, 150, 150, 0.7);
-	--loadBgCol: rgba(200, 255, 13, 0.3);
-	--smartHomeDeviceCol: rgba(230, 50, 220, 0.7);
-	--smartHomeDeviceBgCol: blue;
-}
-
-.openwb-device-1 {
-	color: rgb(204 255 255);
-	background-color: rgb(0 150 150);
-}
-
-.openwb-device-2 {
-	color: rgb(255 255 204);
-	background-color: rgb(150 150 0);
-}
-
-#theGraph>div {
-	max-height: 350px;
-	height: 45vh;
-}
-
-#electricityPriceChartCanvasDiv {
-	height: 150px;
-}
-
-.card-header .collPlus:after {
-	font-family: 'Font Awesome 5 Free';
-	font-weight: 900;
-	content: "\f146";
-	float: right;
-}
-
-.card-header.collapsed .collPlus:after {
-	/* symbol for "collapsed" panels */
-	content: "\f0fe";
-}
-
-#infoHeader .card {
-	min-width: 13em;
-}
-
-#infoHeader .card-body {
-	padding: 0.75rem;
-}
-
-.card-header,
-.card-body {
-	padding: .2vh .6rem;
-}
-
-.btn-group {
-	flex-wrap: wrap;
-}
-
-/* disable collapsing animation for performance reasons */
-.collapsing {
-	-webkit-transition: none;
-	transition: none;
-	display: none;
-}
diff --git a/web/themes/standard/helperFunctions.js b/web/themes/standard/helperFunctions.js
deleted file mode 120000
index 5f532ed80b..0000000000
--- a/web/themes/standard/helperFunctions.js
+++ /dev/null
@@ -1 +0,0 @@
-../dark/helperFunctions.js
\ No newline at end of file
diff --git a/web/themes/standard/livechart.js b/web/themes/standard/livechart.js
deleted file mode 120000
index c46d8d93ea..0000000000
--- a/web/themes/standard/livechart.js
+++ /dev/null
@@ -1 +0,0 @@
-../dark/livechart.js
\ No newline at end of file
diff --git a/web/themes/standard/preview.png b/web/themes/standard/preview.png
deleted file mode 100644
index 639da56c48..0000000000
Binary files a/web/themes/standard/preview.png and /dev/null differ
diff --git a/web/themes/standard/processAllMqttMsg.js b/web/themes/standard/processAllMqttMsg.js
deleted file mode 120000
index 7b8272ff79..0000000000
--- a/web/themes/standard/processAllMqttMsg.js
+++ /dev/null
@@ -1 +0,0 @@
-../dark/processAllMqttMsg.js
\ No newline at end of file
diff --git a/web/themes/standard/setupMqttServices.js b/web/themes/standard/setupMqttServices.js
deleted file mode 120000
index c1884b9a0b..0000000000
--- a/web/themes/standard/setupMqttServices.js
+++ /dev/null
@@ -1 +0,0 @@
-../dark/setupMqttServices.js
\ No newline at end of file
diff --git a/web/themes/standard/smartHome.html b/web/themes/standard/smartHome.html
deleted file mode 120000
index 2721a23fe1..0000000000
--- a/web/themes/standard/smartHome.html
+++ /dev/null
@@ -1 +0,0 @@
-../dark/smartHome.html
\ No newline at end of file
diff --git a/web/themes/standard/theme.html b/web/themes/standard/theme.html
deleted file mode 120000
index f711acb9fd..0000000000
--- a/web/themes/standard/theme.html
+++ /dev/null
@@ -1 +0,0 @@
-../dark/theme.html
\ No newline at end of file
diff --git a/web/themes/standard_legacy b/web/themes/standard_legacy
new file mode 120000
index 0000000000..40703d56bf
--- /dev/null
+++ b/web/themes/standard_legacy
@@ -0,0 +1 @@
+../../packages/modules/web_themes/standard_legacy/web/
\ No newline at end of file
diff --git a/web/version b/web/version
index 5e187ac26d..de61a5902c 100644
--- a/web/version
+++ b/web/version
@@ -1 +1 @@
-2.1.1-Beta.3
+2.1.2-Beta.1
